text:
Jadx adds invalid method references from anonymous classes

Hi,
in class com/paypal/android/foundation/compliance/fragment/ComplianceWebViewFragment.java the following code is generated
private WebViewClient webViewClient = new WebViewClient() {
        //...

        public void onReceivedSslError(WebView webView, final SslErrorHandler sslErrorHandler, SslError sslError) {
            ComplianceWebViewFragment.f13478L.debug("Received SSL error opening URL on WebView", new Object[0]);
            if (FoundationCore.appInfo().isDebuggable()) {
                WebViewUtil.showDialogOnSslError(sslErrorHandler, ComplianceWebViewFragment.this.getActivity(), new WebViewUtil.DialogOnSslErrorHandler() {
                    public void cancel() {
                        /* invalid code! */ ComplianceWebViewFragment.C16524.this.m10253a(sslErrorHandler);
                    }
                });
            } else {
                m10253a(sslErrorHandler);
            }
        }

        //....
    };

The given class is anonymous, ComplianceWebViewFragment.C16524.this. should be removed, since ComplianceWebViewFragment.C16524 is unresolved expression
APK: https://drive.google.com/file/d/16O--dtXt35zB1Ahx-9qEYvCmyeF1n0AG/view?usp=sharing

@sergey-wowwow looks like there many issues with inlined anonymous classes. Maybe we can add option to disable inlining and removing of anonymous classes this will produce verbose but compilable code.
What do you think? Will this option help you?

@skylot
I think it's a good idea. But isn't it better to add checks for each of all such cases? I reported everything I found, so there are probably no other issues with inlined anonymous classes

