App crashes in isAllowed method in SPPermission enum

Fatal error: SPPermission - Notification not import. See Readme: https://github.com/ivanvorobei/SPPermission: file /Users/*/<project name>/Carthage/Checkouts/SPPermission/Source/SPPermission/SPPermission.swift, line 89
(lldb)

Same problem occurs on previous version (4.0), but is gone on version 3.1.1

Also seeing this issue

Please, attach which pods you add to Podfile

@ivanvorobei

@ivanvorobei libraries from Cartfile:
github "Alamofire/Alamofire" "5.0.0-beta.6"
github "kishikawakatsumi/KeychainAccess" == 3.1.2
github "Skyscanner/SkyFloatingLabelTextField"
github "hackiftekhar/IQKeyboardManager" == 6.0.4
github "marmelroy/PhoneNumberKit"
github "mxcl/PromiseKit" ~> 6.8
github "SwiftKickMobile/SwiftMessages"
github "ninjaprox/NVActivityIndicatorView" == 4.6.1
github "line/line-sdk-ios-swift"
github "optonaut/ActiveLabel.swift"
github "DaveWoodCom/XCGLogger" == 6.1.0
github "onevcat/Kingfisher" ~> 5.0
github "SnapKit/SnapKit" == 4.0.1
github "ReactiveX/RxSwift" ~> 5.0
github "Juanpe/SkeletonView"
github "IvanVorobei/SPPermission" == 3.1.1
github "button/DeepLinkKit"
github "auth0/JWTDecode.swift"

@rkyslyy I separate SPPermission to modules.
Need add configuration file for allow work with Notification. See Readme section.
Also you can instal SPPermission via pods.

@rkyslyy write me about the result

I am having the same issue as the guys above, after trying to install this in a new project today. Glad I found this, as this is working perfectly fine in my other project, which I believe is still on the last version on SPPermission. Any ETA on a fix for this?
Also, on a completely unrelated note, could you add a permission prompt for HomeKit too?? I have struggled with this one too, as Apple seems to handle the HomeKit Permissions a bit different. Either way, keep up the great work!!!

@sdevo619 you are added configuration file?

I am upload new version. Please, update. Wait any news. Thanks!

Having this issue now with locationAlwaysAndWhenInUse.

@sdevo619 you rebuild project?

@sdevo619 I am create empty project and location work correctly now.

Still have the same issue as before. I am running SPPermission 4.0.5, so not sure why you closed out the issue. I have all plist keys in place and have compared to my working project, so I don’t believe it’s an issues on my end. Let me know if there are any other new changes I need to be aware of. Thank you very much!!
Spencer Koltun

On Jun 15, 2019, at 4:25 AM, Ivan Vorobei<EMAIL_ADDRESS>wrote:
Closed #122.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@sdevo619 you can create new empty project and send me?

I am using a UIPagecontroller and attempting to present the SPPermission prompt on the second page of the page controller. The error and crash, is occurring directly after the UIPageController calls the a WillTransitionTo and is loading the second page.  Currently, the code for launching SPPermissions, is in the second page’s view controller and running inside the viewdidappear method, but I can move it to the UIPageController View Controller if needed. I think this may be what is causing this issue. What do you advise??
Spencer Koltun

On Jun 15, 2019, at 10:29 PM, Ivan Vorobei<EMAIL_ADDRESS>wrote:
@sdevo619 you can create new empty project and send me?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@sdevo619 Now I am sure that the problem is not with Cartfile. All permissions work correctly. Make an empty project, I will look it

I’m using Cocoapods, not a cartfile. I had issues before this, trying to run SPPermissions in any other location beside viewdidappear. I think that using a page controller, may be causing this issue. I will build an empty project and see how it goes. If you have any other ideas, please let me know. My other project is using a tab bar controller, which is probably why I am not seeing this issue there.
Spencer Koltun

On Jun 16, 2019, at 5:04 AM, Ivan Vorobei<EMAIL_ADDRESS>wrote:
@sdevo619 Now I am sure that the problem is not with Cartfile. All permissions work correctly. Make an empty project, I will look it
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@ivanvorobei 4.0.5 doesn't have this issue anymore, many thanks!

Yes, it still does have the same issue. Still has not been fixed. Not sure how good your English is, but you are not understanding what I am saying. It is still regularly crashing on line 131 of the pod file with a fatal error related to the location services request. If you can’t explain why this is happening, I’m just going to go back to using normal permission requests, because that was working just fine. This is still very broken. I am happy to work with you, but claiming it is fixed, when it is clearly crashing in the same place and it is no better than before does not help me. The app I’m building needs to use location always or when in use, and to be able present SPPermissin prompt inside of a UIPageController, to work correctly, and that is where this keeps crashing. Please fix ASAP or at least tell me how to run it without crashing when inside of a UIPageController. I need a working code example at this point using a UIPageController for the root VC, as nothing I have tried is working using the based code. Thank you!
Spencer Koltun

On Jun 17, 2019, at 12:50 AM, Roman Kyslyy<EMAIL_ADDRESS>wrote:
@ivanvorobei 4.0.5 doesn't have this issue anymore, many thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@sdevo619 please, create empty project and send me link to archive. I test it error.
I am create new project and add SPPermission. For me all work correct. Give me project or screenshoot which error you see.

@sdevo619 I think I know what the problem is with you. Attach podfile file with list all pods which you use.

@sdevo619 ?

Hi @ivanvorobei. I am also experiencing this bug after recently updating to your latest release. Here's the calling method from my WelcomeViewController:

And where it's crashing in SPPermission.swift:

This was working fine in the release I was using prior to this one. Any thoughts? I'm getting ready to deploy an update to my app and wondering if I just need to rollback to a prior version of SPPermission for now until this gets sorted out.
Here are the other pods associated with the project:
pod 'Fabric'
pod 'Crashlytics'
pod 'Alamofire'
pod 'UICKeyChainStore'
pod 'JSQCoreDataKit'
pod 'SwiftyJSON'
pod 'SwiftyTimer'
pod 'SVProgressHUD'
pod 'SPPermission'
pod 'CCBottomRefreshControl'

@fivenorth hi!
You need reed readme. It crytical update and need import modules.
like this:
pod 'SPPermission/Contacts'

@ivanvorobei First off... that's just an awesome response time!! Can't tell you how much I appreciate that. Second, I need to do a better job of reading the README file! Sorry about that. I revised my podfile and now all seems to be well. :) Thank you!!

Ivan,
I created a completely empty project and copied my extension which houses all the code for the permission prompt customization. I also did not use a page controller in the empty project and still wound up with exact same error I have been reporting this whole time. I have included my extension so you can review my customizations, but this issue seems to stem from the location services prompt. Which I have all three plist entries for in my Info.plist. If any of the location services permission prompts have changed in the most recent version of iOS, I would assume it may have to do with that. It always fails on line 131, of the getMangerForPermissions function. Please let me know what else I can give you to help troubleshoot this. Thank you very much!!!
import UserNotifications
import CoreLocation
import SPPermission
class ViewController: UIViewController {
var shouldRunOnce = false

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.

}

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    getPermissionStillNeeded()
}

}
//MARK: - Request App Permission
//MARK: - Custom Permissions
extension ViewController: SPPermissionDialogDelegate, SPPermissionDialogDataSource, SPPermissionDialogColorSource{
func getPermissionStillNeeded(){

    //SPPermission.Dialog.request(with: [.camera, .microphone, .notification], on: self)

    SPPermission.Dialog.request(with:  [.locationAlwaysAndWhenInUse, .mediaLibrary, .camera, .notification], on: self, delegate: self, dataSource: self)
}

func didHide() {

    //let isAllowedNotification = SPPermission.isAllowed(.notification)

//        let isAllowedLocation = SPPermission.isAllowed(.locationAlwaysAndWhenInUse)
//
//        if !isAllowedLocation{
//
//            getPermissionStillNeeded()
//        }
//        else{
//
//            //appDelegate.setupLocationManager()
//
//            //showWhatsNewIfNecessary(shouldUpdateKeyValueStore: true)
//        }
}
func didAllow(permission: SPPermissionType) {
    //print("SPPermissionDialogDelegate - didAllow \(permission.name)")

}

func didDenied(permission: SPPermissionType) {
    //print("SPPermissionDialogDelegate - didDeny \(permission.name)")

    print("Permission Denied")

    // Create Alert
    let alert = UIAlertController(title: "Camera", message: "Camera access is absolutely necessary to use this part of the app", preferredStyle: .alert)

    // Add "OK" Button to alert, pressing it will bring you to the settings app
    alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { action in
        UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!)
    }))
    // Show the alert with animation
    DispatchQueue.main.async {
        self.present(alert, animated: true)
    }

}

var dragToDismiss: Bool {
    return true
}

var showCloseButton: Bool {
    return false
}

var allowTitle: String {
    return "Allow"
}

var allowedTitle: String {
    return "Allowed"
}

var dialogTitle: String {
    return "AWolf"
}

var dialogSubtitle: String {
    return "Permissions Request"
}

var dialogComment: String {
    return "Permissions are necessary for the the application to be able to perform all of its functions. Push are not required permissions"
}

func name(for permission: SPPermissionType) -> String? {
    switch permission {
    case .camera:
        return "Camera"
    case .photoLibrary:
        return "Photo Library"
    case .notification:
        return "Notification"
    case .microphone:
        return "Microphone"
    case .calendar:
        return "Calendar"
    case .contacts:
        return "Contacts"
    case .reminders:
        return "Reminders"
    case .speech:
        return "Speech"
    case .locationWhenInUse, .locationAlwaysAndWhenInUse:
        return "Location"
    case .motion:
        return "Motion"
    case .mediaLibrary:
        return "Media Library"
    }
}

func description(for permission: SPPermissionType) -> String? {
    switch permission {
    case .camera:
        return "Record Video and Images"
    case .calendar:
        return "Application can add events to calendar"
    case .contacts:
        return "Access for your contacts and phones"
    case .microphone:
        return "Audio Recording with Videos"
    case .notification:
        return "Notifications"
    case .photoLibrary:
        return "Access for save photos in your gallery"
    case .reminders:
        return "Application can create new task"
    case .speech:
        return "Speech Recognition in Notes"
    case .locationWhenInUse, .locationAlwaysAndWhenInUse:
        return "Locationn the map."
    case .motion:
        return "Allow reports motion and environment-related data"
    case .mediaLibrary:
        return "Allow check your media"
    }
}

func image(for permission: SPPermissionType) -> UIImage? {

    switch permission {
    case .camera:

        return UIImage(named: "camera icon perm")

    case .locationWhenInUse, .locationAlwaysAndWhenInUse:

        return UIImage(named: "map icon perm")

    case .notification:

        return UIImage(named: "notification icon perm")

    case .microphone:

        return UIImage(named: "mic icon perm")

    default:
        return nil
    }
}

