malformed HTTPS chunked output in 1.1.1c, but working in 1.0.2s in Linux

I am getting malformed output from the openssl  when using 1.1.1c (probably with other 1.1.x too), but working fine with 1.0.2s (probably ok as well with 1.0.y). The use case is for HTTPS chunked, I am getting mal formed chunks, and like neverending stream of data (it looks like same data over and over).
Very important note: there is some randomness in the failure, sometimes it works OK even with 1.1.1c, but most times not. So if it worked for you in 1.1.1c, you get lucky, if you retry again after minutes / hours you may get a failure. I am not sure if this randomness is caused by server or client ... But it makes things harder to test and debug.
I build two docker images in the same host, one with 1.0.2s and one with 1.1.1c (latest stable versions to date).
openssl s_client -connect www.telecreditobcp.com:443 -servername www.telecreditobcp.com

and enter the following:
GET /tlcnp/index.do HTTP/1.1
Host: www.telecreditobcp.com

Another way to reproduce it is with the following python code:
import requests
requests.get('https://www.telecreditobcp.com/tlcnp/index.do')

You will get the following exception when it fails:
requests.exceptions.ChunkedEncodingError: ('Connection broken: IncompleteRead(17 bytes read)', IncompleteRead(17 bytes read))

Another way to reproduce it is:
curl -X GET https://www.telecreditobcp.com/tlcnp/index.do

Some additional insights:

it seems to fail only for Linux. Someone told me it works on Windows, but not sure what version was tested, maybe it just happen to be 1.0.x version.

I've been told sometimes using some kind of VPN makes things work.

Let me know if there is anything else I can provide to help with the debugging of this.

Most likely unrelated, but wget says there is an invalid line in the reply-header:
Syntax error in
Set-Cookie: JSESSIONID=00001tix_WdW87QRIEpDckEaoX_:1askm240k; Path=/;HttpOnly;; HttpOnly
at position 66.

Edit: Anyways, which component is supposed to be at fault here? My tests suggest that the server is broken: it sends the HTTP header, then 1ab as chunk-len, then sends 427 byte of HTML, then a CRLF, then goes back to sending the HTTP header.

The interesting thing is that happens with openssl 1.1.1, but not with 1.0.2 (with same server). So I think the problem is caused by a combination of things. Also keep in mind a browser like firefox / chrome always works (but I believe they use NSS, not openssl).
Important note: the bug is a bit random, in the sense, you may get it running ok with 1.1.1 for several  tries, but if you try some time later it fails again. But when 1.1.1 fails, if you try with 1.0.2 it is ok. I am tempted to do a git bisect between both versions to detect which commit introduced the issue but could be a bit time consuming, but probably someone with good knowledge of openssl can pinpoint the issue much faster.

Looking at this with strace, I see the following lines repeated
all the time:
select(4, [0 3], [], NULL, NULL)        = 1 (in [3])
read(3, "\27\3\3\3\244", 5)             = 5
read(3, "I\362j\237\307\276m\236x\232\25\202m\224\36\352$\235\204s\346\217)}4\31\301G\2\21gU"..., 932) = 932
select(4, [0], [1], NULL, NULL)         = 1 (out [1])
write(1, "HTTP/1.1 200 OK\r\nDate: Thu, 18 J"..., 880) = 880
(The values in the 2nd read() are different.)
So I suspect this is a problem on the server side, not on the
client side.

My initial tests also lead me to think the issue was on the server indeed. But after checking openssl  client 1.0.2 is always working (also other clients), then I'm not so sure and it make methink there is something in the client as well.

It's not because a client can make the server behave differently that
it's a bug in the client. I'm pretty sure it's a bug on the server
side.
I can reproduce this with 1.1.0k

It seems working with s_client-1.0.2s. The only difference I've seen th output is this:
  SSL-Session:
- Key-Arg   : None
- Timeout   : 300 (sec)
+ Timeout   : 7200 (sec)

I still think it is a server-side problem; maybe something like an un-initalized variable.

You're right in that it could be a problem in the server. A different client could trigger a different path in the server that does not expose the bug.

Any ideas as to what might need to change on the server to allow the new version of openssl to work like the old version of openssl did?

@mbatle has this issue been resolved?

Unfortunately, this is not solved, and it seems more people is having the issue. While there could be a problem in the server side as others suggest, I don't have control over the server implementation in this case, and the fact is an old vesion client (1.0) works while a new version client (1.1) does not.
I am trying to set it to work with 1.0 until 1.1 gets fixed.

I have the same problem with 1.1

I'm pretty sure I've seen a server implementation that reacts like this when receiving certain (unsupported) TLS extensions.  encrypt-then-mac and extended-master-secret are traditionally the "usual culprits" for this sort of thing, so I'd suggest trying with those disabled.

Thanks kaduk, that's a good tip. I will try to set up that, trying to find out if I can easily disable it using a highl level interface like python requests ...

@kaduk  it's not working with openssl > 1.1 but <1.1 is fine  it's strange

That corresponds to when libssl started sending the encrypt-then-mac and extended-master-secret extensions by default.
And indeed, if I patch s_client to call SSL_set_options(con, SSL_OP_NO_ENCRYPT_THEN_MAC)  right after SSL_new(), then the reproducer from the initial report produces a (lengthy) error page instead of looping through the same output.
So I think the resolution here is pretty clear: the server is buggy, and a workaround exists.  (Note that encrypt-then-mac is only relevant for non-AEAD ciphers, though I do not expect the server in question to support any.)
I'll set an appropriate tag so the issue will be closed after a waiting period.

The workaround being "use an old version of openssl which doesn't break a bunch of downstream projects"? What's the right thing to do for users of very high-level libraries like python's requests and django?

The workaround is to implement the equivalent of SSL_set_options(.,SSL_OP_NO_ENCRYPT_THEN_MAC) for those libraries.  Which is work to be done, to be sure, but it is not a bug in the openssl software itself.

Where the equivalent means that the libraries should have an
option for the application to set that. Libraries should not
set that option by default.

By "libraries should not set that option by default" do you also mean openssl?

By "libraries should not set that option by default" do you also mean openssl?

Yes.  And openssl does not set it by default, so there is no issue.
The "it" in question is SSL_OP_NO_ENCRYPT_THEN_MAC -- allowing EtM is the default in libssl.

By "libraries should not set that option by default" do you also mean openssl?

Yes, I mean things like OpenSSL and python should not set that
option by default. The current OpenSSL default is the correct
default.

Could this be added to some "common gotchas" documentation (along with examples of downstream packages affected) rather than silently closed? This conversation is unlikely to be the first thing people find if they hit the issue.

At a minimum, a FAQ entry seems reasonable.

What would such an FAQ entry say?  "Some deployed TLS servers are fatally buggy and do not implement extensibility in a standards-complaint manner; these servers may exhibit strange behavior such as repeating the HTTP headers in a loop after receiving a ClientHello that includes relatively new TLS extensions such as encrypt-then-mac and extended-master secret.  While these new TLS extensions provide significant security benefits to clients and are rightly enabled by default in openssl, if bringing the server into compliance is not possible, the extension(s) in question can be disabled on a per-connection basis when talking to the buggy server, by using SSL_set_options(3)."?

Sure, something like that.  As well as the concrete advice to set the "no etm" option.
The world is nasty, and folks have to solve problems.  OpenSSL saying "not my fault" doesn't help a great deal, especially when we can advise on the work-around.

@mbatle did you end up being able to make any progress here?

I was not able, since I didn't find a way to do the SSL_set_options(.,SSL_OP_NO_ENCRYPT_THEN_MAC) from the application level we are using. Just an idea for you to consider, but maybe a way to set this via an environment variable would avoid fixing all the libraries using openssl ?

I am not very enthusiastic about adding an environment variable to control this behavior, for several reasons: first, it's not a "fix", it's a workaround for broken servers; second, we are generally reluctant to add new environment variables at all; and third, for this particular case, adding the environment variable would add an easy way to inadvertently (and in a hard-to-diagnose manner) weaken the security properties afforded to TLS clients by openssl.
BTW, the -EncryptThenMac  directive in the openssl configuration file has the same effect, if your application level allows a way to specify a configuration file to use.  (There is the system global config, which is not a great knob, and IIRC the OPENSSL_CONF environment variable is also consulted.)

thanks @kaduk for the tip, I will try that

I tried adding Options = -EncryptThenMac to system_default_sect of the system openssl configuration file (also with a separate config file via OPENSSL_CONF) without success.
Then tried the following also without success:
Options = -EncryptThenMac,-ExtendedMasterSecret
Even tried Options=Bugs without success.
How do I know if configuration file is being loaded ?
Any ideas what I'm doing wrong ?
Thank you !

thanks @kaduk , I really appreciate it, it worked like a charm !

The "FAQ entry" topic is now https://github.com/openssl/web/pull/157 so I think it is safe to close this.


this2.props.getAccessibilityRole is not a function

Current behaviour
I created a application from scratch with React Native 0.59.4, React 16.8.3, React-Navigation 3.6.1, React-Navigation-Tabs 2.1.0, and I implement a bottom Tab Navigator with 2 screens.
Expected behaviour
When I start the project I receive the following error :
TypeError: _this2.props.getAccessibilityRole is not a function
This error is located at:
in TabBarBottom (at withDimensions.js:32)
in withDimensions(TabBarBottom) (at App.js:6)
in TabBarComponent (at App.js:34)
in tabBarComponent (at createBottomTabNavigator.js:86)
in RCTView (at View.js:45)
in View (at createBottomTabNavigator.js:118)
in TabNavigationView (at createTabNavigator.js:179)
in NavigationView (created by Navigator)
in Navigator (at createAppContainer.js:388)
in NavigationContainer (at renderApplication.js:35)
in RCTView (at View.js:45)
in View (at AppContainer.js:98)
in RCTView (at View.js:45)
in View (at AppContainer.js:115)
in AppContainer (at renderApplication.js:34)
Code sample
In my App.js:
import React from 'react';
import { Text, View } from 'react-native';
import { createAppContainer } from 'react-navigation';
import { createBottomTabNavigator, BottomTabBar } from 'react-navigation-tabs';
const TabBarComponent = (props) => (<BottomTabBar {...props} />);
class HomeScreen extends React.Component {
render() {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
Home!

);
}
}
class SettingsScreen extends React.Component {
render() {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
Settings!

);
}
}
const TabNavigator = createBottomTabNavigator({
Home: HomeScreen,
Settings: SettingsScreen,
},
{
tabBarComponent: props =>
<TabBarComponent
{...props}
style={{ borderTopColor: '#605F60' }}
/>,
});
export default createAppContainer(TabNavigator);
Screenshots (if applicable)

