##[error]Input required and not supplied: upload_url But I have supplied the option

I am new to github actions, and I have tried uploading a release asset after successful release creation. However, it fails. Here is an excerpt from my actions file:
jobs:
  release:
    name: Create release
    runs-on: ubuntu-latest

    steps:
      - name: Create release
        id: create_release
        uses: actions/create-release@latest
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: ${{ github.ref }}
          release_name: ${{ join('Release v0.1.0 Last Alpha Commit ',github.sha) }}
          body: |
            We have made some features! A new step to being complete.
          draft: false
          prerelease: true
  buildm:
    name: Build on macOS
    runs-on: macos-latest

    steps:
      - uses: actions/checkout@v2
      - name: build
        run: echo "blablbahb" #Building shenanigans
      - name: upload asset
        id: upload-release-asset
        uses: actions/upload-release-asset@latest
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          asset_path: ./RichmanMA
          asset_name: Richman-For-macOS
          upload_url: ${{ steps.create_release.outputs.upload_url }} #NOTE THIS LINE!

I have tried moving the upload url to top of the with stanza, and it still fails with this log:
Run actions/upload-release-asset@latest
  with:
    asset_path: ./RichmanMA
    asset_name: Richman-For-ubuntu
  env:
    GITHUB_TOKEN: ***
##[error]Input required and not supplied: upload_url

The entire log is over here if you wish.

You can't use job outputs between jobs, only between steps in the same job.

I want to upload multiple files from different OSs built in the same job to the same release. How do I do that?

I'm trying to do the same thing. I was wondering if it was possible to get the upload_url when triggering on this:
on:
  release:
    types: created

Basically, create the release either manually, or in a different action, then have a subsequent action trigger to add files for MacOS, then have a different action trigger to add files for Linux.

You can use the outputs of jobs
https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjobs_idoutputs
Define the outputs:
jobs:
  Make_GitHub_Release:
    name: Create Release
    runs-on: ubuntu-latest
    outputs:
      version: ${{ steps.step_version.outputs.version }}
      upload_url: ${{ steps.step_upload_url.outputs.upload_url }}

      - id: step_version
        run: echo "::set-output name=version::${{ steps.package_version.outputs.version }}"

      - id: step_upload_url
        run: echo "::set-output name=upload_url::${{ steps.create_release.outputs.upload_url }}"

Use the outputs in other jobs with needs.<job_id>.outputs
          upload_url: ${{ needs.Make_GitHub_Release.outputs.upload_url }}
          asset_path: "./release/${{ matrix.artifact_name }}"
          asset_name: "${{ matrix.asset_name }}"
          asset_content_type: ${{ matrix.asset_content_type }}

You can use the outputs of jobs
https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjobs_idoutputs
Define the outputs:
jobs:
  Make_GitHub_Release:
    name: Create Release
    runs-on: ubuntu-latest
    outputs:
      version: ${{ steps.step_version.outputs.version }}
      upload_url: ${{ steps.step_upload_url.outputs.upload_url }}

      - id: step_version
        run: echo "::set-output name=version::${{ steps.package_version.outputs.version }}"

      - id: step_upload_url
        run: echo "::set-output name=upload_url::${{ steps.create_release.outputs.upload_url }}"

Use the outputs in other jobs with needs.<job_id>.outputs
          upload_url: ${{ needs.Make_GitHub_Release.outputs.upload_url }}
          asset_path: "./release/${{ matrix.artifact_name }}"
          asset_name: "${{ matrix.asset_name }}"
          asset_content_type: ${{ matrix.asset_content_type }}

Neat!


.Net: Does semantic-kernel support gpt-4o-realtime-preview model currently?

https://github.com/microsoft/semantic-kernel/discussions/9293
Does Semantic Kernel currently support the GPT-4o-realtime-preview model that was released two weeks ago?

Issue already exists... #9075

We're going to use this task to investigate creating a sample showing how to do this using the underlying SDK in conjunction with SK

Hi, @dmytrostruk @markwallace-microsoft @RogerBarreto
I really want this feature so I tried to do it myself.
I found out that it should be possible to implement realtime api with SK but a lot of classes is only internal. So implement it just with use of RealtimeClient and SK nuget is not possible.
But I tried to add abstraction to SK.
Here is commit with POC: https://github.com/jerry2007/semantic-kernel/commit/b80b1d127bd4673cb8adf3b68f1b4a59290cfdfa
with this I was able to connect to realtime api and in basic form send message and use native plugin created by SK.
Is it ok for you? Can I help you with this somehow?

Hi @jerry2007 , thanks a lot for the provided information.
First of all, your commit contains your API key to Azure OpenAI service, so I highly recommend removing it from the codebase and regenerate a key, so the existing one becomes invalid.
Regarding the code, the scope of this task is to add an example how to work with gpt-4o-realtime-preview model using existing SK capabilities and I'm currently working on that. If we will decide to add new abstractions for Realtime API (I believe it makes sense to do that as soon as other AI providers will provide similar feature, so we can design an abstraction taking into account the capabilities from different providers), it will be done in a scope of separate task.
Most probably we will start from creating an Architectural Decision Record (ADR), which will describe different options for possible abstraction, pros and cons for each approach and so on. When this document will be created, you are very welcome to contribute as well, provide your ideas, comments and so on.
Thanks a lot!

Ok, thanks for warning. I going to remove it.
I is it neccesery to wait for another provider?
Is possible to create ADR earlier?
Odesláno z aplikace Outlook pro iOShttps://aka.ms/o0ukef

Od: Dmytro Struk @.>
Odesláno: Monday, November 11, 2024 5:51:24 PM
Komu: microsoft/semantic-kernel @.>
Kopie: jerry2007 @.>; Mention @.>
Předmět: Re: [microsoft/semantic-kernel] .Net: Does semantic-kernel support gpt-4o-realtime-preview model currently? (Issue #9310)
Hi @jerry2007https://github.com/jerry2007 , thanks a lot for the provided information.
First of all, your commit contains your API key to Azure OpenAI service, so I highly recommend removing it from the codebase and regenerate a key, so the existing one becomes invalid.
Regarding the code, the scope of this task is to add an example how to work with gpt-4o-realtime-preview model using existing SK capabilities and I'm currently working on that. If we will decide to add new abstractions for Realtime API (I believe it makes sense to do that as soon as other AI providers will provide similar feature, so we can design an abstraction taking into account the capabilities from different providers), it will be done in a scope of separate task.
Most probably we will start from creating an Architectural Decision Record (ADR), which will describe different options for possible abstraction, pros and cons for each approach and so on. When this document will be created, you are very welcome to contribute as well, provide your ideas, comments and so on.
Thanks a lot!
—
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/semantic-kernel/issues/9310#issuecomment-2468623926, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABTQVDSWT2AF2YKM3GPSLV32ADOAZAVCNFSM6AAAAABQEFUF5OVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINRYGYZDGOJSGY.
You are receiving this because you were mentioned.Message ID: @.***>


support $mergeObjects

Adding support for $mergeObjects accumulator in Accumulators.java

Hi @gaspardpetit,
Thanks for the PR I've added JAVA-4329 to track this PR / feature.

Hi @gaspardpetit, I fixed a few small issues, rebased, and pushed to the main branch: https://github.com/mongodb/mongo-java-driver/commit/f0d5eeb55776ddee9853307957a4bf82765f8469.
Thanks again for your contribution.


bug: App shows an infinite spinner if downloading logs gives an HTTP error

Current behavior
If you try to download logs through the Opentrons App, but the robot returns an HTTP error, the app will show a spinner on the log download button until you restart the app.
Steps to reproduce
This is easily reproducible in v4.0.0-alpha.0. See #7924.
On other robot software versions, you'd probably need to:

Modify something's source code so that the GET /logs/<filename> endpoint returns an HTTP error.
Click the Download button in the Opentrons App.

Expected behavior
If the log download returns an HTTP error, the Opentrons App should show some kind of error indication.

Stale.


Add sentenceCase to markerTip for when bee visit incompatible flower

Closes: #217

Superseded by #220.


Provide MockDaprClient or MockActorClient for easy unit/integration testing

Describe the proposal
For making unit testing and integration testing easier, it would be great, if dapr java sdk could ship with ready configured or easy configurable mock implementations for generally used items like DaprClient or ActorClient.
For ActorClient in particular, it would also be great, if the protocol http/gRpc could be configured during tests so it would be easier to use an in memory mock http webserver instead of gRPC.

Will other SDK be supported? .NET in particular?

@leonids2005 Consider creating an issue in dapr/dotnet-sdk for tracking a similar feature if you're interested, I believe these requests are being tracked on a per SDK basis as they have different maintainers.

These issues are per SDK based on what is idiomatic per language. @leonids2005 Please, create an issue in the .Net SDK is you think there is a need for the same there.

Hi @javageek79 ,
I have created a pull request to address your ask to make mocking easier for ActorClient. See PR how it can be used: https://github.com/dapr/java-sdk/pull/606/commits/4a47177005f7e93758f2f7f7d95c0db0f50e9876#diff-e59f8f865998bb2c375fe9e23fd64df4fb3b0c9b2b89e0e5926cbcb423e19b2a
The actor’s DaprClient interface does not need to be mocked since ActorClient should be the only class offering connectivity to Actors for the app and DaprClient is hidden from the app.
I also did not find a need to create a mocking class for the non-actor DaprClient interface since it is already an interface – which should be easy to mock already.
Please, let me know what you think.
Thanks,
Artur Souza


first contribution

Description
Added My Projects
Checklist

[x] I have tested my changes to ensure they work as expected
[ ] I have included documentation for any new features or changes
[x] I have formatted my code according to the project's style guidelines
[ ] I have written tests for any new features or changes
[x] I have run the project's test suite and verified that all tests pass
[ ] I have updated the README and any other relevant documentation
[ ] I have checked for any spelling or grammatical errors

Looks Good 🎉
suggestion for you:

Add professional titles/commits whenever you create a PR/issue. ref(https://gitopener.vercel.app/guides/general-terminology/How-to-write-professional-commits)
also add screenshots if needed.

it's a best practice.
Currently just renamed your title to :
project addition: added projects by pranshu05


Not receiving notifications in background and not running app state

This is the first time I'm using notifications with firebase using swift 4 and I'm not getting notifications.
Here is my AppDelegate.swift:
import UIKit
import UserNotifications
import GoogleMaps
import Firebase

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?
    let gcmMessageIDKey = "gcm.message_id"

    func application(_ application: UIApplication,
                     didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

        UITabBar.appearance().tintColor = UIColor.white

        UITabBarItem.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.lightGray], for:.normal)
        UITabBarItem.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.black], for:.selected)

        GMSServices.provideAPIKey("GOOGLE_MAP_ID_HERE")

        FirebaseApp.configure()

        // [START set_messaging_delegate]
        Messaging.messaging().delegate = self
        // [END set_messaging_delegate]
        // Register for remote notifications. This shows a permission dialog on first run, to
        // show the dialog at a more appropriate time move this registration accordingly.
        // [START register_for_notifications]
        if #available(iOS 10.0, *) {
            // For iOS 10 display notification (sent via APNS)
            UNUserNotificationCenter.current().delegate = self

            let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
            UNUserNotificationCenter.current().requestAuthorization(
                options: authOptions,
                completionHandler: {_, _ in })
        } else {
            let settings: UIUserNotificationSettings =
                UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
            application.registerUserNotificationSettings(settings)
        }

        application.registerForRemoteNotifications()

        // [END register_for_notifications]
        return true
    }

    // [START receive_message]
    func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any]) {
        // If you are receiving a notification message while your app is in the background,
        // this callback will not be fired till the user taps on the notification launching the application.
        // TODO: Handle data of notification
        // With swizzling disabled you must let Messaging know about the message, for Analytics
         Messaging.messaging().appDidReceiveMessage(userInfo)
        // Print message ID.
        if let messageID = userInfo[gcmMessageIDKey] {
            print("Message ID: \(messageID)")
        }

        // Print full message.
        print(userInfo)
    }

    func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any],
                     fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
        // If you are receiving a notification message while your app is in the background,
        // this callback will not be fired till the user taps on the notification launching the application.
        // TODO: Handle data of notification
        // With swizzling disabled you must let Messaging know about the message, for Analytics
         Messaging.messaging().appDidReceiveMessage(userInfo)
        // Print message ID.
        if let messageID = userInfo[gcmMessageIDKey] {
            print("Message ID: \(messageID)")
        }

        // Print full message.
        print(userInfo)

        completionHandler(UIBackgroundFetchResult.newData)
    }
    // [END receive_message]
    func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
        print("Unable to register for remote notifications: \(error.localizedDescription)")
    }

    // This function is added here only for debugging purposes, and can be removed if swizzling is enabled.
    // If swizzling is disabled then this function must be implemented so that the APNs token can be paired to
    // the FCM registration token.
    func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
        print("APNs token retrieved: \(deviceToken)")

        // With swizzling disabled you must set the APNs token here.
         Messaging.messaging().apnsToken = deviceToken
    }
}