func deniedTitle(for permission: SPPermissionType) -> String? {
    return "Permission denied"
}

func deniedSubtitle(for permission: SPPermissionType) -> String? {
    return "Please, go to Settings and allow permissions"
}

var cancelTitle: String {
    return "Cancel"
}

var settingsTitle: String {
    return "Settings"
}

//colors

var whiteColor: UIColor {return UIColor.black}
var blackColor: UIColor {return UIColor.blue}
var baseColor: UIColor {return UIColor.blue}
var grayColor: UIColor { return UIColor.lightGray }
var lightGrayColor: UIColor { return  colorLiteral(red: 0.1215686275, green: 0.1294117647, blue: 0.1411764706, alpha: 1) }

var iconWhiteColor: UIColor { return UIColor.blue }
var iconLightColor: UIColor { return UIColor.blue }
var iconMediumColor: UIColor {return UIColor.blue }
var iconDarkColor: UIColor {return UIColor.blue }

//    static let darkIcon = UIColor.init(red: 0/255, green: 122/255, blue: 255/255, alpha: 1)
//    static let mediumIcon = UIColor.init(red: 122/255, green: 169/255, blue: 248/255, alpha: 1)
//    static let lightIcon = UIColor.init(red: 196/255, green: 216/255, blue: 251/255, alpha: 1)

}
Spencer Koltun

On Jun 17, 2019, at 6:26 AM, Ivan Vorobei<EMAIL_ADDRESS>wrote:
@sdevo619 please, create empty project and send me link to archive. I test it error.
I am create new project and add SPPermission. For me all work correct. Give me project or screenshoot which error you see.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@sdevo619 your instal via cocoa pods?  please, attach pod-file

Yes, it is a Cocoapods install. I have tried it both ways using just the SP permission pod, and I have also tried using the individual pods too. Which is the correct way to do this for iOS 12.3.1? Please let me know, what I’m missing here. Thank you for the quick response!!!
Uncomment the next line to define a global platform for your project
platform :ios, '12.2'
target 'PermissionTest' do
Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
Pods for PermissionTest
pod 'SPPermission'
pod 'SPPermission/Camera'
pod 'SPPermission/Contacts'
pod 'SPPermission/Calendar'
pod 'SPPermission/PhotoLibrary'
pod 'SPPermission/Notification'
pod 'SPPermission/Microphone'
pod 'SPPermission/Reminders'
pod 'SPPermission/SpeechRecognizer'
pod 'SPPermission/Location'
pod 'SPPermission/Motion'
pod 'SPPermission/MediaLibrary'
target 'PermissionTestTests' do
inherit! :search_paths
# Pods for testing
end
target 'PermissionTestUITests' do
inherit! :search_paths
# Pods for testing
end
end
Spencer Koltun

On Jul 1, 2019, at 12:10 PM, Ivan Vorobei<EMAIL_ADDRESS>wrote:
@sdevo619 your instal via cocoa pods? please, attach pod-file
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@sdevo619 create simple project with bug, zip it and link send here

This is in the simulator this occurs, on an iPHone X Simulator, so this should not be hard to replicate with code I sent you already. I don’t mean to rush you, but I can’t keep waiting for this to be fixed, as I can’t test my app on a fresh install with the permission prompts not working because of this. I sent you the example extension, which is having this issue in a completely blank view controller in a fresh blank project with a single ViewController. All I did was add the extension to the project, add the plist entries, downloaded the most up to date pods, add the func to load it up in the viewdidappear. Is there an up to date, working, example, in your GitHub Repo??
Spencer Koltun

On Jul 1, 2019, at 1:08 PM, Ivan Vorobei<EMAIL_ADDRESS>wrote:
@sdevo619 create simple project with bug, zip it and link send here
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@sdevo619 for me all work correct. I need see your project.
You do not need to wait - just pack the project and send it to me. I'll find the problem myself

Can you answer question regarding the proper way for the pod file to be setup in the current version. Let’s just assume, I want to access all of the permissions to keep things simple?
Spencer Koltun

On Jul 2, 2019, at 12:46 AM, Ivan Vorobei<EMAIL_ADDRESS>wrote:
@sdevo619 for me all work correct. I need see your project.
You do not need to wait - just pack the project and send it to me. I'll find the problem myself
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

I think I may have found the issues in your code. In the switch statement, in the .authorizedWhenInUse case, you are requesting always authorization, instead of wheninuse authorization. I haven’t tried to change it yet, but I wanted to ask you if you thought this could be the problem.
Spencer Koltun

On Jul 2, 2019, at 12:46 AM, Ivan Vorobei<EMAIL_ADDRESS>wrote:
@sdevo619 for me all work correct. I need see your project.
You do not need to wait - just pack the project and send it to me. I'll find the problem myself
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Ivan,
I finally just figured it out. My sincerest apologies for claiming it was your code. The issue was in the pod file. That was was why asked if it made a difference in my previous messages. The pod I was using, was the SPPermission one, that covered all the permissions and it was crashing. Once I removed that and changed it to all the individual ones, it works fine now. No crashes. It might not be a bad idea to notate this in case anyone else comes across this same crash. Thank you again for your help. Take care!!!
Spencer Koltun

On Jul 2, 2019, at 12:46 AM, Ivan Vorobei<EMAIL_ADDRESS>wrote:
@sdevo619 for me all work correct. I need see your project.
You do not need to wait - just pack the project and send it to me. I'll find the problem myself
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.


policy: erase type to any

We're probably going to be making more changes to the schema of this. Guard against having to release new SDKs all the time whenever we do so, and defer validation to the server side.
~Note: this is currently a breaking change - probably want to make it backwards-compatible.~
OK, backwards-compatible now! any is better than map[string]any for this.

Hmmmm, this passes tests, but the Action.Config type has changed on the wire, so this won't actually work. Will need server-side support to fully support this new approach.

Closing this per today's discussion. @nijikokun @tammybailey


implement graphAPI

Description
Implement GraphAPI in Applications.Core
ref: https://github.com/radius-project/design-notes/blob/main/resources/2023-10-app-graph.md
Type of change

This pull request adds or changes features of Radius and has an approved issue (issue link required).

Fixes: https://github.com/radius-project/radius/issues/6337
Auto-generated summary

🤖 Generated by Copilot at 0d0b032
Summary
📊🌐🚀

Implemented the rad app connections command and the Applications_GetGraph operation to show the application graph and resources. Modified the ./.vscode/launch.json file to test the command. Added the data models, types, and constants for the application graph and resources to the Applications.Core API and the typespec language. Added the client-side and server-side logic for calling and handling the Applications_GetGraph operation, using the pkg/corerp package. Registered the getGraph action as a custom operation for the Application resource. Commented out a logging line in the kubernetes_http_proxy_waiter.go file to reduce noise.

To get the app graph and resources
We added some types and some forces
We wrote some controllers
And clients and helpers
And tested with rad and some courses

Walkthrough

Add the Applications_GetGraph operation to the Application resource, which gets the application graph and resources from the applications-rp service (link, link, link, link, link)
Define the data models and types for the application graph and resources, such as ApplicationGraphResponse, ApplicationGraphConnection, Direction, ApplicationGraphResource, and ApplicationGraphOutputResource, in the typespec language, the openapi.json file, and the generated Go code (link, link, link, link, link, link)
Implement the client-side logic for calling the Applications_GetGraph operation, using the ApplicationsClient.GetGraph method and its related helper functions and types (link, link, link)
Implement the server-side logic for handling the Applications_GetGraph operation, using the GetApplicationGraph controller and its related helper functions and types (link, link, link)
Change the args for the rad launch configuration in the .vscode/launch.json file, to include the app, connections, and -a flags, which are used to invoke the rad app connections command with a specific application name (link)
Comment out the preLaunchTask for the applications-rp, ucpd, controller, rad, and deployment-engine launch configurations in the .vscode/launch.json file, to avoid building the entire radius project before launching the services, which is not necessary for debugging purposes (link, link, link, link, link)
Comment out the logger.Info line in the checkHTTPProxyStatus function in the pkg/corerp/handlers/kubernetes_http_proxy_waiter.go file, to reduce the logging noise when deploying applications that have route HTTP proxies, which are not validated for deployment completion (link)

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test


THREESCALE-10697: Add scripts to launch both listener and worker

What this PR does / why we need it
This PR adds three different scripts that can be attached to a debugger and simplifies running a worker and a listener while developing as requested in #352. There is one script for the worker and two for the listener (puma and falcon).
Verification steps
Using RubyMine configurations, configure three different Ruby scripts as follows:

Worker

Listener (Puma)

Listener (Falcon)

Then launch both worker a listener in debug mode with a breaking point and confirm it's working.

To be honest, I don't see much value in explicit scripts for listeners.
The developer needs to configure the Run Configurations in the IDE anyway, and they can just add the already existing Ruby script (bin/3scale_backend), and Script arguments, I don't think that's much more effort for a one-time setup. And it's also easier to change if the dev wants to, for example, configure the listener on another port.
Alternatively, we could add .idea/runConfigurations directory to git, and it would have the configurations pre-defined.
This is how for example the configuration looks like for falcon listener:
<component name="ProjectRunConfigurationManager">
  <configuration default="false" name="listener (falcon)" type="RubyRunConfigurationType" factoryName="Ruby">
    <module name="apisonator" />
    <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="" />
    <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$" />
    <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
    <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
    <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
    <envs>
      <env name="LISTENER_WORKERS" value="1" />
      <env name="RACK_ENV" value="development" />
    </envs>
    <EXTENSION ID="BundlerRunConfigurationExtension" BUNDLE_MODE="AUTO" bundleExecEnabled="true" />
    <EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" ENABLE_BRANCH_COVERAGE="true" ENABLE_FORKED_COVERAGE="true">
      <COVERAGE_PATTERN ENABLED="true">
        <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
      </COVERAGE_PATTERN>
    </EXTENSION>
    <EXTENSION ID="org.jetbrains.plugins.ruby.rails.run.RailsRunConfigurationExtension" SCRATCH_USE_RAILS_RUNNER="false" />
    <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/bin/3scale_backend" />
    <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="-s falcon start -p 3001" />
    <method v="2" />
  </configuration>
</component>

For worker, indeed debugging doesn't work without an extra script, because 3scale_backend_worker demonizes the process, and even with --no-daemonize argument, daemonizing is simulated (IO streams get closed, and I guess this is what makes the debugger shutdown.
But IMO, rather than creating another script, just for the debugging purposes, I'd introduce a new argument in 3scale_backend_worker, say --debug, which will skip deamonizing. Something along the lines of the following (maybe there is a better way, and in any case that would need to be documented):
if ARGV.delete '--debug'
  ThreeScale::Backend::Worker.work
else
  Daemons.run_proc('3scale_backend_worker', options) do
    ThreeScale::Backend::Worker.work
  end