@skylot
Seems there are really more bugs I expected (e.g. #604). Let's introduce that feature?

authors: sergey-wowwow skylot


text:
[core] Regions count limit reached for a small method

Hi, I've noticed that method android.support.v4.content.ModernAsyncTask.executeOnExecutor method is not decompiled, it's source https://android.googlesource.com/platform/frameworks/support/+/android-support-lib-19.1.0/v4/java/android/support/v4/content/ModernAsyncTask.java#404
But decompiled to
    /*  JADX ERROR: JadxOverflowException in pass: RegionMakerVisitor
        jadx.core.utils.exceptions.JadxOverflowException: Regions count limit reached
        	at jadx.core.utils.ErrorsCounter.addError(ErrorsCounter.java:47)
        	at jadx.core.utils.ErrorsCounter.methodError(ErrorsCounter.java:81)
        */
    /* JADX WARNING: Removed duplicated region for block: B:4:0x0013  */
    /* JADX WARNING: Removed duplicated region for block: B:6:0x001b  */
    /* JADX WARNING: Removed duplicated region for block: B:8:0x0023  */
    public final android.support.v4.content.ModernAsyncTask<Params, Progress, Result> executeOnExecutor(java.util.concurrent.Executor r3, Params... r4) {
        /*
            r2 = this;
            android.support.v4.content.ModernAsyncTask$Status r0 = r2.mStatus
            android.support.v4.content.ModernAsyncTask$Status r1 = android.support.v4.content.ModernAsyncTask.Status.PENDING
            if (r0 == r1) goto L_0x002b
            int[] r3 = android.support.v4.content.ModernAsyncTask.C04244.$SwitchMap$androidx$loader$content$ModernAsyncTask$Status
            android.support.v4.content.ModernAsyncTask$Status r4 = r2.mStatus
            int r4 = r4.ordinal()
            r3 = r3[r4]
            switch(r3) {
                case 1: goto L_0x0023;
                case 2: goto L_0x001b;
                default: goto L_0x0013;
            }
        L_0x0013:
            java.lang.IllegalStateException r3 = new java.lang.IllegalStateException
            java.lang.String r4 = "We should never reach this state"
            r3.<init>(r4)
            throw r3
        L_0x001b:
            java.lang.IllegalStateException r3 = new java.lang.IllegalStateException
            java.lang.String r4 = "Cannot execute task: the task has already been executed (a task can be executed only once)"
            r3.<init>(r4)
            throw r3
        L_0x0023:
            java.lang.IllegalStateException r3 = new java.lang.IllegalStateException
            java.lang.String r4 = "Cannot execute task: the task is already running."
            r3.<init>(r4)
            throw r3
        L_0x002b:
            android.support.v4.content.ModernAsyncTask$Status r0 = android.support.v4.content.ModernAsyncTask.Status.RUNNING
            r2.mStatus = r0
            r2.onPreExecute()
            android.support.v4.content.ModernAsyncTask$WorkerRunnable<Params, Result> r0 = r2.mWorker
            r0.mParams = r4
            java.util.concurrent.FutureTask<Result> r4 = r2.mFuture
            r3.execute(r4)
            return r2
        */
        throw new UnsupportedOperationException("Method not decompiled: android.support.v4.content.ModernAsyncTask.executeOnExecutor(java.util.concurrent.Executor, java.lang.Object[]):android.support.v4.content.ModernAsyncTask");
    }

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

Fixed, thanks!

source: gharchive/issue

repo: skylot/jadx

license_type: permissive

license_source: bigquery


text:
Feature/validation model spec

Milestone #3 - Blog App  [ Validation and Testing ]
In this feature branch, I created the rails project and added the things as per requirements. The things which I did in order to complete this milestone are as follows:

Used the git flow concept.
Added the tests for User, Post, Comments and Likes.
Updated the models files.
Saved the data successfully to the database.
Removed the unnecessary column.
Resolve the linters errors.

@mwanawabangona Thank you so much ❤
Happy Coding 🥂

source: gharchive/pull-request

license: MIT

license_source: github-api


text:
🛑 Music Converter is down

In 9e43112, Music Converter (https://convert.rexsky-blog.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Music Converter is back up in 8e84d8f.

repo: skywalkerRex/RexSky-Blog-Uptime


text:
Question: about signup workspace owner and signin members

Description
Hi everyone, I'm starting a new project which will allow only the workspace owner to signup by installing the app, and store the credentials if I'm not wrong oAuth will do that for me, am I right?
the question is: I want after the workspace owner completes the signing up, all the members in that workspace will be able to signin and use my app under his workspace (like slack), which means he is able to switch workspaces also in my app if the workspace owner has signed up.
What do I need for this? any help?
What type of issue is this? (place an x in one of the [ ])

[ ] bug
[ ] enhancement (feature request)
[x] question
[ ] documentation related
[ ] example code related
[ ] testing related
[ ] discussion

Hi @NurdinDev, thanks for asking the question!
Until your app is installed into a workspace by its admin user, your app is unable to know whether an installing user is an admin. So, one feasible way to realize your secure installation flow would be:

Use CallbackOptions.afterInstallation to check the installing user's authority (calling users.info API and check if is_admin is true). If the user is not an admin, your app can revert the installation by calling auth.revoke API and return false to skip saving the installation plus display error page to the user. Refer to https://slack.dev/node-slack-sdk/reference/oauth#callbackoptions for details.
As for a workspace that its admin already installed your app, your app can check the condition in CallbackOptions.afterInstallation and then proceed by returning true.
Your app may need to delete all the installations once a workspace's admin removes your app from the workspace. You can  utilize "tokens_revoked" event delivery for triggering this operation.

I hope this was helpful to you.

Thanks, @seratch it's very helpful
Regarding the part about deleting all installations, why should I have many installations in the same workspace?

@NurdinDev hm,

all the members in that workspace will be able to signin and use my app under his workspace (like slack)

I might misunderstand this part.
I thought that this means that, after admin enables your app in a workspace, each individual user may do either their OAuth flow with user scopes or Sign in with Slack (OpenID Connect). In this case, your app's datastore needs to store multiple user-level installation data in addition to the admin's installation for bot scopes.
If you meant "Once an admin installs your app, anyone in the workspace can use the app and no one needs to go through the OAuth flow", your app will have only one installation data per workspace.

@seratch Sorry for confusing you with my question, I couldn't explain it well.
The main idea is to install the slack app on each workspace registered on my website, and the users in the workspace are able to login into my website, and for example, "send messages from the website"
imagine the flow is similar to slack when you register you have to create a workspace and then a subdomain will be created for your workspace, same here but when you register on my website you will integrate your slack workspace instead of creating one, and then, for instance, the website will create a dashboard and fetches all the users from the workspace, which will allow anyone in this workspace to login.
I think each tenant should have a separate slack app installed in my case! 🤔

@NurdinDev Thanks for your reply.
In this case, Sign in with Slack (OpenID Connect) is the way to go for non-admin users who sign in on your website. Your website can check the workspace's ID (team_id) in its response. When the tenant for the workspace is already created, the signed-in user can access dashboards and so on.
Only admin users need to go through the OAuth flow with bot scopes such as channels:history, chat:write, files:read, and so on (see the full list here).
As for the OpenID Connect authentication, unfortunately, bolt-js does not support it. So, please directly go ahead with bolt-js's underlying @slack/oauth package. Here is a simple example app demonstrating how it works: https://github.com/slackapi/node-slack-sdk/tree/main/examples/openid-connect
I think that I've answered all of your questions here. Would you mind closing this issue? I'd suggest doing some prototyping first. And then, whenever you have further questions, please feel free to create a new question issue!

Thank you @seratch for your time, It was very helpful to ask you and validate some questions in my mind.

authors: NurdinDev seratch

repo: slackapi/bolt-js


text:
Installation flow fails with slack_oauth_invalid_state when running an app on Firebase Hosting

Description
Describe your issue here.
I'm using /slack/install to install my distributed app to a test workspace. Everything works perfectly fine using ngrok but as soon as I deploy my app to my server the installation fails with the page /slack/oauth_redirect?code=... saying
Oops, Something Went Wrong!
Please try again or contact the app owner (reason: slack_oauth_invalid_state)
The server debug log says
[ERROR]  OAuth:InstallProvider:0 Error: The state parameter is not for this browser session.

My code is pretty much like this by @seratch but using Firestore as database (again, everything works perfectly fine with ngrok).
What type of issue is this? (place an x in one of the [ ])

[ ] bug
[ ] enhancement (feature request)
[x] question
[ ] documentation related
[ ] example code related
[ ] testing related
[ ] discussion

Requirements (place an x in each of the [ ])

[x] I've read and understood the Contributing guidelines and have done my best effort to follow them.
[x] I've read and agree to the Code of Conduct.
[x] I've searched for any related issues and avoided creating a duplicate issue.

Bug Report
Filling out the following details about bugs will help us solve your issue sooner.
Reproducible in:
package version: @slack/bolt 3.12.2 and @slack/oauth 2.6.0
node version: 18
OS version(s): Google Firebase
Steps to reproduce:

Build a bolt app like so but use Firebase as installation store
open https://de29-...-8e61.ngrok.io/slack/install and go through the install flow. The flow succeeds with the page https://de29-...-8e61.ngrok.io/slack/oauth_redirect?code=15... saying

Thank you!
Redirecting to the Slack App... click [here]. If you use the browser version of Slack, click this link instead.

deploy the same app to Firebase using Firebase Hosting
open https:///slack/install and go through the install flow. The flow ends with the page https:///slack/oauth_redirect?code=15... saying

Oops, Something Went Wrong!
Please try again or contact the app owner (reason: slack_oauth_invalid_state)
Expected result:
Installation should succeed.
Actual result:
Installation flow fails with slack_oauth_invalid_state and a debug log
[ERROR]  OAuth:InstallProvider:0 Error: The state parameter is not for this browser session.
Attachments:
Logs, screenshots, screencast, sample project, funny gif, etc.

Hi @multimanic, thanks for asking the question!
We don't officially support the runtime, so we are not able to help you out on how to deploy apps onto Firebase Hosting. That aside, possible causes of your issue can be:

The domain for your /slack/install and /slack/oauth_redirect may not be the same. In this case, the state parameter validation fails as it relies on 1st party cookie to transfer the state through the redirections between slack.com and your site.
I don't know well about Firebase Hosting but if the hosting service does not allow usual set-cookie response headers like the OAuth package does, you may have to disable the state verification (it's not great for security though) otherwise, implement your own OAuth flow handlers.

I hope this was helpful to you.

Thank you so much @seratch for unblocking me after 4 days of desperation. I also had a hunch that the state verification is the issue. However, I can see all the cookies set and sent on firebase like on ngrok.
Deactivating the state verification solved the problem. Can you elaborate in the security risks?
And is the StateStore and alternative to the cookie-based state verification? If so, is there any sample code? I couldn't find any. I think Firestore would be a simple StateStore, right?

@multimanic

Deactivating the state verification solved the problem.

First off, the ideal solution is identifying the cause of your situation with Firebase and keeping the state verification on. Generally speaking, I don't recommend disabling it. With that being said, if you think the risk is acceptable for your app after going through this reply, it's your decision.

Can you elaborate in the security risks?

The security risk is not specific to Slack's OAuth flow. It is a general CSRF attack risk for your end users who install our app. Refer to the following resources:

https://github.com/slackapi/node-slack-sdk/issues/1435
https://datatracker.ietf.org/doc/html/rfc6749#section-10.12
https://auth0.com/docs/secure/attack-protection/state-parameters

As mentioned in the above resources, when an attacker navigates your end user to a redirect URL with the attacker's auth code parameter and a valid state, your end user may complete their OAuth flow with an unexpected association. So, verifying the state through the end-to-end OAuth flow is a highly recommended security measure for apps providing OAuth flows. That's why our SDKs enable the verification by default.
As long as you are aware of the risk with the lack of state parameter, you can go ahead with it. If you don't offer any account mapping feature like associating a Slack workspace/user with your external service account, the risk should be quite limited. Otherwise, we highly recommend implementing something that ensures the same user visiting both /slack/install and /slack/oauth_redirect in an OAuth flow. For this, the most common way should be managing the user's state by setting browser cookies like our library does.

And is the StateStore and alternative to the cookie-based state verification? If so, is there any sample code? I couldn't find any. I think Firestore would be a simple StateStore, right?

No, actually. StateStore provides the abstraction of the server-side state value storage, and it does not offer any functionality to manage browser cookies. Just having a server-side state store is not a complete solution as the security measure. If an attacker issues their state parameter on their side plus share the authorize URL with the generated state parameter with their target user agent, the attack still can succeed (because the state parameter value is not yet consumed on the server-side). Since the past implementation was not secure enough this way, I've resolved the potential risk at https://github.com/slackapi/node-slack-sdk/issues/1435.
I hope this comment answers your questions. If everything is clear now, would you mind closing this issue?

Thanks @seratch  and I agree, I should fix this.
Here is my understanding of the flow ad the code:

the page https://<my-host>/slack/install generates a code for the "state" and sets a cookie called slack-app-oauth-state. The page alos displays a button which points the browser to a page on https://slack.com/oauth/... and includes a URL parameter state which has the same state value.
This URL parameter is carried through the OAuth flow ending with the page https://<my-host>/slack/oauth_redirect being loaded. This page also reads the cookie called slack-app-oauth-state and compares it with the URL parameter state. If they are not equal the InvalidStateError is thrown.

That said, I tried to compare the network trace and the cookies of my ngrok and my host. They are exactly the same.

the page https://<my-host>/slack/install includes a response header:

set-cookie: slack-app-oauth-state=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnN0YWxsT3B0aW9ucyI6eyJzY29wZXMiOlsiYXBwX21lbnRpb25zOnJlYWQiLCJjaGF0OndyaXRlIiwiY2hhdDp3cml0ZS5wdWJsaWMiLCJjb21tYW5kcyIsImdyb3Vwczp3cml0ZSIsImltOndyaXRlIiwibXBpbTp3cml0ZSIsInVzZXJzOnJlYWQuZW1haWwiLCJ1c2VyczpyZWFkIl19LCJub3ciOiIyMDIzLTAxLTMxVDIxOjM3OjE3LjIwMVoiLCJyYW5kb20iOjY2OTMxMSwiaWF0IjoxNjc1MjAxMDM3fQ.jFYu4tWbqB7uREQba28W3u-zBrfxVTpwI_GjtThqwCM; Path=/; Max-Age=600; HttpOnly; Secure

followed by this sequence
https://slack.com/oauth/v2/authorize?scope=app_mentions:read,chat:write,chat:write.public,commands,groups:write,im:write,mpim:write,users:read.email,users:read&state=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnN0YWxsT3B0aW9ucyI6eyJzY29wZXMiOlsiYXBwX21lbnRpb25zOnJlYWQiLCJjaGF0OndyaXRlIiwiY2hhdDp3cml0ZS5wdWJsaWMiLCJjb21tYW5kcyIsImdyb3Vwczp3cml0ZSIsImltOndyaXRlIiwibXBpbTp3cml0ZSIsInVzZXJzOnJlYWQuZW1haWwiLCJ1c2VyczpyZWFkIl19LCJub3ciOiIyMDIzLTAxLTMxVDIxOjM3OjE3LjIwMVoiLCJyYW5kb20iOjY2OTMxMSwiaWF0IjoxNjc1MjAxMDM3fQ.jFYu4tWbqB7uREQba28W3u-zBrfxVTpwI_GjtThqwCM&client_id=<client-ID>

https://slack.com/oauth/v2/authorize?scope=app_mentions:read,chat:write,chat:write.public,commands,groups:write,im:write,mpim:write,users:read.email,users:read&state=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnN0YWxsT3B0aW9ucyI6eyJzY29wZXMiOlsiYXBwX21lbnRpb25zOnJlYWQiLCJjaGF0OndyaXRlIiwiY2hhdDp3cml0ZS5wdWJsaWMiLCJjb21tYW5kcyIsImdyb3Vwczp3cml0ZSIsImltOndyaXRlIiwibXBpbTp3cml0ZSIsInVzZXJzOnJlYWQuZW1haWwiLCJ1c2VyczpyZWFkIl19LCJub3ciOiIyMDIzLTAxLTMxVDIxOjM3OjE3LjIwMVoiLCJyYW5kb20iOjY2OTMxMSwiaWF0IjoxNjc1MjAxMDM3fQ.jFYu4tWbqB7uREQba28W3u-zBrfxVTpwI_GjtThqwCM&client_id=<client-ID>&tracked=1

https://<my-workspace>.slack.com/oauth?client_id=<client-ID>&scope=app_mentions:read,chat:write,chat:write.public,commands,groups:write,im:write,mpim:write,users:read.email,users:read&user_scope=&redirect_uri=&state=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnN0YWxsT3B0aW9ucyI6eyJzY29wZXMiOlsiYXBwX21lbnRpb25zOnJlYWQiLCJjaGF0OndyaXRlIiwiY2hhdDp3cml0ZS5wdWJsaWMiLCJjb21tYW5kcyIsImdyb3Vwczp3cml0ZSIsImltOndyaXRlIiwibXBpbTp3cml0ZSIsInVzZXJzOnJlYWQuZW1haWwiLCJ1c2VyczpyZWFkIl19LCJub3ciOiIyMDIzLTAxLTMxVDIxOjM3OjE3LjIwMVoiLCJyYW5kb20iOjY2OTMxMSwiaWF0IjoxNjc1MjAxMDM3fQ.jFYu4tWbqB7uREQba28W3u-zBrfxVTpwI_GjtThqwCM&granular_bot_scope=1&single_channel=0&install_redirect=&tracked=1&team=

finally the page
https://dev.goldie.ai/slack/oauth_redirect?code=1509222955907.4725617052005.1b74ee7e3308fce9c3e5ed7c3a22ad124245d29098bf3921a08b1ba0e547ac63&state=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnN0YWxsT3B0aW9ucyI6eyJzY29wZXMiOlsiYXBwX21lbnRpb25zOnJlYWQiLCJjaGF0OndyaXRlIiwiY2hhdDp3cml0ZS5wdWJsaWMiLCJjb21tYW5kcyIsImdyb3Vwczp3cml0ZSIsImltOndyaXRlIiwibXBpbTp3cml0ZSIsInVzZXJzOnJlYWQuZW1haWwiLCJ1c2VyczpyZWFkIl19LCJub3ciOiIyMDIzLTAxLTMxVDIxOjM3OjE3LjIwMVoiLCJyYW5kb20iOjY2OTMxMSwiaWF0IjoxNjc1MjAxMDM3fQ.jFYu4tWbqB7uREQba28W3u-zBrfxVTpwI_GjtThqwCM

includes a request header
_ga=GA1.1.1963021477.1672902855; _ga_8F0NMFFQ6D=GS1.1.1672902855.1.1.1672903946.0.0.0; slack-app-oauth-state=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnN0YWxsT3B0aW9ucyI6eyJzY29wZXMiOlsiYXBwX21lbnRpb25zOnJlYWQiLCJjaGF0OndyaXRlIiwiY2hhdDp3cml0ZS5wdWJsaWMiLCJjb21tYW5kcyIsImdyb3Vwczp3cml0ZSIsImltOndyaXRlIiwibXBpbTp3cml0ZSIsInVzZXJzOnJlYWQuZW1haWwiLCJ1c2VyczpyZWFkIl19LCJub3ciOiIyMDIzLTAxLTMxVDIxOjM3OjE3LjIwMVoiLCJyYW5kb20iOjY2OTMxMSwiaWF0IjoxNjc1MjAxMDM3fQ.jFYu4tWbqB7uREQba28W3u-zBrfxVTpwI_GjtThqwCM

The state value matches in all URL parameters and slack-app-oauth-state cookies but it still fails with the InvalidStateError. I'm puzzled.

@seratch can you confirm that my understanding of the code is correct?
Or does the network trace give you any clues what the problem might be?

@multimanic I am still unsure about the cause of your issue here, but one possibility is that your app on Firebase Hosting platform may be failing to access the request header data including cookies. Adding some print debug logs like console.log(request.headers) (note that this is pseudo code) and see the difference between the app on your local machine and on Firebase. If that's not the case, I don't have any meaningful suggestion on this.

Your instinct is good. I just found https://firebase.google.com/docs/hosting/manage-cache#using_cookies says

When using Firebase Hosting together with Cloud Functions or Cloud Run, cookies are generally stripped from incoming requests. This is necessary to allow for efficient CDN cache behavior. Only the specially-named __session cookie is permitted to pass through to the execution of your app.

When present, the __session cookie is automatically made a part of the cache key, meaning that it's impossible for two users with different cookies to receive the other's cached response. Only use the __session cookie if your app serves different content depending on user authorization.

I will test what happens if I use stateCookieName = '__session', and post an update for future reference.

SOLUTION - SOLUTION - SOLUTION - SOLUTION - SOLUTION
It is possible to use Firebase Cloud Functions with Firebase Hosting with distributed apps (using Bolt JS's /slack/install). If you get the error slack_oauth_invalid_state it's because Firebase Hosting together with Cloud Functions or Cloud Run, cookies are generally stripped from incoming requests - except a cookie called __session. The solution is to make use of the parameter stateCookieName the framework provides which allows you to rename the cookie from the default slack-app-oauth-state to __session.
Example:
const config = require('./config/config');

const functions = require('firebase-functions');
const firebase = require('firebase-admin');
const { App, ExpressReceiver } = require('@slack/bolt');
const { LogLevel } = require("@slack/logger");

const firebaseApp = firebase.initializeApp(
    functions.config().firebase
);
const db = firebaseApp.firestore();
firebase.firestore().settings({
    ignoreUndefinedProperties: true,
})

const expressReceiver = new ExpressReceiver({
    logLevel: LogLevel.DEBUG,
    signingSecret: config.slack.signingSecret,
    clientId: config.slack.clientId,
    clientSecret: config.slack.clientSecret,
    stateSecret: config.slack.stateSecret,
    scopes: config.slack.scopes,
    endpoints: '/slack/events',
    processBeforeResponse: true,
    installationStore: {
        storeInstallation: async (installation) => {
            if (installation.isEnterpriseInstall && installation.enterprise !== undefined) {
                return await db.collection(config.firebase.slackTeams).doc(installation.enterprise.id).set(installation);
            }
            if (installation.team !== undefined) {
                return await db.collection(config.firebase.slackTeams).doc(installation.team.id).set(installation);
            }
            throw new Error('Failed saving installation data to Firebase');
        },
        fetchInstallation: async (installQuery) => {
            if (installQuery.isEnterpriseInstall && installQuery.enterpriseId !== undefined) {
                return await getTeamRecord(installQuery.enterpriseId);
            }
            if (installQuery.teamId !== undefined) {
                return await getTeamRecord(installQuery.teamId);
            }
            throw new Error('Failed fetching installQuery');
        },
        deleteInstallation: async (installQuery) => {
            if (installQuery.isEnterpriseInstall && installQuery.enterpriseId !== undefined) {
                return await db.collection(config.firebase.slackTeams).doc(installQuery.enterpriseId).delete();
            }
            if (installQuery.teamId !== undefined) {
                return await db.collection(config.firebase.slackTeams).doc(installQuery.teamId).delete();
            }
            throw new Error('Failed to delete installQuery');
        },
    },
    installerOptions: {
        directInstall: false,
        stateVerification: true,
        stateCookieName: '__session',
    }
});

const app = new App({
    receiver: expressReceiver,
    processBeforeResponse: true,
    stateSecret: config.slack.stateSecret,
});

app.command('/say-hi', async ({ command, ack, say }) => {
    await ack();
    const { botToken } = await app.receiver.installer.authorize({teamId: command.team_id});
    app.client.chat.postMessage({
        token: botToken,
        channel: command.user_id,
        text: "Hi back!",
        as_user: true,
    });
});

exports.slack = functions.https.onRequest(expressReceiver.app);

How wise of you @seratch to make the cookie name configurable :)

authors: multimanic seratch


text:
InstallQuery during team_access_granted event shows isEnterpriseInstall = false

(Filling out the following with as much detail as you can provide will help us solve your issue sooner.)
Reproducible in:
The Slack SDK version
(Paste the output of)
"slack/bolt": "^3.12.2",
Node.js runtime version
v16.15.0
OS info
(Paste the output of sw_vers && uname -v on macOS/Linux or ver on Windows OS)
Darwin Kernel Version 22.1.0: Sun Oct  9 20:14:30 PDT 2022; root:xnu-8792.41.9~2/RELEASE_ARM64_T8103
Steps to reproduce:
1: Install app to an organization via OAuth.
2: Add app to a workspace using Organization management page
https://app.slack.com/manage/**/integrations/profile/**/installations
3:  When fetchInstallation handler is called due to subsequent incoming team_access_granted event, the 'installQuery' contains an enterprise ID, but isEnterpriseInstall boolean is false.
This contradicts what the docs say:
if (installation.isEnterpriseInstall && installation.enterprise !== undefined) {

because authorization in this case will fail.
Subsequent events (message events, etc) from this enterprise workspace generate an installQuery with  "isEnterpriseInstall": true" as expected.
Expected result:
{
      "isEnterpriseInstall": true,
      "enterpriseId": "E04RF7ERBUM"
    }

(Tell what you expected to happen)
Actual result:
{
      "isEnterpriseInstall": false,
      "enterpriseId": "E04RF7ERBUM"
    }

Requirements
For general questions/issues about Slack API platform or its server-side, could you submit questions at https://my.slack.com/help/requests/new instead. :bow:
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to those rules.

HI @jtoronto thanks for writing in!
I will try to reproduce this on my end but this can be a confusing behavior since the event can be delivered only to org-wide installed apps.
docs

@WilliamBergamin Did you manage to reproduce the issue? I just ran into the exact same issue for both the
team_access_granted and team_access_revoked event.
Related logs:
Starting authorize() execution (source: {"isEnterpriseInstall":false,"enterpriseId":"Exxx"})

{
  token: 'xxx',
  enterprise_id: 'Exxx',
  api_app_id: 'Axxx',
  event: {
    type: 'team_access_revoked',
    team_ids: [ 'Txxx' ],
    actor_id: 'Uxxx',
    event_ts: '1716583037.060826'
  },
  type: 'event_callback',
  event_id: 'Ev0752FPCZ27',
  event_time: 1716583037
}

authors: WilliamBergamin jtoronto kirkov


text:
[FEATURE] Add --output string flag to slack trigger list (or even globally)

I have a bunch of lingering event triggers that I've created programmatically that I need to clean up. I'd like it to be easier to do this programmatically.
I've noticed the --output string flag is available for slack datastore query. That's what I'm looking for, but for triggers.
When running the slack trigger list command, I've noticed there is a JSON response in the logs. It looks like the CLI then iterates over the triggers in that initial response to get additional info about users, permissions, etc. It would be great if I were able to supply an output flag or output file to dump the initial JSON body to. i.e. slack trigger list --type event --limit 1000 --team TEAM_ID --app APP_ID --output json or --output_file triggers.json
Really almost every Slack CLI command I've used appears to have a JSON response in the logs, having a global --output string flag would be excellent 🔥
Alternative solutions
I was able to find a workaround by hitting the API endpoint listed in the logs. Using a token generated with slack auth token
POST https://slack.com/api/workflows.triggers.list?token=SLACK_TOKEN
Headers: Content-Type application/json
Body: {"app_id":"APP_ID","limit":1000,"type":"event"}

I would expect this endpoint to be documented at https://api.slack.com/methods/workflows.triggers.list, but at the time of writing this, it's not. So keep that in mind if using this workaround.

More details about my use-case:
I have a workflow that creates an event trigger to monitor a specific thread. Messages in that thread get passed to our ticketing management system through the triggered workflow.
Upon trigger creation, I store the trigger id, along with some other info, in a Slack datastore. When the ticket is closed, the trigger and related datastore entry both get deleted.
As with any solution, things slip through the cracks. That's where this cleanup task I'm working on comes in. My solution gets all the tickets in the datastore, checks their status in our ticketing system, and cleans up the trigger and datastore entry if certain conditions are met.

Hey @NathanHRich! This is such a great request. I totally agree that having consumable outputs would make scripting tasks like this much easier, but I'm glad to hear you've found a workaround for now. Pretty clever, poking into the debug logs 😉
I'll share this with the team and hope to return with an update soon! Thanks a ton for sharing your use case with this request!

authors: NathanHRich zimeg

repo: slackapi/deno-slack-sdk


text:
Remove Mention of Bitbucket in README

The README still mentions Bitbucket as our repo source but are now fully using Github.  We need to remove mention of this so those being onboarded are not misdirected.

The README looks good and does not point to bitbucket
The confluence page was pointing to the secureli repository in bitbucket, updated the confluence page with github repository link : https://slalom.atlassian.net/wiki/spaces/STFT/pages/2997126307/seCureLI

Updated the onboarding confluence page removing steps fot bitbucket and adding steps for github access : https://slalom.atlassian.net/wiki/spaces/STFT/pages/3003285586/Onboarding+Checklist
Updated the jira board link with github board link

authors: blonienc shrutitirpude

repo: slalombuild/secureli


text:
Permission to submit a Halogen benchmark implementation

Hi guys,
I've created an implementation of the JavaScript framework benchmarks that I plan to add to that repository. The repository is fairly popular, and already includes an Elm benchmark, but there is no representation from PureScript. I thought it'd be useful to add Halogen into the mix as well.
I've already implemented the benchmark and it passes the repository's tests, so I can submit this at any time. Before I do, though, I wanted to make sure y'all are OK with that, and double-check if I've done anything horribly inefficient that could cast a bad light on the framework.
In my implementation, Halogen sees a ~4x slowdown compared to vanilla JS.
My repository containing the code is linked below. You should be able to follow the few instructions to run the code yourself in ~1 minute if you would like.
https://github.com/saylu/purescript-framework-benchmark
I've briefly discussed this with @natefaubion in the #purescript Slack channel but have not explicitly made sure this is OK to submit yet.

I'd say maybe link the example to a repo incase others can spot if there are any implementational improvements that can be made.
Will tag @garyb because he is the main wizard behind Halogen 😸

The full fork is here, which is an expanded version of my much smaller repository linked above:
https://github.com/saylu/js-framework-benchmark
Just the Halogen folder is this one:
https://github.com/saylu/purescript-framework-benchmark/tree/master/halogen-v2.1.0

Not sure how significant improvement we might have but using Data.Sequence might be much better based on operations you are performing on Array

Turns out using Data.Sequence actually has worse performance (moves from ~4x slowdown to ~5x slowdown). I think theoretically Sequence is the right move, but that doesn't seem to be the case in practice.

The current version here -> https://github.com/saylu/js-framework-benchmark
has this result:

as compared here with Angular, which itself is about 1.5x slower than vanilla JS. The repo owner has indicated he's ready for a pull request, and the code has passed their integration tests.
Is it OK for me to submit this?

👍

I'm submitting this version, but if anyone notices some easy improvements please feel free to let me know!

Benchmark merged:
https://github.com/krausest/js-framework-benchmark/pull/227#event-1194548751

FWIW, I did a test with purescript-spork (which is a veneer over halogen-vdom) with Html.lazy and the mean slowdown was 2x compared to vanilla JS. Right now the Halogen test is always diffing the entire tree, and I'm sure many of the other tests account for that. You could try turning each row into a component, which is how Halogen memoizes renders. This will probably make the creation tests worse, while making the update tests faster. Using components is always keyed, though.

I'm happy to implement these kinds of updates! The owner has the option of doing this as a keyed variant with components, too, so I'll explore that.
Also, while I can try and implement these myself, I certainly have no ownership over the benchmark and anyone who would like to update the Halogen benchmark in the repo -- by all means, go for it!

Other than memoizing renders for rows, node creation is especially expensive, so we could look at trying to optimize halogen-vdom around that.

Just wondering if consing to create a large list/vector is the recommended approach in Purescript? I had worked on a Miso/GHCJS benchmark and had used Vector and its associated generateM function to get the job done. It seemed to be performing considerable faster.

@saurabhnanda While consing isn't efficient, the data generation part of the test is negligible when compared to the inefficiency of diffing the entire tree every tick.

authors: Cmdv garyb natefaubion safareli saurabhnanda saylu

repo: slamdata/purescript-halogen


text:
Update example dependencies for PureScript 0.11

Fixes #456

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

Thanks!

authors: CLAassistant brandonhamilton garyb


text:
Upgrade datasource plugin

... this should fix datasourceAssemblePlugin target
Also update sbt-slamdata to 3.0.0

[ch8432]

repo: slamdata/quasar-datasource-azure


text:
[ILX-48044] Added EmissionCalculation in the Developers API document.

raised a new pull request with the correct main branch.

repo: slatedocs/slate


text:
Specify the return fields in get()

I have a nested coordinates field that I want to search on, but I don't want it to get returned with the models. Is there a hidden array or something similar to make this happen ? The most obvious way would be for the get() or paginate()  methods to accept an array of fields to be returned (all by default if array is missing)

At the moment it's not possible to do within the package, I use transformer (phephpleague/fractal). I hope I understood you well.

I ended up doing the same thing. Thanks nonetheless.

license: mit


text:
Google autocomplete api issue (Response structure changed)

In the response structure of autocomplete API, 'id'  field is missing in some results.
Example:
'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=bangalore&language=&components=country%3AIN&radius=3200&location=None%2CNone&types=(regions)&sensor=false&key='
In above api result having description - "Bangalore South, Karnataka, India" does not contain 'id' as a field.
This library code is breaking in init.py line no. 641
class Prediction(object):
"""
Represents a prediction from the results of a Google Places Autocomplete API query.
"""
def init(self, query_instance, prediction):
self._query_instance = query_instance
self._description = prediction['description']
self._id = prediction['id']
self._matched_substrings = prediction['matched_substrings']
self._place_id = prediction['place_id']
self._reference = prediction['reference']
self._terms = prediction['terms']
self._types = prediction.get('types',[])
if prediction.get('_description') is None:
self._place = None
else:
self._place = prediction

https://developers.google.com/places/web-service/autocomplete#place_autocomplete_results
id is not part of the returned list of fields

I haven't checked the issue for a long time, but it seems on July 10th, 2020 the error got back.

@evgenybf I'm indeed experiencing the exact same issue today.
I'll probably migrate to https://github.com/googlemaps/google-maps-services-python instead, which seems to have a Places API client for Python.

When the patch will be merge?

authors: 3dw1np MrUpsidown davidmarquis evgenybf kapilmatani

repo: slimkrazy/python-google-places


text:
安装成功后500错误

执行app_dev.php后出现：
PDOException  》PDOException 》 DriverException 》 Twig_Error_Runtime
HTTP 500 Internal Server Error
An exception has been thrown during the rendering of a template ("An exception occurred while executing 'SELECT DISTINCT id_5 FROM (SELECT t0_.title AS title_0, t0_.replied_at AS replied_at_1, t0_.reply_count AS reply_count_2, t0_.recommended AS recommended_3, t0_.stick_top AS stick_top_4, t0_.id AS id_5, t0_.body AS body_6, t0_.original_body AS original_body_7, t0_.comment_count AS comment_count_8, t0_.created_at AS created_at_9, t0_.updated_at AS updated_at_10, t0_.enabled AS enabled_11, t0_.vote_count AS vote_count_12 FROM topics t0_ WHERE t0_.enabled = ?) dctrn_result ORDER BY replied_at_1 DESC LIMIT 20 OFFSET 0' with params [1]:
SQLSTATE[HY000]: General error: 3065 Expression #1 of ORDER BY clause is not in SELECT list, references column 'dctrn_result.replied_at_1' which is not in SELECT list; this is incompatible with DISTINCT").
Twig_Error_Runtime
in src/PHPDish/Bundle/WebBundle/Resources/views/Topic/topic_list.html.twig (line 1)
{% for topic in topics %}

设置下mysql，ps: 一般来说都是配置好的,如果出现了就按照这个方式改
方法一, 在mysql里执行
set global sql_mode = 0;

方法二写到mysql的配置文件里去
打开my.ini，加入
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

这是个通用的错误

暂时关闭了，有问题可以再重启

authors: Dangjia slince

repo: slince/phpdish


text:
indicator decorations

Make many cool indicator decorations for picking, like this one: https://pub.dev/packages/bubble_tab_indicator

Maybe better not do that, but leave it to be handled with separate package. It would be a shame to tie some cool indicator decoration to this package and not be able to use it in "regular" TabBar

in fact, do it.
First, make ContainerIndicator and structure for indicator files if someone wishes to contribute later.


text:
Player turning red glitch

So i was in Mushroom Battlefield and there was a player named Wario. I was going to longjump off of his head cuz funni but i accidently hit him in the process. But instead of the damage meter decreasing, he turned bright red like you do when you get damaged in Minecraft and then left.
I don't know if I was seeing things or it was a glitch or if it's a new update.

What was his color scheme?

That seems more like they just changed their CC and left

His color scheme was just regular Wario colors and right before he left, he turned red so i don't think it was him changing his cc to red THAT fast.

His color scheme was just regular Wario colors and right before he left, he turned red so i don't think it was him changing his cc to red THAT fast.

I mean keep in mind that color codes can be pasted in, and that the AFK timer exists.
Did you see him in another map later? And if so, was he still red?

I mean keep in mind that color codes can be pasted in, and that the AFK timer exists. Did you see him in another map later? And if so, was he still red?
I did not see him in another map and i haven't seen him since.

I did not see him in another map and i haven't seen him since.

It still seems like he just changed his color code and left/got AFK kicked. I think he was likely AFK kicked, though, because changing one's color code does not count as an action. (In the sense that it doesn't reset the AFK timer.)
It _**could **_be possible that the color sliders bugged out on his side while he was messing with them, but I feel like that's just grasping at straws.

That seems more like they just changed their CC and left

This is common, people are able to change their color and get kicked.

license: WTFPL


text:
why should new DownloadRequestQueue() every time

only new DownloadRequestQueue() one time in Application ....

What do you mean every time ??
/** Download request queue takes care of handling the request based on priority. */
    private DownloadRequestQueue mRequestQueue;

    /**
    * Default constructor
    */
    public ThinDownloadManager() {
        mRequestQueue = new DownloadRequestQueue();
        mRequestQueue.start();
    }

    /** Constructor taking MAX THREAD POOL SIZE  Allows maximum of 4 threads.
    * Any number higher than four or less than one wont be respected.
    **/
    public ThinDownloadManager(int threadPoolSize) {
        mRequestQueue = new DownloadRequestQueue(threadPoolSize);
        mRequestQueue.start();
    }

The request queue instance is created only once per ThindownloadManager instance.
Its upto you to manage the 'ThindownloadManager' instance across your application. Its life cycle is decided by you. If you need a single instance across your application, you can create a singleton instance in your Application class and provide a static method to supply ThindownloadManager instance.

Ok,I know what your mean,I created 'ThinDownloadManager' in every activity ,so i was  mistake 'ThinDownloadManager'  for need create every time。So I will  manage the 'ThindownloadManager' in my application....Thanks for your library，it's so perfect base on volley framework thought ...

@smanikandan14  you can close the issue....Thanks...


text:
from typing import Type

Hi,
When importing parsyfiles, I get the following error :
    from typing import Type, Dict, Any, Set, Tuple, List
ImportError: cannot import name 'Type'

Python is picking up the standard library version of typing (which does not define 'Type') instead of the version of typing I installed through pip...

This issue was also encountered here: https://github.com/smarie/python-autoclass/issues/4
The solution is to delete the file manually.
Please let me now if this solves your issue.

Note: another solution would be to use 'Type' everywhere in the source type hints, and to wrap the corresponding import with a try/except everywhere.

authors: antvig smarie

repo: smarie/python-parsyfiles


text:
🛑 Dashboard is down

In c18c790, Dashboard (https://app.smart-moov.io) was down:

HTTP code: 502
Response time: 1705 ms

Resolved: Dashboard is back up in 24158d2 after 9 minutes.

repo: smart-moov/upptime


text:
Added ZkSync methods

Added ZkSync methods

I added an override for the funding/refunding logic for zkSync. I wasn't sure whether to opt for duplicating code or changing the existing implementation on EthereumClient but chose the former for now.
Maybe it would make more sense for
func attemptReturn(e *EthereumClient, fromKey *ecdsa.PrivateKey, attemptCount int) (*types.Transaction, error)

to accept an interface? Thereby we could prevent having the same code twice.

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

Comparison is base (8b9de03) 23.18% compared to head (060530c) 22.49%.
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #714      +/-   ##
==========================================
- Coverage   23.18%   22.49%   -0.69%
==========================================
  Files          33       34       +1
  Lines        4287     4445     +158
==========================================
+ Hits          994     1000       +6
- Misses       3192     3345     +153
+ Partials      101      100       -1

Files
Coverage Δ

k8s/config/overrides.go
68.75% <ø> (ø)

networks/known_networks.go
82.56% <ø> (ø)

blockchain/known_networks.go
0.00% <0.00%> (ø)

blockchain/zksync.go
0.00% <0.00%> (ø)

... and 1 file with indirect coverage changes

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

closed due to staleness; we have also decided to handle ZKSync deployments differently

authors: Tofel codecov-commenter friedemannf smickovskid


text:
Update Keeper's Supported Network Format

update content to be aligned with VRF Contract Address page (../docs/vrf-contracts/)
Update parts of docs to be in html

Rebased to main

authors: dwightjl ritika-b

repo: smartcontractkit/documentation


text:
Enum description should include more details about how integer values are used

There are three enums that currently use value as an integer: LightName, messageType, and PredefinedWindow however there is no clear description about how and where the integer value is used and whether Core should expect integer or string value from proxies:
messageType is only used in the protocol binary header as an integer
PredefinedWindow  is used as an integer value. Its string value is never used
LightName is used as a string value
These enums should include more description to avoid confusion

Closing with the merge of #236

authors: bilal-alsharifi jacobkeeler


text:
Add code scanning YAML file

CodeQL is a semantic code analysis engine that allows developers to write queries that analyze code repositories for vulnerabilities and bugs. It works by building a database of the code's abstract syntax tree (AST), control flow, and data flow, which can then be queried using a SQL-like language. This enables developers to identify security issues, performance problems, and other bugs by writing custom queries or using existing ones from a comprehensive query library.
Key Features:
Automated Code Scanning: CodeQL can automatically scan codebases for known vulnerabilities and coding errors.
Custom Queries: Developers can write custom queries to target specific patterns or issues unique to their codebase.
Integration with CI/CD: CodeQL integrates with continuous integration and continuous delivery pipelines to ensure ongoing code quality and security checks.
References:

CodeQL Documentation
GitHub Security Lab: CodeQL
GitHub Code Scanning

Code scanning enabled as part of code sanity check. This PR can be closed.

repo: smartpay-co/sdk-node


text:
chore(readme): fix logger initializtion example

this updates the README example for initializing
a dlog to use the `logger` function. as the current example will not function.

Fixes N/A

Oh, thanks a lot! I made the correct change in the vim doc file and failed to copy paste it correctly here :)

repo: smartpde/debuglog


text:
🛑 Stefanie-Braun.de is down

In 601d961, Stefanie-Braun.de (https://www.stefanie-braun.de) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Stefanie-Braun.de is back up in 5a53ed5 after 13 minutes.

repo: smb/mon-ip


text:
Error Maximum call stack size exceeded

When assembling error. In the project about 5000 modules
Webpack 2.1.0-beta.27
 58% building modules 2353/2907 modules 554 active ...f-portal-web/actions/icons/getFile.jsevents.js:96
    handler.call(self, arg1);
            ^

RangeError: Maximum call stack size exceeded
    at emitOne (events.js:96:13)
    at Sender.emit (events.js:189:7)
    at Sender.frameAndSend (/Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:212:19)
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:126:12
    at Sender.applyExtensions (/Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:287:5)
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:120:10
    at Sender.flush (/Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:268:3)
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:270:10
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:127:7
    at Sender.applyExtensions (/Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:287:5)
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:120:10
    at Sender.flush (/Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:268:3)
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:270:10
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:127:7
    at Sender.applyExtensions (/Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:287:5)
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:120:10
    at Sender.flush (/Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:268:3)
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:270:10
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:127:7
    at Sender.applyExtensions (/Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:287:5)
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:120:10
    at Sender.flush (/Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:268:3)
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:270:10
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:127:7
    at Sender.applyExtensions (/Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:287:5)
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:120:10
    at Sender.flush (/Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:268:3)
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:270:10
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:127:7
    at Sender.applyExtensions (/Volumes/files/projects/tinkoff-portal-web/node_modules/ws/lib/Sender.js:287:5)

Reduce the number of modules is now another error
94% asset optimization/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack-runtime-analyzer/src/plugin/index.js:92
                    return filePath.replace(/([^?]+).*!/, '$1');
                                    ^

TypeError: filePath.replace is not a function
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/webpack-runtime-analyzer/src/plugin/index.js:92:37
    at Array.map (native)
    at RuntimeAnalyzerPlugin.<anonymous> (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack-runtime-analyzer/src/plugin/index.js:91:58)
    at Array.forEach (native)
    at RuntimeAnalyzerPlugin.<anonymous> (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack-runtime-analyzer/src/plugin/index.js:81:27)
    at Array.forEach (native)
    at RuntimeAnalyzerPlugin.<anonymous> (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack-runtime-analyzer/src/plugin/index.js:80:28)
    at next (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:140:14)
    at Compiler.<anonymous> (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack-runtime-analyzer/node_modules/webpack/lib/ProgressPlugin.js:74:4)
    at Compiler.applyPluginsAsyncSeries (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:142:13)
    at Compiler.emitAssets (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/Compiler.js:294:7)
    at onCompiled (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/Compiler.js:233:11)
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/Compiler.js:479:13
    at next (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:138:11)
    at Compiler.<anonymous> (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/CachePlugin.js:61:4)
    at Compiler.applyPluginsAsyncSeries (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:142:13)
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/Compiler.js:476:10
    at Compilation.applyPluginsAsyncSeries (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:131:46)
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/Compilation.js:627:18
    at next (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:138:11)
    at Compilation.<anonymous> (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/ProgressPlugin.js:122:5)
    at next (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:140:14)
    at Compilation.<anonymous> (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack-runtime-analyzer/node_modules/webpack/lib/ProgressPlugin.js:69:5)
    at Compilation.applyPluginsAsyncSeries (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:142:13)
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/Compilation.js:618:10
    at next (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:138:11)
    at Compilation.<anonymous> (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/ProgressPlugin.js:118:5)
    at next (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:140:14)
    at Compilation.<anonymous> (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/optimize/UglifyJsPlugin.js:144:4)
    at next (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:140:14)

Thanks for your report.
We are working on it.

If you need any more information or the debug. Write me please

I've pushed an update.
Can you update webpack-runtime-analyzer to alpha4 and check to problem?

If many modules, the error is the same as it was 'Maximum call stack size exceeded
If little modules, is a new bug
 94% asset optimization/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/Chunk.js:67
                throw new Error("Chunk.initial was removed. Use isInitial()");
                ^

Error: Chunk.initial was removed. Use isInitial()
    at Chunk.get initial [as initial] (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/Chunk.js:67:9)
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/webpack-runtime-analyzer/src/plugin/index.js:322:35
    at Array.map (native)
    at RuntimeAnalyzerPlugin.<anonymous> (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack-runtime-analyzer/src/plugin/index.js:311:40)
    at next (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:140:14)
    at Compiler.<anonymous> (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack-runtime-analyzer/node_modules/webpack/lib/ProgressPlugin.js:74:4)
    at Compiler.applyPluginsAsyncSeries (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:142:13)
    at Compiler.emitAssets (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/Compiler.js:292:7)
    at onCompiled (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/Compiler.js:231:11)
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/Compiler.js:480:13
    at next (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:138:11)
    at Compiler.<anonymous> (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/CachePlugin.js:62:5)
    at Compiler.applyPluginsAsyncSeries (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:142:13)
    at /Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/Compiler.js:477:10
    at Compilation.applyPluginsAsyncSeries (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:131:46)
    at self.applyPluginsAsync.err (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/Compilation.js:615:19)
    at next (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:138:11)
    at Compilation.<anonymous> (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/ProgressPlugin.js:122:5)
    at next (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:140:14)
        at Compilation.<anonymous> (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack-runtime-analyzer/node_modules/webpack/lib/ProgressPlugin.js:69:5)
    at Compilation.applyPluginsAsyncSeries (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:142:13)
    at self.applyPluginsAsync.err (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/Compilation.js:606:11)
    at next (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:138:11)
    at Compilation.<anonymous> (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/ProgressPlugin.js:118:5)
    at next (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:140:14)
    at Compilation.compilation.plugin (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/optimize/UglifyJsPlugin.js:140:5)
    at next (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:140:14)
    at Compilation.<anonymous> (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack-runtime-analyzer/node_modules/webpack/lib/ProgressPlugin.js:65:5)
    at Compilation.applyPluginsAsyncSeries (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/node_modules/tapable/lib/Tapable.js:142:13)
    at self.applyPluginsAsync.err (/Volumes/files/projects/tinkoff-portal-web/node_modules/webpack/lib/Compilation.js:601:10)

By mistake, there is no compatibility even with Webpack2

Yes, it seems like the plugin is not working correctly with some webpack2-builds.
Thanks for report and call stack.
I'll investigate it.

@Tom910 Hi! I've pushed an update - 1.0.0-alpha5
Please update webpack-runtime-analyzer

Thanks, now works.
Graph not usable http://imgur.com/a/ULDQT

@Tom910 great! Thanks for issue.
Oh... realy... graph is not usable for big project... I'll improve it in feature releases

@smelukov maybe necessary hide node_modules modules. React creates a lot of links

I think, hiding of node_modules is not a good solution. Aggregation lib modules in one node looks better approach (so all React modules will represent as single node).

@lahmatiy Then it will be that ~70%+ of the modules are connected with one point. But it will be better than it is now)
Or do as the option to hide and show node_modules

Yeah, we should try both options.

Great ideas! Working on it...

The problem with non-usable graph was solved in 1.0 release ;)

authors: Tom910 lahmatiy smelukov

repo: smelukov/webpack-runtime-analyzer


text:
After non-breaking v1.5.2 release some types suddenly became non-send

related to: https://github.com/PolyMeilex/rfd/issues/136
After update from 1.5.1 to 1.5.2 futures that use async-executor internally suddenly became non send, braking the build. Which is kinda surprising for a patch releases.
error: future cannot be sent between threads safely
   --> src/backend/xdg_desktop_portal.rs:43:9
    |
43  | /         Box::pin(async {
44  | |             OpenFileRequest::default()
45  | |                 .accept_label("Pick file")
46  | |                 .multiple(false)
...   |
59  | |                 .map(FileHandle::from)
60  | |         })
    | |__________^ future created by async block is not `Send`
    |
    = help: within `[async block@src/backend/xdg_desktop_portal.rs:43:18: 60:10]`, the trait `std::marker::Send` is not implemented for `*const async_executor::State`
note: future is not `Send` as this value is used across an await
   --> /home/poly/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.5.2/src/lib.rs:936:18
    |
889 |                 let mut old = with_waker(|waker| {
    |                     ------- has type `std::option::Option<async_executor::LocalQueue>` which is not `Send`
...
936 |                 .await
    |                  ^^^^^ await occurs here, with `mut old` maybe used later
937 |             }
    |             - `mut old` is later dropped here
    = note: required for the cast from `Pin<Box<[async block@src/backend/xdg_desktop_portal.rs:43:18: 60:10]>>` to `Pin<Box<(dyn futures_util::Future<Output = std::option::Option<FileHandle>> + std::marker::Send + 'static)>>`

error: future cannot be sent between threads safely
   --> src/backend/xdg_desktop_portal.rs:64:9
    |
64  | /         Box::pin(async {
65  | |             OpenFileRequest::default()
66  | |                 .accept_label("Pick file(s)")
67  | |                 .multiple(true)
...   |
85  | |                 })
86  | |         })
    | |__________^ future created by async block is not `Send`
    |
    = help: within `[async block@src/backend/xdg_desktop_portal.rs:64:18: 86:10]`, the trait `std::marker::Send` is not implemented for `*const async_executor::State`
