Remove Optional[] types from models.Host fields & add tests

Changes
Most fields in the Host class have had their Optional type removed, and a new "*" validator has been added to ensure these fields can still be instantiated with None (ensuring backwards compatibility). The validator guarantees that these fields are not None once the object itself has been instantiated, as it uses the field's default value or default factory to assign values to them.
Affected fields in Host:

interfaces
inventory
properties
proxy_pattern
siteadmins
sources
tags

Furthermore, tests for Host.merge() as well as Host.importance* have been added.
Since it's a bit unclear how Host.proxy_pattern and Host.macros should be handled when merging, they are not tested.
* This probably could have been a separate pull request, but it's a very minor change. See: c1cea92cbed8c3403e8394d5f6b6b7af502cc115
Rationale
Optional[<type>] fields make Host.merge() dangerous to run without adding None checks for each field.
Required to make Host.merge() safe without removing Optional currently:
if self.inventory is not None and other.inventory is not None: # this must be added
    for k, v in other.inventory.items():
        if k in self.inventory and v != self.inventory[k]:
            logging.warning("Same inventory ('%s') set multiple times for host: '%s'", k, self.hostname)
        else:
            self.inventory[k] = v

This None check does not currently exist (unsafe) and is one the primary motivations for making this pull request. None checks would have to be added to every single attribute access on both self and other for all fields that are Optional.
With this pull request:
for k, v in other.inventory.items(): # other.inventory and self.inventory guaranteed to be a dict
    if k in self.inventory and v != self.inventory[k]:
        logging.warning("Same inventory ('%s') set multiple times for host: '%s'", k, self.hostname)
    else:
        self.inventory[k] = v

Removing the possibility for these fields to be None during runtime makes the code easier to reason with, as well as removing potential pitfalls related to Optional types.
In order to not break existing tests and functionality, a new "*" validator has been added which returns the field's default value or runs its default factory if it receives a None value.

Uff, I thought the "Rebase and merge" button would simply add the commits instead of creating a useless merge commit, but GitHub managed to rebase even though the branch was already up to date.
So now all the hashes are different, sorry about that.

Nice catch and a good PR :+1: One of the problems, for future reference:
>>> from zabbix_auto_config.models import Host
>>> h1 = Host(**{"hostname": "foo", "enabled": True})
>>> h1.merge(Host(**{"hostname": "bar", "enabled": True, "inventory": None}))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "models.py", line 136, in merge
    for k, v in other.inventory.items():
AttributeError: 'NoneType' object has no attribute 'items'

Personally I wouldn't bother with the backwards compatibility though. It's not intended behavior/usage, and it's buggy, like stated in this PR. The project is in version major zero and it would be cleaner without the compatibility, which isn't strictly necessary? And I'm not sure how if it could slow down object creation (probably very negligible)? Anyhow: It doesn't hurt much to keep it compatible either.


Incompatible mods found!

Describe the bug
Incompatible mods found!
net.fabricmc.loader.impl.FormattedException: Some of your mods are incompatible with the game or each other!
A potential solution has been determined, this may resolve your problem:
- Replace mod 'ResolutionControl+' (resolutioncontrol) 1.19.3-3.0.0 with any version that is compatible with:
- minecraft 1.21.1
More details:
- Mod 'ResolutionControl+' (resolutioncontrol) 1.19.3-3.0.0 requires version 1.19.3-rc.3 or version 1.19.3 of 'Minecraft' (minecraft), but only the wrong version is present: 1.21.1!
at net.fabricmc.loader.impl.FormattedException.ofLocalized(FormattedException.java:51)
at net.fabricmc.loader.impl.FabricLoaderImpl.load(FabricLoaderImpl.java:196)
at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:146)
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:68)
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
Modpack version
6.2.0
Launcher
CurseForge App
Confirm

[X] This bug report is about an issue with the modpack itself, I have not modified the mods nor added any resource packs. If this is not the case, I know that I should post the issue to modpack's Discord support channel instead.

Additional context
No response

My bad it was an issue caused by Curseforge... again.


Subscription creation request fails with customer credit balance (or 100% coupon)

Bug report
In a situation where a subscription is immediately marked as active, rather than incomplete (e.g. the customer has an account credit balance or uses a coupon that gives 100% off) a customer can't obviously complete a subscription or add a credit card.
Describe the bug
I've only tested this with the fixed-price-subscriptions example (which is the same situation as I need), but assume the same problem exists in others.
When a subscription is created (especially with payment_behavior: 'default_incomplete') and the invoice does not require payment (the customer has a credit balance > the cost of the invoice, or the subscription was created with a 100% coupon) the invoice is marked as paid, and the subscription is created in active status, rather than in incomplete status.
This results in a 500 error when the server tries to get the client secret (subscription.latest_invoice.payment_intent.client_secret) since one does not exist. This gives the customer an active subscription, but they aren't able to add a payment method and at renewal, the subscription is broken for them.
Worse yet, it also isn't obvious to them that this is the case. A customer might click the Select button multiple times seeing it not work, and each time a new active subscription is created. At the end of rage clicking, the customer has 10 active subscriptions, no idea that any of them exist, and a no way to continue signup.
Obviously this example doesn't allow us to enter coupon codes to test that scenario, but we can with the account balance. Also regarding coupons, the readme shows coupon support for all examples, none of the examples actually support it. Should probably file that as a separate issue.
To Reproduce
Steps to reproduce the behavior, please provide code snippets or a repository:

Run the fixed-price-subscriptions example with any backend (Tested with React and Ruby)
Create a customer
Find the customer on the stripe dashboard
Chose Actions and Adjust credit balance
Give the customer a balance greater or equal to the cost of a premium subscription
Click on a price (basic, or  premium)
See problems:

500 error in network console
no credit card form to fill out
active subscription on the customer in stripe dashboard

multiple if they rage clicked

Expected behavior
Honestly, I'm not sure. I think MY expected behavior would be for the invoice to not be paid if we've asked for a payment_intent, but that isn't what the docs say should happen.
Maybe just handle the error and give a setup intent instead so that the payment method can be added? But that leaves us with the fact that it's seems super weird that the customer would have an active subscription after only clicking on the price. It's also not clear to the customer that this would be the case.
Better yet would be an explicit example of how to handle this scenario.
Screenshots
None.
System information

OS: Any
Browser: Any
Server environment: Ran in Ruby, but verified via code in all.

Additional context
Basically I haven't found the "correct" way to handle these scenarios and if anyone follows this example, these same scenarios will be broken for them.
"This is a brand new customer. Why would the customer have a balance?" you might ask. Sure, in this example it tends to be. But what if the customer wants a 2nd subscription for a different product? What if the customer didn't sign up, called customer support and got offers a free month? What if...
"Why would you use a 100% of coupon? Just use a trial period..." Sure. That could also work. But how is that implemented? What if we don't ever offer trials, and we just want a specific person to have a free month. Isn't that what coupons are for? What if we want to allow our QA department to sign up without "paying" for the account, but also want to see the subscription go through it's various lifecycle events? What if...

@cjavilla-stripe
We may need to consider a new example case to support this case.
e.g.) register-card-before-subscribe
These steps will work well for this case:
Step1: Register payment method

Create a new Setup Intent
Show the PaymentElement form
Customer save their payment method

Step2: Start a new subscription

List the Prices and Products
Customer chooses the price
List their saved payment methods
Customer chooses the payment method
Create a new subscription

In this workflow, we don't have to create and use a Payment Intent on the subscription creation step.


replace the python2 entrypoint with shell

Description

python2 retired in 2020, we should not stop the process
the entrypoint.py is working on modifying files, exec processes, etc., shell script fits the requirement better
both supervisor and tinit are used to keep ceresdb alive, but supervisor is not necessary, docker did the trick

Proposal

replace entrypoint.py with entrypoint.sh
drop supervisor and run ceresDB under tinit directly

Additional context

if we reach an agreement on this, I would like to take this job

This sounds good 🚀  Thanks for your help!

IMHO, if we have multi processes to be managed, supervisor would be a choice(maybe even not a good choice), but ceresDB only has one server process.
as for the management part, Docker containers are meant to be short living, process should be restarted with the container, not inside the container.
as for logging, containers should print to stdout/stderr directly so that the logging service like fluentd, filebeat, could collect them easily in CNCF would.
as for os signal etc., tinit did the trick.
so my suggestion would be to drop it, but we can leave it alone if you insisted.


Token handling

I did a cursory check over the code to see how you're handling tokens/auth. It does seem like the authentication is mostly done server-side in the Go implementation. I am not a Go expert, so I had to extrapolate some of the findings based on my understanding of the code.
First, I am not entirely sure if you even need server-side token handling. You could use a public client application (don't need a secret) that is your frontend. It can authenticate the user and perform the same dance to get the Spartan token (e.g., that's what Halo Waypoint does). Unless you expect to be performing server-side modifications without the user's presence, that should suffice.
Second, I do wonder where the tokens go server-side. Are you storing them in-memory? It seems like it, but I am not entirely sure. Mainly concerned with 4.5.2 of the OAuth 2.0 Threat Model and Security Considerations
 document. Refresh tokens are highly confidential due to their ability to mint new access tokens.

I think the right path to properly handling authentication would be to transition to a public client application. To be frank, I'm not very familiar with react + MSAL.
They are being currently stored in memory as it stands. I can remove the refreshing process until the authentication work can be transitioned to client side instead. It won't be nice having to manually sign in after a token expires again, but it should mitigate that risk

merged #21

Done - Merged into main, feel free to reopen/ping for any other comments/concerns 😃

Awesome - I think going down the public client application route is the right approach for what you are trying to do, and then store the tokens through the browser like other web apps. @SpartanReport


Add a config file.

Probably just an ava section in package.json.
The available options are getting complex enough that I think we are close to needing this (if we aren't there already).
{
  "serial": true,
  "verbose": true,
  "cache": false
}

These would need to be merged with whatever is specified on the command line (command line taking precedence).
The goal is to be able to specify the default way you want it to behave when you simply type ava on the command line.

:+1: I do that with XO too. I would prefer only a section in package.json. Makes things simple.
https://github.com/sindresorhus/pkg-conf

Agreed. I'd also like to add a "files" section, and have it be "config.ava", vs. "ava "

I'd also like to add a "files" section

:+1:

and have it be "config.ava", vs. "ava "

:-1: That's a convention nobody uses. Top-level is simpler and it will never conflict with anything anyways.

That's a convention nobody uses

Except for https://github.com/bcoe/nyc/issues/131  :smile:

I'd also like to add a "files" section

Yeah, I think basically any config value is fair game. I can't think of one we shouldn't allow them to configure this way.

Great suggestion, I'm on board!

@sindresorhus: Except nyc and comitizen (off the top of my head).

nyc is falling off that list very soon: https://github.com/bcoe/nyc/pull/132

Add ghooks to the list of modules that use the config convention :-) But meh, it'll never conflict.