end

And then in the run configuration we'd just have /bin/3scale_backend_worker in Ruby script, with script arguments --debug.

So, in conclusion, rather than creating extra scripts, I would just document properly how to start the listener and worker processes locally, also in a way that is suitable for debugging (for example, making sure that only one worker/thread is listening in the listener).
I think it's good to not only be able to run the app as quickly as possible, but also understand to some extent what happens behind the scenes.

@mayorova booo spoilsport!! 👎👎
I agree on reuse as much as possible and not create new scripts if existing ones can be reused. However:

Running the worker script as non-root fails at line 25 due to access denied to /var/run/3scale. That should be corrected.
Simply calling ThreeScale::Backend::Worker.work is not enough for sentinels, you need to run it in a loop to simulate the failover that Kubernetes provides in production
You probably need to wrap ThreeScale::Backend::Worker.work under a Sync/Async call. I'm not sure all calls to Redis during the worker execution happen under a reactor. If there's only one that doesn't, it will fail without a general reactor. So better add it.
I imported the falcon launcher to my .idea/runConfigurations folder and it doesn't work for me. I get the error:

You have already activated json 2.5.1, but your Gemfile requires json 2.3.1. Since json is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports json as a default gem. (Gem::LoadError)

I also see that error with @lvillen scripts. That's because both scripts end up calling system or exec which create a new process and causes that error.

Thanks for your comments @jlledom

Running the worker script as non-root fails at line 25 due to access denied to /var/run/3scale. That should be corrected.

Yes, this is true, I forgot about it, because at some point I created that folder manually :sweat_smile:
I'd say this should also be fixed in 3scale_backend_worker itself, IMO it's not good  to hardcode such a path, I think it should be configurable (it's OK to keep the current path as default).

Simply calling ThreeScale::Backend::Worker.work is not enough for sentinels, you need to run it in a loop to simulate the failover that Kubernetes provides in production

But is it only to simulate failovers? I mean, if the dev is not working on the Redis failover feature specifically, would they need it?
I remembered now your point also that it is nice to catch all exceptions and print errors in the logs and keep the worker running instead of shutting down on exceptions...  But - is it a common scenario? And also - wouldn't it "mask" some incorrect behavior? (I mean if the dev just misses something, because the worker keeps running, so "looks OK")

You probably need to wrap ThreeScale::Backend::Worker.work under a Sync/Async call. I'm not sure all calls to Redis during the worker execution happen under a reactor. If there's only one that doesn't, it will fail without a general reactor. So better add it.

Shouldn't it rather be fixed by this PR? https://github.com/3scale/apisonator/pull/361/files#diff-2f501e81093c9eaa568d634cc294ab565cada69ebbc59570588c314b0f159cfe
Here (as of today) we opted for not adding a global reactor. As I understand it, currently the production runs just the 3scale_backend_worker run script, with no global reactor wrapping (unlike falcon-based listener, where, if I understand correctly, falcon takes care of creating the needed reactor).
So, if we add it just in the development script, then what would happen in production?

I imported the falcon launcher to my .idea/runConfigurations folder and it doesn't work for me. I get the error:

Hm... interesting, not sure why this would happen, I can't reproduce.

Simply calling ThreeScale::Backend::Worker.work is not enough for sentinels, you need to run it in a loop to simulate the failover that Kubernetes provides in production

But is it only to simulate failovers? I mean, if the dev is not working on the Redis failover feature specifically, would they need it?

Yeah, maybe you're right.

You probably need to wrap ThreeScale::Backend::Worker.work under a Sync/Async call. I'm not sure all calls to Redis during the worker execution happen under a reactor. If there's only one that doesn't, it will fail without a general reactor. So better add it.

Shouldn't it rather be fixed by this PR? https://github.com/3scale/apisonator/pull/361/files#diff-2f501e81093c9eaa568d634cc294ab565cada69ebbc59570588c314b0f159cfe

That PR should ensure there's always a reactor for the worker tasks. OK let's remove the Async and consider it adding it back if we found a scenario where it fails

So, if we add it just in the development script, then what would happen in production?

Sure, the more closer to production behavior, the better.

With the changes from https://github.com/3scale/apisonator/pull/364 I can launch successfully the listener and the worker in both sync ans async mode. Only two issues:

The listener in sync mode (puma) shows me a deprecation warning:

[DEPRECATED] `Bundler.with_clean_env` has been deprecated in favor of `Bundler.with_unbundled_env`. If you instead want the environment before bundler was originally loaded, use `Bundler.with_original_env` (called at /home/jlledom/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/bundler/gems/puma-e7d3c53583db/lib/puma/launcher.rb:289)

The listener in sync mode (puma) doesn't stop in breakpoints when being launched in debug mode.

Don't you see this errors? This is my sync listener launcher:

The listener in sync mode (puma) shows me a deprecation warning:

[DEPRECATED] `Bundler.with_clean_env` has been deprecated in favor of `Bundler.with_unbundled_env`. If you instead want the environment before bundler was originally loaded, use `Bundler.with_original_env` (called at /home/jlledom/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/bundler/gems/puma-e7d3c53583db/lib/puma/launcher.rb:289)

I don't see this deprecation warning. After the json upgrade I did a bundle clean and after the bundle install everything seems ok.

The listener in sync mode (puma) doesn't stop in breakpoints when being launched in debug mode.

I've put a breakpoint in backend.rb:56 and it is stopping.
Also, I've integrated your suggestions @jlledom in this last commit. I'm going to share here my configs hoping it helps:
Worker

Listener (puma)

Listener (falcon)

It all works for me now 👍

The listener in sync mode (puma) doesn't stop in breakpoints when being launched in debug mode.

Don't you see this errors? This is my sync listener launcher:

@jlledom The important piece here is -X "-w 0" in the arguments, it starts puma in so-called "single mode". Compare the logs without this arg:
[3736875] Puma starting in cluster mode...
[3736875] * Version 4.3.9 (ruby 3.0.2-p107), codename: Mysterious Traveller
[3736875] * Min threads: 1, max threads: 1
[3736875] * Environment: development
[3736875] * Process workers: 1
[3736875] * Phased restart available
[3736875] * Listening on tcp://<IP_ADDRESS>:3001
[3736875] Use Ctrl-C to stop
[3736875] * Starting control server on unix:///home/dmayorov/Projects/3scale/apisonator/3scale_backend.sock

and with it:
Puma starting in single mode...
* Version 4.3.9 (ruby 3.0.2-p107), codename: Mysterious Traveller
* Min threads: 1, max threads: 1
* Environment: development
* Listening on tcp://<IP_ADDRESS>:3001
* Starting control server on unix:///home/dmayorov/Projects/3scale/apisonator/3scale_backend.sock
Use Ctrl-C to stop

In the second case (with "-s ="), the breakpoints work fine for me. Also, in this case LISTENER_WORKERS env var doesn't make any difference, so no need to include it in the run configuration.

The changes in bin/3scale_backend_worker look good to me. I don't know what @akostadinov thinks :grimacing:
But the PR title and description need some changes too. Also, I would like to see the RubyMine configurations somewhere, maybe in DEVELOPMENT.md file.

@jlledom The important piece here is -X "-w 0" in the arguments, it starts puma in so-called "single mode". Compare the logs without this arg:

Yes, it's working now, thanks!

In the second case (with "-s ="), the breakpoints work fine for me. Also, in this case LISTENER_WORKERS env var doesn't make any difference, so no need to include it in the run configuration.

"-s =" ?

"-s =" ?

I meant "-w 0" :sweat_smile:

I think we can merge this one, right @lvillen @mayorova

I think we can merge this one, right @lvillen @mayorova

I would like to see my comments here addressed first :innocent:


Add rosdep definition for libmysqlcppconn-dev

MySQL Connector/C++ is a MySQL database connector for C++ mimicking the JDBC 4.0 API.

+1

+1


ModuleNotFoundError: No module named 'people'

Description
Trying to run a Rest API using Flask and connexion[swagger-ui]
Expected behaviour
Should work
Actual behaviour
Throws Exception
Failed to add operation for GET /api/people
Usage: flask run [OPTIONS]

Error: While importing "server", an ImportError was raised:

Traceback (most recent call last):
  File "/Users/raysal/Documents/Python Projects/Rest APIs/Flask/People Rest API/.venv/lib/python3.9/site-packages/connexion/apis/abstract.py", line 222, in add_paths
    self.add_operation(path, method)
  File "/Users/raysal/Documents/Python Projects/Rest APIs/Flask/People Rest API/.venv/lib/python3.9/site-packages/connexion/apis/abstract.py", line 175, in add_operation
    operation = make_operation(
  File "/Users/raysal/Documents/Python Projects/Rest APIs/Flask/People Rest API/.venv/lib/python3.9/site-packages/connexion/operations/__init__.py", line 16, in make_operation
    return spec.operation_cls.from_spec(spec, *args, **kwargs)
  File "/Users/raysal/Documents/Python Projects/Rest APIs/Flask/People Rest API/.venv/lib/python3.9/site-packages/connexion/operations/swagger2.py", line 126, in from_spec
    return cls(
  File "/Users/raysal/Documents/Python Projects/Rest APIs/Flask/People Rest API/.venv/lib/python3.9/site-packages/connexion/operations/swagger2.py", line 86, in __init__
    super().__init__(
  File "/Users/raysal/Documents/Python Projects/Rest APIs/Flask/People Rest API/.venv/lib/python3.9/site-packages/connexion/operations/abstract.py", line 101, in __init__
    self._resolution = resolver.resolve(self)
  File "/Users/raysal/Documents/Python Projects/Rest APIs/Flask/People Rest API/.venv/lib/python3.9/site-packages/connexion/resolver.py", line 44, in resolve
    return Resolution(self.resolve_function_from_operation_id(operation_id), operation_id)
  File "/Users/raysal/Documents/Python Projects/Rest APIs/Flask/People Rest API/.venv/lib/python3.9/site-packages/connexion/resolver.py", line 68, in resolve_function_from_operation_id
    raise ResolverError(msg, sys.exc_info())
connexion.exceptions.ResolverError: <ResolverError: Cannot resolve operationId "people.read"! Import error was "No module named 'people'">

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/raysal/Documents/Python Projects/Rest APIs/Flask/People Rest API/.venv/lib/python3.9/site-packages/flask/cli.py", line 240, in locate_app
    __import__(module_name)
  File "/Users/raysal/Documents/Python Projects/Rest APIs/Flask/People Rest API/server.py", line 11, in <module>
    app.add_api("swagger.yml")
  File "/Users/raysal/Documents/Python Projects/Rest APIs/Flask/People Rest API/.venv/lib/python3.9/site-packages/connexion/apps/flask_app.py", line 65, in add_api
    api = super().add_api(specification, **kwargs)
  File "/Users/raysal/Documents/Python Projects/Rest APIs/Flask/People Rest API/.venv/lib/python3.9/site-packages/connexion/apps/abstract.py", line 149, in add_api
    api = self.api_cls(specification,
  File "/Users/raysal/Documents/Python Projects/Rest APIs/Flask/People Rest API/.venv/lib/python3.9/site-packages/connexion/apis/abstract.py", line 119, in __init__
    self.add_paths()
  File "/Users/raysal/Documents/Python Projects/Rest APIs/Flask/People Rest API/.venv/lib/python3.9/site-packages/connexion/apis/abstract.py", line 229, in add_paths
    self._handle_add_operation_error(path, method, err.exc_info)
  File "/Users/raysal/Documents/Python Projects/Rest APIs/Flask/People Rest API/.venv/lib/python3.9/site-packages/connexion/apis/abstract.py", line 244, in _handle_add_operation_error
    raise value.with_traceback(traceback)
  File "/Users/raysal/Documents/Python Projects/Rest APIs/Flask/People Rest API/.venv/lib/python3.9/site-packages/connexion/resolver.py", line 65, in resolve_function_from_operation_id
    return self.function_resolver(operation_id)
  File "/Users/raysal/Documents/Python Projects/Rest APIs/Flask/People Rest API/.venv/lib/python3.9/site-packages/connexion/utils.py", line 116, in get_function_from_name
    module = importlib.import_module(module_name)
  File<EMAIL_ADDRESS>line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named 'people'

Steps to reproduce
using Mac OS, Python 3.9.6
Additional info:
using Mac OS, Python 3.9.6
Output of the commands:

python --version
Python 3.9.6
pip show connexion | grep "^Version\:"
Version 2.9.0

What does your folder structure look like?
Given operationId people.read, there should be a Python module people which contains the function read

Hello, Ruwan. Interestingly, my people.py folder resides in the same folder as my swagger.yml and server.py model.

I now have figured out the reason for this error.

I have edited my sys.path to include the location of the venv i created to store packages such as flask and connexion.
If i don't do this,  I won't be able to import those two packages.
That quickfix seems to have messed my sys.path. If I comment it out, I can use the people module.
How can I resolve this issue with paths? Thank you

You shouldn't need to mess around with your sys.path, I suspect by using flask run you are using another Flask installation that is different from the one in you virtualenv.
Can you create a new virtualenv, activate it and try again?

I was able to resolve by appending the location of the flask and connexion to sys.path in the server module. Thank you so much for the help!


Minor routing and status code issues

Gitea version (or commit ref): 1.7.0

Description

[x] While Internal Server Errors display 500 they return a 404 status code.
[x] Missing commits sometimes return a 500 instead of a 404 (seems to be fixed):
https://try.gitea.io/lunny/wewe/commit/000000 returns 404
https://try.gitea.io/lunny/wewe/commit/0000000 returns 500
[x] If there are no wiki pages, any wiki page returns a 200:
https://try.gitea.io/lunny/wewe/wiki/doesnotexist
[x] Missing wiki pages should return a 404 instead of redirecting to the index:
https://try.gitea.io/gittea/curl/wiki/doesnotexist
[x] Invalid issue / pull requests identifiers redirect to the first issue / pull request instead of returning a 404
https://try.gitea.io/lunny/wewe/issues/doesnotexist
https://try.gitea.io/lunny/wewe/pulls/doesnotexist
[ ] /user/repo/commit/ and /user/repo/commits/ should probably redirect to the default branch.

I think we can close this now. And I don't agree we should redirect /user/repo/commit/ to  repository homepage.

I think we can close this now. And I don't agree we should redirect /user/repo/commit/ to  repository homepage.


Pedro/hls manifest

hlsTimeDuration: ['-hls_time', '1'],
hlsListSize: ['-hls_list_size', '1'],
are all thek nobs needed


invalid option: --profile when running with Bundler (cucumber for ruby)

I just recently started running into an issue with the Rake tasks.  It seems that the options that I'm trying to pass to cucumber are getting skipped and passed to the ruby as another command (or something) which leads to:
.rbenv/versions/2.3.0/bin/ruby -S bundle exec cucumber --profile default
Using the default profile...
0 scenarios
0 steps
0m0.000s

invalid option: --profile

For this test run, I've added --name nomatch so it actually doesn't try to run any scenarios (just to highlight the issue).
I dug into the source a bit and it seems like in here:
https://github.com/cucumber/cucumber-ruby/blob/master/lib/cucumber/rake/task.rb#L81
where the cmd is built, in the use bundler path, it builds a shell command like
.rbenv/versions/2.3.0/bin/ruby -S bundle exec cucumber --profile default
and (at least on my mac) the --profile argument appears to apply to the ruby command (not cucumber).  I'm not sure where the quoting should go and will try to take a closer look.  But if there is a known solution/workaround here, please let me know.  I'm on cucumber (2.3.2)
Thanks

Whoops.   I actually was on 2.1.0 and after bumping to 2.3.2 the problem went away.
I pre-emptively pulled that 2.3.2 from the Gemfile.lock not remembering that I'd just updated gems.
Closing the issue.  Sorry to bother you.


Phantom completely breaks with Lithium installed

Hey, just wanted to report that phantom breaks upon death when lithium is installed on a server.
I'm not really sure what's causing this but phantom becomes like human upon death.

STATUS UPDATE: It seems the upon death issue is in all origins not just phantom and phantom had an issue with suffocation.
After looking around in lithium's config it seems that overriding two things to be disabled will fix this issue, though I'm not sure if the /kill issue is on Origin's side or if it's a lithium thing.

If your wondering here are the two overrides:
mixin.shapes.lazy_shape_context=false
mixin.entity.collisions.suffocation


visibility_policy_popover: Fix popover shrinking bug on Safari.

A bug was observed on Safari where the visibility policy switcher popover was shrinking beyond the width of the policy switcher, hiding a portion of the switcher component.
This was due to the presence of the width: min-content on the popover for supporting dynamic popover menu sizing based on the content of the menu items, in tandem with some issue in Safari since it worked fine on other browsers.
This commit adds the .popover-menu-label class to the visibility policy switcher's label to enforce max-content width on the label element, which in turn fixes the popover shrinking issue on Safari.
Fixes: Issue reported on CZO

Screenshots and screen captures:

Before
After

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

@timabbott This PR only adds a classname to the menu labels, should be a quick one to review.

Nice fix! It works as it should in manual testing on both iPadOS and macOS.

Merged, thanks @sayamsamal and @karlstolley!


feat: responsive card with images that change on click

Zero To Mastery - Webblocks 2022 📦📦
PR contains:
This PR contains a mobile responsive card for a travel site. The images change when you click them. All images are taken from the common space. 🤜
Breaking changes
None
Screenshots

@phylliswong what are the licenses for the images?

@sophiabrandt all images are taken from the common space. In future, is there somewhere in the code base where it is appropriate to add this?

@phylliswong I am not familiar with "the common space". Can you provide the licenses?
Images are usually under copyright, so unless it is from a page that has a permissive license (e.g., Unsplash.com), we cannot merge these pull requests, because we would violate copyright.

@sophiabrandt I've added the author and copyright block in the json. All images are free to use under Public Domain from Unsplash.

@phylliswong great, thank you.


Kafka Connect DLQ options on this sink Connector were NOT working on sink phase..

I tested DLQ options on this sink connector with deliberately wrong schema table.
But, it didn't work as I expected..
org.apache.kafka.connect.errors.ConnectException: Exiting WorkerSinkTask due to unrecoverable exception.
	at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:614)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:336)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:237)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:206)
	at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:202)
	at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:257)
	at org.apache.kafka.connect.runtime.isolation.Plugins.lambda$withClassLoader$1(Plugins.java:177)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: org.apache.kafka.connect.errors.DataException: An error occurred converting record, topic: order.prod.streaming.order-created.avro, partition, 2, offset: 112705806
	at io.tabular.iceberg.connect.data.IcebergWriter.write(IcebergWriter.java:73)
	at io.tabular.iceberg.connect.channel.Worker.lambda$routeRecordStatically$5(Worker.java:197)
	at java.base/java.util.Arrays$ArrayList.forEach(Arrays.java:4204)
	at io.tabular.iceberg.connect.channel.Worker.routeRecordStatically(Worker.java:195)
	at io.tabular.iceberg.connect.channel.Worker.save(Worker.java:184)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at io.tabular.iceberg.connect.channel.Worker.save(Worker.java:171)
	at io.tabular.iceberg.connect.IcebergSinkTask.put(IcebergSinkTask.java:150)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:583)
	... 11 more
