text:
fix(#1698): dropdown width % should respect width container

Before (the change)
Resize browser and width of the dropdown isn't updated.
Bug 1698
After (the change)
https://jam.dev/c/fc041636-9167-40c9-82ae-8fb85a7eaad9
Make sure that you've checked the boxes below before you submit the PR

[x] I have read and followed the setup steps
[x] I have created necessary unit tests
[x] I have tested the functionality in both React and Angular.

Steps needed to test
Code snippet:
 <div style={{width: "80%", border: "2px solid red"}}>
        <GoAFormItem label="Input" requirement="required">
          <GoAInput name="input" placeholder="This is input" width="100%" onChange={onChange}></GoAInput>
          {/*<GoADropdown name="item"  onChange={onChange} width="100%">*/}
          {/*  <GoADropdownItem value="red" label="Red" />*/}
          {/*  <GoADropdownItem value="green" label="Green" />*/}
          {/*  <GoADropdownItem value="blue" label="Blue" />*/}
          {/*</GoADropdown>*/}
        </GoAFormItem>
        <GoAFormItem label="Item" requirement="required">
        <GoADropdown name="item"  onChange={onChange} placeholder="This is a dropdown width 100%" width="100%">
          <GoADropdownItem value="red" label="Red" />
          <GoADropdownItem value="green" label="Green" />
          <GoADropdownItem value="blue" label="Blue" />
        </GoADropdown>
        </GoAFormItem>

        <GoAFormItem label="Item" requirement="required">
          <GoADropdown name="item"  onChange={onChange} placeholder="Normal dropdown">
            <GoADropdownItem value="red" label="Red" />
            <GoADropdownItem value="green" label="Green" />
            <GoADropdownItem value="blue" label="Blue" />
          </GoADropdown>
        </GoAFormItem>
      </div>

when the width of input is changed, it double applied twice
For example, this is 50%

issue is fixed, verified on react and angular

:tada: This PR is included in version 1.17.0-alpha.74 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 4.17.0-alpha.32 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 3.0.0-alpha.5 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

authors: lizhuomeng71 tzuge vanessatran-ddi


text:
Unable to resolve variables under the toml Packages

Brief
When calling LumoData on any .lumo file, the script would stop at line 284 with the error error parsing metadata file ... Unable to resolve the name toml.read.
Setup

Windows 10
Matlab R2020a
Tested on Lumo v0.1.1 & Lumo v0.4.0

Steps to Recreate

Open Matlab & set lumomat as current directory. +lumofile & +lumofile/+toml should automatically be included as part of the directory, make sure to not include anything else.
Type in data = LumoData({Absolute File Directory}) & Hit run.
The script will crash on line 284.

Possible Solutions

Move the ./+lumofile/+toml/ directory to ./+toml/
Replace all instances of toml. with lumofile.toml., including the ones in ./+toml/

I prefer Solution 1, since it's less likely to cause issues when porting over newer versions of ./toml/, & contains less modification of 3rd party packages.

After altering my path I can recreate, thank you @HBaghdadi1995.
Solution 1 is a bad idea because it exposes the package to the MATLAB path, which is why this bug existed in the first place. In this instance it is trivial to resolve by calling only the decode method and prefixing this with the package namespace as required. PR inbound.
This would also be caught by CI but cannot enable until we have generated some appropriate public sample data for this purpose.

source: gharchive/issue

repo: Gowerlabs/lumomat

license: MIT

license_type: permissive

license_source: github-api


text:
cross platform compiling

I noticed that this tool is designed for Windows ONLY.
Considering there may be KanColle players using different systems, will there, by any possibility, be a KanColleViewer for other platforms such as Mac and Linux?

since Microsoft has taken .NET opensource:http://news.microsoft.com/2014/11/12/microsoft-takes-net-open-source-and-cross-platform-adds-new-development-capabilities-with-visual-studio-2015-net-2015-and-visual-studio-online/
maybe we can have a try, change the browser from IE to firefox or chromium

@amazingfate any

@amazingfate any relation between .net open source and using chrome?

@Provissy I mean KCV use IE, but on Linux or OS X an opensource browser is better

They don't support WPF

authors: ElliotZ Provissy amazingfate

license: mit

license_source: bigquery


text:
Update README

Add changeLog mention

fixes #1

source: gharchive/pull-request


text:
move to federated key-server model

From @arnottcr on February 22, 2015 0:32
Most pgp implementations allow for several different key-servers, as pgp has no centralized key-server. I think this can be shelved as a long-term goal, as while it prevents some DOS issues it does not solve apparent user-facing issues, or give a big security bump like pfs.
Copied from original issue: winhowes/grd.me#29

with this there are two methods we can use: inter-federated server synchronization and no-synchronization. both methods have advantages and disadvantages:
synchro) +allows for redundancy, which is one reason for a federated model; -requires global ids across servers [this is a hard problem, without a namespace of non-trivial size]
non-syncro) +each server only keeps up with only its own ids; -this model of federation does not add much redundancy, and requires each reference to be "id@keyserver"
I should have come up with a functional solution as described in https://github.com/winhowes/grd.me/issues/30 that allows for synchro, as to me, this is the reason to have federation.

with this there are two methods we can use: inter-federated server synchronization and no-synchronization. both methods have advantages and disadvantages:
synchro) +allows for redundancy, which is one reason for a federated model; -requires global ids across servers [this is a hard problem, without a namespace of non-trivial size]
non-syncro) +each server only keeps up with only its own ids; -this model of federation does not add much redundancy, and requires each reference to be "id@keyserver"
I should have come up with a functional solution as described in https://github.com/winhowes/grd.me/issues/30 that allows for synchro, as to me, this is the reason to have federation.

repo: GrdMe/GrdMe


text:
🛑 Server Gaming is down