note: future is not `Send` as this value is used across an await
   --> /home/poly/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.5.2/src/lib.rs:936:18
    |
889 |                 let mut old = with_waker(|waker| {
    |                     ------- has type `std::option::Option<async_executor::LocalQueue>` which is not `Send`
...
936 |                 .await
    |                  ^^^^^ await occurs here, with `mut old` maybe used later
937 |             }
    |             - `mut old` is later dropped here
    = note: required for the cast from `Pin<Box<[async block@src/backend/xdg_desktop_portal.rs:64:18: 86:10]>>` to `Pin<Box<(dyn futures_util::Future<Output = std::option::Option<Vec<FileHandle>>> + std::marker::Send + 'static)>>`

error: future cannot be sent between threads safely
   --> src/backend/xdg_desktop_portal.rs:109:9
    |
109 | /         Box::pin(async {
110 | |             OpenFileRequest::default()
111 | |                 .accept_label("Pick folder")
112 | |                 .multiple(false)
...   |
126 | |                 .map(FileHandle::from)
127 | |         })
    | |__________^ future created by async block is not `Send`
    |
    = help: within `[async block@src/backend/xdg_desktop_portal.rs:109:18: 127:10]`, the trait `std::marker::Send` is not implemented for `*const async_executor::State`
note: future is not `Send` as this value is used across an await
   --> /home/poly/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.5.2/src/lib.rs:936:18
    |
889 |                 let mut old = with_waker(|waker| {
    |                     ------- has type `std::option::Option<async_executor::LocalQueue>` which is not `Send`
...
936 |                 .await
    |                  ^^^^^ await occurs here, with `mut old` maybe used later
937 |             }
    |             - `mut old` is later dropped here
    = note: required for the cast from `Pin<Box<[async block@src/backend/xdg_desktop_portal.rs:109:18: 127:10]>>` to `Pin<Box<(dyn futures_util::Future<Output = std::option::Option<FileHandle>> + std::marker::Send + 'static)>>`

error: future cannot be sent between threads safely
   --> src/backend/xdg_desktop_portal.rs:131:9
    |
131 | /         Box::pin(async {
132 | |             OpenFileRequest::default()
133 | |                 .accept_label("Pick folders")
134 | |                 .multiple(true)
...   |
153 | |                 })
154 | |         })
    | |__________^ future created by async block is not `Send`
    |
    = help: within `[async block@src/backend/xdg_desktop_portal.rs:131:18: 154:10]`, the trait `std::marker::Send` is not implemented for `*const async_executor::State`