Caused by: java.lang.IllegalArgumentException: Cannot convert to struct: java.lang.String
	at io.tabular.iceberg.connect.data.RecordConverter.convertStructValue(RecordConverter.java:159)
	at io.tabular.iceberg.connect.data.RecordConverter.convertValue(RecordConverter.java:115)
	at io.tabular.iceberg.connect.data.RecordConverter.lambda$convertToStruct$1(RecordConverter.java:236)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1092)
	at io.tabular.iceberg.connect.data.RecordConverter.convertToStruct(RecordConverter.java:203)
	at io.tabular.iceberg.connect.data.RecordConverter.convertStructValue(RecordConverter.java:157)
	at io.tabular.iceberg.connect.data.RecordConverter.convert(RecordConverter.java:98)
	at io.tabular.iceberg.connect.data.IcebergWriter.convertToRow(IcebergWriter.java:86)
	at io.tabular.iceberg.connect.data.IcebergWriter.write(IcebergWriter.java:62)
	... 19 more

Kafka connect DLQ cannot handle PUT lifecycle stage as below..?

REF: https://www.confluent.io/blog/kafka-connect-deep-dive-error-handling-dead-letter-queues
If the error on sink phase is not handled by Kafka connect native DLQ feature, then how about adding similar DLQ option on this connector level (which can handle the issue records raising error on the PUT lifecycle)?
something like.. iceberg.dlq.topic..!

You are correct, a conversion failure will throw an error rather than route to the DLQ. Other sinks have an option to skip "bad" records, which is something we could add. Also, you can manually skip the record by setting the consumer group offset.

Thank you for quick answer!

You can leave this open if you want and we can consider options to handle this best.

Thanks..! I do reopen this issue..!
I hope this new feature can re-produce those messages to separate DLQ topic(as like this sink produce to control topic), to re-consuming those messages in its own DLQ topic after re-configuring this sink connector..!

The only way to do it now is to manually set the partition offset ahead of the bad record(s). I'll look into adding this as a config option in a day or two.

I gave this some thought and I am reluctant to add an option to simply skip a bad record, as it could lead to unexpected data loss. We should have the ability to write the record to a DLQ or table. I can look into that more once the sink is moved to the Iceberg project.

Opened this issue as well for the same functionality: https://github.com/tabular-io/iceberg-kafka-connect/issues/191


