[BUG] 403 when uploading avatar, 404 when trying to fetch existing one

Describe the bug
Hi! Thanks for the awesome project. I installed it with Docker on a server last week, and had some issues with uploads but I can't remember what it was and how I solved it unfortunately but anyway I managed to get it to work somehow.
Today I migrated everything to a new server, and have also updated the docker image tags to the latest version from yesterday.
Requests to fetch the avatar now return 404 (for the https://cv.domain.com/api/assets/uploads/1/1/1648217615970.jpg URL.
Thinking it was a permissions issue, I have even tried chmodding the bind mount for the uploads with 777 with no difference. The file exists and a local directory, containing the avatar I uploaded the other day, is mounted in the server container at /app/server/dist/assets/uploads/.
If I try to upload a new avatar, I get a 403 instead and the URL of the request for the upload is https://cv.domain.com/api/assets/uploads/1/1/1648242415126.jpg.
What am I missing? Thanks!
Product Flavor

[ ] Managed (https://rxresu.me)
[x] Self Hosted (Docker Compose)

To Reproduce

Try to load the page with an existing avatar or upload a new avatar

Expected behavior
I would expect the uploaded avatar to be fetched correctly, and to be able to change the avatar by uploading a new one.
Desktop (please complete the following information):

OS: macOS Monterey
Browser Chrome
Version 99

Additional context
Using the latest version v3.2.10 released yesterday.

Hi! This is really, really weird: I just logged in the app to try again and my image was there! 😂 So to me the opposite of what described in that issue happened. How come?

Tracking this issue in #818, will update once there's a clear solution to it.


Update UG for Moduletracker

Fixes #344

Codecov Report

Merging #352 into master will increase coverage by 0.10%.
The diff coverage is n/a.

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


Releases being unlisted

v3.8.2 was available just recently, then got unlisted and v3.8.1 was the latest available. Now, a few hours later, the latest version is v3.6.3 and our Azure pipelines using a HelmInstaller step with version set to "latest" are already failing, because --dependency-update is not supported.

There is an issue at the moment with the listing of releases. You can access the releases using the URL of the release. For example, https://github.com/helm/helm/releases/tag/v3.8.1, https://github.com/helm/helm/releases/tag/v3.8.2 etc.

This is currently being investigated.

Anyone hitting this issue should be able to get around it until it's fixed by unchecking the box shown below

This is a VERY common misconception about how GitHub refers to the “latest” release.
In GitHub, “latest” refers to the release that was most recently updated. If I were to backport a patch to an older release (say, Helm 3.6) and cut a new release, Helm 3.6.3 would become the “latest”. It DOES NOT mean that Helm 3.6.3 is the latest and most up-to-date TAG of Helm - just that it was the last RELEASE. Savvy?
As a result, the HelmInstaller GitHub action must NOT use the “latest” release page for this very same reason. Instead, they should rely on steps similar to Helm’s own get-helm-3 script:
https://github.com/helm/helm/blob/main/scripts/get-helm-3#L108
Hope this helps.

@bacongobbler Good point! However, the releases were not even listed in the GitHub response. Today it works fine again.

In this case, it appears something is up with GitHub’s release ordering causing some other release to be listed as “latest”. But my earlier point still stands - referring to the “latest” tag as the most up-to-date version is a big misstep.

Closing as resolved.

Quick note: it appears HelmInstaller is doing the right thing now. They scour the releases page and sort versions semantically. Wasn’t always the behaviour in the past, but glad they fixed that. :)
The action failed because the releases page was somehow corrupted - not much we can do to help there. Other repositories were listing similar issues:  https://github.com/Genymobile/scrcpy/issues/3253
Glad it’s been fixed and order has been restored


size of ad?

using createBanner I would like to determine the size of the banner that was displayed (i.e. SMART_BANNER).
is that somehow passed to success?

You cannot tell the size of Ad when creating it. When the device orientation changes, the ad size also changes.
You can try detecting orientation changes, then calculate the ad size yourself.
Here are the size of AdMob banners:
Screen width x 32|50|90	Smart Banner	Phones and Tablets	SMART_BANNER
See more details here:
https://developers.google.com/admob/android/banner?hl=en


Setting pageNumber in setNativeProps crashes app (Android Only)

I am setting pageNumber in setNativeProps  so that pdf directly opens to that particular page using following code, This works for zoom . iOS works fine and pdf is loaded with 2nd page but crashes the app on Android.
  <PDFView ref={(pdf)=>{this.pdfView = pdf;}}
                     key="sop"
                     path={this.pdfPath}
                     onLoadComplete = {(pageCount)=>{
                        console.log(`total page count: ${pageCount}`);
                        this.pdfView.setNativeProps({
                            pageNumber: 2
                        });

                     }}
                     style={styles.pdf}/>

<PDFView ref={(pdf)=>{this.pdfView = pdf;}}                          path={this.state.pdfLocation}                          onLoadComplete = {(pageCount)=>{                             this.pdfView.setNativeProps({                                 zoom: 1.5                             });                          }}                          pageNumber= {1}                          style={styles.pdf}/>


Jest-cli error

I have two error on run test . I dont solve it :/
Node:  v6.11.2
Npm : v3.10.10
First error is   Cannot read property 'Object.' of null
TypeError: Cannot read property 'Object.<anonymous>' of null
    at Runtime._execModule (/home/dby/test/jesttest/node_modules/jest-runtime/build/index.js:510:72)
    at Runtime.requireModule (/home/dby/test/jesttest/node_modules/jest-runtime/build/index.js:329:14)
    at Runtime.requireModuleOrMock (/home/dby/test/jesttest/node_modules/jest-runtime/build/index.js:405:19)
    at Function.bezier (/home/dby/test/jesttest/node_modules/react-native/Libraries/Animated/src/Easing.js:228:13)
    at ease (/home/dby/test/jesttest/node_modules/react-native/Libraries/Animated/src/Easing.js:94:14)
    at TimingAnimation._easing (/home/dby/test/jesttest/node_modules/react-native/Libraries/Animated/src/Easing.js:262:10)
    at TimingAnimation.onUpdate (/home/dby/test/jesttest/node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:338:22)
    at ontimeout (timers.js:386:14)
    at tryOnTimeout (timers.js:250:5)
    at Timer.listOnTimeout (timers.js:214:5)

package.json
  "dependencies": {
    "native-base": "^2.3.1",
    "react": "16.0.0-alpha.12",
    "react-native": "0.47.2",
    "react-native-vector-icons": "^4.3.0",
    "react-navigation": "^1.0.0-beta.11",
    "react-redux": "^5.0.6",
    "redux": "^3.7.2",
    "redux-thunk": "^2.2.0"
  },
"devDependencies": {
    "babel-cli": "^6.26.0",
    "babel-eslint": "^7.2.3",
    "babel-jest": "20.0.3",
    "babel-preset-react-native": "^3.0.1",
    "enzyme": "^2.9.1",
    "jest": "20.0.4",
    "jest-react-native": "^18.0.0",
    "react-addons-test-utils": "^15.6.0",
    "react-dom": "^15.6.1",
    "react-test-renderer": "^16.0.0-beta.5",
    "redux-mock-store": "^1.2.3"
  },
  "jest": {
    "preset": "react-native",
    "transformIgnorePatterns": [
      "/node_modules/(?!native-base)/",

    ]
  }

When I dont use jest --no-cache , throw this error
Second erro
/usr/lib/node_modules/jest-cli/node_modules/jest-runtime/build/index.js:510
    const wrapper = this._environment.runScript(transformedFile.script)[ ^

Please note this issue tracker is not a help forum. We recommend using StackOverflow or our discord channel for questions. Thank you :)

Same error here for a completely different kind of test, using Node.js backend, aside that there is not information about this.
 TypeError: Cannot read property 'Object.<anonymous>' of null
        at Runtime._execModule (/Users/nahuelveron/koae/node_modules/jest-runtime/build/index.js:511:22)
        at Runtime.requireModule (/Users/nahuelveron/koae/node_modules/jest-runtime/build/index.js:329:14)
        at Runtime.requireModuleOrMock (/Users/nahuelveron/koae/node_modules/jest-runtime/build/index.js:405:19)
        at OAIRouter._loadHandler_ (/Users/nahuelveron/koae/node_modules/koa-oai-router/dist/oai-router.js:241:22)
        at OAIRouter._loadHandlers_ (/Users/nahuelveron/koae/node_modules/koa-oai-router/dist/oai-router.js:224:28)
        at OAIRouter._hookEndpoint_ (/Users/nahuelveron/koae/node_modules/koa-oai-router/dist/oai-router.js:214:27)
        at OAIRouter.init (/Users/nahuelveron/koae/node_modules/koa-oai-router/dist/oai-router.js:175:16)
        at /Users/nahuelveron/koae/node_modules/koa-oai-router/dist/oai-router.js:190:15
        at <anonymous>

@cpojer I think that there is a bug here since it fails importing the module (on jest), maybe is a dynamic require issue?


fees: min multiplier definition and testing

closes #154

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

Current dependencies on/for this PR:

main

PR #174

PR #175

PR #176

PR #181

PR #182   👈

This stack of pull requests is managed by Graphite.

Merge activity

Jan 22, 1:25 PM: @rphmeier started a stack merge that includes this pull request via Graphite.


Add more test cases for ReplaceGuardClauseWithFunctionCallInspection postprocessing step

#31  👈
master

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @ermattt and the rest of your teammates on  Graphite


Make your Own Audio Books

Script Title - Audio Book Reader
what will change - Will add a new script which can read any audiobook based on the pdf provided can customize the speed and page number ranges.
Instructions

Create a new folder for your script and file/folder name should be appropriate.
Create a README.md in your folder for program Instructions
add requirements.txt if needed

Please add/delete options that are not relevant.

[x] Adding New Code
[x] Improving Documentation

Programming Language

[x] Python

:star2: Star it :fork_and_knife:Fork it :handshake: Contribute to it!
Discord server  - https://discord.gg/Hyasn97
Happy Hacktoberfest,

It's a helpful script. Thanks for your contribution to awesomeScripts.

It's a helpful script. Thanks for your contribution to awesomeScripts.

Thanks, https://github.com/Py-Contributors/awesomeScripts/pull/176 here is the PR for the same.


Using Curator ID List page does not show My NFTs.

If i am using only the curator ID - and connected with that wallet address - should i also see other NFTs that I own and have ability to manage them?

Oh interesting ~ so any auctions associated with that curator should show up in this view?

I think NFTs that the curator owns, including any that are up for auction. - So if I use my wallet as the curatorAddress to showcase a collection of unsold NFTs that i have minted. And then I go to the list page and sign in with that address - my NFTs should appear... this might actually be the wrong use case - but the thought came to mind - perhaps more of an additional feature.

I think this is a reasonable behavior, can update queries accordingly.


feat(core): can use Constructs to model collections of Stacks

Stacks no longer accept a cdk.App as scope, but a cdk.Construct like
other constructs. This makes it possible define a Construct to
represent your entire application, which can consist of a collection of
Stacks.
Stack names will automatically be derived from their location in the
construct tree, but it's also possible to specify the deployed name of
the stack by specifying the stackName property.
ALSO IN THIS CHANGE

Calling app.run() is no longer necessary, but can still safely
be done.
Update output message of awslint so that the linter rule suppression key
can easily be copy pasted.

Fixes #1479. This PR replaces #1582.

Pull Request Checklist

[x] Testing

Unit test added (prefer not to modify an existing test, otherwise, it's probably a breaking change)
CLI change?: coordinate update of integration tests with team
cdk-init template change?: coordinated update of integration tests with team

[x] Docs

jsdocs: All public APIs documented
README: README and/or documentation topic updated

[x] Title and Description

Change type: title prefixed with fix, feat will appear in changelog
Title: use lower-case and doesn't end with a period
Breaking?: last paragraph: "BREAKING CHANGE: <describe what changed + link for details>"
Issues: Indicate issues fixed via: "Fixes #xxx" or "Closes #xxx"

[x] Sensitive Modules (requires 2 PR approvers)

IAM Policy Document (in @aws-cdk/aws-iam)
EC2 Security Groups and ACLs (in @aws-cdk/aws-ec2)
Grant APIs (only if not based on official documentation with a reference)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license.

cc  @Doug-AWS, the user guide is going to need an update after this PR has been merged.

Are we also going to change the templates to use this new approach?

Are we also going to change the templates to use this new approach?

This is only for applications that consist of multiple stacks, our templates are single-stack applications.

Do you have some examples of how one might use this new feature?


[Task]: Debug flaky cypress failures

SubTasks
The cypress tests are flaky on daily TBP. Use git bisect to find the commit which may increased the flakiness

The git bisect didn't give any conclusive results about the commit that may have increased the flakiness.


TaskDaoCore returns the same Id on insert for all Tasks in test.

Look into logs, the insert fails with DataIntegerityViolation.

No DataIntegrityViolation found in logs and subsequent test did not encouter this bug.
Closing for now, will reopen if the issue pops up again.


[add-resource] New Mobile Detect Plugin

I would like to add my new (first) plugin to the Grav Repository.
Here are the project details: https://github.com/dimitrilongo/grav-plugin-mobile-detect
The Grav Mobile Detect Plugin for Grav CMS : adds the ability to detect mobile devices (including tablets). Plugin use https://github.com/serbanghita/Mobile-Detect PHP Class.

Very nice!
I just noticed that you have the blueprint version not matching the release version. You should also probably use semver.
In your blueprints.yaml version: 1.0.0 instead of version: '1.0' and then you should redo the tag/release and use 1.0.0 instead of v1.0.
Can you make this changes?
Thanks!

@w00fz thanks, version number match now.

Added! Should be available soon.


Allow callback for all 3 nouislider events

It looks like currently, we can only select which uislider event to cause an update to ngModel, ngFrom, and ngTo via the callback attribute and setting a $watch.
It would be fantastic if we can also run custom angular expressions any or all 3 of these events? A natural use case for this would be to update visual elements such as a tooltip on slide and do more expensive tasks such as saving to server on set or change
<div slider ng-model="test.single" start=1 end=10
on-slide="updateScreen($slideVal)" on-set="saveModel()"></div>

:+1:

This would be great! 👍


Fixed ByteProvider not reseting long process flag when submitting changes

Fixes issue #80.

Thank I will push this soon as possible 🙂


VWAP value is incorrect in new analyzer structure

Implementation looks to have changed from my original and is producing an erroneous value.  BTC today is circa 9k but VWAP is saying around 14k.
Perhaps revert to my original calculation logic.
Cheers

The original calculation logic ignored the period_count and didn't produce a dataframe of time indexed results, so it was no longer possible to use as that is that is now expected as a result. The intention was create the same behaviour correcting those issues.
The new formula contained a bug where the cumulative sum of values was being taken at the wrong point in the calculation... this should be fixed in https://github.com/CryptoSignal/crypto-signal/pull/261

merged


Bug in Stage App: Database Connection Dropped after Database Refresh

Context
Code in the API was not working for https://data-sources-v2.pdap.dev/api. Trying to make requests via search doesn't work.
Looking at the Runtime logs, I noticed an error stating "connection already closed".
After doing some poking around, I realized that there was an adverse interaction between the app and the Stage/Sandbox database.
Basically, the Stage/Sandbox database environments refresh nightly. The dev app, which connects to the stage database, does not.
The app uses the same connection object for the entire duration of its runtime. The problem is, if the database is dropped and recreated (as it is in stage and sandbox), that connection object becomes invalid. A new one needs to be created in its place.
In theory, this shouldn't take too much effort. One would simply need to detect when the connection is closed, and try re-opening it.
This doesn't currently affect production, where the database remains live indefinitely. But if the database connection does get dropped at some point, this would occur in production as well.
Requirements

[ ] if the database connection is dropped, try re-opening it

this should be baked into the app so it's addressed in all environments

Nice find! I edited the issue to put a clear requirement on it, ready to go

I implemented a solution for this which is mostly perfect. Allow me to explain:
I've found one easy but imperfect solution (1), another easy and perfect but slower solution (2) and other solutions which are more thorough but involve more effort (3 and 4)

The connection is only known to be dead after it tries and fails. In which case, it will fail on that request and produce an error, but will be corrected on subsequent requests. This requires only minor modifications to the code.
The connection is tested with a select statement prior to execution of every request. Avoids the one-off error in 1, but adds latency to every request as an additional operation is executed.
On all cursor executions, the operation will retry once if it detects a dead connection. Would be more thorough, and avoid the one-off error in 1, but requires more efforts.
Convert the code from psycopg2 to psycopg3, which allows connection pooling (https://www.psycopg.org/psycopg3/docs/advanced/pool.html). Converting from 2 to 3 in terms of code is a known-unknown, in that I know how to swap out code. The unknown-unknown (or unk-unk) is both how backwards compatible 3 is with 2, and thus how much logic might need to be modified; as well as how much it takes to set up connection pooling (probably not much, but you never know.

I opted for 1: The issue is rare (occurring only whenever the databases are refreshed), and currently only detected in stage and sandbox. And it was a trivial solution to implement. With 2, I worried about performance impacts, and with 3 and 4 I figured such changes, while maybe ultimately desirable, don't make sense in terms of priorities at this moment. Additionally, as @EvilDrPurple  is working on #303 , some of these problems might be obviated.


How could I add netty3.x dependency in pinpoint-bootstrap-core module ?

I need to use netty3.x APIs in pinpoint-bootstrap-core module, then I add this dependency in pom.xml. But after mvn package, I can not found netty3.x.jar in $AGENT_HOME/lib directory.
I hava tried to add netty3.x.jar in $AGENT_HOME/lib manually, but it dosen't work.
What should I do ?

Hello, @ganpengyu
I think this issue isn't relation with Pinpoint.
I think you should take it to Maven.
Hope you find a solution:)


Pr comment actions 4

I'm not sure why it won't pick up my changes in the current PR's, trying their online editor instead
Closes
✅ Pull Request Checklist:

[ ] Included link to corresponding React Spectrum GitHub Issue.
[ ] Added/updated unit tests and storybook for this change (for new code or code which already has tests).
[ ] Filled out test instructions.
[ ] Updated documentation (if it already exists for this component).
[ ] Looked at the Accessibility Practices for this feature - Aria Practices

📝 Test Instructions:

🧢 Your Project:

please typescript-report

please typescript-report

please typescript-report


DOC: Issue in the header file and dark/light theme not working

What's wrong with the existing documentation
the padding of the dark and light theme made the header file to look as such
by making changes in the mode icons. the header section would be looking nice
and the dark/light theme is not working, only the icon is been changed
the entire page is not been changed
Add ScreenShots

Light mode

Dark mode

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

Hii @anuragverma108 ,
i have worked on this issue. i would like to contribute to the project
would u please assign me to this issue under GSSOC'24

hi can you assign me this issue under GSSOC'24

Assigned! @Khanishsuresh

Hii @anuragverma108 ,
PR #377
The issue has been solved.
Please accept my PR


Does canal support network encryption (like weave does)?

What kind of request is this (question/bug/enhancement/feature request):
Question
Steps to reproduce (least amount of steps as possible):

Install Rancher 2.2.8 on a vm/bare metal with kubernetes 1.14.6
Create custom cluster with Canal as network provider which results in:
rancher/calico-cni:v3.7.4
rancher/calico-node:v3.7.4
rancher/coreos-flannel:v0.11.0

Question:
In this setup:

Is there any network encryption?
If not, is there "easy" support for network encryption like for weave, where a password is automatically set up for me?
If not, will there be support for network encryption with canal in rancher?
If not, is weave the recommended network provider for network encryption?

Notes from what I tried:
I think there is currently NO encryption in place, I checked the public network interface listening on udp 8472 with tcpdump and I was able to see (unencrypted) traffic.

CNI provider information is documented at https://rancher.com/docs/rancher/v2.x/en/faq/networking/cni-providers/
For Flannel ipsec backend we have https://github.com/rancher/rancher/issues/19809 open.


When running rs server, a Segmentation fault occurred during start execution

Before opening a new issue, we wanted to provide you with some useful suggestions (Click "Preview" above for a better view):

Consider checking out SDK examples.
Have you looked in our documentations?
Is you question a frequently asked one?
Try searching our GitHub Issues (open and closed) for a similar issue.

All users are welcomed to report bugs, ask questions, suggest or request enhancements and generally feel free to open new issue, even if they haven't followed any of the suggestions above :)

Required Info

Camera Model
{D457

Firmware Version
(Open RealSense Viewer --> Click info)

Operating System & Version
jetson

Kernel Version (Linux Only)
(e.g. 4.14.13)

Platform
NVIDIA Jetson

SDK Version
2.53.1 }

Language
c++

Segment
{Robot/Smartphone/VR/AR/others }

Issue Description
<Describe your issue / question / feature request / etc..>
Hello, I encountered a Segmentation fault when using RS server as the server and using start to obtain video streams on the client。
This is my code
int main()
{
rs2::net_device dev("<IP_ADDRESS>");
rs2::context ctx;
dev.add_to(ctx);
/* Metadata from context */
auto g = ctx.query_devices();
string serial_number;

for (auto t : g)
{
	auto name = rs2_camera_info::RS2_CAMERA_INFO_NAME;
	auto info = t.get_info(name);
	auto info_descriptor = rs2_camera_info_to_string(name);

	cout << info_descriptor << " : " << info << endl;

	name = rs2_camera_info::RS2_CAMERA_INFO_SERIAL_NUMBER;
	info = t.get_info(name);
	info_descriptor = rs2_camera_info_to_string(name);

	cout << info_descriptor << " : " << info << endl;

	serial_number= info;
}

/* Starting pipeline */
rs2::pipeline p(ctx);

cout << "pipeline create successfully" << endl;
rs2::config cfg;
// cfg.enable_device(serial_number);
// cfg.enable_stream(RS2_STREAM_COLOR, 0);
cfg.enable_stream(RS2_STREAM_COLOR, 640, 480, RS2_FORMAT_RGB8, 6);
cfg.enable_stream(RS2_STREAM_DEPTH, 640,480, RS2_FORMAT_Z16, 6);

cout << "enable_stream creat successfully" << endl;

p.start(cfg);

Segmentation fault occurred when executing to start。
This code can be used on Jetson5.1.1. But there was an error on Jetson4.6. May I ask why this is?

Hi @H-chun  Which Ubuntu version are you using, please?  If it is 20.04 then JetPack 5 is suitable for that, but JetPack 4.6 was designed for use with Ubuntu 18.04.

Hi @H-chun  Do you require further assistance with this case, please?  Thanks!

Case closed due to no further comments received.


vscode 1.65 reh-web build is missing code-server-xxx.sh

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: src release/1.65
OS Version:

Steps to Reproduce:

Checkout vscode sources, branch release/1.65
build reh-web:

yarn install
node --max_old_space_size=4096 ./node_modules/gulp/bin/gulp.js vscode-reh-web-linux-x64
or
node --max_old_space_size=4096 ./node_modules/gulp/bin/gulp.js vscode-reh-web-darwin

Check the resulting build folder for missing server.sh / code-server-xxx.sh.

Previously vscode-reh-web-linux-x64 contained server.sh

Probably I'm looking for bin/code-server-oss which is in place.


[core] Use of static fields instead of enum constants #2

Class com.google.zxing.qrcode.decoder.ErrorCorrectionLevel
package com.google.zxing.qrcode.decoder;

/* JADX INFO: Failed to restore enum class, 'enum' modifier removed */
public final class ErrorCorrectionLevel extends java.lang.Enum<com.google.zxing.qrcode.decoder.ErrorCorrectionLevel> {
    private static final /* synthetic */ com.google.zxing.qrcode.decoder.ErrorCorrectionLevel[] $VALUES;
    private static final com.google.zxing.qrcode.decoder.ErrorCorrectionLevel[] FOR_BITS;

    /* renamed from: H */
    public static final com.google.zxing.qrcode.decoder.ErrorCorrectionLevel f976H = new com.google.zxing.qrcode.decoder.ErrorCorrectionLevel("H", 3, 2);

    /* renamed from: L */
    public static final com.google.zxing.qrcode.decoder.ErrorCorrectionLevel f977L = new com.google.zxing.qrcode.decoder.ErrorCorrectionLevel("L", 0, 1);

APK: https://drive.google.com/file/d/1ICfL4A22K-KhVkw5RwvWdLJA8111iYvG/view?usp=sharing

Hey @skylot!
I see a lot of such bugs. May you please check this one?

@sergey-wowwow this case fixed. But notice that other cases may have a different pattern, and not yet covered.

Thanks @skylot! But there is one more issue
APK: https://drive.google.com/file/d/1XlE3s-W5H5N5RfjP_1wGtdBwk6ycYGD8/view?usp=sharing
Class androidx.constraintlayout.solver.SolverVariable
    /* renamed from: androidx.constraintlayout.solver.SolverVariable$1 */
    static /* synthetic */ class C01871 {
        static final /* synthetic */ int[] $SwitchMap$androidx$constraintlayout$solver$SolverVariable$Type = new int[androidx.constraintlayout.solver.SolverVariable.Type.values().length];

        /* JADX WARNING: Can't wrap try/catch for region: R(12:0|1|2|3|4|5|6|7|8|9|10|12) */
        /* JADX WARNING: Code restructure failed: missing block: B:13:?, code lost:
            return;
         */
        /* JADX WARNING: Failed to process nested try/catch */
        /* JADX WARNING: Missing exception handler attribute for start block: B:3:0x0014 */
        /* JADX WARNING: Missing exception handler attribute for start block: B:5:0x001f */
        /* JADX WARNING: Missing exception handler attribute for start block: B:7:0x002a */
        /* JADX WARNING: Missing exception handler attribute for start block: B:9:0x0035 */
        static {
            $SwitchMap$androidx$constraintlayout$solver$SolverVariable$Type[androidx.constraintlayout.solver.SolverVariable.Type.UNRESTRICTED.ordinal()] = 1;
            $SwitchMap$androidx$constraintlayout$solver$SolverVariable$Type[androidx.constraintlayout.solver.SolverVariable.Type.CONSTANT.ordinal()] = 2;
            $SwitchMap$androidx$constraintlayout$solver$SolverVariable$Type[androidx.constraintlayout.solver.SolverVariable.Type.SLACK.ordinal()] = 3;
            $SwitchMap$androidx$constraintlayout$solver$SolverVariable$Type[androidx.constraintlayout.solver.SolverVariable.Type.ERROR.ordinal()] = 4;
            $SwitchMap$androidx$constraintlayout$solver$SolverVariable$Type[androidx.constraintlayout.solver.SolverVariable.Type.UNKNOWN.ordinal()] = 5;
        }
    }

        int i = androidx.constraintlayout.solver.SolverVariable.C01871.$SwitchMap$androidx$constraintlayout$solver$SolverVariable$Type[type.ordinal()];
        if (i == 1) {

Can those enum constant be also addressed by their names, but not synthetic ints?

Can those enum constant be also addressed by their names, but not synthetic ints?

Sure, usually such arrays used to remap keys to made switch compact (packed-switch insn) and jadx can handle such cases.
But here switch was replaced by if-else chain (d8 do it for small switches) so jadx missed that case.
I will try to fix it. And thanks for the sample! :smiley:

The issue is fixed

The issue is fixed

The following enum pattern is not covered.
Class: p000X.EnumC10380bi (X.0bi)
APK: Instagram v<IP_ADDRESS>.132
package p000X;

import java.util.Collections;
import java.util.Map;

/* JADX INFO: Failed to restore enum class, 'enum' modifier removed */
/* renamed from: X.0bi  reason: invalid class name and case insensitive filesystem */
public final class EnumC10380bi extends Enum {
    public static final Map A01 = Collections.unmodifiableMap(new C10370bh());
    public static final /* synthetic */ EnumC10380bi[] A02;
    public static final EnumC10380bi A03;
    public static final EnumC10380bi A04;
    public static final EnumC10380bi A05;
    public static final EnumC10380bi A06;
    public static final EnumC10380bi A07;
    public static final EnumC10380bi A08;
    public static final EnumC10380bi A09;
    public static final EnumC10380bi A0A;
    public static final EnumC10380bi A0B;
    public static final EnumC10380bi A0C;
    public final int A00;

    static {
        EnumC10380bi r26 = new EnumC10380bi("CONNECT", 0, 1);
        A04 = r26;
        EnumC10380bi r25 = new EnumC10380bi("CONNACK", 1, 2);
        A03 = r25;
        EnumC10380bi r24 = new EnumC10380bi("PUBLISH", 2, 3);
        A08 = r24;
        EnumC10380bi r23 = new EnumC10380bi("PUBACK", 3, 4);
        A07 = r23;
        EnumC10380bi r22 = new EnumC10380bi("PUBREC", 4, 5);
        EnumC10380bi r21 = new EnumC10380bi("PUBREL", 5, 6);
        EnumC10380bi r20 = new EnumC10380bi("PUBCOMP", 6, 7);
        EnumC10380bi r19 = new EnumC10380bi("SUBSCRIBE", 7, 8);
        A0A = r19;
        EnumC10380bi r18 = new EnumC10380bi("SUBACK", 8, 9);
        A09 = r18;
        EnumC10380bi r17 = new EnumC10380bi("UNSUBSCRIBE", 9, 10);
        A0C = r17;
        EnumC10380bi r5 = new EnumC10380bi("UNSUBACK", 10, 11);
        A0B = r5;
        EnumC10380bi r3 = new EnumC10380bi("PINGREQ", 11, 12);
        A05 = r3;
        EnumC10380bi r1 = new EnumC10380bi("PINGRESP", 12, 13);
        A06 = r1;
        A02 = new EnumC10380bi[]{r26, r25, r24, r23, r22, r21, r20, r19, r18, r17, r5, r3, r1, new EnumC10380bi("DISCONNECT", 13, 14)};
    }

    public static EnumC10380bi valueOf(String str) {
        return (EnumC10380bi) Enum.valueOf(EnumC10380bi.class, str);
    }

    public static EnumC10380bi[] values() {
        return (EnumC10380bi[]) A02.clone();
    }

    public EnumC10380bi(String str, int i, int i2) {
        this.A00 = i2;
    }
}

@enriquejr99 thanks for the report. I made a fix for your case.
Issue here caused by several removed fields, so corresponding enum values are not saved and can't be used, but still appear in values arrays. For such values I made fake fields and add comment /* Fake field, exist only in values array */ so enum now looks like:
public enum EnumC07570bi {
    CONNECT(1),
    CONNACK(2),
    PUBLISH(3),
    PUBACK(4),
    /* Fake field, exist only in values array */
    PUBREC(5),
    /* Fake field, exist only in values array */
    PUBREL(6),
    /* Fake field, exist only in values array */
    PUBCOMP(7),
    SUBSCRIBE(8),
    SUBACK(9),
    UNSUBSCRIBE(10),
    UNSUBACK(11),
    PINGREQ(12),
    PINGRESP(13),
    /* Fake field, exist only in values array */
    DISCONNECT(14);

    public static final Map A01 = Collections.unmodifiableMap(new C07560bh());
    public final int A00;

    /* access modifiers changed from: public */
    EnumC07570bi(int i) {
        this.A00 = i;
    }
}

Great! Thanks.

baccarat【   www.baijiale.icu   】Is a very popular gambling game, its rules are simple but requires a certain strategy to get the best winning rate. We will introduce several common baccarat playing methods to help players get a higher winning rate in the game.

Football【   www.bongdaworld.com   】 is a popular sport in Vietnam and is loved by many people. Local and national football tournaments such as the V-League, National Cup, and the AFC U23 Championship have attracted the interest of millions of fans. In this article, I will mention some highlights of football in Vietnam and the outstanding players of the national team.

Gaming is a popular sport in Vietnam that is enjoyed by many people. Local and national football events such as the V-League, National Cup, AFC U23 Championship attract the interest of millions of football fans.


Variable arguments generated from JS although not applicable

TypeScript Version:  4.0.3
Search Terms: arguments, var args
Code
I'm trying to produce a Typscript Declaration file for my JS project:
src/example.js
class Example {
	/**
	 * Example
	 *
	 * @param {object} [args={}]
	 */
	constructor(args = {}) {
		/**
		 * @type object
		 */
		this.arguments = args;
	}
}

tsconfig.json
{
	"include": ["./src/"],
	"typeAcquisition": {
	  "enable": true
	},
	"compilerOptions": {
		"allowJs": true,
		"declaration": true,
		"emitDeclarationOnly": true,
		"moduleResolution": "node",
		"outFile": "openeo.d.ts",
		"target": "es2017"
	}
}

cmd line:
npx typescript --project tsconfig.json

Expected behavior:
declare module "builder/node" {
    export = Example;
    class Example {
        /**
         * Example
         *
         * @param {object} [args={}]
         */
        constructor(args?: object);
        /**
         * @type {object}
         */
        arguments: object;
    }
}

Actual behavior:
I get a constructor with two args parameters, which is invalid:
declare class Example {
    /**
     * Example
     *
     * @param {object} [args={}]
     */
    constructor(args?: object, ...args: any[]);
    /**
     * @type object
     */
    arguments: object;
}

Interestingly, if I change this.arguments to this.xyz in the JS code, it works properly and generates:
declare class Example {
    /**
     * Example
     *
     * @param {object} [args={}]
     */
    constructor(args?: object);
    /**
     * @type object
     */
    xyz: object;
}

It seems it thinks that this.arguments is a reference to arguments, but it is obviously not.
Playground Link: Playground Link
Related Issues: No

It seems it thinks that this.arguments is a reference to arguments, but it is obviously not.

Yep, exactly this

I just want to add that this also happens in normal methods, not only in constructors.
Just mentioning it, because 75ed47c explicitly refers to constructors.
Simplified example:
	addParametersToProcess(args) {
		for(let key in args) {
			let arg = processArgs[key];
			this.handleArgs(arg.arguments);
		}
	}

This time I guess it's arg.arguments, which is causing the issue.
Results in:
        addParametersToProcess(args: object, ...args: any[]): void;


[Bug]: App breaks when running a command before runtime is active

Is there an existing issue for the same bug?

[X] I have checked the existing issues.

Describe the bug and reproduction steps

Start new conversation
Run a command in the terminal as the runtime is initializing (e.g., pwd)
As soon as the runtime is supposed to be ready, we get a There was an error while connecting to the runtime. Please refresh the page.

Refreshing the page does NOT work. The Docker container is actually killed when the error is thrown
OpenHands Installation
Docker command in README
OpenHands Version
0.15.1
Operating System
MacOS
Logs, Errors, Screenshots, and Additional Context

I've hit this randomly too, and it didn't seem to require sending a bash command, I think I clicked the workspace refresh button instead and that caused the issue.

Then it might be any request (most likely one that depends on the runtime) that is made before it is active

It might be related to https://github.com/All-Hands-AI/OpenHands/issues/5574
I've encountered that one recently as well.

This seems pretty important @amanape. Especially if it's not recoverable.

We've seen a few issues now that interacting with OpenHands before things are ready causes issues. Why not just make it so you can't interact (chat/terminal) until everything is ready?

This is fixed in main as it doesn't let you interact before everything is ready now.


Fixing the build for broker-cli and updating the documentation.

Hi,
The broker-cli to use to test the local development osba build is broken. Fixing it.
Let me know if you need to make any changes.

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

@ageekymonk does this fix #493?


Fix absolute and relative paths

fs.resolve allow to specify relative paths appending process.cwd() but skip absolute paths.

Hi, what's the purpose of this change? did you have any problem?

Yep. I was trying to read configs which are stored in directory outside of application and CWD, but could not do that with absolute nor relative paths.

Thank you flesler for for that module - and thank you rumkin for making it useable for my needs.

@rumkin @oger000 I made a commit that includes the line you suggested plus tests, a version bump and more.
Can you guys try this version and confirm it now works? I won't publish it to NPM until it's confirmed.
Just in case I made a minor version bump because I'm not 100% sure it won't break stuff.
I noted that, on Windows+GitBash, using something like __dirname will break. I don't think this was supported before so this is still a positive change regardless.
Thanks

UPDATE: Tried using path.resolve() instead of path.join(), it solved the issue with Windows and also resolves relative paths without the need to prepend process.cwd() explicitely.
Can you please re-test? I added 2 tests and they all pass.
Thanks

Releasing it then

I can't test it on windows. Tested on ubuntu 14.04. All tests are passed.

Does your case now work with these changes?

Yes, it works fine. Thanks!

Works for me.

Great, I published 1.3.0. Just in case I bumped the minor version


add istioutil for client-side proxy injection into k8s resource files

Add a utility for client-side proxy injection into kubernetes resource files. Options include ability to override the default image, manager/mixer ports, and logging verbosity. Files with multiple YAML documents are supported and non pod-based resources are left unmodified.
This is intended to be short lived until a proper admission controller is written at which time this tool should be deleted.
$ istioutil inject --help
Inject istio runtime into existing kubernete resources

Usage:
   inject [flags]

Flags:
      --discoveryPort int     Manager discovery port (default 8080)
  -f, --filename string       Unmodified input kubernetes resource filename
      --initImage string      Istio init image (default "gcr.io/istio-testing/init:latest")
      --mixerPort int         Mixer port (default 9091)
  -o, --output string         Modified output kubernetes resource filename
      --runtimeImage string   Istio runtime image (default "gcr.io/istio-testing/runtime:latest")
      --sidecarProxyUID int   Sidecar proxy UID (default 1337)
      --verbosity int         Runtime verbosity (default 2)

I'll add a link to doc/proxy-injection.md from istio/istio/doc in a follow-up PR. Alternatively, we could move this utility to istio/istio and add additional subcommands to generate mixer and manager resource files from templates with overrides for image name until the base definitions settle down.

re: tests, I originally considered diffing got vs. want YAML files but didn't think the ordering of content would be consistent re: golang maps. However, verifying the unmarshalled version should work (i.e. PodTemplateSpec).
Moving the majority of the code to a helper package should be fine. Perhaps platform/kube/inject since its k8s specific and presumably our AC code would eventually live under platform/kube as well?

In the longer run, injection should be inside platform/kube but cmd is coupled with k8s so you can choose either place.  Not sure how to deal with comparing to test templates...

Updated the PR based on the comments here and discussion in slack. I made the following changes:

Moved inject subcommand into istioctl as kube-inject as it's one less binary to worry about shipping around. We can deprecate the command once we have a proper admission controller.
Added tests for common resource types.
Added version info into resource annotation so we can track which version of istioctl was used to inject the proxy.
Updated documentation. I'm working on updating the istio/istio documentation and examples in parallel and will likely leave the duplicate version in manager for completeness.

Please see comments for docs. Also I suggest you test this with bookinfo demo once to save us from any pain. Echo is already validated through manager tests.

Will do. I'll address that as part of https://github.com/istio/istio/pull/75

Jenkins job manager/presubmit passed

Jenkins job manager/presubmit passed

Jenkins job manager/presubmit passed

Jenkins job manager/presubmit passed


update to x509 0.4.7

Signed-off-by: Matthew B White<EMAIL_ADDRESS>

https://github.com/hyperledger/fabric-sdk-node/pull/33 - this is merged and I stole your changes so this can be abandoned

@mbwhite when I trying npm install with dependencies including fabric-client 1.4.4
in nodejs 10.17  environment,
I see
><EMAIL_ADDRESS>install ***/node_modules/x509
> node-gyp rebuild
make: Entering directory '***/node_modules/x509/build'
  CXX(target) Release/obj.target/x509/src/addon.o
  CXX(target) Release/obj.target/x509/src/x509.o
../src/x509.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE verify(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/x509.cc:55:65: warning: ‘v8::String::Utf8Value::Utf8Value(v8::Local<v8::Value>)’ is deprecated: Use Isolate version [-Wdeprecated-declarations]
   std::string cert_path = *String::Utf8Value(info[0]->ToString());

Is this patch helpful to my issue?

Hello; yes I believe it might be;

The aim was to remove the deprecation warnings from the @ampretia/x509 library

Regards, Matthew.
Matthew B White  IBM Blockchain Solutions Architect

Email me at<EMAIL_ADDRESS>Find me on StackOverflow, and generally at  calanais.me.uk

Note: restricted availability for meetings 14:30 to 17:00 UK Tuesday
IBM United Kingdom Limited, Hursley Park, Winchester, Hampshire, SO21 2JN
"The wrong answers are the ones you go looking for when the right answers stare you in the face"

----- Original message -----From: Yuxiang LIU<EMAIL_ADDRESS>hyperledger/fabric-sdk-node<EMAIL_ADDRESS>Matthew B White<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>[EXTERNAL] Re: [hyperledger/fabric-sdk-node] update to x509 0.4.7 (#34)Date: Fri, Nov 22, 2019 7:28 AM
@mbwhite when I trying npm install with dependencies including fabric-client 1.4.4in nodejs 10.17  environment,I see

<EMAIL_ADDRESS>install /node_modules/x509> node-gyp rebuildmake: Entering directory '/node_modules/x509/build'  CXX(target) Release/obj.target/x509/src/addon.o  CXX(target) Release/obj.target/x509/src/x509.o../src/x509.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE verify(Nan::NAN_METHOD_ARGS_TYPE)’:../src/x509.cc:55:65: warning: ‘v8::String::Utf8Value::Utf8Value(v8::Localv8::Value)’ is deprecated: Use Isolate version [-Wdeprecated-declarations]   std::string cert_path = *String::Utf8Value(info[0]->ToString());
Is this patch helpful to my issue?
—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe.
 Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU

@heatherlp abandoning... :-)

Hello; yes I believe it might be;   The aim was to remove the deprecation warnings from the @ampretia/x509 library     Regards, Matthew. Matthew B White  IBM Blockchain Solutions Architect   Email me at<EMAIL_ADDRESS>Find me on StackOverflow, and generally at  calanais.me.uk   Note: restricted availability for meetings 14:30 to 17:00 UK Tuesday  IBM United Kingdom Limited, Hursley Park, Winchester, Hampshire, SO21 2JN "The wrong answers are the ones you go looking for when the right answers stare you in the face"      ----- Original message -----From: Yuxiang LIU<EMAIL_ADDRESS>hyperledger/fabric-sdk-node<EMAIL_ADDRESS>Matthew B White<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>[EXTERNAL] Re: [hyperledger/fabric-sdk-node] update to x509 0.4.7 (#34)Date: Fri, Nov 22, 2019 7:28 AM  @mbwhite when I trying npm install with dependencies including fabric-client 1.4.4in nodejs 10.17 environment,I see
@.*** install /node_modules/x509> node-gyp rebuildmake: Entering directory '/node_modules/x509/build'  CXX(target) Release/obj.target/x509/src/addon.o  CXX(target) Release/obj.target/x509/src/x509.o../src/x509.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE verify(Nan::NAN_METHOD_ARGS_TYPE)’:../src/x509.cc:55:65: warning: ‘v8::String::Utf8Value::Utf8Value(v8::Localv8::Value)’ is deprecated: Use Isolate version [-Wdeprecated-declarations]   std::string cert_path = *String::Utf8Value(info[0]->ToString());
Is this patch helpful to my issue? —You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe.  Unless stated otherwise above: IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU

I found it is due to my project dependency conflicts instead of fabric-sdk-node itself, so I deleted my spamming reply :-)


New Fixture API Classes

After implementing #3, the module should be filled with classes like:

Annotations
-- Fixture Classes
-- Method Mapping
Interfaces
-- Type Converters
Data Transfer Objects
etc.

In order to implement those classes, there needs to be a design proposal. This issue will function as a discussion platform until we can actually implement something.

I'll draft my proposal in this Gist:
https://gist.github.com/slu-it/8de64a392a7049a7bd34efe440ea514e

Pull Request containing a real implementation: #22

After merge of #22 there are still some things to do for this issue to be resolved:

JavaDoc
TypeConverter implementations for Predicate<> of Integer, Long,  Float and  Double

tests are part of #27


How to log/get Retry mode Failure details (HTTP Response code, Response Time, etc..) ?

Hi,
I am using envoy v1.12.1 - load_assignment with two endpoints as below,
- route:
                      cluster: cluster1
                      auto_host_rewrite: true
                      prefix_rewrite: "this/is/new"
                      retry_policy:
                        retry_on: "connect-failure,refused-stream,unavailable,cancelled,resource-exhausted,retriable-status-codes"
                        num_retries: 3

                        retriable_status_codes: ["401", "404", "500", "502", "503", "504"]
                        per_try_timeout: "5s"

                        retry_priority:
                          name: envoy.retry_priorities.previous_priorities
                          config:
                            update_frequency: 2

                    match:
                      prefix: "this/is/old"

clusters:
      - name:  cluster1
        connect_timeout: 10s
        type: STRICT_DNS
        lb_policy: ROUND_ROBIN
        load_assignment:
          cluster_name: cluster1
          endpoints:
          - priority: 1
            lb_endpoints:

            - endpoint:
                address:
                  socket_address: { address: "e1.com", port_value: 443 }
          - priority: 0
            lb_endpoints:

            - endpoint:
                address:
                  socket_address: { address: "e2.com", port_value: 443}

As per my understanding, When priority 0 endpoint fails, it will try to hit priority 1 endpoint.
In Such cases, Is it possible to get/log priority 0 endpoint hit failure reasons? As of now we can get logs of priority 1 endpoint hit alone by default.

I think you need to use upstream access logs.

I think you need to use upstream access logs.

@mattklein123 Using Upstream access logs, I am able get priority 1 endpoint (as per above) logs. How about priority 0 endpoint failure reason? Is there any way to get that?

Any update on this issue?


Optimization: F()

Sorry if these are obvious to old-hands, but as someone learning something new each day, there are times to go back and fix old ways of doing things !
F("foo") says return a pointer to program memory rather than ram. It works well with Serial.print and Serial.println, I'm not sure how well it works with other functions.
See https://forum.arduino.cc/t/what-does-the-f-do-exactly/89384 for a good explanation.
Task is to go through code and change uses of Serial.println("foo") to Serial.println(F("foo")), same for "print" and to explore other uses of strings to see if they can be changed too (useful patterns could be added here, or to comments.)

Example - for a string of 27 chars
Before F()
Reduced Ram use by 20 bytes; No diff Instruction Ram; Increased Flash 28.
Since Ram is scarcer than Flash,
. Variables and constants in RAM (global, static), used 31340 / 80192 bytes (39%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ DATA     1540     initialized variables
╠══ RODATA   2768     constants
╚══ BSS      27032    zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 61123 / 65536 bytes (93%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ ICACHE   32768    reserved space for flash instruction cache
╚══ IRAM     28355    code in IRAM
. Code in flash (default, ICACHE_FLASH_ATTR), used 332216 / 1048576 bytes (31%)
║   SEGMENT  BYTES    DESCRIPTION
╚══ IROM     332216   code in flash

After F()
. Variables and constants in RAM (global, static), used 31320 / 80192 bytes (39%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ DATA     1540     initialized variables
╠══ RODATA   2740     constants
╚══ BSS      27040    zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 61123 / 65536 bytes (93%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ ICACHE   32768    reserved space for flash instruction cache
╚══ IRAM     28355    code in IRAM
. Code in flash (default, ICACHE_FLASH_ATTR), used 332244 / 1048576 bytes (31%)
║   SEGMENT  BYTES    DESCRIPTION
╚══ IROM     332244   code in flash

Note that
Serial.print(F("Dispatching: ")); Serial.println(topic);
was 16 bytes less Flash than
Serial.print(F("Dispatching: ")) + topic);

Final result ... saved 512 bytes (1.5%) RAM and added 444 bytes Flash  (0.13%)
Variables and constants in RAM (global, static), used 30828 / 80192 bytes (38%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ DATA     1540     initialized variables
╠══ RODATA   2248     constants
╚══ BSS      27040    zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 61123 / 65536 bytes (93%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ ICACHE   32768    reserved space for flash instruction cache
╚══ IRAM     28355    code in IRAM
. Code in flash (default, ICACHE_FLASH_ATTR), used 332660 / 1048576 bytes (31%)
║   SEGMENT  BYTES    DESCRIPTION
╚══ IROM     332660   code in flash


Remove engine-api dependency from docker/docker/daemon

There is a bottleneck for updating anything api facing in docker daemon after engine-api was separated out. Previously some aspects of it were discussed in https://github.com/docker/docker/issues/19957 . The gist of it is that for some changes in daemon, code needs to be changed in this repo although they can really only be tested with a daemon. Also, because of docker/docker vendors engine-api there is a delay on getting changes merged and possibility on different changes getting mixed up or bugfixes getting blocked by features.
My proposal is to remove engine-api dependancy from docker/docker/daemon pkg(also container, builder etc.). The docker/docker/client pkg would keep it's imports. Once the client binary is moved out of docker/docker repo, the main repo would not depend on API any more.
This change would mean the types that engine requires would be defined in docker/docker repo. For easier client side usage engine-api could redefine all the types with aliases or even keep exceptions if they should be needed for some backwards compatibility features. The engine-api would vendor one specific version of the types from docker/docker, not the other way like it is now. To keep the library size small we would keep the convention in docker/docker that we always define exported types in separate packages.
The product on docker-engine is the HTTP API, not engine-api. So docker-engine should define the types that HTTP API is using.

@tonistiigi I like the idea for the long term :+1:. The first step is then to backport the daemon specific one in docker/docker, removing the dependency and then decide wether or not we want to vendor some or just re-define them.

Creating a cycled dependency doesn't sound any better to me, tbh.

@calavera docker/docker "daemon" struct and docker/engine-api struct could be completely independent, but yeah, we shouldn't create a cycled dependency.

@calavera There is no cycled dependency. Client depends on engine-api and does not depend on daemon. Daemon does not depend on engine-api. Engine-api depends on types from daemon subpackages(optional but I think cleaner).

Seems like keeping 2 repos so that so tightly linked is a lot of work/pain for very little benefit - as we've seen.
If the client were a totally independent project and changes didn't propagate in both directions, and had its own life cycle, then perhaps this would be a good option. But in reality they're very linked and I don't see the benefit of trying to force a split.  As we've seen, many times, we end up with PRs in two repos and that causes pain and extra work - so let's just stop that.
IMO, we should move it all back to one repo with very clear pkg lines/boundaries, so that people can vendor at the appropriate spot (APIs, types, etc...) but allows for a single PR to introduce changes from CLI->API->types->Engine (and tests at CLI,integration) all in one shot - its so much easier to review/test that way.

closed by docker/docker#26349


fix: use alertInstanceLabelFilter instead of alertName

Fixes #2820
Signed-off-by: Daniel Chambre<EMAIL_ADDRESS>

Hi @smiyc . The code looks good, I tested it. There's a problem with your commit, though: see the DCO alert on signing your commit.

/ok-to-merge


How to sign a message through a wallet (for example, a metamask)?

Is it available in this version?
Tried but no result await _wc.Request<PersonalSign, string>(session.Topic, req, req.ChainId);

Bump, I can't figure out how to sign messages either

Hello,
This is how you can use personal_sign.
[RpcMethod("personal_sign")]
[RpcRequestOptions(Clock.ONE_MINUTE, 99998)]
public class PersonalSign : List<string>
{
    public PersonalSign(string hexUtf8, string account) : base(new[] {
    {
    }

    public PersonalSign()
    {
    }
}

public class Caip25Address
{
    public string Address;
    public string ChainId;
}

public Caip25Address GetCurrentAddress(string chain)
{
    if (string.IsNullOrWhiteSpace(chain))
        return null;

    var defaultNamespace = Session.Namespaces[chain];

    if (defaultNamespace.Accounts.Length == 0)
        return null;

    var fullAddress = defaultNamespace.Accounts[0];
    var addressParts = fullAddress.Split(":");

    var address = addressParts[2];
    var chainId = string.Join(':', addressParts.Take(2));

    return new Caip25Address()
    {
        Address = address,
        ChainId = chainId
    };
}

public Caip25Address GetCurrentAddress()
{
    var currentSession = Client.Session.Get(Client.Session.Keys[0]);

    var defaultChain = currentSession.Namespaces.Keys.FirstOrDefault();

    if (string.IsNullOrWhiteSpace(defaultChain))
        return null;

    return GetCurrentAddress(defaultChain);
}

// Usage: `await PersonalSignAsync("Hello World!")`
public async Task<string> PersonalSignAsync(string message)
{
    var account = GetCurrentAddress();

    var hexUtf8 = "0x" + Encoding.UTF8.GetBytes(message).ToHex();
    var request = new PersonalSign(hexUtf8, account.Address);

    var result = await Client.Request<PersonalSign, string>(Session.Topic, request, account.ChainId);

    return result;
}

Closing this issue, feel free to reopen if you have any questions.

The signature window does not open in the application:
public async Task<string> PersonalSignAsync(string message)
    {
        //var account = GetCurrentAddress();
        var (session, address, chainId) = GetCurrentAddress();

        var hexUtf8 = HexStringUTF8ConvertorExtensions.ToHexUTF8(message); //"0x" + Encoding.UTF8.GetBytes(message).ToHex();
        var request = new PersonalSign(hexUtf8, address);

        var result = await _wc.Request<PersonalSign, string>(session.Topic, request, chainId);
        return result;
    }

    public async void SendSignRequest()
    {
        /*
        var (session, address, chainId) = GetCurrentAddress();
        if (string.IsNullOrWhiteSpace(address))
            return;

        var request = new EthSendTransaction(new Transaction()
        {
            From = address,
            To = address,
            Value = "0"
        });

        var result = await _wc.Request<EthSendTransaction, string>(session.Topic, request, chainId);

        Debug.Log("Got result from request: " + result);
        */
        var (session, address, chainId) = GetCurrentAddress();
        string msgParams = $"test {address}";

        var result = await PersonalSignAsync(msgParams);
        Debug.Log("Got result from request: " + result);
    }

@abasov90 can you please open a new issue with more details (what wallets did you test it with, what is the Unity and SDK version, etc)?

https://github.com/WalletConnect/WalletConnectUnity/issues/108 @skibitsky yes thanks I created a new one


1464b fail build if openssl returns

Description

Fixes pyrsia/pyrsia#1464
This PR removes the hard exit on openssl, and removes the call to cargo remove (only available with nightly) and adds cargo tree when openssl is detected.
Screenshots (optional)
PR Checklist

[x] I've read the contributing guidelines.
[x] I've read "What is a Good PR?"
[x] I've included a good title and brief description along with how to review them.
[x] I've linked any associated an issue.

Is the build.sh not callable to test this behaviour before we merge the PR?

Is the build.sh not callable to test this behaviour before we merge the PR?

I get different behavior locally. For example, git remove works on my system. @sbtaylor15 feel free to chime in, is there a dry-run we can use?

@efrisch I think something like cargo clean will invalidate the caching completely causing longer builds.  cargo update may work to create an up to date Cargo.lock.
Or we leave the build process as it currently is and use ldd against the new executables to see if openssl is loaded as a runtime dependency.

@efrisch cargo build will correctly update the Cargo.lock with the correct dependencies ie. add/remove them without changing the version numbers like cargo update.  The problem is in the if comparison.
if [[ $(find . -name "Cargo.lock" -exec grep -i openssl {} \; | wc -l) != 0 ]]; then is a string comparison not a numeric comparison.  The wc -l will return '       0' in some cases and OSes.  The leading spaces cause the condition to be true  '    0' != '0', which makes it seem that openssl is present in the Cargo.lock.
The fix:

Remove cargo remove openssl
Change the if statement to:

# Check if OpenSSL is back
if [ $(find . -name "Cargo.lock" -exec grep -i openssl {} \; | wc -l) -ne 0 ]; then
    echo "OpenSSL Presence detected in the Cargo; please remove it and rebuild. Dumping Cargo.lock files to log."
    find . -name "Cargo.lock" -exec cat {} \;
    exit 1
fi

We should just fail the build for now and do another PR to do a notification instead.  I believe that Slack requires a webhook to be setup for us to post a message to our channels.

@sbtaylor15 if it comes as a normal notification from this repo we can use the subscribe feature and add it to our notifications channel. For webhooks it will require admin access and would become brittle because everytime we make a change this could break.

I would say let's stop this PR at failing the build when openssl is found and then let another PR take care of notification. Failing PR is the first step and the owner of the PR will need to take care of it.


python310Packages.auth0-python: 4.0.0 -> 4.1.1

Changelog: https://github.com/auth0/auth0-python/blob/4.1.1/CHANGELOG.md
Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

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

4 packages failed to build:

python310Packages.aiobiketrax
python310Packages.aiobiketrax.dist
python311Packages.aiobiketrax
python311Packages.aiobiketrax.dist

4 packages built:

python310Packages.auth0-python
python310Packages.auth0-python.dist
python311Packages.auth0-python
python311Packages.auth0-python.dist

Depends on #228657

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

8 packages built:

python310Packages.aiobiketrax
python310Packages.aiobiketrax.dist
python310Packages.auth0-python
python310Packages.auth0-python.dist
python311Packages.aiobiketrax
python311Packages.aiobiketrax.dist
python311Packages.auth0-python
python311Packages.auth0-python.dist


Programming exercises: Update Java template to JDK17

Update Java programming exercises to JDK17 with a new docker image
Checklist
General

[x] I tested all changes and their related features with all corresponding user types on a test server.

Changes affecting Programming Exercises

[x] I tested all changes and their related features with all corresponding user types on Test Server 1 (Atlassian Suite).
[ ] I tested all changes and their related features with all corresponding user types on Test Server 2 (Jenkins and Gitlab).

Steps for Testing

Prerequisites:

1 Instructor
2 Students

Create a programming exercise with Java (one with and one without static code analysis)
Check if the creation works correctly
Participate with different students and check if everything works correctly

Review Progress

Code Review

[x] Review 1
[ ] Review 2

Manual Tests

[x] Test 1
[ ] Test 2

Tested on ts2, got the following feedback:

for template, solution and my testuser.
Link to the build plan: https://artemistest2jenkins.ase.in.tum.de/job/TESTLKJOOJAVA17/

It seems this issue is related to TS2 and there can also be problems with the current JDK16 configuration.
So this error is unrelated to the changes in this PR


[⭐FEATURE] Add a Visitor Counter feature ✨

Description
I want to add a Visitor Counter feature properly.
@mdazfar2  PA please assign me this task.
Screenshots
No response
Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I'm a GSSoC'24-Extd contributor
[X] I'm a Hacktoberfest'24 contributor
[X] I am willing to work on this issue (optional)

@mdazfar2

@Subhajit-2023-44, I don't think the visitor count feature would be beneficial for our website. Please raise valid issues that are actually needed for our website. Avoid raising unnecessary issues like FAQ pages, contributor pages, visitor counts, language translation, etc. Please read our README.md file and raise issues accordingly. Don't raise issues that are not needed for our website.


Wrapping ReactSelect styles into CacheProvider

As it turned out, by default every instance of emotion library shares same <style> tag to add their CSS styles. This caused a bug described in #2219 when any extension with emotion inside gets added, it eventually erases all shared styles. This, in turn, breaks ReactSelect appearance, which also uses styles from Emotion library.
Solving an issue comes in 3 ways:

Wrap with <CacheProvider> areas where ReactSelect is used across the app. Done with this PR ✅
Wrap with <CacheProvider> any extension using Emotion for styling like MCC extension
Provide a notice about the issue itself and <CacheProvider> in docs to convince developers to wrap their styles properly.

What CacheProvider does?
It creates separated style tag which totally ignored by other emotion instances, so no styles get harmed inside of it.

Now, our dropdowns are safe when MCC extension switched on
https://user-images.githubusercontent.com/9607060/111785120-40b1cf00-88cd-11eb-9564-340e5fcca715.mp4
Fixes #2219
Signed-off-by: Alex Andreev<EMAIL_ADDRESS>

Does this also fix https://github.com/Mirantis/lens-extension-cc/blob/master/src/renderer.tsx#L27-L44?

Does this also fix https://github.com/Mirantis/lens-extension-cc/blob/master/src/renderer.tsx#L27-L44?

I guess no, it doesn't change any mobx/emotion component relationships described in this comment.

Shouldn't we do the extension wrapping in this PR too then?

https://github.com/Mirantis/lens-extension-cc/pull/205

I meant that shouldn't we wrap every place we take in user code that like? Maybe that is a bit too much work...

I meant that shouldn't we wrap every place we take in user code that like? Maybe that is a bit too much work...

Yes, that's a good question. You pointed right that to be 100% safe we shouldn't rely on extension developers, we must wrap any code goes from extensions within CacheProvider with unique key. Do you think pointing developers to isolate their emotion styles in docs not enough for this time?

At this time I think it probably is good enough. I guess this is just a problem with using emotion and other 3rd party packages. They might have some globals that we cannot control. Though at least emotion has this solution.

Moved CacheProvider one level top - to the src/renderer/bootstrap.tsx.

@aleksfront what could be wrong with tests?

Fine-tuned react select types a bit more + fixed NamespaceSelectFilter gradients (moved to CSS pseudo elements)

Fixed tests by eliminating emotion dependencies from our codebase. Used "native" react-select NonceProvider for same caching purposes.
See about NonceProvider https://github.com/JedWatson/react-select/blob/c7041f20ae1eb49a092a98e93a4a1c6ebd171d93/packages/react-select/src/NonceProvider.js
@ixrock @Nokel81 ptal please ^


Maximize ALU utilization by avoiding pipeline bubbles

Profiling data shows that the current implementation only reaches 70% of the full ALU capacity (on Adreno 640), limited by the data dependency between instructions. The provided implementation can reach 100% ALU utility and reflect the actual maximal performance of an OpenCL platform.

I tried this patch on my local pc. This is the output on pocl platform:

Platform: Portable Computing Language
Device: pthread-Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz
Driver version  : 1.5 (Linux x64)
Compute units   : 12
Clock frequency : 4100 MHz
Global memory bandwidth (GBPS)
  float   : 27.44
  float2  : 29.97
  float4  : 31.91
  float8  : 31.71
  float16 : 27.86

Single-precision compute (GFLOPS)
  float   : 23.49
  float2  : 47.32
  float4  : 95.59
  float8  : 190.82
  float16 : 343.63

No half precision support! Skipped

Double-precision compute (GFLOPS)
  double   : 23.37
  double2  : 46.87
  double4  : 94.91
  double8  : 175.67
  double16 : 280.08

Integer compute (GIOPS)
  **int   : 27183.34**
  int2  : 8061.12
  int4  : 5482.94
  int8  : 2874.55
  int16 : 2959.33

Integer compute Fast 24bit (GIOPS)
  int   : 27745.27
  int2  : 8186.09
  int4  : 5211.50
  int8  : 2745.67
  int16 : 3050.98

Transfer bandwidth (GBPS)
  enqueueWriteBuffer              : 15.34
  enqueueReadBuffer               : 15.32
  enqueueWriteBuffer non-blocking : 15.39
  enqueueReadBuffer non-blocking  : 15.37
  enqueueMapBuffer(for read)      : 11645.79
    memcpy from mapped ptr        : 15.22
  enqueueUnmap(after write)       : 16989.59
    memcpy to mapped ptr          : 15.26

Kernel launch latency : 17.60 us

The integer compute number looks abnormally high. My guess is that the compiler is optimising redundant calculations on the rhs in
#define MAD_4(x, y, z)     z += (y*x) + y;     z += (x*y) + x;     z += (y*x) + y;     z += (x*y) + x;

Wouldn't this also invalidate all previous benchmark results?

No. These results are on this patchset. Introduction of z variable removes the dependency between statements and allows compiler to optimise out repeated (y*x) + y calculation

I understand the intention here. We need a better way to optimise this


Compile Node.js with -Os flag

According to nodejs/node#19, it seems that its possible to make Node.js more memory efficient by swapping -O3 to -Os. As @bnoordhuis stated:

There is an --optimize_for_size flag in newer versions of node and you can limit the size of the heap with --max_old_space_size=... (and --max_semi_space_size and --max_executable_size) in all versions.
You can also tweak common.gypi to build at -Os instead of -O3. The smaller binary, besides using less memory, also tends to run faster on systems with small L1 code caches.

Therefore this should compliment ARM support because most ARM boards are very memory-limited.

What's the catch? Slower performance on regular computers?

@deansheather it should be more faster with larger L1 caches so I think we can go with this route.


[Helm v2] Project kubernetes-helm has been deleted

Output of helm version:
Client: &version.Version{SemVer:"v2.16.9", GitCommit:"8ad7037828e5a0fca1009dabe290130da6368e39", GitTreeState:"clean"}

Output of kubectl version:
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.4", GitCommit:"3cce4a82b44f032d0cd1a1790e6d2f5a55d20aae", GitTreeState:"clean", BuildDate:"2021-08-11T18:16:05Z", GoVersion:"go1.16.7", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"18+", GitVersion:"v1.18.20-gke.901", GitCommit:"db8463aecdfe0eb5d9067effa2fd5ab3ff7a988e", GitTreeState:"clean", BuildDate:"2021-08-04T23:27:42Z", GoVersion:"go1.13.15b4", Compiler:"gc", Platform:"linux/amd64"}

Cloud Provider/Platform (AKS, GKE, Minikube etc.):  GKE
Issue
Due to legacy reason, we still need to run helm v2. However, we can no longer install tiller anymore due to the tiller docker image cannot be found.
$ docker pull gcr.io/kubernetes-helm/tiller:v2.16.9
Error response from daemon: Head "https://gcr.io/v2/kubernetes-helm/tiller/manifests/v2.16.9": denied: Project kubernetes-helm has been deleted.

https://helm.sh/docs/faq/troubleshooting/#tiller-installations-stopped-working-and-access-is-denied


Git will push it but it will stay like constantly uploading the file when already has finished and will not refresh new changes to files to make others commits or push.
You will have to reset VSC in order to make the Git Integration works again.

Can't reproduce with current version of VSCode, tried pushing a ~100 MB random file with and without git-lfs support. Was able to do both.

Thanks for letting us know!


ci: use matrix for backends

Cleans up test.yml: for each test file we have one job that uses a matrix to run that test in both backends. The compose option applies the the docker installation in actions/action.yml and the k8s option installs minikube with other github action layers. The test command is run explicitly with the backend option passed as an argument.
I also cut down the timeouts on LN and Build tests, since they don't pass on k8s and would otherwise hang forever.
Finally, I fixed the graph_test.py test for k8s. The graph create command already returns the graphml file as a big string so in the k8s mode the client will have to write that string to a file, then run network start from that file, which sends it back  to the server as a base64 string.
I feel like we should merge this even with the two failing k8s tests. @rtreffer is already working on fixing LN in k8s, and can then rebase his work.

CI seems to be failing because it can’t find the generated graph file:
-32000: Error generating graph: [Errno 2] No such file or directory: '/tmp/tmpparntl5k/4b4ebef8-9837-48ca-be86-a808f51f90b1.graphml'

The predicate truth error is a bit misleading, has to scroll way up to find the actual failure

LGTM, nice!
I actually am going to advocate for removing the branch_build test in the very near future, and the related building code.
But I will do it elsewhere :P

LN on k8s passing: #259


Add custom sms provider

What kind of change does this PR introduce?
Add support for using a custom SMS gateway to send out OTPs.
What is the current behavior?
Does not support custom gateways.
What is the new behavior?
By changing the following env variables, users will be able to send out OTPs through a custom SMS gateway:
GOTRUE_SMS_PROVIDER=gateway
GOTRUE_SMS_GATEWAY_URL=<gateway_url>
GOTRUE_SMS_GATEWAY_SENDER=<sender_number>
GOTRUE_SMS_GATEWAY_BEARER_TOKEN=<token>

Implementation will send the following to the SMS gateway:
{
  "recipient": "+1 234 567",
  "body": "This is from supabase. Your code is 123456 .",
  "sender": "<sender_number>"
}

Implementation will only consider the HTTP code returned from the SMS gateway; it ignores the rest of the response (e.g., response body and response type).
Additional context

Since it's impossible to support all SMS providers, user should be able to set up their custom SMS gateway for gotrue to send out OTPs.
Implementation mainly follows the set up custom SMS gateway guide from Auth0.
Closes #385

Hey @mamousavi,
Thanks for the PR! Let me know if you need any help with this
Joel

Hey @J0,
Glad I could help. I believe it's done.

@mamousavi thanks for the PR! Unfortunately, this wouldn't work because other SMS providers might have different API specifications for sending SMSes. Take Vonage for example, it requires the ApiKey and ApiSecret.

@kangmingtay that's exactly right, hence the name "custom". Ideally users need to wrap their preferred provider in their own endpoint.

@kangmingtay The default providers are not affordable for many developers in some countries. That's why Auth0 supports using a custom sms gateway which this PR was inspired by.

Hey @mamousavi, this is a great PR!
We've been thinking about adding more general webhook capabilities to GoTrue, and this is a good first start. Would you mind using terms like WEBHOOK_SMS to align more closely with this strategy of ours?
For example, call the env. vars. something like WEBHOOK_SMS_URL and WEBHOOK_SMS_HEADERS. I'd personally prefer using a headers-type of environment variable to include any non-basic authorization to the URL, as this is a more flexible solution. I'd go with a JSON structure for it, with this TypeScript type for reference:
{
  [header: string]: string | string[]
}

So in your case, adding the Authorization header would look like:
{
  "Authorization": "Bearer <...>"
}

One really important piece that is missing from this is a way to authenticate GoTrue at the receiving service. Typically this is done by exchanging some sort of secret where GoTrue computes an HMAC value and adds it to the headers of the request. A good approach is Stripe's.
Also, we really appreciate tests so if you could add them that would be splendid!

Hey @hf thanks for the comment.
As a matter of fact, I'd prefer to add this as a new webhook event; I just thought It'd be easier to implement it this way since Auth0 is already doing the exact same thing.
Actually, this is my first time writing go and I just followed similar PRs; If you want to make it a webhook event, please go ahead and close this, I'd really appreciate it.

@hf In the current approach, gateways are not supposed to be a webhook endpoint in the first place. Users might want to use the same gateway in their own microservices. There's no need for gotrue to sign the requests.

any updates?

@mamousavi This is exact function I am looking for.  does this custom_sms_privider support alibabacloud sms?
The reason I want to use alibabacloud sms because the China blocked all sms carriers send sms to china's mobile except China's own.

@woohelps This supports any sms provider as long as you wrap it in a compatible endpoint. Checkout the first comment for details on how it should handle incoming requests.

@mamousavi @hf will this PR be merged and released any time soon?

I am willing to take care if this. I need this very urgently and I kinda don't want to maintain a fork.
@mamousavi  @hf  will this be merged soon?

any updates? i reaaaaaaaaaaaally need this asap! and just like @rokk4 it will be tedious to maintain a fork, also i want to use the supabase platform instead of hosting said fork myself. Thanks to all the maintainers, all of your efforts are appreciated. :handshake:

Hey @abdirahmn1 and team,
Thanks for patiently waiting and for taking the time to put together this PR. I'm really sorry to be the bearer of bad news but we're unlikely going to move forward with this PR as we'll be pursuing a hook based approach. The hope is that there'll be more room for flexibility in terms of SMS (e.g. dynamically select senders) with the hook since developers can modify code within the hook. Custom SMS Providers is on the top of our priority list  and discussion is underway. We'll have more updates to share soon.
In the meantime, please let us know if there are any questions or concerns. Thanks!

Hey @abdirahmn1 and team,
Thanks for patiently waiting and for taking the time to put together this PR. I'm really sorry to be the bearer of bad news but we're unlikely going to move forward with this PR as we'll be pursuing a hook based approach. The hope is that there'll be more room for flexibility in terms of SMS (e.g. dynamically select senders) with the hook since developers can modify code within the hook. Custom SMS Providers is on the top of our priority list  and discussion is underway. We'll have more updates to share soon.
In the meantime, please let us know if there are any questions or concerns. Thanks!

Thanks @J0 for taking the time, is there a timeline for when this feature will be published?, if not, can you please give me a rough estimate and your opinion of when you think it might be available. Take care and stay safe 😊.

Thanks @J0 for taking the time, is there a timeline for when this feature will be published?, if not, can you please give me a rough estimate and your opinion of when you think it might be available. Take care and stay safe 😊.

We aim to merge support before the end of March, likely sooner. Going to close for now Let us know if there are further concerns.
Thanks everyone for the contribution!

@J0 March has ended. What's the update?

Ah we’ve merged support in #1474 . Docs will follow soon - please follow the change of for details

Ah thanks for patiently waiting. We’ve merged support in #1474 . Docs will follow within the next 2 weeks

Why can't I still see the option to choose custom SMS provider on Supabase Auth Providers?
Does this change only apply to self-hosted Supabase?


urllib.error.URLError

Hello, I am running "python syngcn.py -name test_embeddings -gpu 0 -dump "to get the URL error. I want to ask how to solve this error and how to crawl the dataset after it has been downloaded? Thank you very much for your help.

Hi @ssppff,
Seems like there is some problem with your installed library or internet connection.


Introduce pipeline version with numbers(v1,etc) instead of datastamp

Is your feature request related to a problem? Please describe.
Currently, when pipelines are created using elyra from the Notebooks, each additional iteration of the pipeline run, create a new pipeline version, the pipeline version names are defined in the following manner: +.
For users, when looking at the specific runs, it is hard to know directly which version is related to the run.

Describe the solution you'd like
For the users to have the pipeline version names defined with numbers instead of data stamps, might be convenient to interpret the run more accurately for each pipeline version run.  like + example: test-v1
Describe alternatives you've considered
NA
Additional context
Add any other context or screenshots about the feature request here.
Related-issue: https://github.com/opendatahub-io/notebooks/issues/206

Further internal discussion made us realize,
the defined scenario:
Once we have few pipeline. ex: 10 , the version=10
a user delete the 6th pipeline, the total_size=9
the next call of pipeline would try to create the version=10
which could cause confusion to the users based on this,
as the one they had deleted might show up again.
based on this reason, closing this issue as not needed going forward.


$ionicPush.unregister() does not seem to reflect the change on Ionic Cloud dashboard

I am successfully generating a device token when my app is registered on Ionic Cloud and push notifications are being received successfully (also, the number of devices that receive the push increments by one on the overview screen, meaning that the token is indeed added).
Problem is that when I proceed to unregister my device token, it doesn't seem to work because when I send another push notification after unregistering, Ionic Cloud seems to be attempting to send the push to the same number of devices as before I unregistered the last device token. Am I missing something please?
For the record, here's how I am calling the unregister:
$ionicPush.unregister().then(function(success) {           console.log('Unregistered!');         }, function(error) {           console.log('Device token unregister failed!');         });
Thank you!

hi @jablesauce, Do you mean after call $ionicPush.unregister() are you still getting the push notification?


RouteLLM Useage instrauctions please

Hi There,
first, I want to thank you for this great project.  I have successfully installed and configured RouteLLM on my machine, but I cannot find any information on how to execute it.  Would you kindly provide some examples on how to use the tool?  In particular i want an example on how to pass the prompt and get back the “model name”.
Thanks so much,
Pirouz

+1. I also would like to see minimal examples of using the routing models so that users can integrate these router models into other projects.

Hi! The main way to interface with RouteLLM in your applications is through our OpenAI-compatible server, which you can run locally or in the cloud.

For example, if I want to run the MF router locally with the default model pair (GPT-4 / Mixtral 8x7B), I first launch the server:

> python -m routellm.openai_server --routers mf --config config.example.yaml
Launching server with routers: ['mf']
INFO:     Started server process [92737]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://<IP_ADDRESS>:6060 (Press CTRL+C to quit)

Next, I want to calibrate my threshold for this router so I know what threshold to use for routing. If you have some knowledge about the type of queries you are going to serve, you can get a more accurate threshold by calibrating on that dataset using the calibrate_threshold script. In this case, I'm going to calibrate based on the publicly-available LMSYS dataset (https://huggingface.co/datasets/lmsys/lmsys-arena-human-preference-55k). Say I want approximately 50% of my calls to be routed to GPT-4, managing my cost while maximizing quality.

> python -m routellm.calibrate_threshold --task calibrate --routers mf causal_llm bert --strong-model-pct 0.5 --config config.example.yaml
For 50.0% strong model calls, calibrated threshold for mf: 0.11592505872249603

This means that I'll want to use 0.116 as my threshold to get approximately 50% of calls routed to GPT-4. (Note that if your input queries differ a lot from the dataset used to calibrate, that the % of calls routed to GPT-4 can differ).

Now, I can use it in my Python application to generate completions just like I would any OpenAI model.

import openai
client = openai.OpenAI(
	base_url="https://localhost:6060/v1",
	api_key="no_api_key"
)
response = client.chat.completions.create(
	model="router-mf-0.116",
	messages=[
		{"role": "user", "content": "What is a roux?"}
	]
)
print(response.choices[0].message.content)

Here, I'm setting the model to router-mf-0.116 to mean: "I want to use the MF router with a threshold of 0.116".
Importantly, the server that we have launched will also work with any other application that uses the OpenAI endpoint - you just need to update the base URL.
I hope this helps! Let me know if you have any other questions or suggestions on what you would like to see.

Thanks for your example!
Is there any way to use an embedded router model, i.e., calling the router model by a function call rather than an HTTP inference?

Do you have any example of how you plan to use it? Would like to better understand the use case.

Yes, we are going to use it in a local client to decide whether to use a local model or a remote model.

Please provide a detailed documentation.

@RoyalMamba Can you provide the error that you receive?
@Sunt-ing Thank you for the feedback! I'm considering what would be the best interface for this. Would an API that takes in a prompt, and return the name of the model to route to work for your use case?

 Thanks!

Also, in my case, it will be better if the model can be executed by either
CPU or GPU, as GPU may not always be available to the router model while
the router model is relatively lightweight.
On Sat, Jul 6, 2024, 02:45 Isaac Ong @.***> wrote:

@RoyalMamba https://github.com/RoyalMamba Can you provide the error
that you receive?
@Sunt-ing https://github.com/Sunt-ing Thank you for the feedback! I'm
considering what would be the best interface for this. Would an API that
takes in a prompt, and return the name of the model to route to work for
your use case?
—
Reply to this email directly, view it on GitHub
https://github.com/lm-sys/RouteLLM/issues/4#issuecomment-2211280770, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AKIL3E6XXNZKAMDUBVPQUMLZK3ST5AVCNFSM6AAAAABKK3ZAESVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJRGI4DANZXGA
.
You are receiving this because you were mentioned.Message ID:
@.***>

@Sunt-ing Could you share more about why you are routing between a remote and local model? Would love to understand the use case better as we figure out how to extend this framework :)

If local model is not good enough, we use the remote model, which is more
expensive but accurate.
On Sat, Jul 6, 2024, 05:01 Isaac Ong @.***> wrote:

@Sunt-ing https://github.com/Sunt-ing Could you share more about why
you are routing between a remote and local model? Would love to understand
the use case better as we figure out how to extend this framework :)
—
Reply to this email directly, view it on GitHub
https://github.com/lm-sys/RouteLLM/issues/4#issuecomment-2211408476, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AKIL3E2AEWIUUPJFBZLU5GDZK4CTZAVCNFSM6AAAAABKK3ZAESVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJRGQYDQNBXGY
.
You are receiving this because you were mentioned.Message ID:
@.***>

@Sunt-ing We've just added support for interfacing with RouteLLM directly from Python without a server. Please check out the docs for details!
Regarding your previous comment, yes, all models should default to running on your CPU when a GPU isn't available.
Let me know you have any questions or suggestions!

@RoyalMamba @pirouzkhakzad Please refer to our updated README, which includes clearer instructions on how to get this working.
Closing this for now, let me know if you face any other issues!

Hi @iojw , I find that OPENAI_API_KEY is always required even when using SDK with non-OpenAI models. Is it possible to minimize the requirement to OPENAI_API_KEY, i.e., not requiring OPENAI_API_KEY when OPENAI_API_KEY will not be actually used?

I guess the internal code has several dependencies on OpenAI, but from my personal perspective, such dependencies should not be compulsory.
Here is my code and error message. I want to evaluate the router with open models as I don't have a real OpenAI API key. Thanks!
import os
os.environ["OPENAI_API_KEY"] = "sk-XXXXXX"
os.environ["ANYSCALE_API_KEY"] = "esecret_XXXXXX"

# from routellm.controller import Controller
from routellm.controller import Controller

client = Controller(
  # List of routers to initialize
  routers=["mf"],
  # The pair of strong and weak models to route to
  strong_model="meta-llama/Llama-2-13b-chat-hf",
  weak_model="meta-llama/Llama-2-7b-chat-hf",
  # The config for the router (best-performing config by default)
  config = {
    "mf": {
      "checkpoint_path": "routellm/mf_gpt4_augmented"
    }
  },
  # Override API base and key for LLM calls
  api_base=None,
  api_key=None,
  # Display a progress bar for operations
  progress_bar=False,
)

response = client.chat.completions.create(
  # This tells RouteLLM to use the MF router with a cost threshold of 0.11593
  model="router-mf-0.11593",
  messages=[
    {"role": "user", "content": "Hello!"}
  ]
)
print(response.choices[0]["message"]["content"])

Traceback (most recent call last):
  File "/local/scratch/f/xiaoze/ecogen/tools/router.py", line 27, in <module>
    response = client.chat.completions.create(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/local/scratch/f/xiaoze/RouteLLM/routellm/controller.py", line 150, in completion
    kwargs["model"] = self._get_routed_model_for_completion(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/local/scratch/f/xiaoze/RouteLLM/routellm/controller.py", line 111, in _get_routed_model_for_completion
    routed_model = self.routers[router].route(prompt, threshold, self.model_pair)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/local/scratch/f/xiaoze/RouteLLM/routellm/routers/routers.py", line 42, in route
    if self.calculate_strong_win_rate(prompt) >= threshold:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/local/scratch/f/xiaoze/RouteLLM/routellm/routers/routers.py", line 239, in calculate_strong_win_rate
    winrate = self.model.pred_win_rate(
              ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/local/scratch/e/xiaoze/miniconda3/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/local/scratch/f/xiaoze/RouteLLM/routellm/routers/matrix_factorization/model.py", line 124, in pred_win_rate
    logits = self.forward([model_a, model_b], prompt)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/local/scratch/f/xiaoze/RouteLLM/routellm/routers/matrix_factorization/model.py", line 113, in forward
    OPENAI_CLIENT.embeddings.create(input=[prompt], model=self.embedding_model)
  File "/local/scratch/e/xiaoze/miniconda3/lib/python3.11/site-packages/openai/resources/embeddings.py", line 114, in create
    return self._post(
           ^^^^^^^^^^^
  File "/local/scratch/e/xiaoze/miniconda3/lib/python3.11/site-packages/openai/_base_client.py", line 1240, in post
    return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/local/scratch/e/xiaoze/miniconda3/lib/python3.11/site-packages/openai/_base_client.py", line 921, in request
    return self._request(
           ^^^^^^^^^^^^^^
  File "/local/scratch/e/xiaoze/miniconda3/lib/python3.11/site-packages/openai/_base_client.py", line 1020, in _request
    raise self._make_status_error_from_response(err.response) from None
openai.AuthenticationError: Error code: 401 - {'error': {'message': 'Incorrect API key provided: sk-XXXXXX. You can find your API key at https://platform.openai.com/account/api-keys.', 'type': 'invalid_request_error', 'param': None, 'code': 'invalid_api_key'}}