note: future is not `Send` as this value is used across an await
   --> /home/poly/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.5.2/src/lib.rs:936:18
    |
889 |                 let mut old = with_waker(|waker| {
    |                     ------- has type `std::option::Option<async_executor::LocalQueue>` which is not `Send`
...
936 |                 .await
    |                  ^^^^^ await occurs here, with `mut old` maybe used later
937 |             }
    |             - `mut old` is later dropped here
    = note: required for the cast from `Pin<Box<[async block@src/backend/xdg_desktop_portal.rs:131:18: 154:10]>>` to `Pin<Box<(dyn futures_util::Future<Output = std::option::Option<Vec<FileHandle>>> + std::marker::Send + 'static)>>`

error: future cannot be sent between threads safely
   --> src/backend/xdg_desktop_portal.rs:172:9
    |
172 | /         Box::pin(async move {
173 | |             SaveFileRequest::default()
174 | |                 .accept_label("Save")
175 | |                 .title(&*self.title.unwrap_or_else(|| "Save file".to_string()))
...   |
190 | |                 .map(FileHandle::from)
191 | |         })
    | |__________^ future created by async block is not `Send`
    |
    = help: within `[async block@src/backend/xdg_desktop_portal.rs:172:18: 191:10]`, the trait `std::marker::Send` is not implemented for `*const async_executor::State`
note: future is not `Send` as this value is used across an await
   --> /home/poly/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.5.2/src/lib.rs:936:18
    |
889 |                 let mut old = with_waker(|waker| {
    |                     ------- has type `std::option::Option<async_executor::LocalQueue>` which is not `Send`
...
936 |                 .await
    |                  ^^^^^ await occurs here, with `mut old` maybe used later
937 |             }
    |             - `mut old` is later dropped here
    = note: required for the cast from `Pin<Box<[async block@src/backend/xdg_desktop_portal.rs:172:18: 191:10]>>` to `Pin<Box<(dyn futures_util::Future<Output = std::option::Option<FileHandle>> + std::marker::Send + 'static)>>`

error: could not compile `rfd` (lib) due to 5 previous errors

Thanks for the report! I yanked v1.5.2.

cc @notgull

Thanks for a quick response!

Whoops, looks like I forgot to make LocalQueue Send and Sync. Shouldn't be too hard of a fix.

authors: PolyMeilex notgull taiki-e

repo: smol-rs/async-executor


text:
Add a way to batch spawn tasks

For some workloads many tasks are spawned at a time. This requires
locking and unlocking the executor's inner lock every time you spawn a
task. If you spawn many tasks this can be expensive.
This commit exposes a new "spawn_many" method on both types. This
method allows the user to spawn an entire set of tasks at a time.
Closes #91

@smol-rs/admins I would appreciate a review on this, as it's blocking performance work in Bevy.

A common bug with *_many functions in Rust is that memory safety is violated when the iterator panics. So could you please add a Miri-compatible test for such a case? (I do not believe that this implementation violates memory safety on that case, but at least the implementation does not seem to care about cases where the iterator panics.)
Otherwise it looks ok to me.

A common bug with *_many functions in Rust is that memory safety is violated when the iterator panics. So could you please add a Miri-compatible test for such a case? (I do not believe that this implementation violates memory safety on that case, but at least the implementation does not seem to care about cases where the iterator panics.) Otherwise it looks ok to me.

Added! I've also added a workaround for the mutex poisoning that shows up here.

It seems miri reported memory leaks.
error: memory leaked: alloc44788 (Rust heap, size: 120, align: 8), allocated here:

https://github.com/smol-rs/async-executor/actions/runs/7999577501/job/21847610801?pr=92

Hmm, looks like the issue was related to the thread-optimized backend? It looks like it doesn't leak memory now.

authors: notgull taiki-e


text:
Support tvOS and watchOS

This PR adds support for tvOS and watchOS, using the existing kqueue setup.

Whoops, it looks like libc doesn't support tvOS yet.

it looks like libc doesn't support tvOS yet.

Hmm, I thought libc 0.2.136+ support it.

It looks like you're right, I think I was looking at an old libc version.

Would you update the following docs?
https://github.com/smol-rs/polling/blob/f0afd7788e3f60865be7808dd78a02e55ff75f6c/README.md?plain=1#L16
https://github.com/smol-rs/polling/blob/f0afd7788e3f60865be7808dd78a02e55ff75f6c/src/kqueue.rs#L1
And the following cfgs?
https://github.com/smol-rs/polling/blob/f0afd7788e3f60865be7808dd78a02e55ff75f6c/src/lib.rs#L452-L453
https://github.com/smol-rs/polling/blob/f0afd7788e3f60865be7808dd78a02e55ff75f6c/src/lib.rs#L466-L467
https://github.com/smol-rs/polling/blob/f0afd7788e3f60865be7808dd78a02e55ff75f6c/tests/precision.rs#L29-L30
https://github.com/smol-rs/polling/blob/f0afd7788e3f60865be7808dd78a02e55ff75f6c/tests/precision.rs#L65-L66

repo: smol-rs/polling


text:
improve performance at small 'pattern_checking_stars' values

The default value of 'pattern_checking_stars' is 8. When solving 11deg FOV images with 20-30 detected stars against a mag=7 database, I find that solving frequently fails. Increasing 'pattern_checking_stars' to e.g. 12 helps in the few cases I've investigated so far.
Because 'pattern_checking_stars' uses the N brightest detected stars, 8 should have been a reasonable default-- we need more than 4 to allow bright interlopers (e.g. planets) to be skipped, and to deal with brightness variations due to variable stars, different spectral response of the camera vs. the star catalog, etc.
This issue is to track my investigation (and hopefully improvements) around why pattern_checking_stars=8 is often insufficient.

The 'pattern_checking_stars' parameter is no longer meaningful. At solve time, potentially all 4-star pattern combinations are formed from the N centroids; the patterns are processed in descending order of brightness. Patterns are tried until a match occurs, or there are no more patterns, or the solve_timeout is reached.

repo: smroid/cedar-solve


text:
Refactured checkout process

Use SwiftUI and MVVM for checkout process.
Extensive testing required for this version.

Mündliche über Änderungen gesprochen...

b154236deebdfa9b44ed5c7d1b2e9d3f838242c6

repo: snabble/snabble-ios-sdk


text:
srun: error: slurm_init_msg_engine_port error Address already in use

This error occurs by chance.
snakemake version 8.2.0
srun: error: slurm_init_msg_engine_port error Address already in use

I apologize for being so late with my reply. This

This error occurs by chance.

is not really helpful, as I am sure you are aware of. Please update to the latest release and indicate the command you have been using. Perhaps a minimal input to generate the error, too (if you can get hold of the issue, that is)? It would be splendid!
I know, it is at times difficult to provoke a bug, which does not show itself consistently.

Thank you for your suggestion. I am not sure what triggered this bug and it is hard to reproduce. I will update this issue when I have more clue about this.

Please update to the most current versions of Snakemake and this plugin. I will close this issue, now. Feel free to open it, when such an error occurs again.


text:
Support for combinations of gene activation and repression

Hi,
Thanks for releasing this package! One addition that would be great would be support for datasets that contain combinations of activations and repressions, including within the same perturbation. My understanding from @yhr91 is that this is not currently supported, but is not complex to add.
Thanks again!

Hi @giladmishne,
Thanks for raising this issue. Sharing below a quick solution to this problem but feel free to try other ideas.
First allow perturbation embeddings to be added or subtracted. This is currently the line where each perturbation's embedding is added together:
https://github.com/snap-stanford/GEARS/blob/aa1e003b250db4e76498f2c95491413dc25f99f8/gears/model.py#L159-L160
pert_index[1][i] is just the index of the gene that is being perturbed. One simple solution could be to include a sign in that index which indicates whether the perturbation is an activation or a repression and then change the sign of the operation in line 160 accordingly. Perhaps something like:
pert_track[j.item()] = pert_track[j.item()] + (torch.sign(pert_index[1][i]) * pert_global_emb[pert_index[1][i]])

Then change how the signed indices are generated. Somewhere around this function, we would need to check the input adata to see if the perturbation is an activation or a repression and change the index accordingly:
https://github.com/snap-stanford/GEARS/blob/aa1e003b250db4e76498f2c95491413dc25f99f8/gears/pertdata.py#L285-L289

Thanks! I have a sketch of this at https://github.com/giladmishne/GEARS/tree/pert_magnitude.

Thanks a lot! Would you mind opening a PR as well so we it's easier to track the discussion and compare changes

Done - see #17 .

repo: snap-stanford/GEARS


text:
Form post problem

Hello!
I have a simple Bootstrap form, that  is working good and posts the values normally.
<select class="form-control" id="category" name="category" style="width:100%">
<option value="1">This is option one</option>
<option value="2">This is option two</option>
</select>

When I put "selectpicker" class, bootstrap-select looks fine, I can put icons, edit options etc., but the form stops postings the values - they are empty after posting. Can you help me and do you have any idea why?
<select class="form-control selectpicker" id="category" name="category" style="width:100%">
<option value="1">This is option one</option>
<option value="2">This is option two</option>
</select>

Best regards,
Martin

Hi @pristis pristis
There's a simple yet most repeated mistake in your code
please update your code as below

This is option one
This is option two

the attribute name="category"
should be replaced with name="category[]"
hope that can help.

Hey @ayush-k-sharma ! Thanks for the answer!
My code now is:
<select class="form-control selectpicker" id="category" name="category[]" style="width:100%">
<option value="1">This is option one</option>
<option value="2">This is option two</option>
</select>

And still the post is empty and nothing has changed when i have selectpicker class.
I also tried with JS instead selectpicker class. Still without success.
    $(document).ready(function() {
        $('#category').selectpicker({
            style: 'btn-success'
        });
    });

I meet the same problem.

authors: ayush-k-sharma pristis shufanwu

repo: snapappointments/bootstrap-select


text:
Image in custom content stays visible if selected

Tested this on Chrome and Firefox: https://codepen.io/jogai/pen/RyQoda
On selecting an item with an image the selectpicker closes, but the image stays visible.

Hrmmm...I can't reproduce this in Chrome or Firefox on Windows. What OS are you using?

Sorry, I applied my workaround already.. Commented the fix in the example, so you can check again.
(I'm on windows 10, but I dont think that matters)

Its with anything, I updated the example with a new testcase.

Hi, Iam also facing same issue, on select option it show data content data in button with overflow

/move to bootstrap-select

authors: Jogai caseyjhol kameshvinayaka


text:
feat:multichain-max strategy

Changes proposed in this pull request:

Add a multichain strategi that selects the chain and value with max voting power

Hi @sirpy we are actually not suggesting multichain strategy to anyone because users can select differnet network for each strategy inside your space settings, which is equal to multicahin strategy, for max voting power i think you can use math strategy and use min operation, let me know if it doesn't work :) Thanks

@ChaituVR are you sure? Because on the tests it appears as single strategy  and we plan it to be the only strategy defined in the space. I'll also look next week at the math strategy, does it support multiple chains?

Hi again @sirpy  yep, you can select multiple strategies in space, example: https://snapshot.org/#/ens.eth/settings try clicking a strategy, you can select different network for each strategy, total voting power will be sum of these strategies
And yes match strategy should work on different networks this way :)

@ChaituVR I know, but as I said i'm not planning on choosing multiple strategies only 1 strategy which is the multichain-max strategy.

But why? Is there any usecase to have single strategy.?

@ChaituVR i'm not following you, inside the multichain-max you can define multiple strategies but these strategies are not part of the "multiple" strategies you can define in the DAO settings, they are completely internal to the multichain-max strategy

@ChaituVR i've looked into the math strategy, and I had to make some modifications to it so that it can support calculating max from multiple chains.
i've committed to this PR also 77bb89a

@ChaituVR can you take a look at this again?

Hi @sirpy The math strategy doesn't need these changes too, did you try going to your space settings? while selecting a strategy you can select its network too.

@ChaituVR i've tested my example (by putting it as the first one and running the tests) and
without these changes it doesnt know how to read the correct block number of the fuse blockchain
this is obviously a must change because the snapshot time block number for fuse will be different from eth.
yes i know you can select a "single network" per strategy. but his is a "multi network" strategy.
this strategy reads information from multiple networks. without a code to find the block number for each network at the time of the snapshot it will not work.
happy for you to show me a working example configuration for voting power=Max(blockchainX at timeX, blockchainY at timeX)

@ChaituVR this is critical for us, even if you are right I dont see why not add a multichain-max strategy which is just a clone of multichain with max instead of add

@sirpy multichain strategy is really hard to compute, the easier way is to use multichain functionality on snapshot.org (as I mentioned above)
@bonustrack You think this can be merged?

@ChaituVR
Then please show me a demo or share a configuration file of how to do a
a Max(blockchainX,blockchainY) strategy where the block used to fetch the voting power on each chain matches the snapshot timestamp. Because i have no idea how to implement it when you say multichain functionality on snapshot.org, and i've tried everything.

@sirpy What all networks you are looking to try? and what strategy you will pass into this? Maybe create a strategy that calls only your strategies and networks. make sure you pass this checklist (make sure the number of requests doesn't cross 5). https://github.com/snapshot-labs/snapshot-strategies#checklist-for-adding-a-new-strategy
If it is this way, others can pass unlimited networks and strategies. which is no good for the server

@ChaituVR look i dont get it, there's already the multichain strategy that people can use/abuse
the only thing I added is an exact same strategy that instead of ADD does MAX.
Same for the math strategy, people can already feed it multiple sub strategies and "abuse" it.
If you want I can add hardcoded limit of 5 chains but that wouldn't solve the vulnerability of these other strategies.
@bonustrack can we have a second opinion here please?

ook i don't get it, there's already the multichain strategy that people can use/abuse

Exactly 😢 It's hard to deprecate it, we are trying a few ways to remove it but it is troublesome, so we don't want to accept new strategies like that.
What is your exact requirement? what all networks and strategies you are looking to include in the max. I will talk to the team if they have a solution. Do you have multiple tokens on multiple chains? why is it important to consider max in those networks?

Our governance token is currently on Fuse+Ethereum.
The requirement is to consider the max balance of the gov token on any of the networks you hold it.
I dont get the question why is it important, because that's the way our governance logic is.

I believe in the future we can def. increase the number of calls sent from a strategy and also strategies limit :) (we are actively trying to scale the server code for this) till then would be great if you can write a strategy to get a max of these two networks

@ChaituVR ok i've removed my changes to that math strategy and changed the max strategy to

filter out any strategies not on networks 122 or 1
limit to two strategies

hope this can finally be merged
thanks

@ChaituVR
Why have you closed this? i've modified it like you've asked...

@ChaituVR and on that note... can we have it merged please?

@ChaituVR done

authors: ChaituVR sirpy

repo: snapshot-labs/snapshot-strategies


text:
Get/Create/Join spaces by user account address

Is your feature request related to a problem? Please describe.

I need to search list of spaces by user account address
I need to create and join spaces using snapshot.js but the documentation only has a placeholder .... When will the api be ready?

Describe the solution you'd like
await client.spaces.get("client account address")
await client.spaces.create("awesome.eth", "client account address")
await client.spaces.join("awesome.eth", "client account address")
Additional context
The graphql query for multiple spaces doesn't allow searching by members. Can add there as well.

Yes we should document how to follow and unfollow spaces using snapshot.js

bump to document this

authors: ChaituVR HiperMaximus nischitpra


text:
versions ios

hello can i start to do an ios version :)

it would be fantastic ;)))

