Inotify stream API doesn't seem to work well when watching a file directly.

When trying to watch files using a path as &str that points directly to a file
After modifying the file with Mask to ALL_EVENTS,
I only get those 4 events:
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: MOVE_SELF, cookie: 0, name: None }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: ATTRIB, cookie: 0, name: None }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: DELETE_SELF, cookie: 0, name: None }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: IGNORED, cookie: 0, name: None }

Then any modification to the file doesn't trigger any event. I could be wrong but it seems that from those events, inotify watch a file and when I save it, the file gets "deleted". I'm saving with vim, so it could be possible as it's more or less exchanging file with a swap file.
Here's a complete log when logging directory.
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: CREATE, cookie: 0, name: Some("4913") }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: OPEN, cookie: 0, name: Some("4913") }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: ATTRIB, cookie: 0, name: Some("4913") }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: CLOSE_WRITE, cookie: 0, name: Some("4913") }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: DELETE, cookie: 0, name: Some("4913") }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: MOVED_FROM, cookie: 810220, name: Some("config.json") }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: MOVED_TO, cookie: 810220, name: Some("config.json~") }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: CREATE, cookie: 0, name: Some("config.json") }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: OPEN, cookie: 0, name: Some("config.json") }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: MODIFY, cookie: 0, name: Some("config.json") }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: ATTRIB, cookie: 0, name: Some("config.json") }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: CLOSE_WRITE, cookie: 0, name: Some("config.json") }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: ATTRIB, cookie: 0, name: Some("config.json") }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: DELETE, cookie: 0, name: Some("config.json~") }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: OPEN, cookie: 0, name: Some("config.json") }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: CLOSE_NOWRITE, cookie: 0, name: Some("config.json") }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: OPEN, cookie: 0, name: Some("config.json") }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: CLOSE_NOWRITE, cookie: 0, name: Some("config.json") }
event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: MODIFY, cookie: 0, name: Some(".config.json.swp") }

I can't say exactly if its a bug as watching the file probably watch changes until the fd is dead... But shouldn't it watch in case the file gets created too? Watching the folder is probably my best solution as in theory none of the other file should get updated other than config files and filtering on the name should be fairly easy.

I ended up watching the directory. It just it wasn't very obvious at first that the watching a file watches a file descriptor and track its wherever it end up if it gets renamed/moved but if the name change for something else, it doesn't suddenly start watching anything at the location of the initial watch.

I watched a directory to know if it is removed, but I got :
Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: MOVE_SELF, cookie: 0, name: None }
File moved self: None

But it did not give me the info about the directory is moved to.

@itfanr: I'm not sure, but maybe you need to watch each file in the directory instead of or in addition to the directory itself? Check out the inotify man page: https://www.man7.org/linux/man-pages/man7/inotify.7.html
There are different event generated for directories (IN_MOVED_FROM and IN_MOVED_TO) and files (IN_MOVE_SELF). Maybe the IN_MOVE_SELF for the file is more useful.

@hannobraun  Thank you. I have to watch the parent directory to get the info I want.


Submissions script not fired upon successful submission

Upon checking the Sources tab in Dev Tools, the script is not loaded.

Even though the tabs present on the a Leetcode problem page have different URLs, it is a single page-application. Loading different scripts based on URL will not work because there is no page load or reload when tabs are clicked.

Changed loading of scripts based on URLs for problems and submissions, to loading both the content scripts on the url: https://*.leetcode/problems/*
The submission script is fired on Submit button on-click, so it should not present a problem even if tabs are changed manually.
Changes made in afbecd02076e72c0ecc66be3638ca8c12c7f8dff
Test more before closing.


witness: Internal Server Error when trying to query oobi for delegated multisig AID

Currently, we are experiencing internal server errors in witnesses for a multisig AID that has been delegated from another multisig AID created in keripy. The error we are experiencing is this:
2024-04-17 12:42:59 [FALCON] [ERROR] GET /oobi/<multisig-prefix>/witness/<witness-prefix> => Traceback (most recent call last):
--
File "falcon/app.py", line 365, in falcon.app.App.__call__
File "/keripy/src/keri/end/ending.py", line 594, in on_get
msgs = hab.replyToOobi(aid=aid, role=role, eids=eids)
File "/keripy/src/keri/app/habbing.py", line 2007, in replyToOobi
return self.replyEndRole(cid=aid, role=role, eids=eids)
File "/keripy/src/keri/app/habbing.py", line 1962, in replyEndRole
msgs.extend(self.replay(cid))
File "/keripy/src/keri/app/habbing.py", line 1546, in replay
for msg in self.db.cloneDelegation(kever=kever):
File "/keripy/src/keri/db/basing.py", line 1307, in cloneDelegation
dkever = self.kevers[kever.delegator]
File "/keripy/src/keri/db/basing.py", line 68, in __getitem__
raise ex  # reraise KeyError
File "/keripy/src/keri/db/basing.py", line 63, in __getitem__
return super(dbdict, self).__getitem__(k)
KeyError: '<delegator-prefix>'

The impliciation of this is that no one can resolve the OOBI of our multisig AID. We have not been able to create a consistent reproduction. There is a related issue in keria that is also having problems with the same AID: https://github.com/WebOfTrust/keria/issues/231.
Does anyone have any clue of what the cause might be?
We are using keripy version: 1.1.10

Yes, your witness has received your delegated multisig AID inception event without receiving the approving delegator's KEL.  it is the controller's responsibility to ensure the witnesses have all the artifacts they need to provide a valid KEL.
The fix here is that the witness should check to ensure a delegated AID has been approved before responding to an OOBI request.  In this case, the witness should return a 404 for the OOBI of the delegated multisig AID until it receives the anchoring event.

Brilliant @pfeairheller thank you for the info and PR!
@lenkan i'm looking forward to your update after trying it with the witness having received the delegator's KEL w/ anchoring event.

Thanks for your reply and PR!
I have not yet been able to try the update. Will report back.

Yes, your witness has received your delegated multisig AID inception event without receiving the approving delegator's KEL. it is the controller's responsibility to ensure the witnesses have all the artifacts they need to provide a valid KEL.

When you say it is the controllers responsibility to ensure the witnesses have all the data. In a Signify controller + Keria agent setup, would it be the signify controller or keria agent responsibility?
Also, I recall you did something during a session we had where you did resent the KELs to the witnesses. Is this possible currently through a Keria endpoint?

From our KERI dev meeting:
delegators KEL must be sent to witness so that they are aware of the delegation event. KERIA hopefully has the functionality, this needs to be confirmed. On main of KERIA the ordering has changed, this was tested with 0.1.2 (latest)
In that version Receiter from KERIpy... more details to follow.
Can this be repaired? KERIA probably not. From command line witness submit could catch it up. Possibly 'witness submit' in KERIA could be a workaround.


Tearing when panning quickly

🐛 Bug
I noticed that when panning an image quickly you can introduce some tearing in the image. @royerloic says this might be avoided by changing vsync settings in vispy.
To Reproduce

Display the astronaut image
Click and hold
Move mouse around rapidly

Expected behavior
Panning should be smooth.
Environment

napari-gui Version (e.g., 1.0): master
OS (e.g., Linux): Ubuntu 18.04
Python version: 3.6
Any other relevant information: Intel Core i5 (8th gen), integrated graphics.

@jni do we know if this is still an issue / can you provide some more info - I don't think I've seen anything like this on my mac or maybe i just havn't noticed / it hasn't bothered me.

Honestly, it happens on firefox webpage rendering on my laptop, so I think it's just Linux interacting badly with OpenGL. Probably not an issue with napari but with my graphics drivers. I'll close for now.


Page feedback

Suggested improvements for page: https://opentelemetry.io/docs/demo/feature-flags/
I was expecting an explanation of which SDK commands were used in the source code to build the demo in: https://opentelemetry.io/docs/demo/docker-deployment/.

@open-telemetry/demo-maintainers Thoughts on this?

Hello @nelsonestevaomartins could you elaborate a bit?
I'm not sure I understood what you are missing.

Revisiting this issue, I believe what @nelsonestevaomartins is actually looking for is already there, but in a different page.
@nelsonestevaomartins, you can check how each service is configured in here: https://opentelemetry.io/docs/demo/services/


label metrics by route

Hi,
is it possible to label the metrics by configured route instead of endpoint?
e.g. if I have a route with path parameters (e.g. /foo/:bar/:baz) I want to get one set of metrics (or optionally one per allowed value of :bar and :baz by adding additional labels) instead of one per actual endpoint hit by anyone
currently there is a possible problem with exploding metrics if path params have high cardinality, either intentionally or someone trying to break our APIs

That is almost good, but sadly won't work with nested routers. This means if we do the same thing as in the axum example, we would still get a unique entry in Prometheus per unique path for nested routers.

I started to experiment in #5 with the solution I mentioned above. What do you think about it?

