Unhandled Exception: A CameraController was used after being disposed.

What
Unhandled Exception: A CameraController was used after being disposed.
Steps to reproduce the behavior

After the app opens ,click on the profile icon on the bottom bar.
And then click on the History Icon.
3.After that Click on the Search Icon again.
See error

Note: This error does not always show up.
I got his this error two times,but after restarting the app I did the same but was not able to re-produce.
Why

I guess this error should be solved , since a user can face the same error after moving between the pages back and forth.

Screenshot/Mockup/Before-After
Don't have screenshot,but here is the log for that error.
E/flutter (29950): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: A CameraController was used after being disposed.
E/flutter (29950): Once you have called dispose() on a CameraController, it can no longer be used.
E/flutter (29950): #0      ChangeNotifier._debugAssertNotDisposed.<anonymous closure>
package:flutter/…/foundation/change_notifier.dart:114
E/flutter (29950): #1      ChangeNotifier._debugAssertNotDisposed
package:flutter/…/foundation/change_notifier.dart:120
E/flutter (29950): #2      ChangeNotifier.notifyListeners
package:flutter/…/foundation/change_notifier.dart:288
E/flutter (29950): #3      ValueNotifier.value=
package:flutter/…/foundation/change_notifier.dart:412
E/flutter (29950): #4      CameraController.startImageStream
package:camera/src/camera_controller.dart:442
E/flutter (29950): <asynchronous suspension>
E/flutter (29950):

Smartphone model

Device: OnePlus 7
OS:Android 11

Part of

#526

@PrabeshPP @g123k This one is probably solved

+1 I think so

I fixed the issue by disposing the camera controller in didUpdateWidget instead of deactivate.


A same torchaudio warning issued repeatedly in trainning and infering

I'm so appreciated for your excelent work of this project that help me a lot in my learning in the audio AI field.  As mentioned above, the torchaudio warning showed as following:
UserWarning: At least one mel filterbank has all zero values. The value for n_mels(64) may be set too high. Or, the value forn_freqs (513) may be set too low.
Whether the model's accuracy is affected by the issue is my most concern. Can you help me please?

这个警告应该不影响模型的准确率，分类准确率也在90%以上。
至于这个警告，我也尝试修改n_melsn参数，并不能解决。

这个警告应该不影响模型的准确率，分类准确率也在90%以上。 至于这个警告，我也尝试修改n_melsn参数，并不能解决。

much thanks


Create a template repo + documentation for hub user image repos

Description
Many of our hubs are using a dedicated repository to define, build, and push the user image for the repo. This is a useful pattern, and we should document and make it easier for others to follow this pattern.
Some repositories that do this:

https://github.com/2i2c-org/coessing-image
https://github.com/2i2c-org/openscapes-image

Ultimately users should be able to do the following:

Clone a template repo
Modify it slightly to define the environment they want, per instructions in the repository's README
Use the repo2docker action to build and push and image of the repository
Connect their hub to the image for use in the hub via the configurator

This should be the default for any hub that wants to use its own image!
This issue should focus on using quay.io as the image registry, we can tackle other registries later!
Benefit
This would benefit many communities who wish to maintain their own user image (this is probably most communities!) and would also benefit the 2i2c Engineer team because we'll have less toil to do in updating minor changes to images.
Implementation
We should start off with just a simple repository structure, that has the proper GitHub actions scripts and a simple environment.yml file that others can copy.
For more advanced use-cases (like using a Dockerfile) we can add documentation that tells people what to do in the README, but don't need to bake it into the repository's structure.
Tasks to complete

[x] Create a template git repo with repo2docker-action support and pushing to quay.io :arrow_right: https://github.com/2i2c-org/hub-user-image-template
[ ] Centralize user documentation on how to add packages / test changes to the repo
[ ] Centralize user documentation on how they can change their hub's image with the configurator

Now that we have https://github.com/2i2c-org/hub-user-image-template/pull/1 I think the only other thing we need to do is include some documentation about this in pilot/ and then we are good to go 🚀


PR suggestion box overlays extra extensions' content

Fun combination with SourceGraph. @sqs

Adding this CSS rule on top of the existing ones fixes it:
[data-url$="recently_touched_branches_list"] {
    background: transparent;
}

Thanks! We will test and submit a PR to this repository. Many of us use Refined GitHub here @sourcegraph and should have fixed this sooner!

Essentially a known issue tracked in https://github.com/sindresorhus/refined-github/issues/1109

@bfred-it that issue has been open since February and hasn't seen activity since March. Can we keep this open as a non-duplicate workaround until the dialog is moved?
I don't see any reason not to fix this small issue in the meantime.

The issue remains here for those who look for it. No reason to keep two issues open about the same thing.

I don't see any reason not to fix this small issue in the meantime.

PR welcome to drop the background color and and this line https://github.com/sindresorhus/refined-github/blob/efcb2f5ed96e8a924f5fb56519a8665e864f7d7f/source/content.css#L778
It was added to cover all the buttons but I can't find the discussion about it anywhere, so maybe it's fine.

@JoshuaKGoldberg will you send a PR or can this be closed?

Thanks! We might as well push it down of about 25px to only overlap the buttons partially. Perfect alignment isn’t possible because the distance also depends on the possible “Forked from xxx/xxx” text. The gray background masked this issue before.


(WIP) Enhance event handling system including waitForEvents.