// [START ios_10_message_handling]
@available(iOS 10, *)
extension AppDelegate : UNUserNotificationCenterDelegate {

    // Receive displayed notifications for iOS 10 devices.
    func userNotificationCenter(_ center: UNUserNotificationCenter,
                                willPresent notification: UNNotification,
                                withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
        let userInfo = notification.request.content.userInfo
        ///when on foreground this function runs
        // With swizzling disabled you must let Messaging know about the message, for Analytics
         Messaging.messaging().appDidReceiveMessage(userInfo)
        // Print message ID.
        if let messageID = userInfo[gcmMessageIDKey] {
            print("Message ID: \(messageID)")
        }

        // Print full message.
        print(userInfo)

        // Change this to your preferred presentation option
        completionHandler([.badge, .sound, .alert])
    }

    func userNotificationCenter(_ center: UNUserNotificationCenter,
                                didReceive response: UNNotificationResponse,
                                withCompletionHandler completionHandler: @escaping () -> Void) {
        let userInfo = response.notification.request.content.userInfo
        // Print message ID.
        if let messageID = userInfo[gcmMessageIDKey] {
            print("Message ID: \(messageID)")
        }

        // Print full message.
        print(userInfo)

        completionHandler()
    }
}
// [END ios_10_message_handling]

extension AppDelegate : MessagingDelegate {
    // [START refresh_token]
    func messaging(_ messaging: Messaging, didRefreshRegistrationToken fcmToken: String) {
        print("Firebase registration token: \(fcmToken)")
        let defaults = UserDefaults.standard
        defaults.set(Messaging.messaging().fcmToken, forKey: "FCMToken")

    }
    // [END refresh_token]
    // [START ios_10_data_message]
    // Receive data messages on iOS 10+ directly from FCM (bypassing APNs) when the app is in the foreground.
    // To enable direct data messages, you can set Messaging.messaging().shouldEstablishDirectChannel to true.
    func messaging(_ messaging: Messaging, didReceive remoteMessage: MessagingRemoteMessage) {
        print("Received data message: \(remoteMessage.appData)")
    }
    // [END ios_10_data_message]
}

It doesn't matter if my app is close or  in background I'm not getting notification. What am I doing wrong? if I generate the notification from server I receive it but from backend I'm not getting it.

In this method
// Receive displayed notifications for iOS 10 devices.
func userNotificationCenter(_ center: UNUserNotificationCenter,
                            willPresent notification: UNNotification,
                            withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
    let userInfo = notification.request.content.userInfo

    // With swizzling disabled you must let Messaging know about the message, for Analytics
     Messaging.messaging().appDidReceiveMessage(userInfo)
    // Print message ID.
    if let messageID = userInfo[gcmMessageIDKey] {
        print("Message ID: \(messageID)")
    }

    // Print full message.
    print(userInfo)

    // Change this to your preferred presentation option
    completionHandler([])
}

The empty option set in the completion handler is telling your app to not handle the notification. Instead you should change it to some set of UNNotificationPresentationOptions according to whatever is the desired presentation method.
completionHandler([.badge, .sound, .alert])

@morganchen12 I've changed this as per your instructions but unfortunately that changed nothing for me. :/
If I send notification from firebase console I get the notification on phone. But if I change something on backend as per the instructions from backend guy I'm not getting the notification. Upon explaining this scenerio he told me that the same was happening for the android guy and then the issue was at his end. He was not presenting notifications when he was receiving one, so as per his words the issue is at my end that I'm not presenting the notification when I'm getting it.

Android issues are not necessarily indicative of iOS issues since FCM needs to send background pushes through APNs. What's the payload you're sending to FCM?

@morganchen12 how can I check the payload? I mean from where. Sorry this is the first time I'm doing it with firebase.

It depends on your how your backend is sending data to FCM. Check with your backend guy, or search through the codebase for calls to the FCM API.

This is the payload:
Array
(
    [data] => Array
        (
            [title] => Approved
            [doctor_name] => Dr. Smith
            [time] => 07:00 PM
            [date] => 2017-10-19
            [status] => Approved
            [is_background] => 1
            [message] => Dear Chaudhry Talha, You appointment has been Approved By Dr. Smith on 2017-10-19 at 07:00 PM
            [payload] => Array
                (
                    [title] => Approved
                    [description] => Dear Chaudhry Talha, You appointment has been Approved By Dr. Smith on 2017-10-19 at 07:00 PM
                )

            [timestamp] => 2017-10-20 12:27:45
        )

    [type] => 2
)

What's the response you're receiving from FCM when you try to send this message? It doesn't seem to follow the HTTP server protocol doc.

closing due to inactivity, please reopen if this is still an issue.

Your payload data is the issue,  format  should be like -
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
{
"to" : "FCM-token",
"priority" : "high",
"content_available" : true,
"notification" : {
"body" : "This is a Firebase Cloud Messaging Topic Message!",
"title" : "FCM Message",
}
"data" : {
"body" : "This is a Firebase Cloud Messaging data!",
"title" : "FCM data",
}
}
Content_available should be true if you are not sending any 'notification' key, otherwise you will not receive any data message in your code.

@nikusingla
Thanks
I have solved this problem by  "content_available" : true,
i got notification when my app is background mode
Thanks again..... every one for posted


Initialize gmsAvailability correctly

Future<void> initPlatformState() async {
    GooglePlayServicesAvailability? gmsAvailability;
    try {
      SafetynetAttestation().googlePlayServicesAvailability().then((value) {
        setState(() {
          gmsAvailability = value;
        });
      });
    } on PlatformException {
      gmsAvailability = null;
    }

    if (!mounted) return;

    setState(() {
      _gmsStatus = gmsAvailability;
    });
  }

Hello friend how are you, good afternoon, could you give us more details about your request.

Hello :), as there is no response, we proceed to close the thread, you can reopen it at any time.


[T5A2][W13-B3] Edmund Mok

Accepting this PR without a review because another of your PRs for this tutorial was reviewed in detail.


avoid setting plugins key to undef

We'd rather not add it twice, I'm closing this one and we'll pull it over from master to the branch.


Support 'id' attribute for SVG images and allow to set node fill color.

Support 'id' attribute for SVG images.
e.g. allow to change the node fill color of SVG image.
See SVGExampleController.