Perhaps a great reason to mention I am considering porting this to Unity

authors: CrandellWS michelmelo sromku

repo: snatik/memory-game


text:
Plot lc doc

Tried to modify the documentation for photometric data tables. Linking seems to still be a problem

You have the following forms:
 `~doc.photdata`  # in fitting.py
:doc:`~photdata`  # in fitting.py
:doc:`photdata`  # in plotting.py

I would expect only the last one to work. Does it?
By default, the backticks reference a code object. so sncosmo.fit_lc in backticks creates a link to the documentation on that object. The tilde ~ (e.g., ~sncosmo.fit_lc) makes it so the link is still right, but only fit_lc is displayed in the docs: the module prefix is left off. Prepending :doc: in front of the backticks changes the "role": it tells markdown that you're referencing a rst document, rather than an object. That's why the first two forms above shouldn't work: photdata is an rst document, not an object in sncosmo itself.

The last one was the one I started with. It did not work on my computer. I was trying different versions (without knowing the syntax logic) but did not find one that worked. I was wondering if it has something to do with my setup and whether things would be different on rtd. Hence the PR.

You seem to be right: the normal
:doc:`photodata`

doesn't work in docstrings. I just wrote "see the 'photometric data' section of the documentation" (no hyperlink).

Ok ... I am deleting the branch with hanging commits.
On Thu, Jan 22, 2015 at 7:14 PM, Kyle Barbary notifications@github.com
wrote:

You seem to be right: the normal
:doc:photodata
doesn't work in docstrings. I just wrote "see the 'photometric data'
section of the documentation" (no hyperlink).
—
Reply to this email directly or view it on GitHub
https://github.com/sncosmo/sncosmo/pull/65#issuecomment-71141617.

repo: sncosmo/sncosmo


text:
I  am not understanding Why am i getting this error. I tried both SimpleJson and Json. I dont seem to understand or solve the error.

datasetyaml.txt
datasetjson.txt
Error:
The yaml files and Json files uploaded as txt. I created the json just as told in tutorial. From the yaml in the example itself.
Traceback (most recent call last):
File "snips.py", line 12, in
json.load(f)
File "C:\Users\Srikar\AppData\Local\Programs\Python\Python37\lib\site-packages\simplejson_init_.py", line 471, in load
use_decimal=use_decimal, **kw)
File "C:\Users\Srikar\AppData\Local\Programs\Python\Python37\lib\site-packages\simplejson_init_.py", line 525, in loads
return _default_decoder.decode(s)
File "C:\Users\Srikar\AppData\Local\Programs\Python\Python37\lib\site-packages\simplejson\decoder.py", line 370, in decode
obj, end = self.raw_decode(s)
File "C:\Users\Srikar\AppData\Local\Programs\Python\Python37\lib\site-packages\simplejson\decoder.py", line 400, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Hi, I have exactly the same issue. I followed the documentation on how Training Dataset Format. I copy paste the flight example but when I try to load the generated JSON, I get the error:
JSONDecodeError: Expecting value: line 1 column 1 (char 0)
@ncsrikar did you find a solution for that ?