Generic event awaiting system that stems from the discussions in #106. One big change is that we don't store Future in the wait table so that we have more flexibility in what we want to return to the user. We also don't run inside onDispatch so that the cache and everything is properly up-to-date
System is built via WaitHandlers which are stored in a WaitTable which is in the client object. The WaitTable is a mapping of event type (e.g. "MESSAGE_CREATE", "MESSAGE_DELETE) to a list of handlers which are awaiting that event. I originally had a mapping of object ID's to list of handlers but then I ran into a problem where if we have an object 1234, how do we know if its getting deleted or reacted to? (If there is a way then I can change it back, which would be nicer since it means we aren't running every handler when we only care about a few).
The table could also be Table[string, Table[string, seq[WaitHandler]]] where the first key is the event, and second is the object ID.
I use inheritance so that the handlers can get the actual value and don't need to parse it themselves, we just need to downcast within the object. This could be implemented with raw pointers and casting instead of inheritance, but imo that is very unclean and could cause problems
This could work for ON_DISPATCH also by making a type like so
type
  RawEventData = ref object of DimscordObject
    data: JsonNode

Example: User
In this example we wait for a message to be deleted and then message that it has been deleted.
When that message we sent is replied to, we just parrot back what the user said
proc messageCreate(s: Shard, m: Message) {.event(discord).} =
  # First wait for the message sent to be deleted
  let delMsgFut = discord.waitForDeletion(m)
  # This is how timeouts would be handled
  if not await delMsgFut.withTimeout(10 * 1000): # Give them 10 seconds
    return
  # Send a message back and then wait for a response
  let msg = await discord.api.sendMessage(m.channelID, "Message was deleted")
  let replyFut = discord.waitForReply(msg)
  if not await replyFut.withTimeout(10 * 1000): # 10 seconds again
    return
  # Didn't timeout, so we can now await the reply and get the message sent
  let response = await replyFut
  discard await discord.api.sendMessage(m.channelID, fmt"'{response.content}'")

# Connect to Discord and run the bot.
waitFor discord.startSession()

They can also use waitFor and waitForObject to easily write their own
# Wait for a specific person to respond
await discord.waitFor("MESSAGE_CREATE") do (m: Message) -> bool:
    m.author.id == "Some person ID"
# Wait for a specific person to respond, and return the object
let msg = await discord.waitForObject("MESSAGE_CREATE") do (m: Message) -> bool:
    m.author.id == "Some person ID"

Example: Developer
This is how the handlers need to be implemented
proc waitForReply*(client: DiscordClient, to: Message): Future[Message] =
  ## Waits for a message to reply to a message
  # We make a future which is returned immediately.
  # This future is then completed later on once our handler passes
  let createFuture = newFuture[Message]("waitForReply")
  result = createFuture
  # We register a handler with the client.
  # This captures the future we made and completes it if our conditions hold
  client.addHandler("MESSAGE_CREATE") do (m: DimscordObject) -> bool:
    # Remove handler if future is completed (probably timedout)
    if createFuture.finished(): return true
    # We need to downcast to get the actual values.
    # Should be safe to use without `if m of Message` since it only runs for a certain event
    let newMsg = Message(m)
    # Now we do our checks
    if newMsg.referencedMessage.isSome():
      let referenced = newMsg.referencedMessage.unsafeGet()
      if referenced.id == to.id:
        # If everything is fine then we complete with the information we want to pass back to the user
        createFuture.complete(newMsg)
        # We also need to return true to tell the wait table to stop waiting for the event
        return true

TODO

[ ] Find out if it works with shards. Might need to make it a reference table that gets shared between shards
[ ] Add procs for more events (pinned, reaction added, etc)
[x] Add timeouts. Maybe return Option[T] instead which is none if the await timed out. We could also just show in the docs that the user should use withTimeout in their code.: Sticking with just leading the user handle timeouts themselves with withTimeout
[x] Add checkIfAwaiting to all dispatch locations so that the system works for all events
[ ] Add proper parameter names to dispatch. Not a breaking change but will make documentation clearer. Also makes it easier to work with since those are the names used for the data tuple

The boilerplate of downcasting + handling already completed futures can easily be fixed by a small macro or template

Also note that this is just to test the design. More than happy to rewrite/close it depending on how the discussion goes

Nice ! A couple of comments:

One big change is that we don't store Future in the wait table so that we have more flexibility in what we want to return to the user.

Interesting, this makes sense for purpose-built procs like waitForDeletion etc, but what about truly generic wait handlers ? Do we just return the raw JsonNode ? (which is fine btw imo).

We also don't run inside onDispatch so that the cache and everything is properly up-to-date

I think we really could, it seems like a easy bug to fix afaik, feel free to correct me but it should be a matter of swapping the order of execution of on_dispatch and handleEventDispatch (currently on_dispatch runs first, handleEventDispatch is where cache updating happens).

originally had a mapping of object ID's to list of handlers but then I ran into a problem where if we have an object 1234, how do we know if its getting deleted or reacted to?

A more reliable way would be to take author_id, guild_id and channel_id if they are available in the object (Message for example) and store them inside WaitHandler. Then try to see if the event being dispatched match them. But to take advantage of Table you should "hash" them together instead of iterating through every waits to see if the event match the fields. Just "hash" them again when there is a dispatch and check if the key is inside, in Nim this is a O(1) operation.

The table could also be Table[string, Table[string, WaitHandler]] where the first key is the event, and second is the object ID.

Proposal: Make it array[EventKind, Table[string, WaitHandler]] where EventKind is an enum mapping every event kind. array is the length of EventKind if that make sense...
string could be an "hash" like I said earlier.

This could be implemented with raw pointers and casting instead of inheritance, but imo that is very unclean and could cause problems

Well you're right, but what happens if we generalize waiting for an event ? (which is what is going to happen unless we create a bazillion procs for every use-case)
let check = proc(m: Message): bool = m.content == "yes"
let myWait = waitBuilder(m, chec
let answer = discord.waitFor("MESSAGE_CREATE", myWait)
if not await answer.withTimeout(10 * 1000):
    discard await discord.api.sendMessage(m.channel_id, "You haven't replied on time!")
# do stuff ...

The example is kinda funky and could be better but I hope you get the point, check could be any proc signature, maybe with object variants ?
Timeout could also be implemented internally by having the user pass the time duration but this is fine this way too.

Interesting, this makes sense for purpose-built procs like waitForDeletion etc, but what about truly generic wait handlers ? Do we just return the raw JsonNode ? (which is fine btw imo).

Well it is truely generic since any type can be returned (even JsonNode). The handler can use a Future for any type it wants

I think we really could, it seems like a easy bug to fix afaik, feel free to correct me but it should be a matter of swapping the order of execution of on_dispatch and handleEventDispatch (currently on_dispatch runs first, handleEventDispatch is where cache updating happens).

Should just be a matter of that yeah. But this requires the object to be parsed (So that we don't need to deal with raw JsonNode) so doing it in the event dispatch means the parsing doesn't need to be done in multiple places

A more reliable way would be to take author_id, guild_id and channel_id if they are available in the object (Message for example) and store them inside WaitHandler. Then try to see if the event being dispatched match them. But to take advantage of Table you should "hash" them together instead of iterating through every waits to see if the event match the fields. Just "hash" them again when there is a dispatch and check if the key is inside, in Nim this is a O(1) operation.

Would it not be better to just use the ID of the message? Hashing author, guild, and channel together just seems like more effort when the ID of the object is already unique. We will still need to iterate through waits anyways since for example a single message might be waiting on both a response and a reaction (I made a mistake in the description with my second WaitTable idea, will fix that up). Also tables in Nim are O(n) worst case iirc but I might be wrong.
I still do plan to do some sort of ID mapping though since the waits list probably will get largish for big bots, just thinking it might not work well for ON_DISPATCH handlers

Proposal: Make it array[EventKind, Table[string, WaitHandler]] where EventKind is an enum mapping every event kind. array is the length of EventKind if that make sense...
string could be an "hash" like I said earlier.

Yeah was planning that but since EventKind doesn't exist yet I was planning to make another PR to switch dispatch over to an enum and then use that here :+1:. One issue with having a second table is that it then won't work for ON_DISPATCH since if the user is wanting to check raw data, what should we use for the second key? (Unless we just use "" as the key for ON_DISPATCH)

Well you're right, but what happens if we generalize waiting for an event ? (which is what is going to happen unless we create a bazillion procs for every use-case)
The example is kinda funky and could be better but I hope you get the point, check could be any proc signature, maybe with object variants ?

Very possible with the current system. I have this proc locally (Will push in a bit, was just testing different things)
proc waitFor*[T: DimscordObject](client: DiscordClient, event: string, handler: proc (obj: T): bool): Future[void] =
  ## Generic waiting proc that allows you to write your own condition to wait for
  # Implemented like most others
  let fut = newFuture[void]("waitFor")
  result = fut
  client.addHandler(event) do (obj: DimscordObject) -> bool:
    if fut.finished(): return true
    if obj of T: # Just for safety reasons, shouldn't really be needed
      # Except we automatically handle down casting and handling the future
      if handler(T(obj)):
        fut.complete()
        return true

Then your example can be written like
let check = proc(m: Message): bool = m.content == "yes"
let answer = discord.waitFor("MESSAGE_CREATE", check)
if not await answer.withTimeout(10 * 1000):
    discard await discord.api.sendMessage(m.channel_id, "You haven't replied on time!")

The argument still needs to correspond with the event, but this allows someone to wait for any condition to pass. I also made a version called waitForObject that returns a Future[T] instead if the user wants to get the object that passed the condition
With those two procs it will then be easy to write a series of helpers so that users aren't constantly rewriting common handlers. e.g. waitForDeletion is now
proc waitForDeletion*(client: DiscordClient, msg: Message): Future[void] =
  ## Waits for a message to be deleted
  client.waitFor("MESSAGE_DELETE") do (m: Message) -> bool:
    m.id == msg.id

Will work on switching dispatch to enum now.
Since it will be nice to get type safety instead of using strings for the events

Would it not be better to just use the ID of the message?

This wouldn't work in some case, what if you're waiting for a reply but the replier doesn't ping you back and you have nothing in message_reference as a consequence ? You're also very likely to be checking against author_id anyways, it's such a common thing to do that hashing would save the trouble of writing if m.author.id == user.id everytime imo.

... Hashing author, guild, and channel together just seems like more effort when the ID of the object is already unique.

Yes it's more effort but I don't understand what the "Object ID" is, all i've found that sounds like it is that it's the object address in memory, surely not what you want then. Whatever it is, you'll need to have it back when you're going to be checking the waits if you're not iterating, if you are then maybe seq would be better instead ? It all depends on whether iterating > hashing or not. Besides, the "hashing" in question is not "real"

One issue with having a second table is that it then won't work for ON_DISPATCH since if the user is wanting to check raw data, what should we use for the second key? (Unless we just use "" as the key for ON_DISPATCH)

Hmmm. On second thought, maybe it's going to be a bad idea to let users wait for on_dispatch. I mean, they will have to be checking if not data["kind"].getStr == "DISCORD_EVENT": discard", or else this will blow up and result in a hard to find bug (mainly because the error messages are bad). Besides, you'll be checking for every dispatched event, sounds very inefficient and I don't think other libraries do this.

Also tables in Nim are O(n) worst case iirc but I might be wrong.

Surprisingly I found little data on the performance of the implementation of Tables in Nim other than the general dict/hashtable performance profile :(

Very possible with the current system. I have this proc locally (Will push in a bit, was just testing different things)
 handler: proc (obj: T): bool
Well, the issue i was thinking about is that most events handlers are not unary (if you exclude Shard), it's not an easy problem to solve and you will need some form of type erasure to deal with this. This is if you don't want to impose unary checks, it's perfectly fine if you and krips do (i think it's a shame though).

Certainly wont work for everything, I'll need to check what to use has an ID before going ahead on implementing a second table.

MessageDelete can definitely just be Message.id
MessageCreate could be the Channel.id

You're also very likely to be checking against author_id anyways, it's such a common thing to do that hashing would save the trouble of writing if m.author.id == user.id everytime imo.

So when you mean hashing the strings together you mean joining them and then hashing? Even then I don't see the use in doing that just to remove an if statement.

Yes it's more effort but I don't understand what the "Object ID" is, all i've found that sounds like it is that it's the object address in memory, surely not what you want then

I mean that most objects already have an ID attached to them (e.g. Guild, Message, User, etc all have an id field to identify them)

It all depends on whether iterating > hashing or not.

Hashing or no, I'm also going to need to iterate anyways. The hash table won't remove iterating but just partition the handlers so the iterating is minimised at times

sounds very inefficient and I don't think other libraries do this.

:+1:

Well, the issue i was thinking about is that most events handlers are not unary (if you exclude Shard), it's not an easy problem to solve and you will need some form of type erasure to deal with this. This is if you don't want to impose unary checks, it's perfectly fine if you and krips do (i think it's a shame though).

Already works fine, just a matter of passing an object that contains the fields of the event handler e.g. for GuildMemberUpdate
type
   GuildMemberUpdateData = object of DimscordObject
     guild: Guild
     member: Member
     old: Option[Member]

Heya @ire4ever1190 , I experimented with your PR a little bit and I think I have some ideas to improve it:
Using waitFor as it currently is limits the capabilities of the event awaiting system because a user may expect to match an event against different type depending on the event in question (for now i'll try to focus on waitFor and not on waitForObject) :
 ## testbot wants to ban a member and waits for your confirmation !
 client.waitFor(MessageReactionAdd) do (m: Message, u: User, e: Emoji) -> bool:
   if (m.id == prompt.id) and (u.id == mod.id):
     # we just check if the mod actually responded, the bot would check from the returning data what emoji the mod reacted with and proceed accordingly. (i know `waitFor` returns `Future[void]` and we should use `waitForObject`  instead for that...)
     if (get(e.name) == "✅") or (get(e.name) == "❎"): return true

#[
currently fails with:
Error: type mismatch
Expression: waitFor(client, MessageReactionAdd, proc (m: Message; u: User;
    e: Emoji): bool =
  if m.id == and u.id == :
    if get(e.name) == "✅" or get(e.name) == "❎":
      return true
  )
  [1] client: DiscordClient
  [2] MessageReactionAdd: DispatchEvent
  [3] proc (m: Message; u: User; e: Emoji): bool =
  if m.id == and u.id == :
    if get(e.name) == "✅" or get(e.name) == "❎":
      return true: proc (m: Message, u: User, e: Emoji): bool{.noSideEffect, gcsafe.}

Expected one of (first mismatch at [position]):
[3] proc waitFor[T: DimscordObject](client: DiscordClient; event: DispatchEvent;
                                handler: proc (obj: T): bool): Future[void]
]#

Many such cases like this one so i think this is a pretty big limitation, this should be solved by using the auto generic to infer the type passed to the handler field but requires some changes here and there on your code:
type WaitHandler* = proc(){.closure.}

proc waitFor*(client: DiscordClient, event: DispatchEvent, handler: auto): Future[void] =
  let fut = newFuture[void]("waitFor(" & $event & ")")
  result = fut
  client.waits[event].add cast[proc(){.closure.}](handler)
  ...

Because we're casting to nullary typed proc, we should be able to fit in our wait handlers without using pointers, but casting it back  is not trivial but we can work around that using macros to recover the type information. This way it should be possible to get the type info from client.events.someEvent, where someEvent is the event name injected by the macro sort of like how the event macro pragma does but instead of the proc name, we just use the DispatchEvent enum, it should look like this:
macro `**`(args: untyped): untyped =
  # used to apply a tuple values as individual proc arguments
  ...

macro getEventType(client: DiscordClient, eventKind: DispatchEvent): untyped =
  # gives out the typedesc of `client.events.'eventKind' without `Shard`
  ...

proc checkIfAwaiting[T: tuple or object](client: DiscordClient, event: DispatchEvent, data: T) =
  var handlers = addr client.waits[event]
  let evt_type = client.getEventType(event)

  for i in countdown(handlers[].len - 1, 0):
    # casting to the type obtained by `getEventType`
    if cast[evt_type](handlers[i])(**data): # since `data` can be a tuple, we should use a macro to unpack and spread its value as arguments.
      handlers[].del(i)

Im not sure how but we should also remove Shard from the type information we get  since we don't actually use it with waitFor and would then make us cast to the wrong type...
checkIfAwaiting would then be used like this when an event is dispatched:
# dispatch.nim
import sugar

proc messageReactionAdd(s: Shard, data: JsonNode) {.async.} =
  ## some code blablabla
  s.client.checkIfAwaiting(MessageReactionAdd, (msg, user, emoji, exists))
  asyncCheck s.client.events.message_reaction_add(s, msg, user, emoji, exists)

Doing this should give us enough flexibility to have a really powerful event awaiting system without even using pointers, cast is unsafe but macros take care of getting the right type back.
One big issue arising from this would be users who would waitFor using the wrong types. This is solved by having documentation or emitting clear error messages (harder than it sounds). Not sure what WaitForObject should return, most probably a tuple.
Note that this does not rely on inheritance so DimscordObject would be seldom used, if ever. This means minimal breaking changes 👍🏾 .

Looks good 👍 will start tinkering with that.
I should be able to check that the proc passed is valid, so think users shouldn't run into any problems

Actually thinking more about it I don't think the pointer to tuple will have problems.
Will probably just restrict users to the waitFor/waitForObject api though since it will be easy to shoot themselves in the foot with it

I think waitForEvent with voice would also be useful along voice event pragma.

:rage:Yeah had a few plans for voice stuff :+1:
I'll probably leave all the event pragma stuff for a followup PR though

Does anyone have a list of gateway events and intents required for them? Think it would be handy to add asserts to make sure that the client has the correct events enabled.
Implemented waitForReaction and while testing I wasn't getting anything until I realised I needed to add the giGuildMessageReactions intent

nvm, found the list here :+1: https://discord.com/developers/docs/topics/gateway#list-of-intents

Does anyone have a list of gateway events and intents required for them? Think it would be handy to add asserts to make sure that the client has the correct events enabled (Plan to put this in the base waitForObject helper so that it works for everything nvm, looking at the list it seems it will need to be a case by case basis depending on what I need)
Implemented waitForReaction and while testing I wasn't getting anything until I realised I needed to add the giGuildMessageReactions intent

I've had this idea of making a PR to add asserts everywhere intents are needed, too many footguns out there, I'll do it soon

For raw/unknown events, assuming we're using JsonNode there is an important design choice we need to make: Should we store the event "type" in the closure environment or outside of it ?
inside the environment
pros:

case match the event type from inside the closure like how you would do it with on_dispatch, this mean we can wait for multiple events from within a single wait which is super powerful

cons:

case matching multiple events in this case is actually a giant shotgun, how do you actually know which event got matched ? what kind of fields the JsonNode contains ?
the closure will be called at every dispatch, since you cannot determine which event the closure actually expects from outside it's environment.

proposed syntax:
 client.waitFor(Unknown) do (event_kind: string, data: JsonNode) -> bool:
    ...

outside the environment
pros:

scales better: you dont need to iterate through every raw waits at every dispatch, just the ones that matter if you use Table
safer: you know what kind of data is returned inside JsonNode

cons:

requires a second raw_waits data structure
not as powerful (you can use an helper proc to wait for multiple events at once if needed)
requires more code to write

proposed syntax:
 client.waitFor("EVENT_KIND") do (data: JsonNode) -> bool:
    ...

Think first proposal works better.
User probably won't be using it often anyways. Only times I ever used onDispatch were to implement waiting for events anyways

I would prefer outside the environment due to one of the reasons.

EVENT_KIND is would be any event that is being received whether it be MESSAGE_CREATE, etc. This would be useful if the user wants to waitfor any raw event before dimscord handles it. Would also be helpful with unknown events, which we would kill 2 birds with one stone.
If the user would use the first proposal (inside the environment), the user would only just use it for just unknown events that are not implemented into the lib yet and if the user wants to wait for raw message creates or other events that are implemented before dimscord handles it, they'd be unable to do so.

I'd probably place the call to check the handlers here
https://github.com/krisppurg/dimscord/blob/c1dae26ada05d01c71fdece66addca2f254df557/dimscord/gateway.nim#L298
So it would work for both events that dimscord hasn't implemented along with running before dimscord handles the event.

But if the user would want to use MessageCreate, it would be after dimscord handles them and if the user would want to use "MESSAGE_CREATE", it would be before dimscord handles them.

client.waitFor(Unknown) do (event_kind: string, data: JsonNode) -> bool:
  if event_kind == "MESSAGE_CREATE":
    # ...

Would run before dimscord handles it (When I make Unknown get ran in that place I mentioned, currently they don't run at all)

client.waitFor(Unknown) do (event_kind: string, data: JsonNode) -> bool:
  if event_kind == "MESSAGE_CREATE":
    # ...

Would run before dimscord handles it (When I make Unknown get ran in that place I mentioned, currently they don't run at

hm well for that use-case Unknown should be called Any, since it's a bit misleading.

Think the name is fine.
Its a bit of a stretch, but you can consider it that its "unknown" what event you want to wait for.

For what is worth, I don't agree that the event we're waiting for is unknown. The user do (and should) know what event they're going to be waiting for as demonstrated by checking if event_kind == "EVENT_KIND", or else you're probably misusing the feature by doing something really weird.  It's subjective but it's why I favor "outside the environment" approach because it cognitively make sense to me, why the waitFor(Unknown) when the event is actually not Unknown but just "Unsupported" ? Why not make the check unnecessary in the first place then? This is also how discordpy/pycord and maybe some other libraries do it.

Looks like discord.py just ignores the event.
I really don't want to add another table just to support a very niche feature, but the semantics of the second option can be done via
proc waitFor(client: DiscordClient, event: string, handler: proc (data: JsonNode): bool): Future[void] =
  client.waitFor(Unknown) do (eventKind: string, data: JsonNode) -> bool:
    if event == eventKind:
      return handler(data)

Looks like discord.py just ignores the event.
I really don't want to add another table just to support a very niche feature, but the semantics of the second option can be done via
proc waitFor(client: DiscordClient, event: string, handler: proc (data: JsonNode): bool): Future[void] =
  client.waitFor(Unknown) do (eventKind: string, data: JsonNode) -> bool:
    if event == eventKind:
      return handler(data)

That's best of both world imo :)

Working on that
Delay is combination of uni + discovered an issue where it will use a different proc that has same name as the handler


Refactor file splitting code & move to model

No reason to have it in the WDL code
Also makes things easier for dealing with arguments and environments in the wdl the future, although it's more code now

Trivy keeps failing on 2024-11-05T22:06:07Z	FATAL	Fatal error	init error: DB error: failed to download vulnerability DB: OCI artifact error: failed to download vulnerability DB: failed to download artifact from any source


Book Recommendations?

What do you think are some of the most excellent reading recommendations on the subject?

Should books with interesting case studies which let us learn about psychology and neuroscience be added?

Could you list a few examples maybe?

Books like
The Man Who Mistook His Wife for a Hat and Other Clinical Tales
Phantoms in the Brain: Probing the Mysteries of the Human Mind

Oh, yeah I've heard good things about both of them. They can go under Fiction in Good Reads.

Blink: The Power of Thinking Without Thinking
by Malcolm Gladwell
https://www.goodreads.com/book/show/40102.Blink?ac=1&from_search=true

@reshusinghhh I am not too sure if I would keep Blink in there. Gladwell has a reputation for misquoting case studies often. Something he did with his book Outliers as well and 10,000 hours to success. I only partially read Blink a couple of years ago and while his take is interesting I am afraid, it's not scientifically sound.
Let's find some others to add in there.

@abi-aryan I'm confused, why is the book "Phantoms in the Brain" by VS Ramachandran under Fiction?

As my reading of the book goes, the author of "Phantoms in the Brain" takes us through the stories of 13 of his patients - surely ain't a fiction but not a compulsory reading either - probably better placed among case studies. Thanks for noticing though and very sorry for the late response.

Classify these books into sub-categories-

Gibson, James J: An Ecological Approach to Visual Perception
Goldberg, Elkhonon: The New Executive Brain
Gray, Jeffrey and Neil McNaughton: The Neuropsychology of Anxiety
LeDoux, Joseph: The Emotional Brain
Panksepp, Jaak: Affective Neuroscience
Sacks, Oliver: The Man who Mistook his Wife for a Hat
Sacks, Oliver: Awakenings
Sacks, Oliver: An Anthropologist on Mars
Swanson, Larry: Brain Architecture: Understanding the Basic Plan


feat: Create 121 Platform Instance for DRA in Ethiopia AB#19202

@agnesesaulite

Pull request looks good, thanks for the work!
I pushed some commits with minor changes:

I renamed some files
I created a copy of the original program ethiopia files. We always used to have 1 json file per program. So I made this copy so if we want edit program questions for ethiopia Dorcas later we can do that in the copy while leave the ethiopia ZOA program questions the same
I merged in master since there were some merge conflicts (caused be me merging in your krc branch this morning)

@agnesesaulite
* Pull request looks good, thanks for the work!

* I pushed some commits with minor changes:

  * I renamed some files
  * I created a copy of the original program ethiopia files. We always used to have 1 json file per program. So I made this copy so if we want edit program questions for ethiopia Dorcas later we can do that in the copy while leave the ethiopia ZOA program questions the same
  * I merged in master since there were some merge conflicts (caused be me merging in your krc branch this morning)

Thank you! I didn't made a copy of program based on Ernas suggestion to use the same, but it's fine for me in any case :)


Fixing test case names

There are two cases with the same name test_iter_reduce, so only the second one is always executed and the first one is dead code. So fixing the names of the test cases.

Coverage remained the same at 100.0% when pulling c4d0fd2bdce7954ff5907903db8b196382ae93d0 on thefourtheye:patch-2 into 011bf526528bd3566a45671a37b69bde17133ad8 on mewwts:master.

Thanks @thefourtheye, appreciate it!


FreeRTOS+TCP /multi /IPv6: FreeRTOS_TCP_WIN

Description
The purpose of this PR is to get the sources reviewed. Please do not used them for any project.
FreeRTOS_WIN.c needs no changed for either /multi or /IPv6. I'm adding it for completeness only.
I only removed an #include which was not necessary:
#include "FreeRTOSIPConfigDefaults.h"

Mentioned file has already been included.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Since FreeRTOS-Plus-TCP has become a separate module, the development of FreeRTOS+TCP with multiple interfaces and IPv6, will be moved to that repo.
Closing this PR now.


Interrupt Service Routine

I need guidance regarding ISR. we have multiple devices in an SoC, and only a single wire indicates the core about external interrupts. so how do we get to know that which device interrupted the core and how we will deal that. for example i wanted to read a value from a GPIO so, what will be the flow of reading the value from GPIO in terms of ISR.

Ibex does have the 'fast' IRQs, these will jump to different points relative to mtvec (see the documentation here: https://ibex-core.readthedocs.io/en/latest/03_reference/exception_interrupts.html) allowing you to quickly determine interrupt source.
Otherwise you want some kind of interrupt controller which exposes a memory mapped register you can read which will tell you what cause the interrupt. In RISC-V you have the PLIC specification for such an interrupt controller: https://github.com/riscv/riscv-plic-spec/blob/master/riscv-plic.adoc. It's not mandatory to use a PLIC compatible interrupt controller but probably advisable to maintain interoperability with other RISC-V systems.
The OpenTitan repository contains a PLIC implementation: https://github.com/lowRISC/opentitan/tree/master/hw/ip/rv_plic It's designed work with the rest of the OpenTitan SoC but shouldn't be too much work to extract out the 'core' and use it in something else. Especially if you're using tilelink.

Ibex does have the 'fast' IRQs, these will jump to different points relative to mtvec (see the documentation here: https://ibex-core.readthedocs.io/en/latest/03_reference/exception_interrupts.html) allowing you to quickly determine interrupt source.
Otherwise you want some kind of interrupt controller which exposes a memory mapped register you can read which will tell you what cause the interrupt. In RISC-V you have the PLIC specification for such an interrupt controller: https://github.com/riscv/riscv-plic-spec/blob/master/riscv-plic.adoc. It's not mandatory to use a PLIC compatible interrupt controller but probably advisable to maintain interoperability with other RISC-V systems.
The OpenTitan repository contains a PLIC implementation: https://github.com/lowRISC/opentitan/tree/master/hw/ip/rv_plic It's designed work with the rest of the OpenTitan SoC but shouldn't be too much work to extract out the 'core' and use it in something else. Especially if you're using tilelink.

Got it. Thank you @GregAC

Got it. Thank you @GregAC


mirror_account_chart fails if account root category has no sub-nodes

Issue
mirror_account_chart(..., delete=True) fails when an account root category such as /Balance has no sub-nodes.
>>> cc_ledger.mirror_account_chart(accounts, delete=True)
requests.exceptions.RequestException: API call failed. A system-category cannot be deleted.

Reason

Account category root nodes are immutable in CashCtrl.
We have implemented a trick to exclude root categories from being deleted, but this trick fails to exclude root categories without a nested sub-category. See ledger.py#L140

Proposed Solution
Explicitely ignore mutations of root account categories in the low-level function that handles categories.

Add an option ignore_account_root_nodes: bool = False to CashCtrlClient.update_categories(). When set, we silently ignore additions, updates and deletions of root account categories.
Modify mirror_account_chart() to activate this option. Remove trick on  ledger.py#L140 that ignores root node most of the time but fails to work in some circumstance.

A preliminary implementation of step 1 is available in macxred/cashctrl_api#32.

The current stat covers updating and deletion, but not the addition, of account root nodes.
The new functionality is not yet covered by tests.

Implemented in #40


Unit Tests added for dropdown

Partial test suite added for dropdown component
Also added scrollbar to browser test results to allow viewing of all test results

Awesome, thanks for the PR. I'll take a closer look at it and test it on the terminal and in the browser.

@DanielRuf would it be alright if I actually closed this pull request and moved the changes regarding the scrollbar into a different PR?
I realized after submitting that would probably be better practice, and I also have some other comments relating to overall testing and modifications to the wiki documentation that would go along with it.

@DanielRuf would it be alright if I actually closed this pull request and moved the changes regarding the scrollbar into a different PR?

You can try git revert 2d56de0b675b41d2205d051651989ea98b672dfa and then in another branch use git cherrypick 2d56de0b675b41d2205d051651989ea98b672dfa
https://stackoverflow.com/a/2474430/753676

Thank you a lot. It's not common at all to receive unit tests in a first contribution.

Definitely awesome for the first contribution =)

@DanielRuf See my review just above.

@alliclemens Will you have some time to take care of the requested changes ? Would you need any help with it ?

Hi @alliclemens. I made some changes.

split tests about open() and mouse events
tests triggered events instead of method calling for mouse events
add missing done() when test is asynchronous
rely on options passed to plugin instead of in the HTML
test the Id of the focused element instead of the whole HTML (it can change)
improve various tests names

Could you say what you think of it ?
Also, I don't understand overflow: scroll; added on body. I have no problem with scrolling on the test page (macOS Chrome 64.0.3282.186). Are you sure it is required ?
Poke @DanielRuf for review ;)

Also, I don't understand overflow: scroll; added on body. I have no problem with scrolling on the test page (macOS Chrome 64.0.3282.186). Are you sure it is required ?

It should be auto.
Without this you can not scroll the results of mocha in the browser.

You can try it when you click on one of the test failures. I'm sure there is a scrolling issue.

Without this you can not scroll the results of mocha in the browser.
You can try it when you click on one of the test failures. I'm sure there is a scrolling issue.

I can't reproduce this. On which browser are you testing ?

I can't reproduce this. On which browser are you testing ?

Also Chrome. Will write down the steps to reproduce this in about 8 hours if this is ok.

No problem. Good night 😄

No problem. Good night 😄

Sorry for the late reply.
It seems the manual overflow setting is not needed anymore. I recall that there was an issue with there scrolling but I can not reproduce it anymore with the current develop branch.
Was is due to some uncaught error / exception? Mocha manually applies an overflow setting when the testsuite is run (adds and removes it using JS).
So currently we do not need the overflow, right

I don't see any overflow property or class/ids applied when the JS is running. I revert the commit as I have no trouble to scroll in the tests.
@alliclemens Please come back to us with more more informations if we are wrong.

I guess this is safe now for a merge or do we still need something in this PR?


XP Handbook - 1.18.2 -

Hi, I saw there was another post talking about this issue, but I was using this mod, and when i tried to open the handbook, it wouldn't do anything. I have Patchouli installed, those would be version 0.4.7 for XP Obelisk and version 1.18.2-72-FABRIC for Patchouli

Thank you for the version info.
I will look in to it.


Fix ssg params

Even organized the ternary while doing a deep view:
const isSSG = scope.context.environment.mode === 'ssg';
const key = node.attributes.key ? node.attributes.key : (
  generateKey(node, depth) + (
    node.attributes.route ? (
       isSSG ? scope.context.router.path : scope.context.router.url
    ) : ''
  )
);
if (
  ...
  !isSSG
) {

But still, a error persists without being able to find the origin.

Home moved to route at default template:

After CTRL+F5 (or trailing slash at url)


Rebase

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.4 out of 11 committers have signed the CLA.:white_check_mark: aalexandrov:white_check_mark: neilyio:white_check_mark: eeeebbbbrrrr:white_check_mark: rebasedming:x: coplat:x: triandco:x: gezihuzi:x: marvin-j97:x: b41sh:x: jotare:x: waywardmonkeysYou have signed the CLA already but the status is still pending? Let us recheck it.


Update link

Update various links on front page

Was intermittently red, but a simple rerun fixed it (a blip of the link on conda-forge).
Built on https://snoopycrimecop.github.io/www.openmicroscopy.org/ - imho, the RtD logo

is still too big.
does not have any words in it, and as it is not (yet) a famous logo, only very few will recognize it as RtD

+1

On https://www.openmicroscopy.org/support/ there is a link to Trello - maybe remove or replace please ?

looks good on https://snoopycrimecop.github.io/www.openmicroscopy.org/support/

Thank you @jburel


[BEAM-3645] add ParallelBundleManager

Add ParallelBundleManager class.
This class splits _GroupingBuffer into N pieces to reduce data size and improve processing performance.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

R: @robertwb

Run Python PreCommit

Run Portable_Python PreCommit

Robert, thanks for your comments, they are very helpful and thoughtful.
I fixed all at new commit, can you please take a look when you have time?
Many thanks.


Remove obsolete members from Avalonia.Controls assembly.

What does the pull request do?
The only thing I decided to leave is legacy Dialogs API since that would be a big breaking change, though i would be ok with removing it also if all Core members will agree
Fixed issues
Part of https://github.com/AvaloniaUI/Avalonia/issues/6666

You can test this PR using the following package version. 0.10.999-cibuild0023134-beta. (feed url: https://nuget.avaloniaui.net/repository/avalonia-all/index.json) [PRBUILDID]

You can test this PR using the following package version. 0.10.999-cibuild0023207-beta. (feed url: https://nuget.avaloniaui.net/repository/avalonia-all/index.json) [PRBUILDID]


iframe in onLoadResource how obtain ?

How to obtain onloadresource in iframe

library works like a charm but also have a single problem with an iframe in my web app where i cannot track when the inner document changes in any way?
Is there a way?

i guess it's not possible to access iframe content or loaded sources.


is there a way to do ppkg setup without root privleges?

I changed some code just now. There is no need root privleges any more, please update ppkg to the latest version.


exclude in upload settings

somewhat the exclude doesn't seems to work
in my Upload settings
Host: <vps address>
File: resources/public
Exclude: css;js; or /css;/js or /css/*;/js/* or /css/;/js/ (I tried different approaches but none of those works)
Location: <vps directory>
Command:

I filter based on the file’s extension. You can try this format: .css;.js

without specifying the css or js directory inside public direcoty? what if there are files like *.js.map that I also wanted to exclude or I want to exclude everything including folders except for *.html files?

There is no way to exclude folders.
Sorry, this filtering function is just a simple implementation that simply takes the content after the last '.' as the file suffix and excludes files with the specified suffix during the traversal process.
I rarely use this feature, so I haven't enriched its capabilities.

Oh ok. Thanks. I’ll guess I have to wait for the future update.

Perhaps I should consider how to make this feature more user-friendly

Awesome!


ipxe: fix cross-compilation

Description of changes
Fixed cross-compilation.
Tested x86_64 -> arm64 cross compilation, and testing booting via ipxe on
an arm64 device.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

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

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

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

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

[x] Fits CONTRIBUTING.md.

Verified the build works on x86_64 native and x86_64 -> aarch64 cross.

I recommend adding strictDeps = true as this will make sure the native build fails in the current state.

Added the option. Thanks for the suggestion!


feature: Plugin spec keys, grouping  keymappings to provide a general name

Did you check the docs?

[X] I have read all the lazy.nvim docs

Is your feature request related to a problem? Please describe.
Grouping custom keymappings:
Example with true-zen:
Currently adding 2 keymaps
{
    "Pocco81/true-zen.nvim",
    keys = {
        { "<leader>tm", "<Cmd>TZMinimalist<CR>", desc = "minimilist"},
        { "<leader>ta", "<Cmd>TZAtaraxis<CR>", desc = "ataraxis"},
    },
  },

Could these be grouped? Something like this:
{
    "Pocco81/true-zen.nvim",
    keys = {
        { "<leader>t", {
            { "m", "<Cmd>TZMinimalist<CR>", desc = "minimilist"},
            { "a", "<Cmd>TZAtaraxis<CR>", desc = "ataraxis"},
        }, desc = "zen modes"
    },
  },

Mainly I want which-key to provide a general name instead of +prefix.
If I overlooked something in the docs and this is already possible, my apologies in advance.
Otherwise, I would gladly like this feature, in that case. Thanks in advance.
Describe the solution you'd like
Grouping keys and giving them a general name.
Describe alternatives you've considered
Whichkey has an build en method which is nice:
This does not support lazy loading.
Example in which key config:
      local function normal_keymap()

        local n_keymap = {
          -- Markdown preview
          md = { [[ <Cmd>MarkdownPreview<CR> ]], "Markdown preview" },

          -- TODO: put this in .tex files only
          -- popup fuzzy bibtex citation finder
          ci = {[[ <Cmd>Telescope bibtex<CR> ]], "Fuzzy citation finder"},

          -- harpoon to navigate between multiple scripts
          h = { [[<Cmd>lua require("harpoon.mark").add_file()<CR><Cmd>lua print("file harpooned!")<CR>]], "harpoon file"},
          H = { [[ <Cmd>lua require("harpoon.ui").toggle_quick_menu()<CR> ]], "Show harponed files"},
          ["1"] = { [[ <Cmd>lua require("harpoon.ui").nav_file(1)<CR> ]], "goto file 1"},
          ["2"] = { [[ <Cmd>lua require("harpoon.ui").nav_file(2)<CR> ]], "goto file 2"},
          ["3"] = { [[ <Cmd>lua require("harpoon.ui").nav_file(3)<CR> ]], "goto file 3"},
          ["4"] = { [[ <Cmd>lua require("harpoon.ui").nav_file(4)<CR> ]], "goto file 4"},
        }
        whichkey.register(n_keymap)
      end

Additional context
I am fairly new with lazy (and nvim), take this issue request with grains of salt

you could quite easily write a function to which you can pass a table like this and then return it for the plugin spec
so you can do like keys=parse_mappings(the table)

Not interested in having this kind of functionality in lazy


feat: update npm to v4.1.1 for node v4

Took the gist from https://github.com/apiaryio/docker-base-images/blob/debfd79f92623aaffe42c28c88ca5c27ef7ce5e3/nodejs/0.12/Dockerfile

Since we updated to npm 4? Anything else stopping us from node 6?


Bump various go dependencies

Please provide a description of this PR:
To help us figure out who should review this PR, please put an X in all the areas that this PR affects.

[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

Please check any characteristics that apply to this pull request.

[ ] Does not have any user-facing changes. This may include CLI changes, API changes, behavior changes, performance improvements, etc.

@howardjohn: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Rerun command

lint_istio
320e31d06b75f5a106c04bfc8413aec0551201f6
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Rerun command

lint_istio
320e31d06b75f5a106c04bfc8413aec0551201f6
link
/test lint_istio

integ-telemetry-k8s-tests_istio
320e31d06b75f5a106c04bfc8413aec0551201f6
link
/test integ-telemetry-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Rerun command

lint_istio
320e31d06b75f5a106c04bfc8413aec0551201f6
link
/test lint_istio

integ-telemetry-k8s-tests_istio
320e31d06b75f5a106c04bfc8413aec0551201f6
link
/test integ-telemetry-k8s-tests_istio

integ-security-k8s-tests_istio
320e31d06b75f5a106c04bfc8413aec0551201f6
link
/test integ-security-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Rerun command

lint_istio
320e31d06b75f5a106c04bfc8413aec0551201f6
link
/test lint_istio

integ-telemetry-k8s-tests_istio
320e31d06b75f5a106c04bfc8413aec0551201f6
link
/test integ-telemetry-k8s-tests_istio

integ-security-k8s-tests_istio
320e31d06b75f5a106c04bfc8413aec0551201f6
link
/test integ-security-k8s-tests_istio

integ-security-multicluster-tests_istio
320e31d06b75f5a106c04bfc8413aec0551201f6
link
/test integ-security-multicluster-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


6 - Global Styles

Updates root styles.css with audi global styles
Test URLs:

Before: https://main--audi--aemsites.hlx.live/uk/web/en/used-cars
After: https://6-global-styles--audi--aemsites.hlx.live/uk/web/en/used-cars

@LucaNerlich  See if the updates to this PR makes sense. Obviously i might have missed few things but we can handle them as they come. Feel free to reject or add to these changes.

We need the ::selection part i believe. Used Cars has a red-background effect in text-selection.

when we add :forward: after a secondary button, the icon is not vertically centered

fixed vertical icon alignment via https://github.com/aemsites/audi/pull/8/commits/9ddbf532c0b532c0123aa7a6130a0c2c362b83f7


Feature people design overhaul

@ttannis @feng-tao merge of UI changes into feature/people. I would rather merge more frequently so the merge conflicts don't pile up. (Had to resolve 10-15 conflicts for this)

It appears that my squash and merge messes up the git history from the base branch so I had to re-merge the same commits again.


Introduce Clock interface for time measurements

Use nano-time for measuring duration

Fix the tests, remove powermock dependency

[ ] add more tests for duration calculation

@adriancole we discussed in the past how this lib used (millis*1000 + nanos/1000), I now changed it to be "more better".

naming bikeshed aside, looks good.

lgtm


How to use this code?

Luke,
I come cross to your code but not sure how I can use it.
If I try to do   terraform apply  in the aws-eks-platform/infra-modules/eks_environment/   folder,  I need to give value for eks_cluster_subnets   and   main_pvt_route_table_id   , but I don't know what values I should give as the VPC is not in place yet.
So then I think I might need to  cd to aws-eks-platform/infra-modules/eks_environment/vpc/ and tun terraform apply to create the VPC first, but I am prompted to give value for main_pvt_route_table_id.  How could I know it as the VPC is not created yet?   This seems a deadlock or I miss something?
Thanks.
Bill

Hi @billchen8888 , thanks for your question. I'm actually planning on deprecating this because it's poorly structured and not easy to get up and running with. I recently created a better and more stable setup with a clear README here: https://github.com/LukeMwila/amazon-eks-cluster. Please have a look and let me know if you have any issues.

Hi @billchen8888 , thanks for your question. I'm actually planning on deprecating this repo because it's poorly structured and not easy to get up and running. I recently created a better and more stable setup with a clear README here: https://github.com/LukeMwila/amazon-eks-cluster. Please have a look and let me know if you have any issues.

@LukeMwila  Thanks for the quick response!  Really appreciate your great work and I will give a try with the new one you mentioned. Just for your info - I came cross to your previous code from the article
https://blog.devgenius.io/create-an-amazon-eks-cluster-with-managed-node-group-using-terraform-a3b50d276b13
Thanks and have a good one!

Thanks @billchen8888 , I'm going to close this. If you have any issues with the new repo, please create them on that repository :)


[Hub Generated] Review request for Microsoft.ConnectedVMwarevSphere to add version stable/2023-12-01

ARM (Control Plane) API Specification Update Pull Request

[!TIP]
Overwhelmed by all this guidance? See the Getting help section at the bottom of this PR description.

[!NOTE]
As of January 2024 there is no PR assignee. This is expected. See https://aka.ms/azsdk/pr-arm-review.

PR review workflow diagram
Please understand this diagram before proceeding. It explains how to get your PR approved & merged.

Click here to see the details of Step 1, Breaking Changes review
If you are in purview of Step 1 of the diagram, follow the Breaking Changes review process.
IMPORTANT! This applies even if you believe your PR was mislabeled, for any reason, including tool failure.

Click here to see the details of Step 2, ARM review
See https://aka.ms/azsdk/pr-arm-review.

 Click here to see the diagram footnotes
Diagram footnotes
[1] See ARM review queue (for PR merge queues, see [2]).
[2] public repo merge queue, private repo merge queue (for ARM review queue, [1])
The ARM reviewer on-call engineer visits the merge queue twice a day, so the approximate ETA for merges is 12 - 24 hours.

Purpose of this PR
What's the purpose of this PR? Check the specific option that applies. This is mandatory!

[ ] New resource provider.
[x] New API version for an existing resource provider. (If API spec is not defined in TypeSpec, the PR should have been generated using OpenAPI Hub).
[ ] Update existing version for a new feature. (This is applicable only when you are revising a private preview API version.)
[ ] Update existing version to fix OpenAPI spec quality issues in S360.
[ ] Other, please clarify:

edit this with your clarification

Due diligence checklist
To merge this PR, you must go through the following checklist and confirm you understood
and followed the instructions by checking all the boxes:

[x] I confirm this PR is modifying Azure Resource Manager (ARM) related specifications, and not data plane related specifications.
[ ] I have reviewed following Resource Provider guidelines, including
ARM resource provider contract and
REST guidelines (estimated time: 4 hours).
I understand this is required before I can proceed to the diagram Step 2, "ARM API changes review", for this PR.

Additional information

 Viewing API changes
For convenient view of the API changes made by this PR, refer to the URLs provided in the table
in the Generated ApiView comment added to this PR. You can use ApiView to show API versions diff.

Suppressing failures
If one or multiple validation error/warning suppression(s) is detected in your PR, please follow the
suppressions guide to get approval.

Getting help

First, please carefully read through this PR description, from top to bottom. Please fill out the Purpose of this PR and Due diligence checklist.
To understand what you must do next to merge this PR, see the Next Steps to Merge comment. It will appear within few minutes of submitting this PR and will continue to be up-to-date with current PR state.
For guidance on fixing this PR CI check failures, see the hyperlinks provided in given failure
and https://aka.ms/ci-fix.
For help with PR workflow diagram Step 2 (ARM review), see https://aka.ms/azsdk/pr-arm-review.
If the PR CI checks appear to be stuck in queued state, please add a comment with contents /azp run.
This should result in a new comment denoting a PR validation pipeline has started and the checks should be updated after few minutes.
If the help provided by the previous points is not enough, post to https://aka.ms/azsdk/support/specreview-channel and link to this PR.

/azp run

    "eagerlyScrub": {

YOu have a few lint diff warnings , mainly for using booleans :
https://github.com/Azure/azure-rest-api-specs/pull/28682/checks?check_run_id=23861101438
Here for example it is more advised to use properties as enums since they are more extensible .like :
ScrubProperty : [Eager, default] etc
Please review the flagged errors and fix them

Refers to: specification/connectedvmware/resource-manager/Microsoft.ConnectedVMwarevSphere/stable/2023-12-01/connectedvmware.json:3779 in 5d16b28. [](commit_id = 5d16b28c4285685ee2b214005dd3445d025d1fa5, deletion_comment = False)

    }

would this be better described as an enum ?

Refers to: specification/connectedvmware/resource-manager/Microsoft.ConnectedVMwarevSphere/stable/2023-12-01/connectedvmware.json:5969 in 5d16b28. [](commit_id = 5d16b28c4285685ee2b214005dd3445d025d1fa5, deletion_comment = False)

Hey @raosuhas
Evaluated the lint diff warning that says
"Evaluate whether the property is really a boolean or not, the intent is to consider if there could be more than 2 values possible for the property in the future or not. If the answer is no, then a boolean is fine, if the answer is yes, there could be other values added in the future, making it an enum can help avoid breaking changes in the SDKs in the future."
These are read only properties and can't be modified by end user. It's coming from the VMware API where this property is modelled as a Boolean. So it is guaranteed to have only two values - true / false.

/pr RequestMerge


Upgrade to Humble + Garden

Part of https://github.com/osrf/buoy_sim/issues/81

WIP

@chapulina I missed this PR while getting a version to build for macOS and duplicated the bulk of the work in #89 🙄.
I've closed that PR and extracted the main differences (which mostly have to do with dependencies on ros_gz_bridge and ros_gz_sim) into this commit https://github.com/srmainwaring/buoy_sim/commit/8c886be2259651ba7e164bc68cfe35d467014e50 which was obtained after merging a fork of chapulina/humble_garden with main and resolving conflicts, so it should be suitable for cherry-picking into this branch once main has been merged in.
Happy to help with testing for macOS if you need it.

Updated with your commit @srmainwaring, made some small changes to fix the errors I was getting. This should be now ready, will iterate as required after Gazebo Garden release.

@andermi I'm down to one test that times out.  The sc_commands_ros_feedback doesn't want to pass locally or in CI.  In CI, I'm seeing a timeout.  Locally, I'm seeing:
34: [sc_commands_ros_feedback-1] /home/mjcarroll/workspaces/mbari/src/buoy_sim/buoy_tests/tests/sc_commands_ros_feedback.cpp:412: Failure
34: [sc_commands_ros_feedback-1] Value of: static_cast<bool>(node->status_ & buoy_interfaces::msg::SCRecord::PUMP_TOGGLE)
34: [sc_commands_ros_feedback-1]   Actual: true
34: [sc_commands_ros_feedback-1] Expected: false
34: [sc_commands_ros_feedback-1] SC Pump Toggle should be OFF
34: [sc_commands_ros_feedback-1] /home/mjcarroll/workspaces/mbari/src/buoy_sim/buoy_tests/tests/sc_commands_ros_feedback.cpp:412: Failure
34: [sc_commands_ros_feedback-1] Value of: static_cast<bool>(node->status_ & buoy_interfaces::msg::SCRecord::PUMP_TOGGLE)
34: [sc_commands_ros_feedback-1]   Actual: true
34: [sc_commands_ros_feedback-1] Expected: false
34: [sc_commands_ros_feedback-1] SC Pump Toggle should be OFF

The only test failures here appear to be timeouts now @andermi

The only test failures here appear to be timeouts now @andermi

I'll try the do-release-upgrade tomorrow and help you diagnose

@mjcarroll this is looking good on macOS as well. There is one catch which is that the header for gnuplot-iostream is not found on macOS - and this is now required for the build.
As a workaround I've created a ros2 / ament build of https://github.com/dstahlke/gnuplot-iostream on this branch
https://github.com/srmainwaring/gnuplot-iostream/tree/srmainwaring/ros2. With this package included in the workspace and a minor tweak in the form of https://github.com/srmainwaring/buoy_sim/commit/6ec250fc9c084be30ad9776afa7c515da0945dca the humble-garden branch builds on macOS (provided the other ros2 humble dependencies are all built).
I may have missed a ros2 package for gnuplot-iostream elsewhere, but if it's not available is there any interest in upstreaming one?


How does scripting affect cross-site copy?

Support pages from both OneDrive and SharePoint regarding file copying/moving between sites reference this page for administrators to manage cross-site copy/move. However, it's not clear on this page if we need to enable or disable scripting as the method of enabling or disabling cross-site file copy/move.
The only reference on this page to cross-site copying is in the "Important" box for sites "set up for your organization before 2015" ... And it has a circular reference back to the link above regarding how to copy files between OneDrive and SharePoint. 😢
Further, there is no information in the list of features affected when custom scripting is blocked referring to cross-site copying.
So, is there a relationship between custom scripting and cross-site file copy/move?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: aa561c35-c73d-32d1-a553-5c96ce179a8c
Version Independent ID: 819af39f-8ee0-e7f8-f591-09d464225e50
Content: Allow or prevent custom script - SharePoint Online
Content Source: SharePoint/SharePointOnline/allow-or-prevent-custom-script.md
Service: sharepoint-online
GitHub Login: @kaarins
Microsoft Alias: kaarins

@dsghi thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.


NUTCH-2535 fix ClassCastException CrawlDbReader -stats

+1 tested local an pseudo distrib
On Thu, Mar 15, 2018 at 06:10 Sebastian Nagel<EMAIL_ADDRESS>wrote:

You can view, comment on, or merge this pull request online at:
https://github.com/apache/nutch/pull/296
Commit Summary

NUTCH-2535 fix ClassCastException CrawlDbReader -stats

File Changes

M src/java/org/apache/nutch/crawl/CrawlDbReader.java
https://github.com/apache/nutch/pull/296/files#diff-0 (19)

Patch Links:

https://github.com/apache/nutch/pull/296.patch
https://github.com/apache/nutch/pull/296.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/apache/nutch/pull/296, or mute the thread
https://github.com/notifications/unsubscribe-auth/ABHJl-PeBwMAmXDXnS3fshpyKg42MegUks5temhPgaJpZM4SsH68
.

--
Lewis
Dr. Lewis J. McGibbney Ph.D, B.Sc
Skype: lewis.john.mcgibbney


Add query parameter to the edge invitations

I'm going to set the reviewers group id for now to demo ICLR, but we will need to discuss how to reuse the same invitation between acs and reviewers, or create different invitations.

we can talk about it later, but my first reaction is that creating multiple invitations for different groups is ok


V4 compatibility

Hi I saw there has been work towards V4 compatibility, could you publish  a new release for this?
cheers

Hi! just published the release, although I focused only on the Zaber plugin, haven't tested ZaberBinary.


Develop

@froster82 @dinizmauricio
I uploaded the next test version for the next release. It includes the alarms. You can test it and translate the string, if you have some time. Don´t hurry, it is still in testing and we have time. I am "out of office" for the next 4 days... ;-)
So, just play around with the alarms.

@pachi81, I installed the newest version and will try to test it. I will also try to dig into the strings,also the English ones :)
Anyway, great work so far! Thanks!

@pachi81, I translated Polish parts, and I only have some small comments on alarms.

When I press test it in Very low section, the alarm goes off on the phone and on the watch. When I press the pop up notification on the phone, the alarm on the phone is disabled, but it keeps going on the watch. It can only be stopped by pressing alarms icon in the GDH app on the phone. Pressing notification on the watch doesnot work
My watch is always in vibration only mode. Howeve, when I press Test it, the sound is played anyway on the watch. I suspect that you will get to this part in time, but just wanted to letyou know.

@froster82 I don't really understand what exact you have tried. Normally, if you dismiss notification on phone or watch, it should also disappear on the other device.
Can you please explain, what you have done on which device and please also send me the logs from both devices, after your test, so I can check it.

@froster82 @dinizmauricio
Hi, I think, I'm finishing the string values.
But no hurry, I have still some optimization and Bug fixes todo.
So have a nice weekend! 😉

Hi! I will try to do my best as soon as possible :)

@pachi81, I updated the Polish strings and introduced some small corrections to some older ones.

@froster82 @dinizmauricio
Thank you both for such a fast translation!!!
Just one remark, is there a shorter one for
wear_complication_tap_action
as this is a button on wear?
I also have problems for german... 😕

@froster82 @dinizmauricio Thank you both for such a fast translation!!! Just one remark, is there a shorter one for wear_complication_tap_action as this is a button on wear? I also have problems for german... 😕

@froster82, I also had doubts about this item, it's good you mentioned it! I tried to locate the screen, but was unsuccessful. Know where is?

@froster82 @dinizmauricio Thank you both for such a fast translation!!! Just one remark, is there a shorter one for wear_complication_tap_action as this is a button on wear? I also have problems for german... 😕

@froster82, I also had doubts about this item, it's good you mentioned it! I tried to locate the screen, but was unsuccessful. Know where is?

Not yet present. In the next version it will be present.

@pachi81 now it might be a bit short, but with proper explanation in the next line everything should be ok.
Polish text translates literally to "after tap" - what happens after you tap.
Maybe German can also be something like that? Nach Tappen or something...

@pachi81 now it might be a bit short, but with proper explanation in the next line everything should be ok. Polish text translates literally to "after tap" - what happens after you tap. Maybe German can also be something like that? Nach Tappen or something...

It is the tap action, if you press on the complication. I thought about a sub menu for complications, but only have a switch and this button...
I will create a version tomorrow, so you can check it out.

@froster82 @dinizmauricio
New version is available, now. 😃

It is the tap action, if you press on the complication.

Yes, I know. I only gave you the literal Polish version. Now it is "Działanie po naciśnięciu komplikacji" which on the watch screen does not look so bad after all. I would leave it as is. The only change for the final version needed is my slip with Alarms :D

@pachi81, one more thing I forgot to ask in terms of graphics. Do you need a double interline above the "Details" and "Connections" headers? This looks a bit off to me. Grey background is enough to make it visible, but the space - especially on the watch - takes a bit too much screen.

@pachi81, one more thing I forgot to ask in terms of graphics. Do you need a double interline above the "Details" and "Connections" headers? This looks a bit off to me. Grey background is enough to make it visible, but the space - especially on the watch - takes a bit too much screen.

@froster82 I think it looks better, then without the space... And I want to have the same look on every device. I will check without the space, but I don´t think, that I will change it...

@pachi81 , behold my editing skills in Paint ;)
We can see how it looks like on a short notice.

Thank you and yes, I do not like the shorter one as there is no free space, to much text after text after text, ...
I think some space looks much better to me. But this is only my opinion...

For me space before the header looks a bit off, but this is just my opinion and you have the final say after all :)

For me space before the header looks a bit off, but this is just my opinion and you have the final say after all :)

@froster82 at the end, you are right ;-) New version is only...

@froster82 at the end, you are right ;-) New version is only...

:D
You know, Brian May supposedly used to complain and add his comments to Freddy Mercury and that way Queen always got a better song ;)
Aaand today it is the 6th of May, Revenge of the 6th, so the dark side was with me.

@pachi81, Tap action button on the watch has the first version of my translation (Dzialanie po naciśnięciu komplikacji), but on the phone version there is the new shorter version (po naciśnięciu).
Are there 2 strings for those buttons? Maybe I changed only one and forgot to change the other?

@pachi81, Tap action button on the watch has the first version of my translation (Dzialanie po naciśnięciu komplikacji), but on the phone version there is the new shorter version (po naciśnięciu). Are there 2 strings for those buttons? Maybe I changed only one and forgot to change the other?

Yes, there are 2 version. On phone there is a common one, which is clear, because of the content.
On watch, there is only a common menu, so there should be some more text.
But no problem it is not the final version...

Ok, I found the strings and made the wear shorter and the phone a bit longer.

@pachi81, I changed one last string. This will look better in practice.

@froster82 @dinizmauricio One more string (last line). As I used an already existing one for icon, I only replaced the icon with trend-arrow. Please check, if it fits. Thank you!

@pachi81, Polish part fits perfect.

@froster82 @dinizmauricio
As I have forgot todo the WatchDrip+ part for alarms, I have to do another change.
Therefor I want to add an extra setting entry, where I put the settings for the color scheme and the setting for the big trend-arrow in. So I need 2 more translations:

title: "User interface"
description: "General settings for the user interface of this application."

Thank you!

@pachi81, no problem
I think it will be faster if I can write them here:
title: Interfejs użytkownika
description: Ogólne ustawienia dotyczące interfejsu użytkownika tej aplikacji.
Cheers!


Unhandled Promise Rejection after wake up from sleep (windows)

i received this error twice after opening my laptop (sleep -> wakeup).
os: windows

Unhandled Promise Rejection
Error: read ECONNRESET
    at Function.Ie.from (C:/Users/aschu/AppData/Local/Programs/kit/resources/app.asar/main.prod.js:2:14691)
    at y.<anonymous> (C:/Users/aschu/AppData/Local/Programs/kit/resources/app.asar/main.prod.js:2:32631)
    at y.emit (node:events:526:28)
    at ClientRequest.l.forEach.p.<computed> (C:/Users/aschu/AppData/Local/Programs/kit/resources/app.asar/main.prod.js:2:988927)
    at ClientRequest.emit (node:events:526:28)
    at TLSSocket.socketErrorListener (node:_http_client:442:9)
    at TLSSocket.emit (node:events:526:28)
    at emitErrorNT (node:internal/streams/destroy:157:8)
    at emitErrorCloseNT (node:internal/streams/destroy:122:3)
    at processTicksAndRejections (node:internal/process/task_queues:83:21)

do you need more information or some log files?
ps: do you think you can push the fix for #965 this week (looking forward to replace espanso with kit)?

The log would be great. I'm building the new build now, but want to fix this if you can send me the ~/.kit/logs/kit.log

kit.log
attached

should be fixed by v1.39.16 (#970)


Loading semantics, please wait...

Fill the blanks is running just fine. I can modify settings and content in the .json and js files.
I can't get the editor working though. All I get is "Loading semantics, please wait..."
Am I missing something?

Try opening your browser console(Ctrl+Shift+J in Chrome/Firefox) and look for any errors.

Uncaught SyntaxError: Unexpected token u in JSON at position 0
at JSON.parse ()
at Object.success (h5peditor.js:72)
at c (jquery.js:2)
at Object.fireWith [as resolveWith] (jquery.js:2)
at k (jquery.js:4)
at XMLHttpRequest.r (jquery.js:4)
I got some undefined strings there. Those can't be parsed. E.g. libraryData.language

There appears to be an error in one of the translation files. What language are you using?

Well, the interface is in english. I didn't set it to english anywhere though. I did not see or got asked to set any language.

Hi,
since (in that case Blanks) has a minor version 12 which has two digits. That leads to h5peditor.js not handling the libraryFromString correctly, because the regExp is demanding a single digit as minor version.

Hi Frode,
@icc as vou can see, I made a PR for handling multi-digit-versioned Libraries correctly.

The fix by @JulianSSS works for me.

h5p-cli core functionality has been rewritten. Closing this since it is no longer relevant.


🎨 Add gpg/tofu.db to .gitignore

From https://www.gnupg.org/documentation/manuals/gnupg/GPG-Configuration-Options.html:

TOFU stands for Trust On First Use. In this trust model, the first time a key is seen, it is memorized. If later another key with a user id with the same email address is seen, both keys are marked as suspect. In that case, the next time either is used, a warning is displayed describing the conflict, why it might have occurred (either the user generated a new key and failed to cross sign the old and new keys, the key is forgery, or a man-in-the-middle attack is being attempted), and the user is prompted to manually confirm the validity of the key in question.
Because a potential attacker is able to control the email address and thereby circumvent the conflict detection algorithm by using an email address that is similar in appearance to a trusted email address, whenever a message is verified, statistics about the number of messages signed with the key are shown. In this way, a user can easily identify attacks using fake keys for regular correspondents.
When compared with the Web of Trust, TOFU offers significantly weaker security guarantees. In particular, TOFU only helps ensure consistency (that is, that the binding between a key and email address doesn’t change). A major advantage of TOFU is that it requires little maintenance to use correctly. To use the web of trust properly, you need to actively sign keys and mark users as trusted introducers. This is a time-consuming process and anecdotal evidence suggests that even security-conscious users rarely take the time to do this thoroughly and instead rely on an ad-hoc TOFU process.
In the TOFU model, policies are associated with bindings between keys and email addresses (which are extracted from user ids and normalized). There are five policies, which can be set manually using the --tofu-policy option. The default policy can be set using the --tofu-default-policy option.
The TOFU policies are: auto, good, unknown, bad and ask. The auto policy is used by default (unless overridden by --tofu-default-policy) and marks a binding as marginally trusted. The good, unknown and bad policies mark a binding as fully trusted, as having unknown trust or as having trust never, respectively. The unknown policy is useful for just using TOFU to detect conflicts, but to never assign positive trust to a binding. The final policy, ask prompts the user to indicate the binding’s trust. If batch mode is enabled (or input is inappropriate in the context), then the user is not prompted and the undefined trust level is returned.

The default trust model for GPG is pgp (Web of Trust), wherein TOFU has no effect. According to this doc, "TOFU offers significantly weaker security guarantees". Both PGP and TOFU are email-based trust models -- they're strategies for determining whether a given key actually belongs to the entity described by the user ID. This is useful for email signatures, but for the purposes of release verification, I'd posit that it's irrelevant, and gpg/tofu.db is safe to add to .gitignore.

:bulb: Original comment: https://github.com/nodejs/release-keys/pull/10#issuecomment-873339776

This didn't land. Reopening.


Updating to Kubernetes client libraries for 1.31.0

What this PR does / why we need it:
Special notes for your reviewer:
If applicable:

[ ] this PR contains user facing changes (the docs needed label should be applied if so)
[ ] this PR contains unit tests
[ ] this PR has been tested for backwards compatibility

@mattfarina can you address the conflicting files?


Behaviour of PageLayout might not be the expected.

I noticed that the PageLayout has an unexpected behaviour. The "Pages" in the middle get covered by the next page (the one to the page). To fix it, the programmer would have to make sure that there is an empty space (equal to the border property of PageLayout) on the middle pages, but not on the extremes. This makes me think that the current behaviour is wrong, and should be fixed in order to keep things centered.
Here is an example to replicate
<MyPageLayout>:
    Button:
        font_size: 26
        text: 'This is a very long description for the page 1 and centered'
    Button:
        font_size: 26
        text: 'This is a very long description for the page 2 not centered'
    Button:
        font_size: 26
        text: 'This is a very long description for the page 3 and centered'

And 3 screenshots. Notice how the second one is convered by the 3rd one.

Thank you!

#3007 should fix this.


Build failure: vulkan-helper

When wanting to update Heroic, he asks me for vulkan-helper.
but it seems cargoSha256 is bad.
error: hash mismatch in fixed-output derivation '/nix/store/5m2zc2ncrgwvsc0h0ax9429rrqn0yimh-vulkan-helper-unstable-2023-09-16-vendor.tar.gz.drv':
         specified: sha256-s5QytuNhjZQhIDJtpeAW3J4op1t4nC+xD2i7Zf5mzfw=
            got:    sha256-fgB0vlbOhzGV1Sj180GCuTGZlVpAUlBUMAfsrG2FiuA=

It has been fixed in #255708 but It must still arrive on nixos unstable

Fixed in nixpkgs-unstable
$ date --rfc-2822 --utc
Fri, 22 Sep 2023 00:16:54 +0000
$ nix build nixpkgs-unstable#vulkan-helper && echo it works!
it works!


UploadStreamToBlockBlob: only require body be io.Reader

This function only takes an io.Reader in azure-storage-blob-go,
& wal-g abstracts over multiple upload mechanisms which all operate on io.Reader

Running CI.


looking for PlatformIO example project - VS Code/Platformi/nanopb

Hi,
I want to use nanopb under VS Code and Platformio
I'm looking for an example project for this combo which uses nanopb and has the necessary magic included to compile proto files
there is a ton of extensions for protobuf/VS Code and I am at loss which one would be a solid starting point
thanks in advance,
Michael

aha, the vscode-proto3 has some support for "Compile this Proto" and "Compile All Protos" (search for "proto" after command-shift-p)
trying the former gives me a "Missing output directives"
it looks like one has to add this magic to .vscode/settings.json: https://github.com/zxh0/vscode-proto3/blob/master/example/.vscode/settings.json

Maybe! It would at least be interesting to have one in the issue attachments, even if it ends up being too specific to include in the main codebase.

yeah, separate repo would be the way to go as it is easier importing into Platformio and it's own directory structure
seems[ people are having this issue since 2015...]( people are having this issue since 2015...)

duh, my bad - it's been a while
I was trying to get away with just installing the Platformio nanopb library and assumed a matching protoc-gen-nanopb would ride along
however, this library only exports *.c *.h *.cpp examples, so no - no protoc-gen-nanopb, so that is good only for already generated .pb.h/.pb.c files
what is the suggested way to get at protoc-gen-nanopb in this case?
I could ether forget about the PlatformIO library, add https://github.com/nanopb/nanopb as a submodule under lib/ and call the generator like under Generating the headers for source checkout by adding the right incantation to settings.json
or I could brew/conda etc install a nanopb package which has the generator and call that from settings.json
but in the latter case a separate step is needed outside VScode and I see the danger of the library and nanopb_generator.py diverging
what would you suggest?

@mhaberler yes, this is exactly what I meant.
Happy coding with PlatformIO!

There is https://github.com/nanopb/nanopb/blob/master/tests/site_scons/site_tools/nanopb.py as nanopb's own test system uses SCons also.
So something like this could work:
 env.Tool("nanopb", toolpath = ["lib/nanopb/tests/site_scons/site_tools"])
 env.NanopbProto("foo.proto")

yep, there are gotchas ;)
the brute-force solution is good enough for government work, and my purposes for now

With 0.4.6 published the above fixes are included.
As for determining the generator path from platformio - I don't know, I'm very much a platformio novice myself :)

Hello!
Before getting to the problem, I have to state that I'm a beginner with both PlatformIO and SCons so I might totally misunderstand key concepts.
I cloned @mhaberler's test repo which was mentioned in the earlier comments. However I added the nanopb project  as a git submodule in the libs directory instead of specifying it in the platformio.ini's lib_deps section (PlatformIO finds nanopb this way, I'm sure about this).
So basically I want to compile the .proto file automatically before building the project, but the proto file's compilation does not happen.
I see that in the custom script the compilation process is added as a custom target but its action does not get called during the building process.
I tried to manually add this new custom target to the platformio.ini's target section:
targets = nanopb-scons

In this case if I launch the build process then the nanopb_callback gets called, it runs without errors, it finds and runs the NanopbProto method but it does not generate the proper .pb.h and .pb.c sources. Then the build process is marked as success and it isn't even attempted to build the project sources (which would of course fail as the generated files would be missing).
I also tried to add a pre-action in the script file without success:
env.AddPreAction("buildprog", nanopb_callback)

So what am I missing and how can my problem be solved?

Hi Péter
that's from way back - things have become much simpler nowadays
have a look at this repo: https://github.com/mhaberler/nimble-bl5-examples/blob/protobuf/platformio.ini
just fork, checkout the protobuf branch and build it - it has all the nanopb moving parts addressed

Hi Michael!
Thanks for the incredibly fast response!
Wow, this new approach is indeed much simpler and works without any problems, thank you for your help!


⚠ SceneTime has degraded performance

In e0fa318, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 1193 ms

Resolved: SceneTime performance has improved in 448ccfc after 9 minutes.


Improve README steps to build the system [skip ci].

Reduce the number of dependencies to install.
Add documentation for OpenSuSE, clarify that the
steps for Ubuntu Bionic also work for Ubuntu Xenial. Sadly the
steps for Ubuntu Trusty are quite convoluted, created #913 to
improve that. Add the steps for Debian Stretch.
I created a bunch of Dockerfiles to test these instructions.

@frankyn any thoughts?

PTAL.

Overall looks much better. The instructions are much more concise.
Open question is more new Dockerfiles being added to verify README.md are these already included in CI tests?

@frankyn I forgot to mention that we created #915 as a reminder to automatically check the instructions.

Understood, thanks @coryan, appreciate your patience! LGTM


Make edit channel dialog use single-convo RPC

...instead of loading channel infos for the whole team.

r? @keybase/react-hackers cc @cjb and @mmaxim

not sure what's up with the codecov report -- the listed files aren't touched by my PR


Better error message on failed window import

Description
This PR shows a better error message when an exception occurs while importing napari/_qt/qt_main_window.py.
This would have been useful for https://forum.image.sc/t/add-napari-to-another-window/61462/5 ... and also @AhmetCanSolak had a case recently where this would have been helpful

Looks like all windows tests are failing here - i'm not sure if this is PR specific or general on the repo right now

This is/was due to the github brownout of git:// urls. The brownout should be done, and I rebased again so all should be good.

Thanks @Carreau - this can now go in I think!!


Terminal: ANSI Underlines are rendered in the wrong color/not at all

Your Windows build number:  (Type ver at a Windows Command Prompt)
Microsoft Windows [Version 10.0.18885.1001]

What you're doing and what's happening: (Copy & paste specific commands and their output, or include screen shots)
When running colortest-16 in WSL from inside Windows Terminal, underline sequences are rendered in strange colors (if they get rendered at all). Here is a comparison between the Terminal and the classic console:

What's wrong / what should be happening instead:
The Terminal should render ANSI underlines in the current foreground color.

Yeah I'll get to this.

I saw this, but doing research on whether I should file a bug or not, I couldn't find anything which defined what the behavior actually should be. In some cases, the color of the underline seems to benefit the visibility. Is there a way to use escape codes to set the color of the underline?

I'm 99% sure that this is in CustomTextRenderer::_FillRectangle in the DxRenderer. We think it's a BGR vs RGB problem.

I take that back; I don't know how the DxRenderer draws underlines. They're not coming from CustomTextRenderer::DrawUnderline, that's for sure.

It's probably in PaintBufferGridLines given that an underline has been traditionally part of the box drawing set.
https://github.com/microsoft/terminal/blob/bd5cae13281401cda50cff29b6dda29b8350cc07/src/renderer/dx/DxRenderer.cpp#L929-L1001


Add visualisation for logs data (ideally in real-time)

For example using something like https://www.loggly.com/ or kibana
Here is where the logs are currently exposed

this is now done using Loggly (see #174)


style(all): remove kebab case css names

Bundling for modules has been problematic due to css modules and kebab case. Switching the css classes to camel case should remove some of the headache.

Deploy preview for hopeful-hamilton-4090b9 ready!
Built with commit ee0e318a75940e1655c8e9297ed5daf4bcabaf45
https://deploy-preview-754--hopeful-hamilton-4090b9.netlify.com


Master

Changelog update for 1.9.2

Hi @rnagpal, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;


Responsive use of aspect ratio

Hello!
I'm right now trying to incorporate this into a nuxt + prismic.io project.
This all looks great for now, but I cannot get my head around this.
How would you define responsive aspect ratios?
e.g. you have an image with an aspect ratio of 16:9 on desktop and a ratio of 1:1 on mobile.
Would that be possible with the api?
cheers
Florian

Hey @funkeeflow, it sounds like what you are looking for can be achieved with the <ix-picture> component. Feel free to check out the example in our documentation and let me know if it is helpful.

I'm going to close this issue for now, but please feel free to comment back if you have any more questions.


Avoid tight-looping in the rate limiter test

We have conflicting goals here:

Hammering the rate limiter
Maintaining enough control to make the test reliable

The latter is probably more important - we should still get plenty
of hits on the rate limiter.
Fixes #610 - hopefully!

(Whoops - hadn't actually reinstated the test!)