Add a comma to visualization.yml

Motivation

Add a missing comma to pass the CI.
Description of the changes

Oh, nice catch! thanks!


Header bg-color luminosity doesnt match value set by slider swatches in example App

In the example app (https://xiaokaike.github.io/vue-color/) clicking one of the swatches in the Slider component sets the luminosity of the global colour, which gets reactively updated in all other picker components as well as the background-color of the div.header-bg tag.
However, when I choose a dark luminosity, as in the below screenshot, the header background-color visually doesn't match the luminosity of the swatch colour.

This surprises me as the header background-color is set via the computed bgc function which simply returns this.colors.hex.
Furthermore, when I inspect the CSS background-color of the active vc-slider-swatch-picker tag and the div.header-bg tag, they are set to the same value (rgb(25, 77, 51)). This is the dark color corresponding to the chosen swatch.
What is going on here? Why does the header background-color appear so much lighter than I would expect from the chosen swatch?

😀 ...


fix sagemaker version and add missing packages

I had to bump up the sagemaker version to support PipelineDefinitionConfig. This was added after earlier versions of the notebook(penguins-cohort.ipynb). Also other packages were missing that were in earlier versions of penguins-cohort.ipynb.
PipelineDefinitionConfig — https://github.com/aws/sagemaker-python-sdk/blob/219ad245238c94a31e0960a9ede0470a6b075b56/CHANGELOG.md?plain=1#L38
Hope this helps.

@svpino Yes, I did run the setup notebook. But still got errors, now that I have restarted my Kernel the penguins-notebook.pynb  works out of the box without the package installation.

@svpino actually the issue occurs when restarting your kernel. Fixed it by setting the Startup script as packages


Create CircleCI config file

We have to create a config.yml for cassandra-quality to make it run on CircleCI.
The config file should have steps to install and start the necessary system dependencies (k3d and helm) before launching the Argo workflow.
┆Issue is synchronized with this Jira Task by Unito
┆Issue Number: AD-74

Is this ticket still a going concern?

Yes, this was supposed to be the CI/CD work for Adelphi (the workflow/k8s portion).
We have #58 now but that's supposed to cover only the Python package.

Superseded by #166


Queue - Data Structure | Swift

Queue - Data Structure | Swift
what will change Adding Queue Data Structure in Swift
Type of Issue -
Please add/delete options that are not relevant.

[x] Adding New Code

Programming Language
Please add/delete options that are not relevant.

[x] Swift

Self Check

Ask for issue assignment before making Pull Request.
Add your file in the proper folder
Clean Code and Documentation for better readability
Add Title and Description of the program in the file

:star2: Star it :fork_and_knife:Fork it :handshake: Contribute to it!
Happy Coding.

Please assign this to me @div-bargali

Please review my Pull Request @div-bargali
Thank you


413 Request Entity Too Large on uploading specific image

Can't upload image to the media collection on the server. Getting this response:

<title>413 Request Entity Too Large</title>

413 Request Entity Too Large

nginx/1.18.0 (Ubuntu)

But on Win 10 localhost everything is fine with this image.
Payload version is 1.6.4
Config for uploads:
upload: {
    limits: {
      fileSize: 25000000, // 25MB, written in bytes
    },
  }

I've attached this image:

This response looks like it is coming from NGINX, not Payload. Do you have client_max_body_size set in your nginx config? It looks like you need to bump that up.
Some more detail here: https://stackoverflow.com/a/28476755/1717697

This response looks like it is coming from NGINX, not Payload. Do you have client_max_body_size set in your nginx config? It looks like you need to bump that up.
Some more detail here: https://stackoverflow.com/a/28476755/1717697

Ok, understand. Thanks for help!


Package alsa not found

I don't actually know if this is a musnix problem. If I'm barking up the wrong tree, I apologize.
My configuration that used to build no longer does.
I didn't think that was supposed to be possible in NixOS.
I keep getting a No package 'alsa' found error,
but I don't know where it's coming from.
I tried building under a few different conditions,
and have retained trace files from each attempt.
I documented the problem in more detail, and inicluded the trace files,
here.

I didn't think that was supposed to be possible in NixOS.

That is the goal, but it's not always achieved.

I keep getting a No package 'alsa' found error,
but I don't know where it's coming from.

You can find out by commenting out parts of your config.
Hope that helps!

@JeffreyBenjaminBrown Closing this due to inactivity.
Feel free to re-open this or open a new issue.


Tooltips as overlay boxes when clicking on a row element in the chart

In timegraph-output-component.tsx :

Created states to check if the element is clicked and if the tooltip is opened;
In the renderChart(), the tooltip is rendered only if the previous states are true;
The tooltip content is automatically updated when clicking on an element.
The tooltip box is closed when clicking on the close (x) button.

The attached video shows how the features works.
tooltipsFeature.zip

Functionality-wise, it works well, the right tooltip is shown. And the fact that the box is fixed in one location and does not disappear as the mouse moves is not a bad thing! I'd let the UX expert tell us how it should behave, but leave it as is for now.

I don't want to slow down the work here, I just want to say that TimeGraphChart (chartLayer in this case) has a registerRowElementMouseInteractions that can be use to register mouseover. I think you just need to pass an handler like:
chartLayer.registerRowElementMouseInteractions({
    mouseover: el => {
        // Do tooltip related calls
    }
});

@delislesim Thank you for your tip. I'm going to try this out!

Will you be looking at Simon's suggestion in this PR? Otherwise, please look at the new methods you added/changed and make sure that if they can be private, then they are private.

I'll close and open a new rebased PR from my repo


How to use "Named configs"

Named configs allow multiple configs for the same benchmark to be present within the same config file.
The example mentioned in the document is
cluster_boot.yaml ...
cluster_boot_5:
name: cluster_boot
vm_groups:
default:
vm_count: 5
cluster_boot_10:
name: cluster_boot
vm_groups:
default:
vm_count: 10
How should I specify on the command line to run cluster_boot_10 config settings?
./pkb.py --benchmark_config_file=cluster_boot.yaml  ????

blaze-bin/cloud/performance/artemis/artemis --benchmarks=cluster_boot_5 --cloud=...  --benchmark_config_file=cluster_boot.yml
Not sure where you got your example from. Format looks wrong to me.

Thanks, It works


Feature request: add tag resource support

add tag resource support
https://www.site24x7.com/blog/tags-a-smarter-way-to-organize-and-manage-monitors
https://www.site24x7.com/help/api/#tags

ideally output of this "tag" resource reuse in monitors https://github.com/site24x7/terraform-provider-site24x7/issues/18

@jim-billy as I understand "tag" supported was released 2 days ago right? thnx a lot 👍
can we close this ticket?

@jim-billy as I understand "tag" supported was released 2 days ago right? thnx a lot +1 can we close this ticket?

@azhurbilo Thanks for raising issues and following them up.

Tag resource supported - 0.0.1-beta.3


need capability for account

An error occurred (InsufficientCapabilitiesException) when calling the CreateStack operation: Requires capabilities : [CAPABILITY_IAM]
Bens-MacBook:amazon-cloud-formation-couchbase ben$

Opened a helpdesk ticket.  I think this is an issue with my account, not the template.

I believe you just need to add:
$ aws cloudformation create-stack ... --capabilities CAPABILITY_IAM

Thanks.  Yeah, that works!


⚠ Bofrost.lu has degraded performance

In 72e0f2d, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1549 ms

Resolved: Bofrost.lu performance has improved in 9ae3be3 after 6 minutes.


Fix incorrect double-dequeue after restarting

Problem
After calling Close() on a queue and then reopening the same data directory, it's possible for entries that were already dequeued to show up again in the queue.
Expected behavior
Entries that were dequeued should not show up again in a subsequent Dequeue() call.
Details

Currently, loadFileInfos() reads all files in the data directory that have the seg_ prefix, including offset files.
loadFileInfos() sorts those files by modification timestamp.
When the queue is closed, an 8-byte "segment ending" marker is written to the data file, but the offset file is not touched further. This means that the modification timestamp for the data file ends up being later than that of the offset file.
After the queue is reopened, since the offset file has an earlier modification timestamp it's placed earlier than the data file in loadFileInfo()'s return.
Thus, when attempting to dequeue, the offset file is read first but reading fails since the offset file doesn't follow the same format as the data file (depending on luck, it might be possible for the offset file to be interpreted as if it was a data file).
Since reading the offset file fails, the offset file is deleted as part of cleanup of the segment structure. The data file remains behind.
dequeue() then tries the next file in the list, which is the data file. By this point, the offset file has already been deleted, so dequeue() incorrectly reads the data file from the start instead of seeking to the correct offset.

That's awesome finding. Thank you so much @izquierdo


Windows Defender diagnoses it a virus

As you can see in the picture above, Windows Defender diagnoses it a virus.

This is an known issue, which is reported by other users some times ago. Because FontMod uses DLL hijack and hook, it may be reported as a virus. I can't fix this issue.


Migrate pose with covariance display

Closes #87
Icon is missing, this was already proposed as a PR here: #430
As always: Added a visual test - I adapted test and page objects from the odometry display ones and therefore kept the copyrights from those files, too, and left a comment that those are basically copy&paste.
There is a lot of common code between this display, the pose display and the pose array display. It could be refactored, but that would make this PR really large and difficult to review, so I would suggest to do this separately. Here, I only brought the display as close to the pose display code as possible.

CI:

Linux
Linux-aarch64
macOS
Windows

Looks like there's a build failure on the Windows CI, maybe symbol visibility related?

@wjwwood Yes, definitely. Hopefully the additions already fix everything, I don't have a Windows to test right now.
Maybe we should add -fvisibility=hidden to the gcc and clang builds to make it more similar to the Windows one...

Thanks, CI:

Linux
Linux-aarch64
macOS
Windows


Add Unnecessarily high effort clubstep mashup by Dj Nate, Dimrain47, ShadowBeatz, Superspecks

Song Name
Unnecessarily high effort clubstep mashup
Artist Name
Dj Nate, Dimrain47, ShadowBeatz, Superspecks
Source
Youtube
Youtube Link
0lRvpPhmnXs
Direct File Link
No response
Song ID
13
Extra
Created from and for Auto Nong.
I like this mashup :3

boop

reject
already in the mod


[USM] Increase coverage of postgres operations tests

What does this PR do?
Increase coverage of postgres operation test.

Motivation
Validates that Postgres operations are handled correctly for all supported operations.

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


The border rendering is inconsistent when focusing on the address bar under file snapshots mode

Storage Explorer Version: 1.32.0-dev (93)
Build Number: 20230912.1
Branch: main
Platform/OS: Windows 10/Linux Ubuntu 20.04/MacOS Ventura 13.5 (Apple M1 Pro)
Architecture: x64/arm64/x64
How Found: From running test cases
Regression From: Previous release (1.31.1)
Steps to Reproduce

Expand one storage account ->File Shares.
Create a file share -> Click 'View Share Snapshots'.
Focus on the address bar.
Check whether the border rendering is consistent.

Expected Experience
The border rendering is consistent.

Actual Experience
The border rendering is inconsistent.

Verified this issue on the main build 20230913.4. Fixed. So, we are going to close it.


Finish Bevy 0.12 updates

[ ] Update to new bevy_ecs_tilemap release, when that's available
[ ] Fix particle feature
[ ] Fix state example

Hello, I saw that bevy_ecs_tilemap was just release to support bevy 0.12 :
https://github.com/StarArawn/bevy_ecs_tilemap/releases/tag/v0.12.0


[feature request] allow to change to and from one mode from same hotkey

So for example I can trigger window management with ⌥ + R and then cancel the mode to go to DOCK mode with pressing escape.
I wish you could trigger window management with same hotkey, but if already in window management mode, it would go back to DOCK mode. I wish it would apply to any other mode out there too. This would be extremely useful for me as I like to quickly jump into one mode and then go back and I don't want to press escape for it. This doesn't mean you should remove the ability to press escape to return to default mode, just give an option to trigger into / from one mode with same hotkey.

There is a time when you can use the same hotkey (and Escape, and q) to cancel the mode to go to DOCK mode. Totally three hotkeys.
Then during some code-cleanup, I felt there may be too many. So I just simply delete them all, leaving only Escape and q.
If you found urgent to have this option, yes, it can be added back. :)