Add a large collection of fixes

I'm closing this because I've heard @ganemone has a lot of worries with this and would rather see this split up into separate PRs or to discuss further. Since there has not been much movement, closing until that occurs.

Okay that's fair, @mlmorg  Are these concerns documented somewhere I can take a look at? Without these fixes, many of our internal IDLs fail to parse.


Fix for apache/libcloud #1521

Bug fix: raise proper exception when using incorrect credentials for AuroraDNS
Description
This is a minor fix for a bug that was introduced in january 2016. See #1521 for details.
Code to reproduce:
#!/usr/bin/env python3

from libcloud.dns.types import Provider
from libcloud.dns.providers import get_driver

api_key = '123456'
secret_key = 'this_is_the_wrong_password'

cls = get_driver(Provider.AURORADNS)
driver = cls(api_key, secret_key)

for zone in driver.iterate_zones():
    print(zone)

Expected exception:
This should have raised an ProviderError: Authorization failed
Actual exception:
TypeError: __init__() got an unexpected keyword argument 'http_status'
Source of the bug:
This bug was introduced in commit de7862f, which includes the following rewrite:
-            raise ProviderError(value='Authorization failed', http_code=status,
-                                driver=self)
+            error['value'] = 'Authorization failed'
+            error['http_status'] = status
+            raise ProviderError(**error)

While the intention is clear, the author inadvertently changed the way ProviderError was called from ProviderError(value=..., http_code=status) to ProviderError(value=..., http_status=status)
This PR fixes this bug by changing the line error['http_status'] = status to error['http_code'] = status
Status

done, ready for review

Checklist (tick everything that applies)

[X] Code linting (required, can be done after the PR checks)
[X] Documentation
[ ] Tests
[ ] ICLA (required for bigger changes)

Codecov Report

Merging #1522 (5829845) into trunk (66ab3ca) will not change coverage.
The diff coverage is 0.00%.

@@           Coverage Diff           @@
##            trunk    #1522   +/-   ##
=======================================
  Coverage   84.77%   84.77%
=======================================
  Files         388      388
  Lines       81718    81718
  Branches     8270     8270
=======================================
  Hits        69278    69278
  Misses       9440     9440
  Partials     3000     3000

Impacted Files
Coverage Δ

libcloud/dns/drivers/auroradns.py
71.74% <0.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 66ab3ca...5829845. Read the comment docs.

Thanks for the contribution.
The change looks good to me. I added (regression) test case for it and merged it into trunk - d3dec976c580f6612235907e46f4f9cbf72c7416.


AC coupling icon request

First off, great work!
Would it be possible to add an AC coupling/generator icon for - sensor.lux_generator_power_live?  I have a microinverter feeding into my aux input that I like to see, which I can in the Luxpower/EG4 app.
I'm checking using the allocated power to do that but it feeds into home rather than the inverter.