Hi Khoren,
Thank you for sharing your code! Macaw already have a more general Drawable.tag attribute which allows to have multiple identifiers, so we can handle css class attribute as well. I just pushed a fix to translate SVG id attribute to Node.tag.
Now you just need to replace one line in your SVGExampleController
if (group.id == EditableColorId) {

with this one
if (group.tag.contains(EditableColorId)) {

Good. Thanks 👍


Refactor coding effect

Simplified some of the spaghetti logic from coding_effect by splitting it into frameshift_coding_effect and in_frame_coding_effect
Added ExonicSpliceSite annotations (purine change at start of exon, "MAG" pattern change at end of exon), which carry alternate coding effects
Added unit tests for more classes of effects

LGTM


embed in other apk

treally thanks for the tool , i appreciate you really
but can you add the following feature
1- embed the payload in original apk
2- bypass google play protection to prevent the victime to activate unknown resources
3- reaching to facebook and whatsup messages
also if i want to use it with ngrok i should put the ngrok ip and port only or what i should do ?

Hi for ngrok I did:
run ngrok
run lemon
$./ngrok tcp 22222 --remote-addr=:23508
to build apk I used:
HTTP:
PORT: 23508 instead default one 22222

thanks it working now

Sorry, This app is made for Administration and Educational purposes, Bypassing Google play and packaging with another application says to me you want to be using it maliciously, so in short. no.
Thanks, @siceinformatica for helping with ngrok!


Upload Files

Hello,
how can I upload 2 files in one step with Browser Library?
Can you update KW Update File for Update Files or create new :-)???

@allcontributors please add @martamedovova-ext91522  for ideas?

Yes, I meant Upload File By Selector, would need Upload Files by Selector :)
Will you create this KW then? :-)

I would not want to do a new keyword actually.
I would just allow the file path to be a list or a dictionary or list of dictionary.
This is basically same as Playwright allows it.
files: string|Array<string>|Object|Array<Object>
    name: string
    mimeType: string
    buffer: Buffer

I think we can probably not do Buffer, but lets analyse first.
So if we do not support Buffer, we do not need dictionaries.
But that could be relevant for remote executions.
Or is anyone strongly thinking that a new keyword is a must.

I am not in favor of new keyword, enhancing existing keyword to support multiple files is better way.

I do not need the new KW but at least need have this function at the current kw?

No idea about buffer, but if it is complicated, I would skip it. Unless there is strong need for it.

I would say I will be needed very soon.

@martamedovova-ext91522
What do you need very soon? @aaltat was talking about the Buffer.
I doubt we can do Buffer.
Do you need directory or multiple files soon?
RoboCon in Helsinki is next week and also RoboCon Online is end of February.
So it might be tricky to find time.

Sorry I meant the uploading multiple files on the same time.
Sure, I am aware about the RoboCon.
I just say it would be helpfull feature :)

Hello, any update on this one :)? I also need to uplaod multiple files at once.

We are going to change the argument syntax slightly. Instead of path being named argument, we are going to change it to variable number of arguments. Therefore marking this backwards incompatible.

Also added support folder. If path is a folder, will find files from the folder (but not from sub-folders) and upload files from the folder. It is possible to mix and match files and folders.

Moved to different idea with arguments and not anymore backwards incompatible.
Adding support for buffer.


fixed require for google_oauth2 strategy

When including google_oauth2 strategy i ran into the error that the strategy could not be found.
Fixed that.

I don't think we should list all strategies. Maybe we should just try to require that file and rescue LoadError in case it doesn't work?

This is a better solution. What do you think @buggle? Could you provide a new pull request changing the way that we require the strategies?


take jwt key from cli instead of auto generating on startup

Fixes #26

Codecov Report

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

@@           Coverage Diff           @@
##           master      #27   +/-   ##
=======================================
  Coverage   28.28%   28.28%
=======================================
  Files           9        9
  Lines         693      693
=======================================
  Hits          196      196
  Misses        465      465
  Partials       32       32

Continue to review full report at Codecov.

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

So, I advice against this because... :)
First off, your key would be visible in your bash history even if it's a dev environment that would be a bad idea. Unless you would like to use a vault and pass in an environment property which is a hassle.
Second, the signing should happen via a public / private key-pair to be honest rather than a passed in OR generated jws key. So instead of doing this, try focusing on a key exchange solution?

I can also add an environment variable for the key.
Also why not support both a key and a public/private key-pair? If someone wants to spin up gaia just to try out or quickly dev with having to first generate a keypair is kinda annoying.

Because providing the ability to circumvent security because of convenience is just asking for people to use it in production and they definitely will because it's easier. :)
Instead do this:

Load in a private key ( for which the name could be passed in from command line )
And use the content as a security key
Use the public part of that key as a verify key

Shouldn't be too difficult and would remove the need for yet another flag.

Ok, no problem. I can make those changes later today.

...
privateKey, _ := ioutil.ReadFile(privateKeyPath)
signKey, _ = jwt.ParseRSAPrivateKeyFromPEM(privateKey)
...
tokenString, err := t.SignedString(signKey)
...

Something like this should work juuuust nicely. :)

Yup, that's what I was planning.

Cool. And here https://github.com/gaia-pipeline/gaia/blob/master/handlers/handler.go#L144 you can use the opposite ParseRSAPublicKeyFromPEM.
Alright, I shuddup. It's just an interesting PR. :)

Thanks a lot @rmb938 for your contribution. 🤗
I personally think that the initial startup of Gaia should be easy and simple.
If I understand your code correctly then currently the user is forced to set the parameter jwtkey and like you already said: This will be a bad first experience for all new users.
I also totally agree with @Skarlso point that this is an security issue.
So what do you think about providing a parameter to set a public/private key and if this parameter is empty we generate a token (like we do it now). Do you think this is still an security issue? :wink:

Yup that makes sense. What do you think about printing a warning message if the auto generated key is being used? That way users know they messed up something if they actually wanted to use a private key.

@rmb938 @michelvocks Sounds cool! 👍

Awesome! 🤗
Looking forward to it!

@michelvocks How does that look?

This is looking good. :) You'll have to write tests though. ;) :)

@Skarlso @michelvocks Added tests for everything I added so we should be good to go :)

Looking good! Good job with the tests! 👍  :)

@rmb938 can you have a short look at my review comment? :relaxed:
Would be nice if you could change this one simple thing.


Added Updated_code

Very Sorry for the inconvenience. I  hope now all  bugs have been fixed in this commit. Still if there is any issue please let me know sir.

New Screenshots.

please resolve branch conflict


DVC+GTO integration

Just had a discussion with @dberenbaum yesterday about this. Overall, feels like there are too many issues blocked by missing GTO/DVC integration. At the same time, I feel like GTO is not useful without DVC and is more like a plugin to DVC.
So, two options are possible: build an integration in GTO, or just merge GTO into DVC.
There are not many decent ways to actually store binaries in repo, which makes it hard to imagine using GTO without DVC in the real-world scenarios. I can recall these options:

Commit binaries to the repo - not a real option thou
Use git LFS
Use DVC
Commit them manually somewhere (could be s3, artifactory or something)

Supporting option 4 in GTO to have upload/download functionality as in https://github.com/iterative/gto/issues/307 will require integrations with each place (for s3 it would be fsspec probably, for artifactory some python client of theirs, etc). It makes me think these integrations could be also part of DVC as well (dvc import-url, etc).
Now if we can't imagine a good use-case for GTO without DVC, or all those use-cases would require some machinery that could also be part of DVC, why not just merge GTO into DVC?
Asking your opinion @francesco086 @shortcipher3 @bgalvao since you're the most active GTO users I know about :)
(this is not something we need to decide right away, since we can just build this integration inside of GTO, and then merge - but I think merging could make it more straightforward. I'm just collecting opinions for now to have more detailed picture).

My perspective is that of someone who never used GTO without DVC, and also that of Unix philosophy:

Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new "features".

Thus, I would say, let DVC do the data management and let GTO stay dedicated to managing git tags (for models). This is not to say that GTO cannot become merged into DVC as a subcommand - I imagine as dvc gto or something similar.
Nonetheless, the separation of concerns would be there.
One point in favour of this separation of concerns is that DVC has a lot of stability and contribution behind artifact management - artifact as in binaries, data, etc. From a development point of view, I would rather leverage the foundation of DVC rather than risk reinventing the wheel DVC has built - but I am not a code contributor to any of these projects so take that with a grain of salt.
Second, would be visibility of the gto functionality: DVC has a bigger name. I mention this because I really want to see Git Tag Ops become a standard practice.
For me, only 3. is a real use-case.
As for 4., I don't know how DVC would handle potentially different remotes dissociated from git repositories, so I have no real take on that.
Cheers ✌🏼

Hi @aguschin thanks for asking my opinion, I am happy to share my thoughts on this.
I feel very much in line with @bgalvao concerning the Unix philosophy. However, the conclusions I come to are probably a bit different.
What isgto goal? Artifact registry or just manage git tags?
If it is the second one then it has no right to stand on its own, integrate it with dvc (but allow me to fork first :P). I think its purpose should be the first one. But then it misses some functionalities, e.g. put and pick as in https://github.com/iterative/gto/issues/307.
What I think would be the right way to follow the Unix philosophy is to create an interface in gto to integrate other tools, like dvc. Allow users to write their own gto-plugins. And provide dvc as an example plugin.
If we assume new gto commands like in https://github.com/iterative/gto/issues/307, I can imagine an interface along this line:
class GTOIntegration(ABC):

    def pre_put():
        pass

    def after_put():
        pass

    def pre_pick():
        pass

    def after_pick():
        pass

Btw, git commands could also be integrated in this way.
Then, one can call gto and specify the plugin with an option, e.g. gto put --plugin dvc (--plugin default value will be git, which would mean commit/push the file as-it-is).
I should also mention that I don't like how many things does dvc do right now, it's way too much, and breaks the idea of "make each program do onw thing well". All experiment tracking, repro, etc. is out of scope imho, and should have been a separate program.
Hope my thoughts can be of some help :)