This issue seems to be windows specific. This stackoverflow issue may help: https://stackoverflow.com/questions/16573332/jsondecodeerror-expecting-value-line-1-column-1-char-0

authors: adrienball erwanlc ncsrikar

repo: snipsco/snips-nlu


text:
ModuleNotFoundError: No module named 'PIL'

xls2xlsx version: 0.15
Python version:3.8
Operating System: windows 8

I tried to import xls2xlsx, but there was the error:
File "C:\Users\mycomp\anaconda3\lib\site-packages\xls2xlsx\htmlxls2xlsx.py", line 30, in
from PIL import ImageFont
ModuleNotFoundError: No module named 'PIL'
I installed the Pillow with ;
conda install Pillow
but the result is the same. What should I do?

Not sure - I’m using it per the documentation: https://pypi.org/project/Pillow/
Please try some of the examples documented there and maybe open an issue with that module.
-joe
Sent from my AT&T iPhone

On Dec 24, 2020, at 5:06 PM, opamuk notifications@github.com wrote:

xls2xlsx version: 0.15
Python version:3.8
Operating System: windows 8
I tried to import xls2xlsx, but there was the error:
File "C:\Users\mycomp\anaconda3\lib\site-packages\xls2xlsx\htmlxls2xlsx.py", line 30, in
from PIL import ImageFont
ModuleNotFoundError: No module named 'PIL'
I installed the Pillow with ;
conda install Pillow
but the result is the same. What should I do?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Cannot replicate this issue

