Tenant cluster VMs running on external infra are not tracked after creation

This feature allows running tenant cluster VMs on external infrastructure (external infra meaning any cluster that is not the CAPI/CAPK management cluster itself): https://github.com/kubernetes-sigs/cluster-api-provider-kubevirt/issues/32
One outstanding issue with tenant clusters deployed on external infra is that CAPI/CAPK management plane does not track underlying VMs for tenant clusters after creation. Meaning, if an underlying VM of a tenant cluster failed completely, or restarted with a different IP, the management plane would not be able to recover the node.
This problem is resolved for tenant clusters running on the management cluster with this PR (issue https://github.com/kubernetes-sigs/cluster-api-provider-kubevirt/issues/70): https://github.com/kubernetes-sigs/cluster-api-provider-kubevirt/pull/73
But we currently lack the resolution for tenant clusters running on external infra.
Please investigate.

/remove-lifecycle stale

we need to either create an informer or poll for VM changes on external clusters

this issue is related to issue https://github.com/kubernetes-sigs/cluster-api-provider-kubevirt/issues/100


hbase 0.98 could not be supported for shc ?

There is a "no such method" problem about low hbase (0.98 version). Unlucky, we did not know how to select the correct version about shc. Is there anyone given some tips?

I had the same problem, the only solution for me was upgrading HBase to 1.1.2 (1.2.6 works too).

Sorry guys. We are moving forward.  Spark 2.4 is coming.


Conditional error

Contains
Brief description of what the PR does like "Fixes #12345"
How to test
Brief description of how to test / confirm this PR before merging
Outstanding before merging
If anything. You can use neat checkboxes! Feel free to delete if not needed

[ ] Need to consider use case x
[ ] Still have to adjust the wiki doc
[ ] Will need translation work

Can one of the admins please verify this patch?

My advice would be to close this PR and add the invalid tag as well. Hacktoberfest processes the invalid tag by invalidating the contribution the user has made and won't count toward Hacktoberfest.
More information about this:
https://hacktoberfest.digitalocean.com/details#spam
The other PR's:
https://github.com/home-assistant/home-assistant.io/pull/10667/files
https://github.com/owncloud/core/pull/36259/files
https://github.com/MovingBlocks/Terasology/pull/3754/files
https://github.com/TheAlgorithms/C-Plus-Plus/pull/464/files
https://github.com/getsentry/sentry/pull/14890/files


Item Pushed to the Right Instead of Down

When there's plenty of space on the right side of the sortable list, an item dragged from a lower row to a higher row pushes the items to the right instead of down. Here's an image illustrating this behavior.

This is the link to the project from which the behavior above is observed.
Is there any way to make sure the items don't get pushed outside of its parent container?

The same question

Same question but in my case I have 1 horizontal row of images and the images are pushed vertically outside of the parent container. How can I stop this?

Same question but in my case I have 1 horizontal row of images and the images are pushed vertically outside of the parent container. How can I stop this?

I am getting same issue. Have you found solution? Could you please share?

No solution yet :(


feat(robot-server): Validate requests to PUT /deck_configuration

Overview
When a client sends an HTTP request to set the robot's deck configuration, this PR makes the server check that the new configuration is valid. Stuff like, you can't put two things into the same cutout.
Closes RSS-399.
Test Plan
The automated tests added in this PR should be sufficient.
Changelog

Add a new module, robot_server.deck_configuration.validation.
Wire it up to the PUT /deck_configuration endpoint.

Review requests

See inline notes.
Did I miss any validation rules when I was speccing out RSS-399?

Risk assessment
Low.

This is based on #13894. It should merge into edge after #13894 does.

I'll be out until 2023-11-13. Feel free to take this over or merge it in my absence.

Merged into edge as part of PR #13894.


How to set the apiKey of a remote chrome WS connection

I have deployed chrome in lambda and use AWS IoT to perform websocket connection.  This is working great using chromeless package directly to handle the connection.
    const chromeless = new Chromeless({
      remote: {
        endpointUrl:
          'https://xxxxxxxxx.execute-api.us-west-2.amazonaws.com/production',
        apiKey: 'xxxxxxxxxxxx',
      },
    });

After looking at the documentation of puppeteer, I've noticed that I could install puppeteer-core instead of puppeteer, so I did so. Then I had to dig in the the issues of puppeteer to find out that I need to use puppeteer.connect() in order to connect to the websocket url.
    const browser = await puppeteer.connect({
      browserWSEndpoint:
        'https://xxxxxxx.execute-api.us-west-2.amazonaws.com/production',
    });

now, I get a 403 while attempting to connect to the same websocket because I have no idea how to pass the apiKey to the connection. I cannot see any options in the documentation of puppeteer.connect([options])
I'm using the latest version of puppeteer-core: "^1.11.0"

@Maxwell2022 Puppeteer is a general-purpose library for browser automation; unlike Chromeless, it doesn't aim to provide a boxed solution to run in serverless environments.
There are a lot of articles and community resources that help running in the cloud. For example, check out our troubleshooting.md on running on AWS Lambda.
Hope this helps.

I have chromeless running, I just wanted to connect to my instance through websocket. However it looks like puppeteer.connect() does not support sending auth header out of the box.

However it looks like puppeteer.connect() does not support sending auth header out of the box.

Yeah that's the case.


Openspending upload prototype

This one shouldn't be merged. Just branched from to build the production version
This is what a successful import looks like:
root@c0803c1fd768:/code# python upload.py b9d2af843f3a7ca223eea07fb608e62a "eyJ0e...secret token...SR5to0" vulindleladata_202122_ytd_quarter4.csv 2021-22
Cleaning CSV
Getting authorisation for datastore
Uploading CSV /tmp/tmp4qclpdud
Creating and uploading datapackage.json
Datapackage url: https://s3.eu-west-1.amazonaws.com:443/openspending-vulekamali/b9d2af843f3a7ca223eea07fb608e62a/national-in-year-spending-2021-22/datapackage.json
Starting import of uploaded datapackage.
Initial status: {
  "progress": 0,
  "status": "queued"
}
Monitoring status until completion (https://openspending-dedicated.vulekamali.gov.za/package/status?datapackage=https%3A%2F%2Fs3.eu-west-1.amazonaws.com%3A443%2Fopenspending-vulekamali%2Fb9d2af843f3a7ca223eea07fb608e62a%2Fnational-in-year-spending-2021-22%2Fdatapackage.json):
{'progress': 0.0, 'status': 'loading-data'}
{'progress': 0.0, 'status': 'loading-data'}
{'progress': 0.0, 'status': 'loading-data'}
... an hour?...
{'progress': 0.88, 'status': 'loading-data'}
{'progress': 0.88, 'status': 'loading-data'}
{'progress': 0.92, 'status': 'loading-data'}
{'progress': 1.0, 'status': 'done'}

prouctionised and merged in https://github.com/vulekamali/datamanager/pull/403


refactor: have knuu as an object

func Knuu(scope string) (*Knuu, error)

func (k *Knuu) GetScope() (string, error)
func (k *Knuu) CleanUp() (error)
func (k *Knuu) SetImageBuilder(b builder.Builder) (error)
func (k *Knuu) ImageBuilder() (builder.Builder, error)
func (k *Knuu) NewInstance(name string) error

If we do that before v1, please make changes backward compatible.

This is a breaking change, we need to communicate it well to the users before cutting a release.

This is a breaking change, we need to communicate it well to the users before cutting a release.

Can we add this without touching the current code?

We can write some wrappers to support the current users, then in another release we can get rid of the wrapper and ask everyone to use it as an object.


Update live-to-vod API and live config for RTMP

Looks good! You can update client to 4.0.81

Done!


Change tracking for objects

identify which fields have been altered since new object creation or since loading from the database, as well as the previous values

also verify/fix test in document_test.go, currently marked Pending


Doubt regarding omegaConf

I am trying to run the analysis.py file. I have installed all the required packages and have installed them using pip. I have created hosts.yaml and cfg.yaml (empty files) in the configs folder. I am getting the following error on running the analysis.py file,
Traceback (most recent call last):
  File "/Users/rohan/Desktop/Koes_lab/New/check/prody_pockets_5A/bigbind-master/analysis.py", line 141, in <module>
    cfg = get_config("local")
          ^^^^^^^^^^^^^^^^^^^
  File "/Users/rohan/Desktop/Koes_lab/New/check/prody_pockets_5A/bigbind-master/utils/cfg_utils.py", line 45, in get_config
    cfg["host"] = hosts[host_name]
                  ~~~~~^^^^^^^^^^^
  File "/Users/rohan/anaconda3/lib/python3.11/site-packages/omegaconf/dictconfig.py", line 375, in __getitem__
    self._format_and_raise(key=key, value=None, cause=e)
  File "/Users/rohan/anaconda3/lib/python3.11/site-packages/omegaconf/base.py", line 231, in _format_and_raise
    format_and_raise(
  File "/Users/rohan/anaconda3/lib/python3.11/site-packages/omegaconf/_utils.py", line 899, in format_and_raise
    _raise(ex, cause)
  File "/Users/rohan/anaconda3/lib/python3.11/site-packages/omegaconf/_utils.py", line 797, in _raise
    raise ex.with_traceback(sys.exc_info()[2])  # set env var OC_CAUSE=1 for full trace
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/rohan/anaconda3/lib/python3.11/site-packages/omegaconf/dictconfig.py", line 369, in __getitem__
    return self._get_impl(key=key, default_value=_DEFAULT_MARKER_)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/rohan/anaconda3/lib/python3.11/site-packages/omegaconf/dictconfig.py", line 442, in _get_impl
    node = self._get_child(
           ^^^^^^^^^^^^^^^^
  File "/Users/rohan/anaconda3/lib/python3.11/site-packages/omegaconf/basecontainer.py", line 73, in _get_child
    child = self._get_node(
            ^^^^^^^^^^^^^^^
  File "/Users/rohan/anaconda3/lib/python3.11/site-packages/omegaconf/dictconfig.py", line 480, in _get_node
    raise ConfigKeyError(f"Missing key {key!s}")
omegaconf.errors.ConfigKeyError: Missing key local
    full_key: local
    object_type=dict

How to setup the omegaconf and am I supposed to run the analysis.py or some other file.

What are you trying to do? Analysis.py just creates some figures I used in the appendix.
The configuration is pretty complicated and we're currently in the process of making a new codebase with a lot simpler config. In the case of analysis.py, I'd recommend removing the get_config() call and changing the line in https://github.com/molecularmodelinglab/bigbind/blob/7c67d75d7f4b0d0f74df5faa62372afc56d34c3d/analysis.py#L73 to point to wherever you downloaded the bigbind set.


[enhancement] [2.1rc] ACTION_RETURN_VALUE enabling read only functions

See Telegram December 16-19 https://t.me/c/1139062279/252476
Issue
Blockchain clients can only use get_tables API to read blockchain data. This has several problems for application developers:

only the primary key can be used for searches with no range searches
efficient, aggregated cross-table queries can't be made with a guarantee that table data is from the same block height (unless using dfuse state table API with block height option). This is because the client must perform aggregation and does not have a consistent view of the EOSIO database.
programmable and conditional queries cannot be efficiently and with a guarantee that table data is from the same block height

A few workarounds exist for the above problem:

LiquidApps's Liquid Lens service
Greymass API might have a feature for this (said someone in Telegram, but I could not find it)

With ACTION_RETURN_VALUE
With the new functionality of ACTION_RETURN_VALUE #8327 in EOSIO 2.1rc, there is a way to create such complex queries on the server, guaranteeing consistency with the EOSIO database. An example query would be to return all accounts with a balance > 1000 SYS and that have more than 10 SYS staked that currently has an active name bid. An action can now be created which returns a vector of these accounts. This functionality works when the action is executed on the node by adding it to the blockchain, which may be valid on private EOSIO networks but is not feasable on public networks such as EOS where CPU costs prohibit this. A workaround exists to add an additional action to the tx with an action that always fails, which is not neat, a familiar or obvious strategy for application developers.
This issue highlights that it may be feasible to build the following features to enhance ACTION_RETURN_VALUE for the benefit of application developers.
Proposals:

Implement read only actions (good) - define some actions that when called, will never add the tx to the blockchain, only execute on the server and return the result. this is similar to Ethereum's view functions
Implement no broadcast executable txs (better) - provide an additional parameter to push_transactions to specify that the tx should not be added to the blockchain. This would let clients send the tx to the node, the node would execute and provide the execution result but not add it to the blockchain. This is a more general approach, in addition to allowing for tx results to be read and hence txs to query the blockchain, this would additionally support write txs and give developers the ability to easily get an expectation on the consequences of a tx before it is sent. (this is different to the --dont-broadcast parameter of cleos's push transaction API (or similar parameters in eosjs), which doesn't even send the tx to the node, just prints the serialized data)

An additional benefit of either of the above would mean that the write AND read code for each smart contract would be logically coupled together. While not a functional requirement, this would make code management easier for application developers.
An additional benefit, useful for private networks, is that read transactions can have authorization checks using require_auth and allow data privacy at the node API level. this is currently only possible with a middleware layer above the nodeos API, or nodeos plugins.

This is personally the approach I use as well and I think some of Liquid's products uses it as well:

A workaround exists to add an additional action to the tx with an action that always fails, which is not neat, a familiar or obvious strategy for application developers.

It feels hacky to do this and having a proper way like Ethereum view fns would be ideal.

As explained by Aaron from greymass:

ttps://github.com/greymass/eos/commits/skip_all_checks
Apply those 4 commits to nodeos, start nodeos with --skip-all-checks. Then to sample a transaction, send the transaction without any signatures to the push_transaction endpoint.
Without the signatures, it’ll execute locally, return the results (including speculative cpu usage/etc), and the transaction ends up being rejected by peers without the signature so it never makes it on chain. It’s a crude solution, but it works well.
We have it running at the following url if you want to give it a shot without compiling:
https://eos.greymass.com/v1/chain/test_transaction

As Michael pointed out on Telegram, large query transactions may reach the hard transaction limit of 30ms, or the accounts CPU limits. As query transactions don't enter the blockchain, there should be a mechanism to allow large queries (strategy 1) or long txs (strategy 2) while also considering the security of the API and prevention of query DDOS attacks

This is really helpful input, thanks guys!  We're working on this, although I don't yet have an ETA to share.  Please keep the feedback coming!

From Aarin Hagerty

Here is a suggestion for proposal 2. The transaction could have a special extension to ensure it will never be included in the real blockchain. But if sending it to an endpoint to run in a pure-speculative mode (for example to read data or to do a dry-run for CPU estimation purposes), it will not reject the transaction early because of that extension. That way even if you put signatures on it to authorize a read from a private blockchain you still don’t have to worry about it potentially being rerouted to the producer node. Or if one were using some future contract-managed system for resource billing and authorization (which doesn’t leverage first authorizer or native transaction signatures), there would still be a guarantee that the dry-run transaction cannot go on the blockchain.

From Aarin Hagerty

Here is a suggestion for proposal 2. The transaction could have a special extension to ensure it will never be included in the real blockchain. But if sending it to an endpoint to run in a pure-speculative mode (for example to read data or to do a dry-run for CPU estimation purposes), it will not reject the transaction early because of that extension. That way even if you put signatures on it to authorize a read from a private blockchain you still don’t have to worry about it potentially being rerouted to the producer node. Or if one were using some future contract-managed system for resource billing and authorization (which doesn’t leverage first authorizer or native transaction signatures), there would still be a guarantee that the dry-run transaction cannot go on the blockchain.

From @abourget

I would have loved to have an "alwaysfail"  method either be native or in all system contracts.

I had proposed something in here years ago: https://eeps.io/EEPS/eep-5 (search for alwaysfail). So many things become possie with that guarantee of non-propagation (like that proposed alerting system).

With only that, we were able to implement return values through emitting an inline action before the alwaysfail action is reached.

From @abourget

I would have loved to have an "alwaysfail"  method either be native or in all system contracts.

I had proposed something in here years ago: https://eeps.io/EEPS/eep-5 (search for alwaysfail). So many things become possie with that guarantee of non-propagation (like that proposed alerting system).

With only that, we were able to implement return values through emitting an inline action before the alwaysfail action is reached.


left_handed has no effect

My mouse has changed to being left handed i believe since https://github.com/hyprwm/Hyprland/commit/60c414ccadd0e2ff6be22bb880f605a164f451d5 & #776, and setting left_handed = false has no effect even after restarting

Just ran a bisect-
with input:left_handed = false, 60c414c is the first bad commit

yeah i got this problem too, now, by default my mouse were inverted rmb and lmb


CDK-909. Morphlines Solr modules do not work on Java 6.

I think you'd only need to exclude kite-morphlines-solr-core and kite-morphlines-solr-cell for java6, the other morphline modules are still ok with java6.

+1 Thanks!


Accept full content of private key file in Client Secret field

Please accept this humble PR to simplify the configuration and pottentially save hours of others in the future...
After rushing over the setup and spending hours trying to figure out why the login just wouldn't work it turned out that the result of cat *.p8 | base64 -w 0 just wasn't the value the client secret field expected :facepalm:
With this PR merged the Client Secret field will accept the full content of the private key file.
Already correctly configured private key fields aren't affected by the change, as their values will survive replaceAll("[\r\n\t\f ]|-----.+?-----", "") (Regex test) unharmed.

Thank you so much for this extension! :slightly_smiling_face: I'm migrating to it from a custom build keycloak with the Apple IDP PR merged and all i needed to do was replace the client secret field.
The approach with generating the client secret on the fly is neat. Previously it happened that our client secret expired...

Hi @iudex- , you’re welcome, I’m glad this extension helped you! And thank you for your PR.
You are right saying the way the private key has to be set in not optimal. When I wrote this extension, I did not intend to share it; so I took the shortest path to my goal, neglecting UI. I think the most convenient would be a file input, because this is the way we get the key from Apple. If you take the time to replace the text input by a file input, I would happily merge it.
But I prefer not to merge your current contribution for this reason : some tutorials I don’t own have been written, helping people enable Apple login in Keycloak with my extension. A lot of people reading the tutorials instead of my doc may not notice the change if the UI do not warn them. Plus the README makes it very clear how to set the private key! It happens to misread the doc, I plead guilty too often :)
I did not invest a lot of time in this extension because I thought Keycloak would have promptly enabled Apple login natively. It’s not so evident now, they have trouble to automate testing. If confirmed, I will take time to improve it and set the file input myself.


Change hardcoded 2014 to current year

:house_with_garden:

@cllns @joneslee85 Sorry, but you have to fix this.
As of v0.5.0 it prints:
2014 - present

With this merged PR, it will be:
2015 - present

Which it's redundant.
If we want to use a dynamic time in welcome page, it should print:
2014 - 2015

Which can be achieved via
2014 - <%= Time.now.year %>

Can you please fix it?

Oops! Great find! See #406


Bug: Validation passes if key does not exist when using asterisk

PHP Version
8.1
CodeIgniter4 Version
4.4.1 OR 4.3.5
CodeIgniter4 Installation Method
Composer (using codeigniter4/appstarter)
Which operating systems have you tested for this bug?
Linux
Which server did you use?
apache
Database
No response
What happened?
If I use the asterisk in the validation rule, it does not check for non existing key.
There are two workarounds, but I guess they are not the best solutions.

Add a default value with the given key
Use with numbers instead of asterisk

Steps to Reproduce
In any controller I use the following snippet in the initController method.
        <?php
        $requestData = [
            'contacts' => [
                'friends' => [
                    ['name' => 'Fred Flinstone', 'age' => 20],
                    ['age' => 21], // 'name' key does not exist
                ]
            ]
        ];

        // $requestData['contacts']['friends'][1]['name'] ??= null; // Workaround for non existing keys

        $this->validator = Services::validation();
        $this->validator->setRules(
            [
                'contacts.friends.*.name' => 'required', // The "*" does not check for non existing keys and pass validation
                // 'contacts.friends.0.name' => 'required', // With this solution works fine even if the key does not exist
                // 'contacts.friends.1.name' => 'required', // With this solution works fine even if the key does not exist
            ]
        );

        dd($this->validator->run($requestData), $this->validator->getErrors());

Expected Output
I think the validation should check for it and fail if key does not exist (if there is a rule for it). So in my case the output should be:
$this->validator->run(...) boolean false
$this->validator->getErrors() array (1)
contacts.friends.1.name => string (46) "The contacts.friends.*.name field is required."
Now I get this:
$this->validator->run(...) boolean true
$this->validator->getErrors() array (0)
Anything else?
I did not see any reference in the documentation: https://codeigniter.com/user_guide/libraries/validation.html#setting-rules-for-array-data
I did not find any issue like this (maybe in the closed issues).

Thank you for reporting. I've confirm the behavior.
It seems the Validation class validates only the existing key field.

@kenjis You can assign me to handle this bug.

@ping-yee Assigned.
The current code only performs processing on existing data. If the key is not present, it will not be processed. So it seems to me that we need to add a key that does not exist.

Yah, I just figure out how the current code works.

So it seems to me that we need to add a key that does not exist.

I will follow this way to fix this bug.

@ping-yee Any progress?

@kenjis Yah, but this is not very optimistic and I need your help.
Or I send a draft PR first.

I think this is very difficult problem. So it requires more brains.

I think this is very difficult problem. So it requires more brains.

Yes, I agree with this and I send the draft PR.

As a workaround, you can use field_exists since v4.5.0.

i can confirm that if using with no asterisks the validation still not works
using data like this
	$requestData = [
		'contacts' => [
			'friend' => 'test'
		]
	];

	$this->validator = Services::validation();
	$this->validator->setRules(
		[
			'contacts.friend' => 'required',
		]
	);

	dd($this->validator->run($requestData), $this->validator->getErrors());


PDCL-6033: add github actions in preparation for new release flows

Description
Adds github actions for new standardized deployment process.
Motivation and Context
manual publishes to npm are no longer allowed.
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] Repository maintenance

Checklist:

[x] I have signed the Adobe Open Source CLA.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

NOTE: this repo is out of date and the tests aren't working. to be fixed in another PR

PR with fixed tests: https://github.com/adobe/reactor-sdk-javascript/pull/62


Authentication failed error on both admin and user panel

RainLoop version 1.15.0, browser Chrome, OS Ubantu:
Expected behavior and actual behavior:
Authentication failed error on both admin and user panel
Steps to reproduce the problem:
I tried changing the password on the application.ini file. But it didn't work
Logs or screenshots:

I tried changing the password on the application.ini file. But it didn't work

Correct, it should be 12345 or system generated.

i have the same problem

I tried changing the password on the application.ini file. But it didn't work

Correct, it should be 12345 or system generated.

So changing the admin password in the application.ini does not change the password?

I am currently setting up a new AWS EC2 Instance CyberPanel and OLS and it comes packaged with RainLoop.
Early last year on a different install I was able to log into the admin panel, but since then I have not been able to login on either the older install or the new.
I see the common solution is to toggle the "Use Short Login" setting in the configuration - however that does not appear to be a setting in 1.16.0
Has it been left out to confuse us?


Drops vendored copy of py-cpuinfo

py-cpuinfo was needed to determine the architecture to build Cython extensions against. However those extensions have migrated to Numcodecs. Hence Zarr has no need for this functionality. That said, one of the notebooks still makes use of py-cpuinfo. Thus it is added as a development requirement.

FWIW py-cpuinfo was only used in notebooks/genotype_benchmark_compressors.ipynb, which runs fine for me with this change in the dev environment.

Great, thank you.


Updating CODEOWNERS for Communication Identity & Common Packages

Contributing to the Azure SDK
Updating CODEOWNERS for Communication Identity & Common Packages
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

/check-enforcer override


Feature request: add reverse proxy directives

and also relevant cache strategies
Also I'll use this issue to say this project is very useful even without this requested feature, I'm bookmarking it and sharing too :)

I would you imagine this feature working.? What field would you need.and what result would you expect ? (I think I could manage to do the PR for this issue if needed)

It could be a choice between using PHP and reverse proxy I guess since both use the location directive from the root.
Reverse proxy directives can be basic too, the hostname could be editable and maybe a couple of well known options though. But speculating on what's behind the reverse proxy is probably beyond nginxconfig scope.
location / {
    proxy_pass       http://localhost:8000;
    proxy_set_header Host      $host;
    proxy_set_header X-Real-IP $remote_addr;
}

I do something like this
  upstream up_{SERVER_NAME} {
    server {PROXY_URL};
  }

  try_files $uri/index.html $uri @up_{SERVER_NAME}

  location @up_{SERVER_NAME} {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_redirect off;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header X-Forwarded-Proto http;
    proxy_pass http://up_SERVER_NAME;
  }

I could do a PR with the "upstream location path" ({PROXY_URL}) being configurable, everything else will be hardcoded in the template. I think the try_files approach is better since you can serve static assets with nginx while redirecting everything else to the proxy.

Hello @tobozo (and @Grafikart thanks for the input)!
I've deployed the reverse proxy configuration block.
Check it out! 😉

I'm totally impressed :+1:
btw you can have multiple values in referrer-policy


Fixed an Arcanist crash bug caused by ruleId being null

There is an edge case while running ESlint that can cause Arcanist to crash with the following error message:

Linter "ESLintLinter" generated a lint message that is invalid because it does not have a name. Lint messages must have a name.

This edge case can be triggered by trying to lint a source file with a syntax error in it. That produces an ESlint JSON output where ruleId is null.
The idx function however does not fall back to using the provided default value 'unknown'.
It does actually the following: if the dictionary property value is null, and if the tested key (here ruleId) exists in the dictionary, then it returns null instead of the fallback default value.
This fix makes sure we never set a null value for the name property.
Testing

Ran arc lint in a local project with a modified JS source file that has a syntax error in it. Arcanist does not crash anymore with this fix

Thanks again, @tiguchi!

Thanks again, @tiguchi!


Demonstrate issue: Submodel Aggregator does not support multiple Subm…

…odels with same idShort
https://github.com/eclipse-basyx/basyx-java-sdk/issues/47

Instantiate SubmodelAggregator for each MultiSubmodelProvider
Extend unit test to test two aas, each with one submodel and same idShort
Add a quick-fix (currently commented out) to MongoDBAggregator (note: quick-fix is not copatibel with the current mqtt integration for submodels)

Signed-off-by: Matthias Stöhr<EMAIL_ADDRESS>

The new test case:

AAS 1 with submodel 1
AAS 2 with submodel  2 (same idShort ... would be very likely in production)
Test:
Is submodel 1 and 2 both served by the aggregator
Result:
No, only on of bot is server (the one that was added later)
It overwrites the first on in the map in the submodel aggregaotr


install basemap

i can't install basemap on anaconda.i used the command conda install basemap. But it's not working

The matplotlib project does not maintain the conda packages, problems with installing via conda should be reported to the packagers.
It looks like basemap is should available on the main (i.e. the default) channel, but is also available on conda-forge or anaconda, which could potentially still work:
conda install -c conda-forge basemap

or

conda install -c anaconda basemap

While not ideal, you could also potentially install via pip (mixing conda and pip can lead to issues). If you do so, greatly recommend doing so in a conda environment.
conda env create -n basmapenvpip
conda activate basemapenvpip
pip install basemap

thanks for your response


drpolicy re-reconcile on modify of s3 profiles and secrets

Currently, once a drpolicy's s3 profiles have been validated, as indicated by the presence of a validated status condition with true status, they are not revalidated.  However, s3 profile names could be added or changed, ramen config's s3 profiles may change, or secrets referenced by them may change each possibly resulting in an s3 connectivity issue going undetected until say it is used to read or write a persistentvolume object to an s3 store.
This issue tracks detecting an s3 connectivity problem sooner.
One solution is to have a drpolicy watch ramen config for changes to its s3 profile(s) and the s3 secret(s) they reference.
Another solution is to implement a reconciler for s3 profiles.  Benefits to this solution include:

automatic calls to reconcile on changes instead of watching for them
not duplicating validation for s3 profiles common to multiple clusters or drpolicies
not revalidating valid profiles because of a coarse watch of all ramen config changes or all secrets

This issue was raised in pull request https://github.com/RamenDR/ramen/pull/310#discussion_r731800874

re-validation of a previously valid drpolicy on each reconcile is addressed in pull request #328
re-validating on update to s3 profiles and secrets still needs to be addressed
may also need to re-validate cluster roles on managed cluster namespace creation/deletion

Intended solution: drpolicy controller watches for ramen hub operator config map and referenced s3 secrets updates


Fix EPUB and some odds and ends

Turns out EPUB 3.3 checks don't like to have the ToC unlinked from the document. Not sure what the right answer is, but in the short term, I've simply linked it back into the beginning of the document.
I also fixed some EPUB CSS, removed a broken slf4j reference from the build script, updated the change log, and rolled the release version back to 2.0.3 because that release was never made.

I think this is a spurious error.


Show all the maps a user is in on their profile

A user's profile currently only shows one map that they're in, even if they are in multiple maps, like an event map or a wanted poster. Being able to see all the maps that a user is in would be nice.

Unfortunately, it's not possible. The names of the maps shown on the friends list are sent from the server as just text and querying a user's data only returns their active map.


use log scale for no-check benchmark

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


Tests: Filter response files for files ending with yaml

When creating some translations I noticed that when I, in my editor of choice, had opened a response file the tests failed.

Summary by CodeRabbit

Bug Fixes

Improved error handling by ensuring only .yaml files are processed when loading intent responses, preventing potential errors from non-YAML files.

What editor do you use? I don't want to start adding workarounds for every editor under the sun. Aren't swap files short lived, and are the odds of this happening tiny?

What editor do you use? I don't want to start adding workarounds for every editor under the sun. Aren't swap files short lived, and are the odds of this happening tiny?

In this case, it's vim. However, I don't see it as a workaround for one specific editor - the proposed change filters out only yaml-files to be parsed rather then adding exceptions specific for an editor.
With the current state, adding for example an .md-file in the directory (for example, a file that describes the tests) would make the tests fail.


flutter_web should be resilient to missing web/ subfolder

We need a web/ folder containing an HTML and Dart stub to launch Flutter apps for the web. These files are not necessary on mobile, and it's not obvious to a casual user that they need to be added. If the web folder is missing, pub serve fails in ways that are not obvious to a novice user. We should provide a better error message in this scenario.

This bug, and several others, are essentially covered by a single upstream web tooling into flutter

@jonahwilliams Do you have a link to the 'upstream web tooling into flutter' issue?

@jonahwilliams This works, no?

Yeah, this works (example). Closing.


Update print styles borrowed from h5bp

Fixes #20814 - print/print preview crash in IE11 (caused by *:first-line
selector)

@twbs/team note there seem to be conflicting requirements in the checks...hound wants "::" for pseudo selectors, while travis wants single ":"


Cilium GatewayAPI Argo Rollout implementation

Adding instructions for adding the CIlium Gateway API Argo Rollouts

@xtineskim Many thanks for this contribution. Could please fix DCO as well? See some instructions here https://github.com/src-d/guide/blob/master/developer-community/fix-DCO.md
@jay-jain di you try the example from the PR you mean? Was there a specific error message? I think it would be great if you can provide more info to @xtineskim for debugging purposes...

@kostis-codefresh
Sorry, for some reason I did not see @xtineskim 's newest commits with the instructions so I hadn't given it a go when I first wrote the comment. I think my comment is more asking for doc regarding how to do the setup on this point here:

Similar to Ingress, Gateway API controller creates a service of LoadBalancer type, so your environment will need to support this (for example MetalLB if running locally).

I have tried using MetalLB (described here) and the new Cilium L2 Announcement  functionality released in Cilium 1.14 to no avail (I'll try and post my notes later today)
Regardless, I have gone ahead and tried what is proposed in the MR (using kind) and got stuck pretty early on.
@xtineskim's PR method
Step 1: Setup Kind Cluster
Kind Configuration File
---
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: sm
nodes:
    - role: control-plane
    - role: worker
    - role: worker
    - role: worker

Create the cluster:
kind create cluster --config kind.yaml

Step 2: Install Gateway API
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/gateway-api/v0.7.0/config/crd/standard/gateway.networking.k8s.io_gatewayclasses.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/gateway-api/v0.7.0/config/crd/standard/gateway.networking.k8s.io_gateways.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/gateway-api/v0.7.0/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/gateway-api/v0.7.0/config/crd/standard/gateway.networking.k8s.io_referencegrants.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/gateway-api/v0.7.0/config/crd/experimental/gateway.networking.k8s.io_tlsroutes.yaml

Step 3: Install Cilium
This is where I fail; when installing Cilium (via Helm chart) with kubeProxyReplacement=true:
helm upgrade \
        --install cilium cilium/cilium \
        --version 1.14.0 \
        --namespace kube-system \
        --reuse-values \
        --set kubeProxyReplacement="true" \
        --set gatewayAPI.enabled=true
Release "cilium" does not exist. Installing it now.
Error: template: cilium/templates/cilium-agent/daemonset.yaml:637:43: executing "cilium/templates/cilium-agent/daemonset.yaml" at <ne $kubeProxyReplacement "strict">: error calling ne: incompatible types for comparison

I think something is wrong with the Helm chart here: https://github.com/cilium/cilium/blob/v1.14.0/install/kubernetes/cilium/templates/cilium-agent/daemonset.yaml#L637
I could be wrong, but I think the $kubeProxyReplacement template variable is being typed as a boolean so the ne operator cannot properly compare the string "strict" with the boolean true. What's odd is that this happens even when I specifically pass "true" as a string in the helm command
Either way, I'd rather not de-rail this PR since this seems to be an external Cilium Helm chart issue; so feel free to proceed.
Thank you both for your contributions to the community; this is a very helpful project and a great starting point!

Okay, I was able to resolve the Helm chart error by using --set-string instead of --set. :man_facepalming:
I was able to get through the instructions documented in this PR, however no luck in accessing the Gateway.
Here are the steps to re-produce:
Step 1: Install kind
Create kind configuration (without default CNI)
---
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: sm
nodes:
    - role: control-plane
    - role: worker
    - role: worker
    - role: worker
networking:
    disableDefaultCNI: true

Create the cluster:
kind create cluster --config kind.yaml

Step 2: Install Calico CNI to get nodes into ready state
If we don't have a CNI we can't install Cilium, so we use Calico as a temporary one:
Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

curl -sL https://docs.projectcalico.org/manifests/calico.yaml -O
kubectl apply -f calico.yaml

Step 3: Install Gateway API
GW_API_VERSION="v0.7.1"
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/${GW_API_VERSION}/standard-install.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/gateway-api/${GW_API_VERSION}/config/crd/experimental/gateway.networking.k8s.io_tlsroutes.yaml

Step 4: Install Cilium Helm Char with these flags
if ! helm repo list | grep -q cilium; then
	helm repo add cilium https://helm.cilium.io
fi

helm upgrade \
	--install cilium cilium/cilium \
	--version 1.14.0 \
	--namespace kube-system \
	--reuse-values \
	--set-string kubeProxyReplacement=true \
	--set gatewayAPI.enabled=true \
	--set ipam.mode=kubernetes \
	--set externalIPs.enabled=true

Wait till everything is up and ready. You can check status and various configs with:
cilium status
cilium config view | grep "enable-gateway-api"
cilium config view | grep "enable-l7-proxy"

Step 5: Uninstall Calico
kubectl delete -f calico.yaml

Step 6: Install and Configure MetalLB
Instructions taken from here
# Create the address pool
KIND_NET_CIDR=$(docker network inspect kind -f '{{(index .IPAM.Config 0).Subnet}}')
METALLB_IP_START=$(echo ${KIND_NET_CIDR} | sed "s@0.0/16@255.200@")
METALLB_IP_END=$(echo ${KIND_NET_CIDR} | sed "s@0.0/16@255.250@")
METALLB_IP_RANGE="${METALLB_IP_START}-${METALLB_IP_END}"

cat << EOF > metallb_values.yaml
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
    name: default
    namespace: metallb-system
spec:
    addresses:
        - ${METALLB_IP_RANGE}
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
    name: default
    namespace: metallb-system
spec:
    ipAddressPools:
        - default
    nodeSelectors:
        - matchLabels:
              kubernetes.io/os: linux
EOF

# Install metallb
helm install \
	--namespace metallb-system \
	--create-namespace \
	--repo https://metallb.github.io/metallb metallb \
	metallb \
	--version 0.13.10

Wait until all pods are up in the metallb-system namespace and then add the IPAddressPool and L2Advertisement that we created in the previous step:
kubectl -n metallb-system create -f metallb_values.yaml

Step 7: Validate the Gateway Class exists
$ kubectl get gatewayclasses.gateway.networking.k8s.io
NAME     CONTROLLER                     ACCEPTED   AGE
cilium   io.cilium/gateway-controller   True       18m

Step 8: Deploy Argo Rollouts
# Install Argo Rollouts (server)
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml

Step 9: Deploy the Gateway API Plugin
cat << EOF > rollouts-plugin-cm.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: argo-rollouts-config # must be so name
  namespace: argo-rollouts # must be in this namespace
data:
  trafficRouterPlugins: |-
    - name: "argoproj-labs/gatewayAPI"
      location: "https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-gatewayapi/releases/download/v0.0.0-rc1/gateway-api-plugin-linux-amd64"
EOF
kubectl apply -f rollouts-plugin-cm.yaml

Step 10: Deploy the RBAC components
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: gateway-controller-role
  namespace: argo-rollouts
rules:
  - apiGroups:
      - "*"
    resources:
      - "*"
    verbs:
      - "*"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: gateway-admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: gateway-controller-role
subjects:
  - namespace: argo-rollouts
    kind: ServiceAccount
    name: argo-rollouts

Step 11: Restart Argo Rollouts Deployment
To force the CM plugin gets loaded
kubectl -n argo-rollouts rollout restart deployment/argo-rollouts

Step 12: Deploy the Gateway, HTTPRoute, Services, and Rollout
Deploy the Gateway
kind: Gateway
apiVersion: gateway.networking.k8s.io/v1beta1
metadata:
  name: cilium
spec:
  gatewayClassName: cilium
  listeners:
    - name: http
      protocol: HTTP
      port: 80
      allowedRoutes:
        namespaces:
          from: All

Validate the gateway
$ k get gateway
NAME     CLASS    ADDRESS          PROGRAMMED   AGE
cilium   cilium   <IP_ADDRESS>   True         18m

$ kubectl get gateway cilium -o=jsonpath="{.status.addresses[0].value}"
<IP_ADDRESS>

Deploy HTTPRoute, Services, and Rollout
---
kind: HTTPRoute
apiVersion: gateway.networking.k8s.io/v1beta1
metadata:
    name: argo-rollouts-http-route
spec:
    parentRefs:
        - kind: Gateway
          name: cilium
    hostnames:
        - "demo.example.com"
    rules:
        - matches:
              - path:
                    type: PathPrefix
                    value: /
          backendRefs:
              - name: argo-rollouts-stable-service
                kind: Service
                port: 80
              - name: argo-rollouts-canary-service
                kind: Service
                port: 80
---
apiVersion: v1
kind: Service
metadata:
    name: argo-rollouts-canary-service
spec:
    ports:
        - port: 80
          targetPort: http
          protocol: TCP
          name: http
    selector:
        app: rollouts-demo
---
apiVersion: v1
kind: Service
metadata:
    name: argo-rollouts-stable-service
spec:
    ports:
        - port: 80
          targetPort: http
          protocol: TCP
          name: http
    selector:
        app: rollouts-demo
---
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
  name: rollouts-demo
  namespace: default
spec:
  revisionHistoryLimit: 1
  replicas: 10
  strategy:
    canary:
      canaryService: argo-rollouts-canary-service # our created canary service
      stableService: argo-rollouts-stable-service # our created stable service
      trafficRouting:
        plugins:
          argoproj-labs/gatewayAPI:
            httpRoute: argo-rollouts-http-route # our created httproute
            namespace: default
      steps:
      - setWeight: 30
      - pause: {}
      - setWeight: 60
      - pause: {}
      - setWeight: 100
      - pause: {}
  revisionHistoryLimit: 2
  selector:
    matchLabels:
      app: rollouts-demo
  template:
    metadata:
      labels:
        app: rollouts-demo
    spec:
      containers:
        - name: rollouts-demo
          image: kostiscodefresh/summer-of-k8s-app:v1
          ports:
            - name: http
              containerPort: 8080
              protocol: TCP
          resources:
            requests:
              memory: 32Mi
              cpu: 5m

Step 13: Test
Get Gateway External IP
$ GATEWAY="$(kubectl get gateways.gateway.networking.k8s.io cilium -o=jsonpath="{.status.addresses[0].value}")"

Access the Gateway
$ curl -vvv -H "host: demo.example.com" ${GATEWAY}/call-me
*   Trying <IP_ADDRESS>:80...
* connect to <IP_ADDRESS> port 80 failed: Connection timed out
* Failed to connect to <IP_ADDRESS> port 80: Connection timed out
* Closing connection 0
curl: (28) Failed to connect to <IP_ADDRESS> port 80: Connection timed out

@jay-jain you may need to port forward in order to access the IP address of the gateway!

@xtineskim Hmmm I wasn't able to get it to work with a port-forward. I think since it's an external IP it shouldn't be necessary. I found a Cilium issue here which sounds very similar to what I'm experiencing with bare-metal setups. I think once that upstream issue gets resolved, I should have this up and running.
Thanks for all your help and appreciate you getting the ball rolling on this example for those of us that are trying to do Cilium + Argo Rollouts! :100:

@jay-jain  depending on what your env looks like (personally, i use lima vm to run my kind cluster, and have to forward my port (not kubectl port-forward)), but that issue could be it... 🤔
thanks for the help and writing out the steps diligently in your comment - next steps for this to get merged is approval or were you wanting to wait for that upstream issue to be resolved?

@xtineskim Ahh gotcha that makes sense. I have no objections to this getting merged now without that upstream issue being resolved, since that issue is pretty specific to bare-metal environments, but I'll leave it up to yourself and @kostis-codefresh . What you have here seems like a really good starting point. I can open a PR later down the road if/when the upstream issue gets resolved with some more specific instructions (if needed).


Docker support

My buf binary is installed on Docker (because I'm running Windows), so I tried setting the buf.binaryPath setting to docker run --volume "$(pwd):/workspace" --workdir /workspace bufbuild/buf but it gives me the following error:

Failed to get buf version: spawnSync docker run --volume "$(pwd):/workspace" --workdir /workspace bufbuild/buf ENOENT

Is there any way to configure the plugin to allow this?

Hi Duncan, thanks for your issue! This is currently not supported, as you can tell (I hadn't actually tried it), we give the binaryPath configuration straight to the node child_process spawnSync method, so it expects a file. I'm not sure what would be required to get it working with Docker, but maybe as a workaround you can write a script (powershell?) that proxies the parameters to the docker container?
We're unlikely to add support as we intend to add support for running buf natively on windows eventually.

Thanks for your reply @johanbrandhorst. I have solved this by using a dev container.


Upscale video from browser and not force full screen borderless

Is your feature request related to a problem? Please describe.
My feature request is not related to a problem.
Describe the solution you'd like
I just want better quality for videos played from the browser, but to this work, multiple things have to change.

The program must attach to browsers (or somehow, start its work)
Don't force fullscreen resolution for upscale. I believe the upscale resolution doesn't have to be directed linked with the monitor's resolution, it should have an option to choose how to upscale.
Don't force borderless, as this feature request is for watching videos on the browser, I don't think anyone would like to go borderless.
Viewport x video resolution, the user should be able to maximize or not the video and it should keep upscaling the selected resolution without interfering in the user viewport.

Describe alternatives you've considered
I don't know how difficult is to implement something like this, but I think it's not an easy thing to do. Something I always thought about is: Why it does not have an option to upscale the whole video output? Like the whole monitor output, despite the application. Example: I have a 1080p monitor, I want to upscale the whole content to 8k (upscale resolution) and still view it in 1080p (viewport resolution). I think this kind of approach serves a more generic use and is way easier to implement, but I am just speculating as I know nothing about it.
Additional context

should be implemented by other softwares.


Implement UDP ping algo

SDK clients use this algo to figure out which hub is the best hub to connect to

https://github.com/lbryio/hub/pull/24


ETHPeerPool._periodically_report_metrics crashes (with a PeerConnectionLost) and takes trinity with it

What is wrong?
Got this crash today.
   DEBUG  2020-05-19 15:59:46,855               Manager  <Manager[ETHPeerPool] flags=SRcfe>: task _periodically_report_metrics[daemon=True] exited with error: Cannot look up subprotocol when connection is closing
Traceback (most recent call last):
  File "/home/salgado/src/async-service/async_service/base.py", line 300, in _run_and_manage_task
    await task.run()
  File "/home/salgado/src/async-service/async_service/asyncio.py", line 35, in run
    await self._async_fn(*self._async_fn_args)
  File "/home/salgado/src/trinity/p2p/peer_pool.py", line 505, in _periodically_report_metrics
    self._peer_reporter_registry.trigger_peer_reports()
  File "/home/salgado/src/trinity/p2p/metrics.py", line 54, in trigger_peer_reports
    self.make_periodic_update(peer, peer_id)
  File "/home/salgado/src/trinity/trinity/protocol/common/peer.py", line 171, in make_periodic_update
    head_gauge.set_value(peer.head_info.head_number)
  File "/home/salgado/virtualenvs/trinity-asyncio/lib/python3.7/site-packages/cached_property.py", line 35, in __get__
    value = obj.__dict__[self.func.__name__] = self.func(obj)
  File "/home/salgado/src/trinity/trinity/protocol/common/peer.py", line 105, in head_info
    return self.connection.get_logic(HeadInfo.name, HeadInfo)
  File "/home/salgado/src/trinity/p2p/connection.py", line 265, in get_logic
    if not self.has_logic(name):
  File "/home/salgado/src/trinity/p2p/connection.py", line 261, in has_logic
    raise PeerConnectionLost("Cannot look up subprotocol when connection is closing")
p2p.exceptions.PeerConnectionLost: Cannot look up subprotocol when connection is closing
   DEBUG  2020-05-19 15:59:46,866               Manager  <Manager[ETHPeerPool] flags=SRCfE>: _handle_cancelled triggering task cancellation

After that, EthPeerPool terminates and takes trinity with it
How can it be fixed
Guess we need to catch PeerConnectionLost in yet another place, @cburgdorf?

Hmm, and I just realized I did not explicitly enable the metrics component, so that should not even be running in the first place, no?

Hmm, and I just realized I did not explicitly enable the metrics component, so that should not even be running in the first place, no?

True. Generally, the metrics code runs with noop gauges, counters etc when --metrics isn't passed so that we do not have to sprinkle if metrics_not_enabled:all over the place but I agree that it wouldn't hurt to here if we just decided to not run the periodic update at all if the metrics system isn't enabled.
Pinging @njgheorghita here who worked on this and might want to continue in that area. Let me know if you are busy and I handle the fix.

@cburgdorf My plate's a little full today - but I can probably dig into this tomorrow. Though, if it's not too much of a burden, it might be more efficient for you to knock this one out :wink:

@njgheorghita It's going to be the first thing I look into this morning.

This was fixed with #1736


Remove language dependency from NBGL

Description
The goal of this PR is to remove the dependency existing between NBGL and languages:

ids used to identify localized strings
Global language_pack variable used in Fonts management library

This is a first necessary step to use NBGL as a common library for OS and Apps.
It only breaks compatibility with the OS (removed field in some objects, and nbgl_refreshUnicodeFont() prototype changed)
Changes include

[ ] Bugfix (non-breaking change that solves an issue)
[*] New feature (non-breaking change that adds functionality)
[ ] Breaking change (change that is not backwards-compatible and/or changes current functionality)
[ ] Tests
[ ] Documentation
[ ] Other (for changes that might not fit in any category)

Codecov Report
Attention: Patch coverage is 48.48485% with 17 lines in your changes missing coverage. Please review.

Project coverage is 60.34%. Comparing base (fddeb90) to head (bfa9d23).

Files
Patch %
Lines

lib_nbgl/src/nbgl_fonts.c
48.48%
17 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #750      +/-   ##
==========================================
+ Coverage   60.20%   60.34%   +0.13%
==========================================
  Files          12       12
  Lines        1729     1740      +11
==========================================
+ Hits         1041     1050       +9
- Misses        688      690       +2

Flag
Coverage Δ

unittests
60.34% <48.48%> (+0.13%)
:arrow_up:

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add choose Facing function and Fix dispose bug.

thanks

@azkadev  facing Camera with given device id already exists. Existing camera must be disposed before creating it again. any idea to resolve this?

@azkadev facing Camera with given device id already exists. Existing camera must be disposed before creating it again. any idea to resolve this?

Currently my internet is limited, maybe in the next few days I will fix the bug


Cannot create the Kubevirt VM with the pod IP and an internet connection inside

What happened:
I am trying to create the Kubevirt VM with pod IP on the NIC inside. I was trying to use the masquerade network type but it is hiding the pod IP behind the NAT (<IP_ADDRESS>). Also, I was trying to use the bridge network type. It created a VM with the needed pod IP inside the VM, but the VM could not connect to the internet. I found that the bridge network type does not allow us to connect to the internet (https://github.com/kubevirt/kubevirt/issues/8520#issuecomment-1261012480).
What you expected to happen:
I expected that my Kubevirt VM will be able to use pod IP inside and will have an internet connection (at least I can ping <IP_ADDRESS>).
How to reproduce it (as minimally and precisely as possible):

Install the Kubevirt operator and its add-ons.

export VERSION=$(curl -s https://api.github.com/repos/kubevirt/kubevirt/releases | grep tag_name | grep -v -- '-rc' | sort -r | head -1 | awk -F': ' '{print $2}' | sed 's/,//' | xargs)
echo $VERSION
kubectl create -f https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/kubevirt-operator.yaml
kubectl create -f https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/kubevirt-cr.yaml
export TAG=$(curl -s -w %{redirect_url} https://github.com/kubevirt/containerized-data-importer/releases/latest)
export VERSION=$(echo ${TAG##*/})
kubectl create -f https://github.com/kubevirt/containerized-data-importer/releases/download/$VERSION/cdi-operator.yaml
kubectl create -f https://github.com/kubevirt/containerized-data-importer/releases/download/$VERSION/cdi-cr.yaml
kubectl -n kubevirt patch kubevirt kubevirt --type=merge --patch '{"spec":{"configuration":{"developerConfiguration":{"useEmulation":true}}}}'

Apply the VM manifest below.

Environment:

KubeVirt version (use virtctl version): v0.59.0-alpha.0
Kubernetes version (use kubectl version):

Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.7", GitCommit:"1dd5338295409edcfff11505e7bb246f0d325d15", GitTreeState:"clean", BuildDate:"2021-01-13T13:23:52Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"23+", GitVersion:"v1.23.13-eks-fb459a0", GitCommit:"55bd5d5cb7d32bc35e4e050f536181196fb8c6f7", GitTreeState:"clean", BuildDate:"2022-10-24T20:35:40Z", GoVersion:"go1.17.13", Compiler:"gc", Platform:"linux/amd64"}

VM or VMI specifications:

apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
  name: test
spec:
  running: false
  template:
    metadata:
      labels:
        kubevirt.io/domain: test
    spec:
      domain:
        devices:
          disks:
            - name: dvdisk
              bootOrder: 1
              disk:
                bus: sata
            - name: datadisk
              bootOrder: 2
              disk:
                bus: sata
          interfaces:
            - name: default
              masquerade: {} (or bridge: {})
        resources:
          requests:
            cpu: 2
            memory: 4Gi
      networks:
        - name: default
          pod: {}
      volumes:
        - name: dvdisk
          persistentVolumeClaim:
            claimName: debian-test-1
        - name: datadisk
          persistentVolumeClaim:
            claimName: debian-test-2
        - cloudInitNoCloud:
            userData: |-
              #cloud-config
              user: user
              password: dadsaqrqwr
              chpasswd: { expire: False }
          name: cloudinitdisk

Cloud provider or hardware configuration: AWS EKS
OS (e.g. from /etc/os-release): Debian 11 (bullseye)
Kernel (e.g. uname -a): Debian 5.19.46-4 (2021-08-03) x86_64 GNU/Linux
Install tools: N/A
Others: N/A

What should I do to make it works?
Will be grateful for the help!
Regards,
Dan

I am not exactly clear why you do not have access to the internet,  but both binding options you mentioned should work fine if you have access to the internet from the pod network.
Does a regular Pod on your cluster have internet access?
Sharing the guest IP configuration may help to understand the setup.

/sig network

@EdDev Hi, thank you for your reply. Yes, a regular/random pod inside of my K8s cluster has internet access. The problems start when I am trying to use the bridge{} network type, which is ideally suitable for my VMs and setup.
This is the network configuration inside the virt-launcher pod:
bash-5.1$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
3: eth0-nic@if122: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc noqueue master k6t-eth0 state UP group default
    link/ether f2:ff:ef:3c:ff:e1 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::f0ff:efff:fe3c:ffe1/64 scope link
       valid_lft forever preferred_lft forever
4: eth0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default
    link/ether 4a:20:52:d3:7c:2d brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/32 scope global eth0
       valid_lft forever preferred_lft forever
5: k6t-eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc noqueue state UP group default
    link/ether 7e:13:e9:a9:03:04 brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/32 scope global k6t-eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::7c13:e9ff:fea9:304/64 scope link
       valid_lft forever preferred_lft forever
6: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc fq_codel master k6t-eth0 state UP group default qlen 1000
    link/ether 7e:13:e9:a9:03:04 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::7c13:e9ff:fea9:304/64 scope link
       valid_lft forever preferred_lft forever

Also, there are no routes here
bash-5.1$ ip route
bash-5.1$

My VM yaml manifest:
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
  name: test
spec:
  running: false
  template:
    metadata:
      labels:
        kubevirt.io/domain: test
    spec:
      domain:
        devices:
          disks:
            - name: dvdisk
              bootOrder: 1
              disk:
                bus: sata
            - name: datadisk
              bootOrder: 2
              disk:
                bus: sata
          interfaces:
            - name: default
              bridge: {}
              ports:
                - port: 7000
                  name: intra-node
                - port: 7001
                  name: tls-intra-node
                - port: 7199
                  name: jmx
                - port: 9042
                  name: cql
        resources:
          requests:
            cpu: 2
            memory: 4Gi
      networks:
        - name: default
          pod: {}
      volumes:
        - name: dvdisk
          persistentVolumeClaim:
            claimName: debian-test-1
        - name: datadisk
          persistentVolumeClaim:
            claimName: debian-test-2
        - cloudInitNoCloud:
            userData: |-
              #cloud-config
              user: user
              password: ty63rt24tr
              chpasswd: { expire: False }
          name: cloudinitdisk

Thank you!
Regards.
Dan

@EdDev This is what happened with the network inside my VM

Thank you @testisnullus for the info.
Can you please share this data as well:

Network settings on a regular pod, which works fine.
ip neigh in the guest and in a working pod.

@EdDev

I have the ubuntu pod up and running now:

root@ubuntu:/# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
3: eth0@if61: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc noqueue state UP group default
    link/ether 02:4b:ee:ca:17:b8 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet <IP_ADDRESS>/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::4b:eeff:feca:17b8/64 scope link
       valid_lft forever preferred_lft forever
root@ubuntu:/# ip route
default via <IP_ADDRESS> dev eth0
<IP_ADDRESS> dev eth0 scope link
root@ubuntu:/# ip neigh
<IP_ADDRESS> dev eth0 lladdr 16:f4:23:87:8d:50 STALE
<IP_ADDRESS> dev eth0 lladdr 16:f4:23:87:8d:50 PERMANENT
root@ubuntu:/#

ip neigh from the virt-launcher:

bash-5.1$ ip neigh
bash-5.1$

ip neigh from the VM:

Thank you!

I can see that my VM with the bridge{} network type cannot reach the gateway. Maybe I didn't set the needed configuration on my VM's yaml manifest, what do you think?

This is the odd part: <IP_ADDRESS> dev eth0 lladdr 16:f4:23:87:8d:50 PERMANENT
Seems that the arp table is set statically for your default gateway.
Try to set the same (manually) in the guest and check if it works.

@EdDev Ok, I will try to do that. But I think that the problem can also happen because the virt-launcher pod doesn't have any routes (ip route doesn't show anything, but inside the pod with masquerade{} network type it shows).
virt-launcher pod with the bridge{} network interface:
bash-5.1$ ip route
bash-5.1$ ip neigh
bash-5.1$

Also, where can I find the MAC address to set it manually inside the VM?

Thank you, really appreciate your help.

Just to compare what happens inside the virt-launcher pod with the masquerade{} network interface type:
bash-5.1$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
3: eth0@if42: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc noqueue state UP group default
    link/ether ae:45:d0:fb:cb:4a brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet <IP_ADDRESS>/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::ac45:d0ff:fefb:cb4a/64 scope link
       valid_lft forever preferred_lft forever
4: k6t-eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc noqueue state UP group default
    link/ether 02:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global k6t-eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::ff:fe00:0/64 scope link
       valid_lft forever preferred_lft forever
5: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc fq_codel master k6t-eth0 state UP group default qlen 1000
    link/ether 3e:91:33:65:65:83 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::3c91:33ff:fe65:6583/64 scope link
       valid_lft forever preferred_lft forever
bash-5.1$ ip route
default via <IP_ADDRESS> dev eth0
<IP_ADDRESS>/24 dev k6t-eth0 proto kernel scope link src <IP_ADDRESS>
<IP_ADDRESS> dev eth0 scope link
bash-5.1$ ip neigh
<IP_ADDRESS> dev eth0 lladdr 42:f0:0e:40:1f:20 PERMANENT
bash-5.1$

@vladikr Hi, could you help us, please? I found your comment (https://github.com/kubevirt/kubevirt/issues/8520#issuecomment-1261012480) in which you wrote that the bridge{} network type is not allowed us to connect VMs to the internet inside because the virt-launcher pod doesn't have network access. Maybe it was fixed in some of the kubevirt versions or I should set some kind of configuration on my VMs yaml manifest?
Thank you!
Regards,
Dan

@maiqueb Hi, could you help us, please?

Ok, I will try to do that.

Do you have any results?

But I think that the problem can also happen because the virt-launcher pod doesn't have any routes (ip route doesn't show anything, but inside the pod with masquerade{} network type it shows).

In bridge binding, there are no routes in the pod. No routing is happening, everything is at layer 2 bridged.

@EdDev Hello, glad to hear you again!
I tried configuring networking inside the VM, but nothing happened, because the virt-launcher pod doesn't have any network configured. I also tried to configure the network inside the pod, but there are no network utilities installed (and I unable to install them).
You say that No routing is happening, everything is at layer 2 bridged.. Is it even possible to have a network interface with the pod IP and internet connection inside the VM? If yes, could you provide me with some examples, please?
Thank you.
Regards,
Dan

I tried configuring networking inside the VM, but nothing happened, because the virt-launcher pod doesn't have any routes and rules configured.

In bridge biding, the vm is connected through a tap device to the bridge in the pod, and the pod interface (e.g. eth0) is also connected to this bridge. There is no IP (later 3) intervention in the pod, therefore, you should not see any IP addresses or routes relevant to the traffic you seek.
The only settings we set there is for the DHCP server which passes the original pod interface address to the vm.
So your conclusion that this is the reason for not having connectivity is probably not the problem here.

I also tried to configure the network inside the pod, but there are no network utilities installed (and I unable to install them).

You are not suppose to touch it.
But even if you could, you cannot set anything on links that are connected to bridges.

You say that No routing is happening, everything is at layer 2 bridged. Is it even possible to have a network interface with the pod IP and internet connection inside the VM? If yes, could you provide me with some examples, please?

Yes, it is possible and we know others are using it.
But in the end, the CNI used to provide the network connectivity to the pod needs to integrate with kubevirt. Most do integrate well, because we copy the IP address, MAC and MTU and set it on the VM.
But if there other tricks this CNI does, e.g. setting a static ARP entry to the Default Gateway, we have a problem.
I see on both your dumps that the permanent ARP entry exists, but it is different each time.
I do not know if that is the problem or not thought.
As this is the only hint we have, try to investigate if this arp entry is indeed set by the CNI or network provider you use in the cluster. Which network provider are you using?
You may need to contact them for assistance.

@testisnullus hey, I noticed that in https://github.com/kubevirt/kubevirt/issues/9049#issuecomment-1378964262 there are some ports specified on the bridge interface, could you please drop them and try again?
Specifying port on an interface spec should enable traffic only over that port.


apps sc: expose sc-log-retention jobs resource requests

What this PR does / why we need it:
Exposed the sc-log-retention resource requests. As i have noticed that sc-logs-retention job is throttled.

Which issue this PR fixes (use the format fixes #<issue number>(, fixes #<issue_number>, ...) to automatically close the issue when PR gets merged): fixes #
Public facing documentation PR (if applicable)

Special notes for reviewer:
Checklist:

[X] Added relevant notes to WIP-CHANGELOG.md
[X] Proper commit message prefix on all commits
[ ] Updated the public facing documentation
Is this changeset backwards compatible for existing clusters? Applying:

[X] is completely transparent, will not impact the workload in any way.
[ ] requires running a migration script.
[ ] will create noticeable cluster degradation.
E.g. logs or metrics are not being collected or Kubernetes API server
will not be responding while upgrading.
[ ] requires draining and/or replacing nodes.
[ ] will change any APIs.
E.g. removes or changes any CK8S config options or Kubernetes APIs.
[ ] will break the cluster.
I.e. full cluster migration is required.

Chart checklist (pick exactly one):

[X] I upgraded no Chart.
[ ] I upgraded a Chart and determined that no migration steps are needed.
[ ] I upgraded a Chart and added migration steps.

Pipeline config (if applicable)
If you change some config options (e.g. add/rename variable or change the default value) you may need to update the config used by the pipeline in pipeline/config.

This change in log retention needs a migration step right, just in case someone has ever overridden the default value?

You are right. Will fix a migration script for it.


Feature: Embeddings Optimizer (Prompt Rephraser)

Brilliant project, but currently using another project as when using this one my API costs are considerably higher.
High API Usage Costs with embeddings.
A clear and concise description of what you want to happen.

Ability to send embeddings to a REPHRASER (lower cost model) before sending the relevant tokens to the users chosen model.
Typically this can have a major speed improvement and cost reduction for premium \ large models.

Describe alternatives you've considered

Using free high-performance services like Groq

Additional context
Example of a Rephraser and Reranker as used on another project.  This pull was not merged into the product, but works extremely well.
I do not use the Reranker jusr the Rephraser.
No modifications to GUI

Hey dude, with a free high-performance service like Groq, you can use [one-api] (https://github.com/songquanpeng/one-api) to sum it up and then use it in open webui

@spammenotinoz Hey dude, with a free high-performance service like Groq, you can use [one-api] (https://github.com/songquanpeng/one-api) to sum it up and then use it in open webui

Hi I already use one-api for another project that already has the "sum it up feature".  I don't use one-api here, as litellm already load-balances multiple API keys.


Maintenance?

Training model has to be fixed and advanced during the service.
The number of model will not be changed but indexes could be changed if new classes are reported.
What is the best, and easiest way to maintain the classifier?

As per #39, would it be possible to keep the numbers in the ontology consistent? Most ontologies these days use fixed numbering for classes that you just increment when you need new classes.  That way things that had a specific number in the past will still keep that number. Not sure how you could integrate that with your tensorflow training, but that would be helpful for third-party integration.


add 'jp' to GeoSearchCountries

Thank you for your nice software!
I'm going to use this library on my work which will be used mainly by Japanese.
So, I added a field jp to GeoSearchContries.
The country bounding which I added is based on a data of Geospatial Information Authority of Japan.

@YUUKIToriyama
Version 0.5.0 has just been released. And this release is for you ;)
Thx


Add Portuguese Hate Speech dataset

Binary Portuguese Hate Speech dataset from this paper.

@lhoestq done!

merging since the CI is fixed on master


API calls every second

Is there any reason for this component to call API every second ?

Usually a device will update it‘s state every 30~60 seconds. If you have many devices integrated through the cloud, it is possible to request Xiaomi API every second.

Usually a device will update it‘s state every 30~60 seconds. If you have many devices integrated through the cloud, it is possible to request Xiaomi API every second.

Isn't it possible to do batch updates of multiple devices at once ? Or preferably request all devices via API at once and then parse them ? Or is there some limitation of the API ?
I can't imagine this is good, considering if people have tens of devices such as multiple vacuums, temperature sensors, water detection, and other smart home stuff, they would send hundreds of thousands requests towards API, I can imagine there being a limit to API calls in the future due to this ?

it is difficult to achieve.

it is difficult to achieve.

understood, just wanted to bring this to your attention, might be that they will put limits to API calls per hour/day/month and then you'll have to do this anyway :)


Change postgres authentication?

The current configuration, a catalyst superuser with null password, works with the default configuration of Postgres.app, but not Windows or Linux.
Questions:

What's easy for a new user to set up?
What's not really terrible for security?
Where are postgres superuser permissions necessary for postgres_copy? (And why does it vary?)

Not Windows (with EnterpriseDB)
Yes on OS X (with Posgres.app)

Options:

Provide instructions to allow a null password
Use a non-empty dummy password, maybe "catalyst"
Provide instructions to set up .pgpass and remove the password portion from the PUDL code

Ref: #145

Started relying on .pgpass in 074151ec0163311c40a1d225d7587827aa2c4cd0 (by just removing the password from the code)


Update style of buttons

Tasks

Locate all instances
Round corners
Title Case instead of ALL CAPS
Bold text on primary buttons
Regular on secondary buttons

Instances

[ ] Install Allihoopa-screen Zeplink

This is fixed now, closing issue :)


Grocy

https://github.com/grocy/grocy-docker

[ ] Use proxy auth via this config setting: https://github.com/grocy/grocy/blob/04d826943cd39720a4591d9879b1f4f87658ec0b/config-dist.php#L72-L74
[ ] Disable not required components: https://github.com/grocy/grocy/blob/04d826943cd39720a4591d9879b1f4f87658ec0b/config-dist.php#L194


doubt

How can I create a certificate for the container using certbot?

I never used certbot, so I have no idea. The way I would add SSL, is to have a reverse proxy (like Nginx or Caddy) that proxies the http and websocket traffic to port 8006.
If you use a container like Nginx Proxy Manager for example, it is very easy to do with just a few clicks.

i did't get it.
i installed win11 in docker. i can access web through port 8006. but i cann't acess it through nignx reverse proxy from out of my home network. why is that?
the networks works like this:
url: http://domain:1234, port-forwarded to my own nginx server 4321, and reverse proxy from 4321 to 8006.
i use password auth with nginx. the auth ui comes out when i access this server. but  with error:
504 Gateway Time-out
openresty


Update Admin UI to retain previous queries

Hi
Would it be possible to retain the previous history of queries run (HTML5 local storage?) on the Admin UI. It becomes tedious after a while if we need to repeat the query.

Pressing the up arrow when focused on the query window should display previous queries in the admin UI. If that doesn't work, can you provide OS and browser info?

@gunnaraasen Thanks...i didn't knew it existed. BTW it was Chrome on Ubuntu 14.04. Closing the issue.


SqliteError: FOREIGN KEY constraint failed (starting in 0.92)

Describe the bug
Upgrading from 0.91.0 to 0.92.0 (or 0.93.3) causes a foreign key error when using the node package with "writeLatestResults: true".
I'm using the promptfoo node package via a small node script (run using tsx). It's broken since upgrading to 0.92 or above. If I remove "writeLatestResults: true" the eval script finishes (but then isn't viewable).
To Reproduce
Steps to reproduce the behavior, including example Promptfoo configurations if applicable:

Install promptfoo 0.92 or higher and tsx
Run the eval script (pasted below): tsx ./run-eval.ts my-test-suite.ts
See error below

Expected behavior
Running an eval completes without errors and saves results for the web viewer. Works as expected with version <= 0.91.0.
Screenshots
If applicable, add screenshots to help explain your problem.
run-eval.ts:
import path from "path";
import { evaluate, EvaluateOptions, EvaluateTestSuite } from "promptfoo";

const options: EvaluateOptions = {
  maxConcurrency: 5,
};

/**
 * Run an eval and print the results.
 *
 * The promptfoo CLI didn't work well with Typescript / ES modules, so we wrap the node library instead.
 *
 * Usage:
 * npm run eval <path to eval file>
 */
async function runEval() {
  const evalFilePath = process.argv[2];
  if (!evalFilePath) {
    console.error("Please provide the path to an eval file");
    process.exit(1);
  }

  const { testSuite } = await import(path.resolve(evalFilePath));

  const finalTestSuite: EvaluateTestSuite = {
    // Write the latest results to promptfoo storage to use the web viewer.
    writeLatestResults: true,

    ...testSuite,
  };

  const evalResults = await evaluate(finalTestSuite, options);
  const summary = await evalResults.toEvaluateSummary();
  console.log(summary.stats);
}

runEval();

Error logged to console:
Error saving result: SqliteError: FOREIGN KEY constraint failed {"provider":{"id":"claude-3-5-sonnet-20240620"},"prompt":{"raw":"[\n  {\n    \"role\": \"system\",\n    \"content\": \"<...SYSTEM...>\",\n    \"experimental_providerMetadata\": {\n      \"anthropic\": {\n        \"cacheControl\": {\n          \"type\": \"ephemeral\"\n        }\n      }\n    }\n  },\n  {\n    \"role\": \"user\",\n    \"content\": \"foo bar\"\n  }\n]","label":""},"vars":{"promptText":"foo bar"},"response":{"output":"Sorry, that prompt doesn't provide enough context to generate LaTeX code. Please try again.","cost":0.000477,"tokenUsage":{"total":39,"prompt":9,"completion":30}},"success":true,"score":1,"namedScores":{"Returns an error":1},"latencyMs":2747,"cost":0.000477,"promptIdx":0,"testIdx":0,"testCase":{"vars":{"promptText":"foo bar"},"options":{"transform":"output.error"},"assert":[{"metric":"Returns an error","type":"javascript"}],"metadata":{}},"promptId":"","gradingResult":{"pass":true,"score":1,"reason":"All assertions passed","namedScores":{"Returns an error":1},"tokensUsed":{"total":0,"prompt":0,"completion":0,"cached":0},"componentResults":[{"pass":true,"score":1,"reason":"Returns an error","assertion":{"type":"javascript","value":"output=>buildGradingResult(assertion(output),metri..."}}],"assertion":null}}

System information:

Promptfoo version: 0.92.0 or 0.93.3 don't work (0.91.0 does)

Additional context
Looks like a similar issue to #1862
(thanks for the great library!)

@holdenmatt I've got a fix for you here: https://github.com/promptfoo/promptfoo/pull/1955

Great, thanks for the quick fix!
Do you know what version this will be in?
When it's live on npm, I'll upgrade and test it again.

@holdenmatt we’ll cut a new release within the next ~18 hours. Once it’s live, I’ll update it here so you can upgrade and test. Thanks for your patience!

Hi @holdenmatt, the fix for this issue is now available in version 0.94.0. Please upgrade and let us know if it resolves the problem.
Thanks again for your patience and for using Promptfoo!

Confirmed that error is fixed, thanks!
Getting a type error now, but guessing something just changed in the types. I'll work on tracking that down, but can call this closed.
Warning: Unsupported 'tests' format in promptfooconfig.yaml.
Expected: string, string[], or TestCase[], but received: undefined

Please check your configuration file and ensure the 'tests' field is correctly formatted.
For more information, visit: https://promptfoo.dev/docs/configuration/reference/#test-case

@holdenmatt thanks for reporting! I added the warning in the last release. Are you using promptfoo as a package? I've fixed this in https://github.com/promptfoo/promptfoo/commit/c1a86d599353f582ccdc882aa13aa29068c014f3 - the warning will no longer show when tests are undefined. This fix will go out in the next release.


refactor:Merge pull request #5 from oriafo/main

refacor:Merge pull request #3 from oriafo/staging

syncing commit


Use camera (Waveshare) under Bullseye (64) with OpenCV

Hey guys,
i have done some research and tried a lot, but somehow it doesn't seem to be possible to get a proper function with libcamera under OpenCV. I have tested two workarounds successfully, but what about the current support for cameras in combination with OpenCV. Did you manage to get them working?
(related to this topic: https://github.com/opencv/opencv/issues/19527 , https://github.com/leswright1977/PySpectrometer/issues/27)
Thanks in advance

@Petros626 ,
I understand you are a Python programmer. In that case I would like to refer you to the Picamera2 library. This is the standard library of the Raspberry Pi programmers that you should use if you want to use a camera in Bullseye 64 OS.
See also the documentation.

Okay thanks, maybe it's better placed there.


Handle segmentation algorithms that take multiple dask arrays as input (e.g. seeded watershed)

Thanks for contributing to this tool @joshua-gould!
Extending the use for multiple dask arrays sounds great.
I'll be integrating CD/CI within the next couple of weeks so we can run the test suite on this and future PRs.

I pulled this PR and merged the changes from #6 into this.
All tests are passed, so I don't see any problem with merging this.
Thanks again @joshua-gould for your contribution!


[ExternalNode] Install script for configuring antrea-agent on VM

Provides install script for both Windows and Linux
Expects the user to copy the antrea-agent binary, antrea-agent.conf,
antrea-agent.kubeconfig and antrea-agent.antrea.kubeconfig files to the
VM.
Update the documentation

Signed-off-by: kumaranand<EMAIL_ADDRESS>

Another major comment is, I didn't find how shall user use the script. I think you should modify external-node.md to involve this part, right?

Another major comment is, I didn't find how shall user use the script. I think you should modify external-node.md to involve this part, right?

Yes, that will be done in the documentation.

Replaced by https://github.com/antrea-io/antrea/pull/4113


Add Scala 3 support for uPickle and Circe

Seems that simply https://github.com/hseeberger/akka-http-json/pull/757 could be cherry-picked (as noted in https://github.com/hseeberger/akka-http-json/issues/755).

I only just saw this - added #2

https://oss.sonatype.org/content/repositories/snapshots/com/github/pjfanning/pekko-http-circe_3/1.40.0-RC3_17-0a23ccd2-SNAPSHOT/ is published - likewise upickle equivalent


Updated populate.js now can be used perfectly for automation.

Changes Made:

Fixed Missing Variables:

Added accountType variable in the creation of canteens and students where it was missing.
Updated the creation of canteens and students according to the accountType variable.

Updated Dish Variables:

Added the dish variable in the creation of breakfast, lunch, and dinner.
Renamed dishName variable to dish in breakfast, lunch, and dinner creations.

Added Dishes and Dish IDs:

Added new dishes in the breakfast, lunch, and dinner creation functions.
Ensured that dish IDs are correctly assigned to each dish.

Pull Request Summary:

Created variables accountType for canteens and students where missing and updated creation accordingly.
Updated dish variables in breakfast, lunch, and dinner creations, changing dishName to dish.
Added new dishes and ensured correct assignment of dish IDs.

Thank you so much, @powerstone666  for your quick response and resolution of the issue! Your contribution is highly appreciated and demonstrates your commitment to the success of our project. Keep up the great work!

Hyy add gssoc label to it leaderboard is not recognising my PR.


A typo in tailscale-qpkg/build/build-qpkg.sh for arm32

There are these lines that caused a problem for me:
# arm32
cp out/tailscale-arm /Tailscale/arm-x41/tailscale
cp out/tailscaled-arm /Tailscale/arm-x41/tailscale   # <---- a typo

Expected:
# arm32
cp out/tailscale-arm /Tailscale/arm-x41/tailscale
cp out/tailscaled-arm /Tailscale/arm-x41/tailscaled

Thanks. Fixed typo.


activation: handle retries better if atx building process fails

Motivation
If activation builder process fails for whatever reason it will retry only in the next layer. On the devnet this interval is equal to 200s.
Changes
Main changes here is handling of two distinct error types:

ErrATXChallengeExpired. Can be retried immediately with a new challenge
ErrPoetServiceUnstable. Can be retreied after short delay (hardcoded 5 seconds at the moment).

For now if proof was received, but our challenge is not returned this error is handled as ErrPoetServiceUnstable
Other than that I made some refactoring:

replaced self-written poet service mock with generated mock to handle expectations better
replaced the creation of unnecessary goroutines by a channel with a buffer for one item in SubscribeToProofRef
removed duplicated log (logging error and returning it up the stack where it is logged again)
updated testify module to 1.7.0 for require.ErrorIs check

Test Plan
Unit tests. Maybe will run this PR on devnet with chaos-mesh, simulating network issues with poet server, if there will be time.
TODO

[x] Explain motivation or link existing issue(s)
[x] Test changes and document test plan
[x] Update documentation as needed

DevOps Notes

[x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources)
[x] This PR does not affect public APIs
[x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.)
[x] This PR does not make changes to log messages (which monitoring infrastructure may rely on)

bors merge

bors merge

bors merge


Update CHANGELOG.md with Xcode 8 support

Add mention of Xcode 8 support, with ref to #475
Remove version 1.2.0 which we never got around to release, and move its content under ## Unreleased

Why not go the whole way and just release it as 1.2.0?

I guess if we release right away that makes sense 👍


Invalid Volume on the result

hi Alvarob96,
Notice that the is always given stock volume is 0 as what you display is you doc
import investpy
df = investpy.get_stock_historical_data(stock='bbva',
country='spain',
from_date='01/01/2010',
to_date='01/01/2019')
print(df.head())
         Open   High    Low  Close  Volume Currency

Date
2010-01-04  12.73  12.96  12.73  12.96       0      EUR
2010-01-05  13.00  13.11  12.97  13.09       0      EUR
2010-01-06  13.03  13.17  13.02  13.12       0      EUR
2010-01-07  13.02  13.11  12.93  13.05       0      EUR
2010-01-08  13.12  13.22  13.04  13.18       0      EUR
After looking at the code, notice you are assigning the volume if you see the 'K','M' and 'B', else the volume will be assigned to 0 as below
        stock_volume = 0
        if info[5].__contains__('K'):
            stock_volume = int(float(info[5].replace('K', '').replace(',', '')) * 1e3)
        elif info[5].__contains__('M'):
            stock_volume = int(float(info[5].replace('M', '').replace(',', '')) * 1e6)
        elif info[5].__contains__('B'):
            stock_volume = int(float(info[5].replace('B', '').replace(',', '')) * 1e9)

Is this a bug ?
If I add the "else ..."to get the volume value, it will return the proper volume data
if info[5].contains('K'):
stock_volume = int(float(info[5].replace('K', '').replace(',', '')) * 1e3)
elif info[5].contains('M'):
stock_volume = int(float(info[5].replace('M', '').replace(',', '')) * 1e6)
elif info[5].contains('B'):
stock_volume = int(float(info[5].replace('B', '').replace(',', '')) * 1e9)
else:
stock_volume = int(info[5])

Thank you for reporting this issue @sea98745!
I will work on it since it seems to be a relevant feature to fix. Anyways it has been working the past days, I will need to check if it is an Investing.com problem or mine. This problem may have been produced when I moved from the spanish Investing site (es.) to the global one (www.).
I will let you know as soon as possible this issue is fixed! Thank you for your tip anyways.

Can you help? how to correct the 0 value?

Hi there
This is how I  fixed the issue
if info[5].contains('K'):
stock_volume = int(float(info[5].replace('K',
'').replace(',', '')) * 1e3)
elif info[5].contains('M'):
stock_volume = int(float(info[5].replace('M',
'').replace(',', '')) * 1e6)
elif info[5].contains('B'):
stock_volume = int(float(info[5].replace('B',
'').replace(',', '')) * 1e9)
else:

       stock_volume = int(info[5]) *

On Thu, Dec 12, 2019 at 8:49 PM dirkargyle<EMAIL_ADDRESS>wrote:

Can you help? how to correct the 0 value?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/alvarob96/investpy/issues/73?email_source=notifications&email_token=AEVRQPS76UONFFSV46KH3CDQYIXPFA5CNFSM4JQZNON2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGWR4ZQ#issuecomment-564993638,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEVRQPWDVPNXJVUO4NLKLBTQYIXPFANCNFSM4JQZNONQ
.

Hi @dirkargyle and @sea98745!
I already solved it in investpy and it will be updated in the next release in a few days! Be sure to be watching the repository in order to get notified whenever the package new version is released.
Thank you!

Thank you

Hi @dirkargyle and @sea98745!
The new investpy release 0.9.11 is out! In this release all the issues have been fixed, including the one you described here. So you can now update the package via pip using: pip install investpy==0.9.11.
Thank you! ⭐ :octocat:


[ENH] handling of random_state in clone

Opening an issue to discuss API design around a requirement where independent, yet random-state-fixed copies of an estimator need to be obtained.
An example would be the bootstrap clones discussed here: https://github.com/sktime/sktime/discussions/5823 - these should be statistically independent pseudo-random.
Currently, clone copies the random_seed 1:1, which results in:

if random_seed=None, results in independent copies - but not pseudo-random fixed (each run gives different values)
if random_seed is set, results in value-identical copies, not statistically independent pseudo-random copies - but pseudo-random fixed copies

Neither meets the requirement above, because that would ned to be both pseudo-random fixed, and statistically independent (not value-identical).
In light of the rework of random_seed functionality (see https://github.com/sktime/skbase/pull/268), it is worth a discussion how this should even look like from the API perspective.
A key problem arises if multiple clones are needed - it needs to be known in advance, or at least they need to be sampled in a chain, to obtain dependent seeds which give rise to pseudo-random independent copies.
Further, we cannot change the default behaviour of clone and its current parameters, as it is an interface point of high importance.
Options I can think of:

sth like clone(deep=True, random_seed="exact_copy", n_clones=None)
a new method clone_random(deep=True, n_clones=1)

FYI @ericjb, @jmwhyte, @tpvasconcelos - since we all discussed either clone or random_seed recently.

In case you are getting deep into the weeds and need to consider independent random numbers in a distributed computing environment, you may need to think about the PRNG itself and not just the seed. FYI https://www.thesalmons.org/john/random123/papers/random123sc11.pdf

deep into the weeds

Ouch, not that deep into the weeds. I think we need to deal with the case of single location/env only, and leave pseudo-random seed handling for distributed environments to backends like joblib.

@ericjb, I have come to realize that indeed we will probably need PRNG which guarantees pseudo-random independence with a tree-like hierarchy. As such, the linked paper is exactly of the kind I was looking for.

Pinging @johnsalmon, @moraesmark, @pbelevich regarding the paper - it would be greate if there were an tool, possibly with python bindings which, for a tree-like structure of objects can generate independent pseudo-random seeds such that all samplers are random if any node in the tree does node.set_random_seed(children, node.random_seed), assuming it has been set by its parents.

Getting a bit deeper in the woods, one option would be to convolve each call to a dependent random seed with:

a has of the python file it was called from
the line number it was called from

That would ensure uniqueness and pseudo-independence, as long as no line of code contains more than a call, and no two files the dependent seed generator is called from are identical (e.g., sth silly like near-empty __init__ files).
For reference and potential use in that, here is random code from stackoverflow that produces the line a function was called from:
from inspect import currentframe

def get_linenumber():
    cf = currentframe()
    return cf.f_back.f_lineno


Cant use protocol

Sorry but i dont know why i alway get this :(

You're telling Xcode that your ViewContoller confirms to the protocols, but it doesn't. For example to be a PGoAuthDelegate, your ViewController must implement didReceiveAuth and didNotReceiveAuth. Check out Example/PGoApi/ViewController.swift to see what I mean.

thank you for support :D but one more question : Why i cant get Suggest when i type code ? hmm maybe i need clean and rebuild for new indexing form xcode ?

No problem! Hmm, it should be suggesting it. Try cleaning and fully compiling the app. It should work after that. If not, maybe try restarting Xcode.

again,big thanks for you. Really really good :) I should try to learning about code :) im really noob :/


Update to VIER CVG Extension 4.5.0

This version adds so far:

SIP REFER support
User-To-User Information support

@alexteusz this PR is ready to merge even though the code has a TODO comment.