You mentioned merging the dvc.yaml with the artifacts.yaml, I would already like to break up my dvc.yaml.  I like having them separate.  Would like to better understand the value proposition of merging those if you could provide some context.
Like the others, I like the separation of concerns.  I think using dvc as a component for gto makes a lot of sense.  Perhaps I don't have the full context, but it seems like dvc shouldn't require gto, but gto could have a lot of additional functionality and features if it required dvc.
I can think of use cases where one might use dvc without gto, but not compelling cases for using gto without dvc.
I think treating gto as a dvc subcommand would be okay and if there are good enough reasons to merge the project then it would be worth considering.  It would probably help with version compatibility while the projects continue to push toward stability.
Since it is open-source maybe at some point another party would want to add an option to use git lfs as an alternative to dvc, this would be easier to do if it were kept separate.

Thanks @bgalvao @francesco086 @shortcipher3! That helps me a lot.

You mentioned merging the dvc.yaml with the artifacts.yaml, I would already like to break up my dvc.yaml. I like having them separate. Would like to better understand the value proposition of merging those if you could provide some context.

Sure! Mainly, two reasons I'm aware of:

we see that for some customers having too many files makes it hard to understand what happens. So the idea was to simplify onboarding experience (@dmpetrov mentioned this multiple times, so maybe he can give more details)
we have sections like stages, plots and metrics in dvc.yaml, so it makes sense to unify: have models, datasets and other artifact types there as well. And effectively, treat all those as artifact types you can register semantic versions for, or maybe assign stages to, if you need that.

maybe @shcheklein can also add something to the table.
As I see, there are 3 options now:

Keep GTO and DVC separate, as is now
Merge “artifacts.yaml” part of GTO in DVC. In this case GTO stays like a separate product, but it only manages Git tags, no artifacts.yaml management, no put/pick commands here
Merge “artifacts.yaml” and Git tags into DVC (i.e. merge GTO into DVC completely)

Last option would probably overcomplicate DVC too much... WDYT?
Also, we have many issues collected over time blocked by uncertainty of GTO/DVC integration.https://github.com/iterative/gto/issues/254. Sharing some thoughts about them below (feel free to add something if you have that in mind).
Some of them should be easier to implement in options 2&3, probably. Some will still require an integration between tags and artifacts.yaml (which means in option 2 we need to make external integration, in option 3 - internal integration). Listing most important here:

https://github.com/iterative/gto/issues/34 is implemented naturally in case of options 2&3
https://github.com/iterative/gto/issues/259 - instead of gto show --type model you'll run dvc models list as some replacement (although there is still question on how to get gto show --type model. Related to https://github.com/iterative/gto/issues/119)
https://github.com/iterative/gto/issues/198 - supporting monorepo naturally poke us into re-using DVC approach to that, justifying artifacts.yaml and dvc.yaml merge somewhat
https://github.com/iterative/gto/issues/158 - will require integration between artifacts.yaml and "Git tags" parts anyway (external in option 2, internal in option 3)
https://github.com/iterative/gto/issues/336 - maybe it's easier to implement if artifacts.yaml is inside of DVC

Regarding merging dvc.yaml and the artifacts.yaml file to reduce the number of required files to get onboarded, that makes sense to me.  I can imagine teams with complicated setups wanting to break out their artifacts, plots, metrics, and/or stages into separate files.  What about adding something like an include artifacts.yaml in the dvc.yaml spec?
I'm not seeing any killer features that are supported by 3 and not 2.  I prefer 2 unless it blocks a great feature.

Hi folks! We're drafting how this integration may look like - happy to hear your thoughts
https://github.com/iterative/mlem.ai/pull/323, inside there's a link to docs page
@shortcipher3 @francesco086 @bgalvao

Hi @shortcipher3 @francesco086 @bgalvao! Happy to finally share that we finished with the update - I hope that'll be a smother experience now.
I recorded a brief video explaining the update, will make something better in a few days now.
I also released https://github.com/iterative/gto/releases/tag/0.3.0 that deprecated reading/writing to artifacts.yaml and gto-action@v2 that now reads dvc.yaml for annotations instead of artifacts.yaml.
We'll be working on implementing dvc get . mymodel@latest and dvc get . mymodel#prod now to allow using models without involving GTO explicitly - that should make it easier.
Sorry for deprecating artifacts.yaml - to work with new MR, you'll need to move your annotations to dvc.yaml. I tried to implement it, but considering the big scope of the task overall, I had to eventually drop the support :( If you feel like you need it, please create a ticket in DVC repo  and backlink to this discussion / share the importance of this so we can prioritize it right.
Overall, thanks for participating here, your feedback definitely made it way easier for me to understand the direction of changes!

If you'll need to migrate from artifacts.yaml to dvc.yaml, I wrote a little helper script, you can find it in this section of docs, which explains new format: https://dvc.org/doc/user-guide/project-structure/dvcyaml-files#artifacts

@aguschin great work! Love seeing the value-proposition of GTO making it into DVC :)
I have a question: if you declare models in the artifacts section of dvc.yaml, do you still declare them as outputs if a pipeline stage, for example:
artifacts:
  cv-classification: # artifact ID (name)
    path: models/resnet.pt  # same
    type: model
    desc: 'CV classification model, ResNet50'
    labels:
      - resnet50
      - classification
    meta:
      framework: pytorch

stages:
  train_resnet50:
    cmd: python -m src.model.train.resnet50
    outs:
      - models/resnet.pt  # same

Thanks @bgalvao! Yes - adding artifacts: doesn't change what you have in stages or in other parts of dvc.yaml. Does it make sense?

it does :D

Awesome work as always @aguschin !
Thank you 🙏

@francesco086, it's https://github.com/iterative/dvc/issues/9100#issuecomment-1559148246
Linking the comment that have a summary about all the issue, so you can skip reading other parts of it.


Ensure able to run multi Core instances

OAuth StateReference is stored in local map
RemoteWork Item Scheduler is local to the node

Just to confirm - each core instance will be isolated from the other core instances, yes?

@ldimaggi Isolated as in they won't talk to each other? Currently, that is the case yes. Don't have a need to sync between them in the foreseeable future. Never say never :)

OAuth StateReference is stored in local map

This one has been fixed in https://github.com/almighty/almighty-core/commit/cc76368c64fb39301747593b544f356e25fcc3dc

Closing this issue! The remote issue tracker will be extracted out of core in a short term. Please, feel free to re-open this issue.


devops: Align Filesystem Hierarchy across CI, Docker and Rust code

Describe the issue or request
Some documentation and Rust code, among other examples, uses /zebrad-cache as the path to save the cache state. We once decided to use the linux Filesystem Hierarchy Standard (FHS) for Docker, and changed some existing paths, including the one for cache state to /var/cache/zebrad-cache, this creates inconsistency and confusion for users and developers.
Expected Behavior
Have the same convention across the whole project, including documentation.
Current Behavior
Paths differ across the project
Possible Solution
Use the Filesystem Hierarchy Standard (FHS) for all paths
Additional Information/Context
I recall some paths were not possible to change (or at least not a good idea), as those were for matching zcashd
Is this happening on PRs?
N/A
Is this happening on the main branch?
N/A

Hey team! Please add your planning poker estimate with Zenhub @arya2 @oxarbitrage @teor2345 @upbqdn


Equivalent to wingmanAI ?

Is this similar project?
If functions match, suggest to add it in readme section for "similar project" list
https://github.com/e-johnstonn/wingmanAI/

As it is mentioned in acknowledgement section at WingmanAI


Automator: update<EMAIL_ADDRESS>in<EMAIL_ADDRESS>

Generated by Automator - 2024-10-23T00:33:43+00:00

@istio-testing: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-ipv6_istio_release-1.22
5f978d44b3b6f79c7f201517fa2fdf6ad750342e
link
true
/test integ-ipv6

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.


Certificate signed by Unknown

Hello,
It seems to fail if it doesn't trust the cert from the target web server.  Below is sample output from when I ran it. Is there anyway a -k (curl) or --no-check-certificate (wget) flag can be added?
docker run stefanoj3/dirstalk dirstalk scan "https://redacted.example.com" -d https://raw.githubusercontent.com/daviddias/node-dirbuster/master/lists/directory-list-1.0.txt
level=info msg="Starting scan" cookie-jar=false cookies= dictionary-length=141694 headers= scan-depth=3 socks5="<nil>" threads=3 timeout=5000 url="https://redacted.example.com" user-agent=
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/cgi-bin: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)" method=GET path=cgi-bin
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/education: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)" method=GET path=education
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/betsie: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)" method=GET path=betsie
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/accessibility: x509: certificate signed by unknown authority" method=GET path=accessibility
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/go: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)" method=GET path=go
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/accesskeys: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)" method=GET path=accesskeys
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/-: x509: certificate signed by unknown authority" method=GET path=-
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/toolbar: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)" method=GET path=toolbar
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/radio: x509: certificate signed by unknown authority" method=GET path=radio
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/tv: x509: certificate signed by unknown authority" method=GET path=tv
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/whereilive: x509: certificate signed by unknown authority" method=GET path=whereilive
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/talk: x509: certificate signed by unknown authority" method=GET path=talk
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/homepage: x509: certificate signed by unknown authority" method=GET path=homepage
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/a-z: x509: certificate signed by unknown authority" method=GET path=a-z
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/bb: x509: certificate signed by unknown authority" method=GET path=bb
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/int: x509: certificate signed by unknown authority" method=GET path=int
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/textonly: x509: certificate signed by unknown authority" method=GET path=textonly
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/oth: x509: certificate signed by unknown authority" method=GET path=oth
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/mobile: x509: certificate signed by unknown authority" method=GET path=mobile
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/t: x509: certificate signed by unknown authority" method=GET path=t
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/help: x509: certificate signed by unknown authority" method=GET path=help
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/search: x509: certificate signed by unknown authority" method=GET path=search
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/pl1: x509: certificate signed by unknown authority" method=GET path=pl1
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/makehomepage: x509: certificate signed by unknown authority" method=GET path=makehomepage
level=error msg="failed to perform request" depth=3 error="Get https://redacted.example.com/text: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)" method=GET path=text