What have you tried

install old version of react-navigations tabs

Your Environment

software
version

ios or android
12.2 and Android 9 (28)

react-native
0.59.4

react-navigation-tabs
2.1.0

node
10.10.0

npm or yarn
6.9.0

I just upgraded to 2.1.1, and I'm still getting this. Needed to add this to fix it:
<BottomTabBar
  {...otherProps}
  // fix for https://github.com/react-navigation/react-navigation-tabs/issues/116
  getAccessibilityRole={() => "button"}
  getAccessibilityStates={({ focused }) => (focused ? ["selected"] : [])}
/>

cc @satya164 maybe we should move those default props onto bottomtabbar?

Maybe, tbh users should pass through all of the props they receive unless they are using a custom component. We probably need to document it better.

I just ran into this (upgrading from react-navigation 2.x), it's very unclear what to do when using a custom component for the bottom tab bar tbh. Some docs would be very welcome 🙏

@svenlombaert can you open an issue regarding documentation so we can keep track of it?

Yeah sure!

@satya164 - good point

I just upgraded to 2.1.1, and I'm still getting this. Needed to add this to fix it:
<BottomTabBar
  {...otherProps}
  // fix for https://github.com/react-navigation/react-navigation-tabs/issues/116
  getAccessibilityRole={() => "button"}
  getAccessibilityStates={({ focused }) => (focused ? ["selected"] : [])}
/>

Woo,Thank you very much,I solved it,This problem has been bothering me for several days


🚸 Auto-bump revision upon lamin get?

Usage question
Instead of raising an error, one could automatically bump the uid upon every call of lamin get

This might be undesired if one works in another instance.
The thing is that for a script, it might not be desired because one might want to run the exact same script again.


Scala Common Enrich: bump scala-maxmind-iplookups to 0.3.0

To get https://github.com/snowplow/scala-maxmind-iplookups/issues/28

Blocked by @alexanderdean


Model::findOne() invalid return ??

I've record on my users_table, and one column primary key id_user.
Let's say the url of update user :
http://localhost/index.php?r=admin/user-update&id=1
which mean my user id is 1.
when I tried doing this :
if(($model = Model::findOne($id) !== null){
return $model;
}else{
throw new NotFoundHttpException('not found');
}
It's ok when the get Url http://localhost/index.php?r=admin/user-update&id=1
But when I tested the url with http://localhost/index.php?r=admin/user-update&id=1a.
It's return the valid data for id_user 1.
I tested again with http://localhost/index.php?r=admin/user-update&id=a1
It's throw to Not Found.
So i tested url http://localhost/index.php?r=admin/user-update&id=1(randomstringxxxxxxxxxxxxx).
Yeah it's return to data user with id_user 1.
I'm using Yii 2.0.4

That's how MySQL works.


Translating Localizing Kubernetes Documentation in hindi

what would you like to be added
I am translating Localizing Kubernetes Documentation in Hindi, for Hindi contributors and it will help them to understand how can they start.

About which directory or file this issue is for? @Amanchouhan192

this one https://kubernetes.io/docs/contribute/localization/ @mittalyashu

Okay.
Can you change the title, just to make it more understandable, like: "Translate docs/contribute/localization to Hindi"

@mittalyashu  done!!

/language hi

@Amanchouhan192 Any updates on this issue? Have you created a PR for the same?

/kind feature
/priority backlog


Add descriptions to all links

Some links have a quick description of what it is:

Agen - Cross-Platform framework for making 2D games with Lua, compatible iOS, Mac and Windows devices.

Some links don't have this. The books for example. Without a description it's kinda useless. Why should I read this? What special about this book? Where's it about?
Maybe consider adding descriptions to all links?

Good  suggestion @arthurvr. Can we have a basic structure to books descriptions? Like Editor - Where to buy - Short Description or something like that.

I like this: https://github.com/sindresorhus/awesome-scifi

Hm, i think this is kinda big for our list. Unless we have a different .md for the books, that will not work.

Why would the length matter?

I believe short descriptions can increase the list readability, and since that list only works as an "index", it has to contain short texts.


fix robot state publisher #14

fixes ros2/robot_state_publisher#14
As far as I could tell there were two problems which are both addressed in this PR.

wrong QoS settings: The robot state publisher sends out a latched message. So RViz has to subscribe to it with the same settings.
filepath vs xml content: In the current implementation, RViz does not expect a full formatted xml string but rather interprets the incoming message as a file path.

Signed-off-by: Karsten Knese<EMAIL_ADDRESS>

* wrong QoS settings: The robot state publisher sends out a latched message. So RViz has to subscribe to it with the same settings.

Just to be clear, it is actually fine to subscribe to a TRANSIENT_LOCAL topic with a VOLATILE subscription.  You just won't get historical data; you'll only get data that is published after you connect.
The reason that this matters is that robot_state_publisher only ever publishes the robot description once, the very first time it publishes transforms.
With that said, I'm wondering what we should do here.  I do think it makes sense to have rviz2 subscribe with TRANSIENT_LOCAL so that it gets the historical data.  But it might also make sense to change robot_state_publisher to re-publish the description on some fixed interval so that other subscribers (which aren't TRANSIENT_LOCAL) will get the data.  After all, without reading the robot_state_publisher code, it's not currently easy to tell that the QoS is wrong.
Thoughts?

But it might also make sense to change robot_state_publisher to re-publish the description on some fixed interval so that other subscribers (which aren't TRANSIENT_LOCAL) will get the data.

I mean, that's the use case for transient local, so I don't know why we'd avoid using it in this case. I think it should just be documented that it is transient local.

After all, without reading the robot_state_publisher code, it's not currently easy to tell that the QoS is wrong.

Yeah, it should definitely be better documented. We also probably need better warnings when QoS don't match, though that has to be balanced with cases where that's intentional (something along the same lines as SFINAE, except QoS mismatch rather than substitution failure).
Also, this case brings up the point against that DDS does not have a "best available" option for subscriptions, which would take transient local if it were available but will communicate with volatile if not. AFAIK such a setting does not exist.

* filepath vs xml content: In the current implementation, RViz does not expect a full formatted xml string but rather interprets the incoming message as a file path.

This seems like that actual fix. Without this it would never load a urdf from robot_state_publisher.

I mean, that's the use case for transient local, so I don't know why we'd avoid using it in this case. I think it should just be documented that it is transient local.

Don't get me wrong, I think it should be TRANSIENT_LOCAL.  What I'm essentially arguing for is that it should be TRANSIENT_LOCAL with a depth of 1 and a republication of once a second (or whatever).  Because we don't have good QoS introspection tools, this will alleviate some of the pain that downstream consumers feel, since they'll get the data whether they use TRANSIENT_LOCAL or not.

forgot CI - testing only rviz_default_plugins:

Linux
macOS
Windows


Can I use this in Android for free?

From what I understand, original project only free for iOS. If I want to use it in Android, I need to buy premium one.
Can I use this project in Android for free?
OR, do I need to buy premium license too?
Please help. Thanks.

]you can use this plugin for free, without buying any license.

Nice. Thanks!


Bad name in package.json: conflict with existing npm package

I'm submitting a ...

[ x ] bug report
[ ] feature request
[ ] other

Current behavior:

The name of the package provided in package.json is wrong.
In the last version of package.json on master: https://github.com/angular/angular.js/blob/master/package.json
{
  "name": "angularjs",
  "license": "MIT",
  "branchVersion": "^1.7.0",
  "branchPattern": "1.7.*",
...
}

But in fact angularjs package on npm is linked to this repository eugeneware/angularjs.
The good news is that the eugeneware/angularjs seems to be abandoned.
Expected / new behavior:

You need to change the name attribute in package.json to angular.
Minimal reproduction of the problem with instructions:

$ npm install angularjs

Output:
npm WARN saveError ENOENT: no such file or directory, open '/Users/alahaxe/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/Users/alahaxe/package.json'
npm WARN alahaxe No description
npm WARN alahaxe No repository field.
npm WARN alahaxe No README data
npm WARN alahaxe No license field.

+<EMAIL_ADDRESS>added 1 package from 1 contributor and audited 1 package in 1.711s
found 0 vulnerabilities

AngularJS version: 1.x.y

All versions
Browser: Not relevant
Anything else:

No