There is a time when you can use the same hotkey (and Escape, and q) to cancel the mode to go to DOCK mode. Totally three hotkeys.
Then during some code-cleanup, I felt there may be too many. So I just simply delete them all, leaving only Escape and q.
If you found urgent to have this option, yes, it can be added back. :)

Oh I see, this makes sense. :)
While not urgent, I think it would be nice to have the option of making the mode switching key a little bit more useful. I think it only adds to the experience.

Oh I see, this makes sense. :)
While not urgent, I think it would be nice to have the option of making the mode switching key a little bit more useful. I think it only adds to the experience.

I found Escape and q is good enough for me. :)
Still, adding an option (default on/off) for this may make the repo suit to more people.
But, this will not be on the urgent list.

I found Escape and q is good enough for me. :)
Still, adding an option (default on/off) for this may make the repo suit to more people.
But, this will not be on the urgent list.

Yes, of course. Both escape and q work great indeed. :)

Yes, of course. Both escape and q work great indeed. :)


Right now, these tests fail. They will pass after https://github.com/spf13/cobra/pull/2126 has been merged.
This PR is based on top of https://github.com/marckhouzam/cobra-completion-testing/pull/24

I’m trying to look into this one, but I’m having docker issues. Some update site is down right now. I’ll try again later on.

I've merged #24, so you can rebase this on the new main

Done!

@JeffFaer Could you sign-ff the two last commits, or else the DCO check fails.

I've pushed a new commit to this PR to help in testing.


Immediate "close" after "getMessages" on some accounts

For some email accounts, I've been running into something bizarre. When you send a "getMessages" command after listening to "newMessage" event, the websocket decides to close itself with a 1011 error.
When I do the "getMessages" command without the hook to "newMessage", it seems to be fine.
Any tips on how I can debug this or where to look?
[:send, "getMessages"<EMAIL_ADDRESS>:ids=>["INBOX!596995877?42082"], :properties=>["raw", "uid"]}]