Hey @gbiagomba the feature you suggest seems valuable, I think I can have a PR for it ready this mornining.
Thank you for the suggestion.

@gbiagomba it should be available now, I added the same flag as wget (--no-check-certificate).
Make sure to pull the latest image: docker pull stefanoj3/dirstalk
Can you let me know if it works for you? I tested it myself and it seems to be working fine (check https://github.com/stefanoj3/dirstalk/pull/91 for example usage)
Note I haven't tagged a new release yet, so if you are using binary there is none available yet. If you are using docker then you can already try.

It seems to work, thank you!

@stefanoj3 could you upldate the release binary to include the flag? because the latest one (version 1.3.1) does not seem to support it


[android][platform views] Magnifier not working with TLHC

Hello! Android magnifier doesnt work properly. I noticed the issue with editText widget but it is not working for every type of View.
Steps to Reproduce

1) Execute flutter run on the code sample
Lib folder is also available here
https://drive.google.com/file/d/1mL3YV9kRTDJ8HwAtfywQW47jN9KLSBCn/view?usp=sharing
Main.dart
import 'dart:io' show Platform;
import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/services.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'EditText Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('EditText - Platform View'),
        ),
        body: Center(
          child: Padding(
            padding: EdgeInsets.fromLTRB(40, 0, 40, 0),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              mainAxisAlignment: MainAxisAlignment.center,
              children: const <Widget>[
                const Text('Android EditText:'),
                SizedBox(height: 8),
                SizedBox(
                  height: 50,
                  child: NativeTextBox(),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

class NativeTextBox extends StatelessWidget {
  const NativeTextBox({super.key});

  @override
  Widget build(BuildContext context) {
    const String viewType = 'native-widget';
    const Map<String, dynamic> creationParams = <String, dynamic>{};
    if(!Platform.isAndroid) {
      return Text('Implemented only for Android!');
    }

    return PlatformViewLink(
      viewType: viewType,
      surfaceFactory:
          (context, controller) {
        return AndroidViewSurface(
          controller: controller as AndroidViewController,
          gestureRecognizers: const <Factory<OneSequenceGestureRecognizer>>{},
          hitTestBehavior: PlatformViewHitTestBehavior.opaque,
        );
      },
      onCreatePlatformView: (params) {
        return PlatformViewsService.initSurfaceAndroidView(
          id: params.id,
          viewType: viewType,
          layoutDirection: TextDirection.ltr,
          creationParams: creationParams,
          creationParamsCodec: const StandardMessageCodec(),
          onFocus: () {
            params.onFocusChanged(true);
          },
        )
          ..addOnPlatformViewCreatedListener(params.onPlatformViewCreated)
          ..create();
      },
    );
  }
}

Expected results:
Magnifier glass should display magnified text as in this video below.
https://user-images.githubusercontent.com/53510751/193296334-3a9359f8-8d0a-4558-943d-25067e0dbd7f.mp4
Actual results:
Here is a video showing the issue. It is worth noticing that the magnifier widget appears on the proper gesture, but its background is transparent, its position seems not correct, and it doesn’t display the magnified text. From other tests I noticed that magnifier glass do not work with every type of view, not just the textfield.
https://user-images.githubusercontent.com/53510751/193295448-f8373d30-5e19-4566-bf40-3c56777e75fe.mp4
Flutter doctor:
[✓] Flutter (Channel stable, 3.3.2, on macOS 12.2 21D49 darwin-arm, locale en-IT)
[!] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
✗ cmdline-tools component is missing
Run path/to/sdkmanager --install "cmdline-tools;latest"
See https://developer.android.com/studio/command-line for more details.
✗ Android license status unknown.
Run flutter doctor --android-licenses to accept the SDK licenses.
See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.
[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.2)
[✓] Connected device (3 available)
[✓] HTTP Host Availability

I update newest version Flutter, It work well :3

Thanks for letting me know. Is it stable channel or master?

Hi @delfme, please provide the corresponding native code for the platform-view.
Thank you

@phanvankhaicd It is not working with flutter 3.3.3.
@danagbemava-nc I did nothing on the native side, but here it is:
package com.example.flutter_platform_views_example;

import io.flutter.embedding.android.FlutterActivity;
import io.flutter.embedding.engine.FlutterEngine;
import android.content.Context;
import android.view.View;
import android.widget.EditText;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import io.flutter.plugin.platform.PlatformView;
import io.flutter.plugin.common.StandardMessageCodec;
import io.flutter.plugin.platform.PlatformViewFactory;
import java.util.Map;

public class MainActivity extends FlutterActivity {
    @Override
    public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
        flutterEngine
            .getPlatformViewsController()
            .getRegistry()
            .registerViewFactory("native-widget", new NativeViewFactory());
    }
}

class NativeView implements PlatformView {
   @NonNull private final EditText editor;

    NativeView(@NonNull Context context, int id, @Nullable Map<String, Object> creationParams) {
        editor = new EditText(context);
    }

    @NonNull
    @Override
    public View getView() {
        return editor;
    }

    @Override
    public void dispose() {}
}

class NativeViewFactory extends PlatformViewFactory {

  NativeViewFactory() {
    super(StandardMessageCodec.INSTANCE);
  }

  @NonNull
  @Override
  public PlatformView create(@NonNull Context context, int id, @Nullable Object args) {
    final Map<String, Object> creationParams = (Map<String, Object>) args;
    return new NativeView(context, id, creationParams);
  }
}

Tested also from master and it doesnt work. @phanvankhaicd can you share a video of it working?
@danagbemava-nc I tested it from two different machines on both stable and master channels.

@delfme thanks for providing the sample code. This issue is reproducible on the latest stable and master channels.
I also have the same result as above.

flutter doctor -v
[✓] Flutter (Channel stable, 3.3.3, on macOS 12.6 21G115 darwin-x64, locale en-VN)
    • Flutter version 3.3.3 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 18a827f393 (10 hours ago), 2022-09-28 10:03:14 -0700
    • Engine revision 5c984c26eb
    • Dart version 2.18.2
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
    • Xcode at /Applications/Xcode14.0.1.app/Contents/Developer
    • Build 14A400
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2022.2.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 70.0.5
    • Dart plugin version 222.4167.21

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.71.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.48.0

[✓] Connected device (4 available)
    • SM T225 (mobile)           • R9JT3004VRJ                          • android-arm64  • Android 12 (API 31)
    • iPhone 14 Pro Max (mobile) • 332079AF-E895-4685-910E-7B1E18B0C6B8 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-0 (simulator)
    • macOS (desktop)            • macos                                • darwin-x64     • macOS 12.6 21G115 darwin-x64
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 105.0.5195.125

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

[✓] Flutter (Channel master, 3.4.0-37.0.pre.14, on macOS 12.6 21G115 darwin-x64, locale en-VN)
    • Flutter version 3.4.0-37.0.pre.14 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 35afe1bdac (45 minutes ago), 2022-10-03 18:41:23 -0700
    • Engine revision 83c68740e3
    • Dart version 2.19.0 (build 2.19.0-268.0.dev)
    • DevTools version 2.17.0

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
    • Xcode at /Applications/Xcode14.0.1.app/Contents/Developer
    • Build 14A400
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2022.2.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 70.0.5
    • Dart plugin version 222.4167.21

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.71.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.48.0

[✓] Connected device (3 available)
    • SM T225 (mobile) • R9JT3004VRJ • android-arm64  • Android 12 (API 31)
    • macOS (desktop)  • macos       • darwin-x64     • macOS 12.6 21G115 darwin-x64
    • Chrome (web)     • chrome      • web-javascript • Google Chrome 105.0.5195.125

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Labeling this issue for further investigation from the team!

Is there a workaround to make magnifier work before the bug gets fixed?

here also the android magnifier not working

@JoseBarreto1 I have made other tests and this looks more serious than excepted. Android magnifier is not working everywhere. For example, it is broken also when applied to an Image (to let the user magnify image spots) or a note (for text selection).
Bad news is that magnifier is auto-enabled by android for all textView and we cannot dispose it. Hence the user will notice the bug. @huycozy It would be helpful if flutter could disable magnifier somehow until bug is fixed.

Can someone at Google please have a look at this? It should be easy to fix at low level, but if not fixed it makes impossible to use native widgets that support the magnifier lense, because bug is severe and user will report this issue / assign to app a 1-star review.

[Update] To whom it may concern.
Just discovered that magnifier lens works on Hybrid Composition (so I’m updating issue title). Also, noticed a weird thing. HC textfield widget takes a bit more to load than TLHC equivalent, but then it performs faster. How that can be?
To notice performance issue with TLHC, just extend code to support multiline, onChange pass textfield’s height to Dart in order to setState on new line to update UI, you will see that communication is somehow faster with HC.

Unfortunately, HC loading time is so big that makes it unusable. A fix for TLHC is much needed.

@blasten @stuartmorgan hope you dont mind me mentioning but would you be so kind as to shed some light on this? 🙏 Is there a way to have magnifier work also with TLHC?

Please don't ping random people.

An alternative to using HC mode is to switch Flutter from using a SurfaceView to a TextureView. In that case the magnifier renders correctly.

Hello @johnmccutchan how that would be doable in this case?
I mean on dart side we have
return PlatformViewLink(
  viewType: NativeTextInput.viewType,
  surfaceFactory: (context, controller) => AndroidViewSurface(
    controller: controller as AndroidViewController,
    hitTestBehavior: PlatformViewHitTestBehavior.opaque,
    gestureRecognizers: const <Factory<OneSequenceGestureRecognizer>>{},
  ),
  onCreatePlatformView: (PlatformViewCreationParams params) {
    return PlatformViewsService.initExpensiveAndroidView(
        id: params.id,
        viewType: NativeTextInput.viewType,

We would enable TLHC via initSurfaceAndroidView
  onCreatePlatformView: (PlatformViewCreationParams params) {
     return PlatformViewsService.initSurfaceAndroidView(

But that breaks the Magnifer.
On the native side we use android editText :
import android.view.View
import android.widget.EditText
...
override fun getView(): View {
    return editText
}

You do this in the Java side, FlutterActivity has an overridable method:
@NonNull
  @Override
  public RenderMode getRenderMode() {
    return RenderMode.texture;
  }

@johnmccutchan can you please provide a sample code? We cant make our textfield work with the magnifer without using HC.
PS: our native side is in kotlin, but anything would be useful.

If that is okay for you, will add here a sample code to let you try your idea there. We would like to dismiss HC.

Here it is
https://github.com/delfme/flutter_native_text_view_sample
Magnifier works only with HC
https://github.com/delfme/flutter_native_text_view_sample/blob/c2ba598a5f58ee8c7bb2c0d8f526c99c8805f76d/lib/flutter_native_text_view.dart#L171-L174

I think it is worth to also make a point here, that is not technical yet meaningful.
We have being coding a sort of premium messaging app with the look&feel level of Whatsapp, just to give a reference.
Text widget is great and we use it almost everywhere inside app - like labels, menu, titles, etc..
But when it comes to "note" or "text editor" we go native, coz users expect that thing from a premium app. So Platform View, with proper use, is such a big thing for us.

In this file:
https://github.com/delfme/flutter_native_text_view_sample/blob/main/example/android/app/src/main/kotlin/dev/henryleunghk/flutter_native_text_view_example/MainActivity.kt
You need to override the getRenderNode method as I explained in this comment:
https://github.com/flutter/flutter/issues/112712#issuecomment-1806031597

Thx @johnmccutchan I confirm his idea is working!
For those who might need a code sample, here it is:
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.android.RenderMode

class MainActivity : FlutterActivity() {
    override fun getRenderMode(): RenderMode {
        return RenderMode.texture
    }
}


Can't arm Master and/ or Area alarms

Installed v1.5 and configured some areas and now I can't make any of the arm options to work. I can set the armed status through Programmer Tools which updates the card on lovelace though

Can you check the supported_features attributes of your alarm_control_panel entities?

Can you check the supported_features attributes of your alarm_control_panel entities?

Can you check the supported_features attributes of your alarm_control_panel entities?

Sorry, how do I do that? Mind du that I have another alarm card which is working since a while and prior updating Alarmo to this version the other card was also working fine

Can you check the supported_features attributes of your alarm_control_panel entities?

Sorry, how do I do that? Mind du that I have another alarm card which is working since a while and prior updating Alarmo to this version the other card was also working fine

If you go to Developer Tools -> States you can see the attributes of your alarm entities.
I cannot see what's going on based on the screenshot you have shared, i need to have a look "behind the scenes".

If you go to Developer Tools -> States you can see the attributes of your alarm entities.
I cannot see what's going on based on the screenshot you have shared, i need to have a look "behind the scenes".

Maybe it's this?

Maybe it's this?

Yes.
Seems that the master cannot be armed because of this:

The available arm modes for the Master Alarm are determined from the areas. Only arm modes which are in common for all areas are available for the Master Alarm.

https://github.com/nielsfaber/alarmo#commands
Since the master has supported_features=0, it does not have any arm modes enabled.
Do all areas have arm away / arm home enabled?

Yes.
Seems that the master cannot be armed because of this:

The available arm modes for the Master Alarm are determined from the areas. Only arm modes which are in common for all areas are available for the Master Alarm.

https://github.com/nielsfaber/alarmo#commands
Since the master has supported_features=0, it does not have any arm modes enabled.
Do all areas have arm away / arm home enabled?

All areas have arm away/ arm night enabled, which makes me wonder why are the options on Lovelace showing Armed Away and Armed Home (not Night)?

All areas have arm away/ arm night enabled, which makes me wonder why are the options on Lovelace showing Armed Away and Armed Home (not Night)?

All areas have arm away/ arm night enabled, which makes me wonder why are the options on Lovelace showing Armed Away and Armed Home (not Night)?

You have to define yourself which buttons are visible, they are not related to the entity configuration.

All areas have arm away/ arm night enabled, which makes me wonder why are the options on Lovelace showing Armed Away and Armed Home (not Night)?

You have to define yourself which buttons are visible, they are not related to the entity configuration.

All areas have arm away/ arm night enabled, which makes me wonder why are the options on Lovelace showing Armed Away and Armed Home (not Night)?

You have to define yourself which buttons are visible, they are not related to the entity configuration.

I see what you mean (thank you for clarifying): fixed that but behaviour remains (buttons don't work in Lovelace).

All areas have arm away/ arm night enabled, which makes me wonder why are the options on Lovelace showing Armed Away and Armed Home (not Night)?

You have to define yourself which buttons are visible, they are not related to the entity configuration.

I see what you mean (thank you for clarifying): fixed that but behaviour remains (buttons don't work in Lovelace).

Restarted HA and it's now working :)

Restarted HA and it's now working :)

Restarted HA and it's now working :)

Restarted HA and it's now working :)


Workspaces per project

List of workspaces should be stored and read from the current folder (project).
That way the list of workspace can be part of the project code.
Story:
A developer,

clones the project repository
types one terraform init
selects workspace
types one terraform plan
works
Should work out of the box without previous knowledge of AWS accounts or roles.

Since v0.1.0 we already implement this feature of workspaces this way.


SIP.js Do Not Disturb (DND)

Hi guys,
I'm not sure whether this is the correct place to ask. If not, I'm sure you will redirect me.
I use SIP.js together with Asterisk. I know you aren't "Asterisk people" per se, but could you tell me whether it is possible to set an extension to "Do Not Disturb" mode?
From what I understand, DND mode will cause an extension to be able to dial outbound, but the extension will not receive any inbound calls.
I realise that one can manage this on Asterisk side, but I would really like to find a solution where it is managed by SIP.js.
If DND is not possible, do you foresee any problems with the following proposed solution:

Build a small wrapper around SIP.js
Add a this.dnd variable
On SIP invite, check if (this.dnd), if true reject the session automatically

It is important that the solution works with an Asterisk queue. If a person phones in, joins a queue, queue redirects to an extension and the extension rejects the call, will Asterisk drop the call, or will Asterisk move the call to a next agent?
PS: I've already posted this in Asterisk forums too, but would appreciate your input as well

As I understand it, DND is just an autoreject. So invite comes in, and instead of the normal flow, we immediately and automatically reject with a certain code (603 maybe?).
This is something we can add to SIP.js fairly simply, but altering your invite listener to conditionally reject based on your own (this.dnd) variable should solve this.
If there is something more to DND, let me know, otherwise this is fairly solvable inside of the library or out. I guess the argument for not including it in the library would be that it may be something people want to customize further.

Hi @james-criscuolo,
Thank you very much for your response. Your suggestion on rejecting the call with a certain code is very good. I'll go read up on which code I should use to ensure Asterisk handles it correctly, and which codes normal SIP hard phones use when you put them into DND mode.
I think it would be a good value add to the library. One can call busy() and unbusy() methods exactly the same as register() and unregister().
From my side I'll be implementing a wrapper class then, just to manage when invite sessions get rejected.

Hi @james-criscuolo,
Just wanted to let you know that I ended up implementing two types of DND. One way is to automatically reject any inbound calls like we discussed.
The other way was to dial a feature code. Since it's an Asterisk server I was able to dial *78 to go into DND and *79 to go back to available.


gh-2193 improve error message for collectionLimit.

Codecov Report

:exclamation: No coverage uploaded for pull request base (develop@472a5b9). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             develop   #2194   +/-   ##
=========================================
  Coverage           ?   69.5%
  Complexity         ?     734
=========================================
  Files              ?     453
  Lines              ?   14940
  Branches           ?    1776
=========================================
  Hits               ?   10384
  Misses             ?    3853
  Partials           ?     703

Continue to review full report at Codecov.

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


fix(server): launch browsers when file_list is ready

After weeks of intermittent timeouts starting PhantomJS I finally found out what's wrong–
We're having a lot of files (well, not that many, maybe a hundred) and we're using grunt-karma to trigger single-run tests with PhantomJS in a continuous integration environment.
Correct me if I'm wrong, but it looks like the web server is not ready to reply to the browser's connect request until the file list is finished. Since PhantomJS' startup is really quick, it sometimes tries to connect before fileList.refresh() completed.
After applying this patch, the problem seems to disappear… what do you think?

Short story: I agree we need to fix this issue, but I don't think this PR is the right solution. I'm not sure what is the cause of the issue is.
Long story: Here is how Karma works:
It starts the webserver, once the webserver is listening on given port, start browsers.
A browser opens / url, the webserver serves static/client.html for that url, which establishes socket.io connection - the browser is captured. Responding to this request does not wait for resolving the files.
When a test run starts, all browsers refresh an iframe with actual tests. This iframe points to /context.html. Webserver does delay serving of /context.html, until the file_list promise is resolved (it needs updated list of files in order to generate the /context.html response).
Thus, capturing of the browser is not delayed until the files are resolved.
I'm not sure what the actual cause of your problem is. Sounds like the Karma process is too busy resolving all the files (and possibly preprocessing them) and the webserver does not get scheduled to handle the requests from browser. Can you try it with some GUI browser, eg. Chrome and check out the timeline - how long does it take to serve the initial / request, including its resources (such as static/karma.js, socket.io, etc)? Then the browser sends a message (through socket.io), "register", how long does that message take? Also, how many files do you have (I would like to reproduce the issue?
Let's figure out what the cause is and then we can fix it properly.
Can you open the timeline in the browser
This PR will make capturing browsers much slower (waiting for all files to be resolved and then starting browsers; it takes significant time for the browser to actually open the url). So I don't think this PR is a good solution.

Hey Vojta,
Thanks for that excellent summary. I think I understand the whole process a lot better now!
I'll follow your suggestions and post the results next week. Also, I'll try to build a small repo to trigger the problem.
Have a nice weekend!

On 02 Jan 2015, at 23:20, Vojta Jina<EMAIL_ADDRESS>wrote:
Short story: I agree we need to fix this issue, but I don't think this PR is the right solution. I'm not sure what is the cause of the issue is.
Long story: Here is how Karma works:
It starts the webserver, once the webserver is listening on given port, start browsers.
A browser opens / url, the webserver serves static/client.html for that url, which establishes socket.io connection - the browser is captured. Responding to this request does not wait for resolving the files.
When a test run starts, all browsers refresh an iframe with actual tests. This iframe points to /context.html. Webserver does delay serving of /context.html, until the file_list promise is resolved (it needs updated list of files in order to generate the /context.html response).
Thus, capturing of the browser is not delayed until the files are resolved.
I'm not sure what the actual cause of your problem is. Sounds like the Karma process is too busy resolving all the files (and possibly preprocessing them) and the webserver does not get scheduled to handle the requests from browser. Can you try it with some GUI browser, eg. Chrome and check out the timeline - how long does it take to serve the initial / request, including its resources (such as static/karma.js, socket.io, etc)? Then the browser sends a message (through socket.io), "register", how long does that message take? Also, how many files do you have (I would like to reproduce the issue?
Let's figure out what the cause is and then we can fix it properly.
Can you open the timeline in the browser
This PR will make capturing browsers much slower (waiting for all files to be resolved and then starting browsers; it takes significant time for the browser to actually open the url). So I don't think this PR is a good solution.

Reply to this email directly or view it on GitHub.

@jpommerening any updates on this?

Closing for now.


Is it possible to use this on a img tag?

I want to use this library on image tags rather than file upload, is it possible? Will be better with an example of how to call for example, var jpegmeta = new JpegMeta.JpegFile(img.src)); or something would be great.

My code is like this currently,
// EXIF data
		var images = $('.thumb img').each(function(i) {
			var jpegmeta = new JpegMeta.JpegFile(atob(getBase64Image(this).replace(/^.*?,/, '')));
			alert(jpegmeta.exif);
		});

		function getBase64Image (img) {
			// Create an empty canvas element
			var canvas = document.createElement("canvas");
			canvas.width = img.width;
			canvas.height = img.height;

			// Copy the image contents to the canvas
			var ctx = canvas.getContext("2d");
			ctx.drawImage(img, 0, 0);

			// Get the data-URL formatted image
			// Firefox supports PNG and JPEG. You could check img.src to guess the
			// original format, but be aware the using "image/jpg" will re-encode the image.
			var dataURL = canvas.toDataURL("image/png");

			return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
		}


Trouble blacklisting spawn eggs in config file

Hey, whenever I try to blacklist a mob and start up the game, the config file undoes the change and generates an ERRORED file. I'm assuming I'm getting something wrong with syntax. I've tried using the quark:stoneling example from #117 and it's still happening. Is
spawn_eggs {
    # A list of entity registry names that cannot be applied to spawners via egg. [default: ]
    S:"Banned Mobs" <quark:stoneling
     >

not correct? Some help would be much appreciated, thanks.

each entry should be on a new line, and it should be the only thing on that line


Issue in mocking flask_restful.reqparse.RequestParser for setting parse_args - 'RuntimeError: working outside of request context'

Hi,
I get an error when I try to mock flask_restful.reqparse.RequestParser
 RuntimeError: working outside of request context

On debugging I found that the exception is raised on this line.
Code snippet for one of my GET API -
@marshal_with(response_params)
def get(self, filter_name=None):
    try:
        response = self.process_get_request(filter_name)
        return response
    except MyValidationError as err:
        abort(404, message=err)
    except ValueError as mistake:
        abort(400, message=mistake)

def process_get_request(self, filter_name=None):
    params = parser_get_app_analytics.parse_args()
    page = params.get('page') or 1
    page = abs(int(page))
    user_id = params.get('user_id')
    if not user_id:
        raise ValueError("User id is empty")

    user = session.query(User).get(user_id)
    if not user:
        raise MyValidationError("User not found")
    # rest of my logic goes here

I want to test process_get_request method. As this method uses parse_args which are request args, I would need to mock it and set the request data. I have tried
@mock.patch('flask_restful.reqparse.RequestParser', autospec=True)
def test_process_get_request(self, parse_args_mock):
    args = parse_args_mock.return_value.parse_args.return_value.text = dict(page=None, user_id=None)
    with self.assertRaises(ValueError):
        self.job_response.process_get_request(args)

What's wrong? How do I correct my code? What's the correct way of testing such methods?
Please help me out.

Theres a few things wrong here, firstly it looks like you mocked the whole class, not the method you wanted to test. So do this instead:
@mock.patch('flask_restful.reqparse.RequestParser.parse_args')
def test_process_get_request(self, parse_args_mock):
    parse_args_mock.return_value = dict(page=None, user_id=None)

The RuntimeError is coming from you trying to use resources in your app that depend on the flask context. Fixing your mock might take care of that for you, but if it doesn't you can either mock whatever else depends on the app context or use the following in your test:
with app.app_context():
    # Do things here

Thanks! My issue is fixed. Also, the RuntimeError: working outside of request context error is gone. And I didn't have to use app_context.


New version: astral-sh.uv version 0.2.20

Pull request has been created with komac v2.2.1 :rocket:
Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

Installation failed with exit code -1978335187
2024-07-03 00:32:22.140 [FAIL] Installer failed security check. Url: https://github.com/astral-sh/uv/releases/download/0.2.20/uv-x86_64-pc-windows-msvc.zip Result: 0x80004005
2024-07-02 23:05:51.340 [FAIL] Installer failed security check. Url: https://github.com/astral-sh/uv/releases/download/0.2.20/uv-x86_64-pc-windows-msvc.zip Result: 0x80004005

Automated error analysis suggests -1978335187 may mean Installer failed security check. Another script should retry this every 18 hours.
(Automated response - build 886.)

/azp run

Automatic Validation ended with:

Installation failed with exit code -1978335187
2024-07-04 09:17:21.990 [FAIL] Installer failed security check. Url: https://github.com/astral-sh/uv/releases/download/0.2.20/uv-x86_64-pc-windows-msvc.zip Result: 0x80004005
2024-07-04 16:17:19.182 [FAIL] Installer failed security check. Url: https://github.com/astral-sh/uv/releases/download/0.2.20/uv-x86_64-pc-windows-msvc.zip Result: 0x80004005

Automated error analysis suggests -1978335187 may mean Installer failed security check. Another script should retry this every 18 hours.
(Automated response - build 886.)

/azp run


Git config sync fails if git is not bundled in the box

We should install git in the box as part of the shell provisioning.

This was fixed by #118


Screenshot Not working on Failure

Hello Tahanima,
Whenever test cases fails I am neither seeing the test failed screenshots, nor it gets appeared in the Test Report.
Could you please check?
Regards,
Nima Thing

Hello Tahanima,
Whenever test cases fails I am neither seeing the test failed screenshots, nor it gets appeared in the Test Report.
Could you please check?
Regards, Nima Thing

Hi @nimathing2052
Thanks for reporting the issue. It should be fixed now.

Thanks, it is working as expected. Cheers!


Support for animation

The original Angular UI Bootstrap Popover has support for animations by ngAnimate. Is there an option to support it here too? I like the UI popover but it creates new DOM for popover which is out of the scope so can't bind button ng-click to the accurate scope and do the confirm button action in template like in this directive.

Thanks for the suggestion, I've added support in 2.5.0!
p.s. you can actually access the outer scope with ui-bootstrap if using a custom template! 😄

Do you know how to use custom template with webpack? For components declaration I use template: require('template.html') which inline the html into string.

You can use the $templateCache for this, see the tests for an example: https://github.com/mattlewis92/angular-bootstrap-confirm/blob/master/test/angular-bootstrap-confirm.spec.js#L448-L454


Missing v1.1.0 release on registry.terraform.io

Hi @antonbabenko,
I've trying to use this library in one of my project with terraform 0.13.2 and noticed that you already created a new release here on GitHub which seems to have support for that. Unfortunately this version is missing on the Terraform Registry.
Could be so kind and publish this version?
Thanks and kind regards
David

Hi @drobakowski !
There was a cache issue on the Terraform Registry side, I resynced it now and it worked - https://registry.terraform.io/modules/terraform-aws-modules/customer-gateway/aws/1.1.0
Closing this issue.

Thanks @antonbabenko!


MPA L2 and L3 encoding

Fixes https://github.com/alfredh/baresip/issues/840
Maybe needs some love.
Working for me but please feel free to cleanup or improve.

And please have a intense look at the encoder resource cleanup.
I am really not shure about if it will work fine when updating fmt.

many thanks for this!
building on OSX gives me an error:
  CC [M]  build-x86_64/modules/mpa/mpa.o
  CC [M]  build-x86_64/modules/mpa/decode.o
  CC [M]  build-x86_64/modules/mpa/sdp.o
modules/mpa/sdp.c:10:10: fatal error: 'twolame.h' file not found
#include <twolame.h>
         ^
1 error generated.
make: *** [build-x86_64/modules/mpa/sdp.o] Error 1

lame is installed, but not twolame.
also there are some ccheck warnings that must be addressed ..

Hopefully done.


Add --user-plugin

I was wondering if it's possible to have the --user-plugin option added so I can pass a path and add custom plugins in my git repo for nuitka?

You are correct, that's missing absolutely. I added generation for the plugin options, which added user plugin as well as module parameters, which are kind of important as well, and other plugin related arguments. They should immediately work on main branch now.

I've tested this, both with my own fork which I did the same to add user-plugin and the new updated commit on the main nuitka-action and yet still I don't see any of the plugin log and results of the plugin aren't in effect, the executable doesn't get signed and no error is given of the signing process meaning it wasn't ran at all.
Thanks for the quick response but perhaps this is an issue in Nuitka or the action somehow breaks it I'm not sure myself.
I note: copying the exact command in the log yields the correct result with the plugin log and signed executable, I can't show that since I don't wanna rebuild it rn just to take a screenshot
but here you can see in the action log that the plugin log is clearly missing despite other plugins (non-user) plugins are giving log, executable also I checked has not been signed, environment variables are set and should sign or give error and fail the command

Here's the complete log since I know you don't like screenshots very much, but one close eye is enough to find the user plugin missing:
Nuitka-Plugins:options-nanny: Note, when using 'pygame', consider using '--disable-console' option. Otherwise a terminal window will open. However for debugging, terminal output is the easiest way to see informative traceback and error information, so delay this until your program is working and remove once you find it non-working, and use '--enable-console' to make it explicit and not see this message.
Nuitka-Plugins:anti-bloat: Not including 'PIL.ImageQt' automatically in order to avoid bloat, but this may cause: PIL will not be able to create Qt image objects.
Nuitka: Completed Python level compilation and optimization.
Nuitka: Generating source code for C backend compiler.
Nuitka: Running data composer tool for optimal constant value handling.
Nuitka: Running C compilation via Scons.
Nuitka-Scons: Backend C compiler: cl (cl 14.3).
Nuitka-Scons: Backend linking program with 329 files (no progress information available for this stage).
Nuitka-Scons: Compiled 329 C files using clcache with 329 cache hits and 0 cache misses.
Nuitka-Postprocessing: Adding 6 icon(s) from icon file 'icon.ico'.
Nuitka-Options: Included 40 data files due to specified data dir 'data' on command line.
Nuitka-Options: Included 35 data files due to specified data dir 'assets' on command line.
Nuitka-Plugins:data-files: Included data file 'pygame\freesansbold.ttf' due to package data for 'pygame'.
Nuitka-Postprocessing: Creating single file from dist folder, this may take a while.
Nuitka-Onefile: Running bootstrap binary compilation via Scons.
Nuitka-Scons: Onefile C compiler: cl (cl 14.3).
Nuitka-Scons: Onefile linking program with 1 files (no progress information available for this stage).
Nuitka-Scons: Compiled 1 C files using clcache with 1 cache hits and 0 cache misses.
Nuitka-Postprocessing: Adding 6 icon(s) from icon file 'icon.ico'.
Nuitka-Onefile: Using compression for onefile payload.
Nuitka-Onefile: Onefile payload compression ratio (64.15%) size [249](https://github.com/JustRedTTG/rpg-demo/actions/runs/8214788384/job/22467582012#step:6:254)447458 to 160020349.
Nuitka-Onefile: Keeping onefile build directory 'build\main.onefile-build'.
Nuitka: Keeping dist folder 'build\main.dist' for inspection, no need to use it.
Nuitka: Keeping build directory 'build\main.build'.
Nuitka: Successfully created 'build\main.exe'.```

I indeed don't like them. It seems the line with the user plugin option didn't make it out of the screenshot to the text version, but I appreciate the effort done. 👍
Your plugin not doing what you want it to do could have many reasons, which could be Nuitka issues or your plugin issues. I just verified that user plugin tests are indeed running OK. In Nuitka commercial there is a code-signing plugin for Windows, that you might want to consider using instead.

The plugin doesn't run AT ALL, tested on my pc it works fine (and I mean the log is there Nuitka-Plugins:sign-Windows : Signing main.exe something like this, notice no such thing is present in the log above, assuming the plugin is not at being called, and here's the plugin, taken from one forum in github, works locally, not in the action, even when copy-pasting the action options it will work locally, but not in the action, here's the plugin so you can see:
import os
import subprocess

from nuitka.plugins.PluginBase import NuitkaPluginBase

# SOURCE: https://github.com/Nuitka/Nuitka/issues/1536#issuecomment-1741649391
# AUTHOR: https://github.com/whistmxl

"""
This plugin is used to sign the final executable with codesigntool.bat
"""

class SignPlugin(NuitkaPluginBase):
    plugin_name = 'user-internal:sign'

    def __init__(self, *args, **kwargs) -> None:
        pass

    def _sign(self, filename: str) -> None:
        if '.dist' in filename:
            return
        self.info(f'Signing {filename}')
        command = [
            'codesigntool.bat', 'sign', '-override',
            f'-credential_id={os.environ.get("CODESIGN_CRED_ID", "")}',
            f'-username={os.environ.get("CODESIGN_USERNAME", "")}',
            f'-password={os.environ.get("CODESIGN_PASSWORD", "")}',
            f'-totp_secret={os.environ.get("CODESIGN_TOTP", "")}',
            f'-input_file_path={filename}',
        ]
        p = subprocess.run(command, shell=True, capture_output=True)

        if p and p.stdout and b'Code signed successfully' in p.stdout:
            self.info(p.stdout.decode('utf-8'))
        else:
            self.info('Error signing executable!')
            self.sysexit(p.stdout.decode('utf-8') if p and p.stdout else 'No output from command')

    def onStandaloneBinary(self, filename: str) -> None:
        """this will sign the executable generated in app.dist"""
        return self._sign(filename)

    def onFinalResult(self, filename: str) -> None:
        """this will sign the final executable"""
        return self._sign(filename)

I'm not sure about the dist thing but I did that so it wouldn't sign both the standalone and onefile,
notice: I tested codesigntool setup on the action and it worked perfectly, the plugin also has log info at the beginning as you can see, so it would show up in the log as long as onefile was run, which it was

You are very likely correct, I noticed that it is not defined as an "early" name, only the standard plugin option settings are, but later added, it's just ignored, since it can influence command line parsing itself, with its own options, this has to be the case.

Likewise, how do you suggest I fix it not running and signing my executable?

Thanks for your report, this is fixed on the factory branch, which is a development version under rapid development. You can try it out by going here: https://nuitka.net/doc/factory.html and use it inside of your Action.
Feedback if this is working is very welcome, just please do not share plans of doing it, but rather confirmations or denials of it working.

Nuitka: Keeping dist folder 'build\main.dist' for inspection, no need to use it.
Nuitka: Keeping build directory 'build\main.build'.
Nuitka-Plugins:user-internal:sign: Signing build\main.exe
Nuitka-Plugins:user-internal:sign: Code signed successfully: D:\a\rpg-demo\rpg-demo\build\main.exe
Nuitka: Successfully created 'build\main.exe'.```


Support global LDAP options

For several reasons, ldap needs to set options before any connection to an ldap server is made (for example: disabling ssl certficate checks).
Currently, only CONNECTION_OPTIONS can be set. A list of GLOBAL_OPTIONS would be fine, that would be set before the first connection is made.

I don't understand the point of this : you are simply modifying "ldap" directly, so you might as well put whatever init code you need in your settings.py or whatever is convenient. Adding a proxy API inside django-ldapdb does not add much. Am I missing something?

In my eyes, it is cleaner that way. You don't have to know, which file would be read in what order (which would be important) and you clearly configure it for ldapdb.
BTW: I'm used to that configuration method from other packages like django-auth-ldap.

On the downside you are messing with ldap.* (so ANY ldap connection, whether or not it is managed by django-ldapdb is affected) without making this clear to the user.

Yes, sadly that's true because of the libldap implementation, but it's the only way to work with non-commercial certificates on the server side.

Sorry, @jlaine I just removed my fork with the changes. Are you considering on accepting pull request #67? If not, just close it.

Won't fix for the reasons explained above : you can achieve the same effect directly in your app's code


Glob::partition documentation incorrectly claims that Glob outputs are always unrooted.

At time of writing, the documentation for Glob::partition says:

Partitioned Globs are never rooted. If the glob expression has a root component, then it is always included in the invariant PathBuf prefix.

But this isn't true! There is at least one exception I'm aware of, which are expressions beginning with a rooted repetition. For example, </root:1,>.
let (path, glob) = Glob::new("</root:1,>").unwrap().partition();
assert!(glob.has_root()); // OK. `glob` has been partitioned but is still rooted!

Repetitions that occur at the beginning of a glob expression are the only example I can think of where this occurs. Note that rooted alternatives are forbidden at the beginning of an expression, so for example {/root} cannot occur at time of writing. However, that rule is intended to prevent overlapping trees and arguably alternatives at the beginning of an expression with only one rooting branch should be permitted.
So the documentation should be sure to mention the exception here: tree tokens (i.e., alternatives and repetitions) with roots at the beginning of an expression. Note also that when this occurs the path part is necessarily empty.


提问

能否添加将结构体的各项分开插入excel的功能，而不是插入{something something something}

Sorry, I don't understand what you mean, please describe the issue in detail by the issue template.

I closed the issue, please update this issue with any updates.