Hi @Rumast22
I added the image that you see on the website for generator to the card on the last update. When I updated the logic behind the card, I made it so that the generator icon will show when there is a positive value on sensor.lux_generator_power_live, but no flow of grid.
I don't fully think this is the right logic. I saw that the integration makes no distinction between Grid A (Primary) and Grid B (Generator). So If you are using Grid B, Grid A still gives value. Which I think is a mistake. I haven't spent time on the integration with the generator values (I don't have one but a friend does so I saw some of the values) so I decided to wait a little before updating the card. I'll see if I have time before the end of the month to try something there, otherwise I'll update the cards logic so that you can use it.


Build on RHEL 6

Does alacritty depend on a specific version of freetype? I seem to have it installed, but cannot seem to build on RHEL 6. I followed the instructions for Fedora, as below:
$ sudo yum install freetype-devel
Loaded plugins: refresh-packagekit, security
Setting up Install Process
Package freetype-devel-2.3.11-17.el6.x86_64 already installed and latest version
Nothing to do

Build error (using newest version of alacritty from git):
error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/home/eslaught/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/scratch/eslaught/software/alacritty/target/release/deps/alacritty-1e299362c85560ad.0.o" "-o" "/scratch/eslaught/software/alacritty/target/release/deps/alacritty-1e299362c85560ad" "-Wl,--gc-sections" "-pie" "-Wl,-O1" "-nodefaultlibs" "-L" "/scratch/eslaught/software/alacritty/target/release/deps" "-L" "/usr/lib64" "-L" "/usr/lib64" "-L" "/scratch/eslaught/software/alacritty/target/release/build/servo-fontconfig-sys-104a48ec5df5232a/out" "-L" "/scratch/eslaught/software/alacritty/target/release/build/expat-sys-f3827039f72451e1/out/lib" "-L" "/home/eslaught/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/tmp/rustc.ag8848wK22hy/libfontconfig_sys-5ae2126b01e9f383.rlib" "/tmp/rustc.ag8848wK22hy/libexpat_sys-89978cf1fbc44bab.rlib" "/tmp/rustc.ag8848wK22hy/libstd-35ad9950c7e5074b.rlib" "/tmp/rustc.ag8848wK22hy/liballoc_jemalloc-28913dc5a1e63cd7.rlib" "/tmp/rustc.ag8848wK22hy/libcompiler_builtins-863b57a66ba6c3e1.rlib" "-Wl,-Bdynamic" "-l" "freetype" "-l" "dl" "-l" "dl" "-l" "util" "-l" "dl" "-l" "rt" "-l" "pthread" "-l" "gcc_s" "-l" "pthread" "-l" "c" "-l" "m" "-l" "rt" "-l" "pthread" "-l" "util"
  = note: /scratch/eslaught/software/alacritty/target/release/deps/alacritty-1e299362c85560ad.0.o: In function `freetype::library::Library::new_face::h05fb961dd66f1225':
          /home/eslaught/.cargo/registry/src/github.com-1ecc6299db9ec823/freetype-rs-0.13.0/src/face.rs:68: undefined reference to `FT_Reference_Library'
          /scratch/eslaught/software/alacritty/target/release/deps/alacritty-1e299362c85560ad.0.o: In function `font::ft::FreeTypeRasterizer::get_rendered_glyph::h6a8808c44fd7c227':
          /home/eslaught/.cargo/registry/src/github.com-1ecc6299db9ec823/freetype-rs-0.13.0/src/face.rs:51: undefined reference to `FT_Reference_Library'
          /home/eslaught/.cargo/registry/src/github.com-1ecc6299db9ec823/freetype-rs-0.13.0/src/face.rs:57: undefined reference to `FT_Reference_Face'
          /home/eslaught/.cargo/registry/src/github.com-1ecc6299db9ec823/freetype-rs-0.13.0/src/face.rs:68: undefined reference to `FT_Reference_Library'
          collect2: error: ld returned 1 exit status

Rust version:
$ rustup show
Default host: x86_64-unknown-linux-gnu

stable-x86_64-unknown-linux-gnu (default)
rustc 1.19.0 (0ade33941 2017-07-17)

Any suggestions? Thanks in advance.

@elliottslaughter Those functions were added in FreeType 2.4.2, unfortunately CentOS6 has 2.3.11.

I have confirmed that this is fixed when I build FreeType 2.4.9 from source. In case any one else comes here looking for this after me, you need to put the following in your ~/.cargo/config in order to allow Cargo to find the custom FreeType:
[target.x86_64-unknown-linux-gnu.freetype]
rustc-link-search = ["/scratch/eslaught/software/install/lib"]
rustc-link-lib = ["freetype"]

I'd like to request, before I close this issue, that the FreeType version dependence be documented in the README. That way future users can anticipate trouble with the FreeType version before they attempt to build.

Happy to update the documentation, and maybe we can even provide a better out-of-box experience.
Did you actually get this to run on RHEL 6? I didn't think we could support it easily.

Yup, RHEL 6 seems to compile and run fine once I build FreeType from source. (I haven't done too much with it yet, obviously, but the settings I've fiddled with all seemed to work.)


fix: Windows Azure CNI conflist should split ExceptionList by IP family

What type of PR is this?
/kind bug

What this PR does / why we need it:
Currently writing the outboundNAT exception list for dual-stack
with both v4 and v6 CIDRs in the same list, but HNS expects them
to be in 2 different lists, one per IP family.
Going from
{
                    "Name": "EndpointPolicy",
                    "Value": {
                        "Type": "OutBoundNAT",
                        "ExceptionList": [
                            "<IP_ADDRESS>/16",
                            "fd12:3456::/64"
                        ]
                    }
                },

to
{
                    "Name": "EndpointPolicy",
                    "Value": {
                        "Type": "OutBoundNAT",
                        "ExceptionList": [
                            "<IP_ADDRESS>/16"
                        ]
                    }
                },
{
                    "Name": "EndpointPolicy",
                    "Value": {
                        "Type": "OutBoundNAT",
                        "ExceptionList": [
                            "fd12:3456::/64"
                        ]
                    }
                },

Which issue(s) this PR fixes:

Fixes #
Requirements:

[x] uses conventional commit messages

[ ] includes documentation
[x] adds unit tests
[ ] tested upgrade from previous version

Special notes for your reviewer:
Release note:
none

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 61.573%

Totals

Change from base Build<PHONE_NUMBER>:
0%

Covered Lines:
2466

Relevant Lines:
4005

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall first build on fix-windows-exception-list-ipv6 at 61.523%

Totals

Change from base Build<PHONE_NUMBER>:
61.5%

Covered Lines:
2464

Relevant Lines:
4005

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall first build on fix-windows-exception-list-ipv6 at 61.523%

Totals

Change from base Build<PHONE_NUMBER>:
61.5%

Covered Lines:
2464

Relevant Lines:
4005

💛  - Coveralls


Add support for 2FAS

Changes

Add support for opening 2FAS encrypted vaults.

Hello @elliotwutingfeng! I am very very sorry for the very late reply - for the last year I was living abroad without access to a computer or the internet. But now I am back, and I'll take a look at this as soon as possible. Thanks in advance for all this work here!

Cool. I thought you went off the grid. Don't worry about it.

Hey @elliotwutingfeng, could you update your PRs with the latest main? Thanks

Thank you, merged.


easier build from the command line.

This pull request includes a

[ ] Bug fix
[x] New feature
[ ] Translation

The following changes were made

Added a single build script for development. Run it with npm run build. This uses the prescribed version of Grunt installed with npm install rather than whatever the user has globally installed at the time.
Also added a script to run any arbitrary grunt task using the prescribed version of grunt with `npm run grunt '.

If this is related to an existing ticket, include a link to it as well.
#5117

After some testing, I would like to rebase all of this onto the 4.0.5 release so I can easily integrate it into my own codebase, as I need to move on to other thangs. Are submissions based on the latest stable release rather than master acceptable?

Closing as this is covered in another branch, which I rebased, and we don't want multiple commits of the same thing.


Add ruby flog checker

Hello,
I've added a syntax checker for ruby using flog. Flog gives each method a score. The higher the score, the harder to maintain/understand/debug the method is. Flog is used, for example, by Code Climate in calculating their overall complexity score.
The syntax checker allows for two configuration options (g:syntastic_ruby_flog_threshold_warning and g:syntastic_ruby_flog_threshold_error). If the first threshold is reached, a warning will be generated. If the second is reached, this will be an error. The default (arbitrary) values are 45 and 95.
Limitations
Flog itself is confused when the code uses the %w() notation for array of words. It then output weird line numbers. This syntax checker does not solve that issue so you might have errors displayed on the wrong line.
Flog itself is slow. It takes ~0.4s on my machine to run ($ time flog file.rb), so it creates a noticeable delay when activated on save.

Thank you.  This is one of the most unpleasant checkers I had to deal with, mainly because of the bizarre choice of the authors to report complexity as a floating point number, and the crappy support for said numbers in Vim.  Merged, with this patch on top: 6929f24.

Who, thanks for going the extra mile and the voodoo work on the float casting.
Could you share some light on the '%\m%\s%#%m: %.%# %f:%l' errorformat? What are %\m and %\s?

%\ is \, and the rest follows from that: %\m is \m, "magic" regexps, and %\s%# is \s*, zero or more spaces.  %f is the filename, and %.%# skips the function names.  Your %p was wrong, it's supposed to match things like ___^ and infer a column number from that.

Thanks. I had trouble understanding how to use regular regexp patterns in the errorformat, this helps.

I suppose I should write a wiki page about this at some point.  Here's a (slightly modified) excerpt from a private exchange with a Vim developer:

The idea behind errorformat is pretty simple: it's a list of "augmented" regexps, which are used to parse compiler errors and transform them into qflists.  Each augmented regexp may contain a number of %-formats, which are transformed into regexp groups \(...\) when errorformat is parsed (so the result of parsing errorformat is actually a list of plain regexps).  When one of these regexps is matched against a compiler error line, the values matched by the \(...\) groups are written to the fields of a qflist item, each field corresponding to an %-format.  And that's basically all there is to it, the rest are flags for ignoring patterns and joining lines, and for changing the order of matching.  I wrote a short blurb at StackOverflow that clarifies a few other points.

I read your post on StackOverflow already, to better understand how this was working. I also had a look at errorformat in other syntax checkers but the multiline syntax was adding more confusion.
I guess a few patterns and examples should clarify things. Maybe simple examples using %l and %f, and going gradually to more complex ones using custom regexp, ignoring parts, going multiline, etc.
I would write the wiki page myself if I was more seasoned in errorformat handling.


Country.find_country_by_translations always returns nil

Hi,
Country.find_country_by_translations method always returns nil, even if the translation is a part of the translation hash of a country. Instead, I use the Country.find_country_by_translated_names method which behaves as expected.
This inconsistency is error-prone. If the method does nothing, it's just confusing and better not being defined at all.
Thanks!

@benldrmn I think this method is 100% bug. It appears the old method missing lookup will search by any attribut that is exposed on country.

This should be solved by #393


Metadata and return description for the tools

I wrote a C# code generator that already generates the serialized metadata (json schema) for my tools.

I would love not to be forced to derive the agent from the Tool class to avoid dependencies (*)
I would love to initialize the metadata using the full json schema so that I avoid serialization and reflection at runtime
Even using the Tool function, I don't see how to specify the description for the return parameter. How can I do that?

(*) I am already facing to the dependencies problem. My agents should be used from multiple implementations of "chat" providers and they currently have conflicting dependencies.
Thanks!

Sounds interesting, but I guess I need for information about the issues you face and maybe a look on the code you already have. Do you have it in a public repository?
Also, might Microsoft.Extensions.AI be an approach to that dependency issue you mentioned? OllamaSharp implements it.

Sounds interesting, but I guess I need for information about the issues you face and maybe a look on the code you already have. Do you have it in a public repository?

Unfortunately it's not public yet. It's a large solution of 20+ projects that i use as a demo in my public talks.
I'll probably to at a later time, but it's still a work in progress.

Also, might Microsoft.Extensions.AI be an approach to that dependency issue you mentioned? OllamaSharp implements it.

Yes I know and those extensions are suffering a similar issue: AITool cannot be constructed with just the json string which is a lost occasion and a waste of time as the code generator can serialize the schema at compile time instead of runtime.
May I help in any other way?

I am not sure how I could help you here. Would you mind forking this repository and pushing a pull request? I'd be happy to review and merge it.


Roborock S50

Device model
roborock.vacuum.s5
Device name
Roborock S50, S51, S55 (White, Gold, Black)
Does the device require a MiCloud connection?
Yes
Anything special about the device?
Device works actually, but plugin says :
[miot] [Roborock S55] Device services:
"vacuum",
"battery",
"identify"
[miot] [Roborock S55] Initializing device properties
[miot] [Roborock S55] Device properties:
"vacuum:status",
"vacuum:mode",
"battery:battery-level",
"battery:charging-state"
[miot] [Roborock S55] Initializing device actions
[miot] [Roborock S55] Device actions:
"vacuum:start-sweep",
"vacuum:stop-sweeping",
"battery:start-charge",
"identify:identify"
And then :
[miot] [Roborock S55] =AB= Action vacuum:start-room-sweep does not exist on this device. Skipping action button!
But Roborock S55 do have room cleaning, please update it 👍

According to the spec found here: http://www.merdok.org/miotspec/
there is no start-room-sweep action in the miot protocol for this device.

There is no way to add it? In another plug-in I can select room cleaning.
https://github.com/homebridge-xiaomi-roborock-vacuum/homebridge-xiaomi-roborock-vacuum

The other plugin uses the old miio protocol. This plugin uses the new miot protocol and old devices that natively does not support it have limited functionality hence it is missing for your device.

Ok I will keep with the other plug-in


SIP: Update protocol for outbound calls.

@dennwc I am going to merge this other PR (https://github.com/livekit/livekit/pull/2262). As I updated the protocol deps in that PR, I did some basic fudging in SIP/SIP IOService code to get it to compile. Sorry about the inconvenience. Can you please rebase/merge from master and ignore my changes?
cc: @Sean-Der


Apple Sign in Branch

I am placing this here for future enhancements to the apple provider documentation.  I again messed up, creating the Team and KeyID.  After the second or third time, I discovered AuthKey File downloaded from Apple has the Key in the name of the file.
Faq

(node:52500) UnhandledPromiseRejectionWarning: Error: error:0909006C:PEM routines:get_name:no start line

The \n created to make the private key a single line caused the error.
Fix:
privateKey: process.env.APPLE_PRIVATE_KEY.replace(/\\n/g, '\n'),

OAUTH_GET_ACCESS_TOKEN_ERROR

Fix:
Make sure to double check that you have both the TeamID (Top right hand corner of the apple developer website) and KeyID (Located on the file download) in your env variables set correctly.  You will be able to sign in most of the way until after sign-in. The error will throw, causing the server to crash.

The provider now now handles turning \\n back into \n automagically if present, so should be a problem.
I'm having some problems with the Apple provider on the example site, but the same details work locally (and I've double checked them); I might need to re-test v3 beta locally and potentially add better logging as I'm not seeing any errors in the console - it's just sending me to the error page for OAuth errors on sign in (at least that behaviour is working!).

@iaincollins I did some testing on v3 branch it looks like its throwing this error.
[next-auth][error][callback_oauth_error]
Invalid state returned from oAuth provider.

Setting the
useState: false

on the provider fixes it.  I'm not sure if that is what we want to do.

 :D Thank you for looking at this, you've nailed it.
That option is 100% fine to set on a per-provider basis.
I wondered about that behaviour being an issue but hadn't gotten around to trying it. I should have seen that error on Vercel but it wasn't logged so thought it was probably something else, sometimes I think the logging on Vercel is funky...
Checking state one of the new features for security in v3 (that I'm not sure is full documented yet?) which most providers seem to be fine with but I made it an option in case not all OAuth 2.0 providers supported it (as it's only RECOMMENDED in the RFC and is not listed as MUST).
Like PKCE, it actually seems redundant from a security perspective in our context, but it seemed better to implement the RFC more completely than to have explain that repeatedly.

@geraldnolan I've made the change in the provider (and refactored the option name I'd used to state to fit in with convention used for other options - for better or worse) and is working perfectly on https://next-auth-example.now.sh as of<EMAIL_ADDRESS>\o/

@iaincollins nooicce :) That was satisfying to sign into next auth example.


Unhandled error messages from convert_to_der_and_cache method when invoked

Error messages handled and returned from method convert_to_der_and_cache is not consumed properly when method is actually getting called. Need to have error messages updated when calling convert_to_der_and_cache

Hey @GUI , Can you kindly review these changes ?


Update the sidekiq queue config

What happened 👀
Add the queues with Rails env prefix in order to allow the Sidekiq job get processed.
Insight 📝
The new default Rails generate had the config.active_job.queue_name_prefix = Rails.env which will require the Sidekiq queue to include these env prefixes.
Proof Of Work 📹
Used in client projects

I'm just curious if there are any benefits from this prefix since we seem never to run our application with both environments on the same machine. 🤔
config.active_job.queue_name_prefix = nil

The only benefit I can see is it allow us to have different setup per env like

development_default: 1
production_default: 3

@sanG-github comment makes sense as the use case it covers does not exists for us as all environments are isolated. @Goose97 brought this into his IC but now it does not make sense to upstream this IMO 😅

@sanG-github @olivierobert But by default, the Rails generator will set the queue_name_prefix as Rails.env in the config/application.rb.
    # Prefix the queue name of all jobs with Rails ENV
    config.active_job.queue_name_prefix = Rails.env

So if we do not modify the queue here, the new application generated from our template won't work, and it requires the user to manually update the config/sidekiq.yml.
Incase we do not need this PR, we would need to open another PR in our template to - update the config.active_job.queue_name_prefix in config/application.rb to nil
    # Prefix the queue name of all jobs with Rails ENV
    config.active_job.queue_name_prefix = nil

cc @malparty @Goose97

@olivierobert @sanG-github to clarify:
These new queue names (with env prefix) are the default generated by the rails new command.
So there are 2 options:

Keep the names with the env prefix, with no deviation from a standard Rails project (this PR suggestion)
Edit our template so that it will edit the config/application.rb file generated by rails new command to replace these lines:

    # Prefix the queue name of all jobs with Rails ENV
    config.active_job.queue_name_prefix = Rails.env

In my opinion, it's better to reduce the deviation with Rails defaults (less code, less maintenance to handle). So I recommend moving forward with this PR 👍

@andyduong1920
Please help to resolve the failing CI, then we're good to go!!! 🚀

@andyduong1920 I just rebased that PR onto develop, that should fix the failing test 😇

@andyduong1920 I just rebased that PR onto develop, that should fix the failing test 😇

Thank you 🚀


Add parcel to existing delivery

Allow user to add parcels to existing delivery without the need to recreate a whole new delivery.
closes #64, closes #65

LGTM!


Remove run_exports on Windows

Since quantlib is built as a static library on Windows there is no need for a run_exports directive.
I have a followup pull request for the quantlib-python feedstock to use this.

Checklist

[X] Used a personal fork of the feedstock to propose changes
[X] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

@conda-forge-admin, please rerender


FIX - Switch between file/folder mode (#43)

Before this commit, switching between file and folder browser mode
makes the finder return to the 'cwd' directory.
This behavior seems a bit odd, with this commit, instead of returning to
'cwd', the finder will remain in the current directory after switching
modes, this way the user can switch from file/folder mode without having
to navigate to the same directory again.
If a user wants to go back to 'cwd' they can always use 'C-W' to do
that.

After the changes the behavior is like this:

This behavior is very much intentional, since folder browsing from cwd to low-level folders by means of fuzzy finding is in most scenarios always fast and enables file operations swiftly across many layers of directories  (also upwards from finder.path), which is a key feature of this extension. On the contrary, this change would make such workflows a lot more complicated (cf. gif on README, <C-W> I suppose now every time in between?) while seemingly offering hardly any practical gain. Or am I missing something?
What I agree though is that there should be a user-friendly mechanism to set finder.cwd, very much in line with #40 and/or enabling this behavior optionally.

This behavior is very much intentional, since folder browsing from cwd to low-level folders by means of fuzzy finding is in most scenarios always fast and enables file operations swiftly across many layers of directories  (also upwards from finder.path), which is a key feature of this extension. On the contrary, this change would make such workflows a lot more complicated (cf. gif on README, <C-W> I suppose now every time in between?) while seemingly offering hardly any practical gain. Or am I missing something?
What I agree though is that there should be a user-friendly mechanism to set finder.cwd, very much in line with #40 and/or enabling this behavior optionally.

Superseded by #57.


Hanging test on Ubuntu 32-bit build

The CI tests for the 32-bit cross-compile build on Ubuntu have issues. The first time it ran, it showed a few tests failing, and then it hanged.
I've fixed all but one of the failing tests (FindHoughCircles still needs to be fixed).
The test program hangs during the execution of the test "[DIPlib] testing the SingularValueDecomposition and related functions" (src/support/matrix.cpp, line 569). I added "print debug statements", and saw it run all the way to the end of the test case, but doctest was not reporting the time it took to run that test, so it seems this is happening somewhere in the cleanup for the test case.
For the time being, I've disabled running the tests for this build.

For reference, the FindHoughCircles failed checks:
/home/runner/work/diplib/diplib/src/detection/hough.cpp:356:
TEST CASE:  [DIPlib] testing the FindHoughCircles function
/home/runner/work/diplib/diplib/src/detection/hough.cpp:371: ERROR: CHECK( cir[0] == dip::FloatArray{256, 256, 100} ) is NOT correct!
  values: CHECK( {350, 350, 25} == {256, 256, 100} )
/home/runner/work/diplib/diplib/src/detection/hough.cpp:372: ERROR: CHECK( cir[1] == dip::FloatArray{350, 350, 25} ) is NOT correct!
  values: CHECK( {260, 256, 103} == {350, 350, 25} )

The two circles are swapped, and one center is off by a few pixels in x and r.

The cause of the hang was an infinite loop in dip::GetOptimalDFTSize() caused by unsigned integer overflow. In the 64-bit case overflow didn’t happen because none of the test inputs were large enough to make that happen. But for the 32-bit case, one of the test cases was large enough.
The relevant sources are here: https://github.com/DIPlib/diplib/blob/master/src/transform/dft_optimal_size.cpp
The algorithm was adapted from PocketFFT, here is the issue I submitted to that project: https://github.com/mreineck/pocketfft/issues/15
I have tried to fix the overflow problem, but haven’t gotten a correct algorithm yet.  I think part of the solution will be to limit the size of the input, as suggested by the PocketFFT author.

This was finally fixed in c88731c65b0317cdfbf9e817e328aacd986a6d0e.


Expand test for Conversation when invalidating session. Removed TODOs…

… regarding this
I modified test for conversation once the session is invalidated. This should precisely test when is the conversation destroyed. I also added another similar test with multiple conversation to verify similar behaviour for non-associated long-running conversations. Both tests should be relevant to CDI spec, chapter 6.7.4, TCK assertion qith id 'qa'
@tremes can you please review this?

Yes. It looks good to me. I can see two minor improvements wrt code itself :

Strings ("message: Hello",  "conversationCreated", etc. ) which occurs more than once could be stored in constants.
I am rather going to comment inline.:)

Updated PR:

introduced constants for repeated String values
introduced helper method for conversation initiation

Merged. Thank you.


Add TimetableLunchItemDecoration

Issue

close #620

Overview (Required)

Implement TimetableLunchItemDecoration to overwrite luch row.
Find lunch item from adapter and draw on the view in onDrawOver.

Links

Screenshot

Before
After

@MoyuruAizawa If you have any opinion for this PR. Please comment it 🙏

Can you fix this? 👀

I fixed two bugs

Text appears out of lunch item
Lunch decoration does'nt appear in ROOM5, ROOM6, in Day1

And I did little hacky for fixing it.
I added lunch items for all rooms before adding groupie Items.

Can you fix the conflict? 👀

Thanks 👍


Logging in with spotify not possible

If I try to log into Listory, the auth request fails with this error message:

I even tried removing the app from my account and re-authenticating. That didn't solve the problem as well.
listory-api-1  | {"level":"error","time":1687187317338,"pid":1,"hostname":"HOSTNAME","reqId":164,"context":"SpotifyAuthFilter","err":{"type":"Error","message":"Login with Spotify failed: Error: getaddrinfo EAI_AGAIN accounts.spotify.com","stack":"InternalOAuthError: Failed to obtain access token\n    at OAuth2Strategy._createOAuthError (/app/node_modules/passport-oauth2/lib/strategy.js:423:17)\n    at /app/node_modules/passport-oauth2/lib/strategy.js:177:45\n    at /app/node_modules/passport-spotify/lib/passport-spotify/strategy.js:81:20\n    at ClientRequest.<anonymous> (/app/node_modules/oauth/lib/oauth2.js:162:5)\n    at ClientRequest.emit (node:events:511:28)\n    at ClientRequest.emit (node:domain:489:12)\n    at TLSSocket.socketErrorListener (node:_http_client:495:9)\n    at TLSSocket.emit (node:events:511:28)\n    at TLSSocket.emit (node:domain:489:12)\n    at emitErrorNT (node:internal/streams/destroy:151:8)"},"msg":"Login with Spotify failed: Error: getaddrinfo EAI_AGAIN accounts.spotify.com"} listory-api-1  | {"level":"info","time":1687187317339,"pid":1,"hostname":"9301b7574c30","reqId":164,"req":{"id":164,"method":"GET","url":"/api/v1/auth/spotify/callback?code=CODE","query":{"code":"CODE"},"params":{"0":"api/v1/auth/spotify/callback"},"headers":"[Redacted]","remoteAddress":"::ffff:<IP_ADDRESS>","remotePort":36216},"res":{"statusCode":302,"headers":"[Redacted]"},"responseTime":5006,"msg":"request completed"} listory-api-1  | {"level":"info","time":1687187317462,"pid":1,"hostname":"HOSTNAME","reqId":165,"req":{"id":165,"method":"GET","url":"/login/failure?reason=unknown&source=spotify","query":{"reason":"unknown","source":"spotify"},"params":{"0":"login/failure"},"headers":"[Redacted]","remoteAddress":"::ffff:<IP_ADDRESS>","remotePort":36232},"res":{"statusCode":304,"headers":"[Redacted]"},"responseTime":1,"msg":"request completed"}

The problem was not enabling the docker iptables functioanlity and therefore loosing the container's ability to connect to any server


Monado: Using Monado and SteamVR

First of all, I am not sure if this issue is the right way to ask about my issue.
Feel free to point me in the right direction for me to ask this, and close the issue if it does not meet your issue workflow.
Problem
After installing the Monado nix package, I do have the Monado softwares and drivers to use VR HMD, but I can't easily register the Monado driver onto SteamVR.
Taking a look at the Monado documentation, you can register the Monado drivers using a script that Steam offers (more information here: https://monado.freedesktop.org/steamvr.html).
Of course this script does not work under Nix OS, and I found no instructions on how to achieve this link in the Nix Monado package.
Proposal
I understand this could be a weird subject for the Monado package to address, but as using a VR HMD in SteamVR is probably the most important usage for Monado, I think that at least a written documentation would go a long way to ease the use of Monado under Nix.
However I am unsure on where to put this documentation. A comment in the Monado package may be enough.
Checklist

[ x ] checked latest Nixpkgs manual (source) and latest NixOS manual (source)
[ x ] checked open documentation issues for possible duplicates
[ x ] checked open documentation pull requests for possible solutions

So far I've manged to associate monado with SteamVR, though I found it was far more reliable to copy the files to my home directory from the package. So far as I've yet found there is no way to automatically update the association via Nix itself.
I've also had to write my own udev rule to make it so that the headset can be initialized.
That said, once it's all said and done, SteamVR Fails to initialize monado due to a missing .so file, so there's that.

I fixed it by overriding the steam to include monado, then it shows up at /usr/share/steamvr-monado (or a similar path) when using steam-run.

could you please explain what you did? i have my rift s working with monado and rendering with xrgears, but steamvr still says i need to connect my headset in despite the monado driver being installed, as well as steamvr recognising the driver is installed


proposing math-interval-js

Thanks, but it's a bit too obscure of a use-case to be on this list. Nice work though :)
I would also consider renaming the package on npm from math-interval-js to math-interval. The js postfix is just moot.


Allow overriding get_mac() function in ieee802154 drivers

Is your enhancement proposal related to a problem? Please describe.
Several IEEE802.15.4 drivers are using randomly generated MACs and the API does not offer to provide a manufacturer MAC/EUI64.
static inline u8_t *get_mac(struct device *dev)
{
}

Drivers that only use randomized MACs: rf2xx, mcr20a
uart_pipe, cc1200, cc2520 has the option to use randomized or static addresses.
cc13/cc26, nrf5 is using a MAC from the SoC register.
Describe the solution you'd like
It would be good to be able to override the get_mac function and allow providing the MAC from different sources.
Make get_mac a weak function?

@nandojve @tbursztyka @jukkar

Forget about "get_mac()". In those drivers, it is just a utility function helped to set the IEEE extended address with necessary default value.
But there is already a way to set such IEEE extended address, see include/net/ieee802154_mgmt.h header and more specifically NET_REQUEST_IEEE802154_SET_EXT_ADDR command code.

see subsys/net/l2/ieee802154/ieee802154_shell.c  for an actual example on how this interface is being used.

OK, found:
net_mgmt(NET_REQUEST_IEEE802154_SET_EXT_ADDR, iface,
                     addr, IEEE802154_EXT_ADDR_LENGTH))

Need to check it out and see whether that would work.

@tbursztyka Could be a good idea add local-mac-address on DT for tests purposes as alternative to random MAC?
    local-mac-address:
      type: uint8-array
      default: false
      description:
        Specifies the MAC address that was assigned to the network device

The problem with setting the MAC via net_mgmt(NET_REQUEST_IEEE802154_SET_EXT_ADDR, iface, addr, IEEE802154_EXT_ADDR_LENGTH)) or net_if_set_link_addr(iface, mac, 8, NET_LINK_IEEE802154); is that this is not possible before ieee802154_radio_api.iface_api.init() which internally calls ieee802154_init() and thus also openthread_init(), but needs to be done before. Currently, thus you can only modify each driver to hook your MAC in.

I'm a bit confused, do we talk about setting the 802.15.4 Extended Address or the factory assigned EUI-64? Yes, in core 802.15.4 they're the same, but OpenThread, for instance, differentiates them. Given the last comment from @markus-becker-tridonic-com I get an impression we talk about EUI-64, but just wanted to clarify.
In the case of the former, most (if not all) of the drivers use filter API function to set Extended Address, for instance:
https://github.com/zephyrproject-rtos/zephyr/blob/master/drivers/ieee802154/ieee802154_nrf5.c#L263
In case of the EUI-64, isn't it up to each driver to configure this? Just as @tbursztyka says, we can't rely on get_mac function, as it's internal for each driver and not all drivers have it.
Probably we could add a common Kconfig option to choose how MAC address should be obtained (random/static/hw-specific)? Still, each driver would need to respect these.

Sorry for the confusion. It was about the factory assigned EUI-64. Not all radio devices have this in silicon, e.g. RF233 requires another chip connected via I2C to provide the EUI-64 (AT24MAC402) or a custom method to provide your own EUI-64 from your own OUI range.

Probably we could add a common Kconfig option to choose how MAC address should be obtained (random/static/hw-specific)? Still, each driver would need to respect these.

This would be a first step, but even in the case of hardware specific there might be a need to be able to override the mechanism. A weak get_mac function, would make this possible.

How about this would be handled similarly to hwinfo_get_device_id()?

If I understand, maybe we can define a phandle on DT exclusive to get mac address for ifaces. That phandle represents a driver that can return MAC-48 and/or MAC-64. This must have preference over random MAC. In fact, a random MAC could be the default implementation (first driver) and default action to call. We can use DT local-mac-address Linux definition to define an alternative way for test purposes and for cases that phandle driver not exist yet. This alternative is a way that user don't need change code.
It seems that this way we can have an agnostic API, I'm not sure yet.
Could it be useful for other ifaces like ETH, WIFI etc?
Could it be called by upper layers instead by driver itself? I'm not sure if this question is an option.
I did some tests with local-mac-address and will share soon.

@nandojve looking forward to your proposal.

@markus-becker-tridonic-com The @24096 have small part of the solution that shows how to get local-mac-address from device tree. I'll start to work next week on the remaining part.

@markus-becker-tridonic-com I was thinking about keep this more simple now. I took you suggestion to implement method as weak. I only changed the method signature to avoid internal problems and refactored the internals. At this moment there are many things happen with DT and is better have everything stable. This way, you can have everything you want at Zephyr 2.3 release.

The solution from https://github.com/zephyrproject-rtos/zephyr/issues/23193#issuecomment-593445299 does not work with OpenThread because that is the 802.15.4 management interface.
This seems to work:
`
uint8_t *pMac;
// pMAC[0] = ...;
// ...
#if defined(CONFIG_IEEE802154_RF2XX_NET_IF_NO_AUTO_START)
/* setting MAC address ... */
struct net_if *iface = net_if_get_first_by_type(&NET_L2_GET_NAME(OPENTHREAD));
__ASSERT(iface != NULL, "OT iface NULL");
struct device *radio_dev =
    device_get_binding(CONFIG_NET_CONFIG_IEEE802154_DEV_NAME);
__ASSERT_NO_MSG(radio_dev != NULL);

 struct ieee802154_radio_api *radio_api =
    (struct ieee802154_radio_api *)radio_dev->driver_api;
__ASSERT(radio_api != NULL, "radio API NULL");

struct ieee802154_filter filter;
filter.ieee_addr = pMac;
radio_api->filter(radio_dev, true,
                    IEEE802154_FILTER_TYPE_IEEE_ADDR,
                    &filter);

`

Would it be possible to make the option CONFIG_IEEE802154_RF2XX_NET_IF_NO_AUTO_START not RF2XX only, but CONFIG_IEEE802154_NET_IF_NO_AUTO_START?

CONFIG_IEEE802154_NET_IF_NO_AUTO_START since there are other radio drivers for which the MAC needs to be set as well

@markus-becker-tridonic-com That is a good idea. Can you send a PR for that?

@jukkar should that then be in ieee802154_init() in subsys/net/l2/openthread/openthread.c and subsys/net/l2/ieee802154/ieee802154.c?

@jukkar PR: https://github.com/zephyrproject-rtos/zephyr/pull/25629


pickling of icechunk stores is broken

import icechunk
import pickle
store = icechunk.IcechunkStore.create(
    storage=icechunk.StorageConfig.memory("")
)
pickle.loads(pickle.dumps(store))

I don't think you can pickle a memory store. If you notice, the pickle test works, but the zarr store one doesn't because it uses a memory store. If you change the zarr store test to use a filestore it will work.
This makes sense, at least for now that they will not load the same memory.


Loosing zoom level when redrawing

Hi Bart,
i've created a readonly version of the editor to follow live progress of a workflow,
pretty much like you did in your "live testing" example, but without the move viewport to step feature.
I managed to update step coloring and draw counter badges according to the flows progress.
However, each time the state changes and the react component needs to rerender,
i loose the current zoom level. This can be pretty annoying.
Is there a way to manage the zooming state externally ?
Thanks
Tilo

Hello @tskomudek!
If I understand correctly, I think you should use the SequentialWorkflowDesignerController class and call the updateBadges() method when you want to refresh badges.
import { useSequentialWorkflowDesignerController } from 'sequential-workflow-designer-react';

const controller = useSequentialWorkflowDesignerController();
// ...
controller.updateBadges();

Check "Force Badge Refresh" in this article.

Hi Bart,
i managed to solve my issue using controller.updateBadges and controller.updateRootComponent.
Thank you
T.


.travis.yml: One stage for integration tests (userns and otherwise)

The separate stage is from 4964bd9d (#1578), but using a separate stage meant that Travis serialized these slow (20+ minute) stages.  By flattening into one stage we can run these in parallel (modulo Travis worker availability) and get the Travis results earlier.
I've shifted the TEST_USERNS declaration into an env property so it shows up in the Travis UI (e.g. here).

The Travis failure is the #1473 flake.

LGTM


Modifications in PR template

Codecov Report

Merging #43 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master     #43   +/-   ##
======================================
  Coverage    2.90%   2.90%
======================================
  Files          10      10
  Lines         344     344
======================================
  Hits           10      10
  Misses        334     334

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 675cda3...af3502e. Read the comment docs.


[WFLY-17666] Deployments using JNDI over RMI must define dependency on jdk.naming.rmi JPMS module

https://issues.redhat.com/browse/WFLY-17666

@ropalka Can you add a description to the JIRA? Reviewers and maintainers need to have explanations for why changes to existing code are being made.

Added @bstansberry - could you review this PR?

Thanks @ropalka


Mixin Strategy Produces Invalid Queries

Summary
The Mixins feature is a great idea for extending the functionality of generated classes, however the mixin directive is not removed from the final generated query, resulting in errors returned from remote APIs.
Example
Let's say that we simply want to validate that a mixin has been applied by returning a message:
class RepositoryMixin:
    def test_mixin(self):
        return "This is a mixin for the Repository object!"

We then add it to the config TOML and include it in our GraphQL query:
files_to_include = [
    "./codegen/github_enterprise/mixins/repository_mixin.py",
]

query get_repository($repo_owner: String!, $repo_name: String!) {
  repository(name: $repo_name, owner: $repo_owner)
    @mixin(from: ".repository_mixin", import: "RepositoryMixin") {
    nameWithOwner
    description
  }
}

Looking at the generated Pydantic BaseModel we can see that the mixin was applied successfully:
class GetRepositoryRepository(BaseModel, RepositoryMixin):
    name_with_owner: str = Field(alias="nameWithOwner")
    description: Optional[str]

However, the final generated query in the final generated GraphQL Client still contains the mixin directive used previously to generate our Pydantic model that inherits the mixin:

Executing the GithubEnterpriseClient.get_repository method with this query results in GraphQLClientHttpError: HTTP status code: 500. Removing the mixin from the generated query fixes the error and returns the requested data, which contains a Repository on which you can successfully call the Repository.test_mixin method and get the expected output: This is a mixin for the Repository object.
Fix

Is the @mixin directive intended to be used exclusively at generation-time to inject the proper class into the inheritance chain of a given Pydantic model?

If yes, then can this issue be fixed by simply programming the codegen business logic to remove the mixin from the final generated query in the GraphQL client?
If no,  what is the use-case of preserving the mixin in the final generated query and how can one use it without remote API errors?

Hi, thank you for describing this issue. Yes, we should remove @mixin from query string included in client's method.


Release v1.0.3

Fix

Microbundle export names

Codecov Report

Merging #1 (5155528) into master (86de4d8) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master        #1   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines           22        22
  Branches         2         2
=========================================
  Hits            22        22

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Surprising behaviour of static builds

I've build a static bpftrace with alpine 3.10/llvm 8. On one host (debian buster with kernel 4.19) this works:
bpftrace -B line -e 'tracepoint:syscalls:sys_enter_open { printf("[%s] %s\n", comm, str(args->filename)); }'

on another host (stretch, with kernel 4.19) the very same command fails with
libclang: crash detected during parsing: {
  'source_filename' : 'definitions.h'
  'command_line_args' : ['clang', '-isystem', '/usr/local/include', '-isystem', '/bpftrace/include', '-isystem', '/usr/include', '-nostdinc', '-isystem', '/virtual/lib/clang/include', '-I/lib/modules/4.19.0-0.bpo.5-amd64/source/arch/x86/include', '-I/lib/modules/4.19.0-0.bpo.5-amd64/build/arch/x86/include/generated', '-I/lib/modules/4.19.0-0.bpo.5-amd64/source/include', '-I/lib/modules/4.19.0-0.bpo.5-amd64/build/include', '-I/lib/modules/4.19.0-0.bpo.5-amd64/source/arch/x86/include/uapi', '-I/lib/modules/4.19.0-0.bpo.5-amd64/build/arch/x86/include/generated/uapi', '-I/lib/modules/4.19.0-0.bpo.5-amd64/source/include/uapi', '-I/lib/modules/4.19.0-0.bpo.5-amd64/build/include/generated/uapi', '-include', '/lib/modules/4.19.0-0.bpo.5-amd64/source/include/linux/kconfig.h', '-D__KERNEL__', '-D__BPF_TRACING__', '-D__HAVE_BUILTIN_BSWAP16__', '-D__HAVE_BUILTIN_BSWAP32__', '-D__HAVE_BUILTIN_BSWAP64__', '-DKBUILD_MODNAME='"bpftrace"'', '-include', 'asm_goto_workaround.h'],
  'unsaved_files' : [('definitions.h', '...', 263), ('/bpftrace/include/__stddef_max_align_t.h', '...', 1771), ('/bpftrace/include/float.h', '...', 5192), ('/bpftrace/include/limits.h', '...', 3735), ('/bpftrace/include/stdarg.h', '...', 2025), ('/bpftrace/include/stddef.h', '...', 4499), ('/bpftrace/include/stdint.h', '...', 23388), ('/bpftrace/include/asm_goto_workaround.h', '...', 667)],
  'options' : 1,
}

But with this slight variation:
bpftrace -B line -e 'tracepoint:syscalls:sys_enter_open / 0 == 0 / { printf("[%s] %s\n", comm, str(args->filename)); }'

it works. I am wondering why this happends.

Maybe related to #266?

Yeah this looks like a dupe of #266, I suggest closing.
RE #266, I commented on #336 a further discovery - it appears that the same thing that makes musl work for a static build may be what is preventing glibc and uclibc from working as a static build, but is also what causes this crash (I think).

Closing as dupe. Let's track in #266.


Update Azure Key Vault config provider code to use newer packages

A user on Slack noted that the documentation makes use of a deprecated package for hooking up Azure KV as a configuration provider. We can't cleanup package dependencies right now (see https://github.com/Altinn/app-lib-dotnet/issues/647), but we can update the documentation so that users start using the new SDKs from Azure/MS. I avoided the KeyVaultSettings as it comes from a transitive depedency.
An alternative would be to enable the Azure KV configuration provider from Altinn.App.Api instead (ConfigureAppWebHost)

An alternative would be to enable the Azure KV configuration provider from Altinn.App.Api

We discussed this - future solution is likely to decouple completely from Azure SDKs like this, and rather use k8s features to provide secret storage/configuration features on the platform level (could be Azure KeyVault secret store CSI plugin for example)


[ko] translate the glossary term Cluster Operator

new translate in glossary
Cluster Operator

/lgtm
/approve


ignore hook exceptions in handler

Hi, I'm kube-hunter newbie and thank you for this awesome project.
When I execute kube-hunter.py, some hunting is skipped without error message.
    # In handler.py (82 line)
    def worker(self):
        while self.running:
            queue_lock.acquire()
            hook = self.get()
            queue_lock.release()

            try:
                hook.execute()
            except Exception as ex:
                **logging.debug(ex)**
            self.task_done()
        logging.debug("closing thread...")

I think skipping hunting is important event. Can you give more detail info if hook throw exception? In my case, get_api_server_version_end_point (in cvehunter.py) throw exception and skipped cvehunter.execute.

see: #137 Thank you!


Fix potential non_root_macro compilation issue.

Fixes #143.
Note that this still will cause documentation to break if macro syntax ever changes. However, this is an acceptable risk, as it would just require a hot fix to allow the documentation to build again, and users would be able to use the library still. The benefit of having nicer, more understandable, and more organized documentation is worth it.

Codecov Report

Merging #144 (b4f17fa) into dev (40c40ba) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev     #144   +/-   ##
=======================================
  Coverage   94.81%   94.81%
=======================================
  Files          73       73
  Lines       10223    10223
=======================================
  Hits         9693     9693
  Misses        530      530

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


= 2.0.22 incorrectly? reports JSX errors in templates

Vue - Official extension or vue-tsc version
2.0.26
VSCode version
1.91.0
Vue version
3.4.32
TypeScript version
5.5.3
System Info
System:
    OS: macOS 14.5
    CPU: (8) arm64 Apple M3
    Memory: 98.27 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 18.18.0 - ~/.volta/tools/image/node/18.18.0/bin/node
    npm: 9.8.1 - ~/.volta/tools/image/node/18.18.0/bin/npm
  Browsers:
    Chrome: 126.0.6478.127
    Safari: 17.5

Steps to reproduce
Install  vue, vue-tsc, typescript, and @types/react (this is included by some of our storybook dependencies).
Attempt to add attributes to an element thats types differ in Vue from React e.g. @click or :ref={() => {}}
Minimal reproduction here: https://github.com/JakeCodeSmith/vue-tsc-jsx-issues
What is expected?
The templates should not be treated as JSX, and therefore not incorrectly compare element attributes to React's JSX types.
What is actually happening?
Errors due to React's JSX types being compared to template markup.
Link to minimal reproduction
https://github.com/JakeCodeSmith/vue-tsc-jsx-issues
Any additional comments?
This happened to work in 2.0.21 (which we had installed when we first started using storybook), though I understand this version did not report on some type issues. Now we cannot upgrade vue-tsc and get the various other type-fixes.
This was only highlighted to us as the Vue VSCode extension would complain about  the JSX issues, and our type-check script would not (I assume because the extension was/is using a newer version of vue-tsc under the hood).

Update: it seems that removing vueCompilerOptions from tsconfig.json fixes this issue... which is odd.

The Vue version you installed is 3.4. After 3.3, IntrinsicElements was moved to vue/jsx-runtime. When your vueCompilerOptions.target is specified as 3, you will still try to reference IntrinsicElements from globalThis.JSX.IntrinsicElements instead of vue/jsx-runtime, thus cause problems.
Just remove "target": 3 and the language server will automatically infer the target from the Vue version in node_modules.

I will add workspace diagnostics to report when vueCompilerOptions is inconsistent with the Vue version.

Hey, @johnsoncodehk, so what does specifying version 3 actually mean? Is that exactly 3.0.0 (as opposed to 3.x.x), or is it just that it's only relevant to <=3.3 (and therefore should warn)?


basic github integration - get user repos, get repo languages

@cnp0 lemme know what else we need to integrate on this PR

I think you mentioned we were gunna rename solana_mint. I'll let you take the lead on what makes most sense to call it. Also maybe this is something I'm not understanding, but do github features need to be in this auth service/server or should we put this in our web src?

we can do two ways ->

put react in web folder and put solana_mint in server/backend folder
move solana_mint to new repo and name int repomint-backend - this is the cleaner approach i think, i was just testing stuff and trying to make things work thats why i added on same repo

tbh i like 2 almost always. i just didnt want to complicate things because some people are more used to having everything in one spot. id love to do this

github.com/repomint/repomint-web
github.com/repomint/repomint-auth
github.com/repomint/repomint-mint
github.com/repomint/repomint-art

or something along those lines.

lets do that :)

i'll merge this now, and let you clean up the repos

i'll merge this now, and let you clean up the repos

should i do solana_mint too?

ill give @Pfed-prog some time to transfer his repo before i create repomint-art. i want to give him a chance to contribute his work as-is so he gets credit.

i'll merge this now, and let you clean up the repos

should i do solana_mint too?

yes thats basically the repomint_auth
you can move the index.js to somewhere else if you'd want, thats the initial work ive done for minting tokens

yes thats basically the repomint_auth
you can move the index.js to somewhere else if you'd want, thats the initial work ive done for minting tokens

yup! just making sure we dont double up


Updates plist support.

Coverage increased (+0.2%) to 99.81% when pulling e0ff6ee10e38e0be4922b76f02e2ae668301fb1a on f/Xcodeproj1.0Support into 43e163eecb31b1c02b536a03579c6328da8de860 on master.

Coverage increased (+0.2%) to 99.81% when pulling 29069a932de01cf6f5c1313bf4d2b369ae26395d on f/Xcodeproj1.0Support into 43e163eecb31b1c02b536a03579c6328da8de860 on master.


mozilla spaces

Mozilla has "spaces" in all offices around the world where folks are free to come and hack (on FOSS): https://www.mozilla.org/en-US/contact/spaces/

Sweet, had no idea! I believe this fits well close to the co-working and hacker spaces, since they have their own internal management and mapping. @nickdesaulniers could you PR a section on Mozzila Spaces to be added after https://github.com/diasdavid/awesome-hacking-spots#coworking ? Thank you


ibc assets that aren't yet identified run out of bounds

This can be seen here: https://app.osmosis.zone/pool/621
FWIW: This is the dig asset

Just going to merge this with this issue https://github.com/osmosis-labs/osmosis-frontend/issues/158. Technically, any assets on Osmosis should be on assetlists.


doc: subsystem: nvs Added troubleshooting paragraph

Troubleshooting paragraph explains case when either
nvs API returns -ETIMEDOUT or MPU faults happens.
Signed-off-by: Andrzej Puzdrowski<EMAIL_ADDRESS>

@dbkinder Fill free to edit the commit.

Codecov Report

Merging #10283 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #10283   +/-   ##
=======================================
  Coverage   53.05%   53.05%
=======================================
  Files         214      214
  Lines       26201    26201
  Branches     5645     5645
=======================================
  Hits        13901    13901
  Misses      10028    10028
  Partials     2272     2272

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 a7bf9de...0ace51c. Read the comment docs.

@Laczen That good idea. will redirect this description and will reference it here as well.


Feature/xgboost update

This PR updates XGBoost to the latest version 0.80.
This update will also begin publishing mleap-xgboost-spark to Maven central now that all of its dependencies are on maven central.

Hi @hollinwilkins , sorry for commenting on this closed pull request.
I just wonder why "xgboost-predictor-java" is removed in this pull request as it claims better performance on online serving. I'm asking this because I'm using MLeap in the production and is considering integrating "xgboost-predictor-java" into it for better performance. It will be great if you can provide some details behind the change. Thanks!


Adding RESPONSE_HEADERS into CollectionName

Fixes failing syntax test for https://github.com/coreruleset/coreruleset/pull/1968.

Good catch, congrats!
LGTM.

Good catch, congrats!
LGTM.


fix: virtual card refunds don't have an ExpenseId

Resolves https://sentry.io/organizations/open-collective/issues/3631170111/?project=5199682&referrer=slack I guess


Remove selector on (cxt)tapend handler

This fixes #37 for me and makes the demo act in a reasonable way. My reasoning is that when you set a selector for a menu, you intend to filter on where the menu should pop up, not on where the mouse should be after a selection is made in the menu.
This serves my needs – please let me know if it is appropriate for general use.
Thanks!

Not reproducible and no response from OP; closing


[ENH] Adding updated skeleton learning inspired by pcmci

Fixes #
Changes proposed in this pull request:

Before submitting

[ ] I've read and followed all steps in the Making a pull request
section of the CONTRIBUTING docs.
[ ] I've updated or added any relevant docstrings following the syntax described in the
Writing docstrings section of the CONTRIBUTING docs.
[ ] If this PR fixes a bug, I've added a test that will fail without my fix.
[ ] If this PR adds a new feature, I've added tests that sufficiently cover my new functionality.

After submitting

[ ] All GitHub Actions jobs for my pull request have passed.

https://github.com/adam2392/causal-networkx/pull/7/commits/d33a04c9f6bcc8d7d8157d8c3a89920b2714a2bc consists of some trial and error changes to PC... see if it work?


Pivot key present despite hidden attribute

Laravel Version: 5.5.7
Description:
With belongsToMany relation if i add protected $hidden = ['pivot'], key pivot are present after json serializing.
Steps To Reproduce:

Create two models with belongsToMany relation
Add property protected $hidden = ['pivot'];
Call  $model->with('relation')->toJson()

Expected behavior
Key pivot are not visible.
Current behavior
Key pivot are present in result despite $hidden = ['pivot'] 😕

@rorc Laravel 5.5 :laughing:.

Anyhow to your question, when you are writing any column names in the model $hidden array, this means that there should be a field called pivot in the actual database table.

It used to work like this on L4...
Could you try instead using the visible property?
    protected $visible = ['first_name', 'last_name'];

Just add the fields that you want to see, anything that isn't there will be removed from the serialization...

Sry, i wrote $visible not on related model 😄


Ambiguous instructions

https://capture.dropbox.com/lcYVFnJ9y3ipmVKt
Exactly where does one go to at the "open Browser" instruction?

Hi @tgunr - the browser should have opened up automatically as part of the OAuth flow. Did that not happen in your case?

We could probably clarify that "When prompted, open your browser and click the Authorize Wrangler button" line to say something like: "When wrangler automatically opens your browser, click the Authorize Wrangler button"

My misunderstanding, I was anticipating going to somewhere on CF web site to authorize. I was doing this from CLI on Linux. When I moved to my Mac and installed wrangler and issued 'nix wrangler dev' to my surprise the browser on my Mac opened to the proper URL.
You might make it clearer that the CLI environment needs to be on a system which has a GUI interface.

@tgunr when you say

I was doing this from CLI on Linux.

What is the setup there?

Was it over SSH or something so that no browser was available? In that case, I think we should have shown an error.
Or was it that you couldn't see the browser because it was opened elsewhere?

Also, @tgunr, can you tell me where you go that screenshot? I can't find that in our current docs.

I was ssh into my Debian server using CLI.  The screenshot is from the website somewhere, I was using to illustrate the instructions for login, namely "When prompted, open your browser and click the Authorize Wrangler button. This will send an API Token to Wrangler."
Which prompted my initial question, open my browser where? No URL was given and I was assuming I needed to open my browser to some URL not realizing the login was trying to open a GUI browser on the host I was plugged into via ssh (which was headless therefor no GUI).

OK - so I assume that the Debian server had a browser available locally, which it opened, but you couldn't see it?
Regarding the instructions. I asked where you found them, because I can't find this in any of the Cloudflare docs. If you can point me to it, then I can get it updated.

No, the server is headless, no terminal, no GUI.
I'll look later for that set of instructions.

@petebacondarwin it's displayed at dash.cloudflare.com, the strings can be found in our internal stratus repo

Just letting you know I've updated the instructions @tgunr:

Thanks for the report!


Check to see if Erlang is installed

Turns out I don't have Erlang installed on my workstation, so RabbitMQ doesn't kick on.  Boom thud goes the unit test.  It may be useful to see if the erl executable exists before anything else?  Perhaps also include that in the download/install?  (Scope creep, I know.)

True, the unit test should have a check to see if the prerequisites are met. This should be easy enough to do (need to do some more research about how to detect it in Windows tho).
Maybe the check could even happen prior to trying to download/extract/execute RabbitMQ in the prod. code; however, downloading/installing Erlang itself is something this library will never do.
If Erlang allowed for a self-contained binary distribution that didn't require to be installed, it might be doable, but i don't think that's the case as of now.

PR #27 takes care of this improvement.


discord for stryker

We can make some discord for easier comunication with each other. Channels like: development for each stryker, website, and help: for live help.

The most important thing for me is to reduce the amount of input channels. Right now we have:

GitHub
Gitter
Twitter
Private email
Work email
Work Slack (between devs and users/fans inside our company)
WhatsApp (directly between devs)

roger that @simondel. Closing then :)

That doesn't mean that this is not a good idea :) I just would not like to have everything that we have now and also have Discord.
Do you think Discord could replace some input channels that we have right now?

We could also move our slack to the public.
Problem with slack and discord is that they are volatile. So if we help someone or make some decisions, it is quickly forgotten.

In contrast to those solutions, we could point people to stack overflow for questions. There already is one question out there: https://stackoverflow.com/questions/44023041/stryker-mutation-tesing-with-es6-files
The upside is that it is very public. It directly helps others. By far the best place for questions I think. @simondel what do you think?

True. But those questions can easily be answered with: "please open an issue". Once the issue is resolved we can update the answer / create a new answer on stack overflow.
That would help document the questions and provide help for people on places they already know.

This is where comments are used for in stack overflow all the time. I also think that people can judge this for themselves. If it is a technical error they see, they'll probably report it as a bug. If it is a functional warning/error they don't understand, they'll open a question.
In short:

I think people can make the distinction
If someone makes a wrong assumption, no problemo, we can point him to the correct one

In any case, I think it is worth a try, don't you?

I've been thinking about this a lot as well, I agree with Simon that there are many input channels for Stryker.   Maybe we should move from our internal slack and work email to an overall StrykerDevTeam gitter channel so we can eliminate 2 input channels? Not sure how the company will react to this.

We're closing this issue for now.


Refactor VM classes

Add a BaseOsMixin and a LinuxMixin subclass that holds linux specific methods and attributes

test this please.

test this please.

test this please.

PTAL

Probably not something to be addressed by this PR, but having to define (empty) classes for every combination of (package manager, cloud) seems a little verbose. Could we make the package manager an attribute of <Cloud>LinuxVirtualMachine?

Yeah - that wouldn't be too hard. I'd like to leave it for after the rest of this refactor though.

Code LGTM. Have you tested against CentOS?


"message": "Cannot query field 'id' on type 'AirMoistureSensor'.

I have datamodel like this:
`
type Metric {
id: ID! @unique @id
airMoistureSensors: [AirMoistureSensor!]!
}
type AirMoistureSensor @embedded {
pin: Int!
value: Int!
}
`
prisma deploys this successfuly. But when I go to prisma Admin (new beta feature). I create Metric.. cannot insert AirMoistureSensor values. After refreshing Admin interface I get this error:
""message": "Cannot query field 'id' on type 'AirMoistureSensor'. "
And admin interface do not work anymore. It stucks with this error forever, becomes totally unusable

Connector:  MongoDB
Prisma Server: 1.30
prisma CLI: [e.g. prisma/1.30.0 (darwin-x64) node-v11]
OS: [e.g. Linux]

@artem-korolev
Currently, Prisma Admin doesn't support embedded types properly.
Closing as a duplicate of https://github.com/prisma/prisma-admin-feedback/issues/108
Also, see: https://github.com/prisma/prisma-admin-feedback/issues/114


Point gitter link to gitter instead of github

Cherry-picking this to 0.14 branch to make it right on both.  Thanks!


Add option for exporting JFR to specific directory.

#108
Origin CLI - jmh:run -prof jmh.extras.JFR -t1 -f 1 -wi 10 -i 20 .TestBenchmark.
With Option - jmh:run -prof jmh.extras.JFR:--dir={dir} -t1 -f 1 -wi 10 -i 20 .TestBenchmark.

Basically, I tried to follow internal implement of JMH. There is source code of LinuxPerfProfiler.

Looks good, could you add info about how to use it somewhere in the readme perhaps?

Sure, I would try to add info to READM. By the way, I found original source code does work for absolute path, but not relative path(~/{your}/{directory}). Do you think we should keep current situation or support relative path too with other PR? Thanks!


Display WarningInstrumentingWithUprobesEvents

Print the warning into the "Capture Log", similarly to how it's done for
WarningInstrumentingWithUserSpaceInstrumentationEvent.
Note that these events are not yet produced.
Screenshot from full prototype: http://screen/Bio3seyMgy5bMue
Bug: http://b/232072696
Test: As part of the full prototype that also produces them: try to instrument
some functions with uprobes from the "unaligned" triangle.exe and verify the
message in the "Capture Log".

Ah, again full context of the change is https://github.com/google/orbit/pull/3944.


[draft] setup script compiler

Pre-review checklist

[ ] I've confirmed that instructions included in README.md are still correct after my changes in the codebase.
[ ] I've added or updated automated unit tests to verify correctness of my new code.
[ ] I've added or updated integration tests to verify correctness of my new code.
[ ] I've confirmed that my changes are working by executing CLI's commands manually.
[ ] I've confirmed that my changes are up-to-date with the target branch.
[ ] I've described my changes in the release notes.
[ ] I've described my changes in the section below.

Changes description
...

Feature implemented in smaller PRs which are already in main.


WIP: new ws interface and builder

Which is to say, I think this is on a good track, though I wonder whether Close should even be userland.

I'll leave the PR open for the idea.
#2143 will wreck this but that's ok.
I do think Close() should be in userland. Not as a frame in itself, but as a sort of command saying "your conenction has ended", and to also close connections directly.


[Bug Report][0.7.3]: Error report of vue template construction product

Steps to reproduce
example/vue
// step 1
pnpm build

// step 2
pnpm preview

What is expected?
normal
What is actually happening?

System Info
windows 11

Any additional comments?
No response

This bug comes for the js plugin vue. The HMR code should not present in prod, I will fix it


Add Getting Started section to README

Readme Update
Please add a getting Started to the file readme section

Added getting started section in README file


generate_with_llamaindex_docs does not run to completion on v0.1.1

Describe the bug
generate_with_llamaindex_docs appears to have a regression in v0.1.1 and does not run to completion. The issue does not appear on v0.1.0
Ragas version: 0.1.1
Python version: 3.10
Code to Reproduce
Run the notebook in this PR.
Error trace
Exception in thread Thread-8:
Traceback (most recent call last):
  File "/Users/xandersong/miniforge3/envs/ragas-test/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "/Users/xandersong/miniforge3/envs/ragas-test/lib/python3.10/site-packages/ragas/executor.py", line 75, in run
    results = self.loop.run_until_complete(self._aresults())
  File "/Users/xandersong/miniforge3/envs/ragas-test/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
    return future.result()
  File "/Users/xandersong/miniforge3/envs/ragas-test/lib/python3.10/site-packages/ragas/executor.py", line 63, in _aresults
    raise e
  File "/Users/xandersong/miniforge3/envs/ragas-test/lib/python3.10/site-packages/ragas/executor.py", line 58, in _aresults
    r = await future
  File "/Users/xandersong/miniforge3/envs/ragas-test/lib/python3.10/asyncio/tasks.py", line 571, in _wait_for_one
    return f.result()  # May raise f.exception().
  File "/Users/xandersong/miniforge3/envs/ragas-test/lib/python3.10/site-packages/ragas/executor.py", line 91, in wrapped_callable_async
    return counter, await callable(*args, **kwargs)
  File "/Users/xandersong/miniforge3/envs/ragas-test/lib/python3.10/site-packages/ragas/testset/evolutions.py", line 161, in evolve
    ) = await self._aevolve(current_tries, current_nodes)
  File "/Users/xandersong/miniforge3/envs/ragas-test/lib/python3.10/site-packages/ragas/testset/evolutions.py", line 507, in _aevolve
    result = await self._acomplex_evolution(
  File "/Users/xandersong/miniforge3/envs/ragas-test/lib/python3.10/site-packages/ragas/testset/evolutions.py", line 380, in _acomplex_evolution
    current_nodes = self.se._get_more_adjacent_nodes(current_nodes)
  File "/Users/xandersong/miniforge3/envs/ragas-test/lib/python3.10/site-packages/ragas/testset/evolutions.py", line 128, in _get_more_adjacent_nodes
    prev_adjacent_node = self.docstore.get_adjacent(
  File "/Users/xandersong/miniforge3/envs/ragas-test/lib/python3.10/site-packages/ragas/testset/docstore.py", line 300, in get_adjacent
    index = self.nodes.index(node)
ValueError: Node(page_content='complex reasoning by decomposing input-output\nmappings into many intermediate steps. There are\nmany pieces of research on CoT prompting strate-\ngies (Qiao et al., 2022) including prompt designing\nand process optimization. In this paper, we mainly\nfocus on CoT designing strategies.\nSimilar to demonstration selection, CoT design-\ning also considers CoT selection. Different from\nWei et al. (2022c) manually writing CoTs, Auto-\nCoT (Zhang et al., 2022b) used LLMs with Let's\nthink step by step to generate CoTs. In addi-\ntion, Fu et al. (2022) proposed a complexity-based\ndemonstration selection method. They selected\ndemonstrations with more reasoning steps for CoT\nprompting.\nAs input-output mappings are decomposed into\nstep-by-step reasoning, some researchers apply\nmulti-stage ICL for CoT prompting and design\nCoT demonstrations for each step. Multi-stage\nICL queries LLMs with different demonstrations in\neach reasoning step. Self-Ask (Press et al., 2022) al-\nlows LLMs to generate follow-up questions for the\ninput and ask themselves these questions. Then the\nquestions and intermediate answers will be added\nto CoTs. iCAP (Wang et al., 2022a) proposes a\ncontext-aware prompter that can dynamically ad-\njust contexts for each reasoning step. Least-to-\nMost Prompting (Zhou et al., 2022a) is a two-stage\nICL including question reduction and subquestion\nsolution. The first stage decomposes a complex\nquestion into subquestions; in the second stage,\nLLMs answer subquestions sequentially, and previ-\nously answered questions and generated answers\nwill be added into the context.\nXu et al. (2023b) fine-tuned small LMs on spe-\ncific task as plug-ins to generate pseudo reasoning\nsteps. Given an input-output pair (xi, yi), Super-\nICL regarded the prediction y′\niand confidence ci\nof small LMs for the input xias reasoning steps by\nconcatenating (xi, y′\ni, ci, yi).\n3Takeaway :(1) Demonstration selection\nstrategies improve the I', metadata={'page_label': '6', 'file_name': '2301.00234v3.A_Survey_on_In_context_Learning.pdf', 'file_path': 'prompt-engineering-papers/2301.00234v3.A_Survey_on_In_context_Learning.pdf', 'file_type': 'application/pdf', 'file_size': 4898135, 'creation_date': '2024-02-13', 'last_modified_date': '2024-02-08', 'last_accessed_date': '2024-02-13'}, doc_id='963d6900-8fd2-4b7e-bfd2-00d8f29f635e', filename='963d6900-8fd2-4b7e-bfd2-00d8f29f635e') is not in list

---------------------------------------------------------------------------
ExceptionInRunner                         Traceback (most recent call last)
Cell In[12], line 13
     10 distribution = {simple: 0.5, reasoning: 0.25, multi_context: 0.25}
     12 # generate testset
---> 13 testset = generator.generate_with_llamaindex_docs(
     14     documents, test_size=TEST_SIZE, distributions=distribution
     15 )
     16 test_df = testset.to_pandas()
     17 test_df.head()

File ~/miniforge3/envs/ragas-test/lib/python3.10/site-packages/ragas/testset/generator.py:128, in TestsetGenerator.generate_with_llamaindex_docs(self, documents, test_size, distributions, with_debugging_logs, is_async, raise_exceptions, run_config)
    113 def generate_with_llamaindex_docs(
    114     self,
    115     documents: t.Sequence[LlamaindexDocument],
   (...)
    122 ):
    123     # chunk documents and add to docstore
    124     self.docstore.add_documents(
    125         [Document.from_llamaindex_document(doc) for doc in documents]
    126     )
--> 128     return self.generate(
    129         test_size=test_size,
    130         distributions=distributions,
    131         with_debugging_logs=with_debugging_logs,
    132         is_async=is_async,
    133         run_config=run_config,
    134         raise_exceptions=raise_exceptions,
    135     )

File ~/miniforge3/envs/ragas-test/lib/python3.10/site-packages/ragas/testset/generator.py:246, in TestsetGenerator.generate(self, test_size, distributions, with_debugging_logs, is_async, raise_exceptions, run_config)
    244     test_data_rows = exec.results()
    245     if test_data_rows == []:
--> 246         raise ExceptionInRunner()
    248 except ValueError as e:
    249     raise e

ExceptionInRunner: The runner thread which was running the jobs raised an exeception. Read the traceback above to debug it. You can also pass `raise_exception=False` incase you want to show only a warning message instead.

Expected behavior
Method should run without error.

llamaindex seems broken in many ways with the latest update

Hey @ogencoglu @axiomofjoy I have raised a fix for this issue #617


Add component statement colorization

Adds colorization to component statements

@TwitchBronBron are we doing any of the template colors in this or it will just be considered a template string in the short term?

No template colors right now. They'll just all show up as the string color. We can get to those once we land the core functionality


Is there a way to exclude a subtitle?

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm asking a question and not reporting a bug or requesting a feature
[X] I've looked through the README
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've searched known issues and the bugtracker for similar questions including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Please make sure the question is worded well enough to be understood
In the site bilibili, every video have danmaku (i.e bullet curtain). yt-dlp will think it as a kind of subtitle, and download it, which is wrong in my view.
I am using mpv with yt-dlp. If I switch the subtitle to the danmaku, mpv will be lagging . So i wonder about is there a way to exclude the file danmaku.xml when we download a video.
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['-vU', '--list-subs', 'https://www.bilibili.com/video/BV17A4m1G7VN/']
[debug] User config "/home/xxiaoa/.config/yt-dlp/config": ['--cookies-from-browser', 'firefox', '--format=(bestvideo[height<=3840][vcodec^=av01]/bestvideo[height<=3840][vcodec^=vp]/bestvideo[height<=3840])+bestaudio', '--socket-timeout=10', '--add-metadata', '--prefer-free-formats', '--all-subs', '--embed-subs', '--no-mtime']
Extracting cookies from firefox
[debug] Extracting cookies from: "/home/xxiaoa/.mozilla/firefox/2ap479rg.default-release/cookies.sqlite"
Extracted 2101 cookies from firefox
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp [f10589e34]
[debug] Python 3.11.7 (CPython x86_64 64bit) - Linux-6.7.4-arch1-1-x86_64-with-glibc2.39 (OpenSSL 3.2.1 30 Jan 2024, glibc 2.39)
[debug] exe versions: ffmpeg 6.1.1 (setts), ffprobe 6.1.1
[debug] Optional libraries: certifi-2024.02.02, mutagen-1.47.0, requests-2.31.0, sqlite3-3.45.1, urllib3-1.26.18
[debug] Proxy map: {'https': 'http://<IP_ADDRESS>:7890', 'ftp': 'http://<IP_ADDRESS>:7890', 'http': 'http://<IP_ADDRESS>:7890', 'rsync': 'http://<IP_ADDRESS>:7890', 'no': 'localhost,<IP_ADDRESS>,localaddress,.localdomain.com'}
[debug] Request Handlers: urllib, requests
[debug] Loaded 1798 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
ERROR: Unable to obtain version info (HTTP Error 403: rate limit exceeded); Please try again later or visit  https://github.com/yt-dlp/yt-dlp/releases/latest
[BiliBili] Extracting URL: https://www.bilibili.com/video/BV17A4m1G7VN/
[BiliBili] 17A4m1G7VN: Downloading webpage
[BiliBili] BV17A4m1G7VN: Extracting videos in anthology
[BiliBili]<PHONE_NUMBER>: Extracting chapters
[BiliBili] BV17A4m1G7VN: Extracting subtitle info<PHONE_NUMBER>
[BiliBili] Format(s) 1080P 60帧 are missing; you have to login or become premium member to download them. Use --cookies-from-browser or --cookies for the authentication. See  https://github.com/yt-dlp/yt-dlp/wiki/FAQ#how-do-i-pass-cookies-to-yt-dlp  for how to manually pass cookies
[info] BV17A4m1G7VN: Downloading subtitles: danmaku
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), channels, acodec, size, br, asr, proto, vext, aext, hasaud, source, id
[info] Available subtitles for BV17A4m1G7VN:
Language Formats
danmaku  xml

Use --sub-langs to select the languages/subs you want, e.g.
--sub-langs "en.*"
or
--sub-langs all,-danmaku


indicate the option that has been deprecated in warning

Hey, I just made a Pull Request!
indicate the option that has been deprecated in warning
:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

Thank you! woopsie!


req.originalUrl vs. req.url

Some express middleware such as app.use and the router will strip req.url to fit their context so I've started using req.originalUrl in ensureAuth. Here's the docs  on the difference between the two. I like being able to use ensureAuth as router-level middleware sometimes and figured you might to :)

Seems like a good change!