authors: opamuk snoopyjc


text:
Remove Booster parent

Relates to: SB-1318

@metacosm does this look good to you as well?

repo: snowdrop/spring-boot-cache-booster


text:
GitHub deploy - Increase AWS S3 key timeout

Building the book from scratch can take up to 40 mins during a GitHub
deploy via GitHub actions. This exceeds the the initially requested token
validity periond from AWS S3. Setting the new limit to this max period.
Fixes #115

thanks @jomey . note I;d intended to merge a change earlier today but got sidetracked that should only execute notebooks that have been changed rather than all of them every time. This will vastly cut down on execution time:
https://github.com/snowex-hackweek/website/blob/141a57dae13dd6e633c787728a9d831fdf8ab279/book/_config.yml#L30
From a security standpoint you want credentials to last only as long as necessary. I'll go ahead and merge this, but we can reduce the number if caching improves things.

One tricky thing with notebooks relying on network access to data is that requests can hang, so there is some unpredictability in the build time

I am aware of the security considerations.
Given the access restrictions to the GitHub actions environment, I still see the increase of the key lifetime as no reduction in security. The running docker image is removed immediately after the build is complete and the token is no longer accessible. As you noted, there is a lot of uncertainty regards network issues or current load on the GitHub actions infrastructure.

authors: jomey scottyhq

repo: snowex-hackweek/website