it should be fine as a workaround (or low-level api), but it implies to duplicate all route paths into the metric builder.
ideally the layer can get all routes from axum and use them internally, and the user can configure if it wants the endpoint or route (and if the route doesn't match, if it fallbacks to the endpoint or a constant label)
ps: with this API, can I tell it to group all unknown endpoints (i.e. when nothing matches) into one? (or to ignore anything that doesn't match a group?)

As far as I can see now, we can't get the inner routing information from axum other than MatchedPath or request.uri(). Even if we could, I have no idea how to even hook into the existing router to accept additional parameters (assuming you mean to be able to put an additional parameter into the original axum router that affects metrics) - that's beyond the scope of what a middleware should be able to do. Again, probably it is possible to achieve that with macros, but I'm not planning to go into that direction with this crate.

no I mean in the metrics builder. something like this:
let prometheus_layer = PrometheusMetricLayer::builder()
    .with_endpoint_label_type(Type::Endpoint) // or ::Route, or ::RouteWithFallback("unknown"), etc...

and the middleware internally switches between using uri() or MatchedPath or something else

You can filter for the status label != 404 though

I solved this by adding the layer using route_layer instead of layer so it only attaches to actual routes

I guess we could add with_endpoint_label_type to the builder, but the fallback variant won't work because of what I mentioned above.
One thing that feels unfortunate that it's sort of ambiguous to use MatchedPath - people will get confused when they have nested routers and suddenly it starts falling back to uri(). That being said, probably with careful defaults and good documentation we could eventually support this. I'll try to experiment.

Just released 0.3, which should solve this issue, see #5 and #8. I hope it suits your needs.


Ohloh icon request

An icon for ohloh would be great, you can see their favicon when you go to their and here I wound a similar one.

I can’t figure this one out. It seems like there’s been an acquisition or rebrand since the issue was created. I’m going to close this.


Because I love you ♥ I want to contribute to add documentation for this Lovely Module!

There are lots of frameworks to do the docs part, just let me know if you have something in mind (e.g. nuxt content / docusaurus / vuepress / .... etc

Hi and thanks for your interest in this module.
Don't get me wrong but I don't think it's necessary to add a separate site for documentation at the moment. All options are explained in the README.md file.
But feel free to give your opinion and comments on whether something needs to be added or edited.

oh nice, no issues,.. I loved the idea anyways

Thanks for the suggestion anyway. Closing this since there is no issues.


Change ExecuteUntilAllBlocked to return an error, rather than a pointer

(I'm guessing the previous was landed too quickly and reverted, so I'm opening a new one with
the same contents as the original, but with working tests.  I figure this one might benefit from some
discussion anyway)

While going through these tests, I reached a “…. huh.  probably not a good thing” point.
internal_coroutines_test.go calls *dispatcherImpl.ExecuteUntilAllBlocked, which is defined as:
func (d *dispatcherImpl) ExecuteUntilAllBlocked() (err *workflowPanicError)
that means that require.NoError(t, d.ExecuteUntilAllBlocked()) will fail if this func returns nil
(like it normally does) - it’s a typed nil, so err != nil if it's boxed into an interface.
This seems like it could pretty easily surprise anyone.  Utility code very frequently does this kind
of "accept any err" code, so it feels like a landmine waiting to go off in the future, though it
currently works fine.

Pull Request Test Coverage Report for Build 547

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 75.472%

Totals

Change from base Build 543:
0.02%

Covered Lines:
8800

Relevant Lines:
11660

💛  - Coveralls


Dark mode not working when adjusting screen size and background color of  navbar is too bright

Description
When resizing the browser window, dark mode does not adapt properly to the screen size changes. The expected behavior is that dark mode should consistently work regardless of screen dimensions. However, in this case, the dark theme either reverts to light mode or does not fully apply across the interface when resizing. This issue occurs on both larger and smaller screens and seems to be linked to dynamic resizing behavior.
https://github.com/user-attachments/assets/60d596f3-013d-4de1-887b-c35ffe249b00
I would like to work on this please assign to me.

Assign me this task

Hi, could you please assign this issue to me? I'd love to contribute as part of Hacktoberfest.


Add React Hooks for customization (part 10)

Related to #2539.

Please merge #2540, #2541, #2542, #2543, #2544, #2547, #2548, #2549, #2550 before reviewing this one.
Changelog Entry

Resolves #2539, added React hooks for customization, by @compulim, in the following PRs:

PR #2540: useActivities, useReferenceGrammarID, useSendBoxDictationStarted
PR #2541: useStyleOptions, useStyleSet
PR #2542: useLanguage, useLocalize, useLocalizeDate
PR #2543: useAdaptiveCardsHostConfig, useAdaptiveCardsPackage, useRenderMarkdownAsHTML
PR #2544: useAvatarForBot, useAvatarForUser
PR #2547: useEmitTypingIndicator, usePeformCardAction, usePostActivity, useSendEvent, useSendFiles, useSendMessage, useSendMessageBack, useSendPostBack
PR #2548: useDisabled
PR #2549: useSuggestedActions
PR #2550: useConnectivityStatus, useGroupTimestamp, useTimeoutForSend, useUserID, useUsername
PR #2551: useLastTypingAt, useSendTypingIndicator, useTypingIndicator

Description
Add several post message related hooks:

useLastTypingAt
useSendTypingIndicator
useTypingIndicator

Specific Changes

Added the following hooks:

useLastTypingAt
useSendTypingIndicator
useTypingIndicator

Updated components to use aforementioned hooks

[x] Testing Added

Coverage increased (+0.9%) to 64.247% when pulling 752b3462f0d6834a51c123460fb50e22261fdaee on compulim:feat-redux-hooks-10 into 9b06bccb13fabd76e320afabb9ae3bda48ed35c2 on microsoft:master.


Building on windows

Get an issue when doing npm install and building. Anyone else managed to build slideout on windows, or is it not supported?

It's jsdom causing the issue. Doesn't appear it's even needed if you want to simply npm run dist

I don't use windows. But, it should work.

@garygreen It has to do with contextify. Please check out their wiki section about installing using windows. https://github.com/brianmcd/contextify/wiki/Windows-Installation-Guide If there is something we can do for Slideout to make it work let us know.

I'm not sure what the jsdom is actually used for in slideout, is it during the testing? I've just seen on the internet that jsdom is a bit of a nightmare to get installed / working on windows, maybe another package could be used in slideout like, cheerio.js?

Yes, we are using jsdom to run tests on Travis CI.

Anyone with the same issue who can help.


Cleanup AbstractOMBuilder class for generating models

Codecov Report

Merging #1863 (f346157) into master (80b6981) will increase coverage by 0.02%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master    #1863      +/-   ##
============================================
+ Coverage     87.58%   87.61%   +0.02%
- Complexity     7791     7794       +3
============================================
  Files           227      227
  Lines         21106    21120      +14
============================================
+ Hits          18486    18504      +18
+ Misses         2620     2616       -4

Flag
Coverage Δ

5-max
87.61% <100.00%> (+0.02%)
:arrow_up:

7.4
87.61% <100.00%> (+0.02%)
:arrow_up:

agnostic
66.95% <97.50%> (+0.04%)
:arrow_up:

mysql
68.88% <95.00%> (+0.03%)
:arrow_up:

pgsql
68.90% <95.00%> (+0.03%)
:arrow_up:

sqlite
66.72% <95.00%> (+0.04%)
:arrow_up:

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

Impacted Files
Coverage Δ

src/Propel/Generator/Model/Table.php
91.41% <ø> (+0.67%)
:arrow_up:

src/Propel/Generator/Builder/DataModelBuilder.php
89.52% <100.00%> (+0.20%)
:arrow_up:

.../Propel/Generator/Builder/Om/AbstractOMBuilder.php
96.45% <100.00%> (+0.08%)
:arrow_up:

src/Propel/Generator/Model/Column.php
96.36% <100.00%> (ø)

src/Propel/Generator/Model/ForeignKey.php
94.70% <100.00%> (+0.05%)
:arrow_up:

Continue to review full report at Codecov.

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


specify registry from terminal

Fixes #70

Hey Tom, thanks for the PR, try running grunt jshint, looks like there is a jshint problem. Try also grunt test-local to ensure jshint and tests are all green

@matteofigus jshint fails at line 41 of cli/facade/ls.js, with message "Possible strict violation." referring to use of 'this'. How do I correct it?

Well done, thanks!


Does not support HA

When a primary or secondary master is classified as so, there are many conflicts and a duplicate declaration that arise from the puppet_enterprise::profile::database class.
Ideas for fix:

Not manage the settings if it's a HA master (Not great, as they are useful settings)
Use a nasty hack to make the puppet_enterprise resources that conflict write to the wrong file
Use a nasty hack to override the values that the resources are enforcing

Conflicting resources:

/Stage[main]/Pe_databases::Postgresql_settings/Postgresql_conf[log_autovacuum_min_duration]
/Stage[main]/Puppet_enterprise::Profile::Database/Pe_postgresql::Server::Config_entry[log_autovacuum_min_duration]/Pe_postgresql_conf[log_autovacuum_min_duration]
/Stage[main]/Pe_databases::Postgresql_settings/Postgresql_conf[log_temp_files]
/Stage[main]/Puppet_enterprise::Profile::Database/Pe_postgresql::Server::Config_entry[log_temp_files]/Pe_postgresql_conf[log_temp_files]
/Stage[main]/Pe_databases::Postgresql_settings/Postgresql_conf[work_mem]
/Stage[main]/Puppet_enterprise::Profile::Database/Pe_postgresql::Server::Config_entry[work_mem]/Pe_postgresql_conf[work_mem]
/Stage[main]/Pe_databases::Postgresql_settings/Postgresql_conf[max_connections]
/Stage[main]/Puppet_enterprise::Profile::Database/Pe_postgresql::Server::Config_entry[max_connections]/Pe_postgresql_conf[max_connections]

To my knowledge, there's nothing managed in the postgresql_settings class that isn't managed by puppet_enterprise::profile::database.
I'd probably just do
class { 'pe_databases':
  manage_database_maintenance => false
}

class { 'pe_databases::postgresql_settings::table_settings : }

Although you might have to set the parameters on table_settings if postgresql_settings isn't included?  I could add a pick() to the parameters if that's the case.
Since PE 2018.1 will include a PE database node group that includes the puppet_enterprise::profile::database class I can easily just stop managing the postgresql_settings based on version, however, I don't know how to make that decision based on whether it's an HA install or not.


WiGig 802.11ad/ay

Anyone's guess how this would perform latency wise on WiGig Devices?  Also can encoding be changed to support H265 (HEVC)?

Also can encoding be changed to support H265 (HEVC)?

No.
Are there any Android device able to hardware-encode to H.265?
When AV1 or H.265 will be widely available in hardware encoding, yes, scrcpy will need it.

Thanks rom1v.

No idea.
Currently, the big problem with latency over wifi is packet loss for TCP (which blocks everything until the packet is resent). If your wifi is "ok" and you use a reasonable bitrate, the latency is not that high (scrcpy -m800 -b2M).

Thanks rom1v for everything.


lake build does not rebuild alloy

It seems that if I change my .lean file (Seccomp.lean), it does not rebuild the .alloy.c. file. I can make it do so by deleting it explicitly.
Here, loogle is an executable using Seccomp, and Seccomp.lean has been changed:
~/build/lean/mathlib4 $ lake build loogle
[258/374] Building Seccomp
[372/374] Building Loogle.Main
~/build/lean/mathlib4 $ lake build +Seccomp:alloy.c
~/build/lean/mathlib4 $ rm ./build/ir/Seccomp.alloy.c
~/build/lean/mathlib4 $ lake build +Seccomp:alloy.c
Generating Seccomp alloy
~/build/lean/mathlib4 $ lake build loogle
[370/374] Compiling Seccomp alloy
[371/374] Linking Seccomp
[372/374] Building Loogle.Main
[374/374] Linking loogle

That was quick ❤


Home Assistant energy not reset

Hi, starting from last HA Update (march version), energy seems to be not well resetted to zero ad midnight

This is happening only on
mss310r 2.0.0 Firmware: 2.1.4 (latest today)
But is working fine on
mss310 6.0.0 Firmware: 6.3.6 (latest today).
I'm running MerossLAN V.3.0.2
Do you have any suggestion?
Thanks a lot

Eh..that's bad since it happens also on my mss310 (exactly same old fw 2.1.4) but I still have HA 2023.2.
Also, the sensor values sent to HA are exactly the state coming from the device (This is a design decision I try to enforce almost everywhere possible). This is especally true for the device energy reading so I really guess it's a bug in the firmware.
Now this opens a question if I should fall apart a bit in the design rule and maybe process the device data to acually reset them but still, if the device doesn't report the expected consumption this might be worse than the bug itself.
I guess the energy statistics are not affected though (they should reset for the day) since HA should rightly process the reset for the sensor at the first reading posted after midnight.

I think identification with firmware can help.
Eventually, if is possible to enter a manual number for each device, can be dynamically subtracted from the readed value, but of course would be better a restore of previous behavior.
I'm part of beta program, so I'm glad to help debugging and give you feedback using beta releases, just let me know how you prefer to proceed.
Thanks a lot in advance for the wonderful integration you've done :)

Thank you,
I've checked the HA statistics and they seems affected too but the problem lies in the firmware and I have to think a bit about it...
sadly enough these data will 'corrupt' the long term statistics..I'll try and see if I can come up with a quick patch

Oddly enough, I have a spare mss310 with same fw level that I use for development and its energy value got reset correctly on 1st of march.
Maybe, since I keep unplugging it, a boot cycle of the device could reset the device state (I hardly think this is tru since historic energy data are surely stored in a sort of eprom/flash inside the device but this is the only thing that comes to my mind in order to explain why, this very same device model, doesn't show the issue.
You could try too to unplug and restatrt the mss310 and see what happens

I'm working on a 'quick' (not so quick tbh) fix but while working on that different things popped up in my mind...
I hope to finalize that tomorrow and update the release.
I'm basically building a new sensor for the energy based off device power readings. I'm still testing a bit of things but the idea is
to bypass the meross integral sum (or give the option to)

Hello @0p3t0,
You could find the patched code in the 'lazy_dev' branch. If you're up to you could give it a shot and see if it works.
As I've previously said, patching the original readings might lead to worse results as soon as the devices change their behavior (which happened with the bug but could happen again with unforeseen ramifications)
Long story short:
the original device consumption reading is still there but I've added an euristic to try reset it's daily reading when catching the behavior of this bug. If the device doesn't show the bug the patch doesnt kick in so the readings are still the 'original' one.
Beside this, I've added an extra sensor ('energy_estimate') which instead calculates the integral sum of power readings in meross_lan thus emulating the energy consumption. This sensor is totally in code and, in my experiments, looks pretty promising and follows accurately the consumption readings from the device, except that, being implemented in meross_lan, any bug should be fixable in case ;)
Those two sensors in the end should show 'almost' exact same values when the device is connected.
Of course, when the device is not reachable, the software sensor cannot calculate any sum so it will just sit and start counting again only when the device is connected again. You could then see this sensor falling a bit behind every time the device is working (so its counter summing) while not connected to HA
The software sensor sum should survive HA restarts too since it (should) restores its last good state and restart from there when HA is restarted or the configuration changes
Last thing but the most important: HA/meross_lan must be connected to the device across midnight in order to catch the first consumption reading from the device for the new day and see if it needs to 'offset' the readings for the day or not. If not, it cannot tell if the day was starting good thus relying on what the device is reporting.
That said, when you install this, you should see the energy reset kick in correctly by midnight

Thanks a lot, just downloaded the source and replaced custom component folder.
I'll plan a midnight reboot in order to reconnect to HA all devices and start the communication in right way.
I'll let you know in next days the behavior, in the meanwhile thanks a lot for the excelent work!

You should have it running 'before midnight' (at least before the last consumption update before midnight to be more precise) so the transition could rightly be intercepted else it will not know something wrong happened from the last known value from the day before. Anyway I will post some other improvements over the day and let you know. Right now, your version should work (mine got correctly 'fixed' tonight)

I confirm is now working much better!

Also new sensor Energy Estimate is working, not same values, but acceptable to have an idea about consumption :)

How the energy sensors work with Lazy.3
This is  a recap of the features provided in Lazy.3 for energy consumption. Their final implementation is based off the current thread issue and some other tweaks which are detailed here:
There are now 2 energy measures per device in meross_lan and they work as this:

'energy' (the legacy one): This sensor is just reporting the energy measure computed inside the device. This sensor, usually resets at midnight in device local time (this is important to know if you want to see the reset 'aligned' to HA local time midnight). HIstorically, meross_lan didn't process at all this reading so, the values reported in HA, were exactly the (last in time) values reported by the device with almost no 'data processing'. This has changed in Lazy.3 in order to fix the bug (in device firmware 2.1.4) reported on this issue. Now meross_lan tries to detect if the energy reset (which still occurs at device midnight local time) is 'reasonable' (it should always reset to 0 or 1 in a simple world but this is not true, actually depending on the average power consumption level during the update period, so, if you have a big consumption across midnight, the value starting the new day is not 0 but a bigger level). The fix then is trying to compute a reasonable value for the starting level and if it detects the device is not reporting a good value, meross_lan will offset the readings for the day (on next midnight it will compute the reset/offset again). This behavior (and the fact meross_lan is 'offsetting' readings) is inspectable in the sensor attributes: you will see an 'offset' attribute in case meross_lan is patching the value or nothing if the reading was 'good' at midnight and is not being patched. In the end you should always see a proper reset after midnight (always in device local time!) even for devices experiences this and maybe other accumulation/tripping bugs. This offset is persisted through reboots so, if you'll restart HA during the day, you should still see the sensor data 'patched' for the day. Important to note: meross_lan will detect the issue only at midnight tripping so it will not patch any value 'in the wild' when you re-start HA
'energy_estimate' (new sensor in Lazy.3): While working on the fix, I've found it reasonable to provide a 'completely new' sensor reporting energy in a different way. This sensor is implemented in meross_lan and is not reporting energy computed in the device. It just provides an integral (trapezoidal) sum of power readings (something you could even implement with templates or with https://www.home-assistant.io/integrations/integration/). This sensor is initially disabled to not clutter your UI and HA with an almost duplicated sensor but you could easily put it at work should you prefer it over the legacy one. Check the pros-cons for hints on deciding

Short comparison
'energy' (legacy):

provides almost native values computed in hw (should be very accurate)
as far as the device is powered it measures energy even if not connected to HA (so you don't lose data should you have HA offline or any connection issue)
resets at device midnight local time
even if unusual it sometimes fails because of firmware bugs (not always 'patchable' at meross_lan level)
on HA restarts, if meross_lan was offsetting the data for the day, it will keep (restore) the offset for the day

'energy_estimate' (newer software implementation):

it is slightly less accurate since it estimates energy only on power sampling (which happens every 30 sec by default) by HA/meross_lan
if HA is not running it doesnt measure (so you lose data)
it resets at midnight HA local time
doesnt suffer any device firmware bug (unless power readings are bugged!) and you can always blame me for any inconsistency. Any bug, being in meross_lan, could be fixed
on HA restarts it restores its previous reading for the day and re-starts accumulating energy (so you just lose energy consumed while offline)

Just for future (and past) reference, I finally came across the same type of issues previously reported for the same kind of bug. It looks it is not only on 2.1.4 fw but spreads across multiple ones.
Oddly enough it looks like the 1st of march is a kind of a trigger...
At any rate the Lazy.3 patch would fix all of these since they all show the same pattern


AFNetworking 2.5.0 (#2411) breaks AFNetworkActivityIndicatorManager on iOS 7

My swizzle-fix for #1477 broke AFNetworkActivityIndicatorManager on iOS 7.
Reported by @erikjalevik here.
The swizzle was intended to replace KVO-watching the NSURLSessionTasks' state by producing NSNotifications whenever -resume or -suspend was called on any NSURLSessionTask.
On iOS 8, this approach works. On iOS 7, however, the public subclasses of NSURLSessionTask do not actually derive from a class called NSURLSessionTask . Instead, they derive from a class called __NSCFLocalSessionTask. Swizzling its -resume and -suspend methods works, and solves the issue.
But...as the name suggests, it's a private class. We can't go about calling NSClassFromString("__NSCFLocalSessionTask"). But could we swizzle [taskInstance superclass]? I'm not sure.
Code here: https://github.com/AFNetworking/AFNetworking/pull/2459

Hi, any news on this?

Fixed by #2477.


Freebayes genereted gvcf files contains errors

Hi,
First I want to thank you for freebayes, it's a great tool!
I am generating gvcf files for over a 100 samples using a reference genome of about 10^9 bp.  I call variants using the folowing command line:
freebayes --genotype-qualities --strict-vcf --ploidy 2 -f {refGenome} --gvcf --gvcf-dont-use-chunk true --vcf {variantFile} {dedupBamFile}
Variant calling does not fail, but downstream splitting into SNP and INDEL using gatk SelectVariant does fail on several samples with the same error (except for the line number):
The provided VCF file is malformed at approximately line number 973642001: empty alleles are not permitted in VCF records
When investigating the gvcf generated by freebayes (relevant parts only shown below, escaped some stars to avoid markdown issues) I noticed that those empty alleles are part of a chunk in the next contig with coordinates of the previous contig. In the example given, I get a chunk in contig SWJQ01000002.1 for the range 8013061 - 8013090. This should be in contig SWJQ01000001.1 and it should not be as a chunk (see command line above). The same type of error happens for the next scaffolds (only 2 more shown in excerpt, many more in the gvcf).  About 20% of my samples produce a gvcf with this type of errors, all were analyzed using the same reference genome and freebayes command line. Unless I missed something, this looks like a bug?
##fileformat=VCFv4.2
##fileDate=20200820
##source=freeBayes v1.3.2-46-g2c1e395
##reference=XXX
##contig=<ID=SWJQ01000001.1,length=8013090>
##contig=<ID=SWJQ01000002.1,length=5190156>
##contig=<ID=SWJQ01000003.1,length=2769777>
##contig=<ID=SWJQ01000004.1,length=397823>
...
SWJQ01000001.1  8013059 .       T       <*>     0       .       DP=0;END=8013059;MIN_DP=0       GQ:DP:MIN_DP:QR:RO:QA:AO        -0:0:0:-0:0:-0:0
SWJQ01000001.1  8013060 .       G       <*>     0       .       DP=0;END=8013060;MIN_DP=0       GQ:DP:MIN_DP:QR:RO:QA:AO        -0:0:0:-0:0:-0:0
SWJQ01000002.1 8013061 .       .       <*>     0       .       DP=0;END=8013090;MIN_DP=0       GQ:DP:MIN_DP:QR:RO:QA:AO        -0:0:0:-0:0:-0:0
SWJQ01000002.1  1       .       T       <*>     0       .       DP=0;END=1;MIN_DP=0     GQ:DP:MIN_DP:QR:RO:QA:AO        -0:0:0:-0:0:-0:0
SWJQ01000002.1  2       .       A       <*>     0       .       DP=10;END=2;MIN_DP=10   GQ:DP:MIN_DP:QR:RO:QA:AO        370:10:10:370:10:-0:0
...
SWJQ01000003.1  5190107 .       .       <*>     0       .       DP=0;END=5190156;MIN_DP=0       GQ:DP:MIN_DP:QR:RO:QA:AO        -0:0:0:-0:0:-0:0
...
SWJQ01000004.1  2769587 .       .       <*>     0       .       DP=0;END=2769777;MIN_DP=0       GQ:DP:MIN_DP:QR:RO:QA:AO        -0:0:0:-0:0:-0:0
...
Yannick

I am affraid I cannot share data from this project at this time and mainly wanted to report the issue. I currently don't have time to build and try a smaller subset resulting in this error as I am on a deadline for this work. For now, I am just removing those lines from the vcf so I can proceed with my analysis.
If you manage to fix it, I am willing to do some tests using my data to give you feedback. Just let me know.

More strange things in the same gvcf output.
After removing the chunk lines above, splitting SNPs and INDELS with gatk SelectVariant still fails with the same error as before.  This time I could identify the error related to the error message: the ALT allele is empty (i.e. the tabs from previous and next column have nothing between them) for a deletion (see below). I am using --strict-vcf with freebayes and if I am interpreting the VCF specification document correctly, this is indeed not allowed:

ALT — alternate base(s):  Comma-separated list of alternate non-reference alleles.  These alleles do not have to be called in any of the samples.  Options are base Strings made up of the bases A,C,G,T,N (case insensitive)or  the  ‘*’  symbol  (allele  missing  due  to  overlapping  deletion)  or  a  MISSING  value  ‘.’   (no  variant)  or  an angle-bracketed ID String (“”) or a breakend replacement string as described in Section 5.4.  If there are no alternative alleles,  then the MISSING value must be used.  In other words,  the ALT field must be a symbolic allele, or a breakend replacement string, or match the regular expression ^([ACGTNacgtn]+|*|.)$. Tools processing VCF files are not required to preserve case in the allele String, except for IDs, which are casesensitive.  (String; no whitespace, commas, or angle-brackets are permitted in the ID String itself)

...
SWJQ01000668.1	272340	.	C	<*>	0	.	DP=2;END=272340;MIN_DP=2	GQ:DP:MIN_DP:QR:RO:QA:AO	74:2:2:74:2:-0:0
SWJQ01000668.1	272341	.	G	<*>	0	.	**DP=2;**END=272341;MIN_DP=2	GQ:DP:MIN_DP:QR:RO:QA:AO	74:2:2:74:2:-0:0
SWJQ01000668.1	272342	.	CTCA		22.2017	.	AB=0;ABP=0;AC=2;AF=1;AN=2;AO=2;CIGAR=4D;DP=2;DPB=0;DPRA=0;EPP=7.35324;EPPR=0;GTI=0;LEN=4;MEANALT=1;MQM=28.5;MQMR=0;NS=1;NUMALT=1;ODDS=5.10485;PAIRED=1;PAIREDR=0;PAO=0;PQA=0;PQR=0;PRO=0;QA=48;QR=0;RO=0;RPL=2;RPP=7.35324;RPPR=0;RPR=0;RUN=1;SAF=0;SAP=7.35324;SAR=2;SRF=0;SRP=0;SRR=0;TYPE=del;technology.ILLUMINA=1	GT:GQ:DP:AD:RO:QR:AO:QA:GL	1/1:21:2:0,2:0:0:2:48:-4.02319,-0.60206,0
SWJQ01000668.1	272346	.	G	<*>	0	.	DP=13;END=272346;MIN_DP=13	GQ:DP:MIN_DP:QR:RO:QA:AO	481:13:13:481:13:-0:0
SWJQ01000668.1	272347	.	C	<*>	0	.	DP=14;END=272347;MIN_DP=14	GQ:DP:MIN_DP:QR:RO:QA:AO	518:14:14:518:14:-0:0
...
Yannick

We can not fix what we can't reproduce.


Engine CPU utilization of 1 shard spike upto 100% while load test

i have a clustered Redis in AWS with 3 shard and no replica, while doing load test, Engine CPU utilization of 1 shard spike upto 100% while Engine CPU utilization of the other 2 shards is 4% and 5% respectively. on running Monitor command got the below line very frequently  while count of my GET command is 9318186 while grep "evalsha" | wc -l return count of 18479850
 "evalsha" "0f0f23b9048b36752b5be114f35ish083449f908" "1" "undefined" "4db174ac2c7ah6386687727bccdad00f"<PHONE_NUMBER>3.1783958 [0 lua] "get" "undefined" i got this very frequently in the 1st shard
while in another shard the count of my GET command is 78527 and grep "evalsha" | wc -l return count of 12889
i'm using ioredis to connect to all my shards tried like below
const cluster = new Redis.Cluster([   {     port: 6380,     host: "<IP_ADDRESS>",   },   {     port: 6381,     host: "<IP_ADDRESS>",   }, ]);   and redlock to accuire lock on keys

i found the root cause of the issue, it was the retryDelay  parameter of redlock. so closing this issue

Hi @SK-CSE , could you elaborate more about the retryDelay param. What was the issue and how you resolved it. Thanks


Merged into loaders.gl

Thanks for setting this up!
This is being merged into loaders.gl to help resolve the issue. See https://github.com/visgl/loaders.gl/pull/1908.
Adding an open source LICENSE file (e.g. MIT) in this repo would be appreciated, to clear out any concerns with the merge.

Thank you.
Added a license file (MIT).


Composition for vertex shader?

I just tested out your addition of composition to be able to customize the complexpbr shaders and it seems like a useful feature. However it would be nice if it were possible to do the same for the vertex shader as well. For example for creating animated grass or a moving water surface.
I also noticed that every time I run my program complexpbr creates a new shader file in the projects main directory. That does quickly end up cluttering the main directory. It would be nice if I could specify a sub-directory in my project where complexpbr should store the shader files. Or perhaps that I could specify a name for the custom shaders instead of complexpbr generating a name. That way the old file could be overwriten instead of a new file being created every time.
What are your thoughts about this? I can put together a PR if you are interested.

Thanks for the suggestions. Yes, I was expecting this to come up sooner than later -- the generation of unique shader file numbers each append_shader() call was a quick solution to avoid the case where a user might calling append_shader() at multiple different points in their program structure. My main concern there was some point in the program using the wrong custom shader file.
There may be permission issues generically creating a new directory, but assuming the directory already exists in a user's program structure, specifying that folder's name shouldn't be an issue. If you'd like to work on this PR, I'd certainly be happy to review it.

With regard to modifying the model-level vertex shader file, I'd prefer that to take place after the existing three inputs to append_shader() . So we could do something like complexpbr.append_shader(node=None,body_mod='',main_mod='',vert_body_mod='',vert_main_mod='',...), if that's what you were thinking.
The next thing that I imagine will come up is modifying the screenspace shaders. I'd prefer to leave those alone for now.

Great ideas.

I went ahead and implemented most of this in the composition branch today. You can check out my current changes at https://github.com/rayanalysis/panda3d-complexpbr/tree/composition
So as of now, in the composition branch, one may add their vertex body mod and vertex main mods to the arguments following the initial fragment modification inputs like so:
        # call the append_shader() function
        custom_body_mod = 'float default_noise(vec2 n)\n{\nfloat n2  = fract(sin(dot(n.xy,vec2(11.78,77.443)))*44372.7263);\nreturn n2;\n}'
        custom_main_mod = 'o_color += default_noise(vec2(2.3,3.3));'
        custom_vert_body_mod = 'float default_noise(vec2 n)\n{\nreturn n[0];\n}'
        custom_vert_main_mod = 'float whatever = default_noise(vec2(2.3,3.3));'
        complexpbr.append_shader(test_sphere, custom_body_mod, custom_main_mod, custom_vert_body_mod, custom_vert_main_mod)

...and to sweeten the deal, I've expanded the existing shader cleanup functionality to look for and delete any shader files generated by append_shader() like so:
 complexpbr.remove_shader_files()
...which will totally clean up any number of complexpbr-generated shader files. Keep in mind that using this cleanup option in a distributable build will fail on the user end, as complexpbr will be unable to locate files on consecutive runs. The arbitrary proliferation of append_shader() generated custom shader files will remain an open issue for now in distributable builds, but we can open something separately for that and the whole directory creation issue.
Closing this "Composition for vertex shader" specific issue.


Slide-to-delete action hiccups item below

Slide-to-delete action "hiccups" item below the one you swiped when triggering the delete confirm sheet.
This is caused (probably) by code removing the item from the array below the swiped item, and then that item getting added back because it wasn't actually removed. This visual hiccup is annoying, but not dangerous. It has nothing to do with the actual data, only the viewmodel.
Regression from refactor? Or maybe the way SwiftUI manages lists has changed?

Playtested main. Bug does not appear.


Update tzdata to 1.1.1 to solve warning: :random.uniform/1

Hi, I checked tzdata version 1.1.1, they solved the :random.uniform/1 warning, hence I updated it in mix file and tested it and have no problem with it if you agree please merge this PR.
elixir 1.12
elixir 1.13

Closed via 43c998e


Slots creation

Hello,
I have a problem creating slots.
I installed the docker version 2.5.0-pre. everything works normally. Profil : fr
When I want to create a slot nothing happens when I save. when I come back to the slots page it's empty. nothing is saved
Thanks for your help.
Have a good day
Best regards

Did you create a new slot first?

Just noticed this same behavior.  I'll try creating a single new slot first, then reloading all my previously existing 2.4.x slots.

Not exactly the same issue, but FWIW in a fresh install of the 2.5.0 docker based version with no pre-existing profile, I had to manually create the $HOME/.config/rhasspy/profile/en/slots directory in order for "New Slot" to work. Once I did so, I was able to use the web UI to create and edit slots files.
Is it possible that there is some strangeness with file ownership / permissions that could affect users with pre-existing profile files? The whole directory tree under $HOME/.config/rhasspy ended up owned by root even though I launched the docker container without sudo after adding myself to the docker group -- i.e. "docker run..." rather than "sudo docker run..." -- even though that is very bad practice. I'm going to experiment with starting over and passing the user and group pids for myself into the "docker run..." command to see if that changes things.

@parasaurolophus nailed it, on the head.
Without the slots sub-directory being present in the profile directory, the service could not properly create and save new slot files.

The whole directory tree under $HOME/.config/rhasspy ended up owned by root even though I launched the docker container without sudo after adding myself to the docker group

This happens because the user inside the Docker container is root by default. You need to add this to your docker run command:
$ docker run ... --user "$(id -u):$(id -g)" ...

Beware that this can sometimes fail to access the microphone directly, which is why I don't do it by default in the documentation.
Rhasspy always tries to create the slot sub-directories before writing the slot, so this must be a permissions issue. After switching between Docker and a venv install, I often have to do:
$ sudo chown -R $USER:$USER ~/.config/rhasspy


Introduce selective loading

For large data it can be annoying to load a whole object into memory.
Could be nice to instead load all the metadata and then selectively load keys.
something like:
import yaflux as yf

filepath = "some_analysis.pkl"

# Should be long to load since it contains all results
analysis = yf.load_portable(filepath)

# Should be very fast to load since it's essentially just metadata (lets you explore the analysis structure before loading)
analysis = yf.load_portable(filepath, no_results=True)

# Selectively load a couple named results
analysis = yf.load_portable(filepath, select=["a", "b"])

# Deselect some heavy results
analysis = yf.load_portable(filepath, exclude="heavy_result")

Add selective result loading to reduce memory usage when working with large analyses.
This will use a tar.gz-based format where metadata and each result are stored as separate pickles within the archive, allowing users to load only specific results while skipping others.
Implementation will maintain backwards compatibility with existing pickle files and add no_results, select, and exclude parameters to the loading interface.


Hybrid Azure AD Join steps with Okta

When going through the Hybrid Azure AD Join with Federated Domain, steps, when Okta is in the environment, step 8 asks for ADFS Creds. How do we get passed that when there is no ADFS?

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

ID: b9c51404-0a1b-c22e-e220-ce4126ff88d0
Version Independent ID: bd3aab43-4202-bb69-bd1a-580e0464f357
Content: Configure hybrid Azure Active Directory join for federated domains
Content Source: articles/active-directory/devices/hybrid-azuread-join-federated-domains.md
Service: active-directory
Sub-service: devices
GitHub Login: @MicrosoftGuyJFlo
Microsoft Alias: joflore

When going through the Hybrid Azure AD Join with Federated Domain, steps, when Okta is in the environment, step 8 asks for ADFS Creds.  How do we get passed that when there is no ADFS?

@jejsloan  Thanks for the question! We are investigating and will update you shortly.

@jejsloan I have assigned author of the document to confirm the same.

Any update?

This is a support issue not a docs issue. Please open a case with support to troubleshoot this further.

#please-close


NullPointerException in TestResourcesPropertiesFactory when Gradle plugin testResources.enabled=false

Expected Behavior
Running my project successfully without running test-resources
Actual Behaviour
Tests are failing giving this error
java.lang.NullPointerException: Cannot invoke "java.util.List.stream()" because the return value of "io.micronaut.testresources.client.TestResourcesClient.getRequiredProperties(String)" is null
	at io.micronaut.test.extensions.testresources.TestResourcesPropertiesFactory$TestResourcesTestPropertyProvider$1.resolveProperty(TestResourcesPropertiesFactory.java:89)
	at io.micronaut.test.extensions.testresources.TestResourcesPropertiesFactory$TestResourcesTestPropertyProvider$1.<init>(TestResourcesPropertiesFactory.java:85)
	at io.micronaut.test.extensions.testresources.TestResourcesPropertiesFactory$TestResourcesTestPropertyProvider.lambda$extractAnnotationProperties$2(TestResourcesPropertiesFactory.java:83)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
	at io.micronaut.test.extensions.testresources.TestResourcesPropertiesFactory$TestResourcesTestPropertyProvider.extractAnnotationProperties(TestResourcesPropertiesFactory.java:100)
	at io.micronaut.test.extensions.testresources.TestResourcesPropertiesFactory$TestResourcesTestPropertyProvider.getProperties(TestResourcesPropertiesFactory.java:63)
	at io.micronaut.test.support.TestPropertyProvider.get(TestPropertyProvider.java:34)
	at io.micronaut.test.extensions.AbstractMicronautExtension.loadPropertySourcesFromServicesLoaders(AbstractMicronautExtension.java:392)
	at io.micronaut.test.extensions.AbstractMicronautExtension.beforeClass(AbstractMicronautExtension.java:335)
	at io.micronaut.test.extensions.junit5.MicronautJunit5Extension.beforeAll(MicronautJunit5Extension.java:84)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)

The NPE is thrown because of this code where stream is called on a null.
var props = client.getRequiredProperties(v)
    .stream()

https://github.com/micronaut-projects/micronaut-test-resources/blob/066f53dbe6a33b483d62153061ce61edf6e6e1e8/test-resources-extensions/test-resources-extensions-core/src/main/java/io/micronaut/test/extensions/testresources/TestResourcesPropertiesFactory.java#L88
Steps To Reproduce
grade build -Pmicronaut.testResources=false
Environment Information
Mac OS
Example Application
https://github.com/noeliajimenezg/micronaut_error_testresources
Version
4.5.0

I wonder if it's related to running on Mac OS. If I clone this project and run:
gradle test -Pmicronaut.testResources=true
tests pass as expected, but I'm on Linux. Could you share more logs?

The issue shows up when you made use of the configuration "enabled=false" from Gradle plugin micronaut-test-resources that I set by using -Pmicronaut.testResources=false.
I suspect the NPE of client returns can be related to this behaviour of the plugin where it excludes the dependency micronaut-test-resources-client.
https://github.com/micronaut-projects/micronaut-gradle-plugin/blob/2b60266a8fcb979b289e447717a2e5b10e48400c/test-resources-plugin/src/main/java/io/micronaut/gradle/testresources/MicronautTestResourcesPlugin.java#L90

If I use -Pmicronaut.testResources=false, the error I get is:
Caused by: io.micronaut.context.exceptions.ConfigurationException: Error configuring data source 'default'. No URL specified
        at io.micronaut.jdbc.CalculatedSettings.getUrl(CalculatedSettings.java:109)
        at io.micronaut.configuration.jdbc.hikari.DatasourceConfiguration.getUrl(DatasourceConfiguration.java:94)
        at io.micronaut.configuration.jdbc.hikari.DatasourceConfiguration.postConstruct(DatasourceConfiguration.java:66)
        at io.micronaut.configuration.jdbc.hikari.$DatasourceConfiguration$Definition.initialize(Unknown Source)
        at io.micronaut.configuration.jdbc.hikari.$DatasourceConfiguration$Definition.doInstantiate(Unknown Source)
        at io.micronaut.context.AbstractInitializableBeanDefinition.instantiate(AbstractInitializableBeanDefinition.java:770)
        at io.micronaut.context.BeanDefinitionDelegate.instantiate(BeanDefinitionDelegate.java:156)
        at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2327)
        ... 29 common frames omitted

which is expected, because the test resources service doesn't kick in. The client shouldn't be added to the application classpath if test resources are disabled. It's quite curious that you get this error :thinking: Would it be possible that you have an init script in ~/.gradle which would change the configuration?

I'm not able to get your failure.
I tried running Gradle 8.8 and 8.6 (sdkman installed) from my terminal and also the Gradle from IntelliJ.
Have you checked that your .micronaut folder is empty before running the command?
These are screenshots from my debug

Ok that's interesting. After I used a new gradle home I get the same error. Now that I can reproduce it's going to be easier to figure out. Thanks for the additional feedback!

Alright the answer was right under my eyes, you have:
    testRuntimeOnly("io.micronaut.testresources:micronaut-test-resources-client:2.5.2")

I'm not sure why this is added, but this shouldn't : the client should only be added if test resources are enabled.

Thanks a lot for your support!
Unfortunately, the NPE persists even removing that dependency or by using different JDKs or running ./gradlew build -Pmicronaut.testResources=false.
Not sure how I can give you more hints to reproduce it.

Right, running gradle -Pmicronaut.testResources=false dependencyInsight --configuration testRuntimeClasspath --dependency test-resources-client shows where the client comes from. It's coming from the test resources extensions. So basically you'll need to exclude the client if test resources is disabled. You can do something like this:
configurations.all {
   incoming.beforeResolve {
      if (!micronaut.testResources.enabled.get()) {
          exclude module: 'micronaut-test-resources-client'
      }
   }
}

I guess it makes sense to make the client a compileOnly dependency in the extensions.

Thanks a lot for this fix @melix ! ❤
Waiting for the release! 🚀


This happens, because one does not generally has a live reference to an instance of CustomModule. For example, when it is part of Sequential.
Because the class instance has to be preserved, it needs to allocate a GCHandle, that C++ side of the code must hold on to until torch has no more references to the module.

@lostmsu -- thanks for reporting.
If you come up with a small repro case, please let me know.

@lostmsu -- I believe a fix to this bug is for the .NET Sequential implementation to hold on to the submodules list that it is given, rather than just handing the native handles to LibTorch.

@NiklasGustafsson I believe this does the trick:
class TestModule : CustomModule {
    public TestModule() : base(nameof(TestModule)) {}

    public override torch.Tensor forward(torch.Tensor t) => t;

    static void Main() {
        var seq = Make();
        GC.Collect();
        GC.WaitForPendingFinalizers();
        GC.Collect();
        seq.forward(torch.zeros(10));
    }

    [MethodImpl(MethodImplOptions.NoInlining)]
    static Module Make() => Sequential(("t", new TestModule()), ("d", Linear(10, 1)));
}

Though this just generates System.ExecutionEngineException. So might be an entirely separate issue :-D

@NiklasGustafsson I think trying to fix Sequential is going to be error prone: if there are more composite modules in the future, their developers won't know about the need to keep module instances alive in .NET heap.
GCHandle is the correct solution here.

Ok. I'll take a look at this tomorrow.

@lostmsu -- the repro allowed me to successfully reproduce the bug. Thank you, that made my life much easier. I have incorporated the code into the unit tests.
I see the ExecutionEngineException, but I'm convinced that it's the same problem, since the root cause is that the .NET module reference is GC'd while the native handle still lives on and gets used. The delegate is also GC'd, like you say in the issue title, since the only reference to it is in the module instance.
Preserving the module references in the Sequential instance addresses the problem and is useful for other purposes, such as the implementation of apply() on the Sequential class.

@NiklasGustafsson has this fix been released yet?

Not yet.
We're in the middle of moving the repo from Xamarin to .NET Foundation, and haven't made a release recently since we're pre-occupied with that.


Expose Validate API?

Hi team, I am hoping use it to write a "gateway" plugin for Traefik to further limit the queries exposed by Hasura GraphQL Engine.
The Validate API is so useful! Currently it is in internal folder.
https://github.com/graph-gophers/graphql-go/blob/5a1c1721f1b3d0c600222327f4a6d1dd5dd1d50c/internal/validation/validation.go#L68
I am wondering is it possible to expose this Validate API? So we can leverage this API to do more work.
Thank you so much! 😊

What exactly would you like to achieve and how moving the validation API would help you?

Hi @pavelnikolov , basically, I hope to validate a GraphQL query based on a schema
I found another option at https://github.com/vektah/gqlparser/blob/master/validator/validator.go#L25
However, it does not support depth limit check.
For https://github.com/graph-gophers/graphql-go/blob/5a1c1721f1b3d0c600222327f4a6d1dd5dd1d50c/internal/validation/validation.go#L68
Due to internal package not allowed, I think if we move it out of internal folder, then we can use it.
Please correct me if I am wrong. Thanks! 😃

The reason many of the APIs were in the internal folder is that it allowed the creators of this library to introduce breaking changes to those API. As the API becomes more mature over time it might make sense to move some of the APIs out of the internal folder. Until recently the types were also internal. However, now that they are public it might make sense to make the validation public as well. Why is this feature needed. Why wouldn't you validate the schema by the server itself?

Hi @pavelnikolov thanks! I think I can close this one as at that time I copied the code from this repo out and directly import and still not work due to some Traefik plug-in limitations.


style enhancements and update documentation/readme

Codecov Report

Merging #142 (7e6e471) into main (75e9e94) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main     #142   +/-   ##
=======================================
  Coverage   99.11%   99.11%
=======================================
  Files           7        7
  Lines         452      452
=======================================
  Hits          448      448
  Misses          4        4

Impacted Files
Coverage Δ

service/models.py
100.00% <ø> (ø)

service/routes.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


Enable Cors for all routes

I see from the example that I can enable cors for that specific route - api/whoami but is there a way to apply this to all routes?

By class inheritance. Your demand is not related to the library itself.

@gmariusze your response makes the library less useful. The developer should explain how his library is useful, explaining how to implement it in projects.

I dont understand what was was wrong with the response,  the author's response makes sense to me here

@yonycalsin  The method signature for middlewares in NextJS _middleware.ts is export async function middleware(request: NextRequest) {. Therefore it's not really clear how to use this library, as we have to response arg

You can read this blog post to use CORS for all routes with it.
You can see the repository you can use as an example here.

CORS_ALLOWED_ORGIN

whats inside CORS_ALLOWED_ORGIN ?

CORS_ALLOWED_ORGIN

whats inside CORS_ALLOWED_ORGIN ?

I suppose it's an array of strings:
CORS_ALLOWED_ORGIN = ['http://localhost:5173',]


Fixed the slow loading of timeline by changing pics to PNGs

@rishFilet We tried PNG before but I think we decided to go with SVG because someone mentioned that the PNG's quality is not pixelated. If we decide to go with PNG, we probably need to find a way to better the quality, while going with SVG means finding a way to load the image faster.

@rishFilet Yea I am getting the same as Khoi. Using PNG drastically changed the quality of the images :

1. Am just thinking, svg (compared to png) should be lightweight when delivered and slow when being rendered - perhaps we can, as a research exercise, look whether we should never "pre-render" svg (as that goes contradictory to the philosophy of svg

2. Is responsiveness (and pixelation on big screens) handled? (it would require a bit more effort for png compared to svg imo)

Have mentioned some observations; nothing critical so approving (performance not tested but trust the developer :p)

I think the issue here is mainly we don't have the original image and exporting it from figma is causing the reduction in quality. Basically i wanted to see what was causing the loading issue. I will ask for the original from blendi and cynthia and then try again using gatsby-image plugin which optimizes images for the website.

Am just thinking, svg (compared to png) should be lightweight when delivered and slow when being rendered - perhaps we can, as a research exercise, look whether we should never "pre-render" svg (as that goes contradictory to the philosophy of svg
Is responsiveness (and pixelation on big screens) handled? (it would require a bit more effort for png compared to svg imo)

Have mentioned some observations; nothing critical so approving (performance not tested but trust the developer :p)

@harsh I guess the problem is to decide to go with PNG or SVG (or other image format) now.  I don't think it is responsive on all screen yet.

1. Am just thinking, svg (compared to png) should be lightweight when delivered and slow when being rendered - perhaps we can, as a research exercise, look whether we should never "pre-render" svg (as that goes contradictory to the philosophy of svg

2. Is responsiveness (and pixelation on big screens) handled? (it would require a bit more effort for png compared to svg imo)

Have mentioned some observations; nothing critical so approving (performance not tested but trust the developer :p)

I think the issue here is mainly we don't have the original image and exporting it from figma is causing the reduction in quality. Basically i wanted to see what was causing the loading issue. I will ask for the original from blendi and cynthia and then try again using gatsby-image plugin which optimizes images for the website.

Agreed. Thanks @rishFilet

@rishFilet Looks good. Seems like we need to rework the responsiveness however. By the way, can you provide resource on how you wrote the StaticQuery?

@rishFilet Looks good. Seems like we need to rework the responsiveness however. By the way, can you provide resource on how you wrote the StaticQuery?

My bad! I did not check the responsiveness. Ok this is an easy fix by changing the maxWidth parameter.
I added the info to the wiki for how i did it, under Optimisations

@rishFilet Looks good. Seems like we need to rework the responsiveness however. By the way, can you provide resource on how you wrote the StaticQuery?

My bad! I did not check the responsiveness. Ok this is an easy fix by changing the maxWidth parameter.
I added the info to the wiki for how i did it, under Optimisations

@rishFilet Nice. Thanks for taking the time to write such detailed solution!


PyMIT

Hi how can i install PyMIT

Hi, PyMIT is hosted here. You can just download/clone the repo and follow the standard installation procedure using pip in the environment you are using for running the code.


Missing license file

This project does not have a license file.

Yeah, sorry about that. If you want to use the code, you can, I'll add the license (WTFPL) soon.


Bug 2095347: removes extra results directories when mirroring disk to mirror

Description
This PR removes the creation of an extra results directory when using disk to mirror by specifying the output directory
before the unpacking process begins.
Fixes #481
Type of change
Please delete options that are not relevant.

[X] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

[X] Manually test case in issue to verify only one results directory exists

Checklist:

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[X] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

/bugzilla refresh


Skip Holopin for Cloudflare employees

Copy-pasted from cloudflare-docs where it seems to do the trick. This avoids issuing a holobyte on PRs made by Cloudflare employees.

Thank you!


changes to allow Supplementer to be called from ApplicationSObjectDo…

…main.
proposed solution:
Fixes #33
supplement would no longer need to be called explicitly during tests.

This change is

Hi @dmchaplin.
Thank you for your interest in and contributing to the AT4DX library.
The TestDataSupplementer is an anti-pattern to proper, preferred, mock-based testing, although many codebases have legacy, DML-based unit tests that can be undermined by changes to record-validity logic, e.g. modifying a SObject to have a required field which was previously optional.  Any DML-based test that didn't address the field in the past, will be broken at this point.  The test-data supplementation scheme addresses this problem without having to potentially embark on an inconvenient, extensive effort of replacing all broken logic with mock testing.  It's a convenient workaround for the time when legacy patterns have yet to be transitioned.
With the sole purpose of this pattern being temporary and testing based, including it in the ApplicationSObjectDomain class violates separation of concerns principles.
The supplementer supports two SOLID architecture principles:

Encapsulation of the record-validation logic in the proper scope.  Account record-validation logic can be contained in the same scope as the Account yet accessible to dependent scopes needing it.
Dependency-injection-based logic for extending related logic.  Once implemented in a dependent scope, extensions to the record-validation rules will automatically be picked up.

The AT4DX sample code repo [1] has examples of the intended usage of the pattern.  Note the two files.

sfdx-source/reference-implementation-marketing/main/classes/supplementers/MarketingFieldsForAccountsSupplementer.class
sfdx-source/reference-implementation-marketing/test/classes/AccountSupplementationTest.class

MarketingFieldsForAccountsSupplementer would exist within the same scope as the Account SObject, and AccountSupplementationTest exemplifies the unit-test usage of the TestSupplementer to further populate an Account with record-validation-related data.
[1] https://github.com/ImJohnMDaniel/at4dx-samplecode

@stohn777
Thanks for the well-thought-out response.  Learning AT4DX has been very rewarding.
I've never liked using .isRunningTest() in code, but SOC is a good justification for why that is the case.
It makes sense that MarketingFieldsForAccountsSupplementer would exist in the same scope as the Account Sobject.    How does the legacy code know to call supplement()?   Is it a one-time edit to each of those test classes to add it?
Thanks, shiny side up and tailwinds.
Drew

@dmchaplin
You're correct that the unit tests would need the one-time addition of the TestSupplementer logic, as conceptualized in the AccountSupplementationTest.cls.
"shiny side up and tailwinds"  Are you a fan of aviation?   💯
Best wishes.

@stohn777
Yes, I own '67 Skyhawk and have somewhere around 600 hours.   Somewhere along the line, I spotted your linked-in profile and thought I'd give you a shout-out.

@dmchaplin
I got it.  Never mind.  :-)

@dmchaplin  This change was incorporated into the recent "improved test coverage" work.  Thank you for the great catch and solution on this.  GG
https://github.com/apex-enterprise-patterns/at4dx/commit/1341480531b7aa7be490cf19f048fa49dfa766df


[RFE] support iapp applications tmos configs

Is your feature request related to a problem? Please describe.
Current ACC engine does not support TMOS configs from iApps
Describe the solution you'd like
Support converting of applications in iapp partition/folders
Describe alternatives you've considered
a mass replace-all works well in vscode, but is an additional step and requires knowledge to implement
Additional context
Some customers are heavy iApp consumers and supporting apps deployed in this way is an important path
fix
replace all '/partition_a/iapp_name.app' references with '/Common'
Seems that ACC already ignores the 'app-service' lines that also reference that the app lives in an iApp.
Example iapp tmos config
ltm virtual /partition_a/iapp_name.app/app1_vs_80_vs {
    app-service /partition_a/iapp_name.app/app1_vs_80
    destination /partition_a/<IP_ADDRESS>:80
    ip-protocol tcp
    mask <IP_ADDRESS>
    pool /partition_a/iapp_name.app/app1_vs_80_pool
    profiles {
        /partition_a/iapp_name.app/tcp { }
    }
    serverssl-use-sni disabled
    source <IP_ADDRESS>/0
    source-address-translation {
        pool /partition_a/iapp_name.app/app1_vs_80_snatpool
        type snat
    }
    translate-address enabled
    translate-port enabled
}
ltm pool /partition_a/iapp_name.app/app1_vs_80_pool {
    app-service /partition_a/iapp_name.app/app1_vs_80
    members {
        /partition_a/iapp_name.app/server1:80 {
            address <IP_ADDRESS>
            app-service /partition_a/iapp_name.app/app1_vs_80
        }
        /partition_a/iapp_name.app/server2:80 {
            address <IP_ADDRESS>
            app-service /partition_a/iapp_name.app/app1_vs_80
        }
    }
    monitor /partition_a/iapp_name.app/https
    slow-ramp-time 300
}
ltm snatpool /partition_a/iapp_name.app/app1_vs_80_snatpool {
    app-service /partition_a/iapp_name.app/app1_vs_80
    members {
        /partition_a/<IP_ADDRESS>
    }
}

as3 output from iapp tmos config
{
    "class": "ADC",
    "schemaVersion": "3.31.0",
    "id": "urn:uuid:d72de4ac-4b4d-4306-8816-fb1989411e95",
    "label": "Converted Declaration",
    "remark": "Auto-generated by AS3 Config Converter"
}

fixed example
fixed source tmos config (no iapp references)
ltm virtual /Common/app1_vs_80_vs {
    app-service /Common/app1_vs_80
    destination /asi/<IP_ADDRESS>:4414
    ip-protocol tcp
    mask <IP_ADDRESS>
    pool /Common/app1_vs_80_pool
    profiles {
        /Common/tcp { }
    }
    serverssl-use-sni disabled
    source <IP_ADDRESS>/0
    source-address-translation {
        pool /Common/app1_vs_80_snatpool
        type snat
    }
    translate-address enabled
    translate-port enabled
}
ltm pool /Common/app1_vs_80_pool {
    app-service /Common/app1_vs_80
    members {
        /Common/server1:80 {
            address <IP_ADDRESS>
            app-service /Common/app1_vs_80
        }
        /Common/server2:80 {
            address <IP_ADDRESS>
            app-service /Common/app1_vs_80
        }
    }
    monitor /Common/https
    slow-ramp-time 300
}
ltm snatpool /Common/app1_vs_80_snatpool {
    app-service /Common/app1_vs_80
    members {
        /asi/<IP_ADDRESS>
    }
}

fixed/working as3 conversion
{
    "class": "ADC",
    "schemaVersion": "3.31.0",
    "id": "urn:uuid:be8a87fd-ca37-4da5-a6af-646a33a86585",
    "label": "Converted Declaration",
    "remark": "Auto-generated by AS3 Config Converter",
    "Common": {
        "class": "Tenant",
        "Shared": {
            "class": "Application",
            "template": "shared",
            "app1_vs_80_vs": {
                "layer4": "tcp",
                "pool": "app1_vs_80_pool",
                "translateServerAddress": true,
                "translateServerPort": true,
                "class": "Service_TCP",
                "profileTCP": {
                    "bigip": "/Common/tcp"
                },
                "virtualAddresses": [
                    "<IP_ADDRESS>"
                ],
                "virtualPort": 4414,
                "persistenceMethods": [],
                "snat": {
                    "use": "/Common/Shared/app1_vs_80_snatpool"
                }
            },
            "app1_vs_80_pool": {
                "members": [
                    {
                        "addressDiscovery": "static",
                        "servicePort": 80,
                        "serverAddresses": [
                            "<IP_ADDRESS>",
                            "<IP_ADDRESS>"
                        ],
                        "shareNodes": true
                    }
                ],
                "monitors": [
                    {
                        "bigip": "/Common/https"
                    }
                ],
                "slowRampTime": 300,
                "class": "Pool"
            },
            "app1_vs_80_snatpool": {
                "snatAddresses": [
                    "<IP_ADDRESS>"
                ],
                "class": "SNAT_Pool"
            }
        }
    }
}

@DumpySquare http iApp is support in ACC 1.17
Merge branch 'http_iapp' into 'develop'
Here is beta code - docker pull mdditt2000/f5-as3-config-converter
docker run --rm -v  "$PWD":/app/data f5-as3-config-converter:http_iapp -o data/iapp.json -c data/app.conf

Converted above configuration
ltm virtual /partition_a/iapp_name.app/app1_vs_80_vs {
    app-service /partition_a/iapp_name.app/app1_vs_80
    destination /partition_a/<IP_ADDRESS>:80
    ip-protocol tcp
    mask <IP_ADDRESS>
    pool /partition_a/iapp_name.app/app1_vs_80_pool
    profiles {
        /partition_a/iapp_name.app/tcp { }
    }
    serverssl-use-sni disabled
    source <IP_ADDRESS>/0
    source-address-translation {
        pool /partition_a/iapp_name.app/app1_vs_80_snatpool
        type snat
    }
    translate-address enabled
    translate-port enabled
}
ltm pool /partition_a/iapp_name.app/app1_vs_80_pool {
    app-service /partition_a/iapp_name.app/app1_vs_80
    members {
        /partition_a/iapp_name.app/server1:80 {
            address <IP_ADDRESS>
            app-service /partition_a/iapp_name.app/app1_vs_80
        }
        /partition_a/iapp_name.app/server2:80 {
            address <IP_ADDRESS>
            app-service /partition_a/iapp_name.app/app1_vs_80
        }
    }
    monitor /partition_a/iapp_name.app/https
    slow-ramp-time 300
}
ltm snatpool /partition_a/iapp_name.app/app1_vs_80_snatpool {
    app-service /partition_a/iapp_name.app/app1_vs_80
    members {
        /partition_a/<IP_ADDRESS>
    }
}

Output

    "class": "ADC",
    "schemaVersion": "3.32.0",
    "id": "urn:uuid:163a453f-95c6-4284-affc-7bb28dbd359d",
    "label": "Converted Declaration",
    "remark": "Auto-generated by AS3 Config Converter",
    "partition_a": {
        "class": "Tenant",
        "iapp_name.app": {
            "class": "Application",
            "template": "generic",
            "app1_vs_80_vs": {
                "layer4": "tcp",
                "pool": "app1_vs_80_pool",
                "translateServerAddress": true,
                "translateServerPort": true,
                "class": "Service_Generic",
                "virtualAddresses": [
                    "<IP_ADDRESS>"
                ],
                "virtualPort": 80,
                "persistenceMethods": [],
                "snat": {
                    "use": "/partition_a/iapp_name.app/app1_vs_80_snatpool"
                }
            },
            "app1_vs_80_pool": {
                "members": [
                    {
                        "addressDiscovery": "static",
                        "servicePort": 80,
                        "serverAddresses": [
                            "<IP_ADDRESS>",
                            "<IP_ADDRESS>"
                        ],
                        "shareNodes": true
                    }
                ],
                "monitors": [],
                "slowRampTime": 300,
                "class": "Pool"
            },
            "app1_vs_80_snatpool": {
                "snatAddresses": [
                    "<IP_ADDRESS>"
                ],
                "class": "SNAT_Pool"
            }
        }
    }
}

Closing coming in ACC 1.17


vimPlugins.render-markdown: rename to render-markdown.nvim

Description of changes
Upstream has been renamed so we don't need to alias anymore.

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] 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
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 340286 run on x86_64-linux 1

2 packages built:

vimPlugins.render-markdown-nvim
vimPluginsUpdater


🧹 update levenshtein library

https://github.com/rapidfuzz/Levenshtein

this isn't the levenshtein implementation used


Self nominating matthyx as approver

This is to kick-off the discussion, as suggested by @stevekuznetsov in https://github.com/kubernetes-sigs/prow/issues/68#issuecomment-1811270389

https://github.com/kubernetes/test-infra/pulls?page=2&q=is%3Apr+author%3Amatthyx+is%3Aclosed
Big +1 from me!

Matthias has made many valuable contributions over the years - +1 from me as well :)

Thank you! Big +1


Empty generation, change None checking to is_nan call over list elements

Description
Should fix #1137.
Fonctionnality
An empty generation from TestsetGenerator.generate should raise a ragas.exceptions.ExceptionInRunner.
Issue
Currently the behaviour is expected as written in the code but it is not actived by the comparison if not test_data_rows.
Solution proposed
Check if all generated rows are empty and raise if it is the case (another approach could be to raise an error only if at least one element is nan).

Hey @Gwenn-LR on a related note, since you're into synthetic data generation we are preparing to release a v3 version of this (10x improvement in quality and 10x reduction in token usage). I would love to talk and make sure that your requirements are also included in the next release. If you're available https://cal.com/shahul-ragas/30min

@shahules786, I've booked a meeting with you, I'm eager to talk with you!

@Gwenn-LR I'm closing this in favour of removing the ExceptionInRunner altogether. with #1093 there was no need for that


TODO

[x] simplify everything to index.html
[ ] use official JS library to cleanup the code
[ ] UI (added primer CSS)
[ ] make a logo
[ ] show video duration & author
[ ] does it work for any playlist? if so, rename
[ ] Move the repo to the watchlater org
[ ] add support for removing videos from playlist (will require additional permissions, hold off for now)

Impossible now due to #2


Create content architecture map

Create a map and visualization that specifies the hierarchy and navigation structure of views in Apinf based on the Apinf UI specification document.
Definition of done:

[x] Create a (tree) diagram for Apinf UI views and routes.
[x] Store the document in GitHub as svg file in Docs.

First draft of the diagram created. To be further defined together with Brylie and Illya in a workshop on Tuesday.

Please review and comment by Tuesday  afternoon.

SVG file committed to master to docs/UX


Add support for using redislite if the module is installed.

This adds support for using the redislite module so a separate redis server does not have to be installed.
Also added a tox.ini file to allow running unit tests on multiple python interpreters locally and getting code coverage reports.

Thanks! :+1: I hope I'll get to review this soon, looks like a lot of nice work added :)

Two comments:

I can redo this pull request without the future changes.  I didn't see the pull request to add python3 support that already exists.
Would it make sense to switch the travis configuration to use tox for testing like redislite does.  This makes it easy to run the test suite against multiple configurations locally and makes it possible to add additional environments to the tox configuration to do things like PEP8/PyLinit/Sphinx Docs generation.

@dwighthubbard
The Py3 support isn't finished and I have lack of time to do that. I wanted to have a small hackaton for myself or some of my friends to add Py3 support and resolve other issues, but I'm just terrible in getting to do it. Update of TravisCI to have Py3 support would be part of that.
Tox definitely makes sense to me.

Looking at your large contributions, would you mind to consider to join me as maintainer on this repo? I think redis-collections suffer from me being part of way too many activities and efforts.

I'd be happy to help as a maintainer but like you have a lot of stuff going on.

@dwighthubbard I'm sorry for not responding. I don't have time (motivation) currently to maintain redis-collections much (not even for PR reviews, which is pretty sad) and as I mentioned earlier, I'm looking for a maintainer. It wouldn't be much hassle as there are just minor bugs with existing PRs and the only major feature is Python 3 support and it also has this PR in progress. If you still feel like taking over this library, it would be much appreciated. Are you still interested? I'd add you to collaborators.

@dwighthubbard, I'm inclined to close this PR. Correct me if I'm wrong, but from my testing it is possible to use redislite without adding specific support for it:
>>> from redislite import StrictRedis
... from redis_collections import Dict, List, Set
...
... D = Dict(redis=StrictRedis())
... D['key'] = 'value'
...
... L = List(redis=StrictRedis())
... L.append('item')
...
... S = Set(redis=StrictRedis())
... S.add('item')

This is certainly not as good as being able to use it without having to pass in an object, but for now I think it's an appropriate level of support.
I may revisit this after making some larger changes for Python 3.
Thanks!


publishWebService Arguments Incorrect

The way publishWebService is used in the tutorial appears to be old, you now provide a workspace object as the first argument which itself is constructed from wsID and wsAuth. Also, the function itself is passed, not its name as a character.

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

ID: 4b50cbe1-2295-0b76-2b09-15395b969151
Version Independent ID: 2ba93dae-de6b-bc82-3f19-4ec3bfe7961b
Content: Data science with the Linux Data Science Virtual Machine on Azure
Content Source: articles/machine-learning/data-science-virtual-machine/linux-dsvm-walkthrough.md
Service: machine-learning
GitHub Login: @gopitk
Microsoft Alias: gokuma

@gopitk  Hi, this is a doc-enhancement issue, can you please check it and update the document as necessary? Thanks a lot!

@SheridanLGrant - That is correct. Looks like the R interface changed. We will update the code  snippets in the article.

@gopitk Thank you for your quick action, please tell me once you finish the update, I will close the issue for you. Thanks.

The article update is done. Please close the issue. Thanks @SheridanLGrant for reporting the issue.

@SheridanLGrant We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.
@gopitk Thanks a lot!


Update Postgrest revision

Update Postgrest revision for the Heroku buildpack

@steve-chavez Not sure it was right, and probably readme need to be updated too
remote: Building source:
remote:
remote: -----> Building on the Heroku-20 stack
remote: -----> Using buildpack: https://github.com/PostgREST/postgrest-heroku
remote: -----> PostgREST app detected
remote: -----> Exporting config vars
remote:        DB_ANON_ROLE
remote:        DB_SCHEMA
remote:        DB_URI
remote: -----> Downloading and caching libraries for PostgREST
remote: ######################################################################## 100.0%
remote: -----> Could not find prebuilt postgrest-9.0.1
remote:  !     Push rejected, failed to compile PostgREST app.
remote:

Do you know what does mean ' Could not find prebuilt postgrest-9.0.1' maybe ?
regards

@steve-chavez It seems there is a little nomenclature trick here
postgrest-v9.0.1-linux-static-x64.tar.xz
while
postgrest-v7.0.1-linux-x64-static.tar.xz
😅 falls in line https://github.com/PostgREST/postgrest-heroku/blob/2e89f28e67337169c8aa604d9b43f618fa09e342/bin/compile#L99
Wasn't expecting this sorry ! You need to add a if statement above to handle the inversion !

linux-static-x64
linux-x64-static

Oh, that is subtle. We'd need to change these lines then https://github.com/PostgREST/postgrest-heroku/blob/main/bin/compile#L83-L87

Let's try that ?
https://github.com/PostgREST/postgrest-heroku/pull/37
Thanks


fix(naming): fix (s)css import names for components

Deploy preview for pf-next ready!
Built with commit 1ba34b9f3e3acc7df219afea39c7d864546b8925
https://deploy-preview-839--pf-next.netlify.com


Feature/1329 add new method that chains buildtemplate and builddefinition + add --metadata to buildDefinitionBulk

PR details
What changes did you make? (Give an overview)

closes #1329

Further details (optional)
...
Checklist

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] test scripts updated
[ ] Wiki updated (build):
[x] Wiki updated (bdb): https://github.com/Accenture/sfmc-devtools/pull/1330#issuecomment-2115547292

https://github.com/Accenture/sfmc-devtools/wiki/06.c-~-Templating-Commands/_edit
build
Command: mcdev build <--fromBu> <--toBu> <--fromMarket> <--toMarket> <--metadata> [--bulk]
This combines the power of buildTemplate and buildDefinition in one command, making it easier if you continuously use both commands sequentially.
Example:
// before
mcdev bt MyProject/DEV --market pilotMarketDEV1 -m dataExtension:table1 -m dataExtension:table2 -m dataExtension:table3 -m query:sql1 -m query:sql2
mcdev bd MyProject/QA --market pilotMarketQA1 -m dataExtension:table1 -m dataExtension:table2 -m dataExtension:table3 -m query:sql1 -m query:sql2

// after
mcdev build --fromBu MyProject/DEV --toBu MyProject/QA --fromMarket pilotMarketDEV1 --toMarket pilotMarketQA1 -m dataExtension:table1 -m dataExtension:table2 -m dataExtension:table3 -m query:sql1 -m query:sql2

And if you already have market lists set up and want to use buildDefinitionBulk instead all you need to do is append --bulk:
Example:
// before
mcdev bt MyProject/DEV --market pilotMarketDEV1 -m dataExtension:table1 -m dataExtension:table2 -m dataExtension:table3 -m query:sql1 -m query:sql2
mcdev bdb pilotMarketsQA -m dataExtension:table1 -m dataExtension:table2 -m dataExtension:table3 -m query:sql1 -m query:sql2

// after
mcdev build --fromBu MyProject/DEV --toBu ??? --fromMarket pilotMarketDEV1 --toMarket pilotMarketsQA --bulk -m dataExtension:table1 -m dataExtension:table2 -m dataExtension:table3 -m query:sql1 -m query:sql2


Update enhanced-strong-naming to clarify how to create the AssemblySignatureKeyAttribute

Add clarification to step 4 of how to use an enhanced strong name.  The output from sn -a does not have an obvious translation into the assembly
level AssemblySignatureKeyAttribute.
Fixes https://github.com/dotnet/docs/issues/7495

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

cc @rpetrusha


Add methane flux

Broken out from #179
@avnimalhotra said

If we are making data table flux columns gas specific. the following would have to be replicated for each gas IF timestamps alligned:
CSR_CDRY
CSR_CO2_AMB
CSR_COMMENTS
CSR_CRVFIT
CSR_ERROR
CSR_FLUX
CSR_FLUX_SE
CSR_R2

Right. To recap, one option is the simpler (for two gases anyway) 'wide' option:

(timestamp, port)
CSR_FLUX_CO2
CSR_FLUX_CH4
then above list as needed...

The other is the more flexible 'long' option:

(timestamp, port)
CSR_GAS
CSR_FLUX
then above list as needed...

In call yesterday I think we converged on the wide option because

we only anticipate two gases for the foreseeable future
clearer for users
cleaner fit w/ Ameriflux

Wide format does presume matching timestamps, however. This seems manageable; if we get datasets with CO2 and CH4 at different timepoints, we can just have one sequentially follow each other in the data table.

cc @dschristianson @stephpenn1
Other considerations:

The variables listed above (except maybe CSR_COMMENTS, not sure why that one) need to be made CO2-specific so that CH4 versions can be created in the future as needed
The code currently assumes CO2 fluxes in all dataset rows
QC and diagnostics will need to change

The PORTS variable CSR_MSMT_VAR needs some rethinking:

CSR_MSMT_VAR
Measurement variable: "Rs", "Rh", "Reco", or "NEE"

This doesn't make sense now. 🤔

Opened PR #182 which you can check out to see progress FYI.

@avnimalhotra I'm thinking of added the four fields below as a first step.

Exists now?
Field
Description

Yes
CSR_AREA
Ground area

Yes
CSR_DEPTH
Collar insertion depth

Yes
CSR_TREATMENT
Treatment (not structured)

Yes
CSR_MSMT_VAR
I actually think this is OK as is

No
CSR_VOLUME
Chamber volume

No
CSR_OPAQUE
Already collected in google form (T/F)

No
CSR_PLANTS_REMOVED
Already collected in google form (T/F)

No
CSR_FAN
Mixing fan? (T/F)


fix(modal): 모달 디자인 수정

:tada: This PR is included in version 1.4.15 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Mistake in modules slide?

In the following slide, import export module base is probably incorrect.
(I don't find any "import export" on https://en.cppreference.com/w/cpp/language/modules.)

Presumably, the correct syntax is import export base, but needs to be checked.

Yeah, this looks wrong. It should probably be export import base;.
Generally, this example looks very complicated. It may benefit from a little overhaul. I will have a look in a few days.


Add unit tests for VirtualizedList render quirks

Summary
This change adds a series of snapshot tests to validate the render output of VirtualizedList in mixed scenarios. Jest timer mocks are used to measure rendering at different ticks. These test cases mostly center around realization logic, to help prevent regressions when chaning internal state representation.
Changelog

[Internal] [Added] - Add unit tests for VirtualizedList render quirks
Test Plan
Ran the added UTs locally.

Will add some comments explaining expected behavior to everything


Unnecessary items in sidebar

Template items have been left in the sidebar, such as "Advanced Plugins" and "Charts". These should be commented out.

These were left in for debugging purposes (And ease of use on my end) -- Will be removed in my next update to the panel

I can confirm that these buttons have been removed in my local copy and are going to be pushed along with the web upload function once it is done (As well as decentralizing where the sidebar is at as well as the footer, etc. Mainly for convinience sake)

After taking a long vacation from programming, I can confirm that these fixes have been deployed.
Issue closed.


BUGFIX: entrypoint.sh and Hugo Version

The original code made the assumption that keeping the rightmost 6 characters would always work. This fails when Hugo's maintainers rolled into v0.100.0, adding another digit. Since the intent is to siphon off the "v", this fix does just that, so the version number digits can be any length and it will not break.

Thanks a lot for taking the time to submit a fix. I ended up going with the approach on this other PR.
https://github.com/plopcas/hugo-s3-action/pull/5


pull request for e2e test at 01/11/2017 14:15:10

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


Fix tests after station list changes broke tests

Fixes tests that used the json files for validation. Broken after 90ee6a3.

Looks like the station list changes to the airport wiki's, where available, didn't forward to the test data.


Fix typo

Http/Https -> HTTP/HTTPS

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


[MODEL EVALUATION REQUEST] StableLM models

Describe the model
Stability AI have trained a series of completion models on multilingual data, which includes German, Dutch and English, and should therefore be evaluated (at least) on those. They are all available in this Hugging Face collection.

[ ] stabilityai/stablelm-2-zephyr-1_6b
[ ] stabilityai/stablelm-zephyr-3b
[ ] stabilityai/stablelm-2-1_6b
[ ] stabilityai/stablelm-3b-4e1t

Getting several errors here.
The stabilityai/stablelm-2-zephyr-1_6b model has inconsistently defined vocabulary size. The tokenizer's vocab_size is strictly larger than the size of get_vocab(), and there are "holes" in the vocab which are not defined, causing indexing errors.
The stabilityai/stablelm-zephyr-3b model hangs forever when calling it (i.e., simply model(dummy_inputs) hangs forever).
Gave up on the others.


Update UG and DG

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
see 6 files with indirect coverage changes


[Not Analog] Respect system time format setting

Quick update to the Not Analog clock to respect the system time format setting for 12h time. Utilizing the ClockFace module is probably a better solution, but a much bigger lift than this quick fix :shrug:
@peerdavid

Thanks! Other thing you can do is use the locale module but this is fine