[:close, #<Faye::WebSocket::API::CloseEvent:0x00000001e0fc08 @type="close", @code=1011, @reason="", @bubbles=false, @cancelable=false, @current_target=#<Faye::WebSocket::Client:0x00000002b765b8 @url="ws://<IP_ADDRESS>:8080/workers", @ready_state=3, @listeners={"open"=>[#<Proc:0x000000017bb320@switchboard.rb:15>], "message"=>[#<Proc:0x000000017baf60@switchboard.rb:74>], "error"=>[#<Proc:0x000000017badf8@switchboard.rb:123>], "close"=>[#<Proc:0x000000017ba920@switchboard.rb:127>]}, @driver=#<WebSocket::Driver::Client:0x00000002b9a670 @listeners={"open"=>[#<Proc:0x000000017b6cd0@/var/lib/gems/1.9.1/gems/faye-websocket-0.10.2/lib/faye/websocket/api.rb:39>], "message"=>[#<Proc:0x000000017b6a00@/var/lib/gems/1.9.1/gems/faye-websocket-0.10.2/lib/faye/websocket/api.rb:40>], "close"=>[#<Proc:0x000000017b6848@/var/lib/gems/1.9.1/gems/faye-websocket-0.10.2/lib/faye/websocket/api.rb:41>], "error"=>[#<Proc:0x000000017b63c0@/var/lib/gems/1.9.1/gems/faye-websocket-0.10.2/lib/faye/websocket/api.rb:43>]}, @socket=#<Faye::WebSocket::Client:0x00000002b765b8 ...>, @reader=#<WebSocket::Driver::StreamReader:0x00000002b9e1a8 @buffer="\x88\x02\x03\xF3", @offset=4>, @options={:max_length=>nil, :protocols=>nil, :masking=>true}, @max_length=67108863, @headers={"connection"=>"Upgrade", "upgrade"=>"websocket", "sec-websocket-accept"=>"k6NDeMpRpaiq6OBFYTNpUoMbZKY="}, @queue=[], @ready_state=3, @extensions=#<WebSocket::Extensions:0x00000002b847d0 @rsv3=nil, @rsv2=nil, @rsv1=nil, @by_name={}, @in_order=[], @sessions=[], @index={}>, @stage=5, @masking=true, @protocols=[], @require_masking=nil, @ping_callbacks={}, @key="SNjaCjvYHirOeH07bzSPuQ==", @accept="k6NDeMpRpaiq6OBFYTNpUoMbZKY=", @http=#<WebSocket::HTTP::Response:0x000000017afbd8 @buffer=[], @headers={"connection"=>"Upgrade", "upgrade"=>"websocket", "sec-websocket-accept"=>"k6NDeMpRpaiq6OBFYTNpUoMbZKY="}, @stage=2, @code=101>, @pathname="/workers", @status=101, @frame=nil, @message=nil>, @ping=nil, @ping_id=0, @buffered_amount=0, @secure=false, @origin_tls={}, @socket_tls={}, @stream=#<Faye::WebSocket::Client::Connection::EM_CONNECTION_CLASS:0x000000017bbd98 @signature=2, @parent=#<Faye::WebSocket::Client:0x00000002b765b8 ...>>, @close_params=["", 1011]>, @target=#<Faye::WebSocket::Client:0x00000002b765b8 @url="ws://<IP_ADDRESS>:8080/workers", @ready_state=3, @listeners={"open"=>[#<Proc:0x000000017bb320@switchboard.rb:15>], "message"=>[#<Proc:0x000000017baf60@switchboard.rb:74>], "error"=>[#<Proc:0x000000017badf8@switchboard.rb:123>], "close"=>[#<Proc:0x000000017ba920@switchboard.rb:127>]}, @driver=#<WebSocket::Driver::Client:0x00000002b9a670 @listeners={"open"=>[#<Proc:0x000000017b6cd0@/var/lib/gems/1.9.1/gems/faye-websocket-0.10.2/lib/faye/websocket/api.rb:39>], "message"=>[#<Proc:0x000000017b6a00@/var/lib/gems/1.9.1/gems/faye-websocket-0.10.2/lib/faye/websocket/api.rb:40>], "close"=>[#<Proc:0x000000017b6848@/var/lib/gems/1.9.1/gems/faye-websocket-0.10.2/lib/faye/websocket/api.rb:41>], "error"=>[#<Proc:0x000000017b63c0@/var/lib/gems/1.9.1/gems/faye-websocket-0.10.2/lib/faye/websocket/api.rb:43>]}, @socket=#<Faye::WebSocket::Client:0x00000002b765b8 ...>, @reader=#<WebSocket::Driver::StreamReader:0x00000002b9e1a8 @buffer="\x88\x02\x03\xF3", @offset=4>, @options={:max_length=>nil, :protocols=>nil, :masking=>true}, @max_length=67108863, @headers={"connection"=>"Upgrade", "upgrade"=>"websocket", "sec-websocket-accept"=>"k6NDeMpRpaiq6OBFYTNpUoMbZKY="}, @queue=[], @ready_state=3, @extensions=#<WebSocket::Extensions:0x00000002b847d0 @rsv3=nil, @rsv2=nil, @rsv1=nil, @by_name={}, @in_order=[], @sessions=[], @index={}>, @stage=5, @masking=true, @protocols=[], @require_masking=nil, @ping_callbacks={}, @key="SNjaCjvYHirOeH07bzSPuQ==", @accept="k6NDeMpRpaiq6OBFYTNpUoMbZKY=", @http=#<WebSocket::HTTP::Response:0x000000017afbd8 @buffer=[], @headers={"connection"=>"Upgrade", "upgrade"=>"websocket", "sec-websocket-accept"=>"k6NDeMpRpaiq6OBFYTNpUoMbZKY="}, @stage=2, @code=101>, @pathname="/workers", @status=101, @frame=nil, @message=nil>, @ping=nil, @ping_id=0, @buffered_amount=0, @secure=false, @origin_tls={}, @socket_tls={}, @stream=#<Faye::WebSocket::Client::Connection::EM_CONNECTION_CLASS:0x000000017bbd98 @signature=2, @parent=#<Faye::WebSocket::Client:0x00000002b765b8 ...>>, @close_params=["", 1011]>, @event_phase=2>]

2016-01-11 10:08:57 =ERROR REPORT====
** Generic server <0.324.0> terminating
** Last message in was {ssl,{sslsocket,{gen_tcp,#Port<0.3052>,tls_connection,undefined},<0.326.0>},<<"ccess)\r\n">>}
** When Server state == {state,{sslsocket,{gen_tcp,#Port<0.3052>,tls_connection,undefined},<0.326.0>},{ssl,<<"imap.gmail.com">>,993,[],5000},[{cmds,[{cmd,{call,{login,{xoauth2,<<"m.butan@gmail.com">>,{<<"1/2p2uKL2i09cNWepQOQM7_7NiP_cpXJ4TCAVv-5vYYCY">>,<<"google">>}}}}}]},{post_init_callback,#Fun<switchboard.0.122082165>}],10,{<<>>,{atom,<<"Su">>}},{[],[none,<<"selected.">>,<<"INBOX">>,']',<<"READ-WRITE">>,'[',<<"OK">>,<<"C9">>]},{1,{<<"C9">>,{cmd,{select,<<"INBOX">>},[{dispatch,#Fun<imap.8.100085555>}]},nil,nil}}}
** Reason for termination ==
** {function_clause,[{imap,churn_buffer,[{state,{sslsocket,{gen_tcp,#Port<0.3052>,tls_connection,undefined},<0.326.0>},{ssl,<<"imap.gmail.com">>,993,[],5000},[{cmds,[{cmd,{call,{login,{xoauth2,<<"m.butan@gmail.com">>,{<<"1/2p2uKL2i09cNWepQOQM7_7NiP_cpXJ4TCAVv-5vYYCY">>,<<"google">>}}}}}]},{post_init_callback,#Fun<switchboard.0.122082165>}],10,{<<>>,none},{[],[]},{0,nil}},[]],[{file,"src/imap.erl"},{line,605}]},{imap,handle_info,2,[{file,"src/imap.erl"},{line,517}]},{gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,599}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]}

2016-01-11 10:08:57 =CRASH REPORT====
  crasher:
    initial call: imap:init/1
    pid: <0.324.0>
    registered_name: []
    exception exit: {{function_clause,[{imap,churn_buffer,[{state,{sslsocket,{gen_tcp,#Port<0.3052>,tls_connection,undefined},<0.326.0>},{ssl,<<"imap.gmail.com">>,993,[],5000},[{cmds,[{cmd,{call,{login,{xoauth2,<<"m.butan@gmail.com">>,{<<"1/2p2uKL2i09cNWepQOQM7_7NiP_cpXJ4TCAVv-5vYYCY">>,<<"google">>}}}}}]},{post_init_callback,#Fun<switchboard.0.122082165>}],10,{<<>>,none},{[],[]},{0,nil}},[]],[{file,"src/imap.erl"},{line,605}]},{imap,handle_info,2,[{file,"src/imap.erl"},{line,517}]},{gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,599}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]},[{gen_server,terminate,6,[{file,"gen_server.erl"},{line,746}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]}
    ancestors: [<0.239.0>,switchboard_accounts_sup,switchboard_sup,<0.113.0>]
    messages: [{'$gen_cast',{cmd,{uid,{fetch,[42082],[<<"BODY.PEEK[]">>]}},[{dispatch,#Fun<imap.8.100085555>}]}}]
    links: [<0.239.0>]
    dictionary: []
    trap_exit: false
    status: running
    heap_size: 987
    stack_size: 27
    reductions: 17038
  neighbours:

Very helpful error report -- on it.

Thanks. There were also some other crashes. They look  a bit different. Not sure if they're related?
2016-01-21 21:30:50 =ERROR REPORT====
Ranch listener switchboard_cowboy had connection process started with cowboy_protocol:start_link/4 at <0.246.0> exit with reason: {[{reason,{badmatch,{<<"error">>,[{<<"type">>,{{badmatch,{error,timeout}},[{switchboard_jmap,'-get_messages/3-fun-1-',5,[{file,"src/switchboard_jmap.erl"},{line,510}]},{switchboard_jmap,get_messages,3,[{file,"src/switchboard_jmap.erl"},{line,507}]},{switchboard,with_imap,2,[{file,"src/switchboard.erl"},{line,216}]},{switchboard_jmap,call,2,[{file,"src/switchboard_jmap.erl"},{line,388}]},{switchboard_workers,call_all,3,[{file,"src/switchboard_workers.erl"},{line,165}]},{switchboard_workers,websocket_handle,3,[{file,"src/switchboard_workers.erl"},{line,99}]},{cowboy_websocket,handler_call,7,[{file,"src/cowboy_websocket.erl"},{line,588}]},{cowboy_protocol,execute,4,[{file,"src/cowboy_protocol.erl"},{line,442}]}]}},{<<"method">>,<<"getMessages">>},{<<"arguments">>,[{<<"ids">>,[<<"INBOX!3?131964">>]},{<<"properties">>,[<<"raw">>,<<"uid">>]}]}],undefined}}},{mfa,{switchboard_workers,websocket_handle,3}},{stacktrace,[{switchboard_workers,call_all,3,[{file,"src/switchboard_workers.erl"},{line,164}]},{switchboard_workers,websocket_handle,3,[{file,"src/switchboard_workers.erl"},{line,99}]},{cowboy_websocket,handler_call,7,[{file,"src/cowboy_websocket.erl"},{line,588}]},{cowboy_protocol,execute,4,[{file,"src/cowboy_protocol.erl"},{line,442}]}]},{msg,{text,<<"[[\"getMessages\",{\"account\":\"xxxxxxx@gmail.com\",\"ids\":[\"INBOX!3?131964\"],\"properties\":[\"raw\",\"uid\"]}]]">>}},{req,[{socket,#Port<0.3023>},{transport,ranch_tcp},{connection,keepalive},{pid,<0.246.0>},{method,<<"GET">>},{version,'HTTP/1.1'},{peer,{{192,168,50,2},55091}},{host,<<"<IP_ADDRESS>">>},{host_info,undefined},{port,8080},{path,<<"/workers">>},{path_info,undefined},{qs,<<>>},{qs_vals,undefined},{bindings,[]},{headers,[{<<"host">>,<<"<IP_ADDRESS>:8080">>},{<<"upgrade">>,<<"websocket">>},{<<"connection">>,<<"Upgrade">>},{<<"sec-websocket-key">>,<<"oadcr65AkM3nzrZeUSvEbg==">>},{<<"sec-websocket-version">>,<<"13">>}]},{p_headers,[{<<"upgrade">>,[<<"websocket">>]},{<<"connection">>,[<<"upgrade">>]}]},{cookies,undefined},{meta,[{websocket_version,13},{websocket_compress,false}]},{body_state,waiting},{buffer,<<>>},{multipart,undefined},{resp_compress,false},{resp_state,done},{resp_headers,[]},{resp_body,<<>>},{onresponse,undefined}]},{state,{state}}],[{cowboy_protocol,execute,4,[{file,"src/cowboy_protocol.erl"},{line,442}]}]}
2016-01-21 21:31:05 =SUPERVISOR REPORT====
     Supervisor: {<0.227.0>,switchboard_accounts}
     Context:    child_terminated
     Reason:     normal
     Offender:   [{pid,<0.228.0>},{name,active},{mfargs,{imap,start_link,[{ssl,<<"imap.gmail.com">>,993},[{cmds,[{cmd,{call,{login,{xoauth2,<<"xxxxxx@gmail.com">>,{<<"1/ZY5I9wJ18_gv-_qTf8fDaa0XW6RZBbeLD04Otmz0qro">>,<<"google">>}}}}}]},{post_init_callback,#Fun<switchboard.0.122082165>}]]}},{restart_type,permanent},{shutdown,5000},{child_type,worker}]

Going to break that into a new issue, though it might very well be a timeout caused by the original error killing the imap process.
@vu0tran Do the processes restart after this? Does the email monitoring restart?

I'm far from competent in Erlang, but as far as I know, Switchboard still can process other accounts. For that one account, it seems like it's dead and does not restart. I have to manually reconnect again and send a watch command again (Which then crashes in the same way when a new email is received).
If you'd like, feel free to email me at<EMAIL_ADDRESS>and we can debug real time via Slack or something. I can provide you with the account credentials and show you how to repro it.

Great! I'll have more time tomorrow in the morning, and I'll send you a message round then.
On Jan 21, 2016, 2:22 PM, at 2:22 PM, Vu Tran<EMAIL_ADDRESS>wrote:

I'm far from competent in Erlang, but as far as I know, Switchboard
still can process other accounts. For that one account, it seems like
it's dead and does not restart. I have to manually reconnect again and
send a watch command again (Which then crashes in the same way when a
new email is received).
If you'd like, feel free to email me at<EMAIL_ADDRESS>and we can
debug real time via Slack or something. I can provide you with the
account credentials and show you how to repro it.

Reply to this email directly or view it on GitHub:
https://github.com/thusfresh/switchboard/issues/55#issuecomment-173733118

I came here to comment that churn_buffer(State, []) -> State: wasn't defined anywhere, and that's how I patched our switchboard, only to find you had worked on it too!
Thanks for that.

Heyo, yeah, this has been lurking. Hopefully churn_buffer won't see an empty list as a second argument anymore, that was an error from parsing. :pray:


⚠ Adacta-fintech.com has degraded performance

In 7dfb082, Adacta-fintech.com (https://www.adacta-fintech.com) experienced degraded performance:

HTTP code: 200
Response time: 1741 ms

Resolved: Adacta-fintech.com performance has improved in 6592fa4.


Serve multiple ad types with a single AdLoaderAd widget

Description
The motivation behind this PR is to allow more elaborate configurations such as the one described here, where a single AdLoader can serve either a NativeAd or an AdManagerAdView.
To this end, this PR adds a new widget, AdLoaderAd, which can configured to serve any of the following platform ad types, all provided by AdLoader/GADAdLoader:

NativeAd/GADNativeAd
AdManagerAdView/GAMBannerView
NativeCustomFormatAd/GADCustomNativeAd

For the most part the widget and its supporting classes operated independently of the existing widgets. A notable exception is that for the NativeAd/GADNativeAd and GAMBannerView components, the existing supporting classes behind the relevant widgets are used. To allow this, internal APIs are modified as part of:

Android: Make FlutterNativeAdLoadedListener more generally usable
iOS: Relax constraints on FLTAdInstanceManager methods

to allow more general types to be passed to the existing classes. These changes do not cause any incompatibility with existing internal code.
To facilitate testing of the specific ad type under Android, a testing-only constructor has been added as part of:

Android: Allow passing a FlutterAdLoader factory

This is applicable to the FlutterAdLoaderAd type but could also be used by other types that expect a FlutterAdLoader during building and construction.
Related Issues
N/A
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See [Contributor Guide]).
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (flutter analyze) does not report any problems on my PR.
[x] I read and followed the [Flutter Style Guide].
[x] I signed the [CLA].
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
[x] No, this is not a breaking change.

Happy New Year everyone!
Is there anything else you would like to see before considering this PR?
✌🏻

I'm following up on this PR, and I've noticed that (unlike https://github.com/googleads/googleads-mobile-flutter/pull/749) this wasn't assigned any reviewers automatically, so checking in with all those listed in CODEOWNERS for packages/google_mobile_ads/*:
@blasten @bparrishMines @jjliu15 @luo86 @srichakradhar
Is there anything further you'd like or need from me when considering this PR?

I need this 🙏

I'm trying to use this fork but having a problem with varying ad sizes. If setting a fixed size for all ads it works well. But if we have different sizes for e.g banners(https://developers.google.com/admob/flutter/banner/inline-adaptive)/ native ads - how to set correct size of the Container of the AdWidget? Thanks

@srichakradhar and @jjliu15 we have been testing this fork for a longer period and it helps us increasing the monitisation of these ad positions. Is there anything which holds back merging this PR? We're happy to assist with anything which is needed for that.

Hey, any updates on the status of this PR? @srichakradhar @jjliu15 @luo86 @bparrishMines


Moderator can hide authors of the sticky notes

As a moderator i want to hide the authors of the cards to give them the privacy they need, to express themselves openly in a discussion
AC:

Hiding user name and avatar can be toggle in moderator bar
Own stickys are still flagged by border to the users

Tasks:

[ ] Button is implemented in admin menu
[ ] flag is implemented in "board" table
[ ] authors are hidden in frontend, when option is activated

Blocked by #225

https://projects.invisionapp.com/d/main?origin=v7#/console/20620074/433365958/preview?scrollOffset=0


Notebook pipelines are failing on KFP

Describe the issue
[Confirmed. Not pipeline specific]
load_data.ipynb
[I 18:07:22.295] 'analyze_NOAA_weather_data-0218100646':'load_data' - dependencies processed (0.067 secs)
[I 18:07:22.296] 'analyze_NOAA_weather_data-0218100646':'load_data' - executing notebook using 'papermill load_data.ipynb load_data-output.ipynb'
[D 18:07:22.994] Found kernel python3 in /usr/local/share/jupyter/kernels
[I 18:07:23.115] Input Notebook:  load_data.ipynb
[I 18:07:23.115] Output Notebook: load_data-output.ipynb
[E 18:07:23.121] Unexpected error: <class 'KeyError'>
[I 18:07:23.360] 'analyze_NOAA_weather_data-0218100646':'load_data' - converting from load_data-output.ipynb to load_data.html
Traceback (most recent call last):
  File "bootstrapper.py", line 373, in execute
    papermill.execute_notebook(notebook, notebook_output, kernel_name=kernel_name)
  File "/usr/local/lib/python3.8/site-packages/papermill/execute.py", line 90, in execute_notebook
    nb = load_notebook_node(input_path)
  File "/usr/local/lib/python3.8/site-packages/papermill/iorw.py", line 461, in load_notebook_node
    nb_upgraded = nbformat.v4.upgrade(nb)
  File "/usr/local/lib/python3.8/site-packages/nbformat/v4/convert.py", line 39, in upgrade
    _warn_if_invalid(nb, from_version)
  File "/usr/local/lib/python3.8/site-packages/nbformat/v4/convert.py", line 21, in _warn_if_invalid
    validate(nb, version=version)
  File "/usr/local/lib/python3.8/site-packages/nbformat/validator.py", line 274, in validate
    for error in iter_validate(nbdict, ref=ref, version=version,
  File "/usr/local/lib/python3.8/site-packages/nbformat/validator.py", line 298, in iter_validate
    validator = get_validator(version, version_minor, relax_add_props=relax_add_props)
  File "/usr/local/lib/python3.8/site-packages/nbformat/validator.py", line 69, in get_validator
    schema_json = _get_schema_json(v, version=version, version_minor=version_minor)
  File "/usr/local/lib/python3.8/site-packages/nbformat/validator.py", line 103, in _get_schema_json
    schema_path = os.path.join(os.path.dirname(v.__file__), v.nbformat_schema[(None, None)])
KeyError: (None, None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/nbformat/__init__.py", line 138, in read
    buf = fp.read()
AttributeError: 'str' object has no attribute 'read'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "bootstrapper.py", line 653, in <module>
    main()
  File "bootstrapper.py", line 643, in main
    file_op.execute()
  File "bootstrapper.py", line 385, in execute
    NotebookFileOp.convert_notebook_to_html(notebook_output, notebook_html)
  File "bootstrapper.py", line 403, in convert_notebook_to_html
    nb = nbformat.read(notebook_file, as_version=4)
  File "/usr/local/lib/python3.8/site-packages/nbformat/__init__.py", line 140, in read
    with io.open(fp, encoding='utf-8') as f:
FileNotFoundError: [Errno 2] No such file or directory: 'load_data-output.ipynb'

To Reproduce
Steps to reproduce the behavior:

Clone examples repository
Open and run NOAA example pipeline on KFP (Or create a pipeline that runs a notebook, which produces output)

Deployment information
Describe what you've deployed and how:

Elyra version: 3.7/master

Confirmed - old/working:
papermill==2.1.2
nbformat==5.0.7

using this test:
import papermill
papermill.execute_notebook('debug-hello.ipynb', 'debug-hello-out.ipynb', kernel_name='python3')

Confirmed - current/broken:
papermill==2.3.4
nbformat==5.0.7 -->  required is 5.1.3


[QA] Shop Page Layout

[ ] Price typography: Body bold on desktop, and small body bold on mobile

[x]  STORE needs to be centered on mobile

[ ] Replace the + and - signs with the ones in design

[ ] Reduce padding between product image and product artist to 8px (currently 20px)

[ ] Reduce padding between product album and format information to 8px

[ ] Reduce vertical padding between products from 20px (currently 40px)

[ ] Text in Sort By dropdown should have 12px margin on left side

[ ] Sort by dropdown right edge should right align to the arrow / product grid

[x] On mobile, the results and sort by dropdown need to be moved above the grid. On mobile, they do not need the container border. They should sit 12px above products and have 40px of space between itself and the JOIN THE RECORD CLUB button

[ ] Mobile JOIN THE RECORD CLUB button should have this layout (should not be full width)

[ ] Mobile PRE-ORDER button needs to over hang on the right the same distance as it is above

[ ] Mobile: Price on product cards needs to be below all of the product information. Please refer to this screenshot for spacing of mobile cards

[ ] Cart icons should be 20px wide, and cart quantity is ROM condensed size 24

[x] On mobile only, the Categories should be in a drawer as well, and the default state should be SHOP ALL when the user gets to the page.

[x] The number to indicate number of genres/formats selected, should be body bold

[x] The grey line underneath format and genre moves underneath all the categories in that section when it is expanded

Several of these items have been addressed, I will try to get to a couple more.


Marlowe web

Summary
Serve the new marlowe-website (future marlowe products landing page) via <env>.marlowe-web.iohkdev.io.
Details
This PR consists of the following changes:

terraform: Configuring load-balance/certificates/route53 for marlowe-web
morph/nix: Serving marlowe-web via nginx on the playgrounds machine
marlowe-web: Adding a npmlock2nix based build of the

For testing purposes this has been deployed to https://tobias.marlowe-web.iohkdev.io/

Pre-submit checklist:

Branch

[x] Commit sequence broadly makes sense
[x] Key commits have useful messages
[x] Relevant tickets are mentioned in commit messages
[x] Formatting, materialized Nix files, PNG optimization, etc. are updated

PR

[ ] Self-reviewed the diff
[ ] Useful pull request description
[ ] Reviewer requested

Pre-merge checklist:

[ ] Someone approved it
[ ] Commits have useful messages
[ ] Review clarifications made it into the code
[ ] History is moderately tidy; or going to squash-merge

One tiny thought while I'm here: can we drop the "A" suffixes in things now that we no longer have "A" and "B" machines?

Good thought. We actually still do have the load balancer in there because it also takes care of SSL termination for us so the _a suffixes survived as a leftover.
I'm going to revisit this but preferably in a separate PR. I want to keep the terraform changes per PR as small as possible.


[Backport 2.x] Changed master nomenclature to cluster_manager

Signed-off-by: Bharathwaj G<EMAIL_ADDRESS>Description
Describe what this change achieves.
Issues Resolved
List any issues this PR will resolve, e.g. Closes [...].
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

:exclamation: No coverage uploaded for pull request base (2.x@4f1f992). Click here to learn what that means.
The diff coverage is n/a.

@@          Coverage Diff           @@
##             2.x     #177   +/-   ##
======================================
  Coverage       ?   83.60%
  Complexity     ?      555
======================================
  Files          ?       61
  Lines          ?     2050
  Branches       ?      146
======================================
  Hits           ?     1714
  Misses         ?      231
  Partials       ?      105

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Add CodeCov

⚠ This issue is generated, it means the examples and the namings do not necessarily correspond to the language of this repository.
Also, if you are a maintainer, please add any clarification and instructions about this issue.
Sorry if this is already wholly/partially implemented. Feel free to let me know about the state of this issue in the repo.
Related to https://github.com/meilisearch/integration-guides/issues/59

Codecov helps us to know if a PR add non-tested code. If it's the case, we don't accept the PR.
It's easy to install, easy to configure.
TODO:

[ ] Add CodeCov to this repository.
[ ] Add the CodeCov badge on this repository README.md
[ ] Ensure a minimum coverage is accepted (optional)

Hey,
Could you please assign this task to me?

Hi @StanislavMontag
We prefer not assigning external people to our issues.
Because people often ask to be assigned and never return, which discourages other potential contributions.
We will accept and merge the first PR that fixes correctly and implements the issue.

hi @brunoocasali  . Raised PR for codecov config https://github.com/meilisearch/meilisearch-java/pull/644. check and suggest any changes if needed. have a doubt on the default test reports location in build.gradle. should i remove it or kept as it is?


Any plans to add custom workout data?

@StasDoskalenko I wonder if you play to add custom workout data? I mean syncing workout with app title, app icon, workout name, workout time and burned calories for example.

There is a PR, but we need to clean this up.
https://github.com/StasDoskalenko/react-native-google-fit/pull/85

Really waiting for this feature

@StasDoskalenko are there any updates when it will be done?

Also looking forward for this feature to be merged!


⚠ Bofrost.nl has degraded performance

In 672938d, Bofrost.nl (https://www.bofrost.nl) experienced degraded performance:

HTTP code: 200
Response time: 1346 ms

Resolved: Bofrost.nl performance has improved in f6d7a1d.


Improve documentation defaults when swapping from yii2-swiftmailer

When swapping from deprecated https://github.com/yiisoft/yii2-swiftmailer to this extension, two things needed to be changed to keep everything working as before:

Swiftmailer default transport was the SendmailTransport, while this extension will default to a NullTransport (sends no mail). You can use the swiftmailer default by defining in application config:

'mailer' => [
    'class' => yii\symfonymailer\Mailer::class,
    'transport' => [
        'dsn' => 'sendmail://default',
    ],
],

Codeceptions TestMailer specifies swiftmailer\Message as a default class in https://github.com/Codeception/module-yii2/blob/master/src/Codeception/Lib/Connector/Yii2/TestMailer.php#L8. This can also be changed by defining in test config:

'mailer' => [
    'class' => yii\symfonymailer\Mailer::class,
    'messageClass' => \yii\symfonymailer\Message::class,
],

Not sure if any of these should be a code change, but I thought it was useful to report and perhaps have it documented in the README.

Yes, would be super-useful in a readme. Would you please make a pull request?

I'm really busy at the moment, but will revisit this ticket later.

After this PR was merged, commit 716243e9e8250c71e30280e287dbcd7ff9f2507f removed the recommended migration for config/test.php from the README.
I think it should readded, because in case 'messageClass' => \yii\symfonymailer\Message::class  is not specified there, CodeCeption fails, as it tries to use SwiftMailer by default.