It propably a good idea to keep it in-sync with the name it's being published from on npm.
However, what made you try running npm install angularjs in the first place? I'm not sure there realy is a conflicting issue, aslong as you're aware you need to run npm install angular (which is, afaik, what's in the docs).

Hello @frederikprijck,
In fact I discovered this totally by accident.
I was working on a side project  (not even an alpha version for the moment) that aggregate all informations I can gather on a project hosted on github on many providers like travis, npm, packagist, coveralls... When I try to analyse angular js repository (https://digger.outweb.eu/#!/p/angular/angular.js) I thought I had an issue on npm package detection.
I found quite disturbing to have a different name in npm registry and in the repository.

No, it is not related to the AngularJS-vs-Angular naming guidelines (since it predates Angular).
I think this is worth fixing (since it is very straight forward to fix and can be misleading as it is now).
@lahaxearnaud or @frederikprijck, feel free to submit a PR :wink:

Done 🎊


[Feature] Add ability to assign Legal Entity(Company) as Organizer

Is your feature request related to a problem? Please describe.
Currently only individuals can be assigned as Organizer of campaigns. We need ability to assign registered Company/Association.
Describe the solution you'd like
When creating the campaign the Organizer select should also contain registered Legal Entities(companies). When assigning Company as Organizer, the company name should show in the Campaign Organizer box. New companies can be registered in Admin UI here: https://podkrepi.bg/admin/companies/create
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
To implement this, there is a change needed on the backend and the database schema. For consistency, the implementation should be similar to the way the Company as Beneficiary is implemented already - see companyId in Beneficiary entity.

Do we have any designs on that?

It looks we closed this prematurely:
The frontend still does not allow to put company as organizer.

https://github.com/podkrepi-bg/frontend/issues/1261


Add code review findings, improve source code comments.

This is the first step done until Agent::load is ready.

I intend to use this pull request for a code review of some stuff that is already in devel. This is an experiment. Do not yet merge, please. I will add further commits and then a discussion about my findings can happen in the pull request. Quite possibly, we will never merge it but do the actual changes coming out of the discussion in a separate feature branch. For example, I have added quite a few C++ comments with the word REVIEW to start discussions.

Update: confirmed to be still a useful branch, and still work in progress.


How to limit the length when entry in an editForm?

Hi , Nice to see you again!

in the picture , when someone entry the content , if the length beyond a number which I  set , how to show a alert or some message immediately and not until out of  focus ?

Set maxlength, if not working for you see jQuery plugins and samples for these.

Ok, it works perfectly!  sincerely thank you!

But I have a new trouble ,  You know , chinese is two characters , but the letter is only one characters . How can I do?

But I have a new trouble ,  You know , chinese is two characters , but the letter is only one characters . How can I do?

Use MaxLength().  chinese count one characters . What Can I do?

Can I  override this , Or  I wrote  something like this in dialog

But I hope it is not util the text change ,  If can, I wish it can immediately show.
And Now,  It use 'alert' , Can it be like this picture instead of a alert dialog?

use addValidationRule

use addValidationRule ? it trigger , when I  click saveButton?


⚠ Secret Website 3 has degraded performance

In 6db8617, Secret Website 3 ($SECRET_WEBSITE_3) experienced degraded performance:

HTTP code: 200
Response time: 2177 ms

Resolved: Secret Website 3 performance has improved in deb18ad.


Need to create a square for HAND in the Existing RA page at bottom next to OP. I can add content (I already uploaded logo)

DONE (apologies I didn't read the instructions!)


feat: Implement SearchXNG as alternative search backend

Add SearchXNG Support
Motivation
This PR introduces support for SearchXNG as an alternative search engine in Morphic. This addition aims to provide users with more flexibility in choosing their preferred search backend and enhances privacy options by allowing self-hosted search instances.
Summary of Changes

Implemented a searchXNGSearch function in lib/agents/tools/search.tsx to handle SearchXNG API requests.
Updated the search tool to support SearchXNG alongside existing Tavily and Exa search options.
Added configuration options in docker-compose.yml and .env.local.example to set up and configure SearchXNG.
Enhanced error handling and logging for SearchXNG API calls.
Added new Types lib/types/index.ts for changes implemented.
Updated README to reflect the new SearchXNG option.

Testing Instructions

Clone the updated repository and install dependencies.

Copy .env.local.example to .env.local and set the following variables:

SEARCHXNG_API_URL=http://localhost:8080

SEARXNG_SECRET=your_secret_key_here

SEARXNG_PORT=8080

SEARXNG_IMAGE_PROXY=true

SEARCH_API=searchxng

SEARXNG_BIND_ADDRESS=<IP_ADDRESS>

SEARXNG_LIMITER=false

Run docker-compose build --no-cache && docker-compose up -d && docker-compose logs -f
to start the Morphic stack with SearchXNG.

To test locally with node. Clone the above repo as above

bun install to install the relevant packages
You could run a temp searxng docker instancedocker run   -p  8080:8080 -v ./searxng-settings.yml:/etc/searxng/settings.yml searxng/searxng
run a temp redis instance docker run   -p 6379:6379 redis
bun dev

Perform the following tests:

Create a new search using the SearchXNG backend
Verify that search results are returned correctly
Check that image results are included when available
Test with SEARXNG_IMAGE_PROXY set to both true and false

Set SEARCH_API to other options (tavily, exa) and verify that the original search functionality still works.

Potential Impacts

No breaking changes to existing functionality.
Added flexibility in search engine choice.
Slight changes to search result processing to accommodate SearchXNG's response format.

Additional Notes

This PR modifies the core search logic but maintains compatibility with existing search providers.
Performance impact should be minimal, with potential improvements for users running local SearchXNG instances.
Future considerations may include adding more SearchXNG-specific features and optimizing the integration.

Checklist

[x] Updated README.md with SearchXNG setup instructions
[x] Updated .env.local.example with new environment variables
[x] Performed manual testing with SearchXNG and other search providers
[x] Reviewed and updated code comments
[x] Updated docker-compose.yml to include SearchXNG service
[x] included searxng-settings.yml to help configure searxng docker settings.
[x] included optional searxng-limiter.toml

Closes #[196] Provide local Search API option

Ok  should be good now.

@casistack
I tested using Docker following the Testing Instructions. The following error occurred. There was also an issue in the SearchXNG repo: https://github.com/searxng/searxng/issues/3721. Could you please check this?
2024-08-14 01:01:23,382 ERROR:searx.engines: Cannot load engine "gentoo"
Traceback (most recent call last):
  File "/usr/local/searxng/searx/engines/__init__.py", line 122, in load_engine
    engine = load_module(module_name + '.py', ENGINE_DIR)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/searxng/searx/utils.py", line 439, in load_module
    spec.loader.exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 991, in exec_module
  File "<frozen importlib._bootstrap_external>", line 1128, in get_code
  File "<frozen importlib._bootstrap_external>", line 1186, in get_data
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/searxng/searx/engines/gentoo.py'

@casistack I tested using Docker following the Testing Instructions. The following error occurred. There was also an issue in the SearchXNG repo: searxng/searxng#3721. Could you please check this?
2024-08-14 01:01:23,382 ERROR:searx.engines: Cannot load engine "gentoo"
Traceback (most recent call last):
  File "/usr/local/searxng/searx/engines/__init__.py", line 122, in load_engine
    engine = load_module(module_name + '.py', ENGINE_DIR)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/searxng/searx/utils.py", line 439, in load_module
    spec.loader.exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 991, in exec_module
  File "<frozen importlib._bootstrap_external>", line 1128, in get_code
  File "<frozen importlib._bootstrap_external>", line 1186, in get_data
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/searxng/searx/engines/gentoo.py'

Accidentaly closed pull. The above shouldnt stop for search happening . what happens when you run a search? This mmessage you are seeing is from docker image not the code. Maybe try different docker image for searxng ?https://hub.docker.com/r/searxng/searxng/tags . odd i dint get that error. Also are you using docker-compose ? or are you running a local version of searxng using docker ie docker run   -p  8080:8080 -v ./searxng-settings.yml:/etc/searxng/settings.yml searxng/searxng  ?  if so maybe add a volune -v searchxng_data:/data

@casistack  I set it up again and built it (using Docker Compose), and it was able to start without any errors! I also confirmed that it works with another option ✅
I only commented on a few minor points. If you fix them, I will merge it.

Once again, thank you for your contribution! With this, Morphic is now able to provide all Local options to developers. Thank you for the great work.

No proplem  glad ot help . Love the product as its an alternative to perplexity and actually prefer it . so lets keep up good work and improve it .

After merging, I fixed some parts. https://github.com/miurla/morphic/pull/312
FYI @casistack

This currently has no search depth, right? How do you plan to implement this, if you plan to address it at all? firecrawl would be a good page scraper (returns markdown).

This currently has no search depth, right? How do you plan to implement this, if you plan to address it at all? firecrawl would be a good page scraper (returns markdown).

Hey no but great idea i can look at firecrawl option when i have some time . However, i also noticed you  took out a few things in searxng-settings.yml. Under search: i had   # formats: [html, csv, json, rss]
formats:
- json
. if you dont set json on the searxng i  have noticed it returns http sometimes  which i have noticed doesn't give same quality as a json output.

However, i also noticed you took out a few things in searxng-settings.yml.

@casistack
I'm sorry, I accidentally removed the search section in my PR. For this change, we only need to set what will be overwritten. Are there any other settings that should be overwritten besides the search section? I have prepared the PR: https://github.com/miurla/morphic/pull/316

However, i also noticed you took out a few things in searxng-settings.yml.

@casistack I'm sorry, I accidentally removed the search section in my PR. For this change, we only need to set what will be overwritten. Are there any other settings that should be overwritten besides the search section? I have prepared the PR: #316

fix: https://github.com/miurla/morphic/pull/320/files#r1730622909


Metadata: Site Title and Description is used for each page.

Describe the bug
I"m just now reading over the contributors guidelines, and considered that I should have started there.. (and am new to github... but learning quick enough I hope :)
I already made a pull request for this
As it stands Metadata for each page is chosen with this code:
<title>{{ .Site.Title }}</title>
    <meta name="description" content="{{ .Site.Params.Description }}">

the result is that each page uses the Site Title and Description when shared on social media.
To Reproduce
for example, viewing the source of https://angelostavrow.com/post/mbb-season-1-retro/
Angelo Stavrow

Expected behavior
Seen here: https://web-work.tools/indieweb/indigo-indieweb-features/
   <title>Indigo - A Hugo Indiweb Theme - Features</title>
    <meta name="description" content="Indigo is a A Hugo theme, designed with indieweb in mind.">

The Solution
    <title>{{ .Title }}</title>
    <meta name="description" content="{{ with .Description }}{{ . }}{{ else }}{{ .Site.Params.description }}{{ end }}">

This uses page title .Title and check for a description, otherwise using site description

Good call, this is definitely something I'd categorize as a bug.
In the page's <title> tag, I feel like I'd expect something more like:
Site Name - Title Of Page/Post

What do you think about that, @infominer33?

yeah, if you have some more "proper" or even just different solution, I'm all for going with your inclination and swapping out my patch. :D
I commonly share on Twitter, Discord, Keybase, etc.... and was just happy to have each pages title and description reproduced. I think each of these social sites displays the domain along w generated meta-data.. which may be why I didn't worry about the site-title not getting propagated for each page in my patch...
I didn't think too much about it, in any case.

For sharing, you're right that your issue #44 will help to dispel any confusion. But another use case to consider is that the <title> tag in an HTML page's <body> is displayed in the browser, too. 🙂
A good question to you: what order makes more sense?
Site Name - Title of Page/Post

or
Title of Page/Post - Site Name

?

I tried <title>{{ .Title }} | {{ .Site.Title }}</title> in the pull-request... simply because that's how it's displayed on my other sites, and a random sampling of my browser tabs similarly finds the site title displayed on the right side, after the page title mostly... but i don't think it's a rule either way.
I'll defer to your preferences... I haven't gotten those changes live yet to see how it looks. Think I need to get finished w my morning and come back to this later, tho.


Implement missing formatter nodes

Component
Forge
Describe the feature you would like
Recently, we've merged https://github.com/gakonst/foundry/pull/201 with basic formatter functionality which includes:

Parsing source code (respecting project structure) with solang
Traversing the Parse Tree and reconstructing the code on-the-go (more about architecture here: https://github.com/gakonst/foundry/blob/master/fmt/README.md)
Reconstructing some basic nodes such as pragma directives, import directives and enum definitions

Now we need to implement code reconstruction for other nodes listed here: https://github.com/foundry-rs/foundry/blob/4367ce1c3d2c10b71350b40258766d53a94c717f/fmt/README.md?plain=1#L6-L111
I think it may be worth creating separate PR every time someone's gonna work on implementing particular node type, and I'll update permalink above with features list.
Additional context
No response

Hi :wave: I'm looking to finish the implementation of the Visitor, but before I get started, I had a couple of questions and concerns.
The problem
It seems that solang only supports solidity version 0.7.x and thereby doesn't respect some of the breaking changes in 0.8.x. To give a concrete example. Given the two solidity examples
example1.sol
pragma solidity ^0.8.10;

contract AstExample {
    constructor() {
        (1 ** 2) ** 3;
    }
}

example2.sol
pragma solidity ^0.8.10;

contract AstExample {
    constructor() {
        1 ** 2 ** 3;
    }
}

solang will provide the same Parse Tree representing (1 ** 2) ** 3 whereas the second example without parentheses should parse to 1 ** (2 ** 3) as shown by the example below
use solang_parser::pt::{ContractPart, Expression, SourceUnitPart, Statement};

fn get_expression(file: &str) -> Expression {
    match &solang_parser::parse(&std::fs::read_to_string(file).unwrap(), 0)
        .unwrap()
        .0
         .0[1]
    {
        SourceUnitPart::ContractDefinition(cd) => match &cd.parts[0] {
            ContractPart::FunctionDefinition(fd) => match fd.body.as_ref().unwrap() {
                Statement::Block { statements, .. } => match &statements[0] {
                    Statement::Expression(_, exp) => exp.clone(),
                    _ => panic!(),
                },
                _ => panic!(),
            },
            _ => panic!(),
        },
        _ => panic!(),
    }
}

fn main() {
    let example1 = get_expression("./example1.sol");
    match example1 {
        Expression::Power(_, left, right) => {
            // parse tree compiled (a ** b) ** c
            assert!(matches!(*left, Expression::Power(..)));
            assert!(matches!(*right, Expression::NumberLiteral(..)));
        }
        _ => panic!(),
    }
    let example2 = get_expression("./example2.sol");
    match example2 {
        Expression::Power(_, left, right) => {
            // parse tree compiled (a ** b) ** c
            assert!(matches!(*left, Expression::Power(..)));
            assert!(matches!(*right, Expression::NumberLiteral(..)));
        }
        _ => panic!(),
    }
}

In contrast, the output of the solc as given by
solc --combined-json ast $FILE | jq ".sources[\"$FILE\"].AST.nodes[1].nodes[0].body.statements"

and reduced for clarity reveals the following parsed ASTs
example1.ast.json
[
  {
    "expression": {
      "nodeType": "BinaryOperation",
      "operator": "**",
      "leftExpression": {
        "components": [
          {
            "nodeType": "BinaryOperation",
            "operator": "**",
            "leftExpression": {
              "value": "1"
            },
            "rightExpression": {
              "value": "2"
            }
          }
        ]
      },
      "rightExpression": {
        "value": "3"
      }
    }
  }
]

example2.ast.json
[
  {
    "expression": {
      "nodeType": "BinaryOperation",
      "operator": "**",
      "leftExpression": {
        "value": "1"
      },
      "rightExpression": {
        "nodeType": "BinaryOperation",
        "operator": "**",
        "leftExpression": {
          "value": "2"
        },
        "rightExpression": {
          "value": "3"
        }
      }
    }
  }
]

if we generate the source code from the Parse Tree we would have no generate an improper ordering of operations
Possible solutions
I see there being two possible solutions here. We either change solang to support 0.8.x, or we use the AST from solc to implement Visitable. In the second case we would probably make an abstract AST to support multiple versions of solc, which solang could also translate too. Also in the latter case we would have to parse the comments ourselves, but that should be fairly simple.

I think we should get Solang to support later solidity versions - cc @seanyoung

This is broken, let me have a look.

@rkrasiuk & @jpopesculian what is the status on this issue in particular? There are a few fmt related issues that are very broad, I'm not sure if they have been solved or if we should close and split into more actionable issues?

i'd say it has been completed by now. @jpopesculian anything I'm missing?

yeah, as far as i'm aware its been implemented completely and we're just working on bugs / configuration

:+1: closing


Co-publish in Open VSX

Open VSX is an open-source registry for VS Code extensions. It can be used by any development environment that supports such extensions. See this article for more information.
It would be cool if this marvellous extension is available in OpenVSX.
the guide to publish it can be found here.
There is a Github Action to publish the extension to OpenVSX that can be used too.

Thanks to @johannrichard  - https://open-vsx.org/extension/damonsk/vscode-wardley-maps

Thanks to @johannrichard  - https://open-vsx.org/extension/damonsk/vscode-wardley-maps

You're most welcome. Thanks for building this extension.

VSCodium already picked it up and updated to the version on Open-VSX. Am obviously the first one to download from Open-VSX. Hopefully not the last! 😁


how to use null value .

hi , i need to empty input when user choose not any day . but after first click on input onChange call , and today date set to state . how to prevent of this event ?

Hi
Just set onOpenPickNewDate prop to false
<DatePicker onOpenPickNewDate={false} />


upgrade wasmd and ibc version

Codecov Report

Merging #605 (31fa43e) into main (628a0bd) will increase coverage by 0.01%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #605      +/-   ##
==========================================
+ Coverage   10.34%   10.36%   +0.01%
==========================================
  Files          55       55
  Lines        7770     7770
==========================================
+ Hits          804      805       +1
+ Misses       6908     6907       -1
  Partials       58       58

Impacted Files
Coverage Δ

app/genesis.go
0.00% <ø> (ø)

app/ante.go
63.63% <100.00%> (ø)

app/app.go
84.77% <100.00%> (+0.04%)
:arrow_up:

Continue to review full report at Codecov.

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


[upstream-update] Add to SwiftAAResult a getModRefInfo entrypoint tha…

…t takes an llvm::AAQueryInfo.
I left in the old entrypoint as well that doesn't take the AAQueryInfo by having
it delegate to the AAQueryInfo entrypoint passing a default constructed
AAQueryInfo. This matches how people upstream have handled this.
rdar://49450147

@swift-ci smoke test

Looks like LLDB is broken. I tested this locally and it works. Merging!


release at least 0.1.0

Don't be afraid to follow semver and release 0.1.* or even better 1.0.0 !
0.0.* is not cool, especially to provide bugfixes.
Example https://github.com/postcss/postcss-import/blob/master/CHANGELOG.md

ok, gonna fix.

Could you tag your release as git tag as well?

@MoOx :+1: Sure. I've just joined the org, so I will take good care of it from now :smile:

@MoOx sure

Nice!


Handling response codes

Currently, if there is an error and the beck end sends a non-200 response code, the app does not handle it.
The app needs to handle these errors gracefully.
400-series code: can display error code in error object
500-series code: shouldn't display error code

Hmm, I'm having a little trouble finding exactly where we're letting an error slip through in the code.

@donahue2: Take a look at the file HttpAsyncTask.java. On line 113, there is an execution of the post. httpResponse will then have the response from the server. If you look at http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/client/HttpClient.html, you can see some methods for extracting the response code.
Hope this helps.

There we go, that's what I was needing. Thanks!

PR gives the base code for this, but there may be other places where the result needs to be caught or error messages need to be displayed!
ALSO, it would be really nice to log the "error" that is in the JSON object whenever one of these occurs, to make debugging easier!


Swiper cube loop problem

[x] bug

Platform/Target and Browser Versions: both chrome 79 and edge produce a problem

Live Link or JSFiddle/Codepen or website with isssue: https://biiird.com/slider/ (there are two swipers, the issue is about the cube one

What I did
I have created a cube slider with the parameter loop: true,
The slider glitches between the first and the last slide when swiping backwards
Here is the swiper code:
var swiper = new Swiper( '.custom-swiper > .elementor-container', {         speed: 400,          loop: true,          parallax: true,          effect: 'cube',         grabCursor: true,         cubeEffect: {             shadow: true,             slideShadows: false,             shadowOffset: 20,             shadowScale: 0.94,         },         navigation: {             nextEl: '.custom-swiper .swiper-button-next',             prevEl: '.custom-swiper .swiper-button-prev',         },
Expected Behavior
slides going in a loop without glitches
Actual Behavior
glitch between the first and last slide when sliding backwards

Can you provide the html code? I would like to replicate your problem :)

You can see the problem here on codepen:
https://codepen.io/iamrc1/pen/MdGKYQ
I can provide my code, but this is simpler and shows the same problem.
When going from first slide directly to the last one by draging the animation glitches.

I found out that there must be at least 4 swiper-slide components inside a swiper-wrapper for it behave normally. In your case, you have only 3 swiper-slide components which is also why the unexpected behavior occurred. This is indeed a bug that need to be fixed. For now, you may choose to add on 1 more swiper-slide to temporarily solve the issue :)

Still here

Still there

still there


Curl POST/PUT?

I love this, but would like to be able to use curl post/put functionality as well. Easy to implement? Thanks.

@kenetik Thanks , I am glad you enjoyed this.
I am wondering what exactly are you looking to do with a curl post/put?

@nukulb Thanks for the reply!
Essentially, this project only allows for file uploads via a web interface (form/browser input). Which works perfectly as expected. However, I would like to be able to use this same project to accept file uploads to my AWS S3 via a curl post. Example:
$ curl -F<EMAIL_ADDRESS>http://project.url/
The goal would be for this to allow the upload file as the web interface does. However, the command results with the following error prompt:
Cannot POST /
I believe this is due to no PUT or POST route in express.
Can you understand the goal?

@kenetik I understand the goal but unfortunately this lies outside the scope of this project. If you start a new project or fork this I will be happy to help out.


[JN-1425] fixing enrollee merge bug

DESCRIPTION (include screenshots, and mobile screenshots for participant UX)
The merge modal bugged out if trying to merge the case where one account had an enrollee in a study, but the other did not.
TO TEST:  (simple manual steps for confirming core behavior -- used for pre-release checks)

redeploy apiAdminApp
go to https://localhost:3000/demo/studies/heartdemo/env/sandbox/participants/accounts/merge
plan a merge with<EMAIL_ADDRESS>into<EMAIL_ADDRESS>(or vice-versa)
confirm it renders and can merge

e2e is false positive


Cart and Checkout pages are down

Hello,
I developed a site running c5 v8.5.4, and Community Store v2.3.4, and PHP 7.4. Today I was informed that the Cart and Checkout pages are down. I am getting a 500 error on the pages, and when I turn on detailed Debugging, I get the following error:
Illegal length modifier specified 'f' in s[np]printf call
This has come up before, but seemed to resolve after an hour or two, but this time it is not resolving (it's been a few hours). The site has plenty of memory assigned (1024MB), so I don't think that is the issue.
I could use some help with this... my client is quite concerned, and is currently taking orders over the phone.
The site is: jmanporscheparts.com
Thank you,
Craig

Ryan,
Thanks for tracking this issue down, and working with me further through email. As you mentioned, it seems to be a problem with the Host (InMotion Hosting), and their particular PHP implementation. I think the best solution will be to change hosts, and I am going to recommend that my client use your suggestion of Veerotech.
Again, I appreciate the time and research you put into this. Above and beyond!
Craig


[WIP] Support Flutter Web

This is still a work in progress, creating this PR now to see how Github Actions will respond.

Appreciate the PR, before any merge I'd like to make sure we have ongoing web support: https://github.com/flutterdata/flutter_data/issues/185

@frank06 that was the point of the PR ;-)

Could you, @frank06 approve this PR for Github Actions? So, not an approval of the PR, but just to run github actions.
Right now web tests are run with -p chrome which seems to fail. Running -p firefox shows green tests. Right now I think there's something wrong with running tests and/or mockito on chrome (not "web" as a whole).

Once Github Actions is active, I can test my changes more thoroughly.

Looking further into failing tests for web, they all share one thing: await oneMs() from setup.dart. The goal is to let things settle before making assertions, however, on slower systems when running in-browser tests this is not enough time.
I bumped the duration in oneMs to 10ms and that makes all tests pass without issue.

Makes sense, thank you!  I have encountered other issues on web in the past that were not related to timing, and these were very difficult to debug. Hopefully things get better


Distinct function in Legend API

Codecov Report

Merging #51 (c3e407e) into main (c7c0c08) will increase coverage by 0.14%.
The diff coverage is 97.77%.

@@            Coverage Diff             @@
##             main      #51      +/-   ##
==========================================
+ Coverage   96.24%   96.38%   +0.14%
==========================================
  Files          37       39       +2
  Lines        2266     2354      +88
==========================================
+ Hits         2181     2269      +88
  Misses         85       85

Flag
Coverage Δ

pytest
96.38% <97.77%> (+0.14%)
:arrow_up:

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

Impacted Files
Coverage Δ

...core/tds/legend_api/frames/legend_api_tds_frame.py
73.91% <66.66%> (-1.09%)
:arrow_down:

...s/legend_api/frames/functions/distinct_function.py
95.65% <95.65%> (ø)

...tds/legend_api/frames/legend_api_base_tds_frame.py
95.65% <100.00%> (+0.49%)
:arrow_up:

...end_api/frames/functions/test_distinct_function.py
100.00% <100.00%> (ø)

...end_api/frames/functions/test_restrict_function.py
100.00% <100.00%> (ø)

...tensions/tds/frames/test_table_spec_input_frame.py
100.00% <100.00%> (ø)

... and 1 file with indirect coverage changes


Fix range slider pips and value 0

Summary

When setting pips: false it was still showing pips
Refine on range boundaries where not correctly applied

Fixes #2343

I have a question @iam4x , why does the header disappear when there is no pips? Is that a behaviour that we want?

I just did not put a header on the second example, it's expected behaviour 👍


go mod: Fix go version

What this PR does
Since the go version is 1.22 instead 1.22.0
it affects the toolchain that is tried to be fetched. It cause IDEs, such as visual studio code to have broken indexing.
https://github.com/golang/go/issues/61455#issuecomment-2072931029

Fixes #
Why we need it and why it was done in this way
The following tradeoffs were made:
The following alternatives were considered:
Links to places where the discussion took place:
Special notes for your reviewer

Checklist
This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR.
Approvers are expected to review this list.

[ ] Design: A design document was considered and is present (link) or not required
[ ] PR: The PR description is expressive enough and will help future contributors
[ ] Code: Write code that humans can understand and Keep it simple
[ ] Refactor: You have left the code cleaner than you found it (Boy Scout Rule)
[ ] Upgrade: Impact of this change on upgrade flows was considered and addressed if required
[ ] Testing: New code requires new unit tests. New features and bug fixes require at least on e2e test
[ ] Documentation: A user-guide update was considered and is present (link) or not required. You want a user-guide update if it's a user facing feature / API change.
[ ] Community: Announcement to kubevirt-dev was considered

Release note

None

Since the go version is 1.22 instead 1.22.0 it affects the toolchain that is tried to be fetched. It cause IDEs, such as visual studio code to have broken indexing.
golang/go#61455 (comment)

This is not the convention per what I see [1]. It is also odd, because we use a specific Go version patch which usually increases periodically. While that increases, we do not update the the version in go.mod.
[1] https://go.dev/doc/modules/gomod-ref#go

it is a new bug due to the toolchain, anyhow won't insist atm, since there is on going effort about it anyhow


Setup instructions for Windows

Apparently Flatpak works just fine with WSL
A contributor is using WSL to run and contribute to Workbench :exploding_head:
I don't have access to a Windows / WSL computer so I can't do it myself ATM
We could consider adding instructions for Windows / WSL as a draft or with a warning.
A potential next step would be some kind of signed .exe to take care of it all.
https://floss.social/@sonny/111715511122341006

Please report at https://github.com/flatpak/flatpak.github.io/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc


Unicorn zero downtime deployment

Have you considered adding upgrade task for unicorn and a preload_app option to unicorn template? Something like this:
# unicorn.rb
set_default(:unicorn_preload, true)

%w[start stop upgrade].each do |command|
  ...
end

# templates/unicorn.rb.erb
preload_app <%= :unicorn_preload %>

This way you could do no-downtime deploys if you wanted.

Binance Airdrop Guide: Claim Your $1500 in BNB Now!
🎉 Congratulations! You've won a share of the $1.500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. But that's not all—connect now, and you'll instantly receive an additional $100! Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. 🌐 Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. 🔄 Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

💰 Don't miss out on your $1.500k in BNB! Plus, enjoy an instant $100 upon connection. Act now to secure your tokens. And hey, seize the chance to win up to $20,000—it's your golden opportunity!
Winners: @


Need to include a full Java and Kolton Example

The documentation is not clear enough. Please improve on it.

Even a sample example not working, in sample, there are other things, in front page, a legacy way is written which is not working


Feat re-commit zhipu-api due to merge mistake

Features

re-commit zhipu-api due to merge mistake

Feature Docs

Influence

Result

(metagpt_v2) MacBook-Pro:MetaGPT xxx$ pytest tests/metagpt/provider/test_zhipuai_api.py
============================================================================== test session starts ===============================================================================
collected 2 items

tests/metagpt/provider/test_zhipuai_api.py ..                                                                                [100%]

=============================================================================== 2 passed in 0.24s ================================================================================
(metagpt_v2) MacBook-Pro:MetaGPT xxx$ pytest tests/metagpt/provider/zhipuai/test_*
============================================================================== test session starts ===============================================================================
collected 2 items

tests/metagpt/provider/zhipuai/test_async_sse_client.py .                                                                                [ 50%]
tests/metagpt/provider/zhipuai/test_zhipu_model_api.py .                                                                                [100%]

=============================================================================== 2 passed in 0.35s ================================================================================

Other

Codecov Report
Attention: 1 lines in your changes are missing coverage. Please review.

Comparison is base (2a496ca) 82.88% compared to head (6f31289) 82.88%.
Report is 8 commits behind head on main.

Files
Patch %
Lines

metagpt/provider/zhipuai_api.py
91.66%
1 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #861   +/-   ##
=======================================
  Coverage   82.88%   82.88%
=======================================
  Files         225      225
  Lines       12439    12439
=======================================
  Hits        10310    10310
  Misses       2129     2129

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


Week 27 Hacks

[x] Big Idea 2 Quiz
[x] Space and Time Complexity
[x] Big Teams Project Plan
[x] Plan to finish CPT
[x] Pair Trio

Here is a screenshot of my commits since Ski Week:

Big Teams
Grade

Team Plans / Project Idea
1

Initial division of labor
1

Pair-Trio focus areas
1

Code in space/time hacks
1

Quiz score, Quiz corrections
1

A commit each week since Ski Week
1

Plans to finish CPT
1


Add rawmode option to stdin

It would be nice if there was an option to set rawmode on stdin so that wscat can be used to talk directly to things like pty servers.  This way the host console sends down raw keypresses instead of buffered lines.

Thanks!

Published as 2.2.0


yarn dev error

Using this template then yarn install then yarn dev results in the following error:

I think its something to do with the .default imports in vite.config.ts

Hmm yeah, perhaps that dependency was updated and now it doesn't need the .default. I'll try to update the template soon.


BUILDKITE_AGENT_SPAWN > 1 sets no unique agent tags

Is your feature request related to a problem? Please describe.
We use Buildkite from the official Docker container.  We use the BUILDKITE_AGENT_SPAWN environment variable to start up multiple agent processes in the one container.
There is a need for us to be able to target jobs to a very specific agent.
When using the API to query for the agents, we can see the agent's name and id. These are unique values for us, and would be appropriate to set as the target for a job.
However, the agent does not have either of these as a tag, and so jobs cannot be targeted to a specific agent.
Describe the solution you'd like
We would like to see some unique tags added to each Buildkite Agent process.
For example a tag with it's own name, or id.
Describe alternatives you've considered
Buildkite Support has suggested modifying the entrypoint scripts for the container, however as Buildkite-Agent uses the tini init script - we would lose any signal handling that tini provides.
Moving to something like s6 or another init replacement would be a major departure from the current container and make it more difficult to track.
Moving to a single buildkite-agent per container would increase costs/complexity of managing our Buildkite Agent infrastructure.
Additional context
n/a

kia ora @willhughes-au! can you elaborate a bit on the use case where you need to specifically target one particular spawned agent? theoretically, all of the agents instances spawned by one agent should have the same config, and should be equivalent, but that obviously isn't the case here.
if you'd rather not talk about it in the open, then feel free to DM me on the buildkite slack, or send me an email at<EMAIL_ADDRESS>

Hi @moskyb

"theoretically, all of the agents instances spawned by one agent should have the same config"

Yes, we agree -- and in most scenarios that's true.
We have run across this a few times, however, and in each case managed to find some work-around.
This time it was because we have agents running steps in a bunch of pipelines which generate a lot of files (node_modules directory), and this is exhausting the number of inodes available on the container disk.
What we were looking for is some way of cleaning up/removing the pipeline working directory on agents, when the pipeline is completed. That doesn't appear to exist.
My thought was to just run a periodic pipeline, which generates a job for every spawned agent, and that job would then remove all the pipeline working directories for that spawned agent.
Without the ability to target a specific spawned agent, we can't guarantee that each agent will actually run the task. i.e we might have all four cleanup tasks for hostname=X run on the same agent.
We also can't just cleanup the working directory for other other spawned agents on the same host, as this will run into race conditions where it's removing in-use folders.
In short, being able to target a specific agent would allow us to perform certain actions that we can't otherwise without it.

that's a lot of really helpul context, thank you!

which generate a lot of files (node_modules directory)

ah, that old chestnut 😅
we don't have any plans to ship features that makes targeting specific agents easier - it goes against our cattle-vs-pets view of buildkite agent fleets, but i understand that this is making things a little tricky for you.
in this case, i think a similar goal be achievable by adding a pre-exit hook that runs git clean -ffxdq after a job run. This is what happens the next time a job runs on this agent and pipeline anyway; having it execute in a hook just brings it forward in the process so node_modules isn't sticking around on your machine taking up inodes between runs.

oh, -ffxdq on git clean means:
// -ff: delete files and directories, including untracked nested git repositories
// -x: don't use .gitignore rules
// -d: recurse into untracked directories (eg node_modules)
// -q: quiet, only report errors

it goes against our cattle-vs-pets view of buildkite agent fleets

I think we're in pretty close agreement in the general case.
However to push the analogy to perhaps breaking point: even on farms, you sometimes need to deal with members of the herd/flock/$collective_noun individually. It doesn't necessarily make them pets.
The pre-execute hook might work, but it might cause other conflicts.
We've got some other work-arounds for this particular scenario which lets us keep going (restart the agents many times a day).
All in all they all seem like less than ideal solutions.

Howdy @willhughes-au 👋🏼
Let me see if I understand the issue:

You're running buildkite-agent within docker container(s), using --spawn to run multiple agents in the same process/container.
These agents handle build jobs for many different pipelines.
A new checkout directory is created for each spawn+pipeline combo.
After running jobs from many different pipelines, many different checkout directories are left behind with the full working directory as left by the most recent build job. e.g. --spawn=4 handling 10 different pipelines could accumulate 40 working directories
Eventually, disk space and/or inodes are exhausted.

The fact that each build job leaves behind its working directory contents (and that each spawn/pipeline combo gets a new directory) only for the next job in the spawn/pipeline combo to git clean -ffxdq it doesn't feel like a useful feature, unless you sometimes need to manually dive in and inspect the result of a build after it's finished (but before another job wipes it).
In that case, I would definitely recommend git clean $BUILDKITE_GIT_CLEAN_FLAGS in an agent pre-exit hook (e.g. /buildkite/hooks/pre-exit, depending on your hooks-path config in the container). That will leave behind the .git directory so the next job remains fast, but will eliminate the working tree which is likely what's using all your inodes.
I actually wonder if this should become the default, or at least have a simple flag to opt in 🤔
Regarding tagging the agent by its spawn index, I think we'd only be interested in pursuing that if it solved a problem that couldn't be solves via agent hooks etc. So I'd be keen to hear if the pre-exit solution is viable — if so I think it will end up much simpler and more reliable than pointing garbage-collection builds at all known agents.

👋🏼 Hey @willhughes-au, have you had a chance to see if the pre-exit approach would work for you?

Hi, yes we've added the pre-exit hooks, and also done some other things to fix this specific case.
But as mentioned, we've hit this repeatedly, and had to work around it in different ways.
If we were not using spawn at all, then this wouldn't be an issue.
We use spawn because it simplifies other things around scheduling of agents.
I guess we are stuck having to trade off simplified management of agents (being able to target one agent) vs simplified scheduling of agents (using spawn).

we'd only be interested in pursuing that if it solved a problem that couldn't be solves via agent hooks etc

In that case, I guess I'll close the issue.


test: disable policy create for hpcs tests

Description
Disabling the creation of the HyperProtect-Block Storage auth policy for the two HPCS tests, to avoid conflicts with existing policies in test account.
Release required?

[x] No release
[ ] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content

Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

/run pipeline

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

GitHub release
v4.14.0

Your semantic-release bot :package::rocket:


Create .gitignore and get rid of .pyc files

Thank you for your comment. Our team will look into this issue.

Fixed in 3ea442bdecb3ef9a2255aec1f500d6d9b5ff49c4
Thanks for your comment!


"hub browse" not working on fish shell

It works with zsh, but doesn't work with fish.
The behavior is similar to issue(#1289). verbose The output log is below.
zsh
HUB_VERBOSE=1 hub browse
$ git rev-parse -q --git-dir
$ git remote -v
$ git config --get-all hub.host
$ git config push.default
$ git rev-parse -q --git-path refs/remotes/origin/develop
$ open https://github.com/1natsu172/Outside-YouTube-Player-Bar/tree/develop

fish
env HUB_VERBOSE=1 hub browse
$ git rev-parse -q --git-dir
$ git remote -v
$ git config --get-all hub.host
$ git config push.default
$ git rev-parse -q --git-path refs/remotes/origin/develop
$ google-chrome https://github.com/1natsu172/Outside-YouTube-Player-Bar/tree/develop
exec: "google-chrome": command not found

I don't know why fish is calling google-chrome instead of open command.
It does not work even if google-chrome https://github.com/1natsu172/Outside-YouTube-Player-Bar/tree/develop is directly executed. Of course directly open https://github.com/1natsu172/Outside-YouTube-Player-Bar/tree/develop works fine.
I’m pleased if have any advice. :pray:

Sorry, was self resolved.
Just write set -x BROWSER open on my config.fish.


Convert DBC files to Python/Scala files

We shouldn't need databricks accounts for reading the code.
See export options here - https://docs.databricks.com/notebooks/notebooks-manage.html#export-a-notebook

We don't have plans at this time to update that workshop. With that said we could always review the need for an updated version of the workshop and plan for it to be part of an upcoming cycle.


3.6 AQL setup now abort if no shards are found

Backport of: https://github.com/arangodb/arangodb/pull/12911/
No issues on cherry-pick
Scope & Purpose
We now directly abort if we failed to translate Collection => Shard in AQL setup.
This situation can happen if the collection or database is dropped.
Before we still would return an error and leave no harm, this situation is now just a bit cleaner.

[ ] :hankey: Bugfix
[ ] :pizza: New feature
[ ] :hammer: Refactoring
[x] :book: CHANGELOG entry made
[x] :muscle: The behavior in this PR was manually tested
[x] :computer: The behavior change can be verified via automatic tests

Backports:

[ ] No backports required
[x] Backports required for:

[x] devel
[x] 3.7

Related Information
(Please reference tickets / specification etc)

[ ] Docs PR:
[ ] Enterprise PR:
[x] GitHub issue / Jira ticket number: https://arangodb.atlassian.net/browse/BTS-158.
[ ] Design document:

Testing & Verification
(Please pick either of the following options)

[ ] This change is a trivial rework / code cleanup without any test coverage.
[ ] This change is already covered by existing tests, such as (please describe tests).
[x] This PR adds tests that were used to verify all changes:

[x] Added Regression Tests
[ ] Added new C++ Unit Tests
[ ] Added new integration tests (i.e. in shell_server / shell_server_aql)
[ ] Added new resilience tests (only if the feature is impacted by failovers)

Additionally:

[ ] There are tests in an external testing repository:
[ ] I ensured this code runs with ASan / TSan or other static verification tools

Jenkins: http://jenkins01.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/12574/
Documentation

All new Features should be accompanied by corresponding documentation.
Bugs and features should furthermore be documented in the changelog so that
developers and users have a concise overview.

[x] Added a Changelog Entry (referencing the corresponding public or internal issue number)
[ ] Added entry to Release Notes
[ ] Added a new section in the Manual
[ ] Added a new section in the HTTP API
[ ] Added Swagger examples for the HTTP API
[ ] Updated license information in LICENSES-OTHER-COMPONENTS.md for 3rd party libraries

External contributors / CLA Note
Please note that for legal reasons we require you to sign the Contributor Agreement
before we can accept your pull requests.

Jenkins:
http://jenkins.arangodb.biz:8080/job/arangodb-matrix-pr/12574/
All Blue


Any desire to update the React component + testing?

Cute project! I took a look at the React component and testing and I was wondering if you had any interesting updating it to be a functional component with hooks and to update the testing to use jest and snapshot tests?

Unfortunately, I don't really have time to do it, no. If you or someone else would be willing then I'd accept a pull request!

I'll take a stab at it myself! Cheers!


Force to pull docker build image to regenerate PulsarApi.java generat…

…e_protobuf_docker.sh
Motivation
Force to use the latest apachepulsar/pulsar-build image found in DockerHub.

retest this please

retest this please


Fix #652 - Change Spelling of author in README.md

Pull Request
What does this PR do?
Fixes #652

Changes spellings of au{hor to author
Minor formatting changes in Markdown

PR checklist
Please check if your PR fulfills the following requirements:

[x] Does this PR fix an existing issue?
[x] Have you read the contributing guidelines?
[x] Have you made sure that the title is accurate and descriptive of the changes?

Would also be happy to fix the relevant doctest, if need be. Thanks!

bors merge

Thanks again for contributing with Meilisearch :heart:
If you are participating in Hacktoberfest, and you would like to receive a small gift from Meilisearch too, don't forget to fill this form.


Fix if condition

With current if statement if not excluding:, Truvari only logs a message "Excluding 0 contigs present in comparison calls header but not base calls." when excluding is an empty set. By changing the if statement to if excluding:, Truvari logs a meaningful message when there are contigs excluded.

Looks good. Thank you for your contribution!


Fix the test to expect polymer anchor button text being encoded and capitalized.

Awesome thanks for updating this!  Hopefully, this will save us from having to manually QA new releases.

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from the review on Reviewable.io

:+1:

Review status: :shipit: all files reviewed at latest revision, all discussions resolved, all commit checks successful.

Comments from the review on Reviewable.io


panicked at 'already borrowed: BorrowMutError' in wasm-bindgen futures

I'm running into an error where the workerd runtime is causing wasm-bindgen to panick.
https://github.com/rustwasm/wasm-bindgen/issues/2562#issuecomment-1374923064
it's a bug that i can consistently reproduce on a specific route when using the rust wasm workers
according to the comment, apparently the cloudflare workerd runtime has different behaviour to the browsers runtime leading to the bug
the bug can also be ran into when serving a large amount of requests, aka load testing
i don't really know how to debug workerd to fix the issue, but it's a really annoying one that's stopping me from using workers in production
Error
    at __wbg_new_abda76e883ba8a5f (shim.js:415:19)
    at console_error_panic_hook::hook::h36ed105c675de4f7 (wasm://wasm/00f1df7a:wasm-function[1750]:0x181a6e)
    at core::ops::function::Fn::call::h9f9f084f27f78c00 (wasm://wasm/00f1df7a:wasm-function[6876]:0x2046af)
    at std::panicking::rust_panic_with_hook::had8acafc277b06ff (wasm://wasm/00f1df7a:wasm-function[2361]:0x1a7e35)
    at std::panicking::begin_panic_handler::{{closure}}::h1f07988bb2cf1601 (wasm://wasm/00f1df7a:wasm-function[2952]:0x1c3341)
    at std::sys_common::backtrace::__rust_end_short_backtrace::h9b10ea262b3bcf96 (wasm://wasm/00f1df7a:wasm-function[5362]:0x1fb990)
    at rust_begin_unwind (wasm://wasm/00f1df7a:wasm-function[4162]:0x1e79aa)
    at core::panicking::panic_fmt::h0498752af691fa0d (wasm://wasm/00f1df7a:wasm-function[4988]:0x1f6b8e)
    at core::result::unwrap_failed::hff7d8a43159e0958 (wasm://wasm/00f1df7a:wasm-function[3151]:0x1cacfc)
    at wasm_bindgen_futures::task::singlethread::Task::run::hdda06db3adb32b62 (wasm://wasm/00f1df7a:wasm-function[2200]:0x19f0be)

I have a reproduction of the panick, albeit not a simplified one.
git clone https://github.com/samdenty/github-icons
cd api
wrangler dev

Once it prompts, turn on local mode by pressing L.

Then in postman fetch the URL http://<IP_ADDRESS>:8787/facebook/yoga (if you navigate to it in chrome, it won't work as it'll try to redirect to homepage).

 This warning occurs when attaching a catch handler to a promise after it rejected. (rejection #1)


Use associative array key type for entity collection ids

The previous type: Object is too broad, thus not compatible with the associative array key: String|Number.
As a side note, I noticed the documentation is broken: click on the link to the source code of https://cesiumjs.org/Cesium/Build/Documentation/EntityCollection.html#getById and you will get a 404 error.

@gberaudo, thanks for the pull request! Maintainers, we have a signed CLA from @gberaudo, so you can review this at any time.
I noticed that CHANGES.md has not been updated. If this change updates the public API in any way, fixes a bug, or makes any non-trivial update, please add a bullet point to CHANGES.md and comment on this pull request so we know it was updated. For more info, see the Pull Request Guidelines.
I am a bot who helps you make Cesium awesome! Thanks again.

Hi @gberaudo, thanks for the pull request!
According to  the Entity.id docs, id should be a string exclusively.
Would you also mind updating the docs for the other EnityCollection functions that take an id as a parameter, likegetById(id)?

Thanks for fixing the documentation links.
Sure, I will look at this.

I looked at other places and only found an issue in CompositeEntityCollection, which is now also fixed.

Thanks @gberaudo! Can you also update CHANGES.md? Once that's done this is ready to go.

OK @ggetz, done.

Thanks @gberaudo !
@pjcozzi This is ready to merge.

Thanks @gberaudo @ggetz!


API Proposal: Set individual buffers for planar output

My current idea for this is to add enum JxlColorPlane with values like ALL, RED, GREEN, BLUE, LUMA, EXTRA etc. JxlDecoderSetOutputBufferPlane would be added as a function similar to JxlDecoderSetOutputBuffer (and similar things for the callback functions), but it would accept an extra enum JxlColorPlane as an argument. The ALL plane would request packed/interleaved output pixel data, whereas RED, GREEN, or BLUE could be requested for RGB data, LUMA would be used for grayscale (or perhaps for YCbCr), and EXTRA for extra channels (you'd need some way to specify extra channel index or type). Setting nonsensical combinations should result in an error, i.e. asking for RED on a grayscale image, or asking for RED and ALL at the same time on any image.
This proposal doesn't discuss the ordering of packed/interleaved RGB pixel data - that will need a different API. Thoughts?

I was thinking that if we add a new function for this, it could address both the ordering and single plane case. The function would take JxlPixelFormat, which has num_channels, and an array of JxlColorPlane which is num_channels long. In this case we would not need ALL, but we can have RED, GREEN, BLUE, LUMA, ALPHA. For the other extra channels we already have the JxlDecoderSetExtraChannelBuffer which takes an index.


feat: Add attachment name to Name tag as suffix

Description
Module creates server TWG attachments and all with the same var.name in Name tag. A small improvement might be to add an attachment name as a suffix to Name tag.
Breaking Changes
I'm not sure if changing existing tags is a breaking change or not. At least the common name might be added to var.tgw_vpc_attachment_tags if new style is not acceptable by someone.
How Has This Been Tested?

[x] I have updated at least one of the examples/* to demonstrate and validate my change(s)
[x] I have tested and validated these changes using one or more of the provided examples/* projects

[x] I have executed pre-commit run -a on my pull request

/reopen


AKS provisioning extension

Summary
Fixes #8965
Pre-existing AKS bug fixes/feature requests also covered by this move:
#6071
#7913
#9416
#9433
#9526
#9525
#8713
#3412
#8750
#6879
Occurred changes and/or fixed issues
This PR re-creates the aks cluster provisioning flow in vue. Functionality should largely be the same.
Technical summary
This PR adds AKS prov as an extension. We already have some RKE2 extension points, but this is a slightly different use case, where we want to replace the entire provisioning form. I've added a mechanism for an extension provisioner to provide its own form component, because this seemed the most straightforward way of keeping routing to/from this aks form consistent with the rest of cluster provisioning.
Areas or cases that should be tested
AKS Provisioning generally...
Unlike in ember the credential and region can be changed without re-doing the whole form so it's probably a good idea to play around with that and verify that the ux generally makes sense.
Areas which could experience regressions
The logic used to determine when an ember page is shown for various cluster types was touched, so verifying that other cluster types still load the ember creation form when expected would be good
Known issues

The vm size dropdown loads terribly. This is a bug with LabeledSelect, being tracked in #9668
The upstreamDiffbrought over from ember has a known bug around deleting items from arrays: #6879 this will be covered in a subsequent PR
This code needs tests! I think I've written the main AKS form component in such a way that tests can be written without supplying actual AKS creds. I'm working on them today/next week, but I wanted to put up the PR anyway because it's going to take time to review. But if reviewers want to wait for me to add tests, my feelings wont be hurt.

Screenshot/Video
https://github.com/rancher/dashboard/assets/42977925/76d35511-5ac9-42c3-a79c-78a33c4d20d4

there's some weirdness when the user tries to create credentials (double footers) when on the page
haven't tried this, but what happens when there's no credentials to start with?

I believe I've fixed any wonkiness with credentials: the flow should match rke2 behavior now.

the old ui splits Cluster Location (now Region) into two buckets - HA and Other. if the user selects one from Other ...

they get a warning No availablity zones are available for the selected region. For the most resiliency it is recommended to select a High Availablity region. (just noticed the spelling mistakes)
the node pools Availability Zones are disabled

Nice catch, I completely missed this: on my setup the region dropdown auto-scrolls right past the first header. Sadly, this list has to be hard-coded. I've brought in an updated list from Azure docs. I added some validation around this as well. The default node pool spec includes availabilityZones; I've changed it to not do so when adding new node pools if the selected region doesn't support them.
https://github.com/rancher/dashboard/assets/42977925/6a6bcc26-5b08-497f-b26b-e9ec628a1c6e

cluster resource group and node resource group had some really useful tooltips

Network Policy had a tooltip Azure Network Policy is only available when Azure CNI is selected as the Network Plugin

the azure network policy is disabled if network plugin is not azure cni
setting network policy and then network plugin --> then changing network plugin from azure cni resets network policy to none. there might be some autoselecting of the checkboxes below as well

Project Network Isolation should be disabled if there's no policy (there's a tooltip as well)

https://github.com/rancher/dashboard/assets/42977925/3f83786d-c713-45fb-ace3-24494ecc67ec

checking Enabled Private Cluster shows a warning AKS private clusters is an advanced use case which requires to be running on the same NAT as the AKS nodes. Before enabling private clusters ensure you have read through the <html link>AKS cluster provisioning</link> docs for instructions on configuring AKS so nodes may communicate with .

(my custom private label right now is 'abc')

Node Pools

Mode - Primary Pool - System has been dropped. Was this ever editabled?

Previously it was impossible to remove the first node pool, which seemed to be an arbitrary restriction set by the UI and requested gone, https://github.com/rancher/dashboard/issues/6071 . Now you can remove the first node pool, but you do need at least one 'system' pool so I added validation:
https://github.com/rancher/dashboard/assets/42977925/6fca1a9d-393e-4ae4-a06e-359148557b99

* Taint key value pair in old ui had a small message `Taint must be unique by key and effect pair.`. Looks like it doesn't validate this, just warns

Comment Only. Each expandable section had a brief intro to content. Think all were superfluous though

I discussed this with Ken when we were talking about the accordions more generally. Those subheaders don't include useful information the overwhelming majority of the time so we've opted to leave them out entirely.

There was an optional Description input field in the old ui
The location of the Add Cluster Member modal when Adding a Cluster Members shows up half way down the screen

Could this go into a separate issue? That component is also used in rke2 and I see the same behavior from it there.

UX Wise

Could we show the expandable sections in tabs (though this could be phase 2). If not could there be a smidge more vertical spacing?

Ken is generally opposed to increased tabification - I've added more spacing around the accordions.

Node Pools

The input fields for Enable Auto Scaling input fields appear underneath the others, and feel kinda disjointed. Can these all be on a single new row?

Do you mean something like this?
https://github.com/rancher/dashboard/assets/42977925/c780e390-d259-4b99-b7e7-d46dc164e7c1

Adding a Taint and changing the Effect will cause the input field widths to jiggle about a bit

https://github.com/rancher/dashboard/assets/42977925/2bc1b121-69d3-45be-a669-814532795807

Taints expandable section had a useful description that's been lost Taints mark that the node should not accept any pods that do not tolerate the taints.. Grammar wise it's not quite right, but would be good to have similar/same in the new UI.
Similar to above, Labels has Configure labels for all nodes in this Node Pool. 50:50 on this. might be useful to remind user they apply to all nodes, rather than it's labels for the node pool resource itself?

I thought both of these were kinda just there to have something in the accordion subheader. There's a lot of that going on in the UI. I left them out as we're not using them in RKE2 and a taint is a standard kubernetes concept/easily googled

Network Plugin of Kubenet should hide (and clear?) virtual network, kube service address range, kube pod address ranve, kube dns service address and docker bidge address inputs

There was a request to expand kubenet functionality: https://github.com/rancher/dashboard/issues/8750

the node pools Availability Zones are disabled
a red warning is shown, but the AV component can be interacted with

This input should become disabled if the user clears out any selected availability zones. I didn't want the availability zone selections to be automatically cleared upon selecting a region without support, particularly since they may be configured on a nodepool that isn't currently being displayed. I also didn't want to force the user to switch back to an AZ-supportive region in order to clear out their AZ selections.

Edit Cluster
the old flow let the user select the credentials again. not sure if these where then associated with the cluster, were just >used in that context or were ignored because it used the same flow as create

Interestingly, the credential is used in the aks configuration, but it seems you can change it on an existing cluster.

It's possible to create creds with no name. Do we care about this?
I don't think so; this was done intentionally (metadata.generateName is set in the cloud cred component). It's consistent with the UI as well.

In the old ui when Network Plugin Azure CNI is selected and the 5 additional input fields are shown, 3 of them start off with values. They match the examples, should they be defaults in the new UI?

I checked how this works when creating an AKS cluster directly in the azure portal, and these defaults are also set there. Since we're now allowing these fields to be set when kubenet is selected, I verified that the cluster seems to provision fine with these default values + kubenet plugin.

Member Roles had a warning Note: Removing User will not remove their project permissions
I think this is trying to say removing a cluster role will not mean users lose project/namespace roles (and therefor can still see cluster)?

This component is used across provisioning so I'd rather track any changes specific to it in another issue if you're amenable

Edit Cluster
edit name?

I thought it was weird but this works in the old UI so I included it, didn't want less functionality here than in the old UI. <norman cluster>.aksConfig.clusterName wont change, but <norman cluster>.name can be edited.

Mostly resolved, but i saw AV Zone is still kept over nav away --> back.
To Test
Think this might be something to do with the way vue reuses the component? Might be fixed with a :key

This seemed to be related to how I was setting default values on the norman cluster. Should be good now

Create Cluster with a cluster member --> there's one request to /v3/clusterroletemplatebindings which fails with missing clusterId param. there's no request to create the cluster.

This worked and then I broke it while refactoring slightly to get rid of a linting error! Good job you retested.

This PR should also cover a newly-filed issue: https://github.com/rancher/dashboard/issues/10125

I saw weirdness bringing up a cluster in UK South

it might be something related to using 1.26, and/or multiple nodes
i could bring up a single node 1.27 cluster in both East US and UK South
in your testing did you try a zone with AV zone support other than East US, old kube version, multiple nodes, etc?
do you know if zones have different config requirements?

What sort of weirdness did you see? I'd only tested US regions iirc but I've just tried to bring up a few in UK South and they all succeeded:
(all in zones 1 2 3, default vm size Standard_DS2_v2)

1 pool with 2 nodes, 26.10
2 pools with 1 node each, 26.10
1 pool with 1 node, 26.10
2 pools 2 nodes each, 1.27.7 <-- this one flashed an error faster than I could read it but ultimately provisioned

I doubled-checked both the azure docs and the process of creating an aks cluster through the azure portal directly and I didn't see any special requirements for availability zones.

Tried creating a cluster, UK South, AV Zone 1, multiple roles assigned to a non-admin member. The cluster create succeeds but the 3 additional cluster role bindings fail with 404s

I've tried a bunch of times and I haven't been able to repro this, but I hit an issue adding cluster members as a standard user that I think is the same underlying problem. The error message in your screenshot is indicating that the namespace we expect to be created in the local cluster when a norman/mgmt cluster is created doesn't yet exist. In RKE2 provisioning, we wait for the management cluster to exist in the store before attempting to save CRTBs...we don't do that in this context because we're waiting for the norman cluster to save, which is the same underlying resource as the management cluster (right)?
In the Ember world, we wait for the InitialRolesPopulated condition before applying after-save hooks...that seems to resolve my issue adding members as a standard user, and I think given that its the only condition we wait for in Ember, it's probably enough to fix the bug you saw as well...?

Member Roles had a warning Note: Removing User will not remove their project permissions
I think this is trying to say removing a cluster role will not mean users lose project/namespace roles (and therefor can still see cluster)?
Update: Ok, lets track that in another issue. It's an important warning that we should probably be showing in other cases as well

My bad on this one, we do show this message in other cluster provisioning pages, the banner is just added outside the ClusterMembershipEditor component.

My DO is poking me in the eye atm, so i couldn't run the latest changes.
The template change was unexpected, but i think makes sense. The others changes were trivial.
Mash that merge button!

I should have left a comment about that one, sorry: the e2e tests caught a problem on the imported cluster page caused by my previous template change. But as you noted, it was a straightforward fix.


Move internal types to pkg.

Fix #102

Codecov Report

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

@@          Coverage Diff           @@
##           master    #103   +/-   ##
======================================
  Coverage    22.2%   22.2%
======================================
  Files          40      40
  Lines        3499    3499
======================================
  Hits          777     777
  Misses       2684    2684
  Partials       38      38

Impacted Files
Coverage Δ

pkg/upstream/healthcheck/sofarpchealthchecker.go
0% <ø> (ø)
:arrow_up:

pkg/config/parser.go
3.23% <ø> (ø)
:arrow_up:

pkg/config/config.go
12% <ø> (ø)
:arrow_up:

pkg/upstream/cluster/clustermanager.go
0% <ø> (ø)
:arrow_up:

pkg/upstream/cluster/subsetlbimpl.go
82.2% <ø> (ø)
:arrow_up:

pkg/router/types.go
9.52% <ø> (ø)
:arrow_up:

pkg/upstream/healthcheck/sofaheartbeat.go
0% <ø> (ø)
:arrow_up:

pkg/upstream/cluster/cluster.go
22.02% <ø> (ø)
:arrow_up:

pkg/upstream/cluster/resourcemanager.go
0% <ø> (ø)
:arrow_up:

pkg/types/network.go
0% <ø> (ø)
:arrow_up:

... and 13 more

Continue to review full report at Codecov.

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


Batch Credentials endpoint

Batch Credential Request
It seems that the implementation is straight forward, at least for the happy path.
A batch credential request is a container for one or more individual credentials requests.
The same is true for the response.
Considerations:
Given that the batch issuance follows an or all or none approach, there is the unhappy path that while serving a batch request, there are some credentials issued and at least one that fails.
This means that either
a. Issuance of each specific credential should have NO permanent side effects, or
b. Issuance should have some compensation function to immediately cancelled an issued credential.
I believe that (a) cannot be met.
For instance, to fully comply with SD-JWT-VC the issue must add revocation information to the credential which requires the permanent association of the credential to a JWT-CWT Status list, which is a permanent side-effect.

To implement batch endpoint we need to clarify what happens with the response encryption.
@vafeini opened https://github.com/openid/OpenID4VCI/issues/286 to sort this out.

An update
To watch https://github.com/openid/OpenID4VCI/pull/319. It clarifies the credential_response_encryption

It seems that batch endpoint will be removed from VCI specification in a forthcoming draft.
Closing this.


⚠ API - Lens has degraded performance

In 910bdb3, API - Lens ($LENS_API_URL) experienced degraded performance:

HTTP code: 503
Response time: 335 ms

Resolved: API - Lens performance has improved in 8af460f after 9 minutes.