In 9c134c2, Server Gaming (https://game.greathost.ro) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Server Gaming is back up in 090b68a after 2 minutes.

repo: GreathostRo/upptime


text:
🛑 Server Ultra is down

In 1df2dff, Server Ultra (https://ultra.greathost.ro) was down:

HTTP code: 403
Response time: 1653 ms

Resolved: Server Ultra is back up in e5ca84d after 9 minutes.


text:
🛑 Server Ultra is down

In 6d49e81, Server Ultra (https://ultra.greathost.ro) was down:

HTTP code: 403
Response time: 1048 ms

Resolved: Server Ultra is back up in bcc151f after 7 minutes.


text:
Design a generic interpolation plugin

what
Create a generic interpolation plugin destined to live in if/plugins.
why
We prefer to maintain generic plugins to do arithmetic operations rather than plugins that are hardcoded with parameter values for specific use cases. Specific use cases are then served by combining arithmetic plugins, passing in appropriate values. This makes things much more flexible, configurable and maintainable. This specific plugin is intended to support the deprecation and removal of our teads-curve plugin. Instead of having a plugin just for that specific curve, we can provide a generic interpolation plugin and pass in the known x and y values representing the curve.
Note that to fully replicate the teads-curve plugin the interpolate plugin will have to be part of a pipeline with multiply and divide plugins too.
Acceptance criteria

[ ] The plugin should support linear, spline and polynomial interpolation methods.

Linear interpolation is a method of estimating values that fall between known values. It involves determining the value at a point on a straight line between two known points of curve fitting using linear polynomials to construct new data points within the range of a discrete set of known data points.

Polynomial - Polynomial interpolation involves fitting a polynomial function to a set of data points. We intend to use Lagrange's interpolation. Higher-order polynomials can capture more complex relationships but have over-fitting risks.

Spline - Spline interpolation uses piecewise-defined polynomial functions (usually low-degree) to interpolate between data points. A spline consists of multiple polynomial segments, often cubic, that are smoothly connected at specific points. Splines provide a balance between flexibility and smoothness, making them suitable for approximating functions with complex variations.

[ ] The plugin should accept the following global config:

method - Specifies the interpolation method for the data. Acceptable values are 'linear', 'spline', or 'polynomial'. The default method is linear. (optional)

x - Array of points. Numbers should be in ascending order (required). (In the old version the points are hardcoded: [0, 10, 50, 100]. Could it be optional to support the same hard-coded values?) (can it be in node-config ?)

y - Array of numbers. Numbers should be in ascending order (required)

input-parameter - a string defining the name to use its value to calculate the interpolation. It should match an existing key in the inputs array.

output-parameter - a string defining the name to use to add the result of interpolation with additional calculation

[ ] the plugin should validate that the lengths of x and y are equal

[ ] The plugin should accept the following data from inputs:

timestamp -  a timestamp for the input  (required)

duration - the amount of time, in seconds, that the input covers.  (required)

input-parameter - a field whose name matches the string provided to input-parameter in global config (i.e. if the input-parameter in global config is cpu/utilisation then cpu-utilisation must exist in the input data)

[ ] The plugin outputs a value z that is the result of looking up the y value at x = input-parameter using the user-defined interpolation method. z is assigned to a field with a name defined by output-parameter in the output data.

[ ] Unit tests have been added to the builtin repository

the unit tests accompanying the feature code should have 100% coverage.

[ ] Documentation has been added in the form of a feature README and linked out from if.greensoftware.foundation

Example Manifest
name: interpolation-demo
description: simple demo of interpolation plugin
tags:
initialize:
 plugins:
   interpolation:
     method: Interpolation
     path: "builtin"
     global-config:
       method: linear
       x: [0, 10, 50, 100]
       y: [0.12, 0.32, 0.75, 1.02]
       input-parameter: “cpu/utilization”
       output-parameter: “interpolation-result”
tree:
 children:
   child:
     pipeline:
       - interpolation
     inputs:
       - timestamp: 2023-07-06T00:00
         duration: 3600
         cpu/utilization: 10

Executing this manifest should yield the following result:
name: interpolation-demo
description: simple demo of interpolation plugin
tags:
initialize:
 plugins:
   interpolation:
     method: Interpolation
     path: "builtin"
     global-config:
       method: linear
       x: [0, 10, 50, 100]
       y: [0.12, 0.32, 0.75, 1.02]
       input-parameter: “cpu/utilization”
       output-parameter: “interpolation-result”
tree:
 children:
   child:
     pipeline:
       - interpolation
     inputs:
       - timestamp: 2023-07-06T00:00
         duration: 3600
         cpu/utilization: 10
    outputs:
       - timestamp: 2023-07-06T00:00
         duration: 3600
         cpu/utilization: 10
         interpolation-result: 0.12

Note on teads curve
The interpolation described in the example above gives the y value from the Tead's curve for any given x value. We pass in cpu/utilisation as an x value and receive the appropriate y. The y value is a scaling factor that should be multiplied by the cpu/thermal-design-power to yield cpu/energy. You may also want to scale the result by the ratio of allocated and total vcpus. Doing all these steps together replicate the existing teads-curve plugin, but only the interpolation part is in scope for this plugin.

Here is the specification doc of the plugin. I've attempted to compose a comprehensive document so anyone who can read it can implement it.
@jawache and @jmcook1186 could you please take a look to verify if this is the correct behavior of the plugin?
https://docs.google.com/document/d/1j6VqeB4ibhf0Hp0UxsLL_k8uSD6qXh4eCXzzkEa-ees/edit?usp=sharing
cc: @narekhovhannisyan @MariamKhalatova

Thanks @manushak
I forgot that the teads curve plugin does a lot more than just interpolation 😞
It also multiplies by the TDP and then scales by the VCPUs.
I think we need to solve this by breaking this up into  a pipeline like so

interpolation
total-cpu-energy (generic multiply by tdp)
used-cpu-energy (generic divide or multiply by VCPUs avail/used)???

We could call it the "teads-pipeline" or just CPUenergy pipeline.
That's the only way this interpolation plugin is generic enough to justify being a built-in.
If we do the above then the names of the input and output parameters needs to be configurable in global config and you could use interpolation with anything, not just utilisation etc ...
@manushak would the pipeline above work? I have a suspicion they don't work like I wrote above.

@jawache This new interpolation plugin performs the calculation you mentioned: it calculates interpolation using a specified method, multiplies by the cpu/thermal-design-power if provided, then multiplies the result by the duration and divides by 3600 to get seconds in an hour. After that, it divides by 1000 to get kilowatt-hours (kWh). If vcpus-total and vcpus-allocated are provided, the result is multiplied by their division. Does this calculation seem correct to you?
I'm considering making general input and output parameters. I'll update the specification doc and inform you to verify.

@jawache I've updated the spec doc, could you please verify it? (it is very massive, which is why I don't write here)
https://docs.google.com/document/d/1j6VqeB4ibhf0Hp0UxsLL_k8uSD6qXh4eCXzzkEa-ees/edit?usp=sharing

Hi @manushak I just read through the spec docs - this is pretty much what I had in mind for this - thanks!
I'll take your doc and use it to update this issue for you to work against when you are reallocated to IF (unless a contributor gets to it first ;o) ).
It makes sense to me that this plugin only does the interpolation and replicating teads requires some additional steps in a pipeline.

This is ready but will be parked for a while until @manushak can return to this project

@jmcook1186 i also suspect we can't replicate the rest of a teads-like pipeline without some more work on generics (multiply a parameter by the ratio of VCPUs total and reserved)

@manushak please check your PR still conforms to the issue requirements (they changes after your original PR was raised)

@manushak please check your PR still conforms to the issue requirements (they changes after your original PR was raised)

There are small changes to make. Currently, I'm working on it, after that I'll rise  a PR

authors: jawache jmcook1186 manushak zanete

repo: Green-Software-Foundation/if


text:
Add passwordless email

This introduces the passwordless auth as described at the link below:
https://github.com/aaronn/django-rest-framework-passwordless
Send a POST to the auth/email endpoint like so:
requests.post("http://localhost:8000/auth/email/", {"email": "user@domain.com"})

It'll trigger an email. You can see the email sent, if use mailhog locally/
This gives the token to use, for posting to the next endpoint. you'd typically this with a form-encoded payload like so:
res2 = requests.post("http://localhost:8000/auth/token/", {"email": "wave+local@chrisadams.me.uk", "token":"862471"})

The response will be a token, which can be used for auth:
{"token":"b51c4e2c94f92a56cdc24d8310047fd7c06327eb"}'

The fastest change I can think of here would be to have the signin screen page allow a user to send an email, and then allow them to either:

enter the number emailed,
or cancel the request

when the number is submitted, we store the token, and router.push to 'home'

repo: Greening-Digital/constellate


text:
Updates for specific device configuration and multi network interfaces

This PR adds the ability to specify and name devices by address and to customize the timeouts for the search of devices.
It uses a fork of pydreamscreen - I am preparing a PR on that repo.

@fabbarix Thanks again for doing the changes!  I'll be sure to check them out here soon when I can get my TV and everything unpacked.

authors: GregoryDosh fabbarix


text:
feat: add copy to clipboard button for status info

After implementing the status endpoint I thought that it might be handy to have a "copy to clipboard" status information. It can simplify the sharing process of that info between the team and customers.
Attaching the screenshots with my proposal

Refer to a related PR or issue link
https://github.com/GreptimeTeam/greptimedb/issues/1650
https://github.com/GreptimeTeam/greptimedb/pull/1789
https://github.com/GreptimeTeam/dashboard/pull/283
@alili @killme2008 @waynexia
please let me know what you think?

I like it 😍 Maybe @alili have some UI suggestions

Hi, @etolbakov! Thanks a lot for your contribution! We are currently working on a new project so we might be a little late on the feedback. Sorry about that...
As for 'copy to clipboard', you could check out this Arco Design component we are using. One component file text-copyable.vue is also in our dashboard repo. I wrote that last month, but haven't implemented it yet. If you want, you could take a look.
Have a nice day!

@ZonaHex
Thank you very much for the tips. I've addressed both of your comments. Please find the screenshots below

a-empty

Arco Design component

I believe a bit more styling is required for the copy icon.
Could you please take a look when you have time?

Hi Eugene @etolbakov ! Sorry for the late reply...
Reviewing your code, I realized I didn't push the text-copyable.vue file to the main branch as I said. Sorry again for my negligence.
I made some adjustments to your branch, added a new file and edited styles. I removed the networkTime and startTime from the status API, because I think users don't need to know this. Perhaps you have a different opinion? Please take a look and let me know what you think.
Good day!

Hello @ZonaHex !
Thanks you very much for the review!
Absolutely no worries, I appreciate you are very busy with other priorities.
Ahh.. now it makes sense why I haven't found text-copyable.vue 😅 I thought it maybe in another branch or so.. no problem.
I'll share my feedback by the EOD.
Thanks!

@ZonaHex
I've just looked at the change - it's amazing! Thank you very much for helping me with the "last mile"!
Could you please merge the PR when it's appropriate?

authors: ZonaHex etolbakov waynexia

repo: GreptimeTeam/dashboard


text:
docs(dev-guide): update distubuted querying

What's Changed in this PR
Update the dev-guide/frontend/dist-query chapter
Checklist

[ ] Please ensure that the content in summary.yml matches the current document structure when you changed the document structure.
[ ] This change requires follow-up update in localized docs.

Cloud you please add the zh doc?

I'd like to fix the English version first. cc @MichaelScofield @killme2008 PTAL

authors: nicecui waynexia

repo: GreptimeTeam/docs


text:
Query very large dataset by grpc server streaming

What problem does the new feature solve?
Though unusual (and not recommended), sometimes user just want to query very large dataset. However, now the "big" queries are often resulted in timeout. The problems maybe reside in that huge volume of data are waiting to be gathered inside GreptimeDB, or the large amount of network/hard disk IO costs.
Similar issue: https://github.com/GreptimeTeam/greptimedb/issues/2223
What does the feature do?
Make querying very large dataset do-able, by featuring GRPC server streaming. Inside GreptimeDB, the results of queries are all streams. So we may create a GRPC interface to poll(adapt) that stream.
Implementation challenges
No response

Need some help.
The origin *.proto may need to be modify
service GreptimeDatabase {
  rpc Handle(GreptimeRequest) returns (GreptimeResponse);
  rpc HandleRequests(stream GreptimeRequest) returns (GreptimeResponse);
}
...
message GreptimeResponse {
  ResponseHeader header = 1;
  oneof response { AffectedRows affected_rows = 2; }
}

to support stream, we may modify it like this?
service GreptimeDatabase {
  rpc Handle(GreptimeRequest) returns (stream GreptimeResponse);
  rpc HandleRequests(stream GreptimeRequest) returns (stream GreptimeResponse);
}
...
message GreptimeResponse {
  ResponseHeader header = 1;
  oneof response {
    AffectedRows affected_rows = 2;
    ARowInQueryResults row = 3;
  }
}

Insert and delete still work, and query result will be return as a stream.
But if we do so, the query response header will be sent multiple times.

@MichaelScofield Could you provide more information such as codes that need to be modified for this issue?
I remember that we are using Arrow Flight service for handling requests from clients, which is already streaming.
https://github.com/GreptimeTeam/greptimedb/blob/bba3108e0d1e8fc8d042dfd821c7c78dd33d0ac3/src/client/src/database.rs#L287-L294

The query is not defined in the *.proto file you mentioned above @YCCDSZXH. We are using Arrow Fligth to define query services, more specifically, the doGet method:
https://github.com/apache/arrow-rs/blob/11450ae8ddf902b57cb42491a3d824d9550a05ea/format/Flight.proto#L108
Which returns a stream as proposed

@YCCDSZXH Sorry this issue is a little outdated, we decide not to let GreptimeDatabase handle query requests. The QueryRequests are used in Arrow Flight service, and it's already streamed. I'm gonna close this issue, you are welcomed to take these two related issues instead: https://github.com/GreptimeTeam/greptimedb/issues/3799 and https://github.com/GreptimeTeam/greptimedb/issues/3798

authors: MichaelScofield YCCDSZXH evenyag waynexia

repo: GreptimeTeam/greptimedb


text:
feat:add check port before start sqlness test

I hereby agree to the terms of the GreptimeDB CLA
What's changed and what's your intention?
add check port before start sqlness test
Checklist

[ ]  I have written the necessary rustdoc comments.
[ ]  I have added the necessary unit tests and integration tests.

Refer to a related PR or issue link (optional)
https://github.com/GreptimeTeam/greptimedb/issues/1602

Thanks! Please fix the format issue by running rust fmt and I'm ok to approve it.

@waynexia Hi,I have removed the redundant check_port,but there are still somethings confused me,As we did in the second check_port,we use stop_server,i understand it as killing zombie process(although this check_port will never run),and my doubt is that if the spawn() return error,will it cause zombie process?if it is,should we handle the zombie process?and how to?😥

For the port unavailable case, our program will terminate by itself. We only need to check the result of Command to make sure the process is running rather than being terminated. For other cases we need to kill it by stop_server.

For the port unavailable case, our program will terminate by itself. We only need to check the result of Command to make sure the process is running rather than being terminated. For other cases we need to kill it by stop_server.

thx!what can I do for this feat next?Is it done?😳

test failed, can you fix it?

test failed, can you fix it?

i will


text:
feat: support drop database procedure for standalone

I hereby agree to the terms of the GreptimeDB CLA
What's changed and what's your intention?
This PR implements CreateDatabaseProcedure for standalone.
Checklist

[ ]  I have written the necessary rustdoc comments.
[ ]  I have added the necessary unit tests and integration tests.

Refer to a related PR or issue link (optional)
Part of #825.

To ensure thread-safe, it is necessary to lock both the catalog and schema because there can be cases where non thread-safety occurs. Let's consider a case where CreateTableProcedure and DropDatabaseProcedure run concurrently, and the issue occurs by the following order.

CreateTableState::EngineCreateTable (Create a new table.)
DropDatabaseState::EngineDropAllTables (We can't remove the new table since DropDatabaseState doesn't lock the new table name. DropDatabaseState can't know the new table name.)
DropDatabaseState::RemoveFromCatalog (Delete the schema, but mito still has the new table name.)
CreateTableState::RegisterCatalog (This step should fail since the schema doesn't exist. But mito still has the new table name.)

Improve performance
It is inefficient to lock a schema. To improve the performance, I guess a solution would be to have DropDatabaseProcedure acquire a write lock for the schema, and have other Procedures acquire a read lock for the schema.

In my local environment, cargo fmt --all -- --check passed.

@NiwakaDev Dropping all tables synchronously is slow. After discussing with @fengjiachun, we came up with the idea that we can implement this feature by marking the database as deleted first.

Marks the database as deleted. (Move the database metadata key to a deleted key space). Then users can't send requests to this database.
Closes all tables. We can return responses to users after that.
Releases spaces occupied by these tables asynchronously.

Thus we don't need to implement a complicated lock mechanism. I plan to close this PR and update the issue.

Sorry for the delayed response.

we came up with the idea that we can implement this feature by marking the database as deleted first.

I see. I'd like to try to implement this. If you don't mind, I'll implement this for standalone mode.

@evenyag

Marks the database as deleted. (Move the database metadata key to a deleted key space). Then users can't send requests to this database.
Closes all tables. We can return responses to users after that.

Even though we choose this approach, I guess that we need to lock the schema and the catalog so that users can't send requests.
But, do you mean there is no problem because closing all tables is faster than dropping them?

After step1 new requests won't be able to see the deleted database as we have "removed" the database from the metadata. You could consider step 1 soft delete the database.

If you don't mind, I'll implement this for standalone mode.

Some details still need further discussion. We also need a common service to remove files marked as deleted or not tracked by manifests but we still need some time to design. I'll update the issue once we have a clear solution for it. Feel free to pick some tasks to do at that time.

authors: NiwakaDev evenyag


text:
Some PIWEBAPI server not showing the full path of element

Hello All.
We started to use the datasource plugin with 4 API Servers for some reason i can only navigate trough elements in one of them. The configuration are the same and the user has correct access using PI explorer.
This is the positive case (where works)

In a second datasource (different server) the behaviour above not happen. I tried to make a API get call using XH and it works from terminal, eliminating a possible firewall block.
I also tried to downgrade to 4.1 version without success either.
Some help?

If you want to use different AF Server/Database leave the configuration below empty:

You can also check the web browser developer console/network to catch any additional error.

If you want to restrict access to only one AF server or Database, fill the configuration with the appropriate values.

It works! Thanks a lot Paulo!
The docs lead me to set the servers for my connections.

I think that docs could be more specific about que configurations.

Documentation is still an item to be worked on.

How can I help?

You can create a PR with updated documentation (README.md)

authors: EduMoura-ONS coderReview


text:
Update stable version in repo from 2.0.3 to 3.0.2

Think about update stable version to 3.0.2
Version: stable=2.0.3 (194 days old) => latest=3.0.2 (15 days old)
Installs: stable=298 (56.55%), latest=72 (13.66%), total=527
Click to edit

Will skip V3.x and update to V4.x

authors: GermanBluefox Grizzelbee


text:
Unreachable node gets selected everytime causing TTL exhausted

Summary
We have a redis cluster that runs on kubernetes, after one of our nodes crashed the StatefulSet created a new pod rendering the POD IP  of the redis node unroutable. The redis-py client was for some reason unable to obtain the new state of the cluster and we see a lot of TTL exhausted errors.
Even if the dead unroutable redis node is selected, shouldn't it recover the cluster state and remove the dead node from it's list? Instead what we see is all 16 TTL attempts select the exact same node and finally we see a TTL Exhausted error.
[2021-10-01 13:35:36 DEBUG    rediscluster.client TaInZR2tRRDy_Bi3hLmSbw..] - TTL loop : 15
[2021-10-01 13:35:36 DEBUG    rediscluster.client TaInZR2tRRDy_Bi3hLmSbw..] - Determined node to execute : {'host': '10.244.7.123', 'port': 6379, 'name': '10.244.7.123:6379', 'server_type': 'master'}
[2021-10-01 13:35:39 ERROR    rediscluster.client TaInZR2tRRDy_Bi3hLmSbw..] - ConnectionError
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/redis/connection.py", line 559, in connect
    sock = self._connect()
  File "/usr/local/lib/python3.7/site-packages/redis/connection.py", line 615, in _connect
    raise err
  File "/usr/local/lib/python3.7/site-packages/redis/connection.py", line 603, in _connect
    sock.connect(socket_address)
OSError: [Errno 113] No route to host

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/rediscluster/client.py", line 630, in _execute_command
    connection.send_command(*args)
  File "/usr/local/lib/python3.7/site-packages/redis/connection.py", line 726, in send_command
    check_health=kwargs.get('check_health', True))
  File "/usr/local/lib/python3.7/site-packages/redis/connection.py", line 698, in send_packed_command
    self.connect()
  File "/usr/local/lib/python3.7/site-packages/redis/connection.py", line 563, in connect
    raise ConnectionError(self._error_message(e))
redis.exceptions.ConnectionError: Error 113 connecting to 10.244.7.123:6379. No route to host.

[2021-10-01 13:35:36 DEBUG    rediscluster.client TaInZR2tRRDy_Bi3hLmSbw..] - TTL loop : 3
[2021-10-01 13:35:36 DEBUG    rediscluster.client TaInZR2tRRDy_Bi3hLmSbw..] - Determined node to execute : {'host': '10.244.7.123', 'port': 6379, 'name': '10.244.7.123:6379', 'server_type': 'master'}
[2021-10-01 13:35:39 ERROR    rediscluster.client TaInZR2tRRDy_Bi3hLmSbw..] - ConnectionError
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/redis/connection.py", line 559, in connect
    sock = self._connect()
  File "/usr/local/lib/python3.7/site-packages/redis/connection.py", line 615, in _connect
    raise err
  File "/usr/local/lib/python3.7/site-packages/redis/connection.py", line 603, in _connect
    sock.connect(socket_address)
OSError: [Errno 113] No route to host

Why does the client select the dead 10.244.7.123:6379 node every time instead of trying another live random node and then fetching the new cluster state?

Even if the dead unroutable redis node is selected, shouldn't it recover the cluster state and remove the dead node from it's list? Instead what we see is all 16 TTL attempts select the exact same node and finally we see a TTL Exhausted error.

I am guessing here but the issue is probably that your redis-cluster is not booting out the node that you want because this client is coded so that it will only use what the redis server says is the current cluster state, if your node is not booted out it will remain even if the node is not reachable, that is just the reference logic a client should implement.
You probably can verify this by both checking what cluster info, cluster slots & cluster nodes is returning out when a node drops and try to monitor the master nodes how long it takes for the cluster consensus to reach a new consensus that eventually will propagate to all clients.
Also note that if you check the client code in the ConnectionError section here https://github.com/Grokzen/redis-py-cluster/blob/master/rediscluster/client.py#L647 you will see down here https://github.com/Grokzen/redis-py-cluster/blob/master/rediscluster/client.py#L660 that the code shuold attempt a full node table refresh after 5 connection errors and do a full reinitialize of the cluster state and then it circles back to the initial point that your cluster has not reached a new cluster consensus and that is the root cause of your issue.

Thank you so much for your analysis. Apologies for opening an unwanted issue.
This seems to be a cluster problem rather than the client issue.

repo: Grokzen/redis-py-cluster


text:
Does pipeline  execute concurrently  or sequentially ?  and relationship between pipe and redis transaction?

 I wanna use pipe to do multiple read operations like mget .  And I have the two above questions .

By default, pipelines executes sequentially. When a pipeline executes it will still use a pipeline object for each node in the cluster. If you want to run the pipeline in concurrent mode you can use the flag pipeline_use_threads=True to use a experimental feature to run each pipeline for each node with threads. From what i know it works really well.
Transactions is a hard problem to solve because there is several ways of defining a transaction and implementing support for both solutions is very hard because there is several corner cases that needs to be handled for the implementation to work. In short the 2 main options is to have a transaction pipeline across the entire cluster, or that the commands that is sent to each node should be transaction but they are not dependent on each other. So if one of 4 would fail the other 3 would still execute and be commited to redis. Currently i have documented and suggested that transactions is not supported right now and should not be used.
You should really read up on the docs, specially this one https://github.com/Grokzen/redis-py-cluster/blob/unstable/docs/Pipelines.md that describes the problems and my thoughts on the problem and possible solutions.
Regarding MGET in pipelines, it is currently disabled because because if you run MGET keyA keyB keyC keyD and 2 of the keys belongs to 1 node in the cluster and 2 keys belong to another node, i can't just split the command into MGET keyA keyC and MGET keyB keyD and send them off to their nodes and then handle any errors, moved, asking errors that pops up and retry until it either works or fails.
The only somewhat viable solution to this problem would be to take the MGET command and replace that command with a series of GET commands that each fetches the all keys and after execution is done, reassembles the original MGET to make it appear to work. In theory you can already do this yourself manually by having a helper function that you call when you want to run MGET that splits it into multiple GET and puts them on the pipeline stack, but it is not something that will be supported for now.

If that awnsers your questions,  please close this issue. If you find some issue when trying something out, please open a new issue with a description of the problem.

hi @Grokzen #92 , this is my issue,by your answer , when I set pipeline_use_threads=True, all the commands queued on pipe will be sent to their coresponding node in the cluster respectively ? And pipe.executes() will returns only after all the responses arrived ? This is the way I supposed the pipe's behavior to be
my gitter quesion , just for record .

authors: Grokzen ppLorins


text:
Need help to build under Windows

Do I need Qt Creator sources to build this plugin?
I can't understand what Path I should to set on Windows. Now I done it's like:
qmake "QTC_SOURCE=C:\qtcreator_src\src" "QTC_BUILD=C:\qtcreator_src\src\libs"
QTC_SOURCE path looks fine, but what about QTC_BUILD?

I tried to build it, and got next errors: http://img.ctrlv.in/img/15/09/27/560836f90a7ed.png

Unfortunately I don't have any windows machine now and this error tells me nothing. As far as I remember I didn't use any platform dependent code, so I think that the problem is in build environment. I will try to find windows machine soon. What versions of Qt and QtC do you use?

Qt is 5.5 what is QtC 3.5 if you would able to build it please add bin plugin to repository to get more people to test it, without long building process.

Windows 10 + QT 5.5 can use it? :)

Groterik , can you check your win32 builds on Bintray for this project and the qtcreator dub-manager? Every win32 zip i download is corrupted .. i cannot extract anything.

Yeah, some error while publishing artifacts using dpl under windows. Will continue to investigate tomorrow.

We are waiting for dpl's issue to be resolved.

Dpl issue was fixed and released, so the publisher archives with binaries look good now, I can open them at least. Please check them, if you're still interested in trying this :) Sorry for huge delays here, troubles with spare time as usual.

authors: Groterik bubnenkoff michaelc37 zoujiaqing

repo: Groterik/qtcreator-dlangeditor


text:
could not retrieve gruveo-sdk-android from the repo

hi, i got an error when retrieving gruveo sdk :
Could not HEAD 'https://jitpack.io/org/bitbucket/gruveo/gruveo-sdk-android/0.5.11/gruveo-sdk-android-0.5.11.pom'. Received status code 401 from server: Unauthorized

it happens as well for other version.
is there any change in sdk link ? @tibbi
thanks

you shouldnt need any authorization for it. Previous versions are broken too? Do you see those files at https://jitpack.io/#org.bitbucket.gruveo/gruveo-sdk-android ?

strangely it just works now ( rebuild it , without change ). I guess there was server problem while ago.
Thanks

Hello, we are experiencing this again:
Could not GET 'https://jitpack.io/org/bitbucket/gruveo/gruveo-sdk-android/0.6.5/gruveo-sdk-android-0.6.5.pom'. Received status code 401 from server: Unauthorized

We saw that your developers portal was down yesterday for maintenance (for example this one https://about.gruveo.com/integrations/).. Currently those work but we still experience the same... is it related somehow?

authors: tibbi xaviraol xedixermawan

repo: Gruveo/sdk-examples-android-java


text:
Update dbt_cloud_environment_variable.md

Add a note to title-case environment names. If we don't title-casing the environment names, it can throw a 500 error when we run terraform apply. For eg: if we are setting the environment variables for the Production env, the environment name should also be Production.
Related - https://github.com/GtheSheep/terraform-provider-dbt-cloud/issues/108#issue-1586440179

Hey @subrasub - thanks for this! But these descriptions are set in the resource object, the markdown is then generated from them using make doc, could you update? thanks!

Also, reading your comment, I'm not sure this is clear? Are you just saying the environment names are case sensitive and need to exactly match how the environment is configured?
i.e. Environment name Production can't have env vars under production?

Just tested this out and it works for non title-cased envs too, i.e. staging

authors: GtheSheep subrasub

repo: GtheSheep/terraform-provider-dbt-cloud


text:
Update dependency ts-jest to v28

This PR contains the following updates:

Package
Type
Update
Change

ts-jest (source)
devDependencies
major
^26.5.2 -> ^28.0.0

Release Notes

kulshekhar/ts-jest
v28.0.5
Compare Source
Bug Fixes

legacy: throw type check error in ESM mode with reject (#3618) (7dd01ff), closes #3507

v28.0.4
Compare Source
Bug Fixes

remove @types/jest from peer deps (#3592) (b66b656)

v28.0.3
Compare Source
Bug Fixes

security: update version of json5 (#3528) (b31f5ba)

v28.0.2
Compare Source
Bug Fixes

transformers: use Array.sort in hoisting transformer (#3498) (e400a6e), closes #3476

v28.0.1
Compare Source
Bug Fixes

lower the required node version to ^16.10 (#3495) (3a4e48a), closes #3494

v28.0.0
Compare Source
Bug Fixes

legacy invoke Babel processAsync for babel-jest in ESM mode instead of process (#3430) (0d7356c)

Features

presets: add presets for legacy mode (#3465) (543b4ad)
mark ConfigSet as legacy (#3456) (a986729)
mark TsCompiler and TsJestCompiler as legacy (#3457) (0f2fe30)
remove path-mapping AST transformer (#3455) (f566869)
set Jest peer dependencies to v28 (#3454) (1e880ff)
core: drop support for Node.js 10 (#3332) (7a9aa61)
core: remove mocked testing util (#3333) (2d9017d)
core: remove ts-jest/utils sub path export (#3334) (9f253d3)
mark TsJestTransformer as legacy (#3451) (b090179)

BREAKING CHANGES

path-mapping AST transformer is no longer shipped in ts-jest v28. Please use an alternative one like https://github.com/LeDDGroup/typescript-transform-paths instead.
Any imports ts-jest/dist/compiler/ts-compiler should change to ts-jest/dist/legacy/compiler/ts-compiler
Any imports ts-jest/dist/compiler/ts-jest-compiler should change to ts-jest/dist/legacy/compiler/ts-jest-compiler
Any imports ts-jest/dist/config/config-set should change to ts-jest/dist/legacy/config/config-set
Minimum support TypeScript version is now 4.3 since Jest 28 requires it.
Jest 28 is required.
core: Any imports ts-jest/utils should be replaced with ts-jest.
core: Starting from Jest 27.4, mocked has been integrated into Jest repo.
core: Support for Node.js v10 has been removed as Jest drops support for it.

27.1.5 (2022-05-17)
Bug Fixes

transformers use Array.sort in hoisting transformer (#3498) (e400a6e), fixes #3476

27.1.4 (2022-03-24)
Bug Fixes

compiler: revert #3194 (#3362) (2b7dffe), closes #3272
remove esbuild from peer dependency (#3360) (8c8c1ca), closes #3346
support Babel config file with .cjs extension (#3361) (5e5ac4a), closes #3335

27.1.3 (2022-01-14)
Bug Fixes

compiler: update memory cache for compiler using received file content (#3194) (e4d9541)

27.1.2 (2021-12-15)
Bug Fixes

stimulate esbuild type to avoid importing esbuild directly (#3147) (9ace0a9)

27.1.1 (2021-12-07)
Bug Fixes

bring back afterProcess hook (#3132) (2b6b86e)
make esbuild as optional peer dependency (#3129) (20258de)

v27.1.5
Compare Source
Bug Fixes

transformers use Array.sort in hoisting transformer (#3498) (e400a6e), fixes #3476

v27.1.4
Compare Source
Bug Fixes

compiler: revert #3194 (#3362) (2b7dffe), closes #3272
remove esbuild from peer dependency (#3360) (8c8c1ca), closes #3346
support Babel config file with .cjs extension (#3361) (5e5ac4a), closes #3335

v27.1.3
Compare Source
Bug Fixes

compiler: update memory cache for compiler using received file content (#3194) (e4d9541)

v27.1.2
Compare Source
Bug Fixes

stimulate esbuild type to avoid importing esbuild directly (#3147) (9ace0a9)

v27.1.1
Compare Source
Bug Fixes

bring back afterProcess hook (#3132) (2b6b86e)
make esbuild as optional peer dependency (#3129) (20258de)

v27.1.0
Compare Source
Features

allow subclasses to extend processAsync and getCacheKeyAsync (#3047) (571a880)
config: support custom AST transformers written in TypeScript (#3063) (340a305), closes #2831
export ts-jest public apis from index.js (#3080) (53175dd), closes #3045

Code Refactoring

utils: deprecate mocked util function (#3102) (55e69f1)
define clear type for compiler option (#3087) (cc42daf)
transformers: deprecate path-mapping AST transformer (#3088) (d8f6b96)
transformers: use ts factory API for hoisting AST transformer (#3058) (a72f51d)

DEPRECATIONS

transformers: path-mapping AST transformer is deprecated and will be removed in v28.0.0. One should use an alternative one like https://github.com/LeDDGroup/typescript-transform-paths instead.
utils: mocked function is deprecated and will be removed in v28.0.0. The function has been integrated into jest-mock package as a part of Jest 27.4.0, see https://github.com/facebook/jest/pull/12089. One should use the one from Jest instead

27.0.7 (2021-10-16)
Bug Fixes

correct lodash import (#2978) (8b60679), closes #2977

27.0.6 (2021-10-14)
Bug Fixes

use specific lodash package instead of full package lodash (#2959) (dc89fe5), closes #2954

27.0.5 (2021-08-14)
Bug Fixes

cli: add migration tsConfig option for ts-jest config options (#2794) (781710b), closes #2764
cli: fix config:init genarate invalid type comment (#2773) (ede8a20), closes #2772
config: handle  ./ in tsconfig paths for pathsToModuleNameMapper  (#2797) (42ff5e4), closes #2709

Code Refactoring

use native Buffer.from and mkdird (#2774) (4869660)

27.0.4 (2021-07-21)
Bug Fixes

add @types/jest as optional peerDependencies to solve yarn 2 (#2756) (5fbf43e)
add babel-jest as optional peerDependencies to solve yarn 2 (#2751) (8bede2e)
config: include AST transformer's name and version into cache key (#2755) (310fb9a), closes #2753

Features

link jest config types on npx ts-jest:init (#2742) (f51ba05)
set env var TS_JEST to allow detecting of ts-jest (#2717) (56c137a), closes #2716

27.0.3 (2021-06-06)
Bug Fixes

revert exports field to support all node versions (#2658) (132c8ba)

Features

emit ESM codes if using ESM mode with Babel (#2661) (9b55404), closes #2650

27.0.2 (2021-05-30)
Bug Fixes

compiler: add empty string file content to compiler cache (#2633) (0feb556), closes #2625
config: exclude should only exclude files which match glob values (#2637) (c5ce979), closes #2634

27.0.1 (2021-05-26)
Bug Fixes

cli: keep testMatch if old jest config contains it (#2618) (c568f49), closes #2616
compiler: make sure isolatedModules: false use updated compiler options (#2628) (348e30f), closes #2629
add missing export presets (#2624) (0ea025e), closes #2623

v27.0.7
Compare Source
Bug Fixes

correct lodash import (#2978) (8b60679), closes #2977

v27.0.6
Compare Source
Bug Fixes

use specific lodash package instead of full package lodash (#2959) (dc89fe5), closes #2954

v27.0.5
Compare Source
Bug Fixes

cli: add migration tsConfig option for ts-jest config options (#2794) (781710b), closes #2764
cli: fix config:init genarate invalid type comment (#2773) (ede8a20), closes #2772
config: handle  ./ in tsconfig paths for pathsToModuleNameMapper  (#2797) (42ff5e4), closes #2709

Code Refactoring

use native Buffer.from and mkdird (#2774) (4869660)

v27.0.4
Compare Source
Bug Fixes

add @types/jest as optional peerDependencies to solve yarn 2 (#2756) (5fbf43e)
add babel-jest as optional peerDependencies to solve yarn 2 (#2751) (8bede2e)
config: include AST transformer's name and version into cache key (#2755) (310fb9a), closes #2753

Features

link jest config types on npx ts-jest:init (#2742) (f51ba05)
set env var TS_JEST to allow detecting of ts-jest (#2717) (56c137a), closes #2716

v27.0.3
Compare Source
Bug Fixes

revert exports field to support all node versions (#2658) (132c8ba)

Features

emit ESM codes if using ESM mode with Babel (#2661) (9b55404), closes #2650

v27.0.2
Compare Source
Bug Fixes

compiler: add empty string file content to compiler cache (#2633) (0feb556), closes #2625
config: exclude should only exclude files which match glob values (#2637) (c5ce979), closes #2634

v27.0.1
Compare Source
Bug Fixes

cli: keep testMatch if old jest config contains it (#2618) (c568f49), closes #2616
compiler: make sure isolatedModules: false use updated compiler options (#2628) (348e30f), closes #2629
add missing export presets (#2624) (0ea025e), closes #2623

v27.0.0
Compare Source
Bug Fixes

compiler: return file content on emitSkipped for non ts/tsx files (#2519) (a4e5640), closes #2513
compiler: retype check other files if processing file is used by those ones in watch mode (#2481) (ac8f3d0), closes #943
compiler: initialize compiler with .ts/.tsx/.d.ts files only (#2458) (a89f0e2), closes #2445
compiler: resolve nested imported modules for each processing file (#2436) (3cb9019), closes #1390 #1747
config: create fallback jest config when jest config is undefined (#2433) (c6d6e4c), closes #2085
remove @types/jest from direct dep (#2409) (8913120), closes #2406 #2411
compiler: return original file content and show warning on emit skip (#2410) (c2b2164), closes #2407
compiler: type check correctly in watch mode when a file content itself has changed (#2405) (064bf3a), closes #2118
compiler: exclude files in outDir from compiler source files (#2375) (ec68c74), closes #2350 #2374
config: cache config and compiler correctly between runs (#2356) (5f91336)
config: improve emit skipped error message (#2358) (2ae8df4), closes #2350
typings: set correct typing for tsconfig option (#2383) (584324a), closes #2368
config: invalidate Jest transform cache when astTransformers value changes (#2345) (d726016)
reduce size of node_modules when adding ts-jest (#2263) (8e0675c)

Features

config: allow disable sourcemap (#2544) (47da6ad)
compiler: expose TsCompiler as public api (#2344) (871cd6a)
config: support typed config options for jest config typescript (#2335) (3cfc37b)
presets: add typing for presets entry point (#2337) (1a3058f)
compiler: allow custom transformers to access internal Program (#2299) (387964f)
config: replace pathRegex with exclude (#2295) (f2f99c3)
config: type checking js files based on checkJs (#2283) (1e04433)
compiler: support ESM for isolatedModules: false (#2269) (9bb0c05), closes #1709
compiler: support ESM for isolatedModule: true (#2219) (e101db0), closes #1709
presets: add 3 new presets to work with ESM (#2207) (c277858)
allow subclasses of TsJestTransformer to have version checking (#2176) (ca8d7c4)

Performance Improvements

reuse jest file system cache for isolatedModules: false (#2189) (68f446b)

Code Refactoring

config: remove support for astTransformers string array (#2129) (1e0b2ce)
config: remove support for packageJson option (#2128) (05916b9)
move jest transformer class to package entry (#2122) (5bbfd06)
config: remove support for tsConfig option (#2127) (3cc9b80)

BREAKING CHANGES

By default, ts-jest will use sourceMap option from your tsconfig. If users want to have sourcemap on, they need to set sourceMap: true in tsconfig.
follow Jest support Node engines (#2478) (1fecf7f)
add exports field to package.json, see https://nodejs.org/api/packages.html#packages_package_entry_points (#2467) (d3aba3e)
ts-jest custom AST transformer function signature has changed to

import type { TsCompilerInstance } from 'ts-jest/dist/types'

export function factory(compilerInstance: TsCompilerInstance) {
   //...
}

One is currently using pathRegex should use exclude with glob patterns.
If one currently relies on type check for js files, please set checkJs: true in your tsconfig.
Now both isolatedModules: true and isolatedModule: false codes are in one single class TsCompiler which is an instance created in TsJestCompiler based on config option compiler with value typescript or ttypescript.
config: packageJson config option is not used in internal ts-jest so this option is now removed.
config: One is defining ast transformers in jest.config.js/package.json should change to

// jest.config.js
module.exports = {
   //...
   globals: {
      'ts-jest': {
         astTransformers: {
           before: ['your_before_transformer_path'],
           after: ['your_after_transformer_path'],
           afterDeclarations: ['your_afterDeclarations_transformer_path'],
         }
      }
   }
}

or
// package.json
{
  "jest": {
     "globals": {
        "ts-jest": {
           "astTransformers": {
              "before": ["your_before_transformer_path"],
              "after": ["your_after_transformer_path"],
              "afterDeclarations": ["your_afterDeclarations_transformer_path"]
           }
        }
     }
  }
}

One currently refers type in jest.config.js

/** @typedef {import('ts-jest')} */
module.exports = {
  //...
}

should change to
/** @typedef {import('ts-jest/dist/types')} */
module.exports = {
  //...
}

Remove possibilities to import mocked, createJestPreset, pathsToModuleNameMapper from package entry. One should change to

import { mocked, createJestPreset, pathsToModuleNameMapper } from 'ts-jest/utils'

config: One currently uses tsConfig should change to tsconfig in your jest.config.js or package.json.

26.5.6 (2021-05-05)
Code Refactoring

refactor(config): show warning message for sourceMap: false (#2557) (cf60990).

v26.5.6
Compare Source
Code Refactoring

refactor(config): show warning message for sourceMap: false (#2557) (cf60990).

v26.5.5
Compare Source
Bug Fixes

compiler: return file content on emitSkipped for non ts/tsx files (#2515) (0320fb3), closes #2513

v26.5.4
Compare Source
Bug Fixes

compiler: initialize compiler with .ts/.tsx/.d.ts files only (#2457) (1dc731a), closes #2445

v26.5.3
Compare Source
Bug Fixes

config: create fallback jest config when jest config is undefined (#2421) (0fb6b45), closes #2085
remove @types/jest from direct dep (#2416) (060302e), closes #2406 #2411
compiler: return original file content on emit skip (#2408) (cfba8f4), closes #2407

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, click this checkbox.

This PR has been generated by Renovate Bot.

⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: yarn.lock
installing v2 tool corepack v0.11.2
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.

added 1 package in 467ms
linking tool corepack v0.11.2
0.11.2
➤ YN0000: ┌ Resolution step
➤ YN0060: │ @metamask/controllers@workspace:. provides jest (p3e5c7) with version 26.4.2, which doesn't satisfy what ts-jest requests
➤ YN0002: │ eth-block-tracker@npm:4.4.3 doesn't provide @babel/core (pccb0b), requested by @babel/plugin-transform-runtime
➤ YN0000: │ Some peer dependencies are incorrectly met; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code
➤ YN0000: └ Completed in 1s 4ms
➤ YN0000: ┌ Fetch step
➤ YN0013: │  - one package was already cached, 10 had to be fetched
➤ YN0000: └ Completed in 0s 348ms
➤ YN0000: ┌ Link step
➤ YN0073: │ Skipped due to mode=update-lockfile
➤ YN0000: └ Completed
Usage Error: Couldn't find the node_modules state file - running an install might help (findPackageLocation)

$ yarn run [--inspect] [--inspect-brk] [-T,--top-level] [-B,--binaries-only] <scriptName> ...

Renovate Ignore Notification
As this PR has been closed unmerged, Renovate will ignore this upgrade and you will not receive PRs for any future 28.x releases. However, if you upgrade to 28.x manually then Renovate will reenable minor and patch updates automatically.
If this PR was closed by mistake or you changed your mind, you can simply rename this PR and you will soon get a fresh replacement PR opened.

repo: Gudahtt/controllers-fork


text:
宽度被修改的问题找到了

是因为 ceil 这个函数 。
计算 outW / (float) width   时，如果结果是 2.00087 这样，你那么 使用 ceil(outW / (float) width) 之后，得到的结果为 3 。其实我想要的是 2 ，这就造成了 除数变大，得到的图片宽度变窄了。
马上修复一下，然后提交一下代码。
对各位造成的困扰，在这里说声对不起了
@all

问题 解决，包括图片模糊的问题
请更新到最新版本 1.0.5
@ALL


text:
Build function to update constraints

It would be very useful to add in functionality to have similar syntax to
.gppd.add_constrs(model, 'lhs <= rhs', name='c1')
but instead for re-assignment of a lhs or rhs of an expression.
For example, if models are being built across each day of a year, but the model size is too complex to construct the entire year in one go, constraints can be built on the first day of the year. They would need to be updated as values change across days. Something like the following would be very useful:
.gppd.update_constrs_rhs(model, [CONSTRAINT NAME], [NEW RHS COLUMN NAME])
As it stands right now I believe there would need to be some for loop construction across itertuples and manually update each constraint entry.

Hi @alexlusak, thanks for the feedback!
Just to confirm, is the requirement here to modify only the right hand side of existing constraints? This can be done using the attribute accessors. Say you have built a constraint:
df_constr = df.gppd.add_constrs(model, "lhs <= rhs", name="c1")

you can modify the right hand side of the set of constraints by assigning to the 'RHS' attribute of the constraints as follows:
df_constr["c1"].gppd.RHS = new_rhs

where new_rhs is a series on the same index as the original dataframe.

@simonbowly that was exactly what I was looking for, thanks!
I couldn't seem to find anything in the docs on this - if there isn't, perhaps it's something worth adding a small section on?

Agreed, thanks for pointing that out, there are no concrete example of this in the docs. I'll add some in https://github.com/Gurobi/gurobipy-pandas/issues/80.

This is a bit tricker. Currently there is no syntax in gurobipy-pandas for this, it has to be done directly in gurobipy using chgCoeff with a handle to the variable and constraint you want to change the coefficient for. So you would need to loop manually over the dataframe to make the changes.
I'm happy to consider adding some functionality to do this, but I'm having trouble thinking of how it might look as an API in gurobipy-pandas. The attribute accessor updates just one value per constraint, and the attribute name (in the above case, 'RHS') specifies what data is being updated. For coefficients, you could have an arbitrary number of them in each constraint, so I'm not sure the same API style make sense. Do you have a concrete example?

Sure, I can provide one example. I have a dataframe with a float, price; variable, v1; and constraint, c1. price is a coefficient on v1 in constraint c1, so each day I would like to update this price as it changes. Therefore, something like the following would be useful to have:
df['c1'].gppd.update_coef('v1', 'price')

whereas right now it needs to be something like:
for row in df.itertuples():
    # access constraint location and update coefficient with price and v1 in the same row

Got it, so say we have a simple dataframe built like this:
df = (
    pd.DataFrame({
        "price1": [11, 12, 13, 14, 15],
        "price2": [21, 22, 23, 24, 25],
    })
    .gppd.add_vars(model, name="x")
    .gppd.add_vars(model, name="y")
    .gppd.add_constrs(model, "y == price1 * x", name="c1")
)

result:
|    |   price1 |   price2 | x                 | y                 | c1                    |
|---:|---------:|---------:|:------------------|:------------------|:----------------------|
|  0 |       11 |       21 | <gurobi.Var x[0]> | <gurobi.Var y[0]> | <gurobi.Constr c1[0]> |
|  1 |       12 |       22 | <gurobi.Var x[1]> | <gurobi.Var y[1]> | <gurobi.Constr c1[1]> |
|  2 |       13 |       23 | <gurobi.Var x[2]> | <gurobi.Var y[2]> | <gurobi.Constr c1[2]> |
|  3 |       14 |       24 | <gurobi.Var x[3]> | <gurobi.Var y[3]> | <gurobi.Constr c1[3]> |
|  4 |       15 |       25 | <gurobi.Var x[4]> | <gurobi.Var y[4]> | <gurobi.Constr c1[4]> |

and looking up c1 in the model we'll see the current constraint coefficients:
>>> df["c1"].apply(model.getRow)
0    11.0 x[0] + -1.0 y[0]
1    12.0 x[1] + -1.0 y[1]
2    13.0 x[2] + -1.0 y[2]
3    14.0 x[3] + -1.0 y[3]
4    15.0 x[4] + -1.0 y[4]

To change the coefficients on each 'x' to the corresponding value in 'price2' would just require an itertuples loop as you said:
>>> for tup in df.itertuples():
>>>    model.chgCoeff(tup.c1, tup.x, tup.price2)
>>> model.update()
>>> df["c1"].apply(model.getRow)
0    21.0 x[0] + -1.0 y[0]
1    22.0 x[1] + -1.0 y[1]
2    23.0 x[2] + -1.0 y[2]
3    24.0 x[3] + -1.0 y[3]
4    25.0 x[4] + -1.0 y[4]

We could add a function like df.gppd.update_coeff(model, "c1", "x", "price2") that does just that: for each row in the dataframe, update the coefficient of variable x in constraint c1 to the value in price2. The implementation would just use an itertuples loop as above though, there's no vectorized way to make these changes in the underlying model through gurobipy.
Extending the idea a little to multiple coefficients per constraint, I think the possibilities would be:

Use a separate call (e.g. to also update all the y coefficients based on another column)
Somehow munge the dataframe so you can use the same syntax

For (2), you could use the same syntax (one update per row) if you construct the right dataframe, e.g.
>>> df2 = pd.concat([df.loc[:2, "x"], df.loc[3:, "y"]]).to_frame(name="v").assign(coeff=0.1, c1=df['c1'])
>>> df2
                   v  coeff                     c1
0  <gurobi.Var x[0]>    0.1  <gurobi.Constr c1[0]>
1  <gurobi.Var x[1]>    0.1  <gurobi.Constr c1[1]>
2  <gurobi.Var x[2]>    0.1  <gurobi.Constr c1[2]>
3  <gurobi.Var y[3]>    0.1  <gurobi.Constr c1[3]>
4  <gurobi.Var y[4]>    0.1  <gurobi.Constr c1[4]>
>>> for tup in df2.itertuples():
>>>    model.chgCoeff(tup.c1, tup.v, tup.coeff)
>>> model.update()
>>> df["c1"].apply(model.getRow)
0    0.1 x[0] + -1.0 y[0]
1    0.1 x[1] + -1.0 y[1]
2    0.1 x[2] + -1.0 y[2]
3    24.0 x[3] + 0.1 y[3]
4    25.0 x[4] + 0.1 y[4]
Name: c1, dtype: object

(A separate call might be cleaner if the code to build the update dataframe looks anything like the one above!)

Got it, that all makes sense. Probably not the biggest priority given the simplicity of writing an itertuples call (and especially given there's no way to have it vectorized), and I know this is documented in the Advanced Patterns section.

authors: alexlusak simonbowly

repo: Gurobi/gurobipy-pandas


text:
Modo escuro no blog

Foi feita 4 tentativas de subir o blog no modo escuro usando apenas Markdown.

Foi feita a alteração nos arquivos do #1 Usando

background-color: black
color: white

e foi feita a alteração no theme: minima para theme: dark no arquivo _config.yml.


text:
Proposal for fix of KB0098384

More on the problem https://support.hcltechsw.com/csm?id=kb_article&sysparm_article=KB0098384

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

authors: CLAassistant roman-igt

repo: HCL-TECH-SOFTWARE/ounce-maven-plugin


text:
🛑 SkipTheCommericals is down

In b04beb2, SkipTheCommericals ($STC) was down:

HTTP code: 0
Response time: 0 ms

Resolved: SkipTheCommericals is back up in 347ed8b.

repo: HDVinnie/TrackerHub


text:
🛑 SkipTheCommericals is down

In 7baf6ed, SkipTheCommericals ($STC) was down:

HTTP code: 0
Response time: 0 ms

Resolved: SkipTheCommericals is back up in 2dc431d.


text:
🛑 SkipTheCommericals is down

In bf86688, SkipTheCommericals ($STC) was down:

HTTP code: 0
Response time: 0 ms

Resolved: SkipTheCommericals is back up in ceb0c48.


text:
⚠ SceneTime has degraded performance

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

HTTP code: 200
Response time: 1314 ms

Resolved: SceneTime performance has improved in cad6884 after 7 minutes.


text:
⚠ SceneTime has degraded performance

In 18a0ca5, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 1521 ms

Resolved: SceneTime performance has improved in f0b6712 after 6 minutes.


text:
⚠ SkipTheTrailers has degraded performance

In 491b3e7, SkipTheTrailers ($STT) experienced degraded performance:

HTTP code: 200
Response time: 1559 ms

Resolved: SkipTheTrailers performance has improved in 6c3b5a2.


text:
🛑 Telly is down

In f825db1, Telly ($TLY) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Telly is back up in 73e3cbb.


text:
🛑 SkipTheTrailers is down

In 5d623ad, SkipTheTrailers ($STT) was down:

HTTP code: 0
Response time: 0 ms

Resolved: SkipTheTrailers is back up in 8424c4c.


text:
🛑 Telly is down

In f15634a, Telly ($TLY) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Telly is back up in 7c18f35.


text:
⚠ PrivateHD has degraded performance

In a28463d, PrivateHD ($PHD) experienced degraded performance:

HTTP code: 200
Response time: 1912 ms

Resolved: PrivateHD performance has improved in ea2eb13.


text:
🛑 Telly is down

In e3ed86f, Telly ($TLY) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Telly is back up in 1a1162b.


text:
관리자의 회원 정보 수정 API

Description
현재 회원 정보 수정 API는 ( /api/admin/edit-user ) 하나로만 이루어지고 있다.
이 API는 관리자 페이지에서 매칭 , 비매칭 회원에 대해서 이루어 진다.
API가 Team number를 요구 한다.
하지만 Team number를 보내지 않으면 회원 정보가 수정되지 않는다.
그래서 팀매칭이 이루어지지 않았을 때 회원정보를 매니저쪽에서 수정이 불가능하다.
해결 방법

팀 매칭이 이루어 졌을 때만 회원 정보 수정이 가능하도록 한다.
팀 매칭이 이루어 지지 않더라도 회원 정보 수정이 가능하도록 Team number를 nullable 하게 한다.

팀 배정이 되지 않은 유저에 대해서도 회원정보 수정이 가능하게 하자는 말씀이죠?
역으로 팀배정된 학생을 배정 취소시킬수도 있겠군요

authors: ohinhyuk zionhann

repo: HGU-WALAB/histudy-be


text:
🛑 Auth Server httpd is down

In eb5804d, Auth Server httpd (https://auth.hpcs.cs.tsukuba.ac.jp) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Auth Server httpd is back up in 160116b after 6 minutes.

repo: HPCSLab/upptime


text:
Main.java always exits with Exit code 1

This is an error code, and when this is included in a build step in jenkins it fails the build. Please return 0 when upload succeeds.

I'm going to have to go back and see why it was 1 to begin with on exit.  Seems like oversight, but now we'll need to make sure everyone who's checking this status code in their own chains is aware of it.

Yeah, that's clearly copy/paste code going on.  You want to PR it or wait til we get around to it?

Fixed in v2.0.4.

authors: mtgibbs nahjil567 petebeegle

repo: HPFOD/fod-uploader-java


text:
Add per-server option to change word count

Not every server limits responses to ten words, so having an option to change the limit from 10 to 5 or 20 or whatever would be neat.

Done in https://github.com/HTSTEM/TWOW_Bot/commit/a1db5964ff12ff3fc28159b2c83103200d55adcf

authors: Bottersnike Noahkiq


text:
increase the torch.dynamo cache limit size in torch.compile mode

increase cache limit size in torch.dynamo to avoid out of memory issue in torch.compile mode

please add a comment: as this change will be reverted with actual fix
done

repo: HabanaAI/optimum-habana-fork


text:
🛑 ConUHacks is down

In 6cad80c, ConUHacks (https://conuhacks.io) was down:

HTTP code: 0
Response time: 0 ms

Resolved: ConUHacks is back up in e199566 after 18 minutes.

repo: HackConcordia/HC-Upptime


text:
Can no longer boot w/1.2.1

Not 100% sure it's VMWareAddons since I just ran the updater on everything, but I see AccelerantHWInterface in the stack trace which may be related to recent changes? When booting, it gets to the last icon and then crashes.
(I know nothing of hardware interfaces, so I could be totally off here.)
Here's a screen grab of the panic:

I see in #25 the following:
status_t GET_ACCELERANT_DEVICE_INFO(accelerant_device_info * adi)
{
	/* no info on version is provided, so presumably this is for my info */
	adi->version = 1;
...

Is adi guaranteed to be non-null?
Not sure how to get back to a bootable system... 😄

Same error here. Running on VMware Fusion Player Version 12.1.2 (17964953) on Mac.

More info here: https://github.com/haikuports/haikuports/issues/6161

If someone could advise me on what to do with the generated files after making some local source changes, I could test out if changing the B_READ -> B_KERNEL_READ helps or not.

Is there a way to downgrade or at least download an older version of the package?

authors: Coldfirex asmaloney fabianmu

repo: HaikuArchives/VMwareAddons


text:
No module named 'tasks.semantic.modules.SalsaNextUncertainty'

The folder structure was changed, but not the code.
SalsaNextUncertainty was renamed into SalsaNextAdf

Fixed by  #23

authors: SoftwareApe sebaleme

repo: Halmstad-University/SalsaNext


text:
pnpm和npm执行install后运行不一致。

npm 有问题。
代码protable属性
rowKey="taskId"
:tree-props="{children: 'subTaskList'}"

npm 没有 lock，用 pnpm 安装

感觉这个关系不大吧，我看了包都是2.3.4 排查好久，想知道具体啥影响的

关系肯定大啊，没锁版本，假如是 2.3.4，npm i 能安装到 2.3.9 版本去，可以先去了解了解 lock 作用吧

我在node_modules 里看了element plus版本了 都是2.3.4

所以1.0为何删除了lock文件，lock是建议提交到仓库的，php的composer也是建议lock提交到仓库的
这样能最大限度的，保证团队开发的版本一致性，开源项目，更是避免了npm i的时候小伙伴们安装了太新的包不兼容哈

我在node_modules 里看了element plus版本了 都是2.3.4

那我也找不到问题呀啊😂 推荐使用 pnpm 安装了，我本地是没有问题的

@HalseySpicy 前端真是乱了套了哈哈，npm cnpm pnpm yarn ..... 各家都不一样。难受想哭！

@HalseySpicy 前端真是乱了套了哈哈，npm cnpm pnpm yarn ..... 各家都不一样。难受想哭！

是的，选择一个就好了，并且一定要有 lock

authors: HalseySpicy tlerbao xiuyuan-wang

repo: HalseySpicy/Geeker-Admin


text:
🛑 Server Cat is down

In 796b458, Server Cat ($SERVER_CAT) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Server Cat is back up in 7bbd3f9 after 9 hours, 52 minutes.

repo: Halyul/upptime


text:
资源求助

关于阿语的语法规则有没有哇，有的话甩一份，我来整个wiki

没有😭创造历史的时刻到了hxd！

authors: CatMoonzero HanaYabuki

repo: HanaYabuki/aminoac


text:
🛑 API is down

In af0542c, API (https://api.premid.app) was down:

HTTP code: 0
Response time: 0 ms

Resolved: API is back up in 60062c8.


text:
🛑 Test is down

In 337b361, Test (https://test.scratch-wiki.info) was down:

HTTP code: 508
Response time: 1149 ms

Resolved: Test is back up in 7579335 after 17 minutes.


text:
🛑 Russian is down

In c526afe, Russian (https://ru.scratch-wiki.info) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Russian is back up in c7ad179 after 23 minutes.


text:
🛑 fy is down

In 1c69cc7, fy (https://fy.haoda.repl.co/) was down:

HTTP code: 502
Response time: 360 ms

Resolved: fy is back up in 5ab458d.


text:
🛑 AI对话 is down

In 9a9a145, AI对话 (https://haoqi7-question.hf.space/) was down:

HTTP code: 503
Response time: 45 ms

Resolved: AI绘画 is back up in 29b2167.


text:
🛑 AI对话 is down

In de63ece, AI对话 (https://haoqi7-question.hf.space/) was down:

HTTP code: 503
Response time: 326 ms

Resolved: AI绘画 is back up in 44b99f9 after 191 days, 2 hours, 36 minutes.


text:
🛑 One网盘 is down

In 22d67ff, One网盘 (https://pan.haoqiyun.tk/) was down:

HTTP code: 504
Response time: 11193 ms

Resolved: One网盘 is back up in d1c606b after 31 minutes.


text:
🛑 Happy Vibes Bot 2 is down

In 53b9972, Happy Vibes Bot 2 ($BOT2) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Happy Vibes Bot 2 is back up in e381b2d.

repo: Happy-Vibes-Bot/status


text:
🛑 Happy Vibes Bot 4 is down

In a60a5ac, Happy Vibes Bot 4 ($BOT4) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Happy Vibes Bot 4 is back up in 29609a7.


text:
🛑 Happy Vibes Bot 4 is down

In b968a23, Happy Vibes Bot 4 ($BOT4) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Happy Vibes Bot 4 is back up in 41dc57a.


text:
🛑 Happy Vibes Bot 1 is down

In cf90f9c, Happy Vibes Bot 1 ($BOT1) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Happy Vibes Bot 1 is back up in 6ae649c.


text:
🛑 Happy Vibes Bot 2 is down

In a91fd72, Happy Vibes Bot 2 ($BOT2) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Happy Vibes Bot 2 is back up in 49a2036.


text:
[Feature] 🌈 请问是否可以提供 arm 的 docker 版本？

Describe the problem related to the feature request
当前docker版本 arm 缺失，请问是否可以提供 arm 的 docker 版本？
Describe the solution you'd like
希望提供 arm 版本的 docker img。
Describe alternatives you've considered
No response
Additional context
No response

authors: Harry-zklcdc Kaol-Fu

repo: Harry-zklcdc/go-proxy-bingai


text:
Feat: Wireframes for Error and Login/Signup Pages

Related Issue

Issue#10: Create the Login/Signup page design
Issue#11: Design a 404 Page for the Application

Description
Created designs for desktop and mobile versions. Attached a color scheme for the entire project along. The designs are in PNG and PDF format.

Thanks!

Thanks!

authors: HarshCasper pooja-gera

repo: HarshCasper/AllNotes


text:
哔哩哔哩视频无法解析

【BiliVido:哎呀,暂不支持这类视频解析!对不起嘛~】
[→点击可以跳转查看视频哦←]

bilibili的番剧视频是无法解析的哦~其次就是请检查您的B站视频链接是否包含BV号。那种短链接格式的是没法解析的哦

repo: HaruhiYunona/BiliVido-For-Typecho


text:
Crash immediately after character selection

The Crash happens immediately after character selection. Using Gw Launcher and version 3.8.1
crashes only for 1 alt account.

crash dump:
crash dump.txt

Can you attach the file from C:\Users\sang\AppData\Local\GWToolboxpp\crashes\3.8.1-20200621-174111-28048-11996.dmp please?

Hi, I can't seem to attach dump files in github. Any other way to send the file?

right click and zip it

3.8.1-20200621-174111-28048-11996.zip

Fixed for next release https://github.com/HasKha/GWToolboxpp/commit/f15682ce8b61bb0a09e872d9ca458ef7ec55f785

repo: HasKha/GWToolboxpp


text:
Frontend: Create JSX/HTML for Authentication Pages

Code sampled from Module 21 Challenge; main login page with form containing input fields for username, email, and password

PR: https://github.com/HashemE1999/locus/pull/47


text:
WikiVG Tab uses wrong version.

When using Pakkit and clicking on a packet in the list, and then the WikiVG tab, the page will pop up for the latest version of minecraft, no matter what version you use. (so obviously the packets are wrong)

Are there alternative versions for wiki.vg though? I think there's only one copy, right?

https://wiki.vg/Protocol_version_numbers
See attached link for a list of versions
not sure how this would be implemented but it'd be a huge help.

authors: GetNameSniped OskarZyg


text:
Bad Request: message text is empty

app_1  |  2023-03-22T01:27:41.154Z ERROR telegpt_core::modules::chat > Failed to handle chat message: A Telegram's error: Bad Request: message text is empty

Which deployment method did you use? And could you paste your configuration (remember to hide the API keys) here?

i have the same question ,here is my config
{
    "openaiAPIKey": "sk-AXA",
    "botToken": "6181801",
    "conversationLimit": 500,
    "databasePath": "/telegpt/data/telegpt.sqlite",
    "adminUsernames": [
        "cyandev",
        "withExtendedLifetime"
    ],
    "i18n": {
        "resetPrompt": "Your conversation has been reset."
    }
}

and docker compose file blow
version: "3"

services:
  app:
    image: ghcr.io/icystudio/telegpt:master
    volumes:
      - ./config.json:/telegpt/config.json
      - ./data:/telegpt/data

If its Necessary，logs：
app_1  |  2023-03-22T14:04:43.346Z INFO  telegpt_core::app > Initializing bot...
app_1  |  2023-03-22T14:04:45.067Z INFO  telegpt_core::app > Bot is started!
app_1  |  2023-03-22T14:04:54.017Z ERROR telegpt_core::modules::stats::stats_mgr > Failed to query usage: Invalid column type Null at index: 0, name: SUM(tokens)
app_1  |  2023-03-22T14:04:54.017Z ERROR telegpt_core::modules::stats::stats_mgr > Failed to query usage: Invalid column type Null at index: 0, name: SUM(tokens)
app_1  |  2023-03-22T14:12:22.696Z ERROR telegpt_core::modules::chat             > Failed to handle chat message: A Telegram's error: Bad Request: message text is empty

Same problem

yes

Could you try calling OpenAI API directly to see if you can get the correct responses?

I also encountered this problem, and the API works normally in other programs.

Could you try calling OpenAI API directly to see if you can get the correct responses?

I also encountered this problem, and the API works normally in other programs.

same as me

@Voldeemort Did you see "Thinking..." prompt replied after sending a message to the bot, or did the bot literally not respond at all?

@Voldeemort Did you see "Thinking..." prompt replied after sending a message to the bot, or did the bot literally not respond at all?

I saw thinking content

@Voldeemort Did you see "Thinking..." prompt replied after sending a message to the bot, or did the bot literally not respond at all?

Yes, I saw the 'Thinking...' prompt

It seems that Telegram APIs are working, but something is going wrong with OpenAI responses (or parsing of them). Would you mind trying the latest prebuilt binaries?

It seems that Telegram APIs are working, but something is going wrong with OpenAI responses (or parsing of them). Would you mind trying the latest prebuilt binaries?

Is it the 0.1.1 version from 21 hours prior to the build?

It seems that Telegram APIs are working, but something is going wrong with OpenAI responses (or parsing of them). Would you mind trying the latest prebuilt binaries?

Is it the 0.1.1 version from 21 hours prior to the build?

Yes, technically it should have nothing to do with this issue, but it's still worth a try.

Got no ideas on this. 😅
But I still think it's probably a network problem, I need some network packet captures for further diagnostics.

You can add RUST_LOG=TRACE environment variable to get more verbose logs.

maybe i can show you my server username and password, i get the same problem running the program on both debian and macos, as did the other person... hmmm...

You can add RUST_LOG=TRACE environment variable to get more verbose logs.

maybe i can show you my server username and password, i get the same problem running the program on both debian and macos, as did the other person... hmmm...

I will suggest you not to share your server credentials with others, as the necessary logs are enough for our discussion.

You can add RUST_LOG=TRACE environment variable to get more verbose logs.

maybe i can show you my server username and password, i get the same problem running the program on both debian and macos, as did the other person... hmmm...

I will suggest you not to share your server credentials with others, as the necessary logs are enough for our discussion.

TRACE want                              > poll_want: taker wants!
TRACE want                              > signal: Want
TRACE want                              > signal: Want
TRACE want                              > signal: Want
DEBUG telegpt_core::dispatcher          > mytelegram sent a message: Hi
DEBUG reqwest::connect                  > starting new connection: https://api.telegram.org/
TRACE mio::poll                         > deregistering event source from poller
TRACE want                              > signal: Closed
TRACE mio::poll                         > registering event source with poller: token=Token(16777217), interests=READABLE | WRITABLE
TRACE want                              > signal: Want
TRACE want                              > signal found waiting giver, notifying
TRACE want                              > poll_want: taker wants!
TRACE want                              > signal: Want
TRACE want                              > signal: Want
TRACE want                              > signal: Want
DEBUG reqwest::connect                  > starting new connection: https://api.openai.com/
TRACE mio::poll                         > registering event source with poller: token=Token(33554434), interests=READABLE | WRITABLE
TRACE want                              > signal: Want
TRACE want                              > signal found waiting giver, notifying
TRACE want                              > poll_want: taker wants!
TRACE want                              > signal: Want
TRACE want                              > signal: Want
TRACE mio::poll                         > deregistering event source from poller
TRACE want                              > signal: Closed
TRACE want                              > signal: Want
TRACE want                              > signal: Want
TRACE want                              > signal: Want
TRACE want                              > signal: Want
ERROR telegpt_core::modules::chat       > Failed to handle chat message: A Telegram's error: Bad Request: message text is empty

@unixzii  Hi,i found something interesting,
I deployed a telegram bot by another repository https://github.com/karfly/chatgpt_telegram_bot ,but i met the same error when i send Chinese to bot
So i thought that's something wrong with telegram api,or the way you guys call the interface.
Anyway, appreciate your work ☺

Sorry for the inconvenience, but I cannot reproduce your issue on my machines (both Linux and macOS). If it's possible, you can add some logs at src/modules/chat/mod.rs:222:
  let result = stream_model_result(
      &bot,
      &chat_id,
      &sent_progress_msg,
      progress_bar,
      msgs,
      openai_client,
      &config,
  )
  .await;

  // Add log message here:
  println!("OpenAI response: {:#?}", result);

So you can see what OpenAI actually returns.

@unixzii  Hi,i found something interesting,
I deployed a telegram bot by another repository https://github.com/karfly/chatgpt_telegram_bot ,but i met the same error when i send Chinese to bot
So i thought that's something wrong with telegram api,or the way you guys call the interface.
Anyway, appreciate your work ☺

This question is strange, I have tried https://github.com/m1guelpf/chatgpt-telegram and it works fine.

Sorry for the inconvenience, but I cannot reproduce your issue on my machines (both Linux and macOS). If it's possible, you can add some logs at src/modules/chat/mod.rs:222:
async fn actually_handle_chat_message(...) {
// ...
let result = stream_model_result(
&bot,
&chat_id,
&sent_progress_msg,
progress_bar,
msgs,
openai_client,
&config,
)
.await;
// Add log message here:
println!("OpenAI response: {:#?}", result);
// ...
}
So you can see what OpenAI actually returns.

Thank you for your reply, I will try again.

Sorry for the inconvenience, but I cannot reproduce your issue on my machines (both Linux and macOS). If it's possible, you can add some logs at src/modules/chat/mod.rs:222:
async fn actually_handle_chat_message(...) {
  // ...
  let result = stream_model_result(
      &bot,
      &chat_id,
      &sent_progress_msg,
      progress_bar,
      msgs,
      openai_client,
      &config,
  )
  .await;

  // Add log message here:
  println!("OpenAI response: {:#?}", result);

  // ...
}

So you can see what OpenAI actually returns.

Hi,unixzii,The following logs have been printed, please have a look
DEBUG telegpt_core::dispatcher          > myusername sent a message: 你好
TRACE want                              > signal: Want
TRACE want                              > signal: Want
DEBUG reqwest::connect                  > starting new connection: https://api.openai.com/
TRACE want                              > signal: Want
TRACE mio::poll                         > registering event source with poller: token=Token(16777218), interests=READABLE | WRITABLE
TRACE want                              > signal: Want
TRACE want                              > signal found waiting giver, notifying
TRACE want                              > poll_want: taker wants!
TRACE want                              > signal: Want
TRACE want                              > signal: Want
TRACE mio::poll                         > deregistering event source from poller
TRACE want                              > signal: Closed
TRACE want                              > signal: Want
TRACE want                              > signal: Want
OpenAI response: Ok(
ChatModelResult {
content: "",
token_usage: 8,
},
)
TRACE want                              > signal: Want
TRACE want                              > signal: Want
ERROR telegpt_core::modules::chat       > Failed to handle chat message: A Telegram's error: Bad Request: message text is empty

Sorry for the inconvenience, but I cannot reproduce your issue on my machines (both Linux and macOS). If it's possible, you can add some logs at src/modules/chat/mod.rs:222:
async fn actually_handle_chat_message(...) {
  // ...
  let result = stream_model_result(
      &bot,
      &chat_id,
      &sent_progress_msg,
      progress_bar,
      msgs,
      openai_client,
      &config,
  )
  .await;

  // Add log message here:
  println!("OpenAI response: {:#?}", result);

  // ...
}

So you can see what OpenAI actually returns.

By the way, I have tried creating a new bot, but the same problem persists. From the feedback in the logs, it seems that the bot is trying to send a blank message to me.

Sorry for the inconvenience, but I cannot reproduce your issue on my machines (both Linux and macOS). If it's possible, you can add some logs at src/modules/chat/mod.rs:222:
async fn actually_handle_chat_message(...) {
  // ...
  let result = stream_model_result(
      &bot,
      &chat_id,
      &sent_progress_msg,
      progress_bar,
      msgs,
      openai_client,
      &config,
  )
  .await;

  // Add log message here:
  println!("OpenAI response: {:#?}", result);

  // ...
}

So you can see what OpenAI actually returns.

Hi, @unixzii ,I think I have found a problem after capturing packets, and the following is the corresponding JSON data of the OpenAI API endpoint, "https://api.openai.com/v1/chat/completions"
{
"error": {
"param":"messages",
"message":"This model's maximum context length is 4097 tokens. However, you requested 4108 tokens (12 in the messages, 4096 in the completion). Please reduce the length of the messages or completion.",
"code":"context_length_exceeded",
"type":"invalid_request_error"
}
}
After discovering this issue, I tried modifying 4096 to 2048 in src/modules/openai.rs:35, and it worked as normal.

You can refer to it.
use std::pin::Pin;
use std::sync::Arc;

use anyhow::Error;
use async_openai::types::{ChatCompletionRequestMessage, CreateChatCompletionRequestArgs};
use async_openai::Client;
use futures::{future, Stream, StreamExt};
use teloxide::dptree::di::{DependencyMap, DependencySupplier};

use crate::{config::SharedConfig, module_mgr::Module};

pub(crate) type ChatModelStream = Pin<Box<dyn Stream<Item = ChatModelResult> + Send>>;

#[derive(Clone, Debug, Default, Eq, PartialEq)]
pub(crate) struct ChatModelResult {
    pub content: String,
    pub token_usage: u32,
}

#[derive(Clone)]
pub(crate) struct OpenAIClient {
    client: Client,
    config: SharedConfig,
}

impl OpenAIClient {
    pub(crate) async fn request_chat_model(
        &self,
        msgs: Vec<ChatCompletionRequestMessage>,
    ) -> Result<ChatModelStream, Error> {
        let client = &self.client;
        let max_tokens = self.config.max_tokens.unwrap_or(2048).min(4096); // Set the maximum value to 4096
        let req = CreateChatCompletionRequestArgs::default()
            .model("gpt-3.5-turbo")
            .temperature(0.6)
            .max_tokens(max_tokens)
            .messages(msgs)
            .build()?;

        let stream = client.chat().create_stream(req).await?;
        Ok(stream
            .scan(ChatModelResult::default(), |acc, cur| {
                let content = cur
                    .as_ref()
                    .ok()
                    .and_then(|resp| resp.choices.first())
                    .and_then(|choice| choice.delta.content.as_ref());
                if let Some(content) = content {
                    acc.content.push_str(content);
                }
                future::ready(Some(acc.clone()))
            })
            .boxed())
    }

    pub(crate) fn estimate_prompt_tokens(&self, msgs: &Vec<ChatCompletionRequestMessage>) -> u32 {
        let mut text_len = 0;
        for msg in msgs {
            text_len += msg.content.len();
        }
        ((text_len as f64) * 1.4) as _
    }

    pub(crate) fn estimate_tokens(&self, text: &str) -> u32 {
        let text_len = text.len();
        ((text_len as f64) * 1.4) as _
    }
}

pub(crate) struct OpenAI;

#[async_trait]
impl Module for OpenAI {
    async fn register_dependency(&mut self, dep_map: &mut DependencyMap) -> Result<(), Error> {
        let config: Arc<SharedConfig> = dep_map.get();

        let openai_client = OpenAIClient {
            client: Client::new().with_api_key(&config.openai_api_key),
            config: config.as_ref().clone(),
        };
        dep_map.insert(openai_client);

        Ok(())
    }
}

Hi @Voldeemort, sorry for the late reply. I appreciate your investigation, that's very helpful. The default max token is 4096, however, you can change it in the configuration file. Don't know why the input prompt exceeded the limitation. That's a very strange behavior.

Hi @Voldeemort, sorry for the late reply. I appreciate your investigation, that's very helpful. The default max token is 4096, however, you can change it in the configuration file. Don't know why the input prompt exceeded the limitation. That's a very strange behavior.

Hi @unixzii Thank you for your reply. I tried to modify the max_token and it works, but many functions are not available, such as group chats and markdown. I don't know what the problem is, and eventually gave up. Anyway, thank you.

Thanks for that discover @Voldeemort! Maybe it's a restriction with my OpenAI account site that max_token is too large, change the token value to 800 also works smoothly for me.
I think you can add a "maxTokens": <your_value> in your config.json, which sounds better?

Thanks for that discover @Voldeemort! Maybe it's a restriction with my OpenAI account site that max_token is too large, change the token value to 800 also works smoothly for me.
I think you can add a "maxTokens": <your_value> in your config.json, which sounds better?

☹You can see my latest comment above, it seems that it's not related to this issue.

authors: Evergreentreejxc L-Ryland Voldeemort samoonm unixzii

repo: Helixform/TeleGPT


text:
Document the recomment way for clients to disconnect

When calling close_all_connections on a QuinnetClient, the server outputs this error log.
ERROR bevy_quinnet::shared::channels::reliable::send: Failed to shutdown Ordered Reliable Channel stream gracefully: connection lost

However, if I don't call close_all_connections and just terminate the client process, the server will eventually close the client connection with the same error as above. So it seems there's no "clean" way for a client to disconnect.

As an aside, if a client leaves or times out, I don't think the server should be logging an error. It's a common & expected behaviour, and users are able to handle it via the events bevy_quinnet provides.

Thanks, new changes are available on main to improve this behavior.
Channels send tasks won't try to flush anymore if we know that the peer connection is closed/lost. (And some error logs were downgraded to warnings)

authors: Henauxg tbillington


text:
I can't get websockets working with this package using Angular Universal

I am at a complete loss, as to what is going on, so I will post the Angular Universal server code that is running my express server.
I think there is something within Angular Unviersal's render engine that is completely just blocking websockets.
No configuration or anything I do can resolve the websocket without getting the:
'ws://localhost:4201/echo' failed: Connection closed before receiving a handshake response
// The Express app is exported so that it can be used by serverless Functions.
export function app() {
  const server = express();
  const distFolder = join(process.cwd(), 'dist/ai-ggggg-frontend-website/browser');
  const indexHtml = existsSync(join(distFolder, 'index.original.html')) ? 'index.original.html' : 'index';

  server.use('/swagger/api-docs', express.static('./dist/ai-heagggggd-website/browser/swagger'));

  // Our Universal express-engine (found @ https://github.com/angular/universal/tree/master/modules/express-engine)
  server.engine('html', ngExpressEngine({
    bootstrap: AppServerModule,
  }));

  server.set('view engine', 'html');
  server.set('views', distFolder);

  // Example Express Rest API endpoints
  // server.get('/api/**', (req, res) => { });
  // Serve static files from /browser
  server.get('*.*', express.static(distFolder, {
    maxAge: '1y'
  }));

  // All regular routes use the Universal engine
  server.get('*', (req, res) => {
    res.render(indexHtml, { req, providers: [{ provide: APP_BASE_HREF, useValue: req.baseUrl }] });
  });

  return server;
}

function run() {
  const port = process.env.PORT || 4000;

  // Start up the Node server
  const server = app();

  server.listen(port, () => {
    console.log(`Node Express server listening on http://localhost:${port}`);
  });
}

// Webpack will replace 'require' with '__webpack_require__'
// '__non_webpack_require__' is a proxy to Node 'require'
// The below code is to ensure that the server is run only when not requiring the bundle.
declare const __non_webpack_require__: NodeRequire;
const mainModule = __non_webpack_require__.main;
const moduleFilename = mainModule && mainModule.filename || '';
if (moduleFilename === __filename || moduleFilename.includes('iisnode')) {
  run();
}

export * from './src/main.server';

I had the same error because expressWs was expecting HTTPS, try 'wss://localhost:4201/echo'
Where is your expressWs code anyway?

repo: HenningM/express-ws


text:
Difícil visualisação do botão de Registro

Quando fui criar uma nova conta, demorei alguns segundos para encontrar o botão de fazer o cadastro. O contraste com o fundo está ruim, fazendo com que fique difícil de ver o botão.

Fixed

authors: Hateki lucianoMarchezan

repo: HestiaProject/PAxSPL


text:
Add support to Image Streamer OS Volumes

Scenario/Intent
Use the HPE Image Streamer's OS Volumes resource that's been recently implemented in the oneview-ruby-sdk
Environment Details

oneview Cookbook Version: 1.3.0
OneView Version: 3.0.0
OneView API Version: 300
chef-client Version: 12.18.31

Steps to Reproduce
Try to use the image streamer resource Os Volumes through the oneview cookbook
Expected Result
It should have the resource and be possible to use it
Actual Result
This is currently not implemented.

Actually, looking into the resource I see there are only GETs for this resource, so it'd likely make no sense to get this into chef. Closing this down as is and moving onto the next resource.

repo: HewlettPackard/oneview-chef


text:
No login permission in new iLO local account added

We are trying to add new iLO local accounts through iLO settings of server profile. The accounts are created successfully but it does not have login permission.
TF config file
Configure Oneview Provider
provider "oneview" {
ov_username   = var.username
ov_password   = var.password
ov_endpoint   = var.endpoint
ov_sslverify  = var.ssl_enabled
ov_apiversion = var.api_version
ov_ifmatch    = "*"
ov_domain = var.ov_domain
}
Update Server Profiles with iLO settings on DL Server
resource "oneview_server_profile" "DTAG_SP" {
count                = length(var.server_profile_attr)
name                 = var.server_profile_attr[count.index]["name"]
server_hardware_type = var.server_profile_attr[count.index]["server_hardware_type"]
hardware_name        = var.server_profile_attr[count.index]["hardware_name"]
type                 = "ServerProfileV12"
update_type          = "put"
management_processor {
manage_mp = true
mp_settings {
dynamic "local_accounts" {
for_each = var.local_accounts
content {
display_name                 = local_accounts.value.display_name
ilo_config_priv              = local_accounts.value.ilo_config_priv
remote_console_priv          = local_accounts.value.remote_console_priv
user_config_priv             = local_accounts.value.user_config_priv
user_name                    = local_accounts.value.user_name
virtual_media_priv           = local_accounts.value.virtual_media_priv
virtual_power_and_reset_priv = local_accounts.value.virtual_power_and_reset_priv
password                     = local_accounts.value.password
}
Environment used:
DL360 Gen 10 1
Oneview 6.3
Pull master branch and build oneview provider locally
Regards
Soibam

Currently login specific permission attribute is not yet available in the SDK. We have added this requirement as enhancement in our backlog. For urgency and setting up priority, please reach out to our Product Management team.

Closing this, as we have added this in our backlog. It will be picked as per priority.

@nabhajit-ray We also need this permission.
By when did you plan to schedule this fix ?
For information on Synergy SY480 Gen10 all possible permissions for a local account are (the missing one in bold) :

userConfigPriv
remoteConsolePriv
virtualMediaPriv
virtualPowerAndResetPriv
iLOConfigPriv
loginPriv
hostBIOSConfigPriv
hostNICConfigPriv
hostStorageConfigPriv

authors: AvijitOS SoibamRepo nabhajit-ray odesaphy


text:
Update julia queries

the Julia treesitter did a huge breaking change refactor recently that is now available in nvim-treesitter that breaks this plugin. There is no longer a parameter_list and the elements that were identified with parameter_list are now just argument_lists. So we can simply remove this query.
This also adds a couple missing queries for tuple expressions and curly brace expressions
Relevant PRs:

https://github.com/tree-sitter/tree-sitter-julia/pull/135
https://github.com/nvim-treesitter/nvim-treesitter/pull/6429

Thank you. Can you please update test test file (test/highlight/julia/regular.jl) as well? There are no examples of tuple_expression and curly_expression.

Yeah definitely @HiPhish ! I went ahead and updated the test/highlight/julia/regular.jl file to have examples of both a tuple_expression and a curly_expression

Sure thing. I just squashed the commits. I was thinking the commits were separate since one fixed a bug that was introduced when queries were removed upstream and then the other commit added in queries that were missing regardless of the changes upstream.
Thanks! Looking forward to this getting merged in :)

authors: HiPhish mehalter


text:
May I ask a question

Do we need to manually build the paths of the dataset in this train.npy file one by one

You may use os package to scan the data folder, e.g., file_list = os.listdir(your_data_path).

authors: HighwayWu sizhuaner

repo: HighwayWu/ImageForensicsOSN