update nodeSelector to affinity for chart to support multiple architecture

Update node selector to node affinity to support multiple architecture(amd64, ppc64le, s390x) for chart. Because

nodeSelector continues to work as usual, but will eventually be deprecated, as node affinity can express everything that nodeSelector can express.

When install istio chart, specify pod scheduling arch(amd64, ppc64le, s390x) preference and weight as follows:

0(Never scheduled)
1(Least preferred)
2(No preference)
3(Most preferred)

default value:
  arch:
    amd64: 2
    s390x: 2
    ppc64le: 2

Hi @morvencao. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@jascott1 would you mind reviewing this patch for correctness please as it relates to the current state of helm?  Note Istio uses helm template as part of our critical workflows.

@morvencao thanks for the PR!  I've asked one of my old friends (Justin) to take a look at this PR for correctness as it relates to helm template.  We have noticed beta capabilities are not correctly handled by Helm template and this patch may break critical installation creation workflows.

/ok-to-test

@morvencao: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
056abf53f93bb3085e30bd23eb38c09212ae4519
link
/test istio-unit-tests

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

@morvencao: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
056abf53f93bb3085e30bd23eb38c09212ae4519
link
/test istio-unit-tests

prow/istio-presubmit.sh
056abf53f93bb3085e30bd23eb38c09212ae4519
link
/test istio-presubmit

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

@sdake it looks like multiple template helpers are defined with the same name (e.g. "nodeaffinity") . These are global so they should be namespace'd to avoid collisions.

@morvencao I want to take a moment to apologize for long delay in this review.  Been taking care of family matters of a serious nature for the last 3-4 weeks.  That is resolved now, so back in action.
Cheers
-steve

/lgtm

@ldemailly @costinm since this effects the heavily tested istio.yaml helm templating in the future, do you have any commentary to add?  Otherwise ready to approve.
Cheers
-steve

@mandarjog is in the process of switching the base install to helm and is thus the best person to review/approve this

/hold

New changes are detected. LGTM label has been removed.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: sdake
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

install/OWNERS [sdake]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@morvencao: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-presubmit.sh
7ccfa879d40ce4b82afbd2ad29cad70313d28339
link
/test istio-presubmit

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

/retest

@morvencao: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e-v1alpha3.sh
f9fe6b27b861144785860a12b980df52091d7167
link
/test istio-pilot-e2e-v1alpha3

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

@morvencao: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e-v1alpha3.sh
f9fe6b27b861144785860a12b980df52091d7167
link
/test istio-pilot-e2e-v1alpha3

prow/istio-pilot-e2e.sh
f9fe6b27b861144785860a12b980df52091d7167
link
/test istio-pilot-e2e

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

/retest

@morvencao: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
f9fe6b27b861144785860a12b980df52091d7167
link
/test istio-pilot-e2e

prow/istio-pilot-e2e-v1alpha3.sh
f9fe6b27b861144785860a12b980df52091d7167
link
/test istio-pilot-e2e-v1alpha3

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

@morvencao: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e-v1alpha3.sh
f9fe6b27b861144785860a12b980df52091d7167
link
/test istio-pilot-e2e-v1alpha3

prow/istio-pilot-e2e.sh
f9fe6b27b861144785860a12b980df52091d7167
link
/test istio-pilot-e2e

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

/retest

@morvencao: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
f9fe6b27b861144785860a12b980df52091d7167
link
/test istio-pilot-e2e

prow/istio-pilot-e2e-v1alpha3.sh
f9fe6b27b861144785860a12b980df52091d7167
link
/test istio-pilot-e2e-v1alpha3

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

@morvencao: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e-v1alpha3.sh
f9fe6b27b861144785860a12b980df52091d7167
link
/test istio-pilot-e2e-v1alpha3

prow/istio-pilot-e2e.sh
f9fe6b27b861144785860a12b980df52091d7167
link
/test istio-pilot-e2e

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

As we support multi-arch docker image now, so I think that we can update the description by not highlighting the multi arch, but focus on using nodeSelector to do customized deployment based on customer requirement. @morvencao

seems this should not impact anything as no preference is the default and it provides an ability for users to customize preference for istio running on their k8s workers arch preference.
Could we get the test passing?  @morvencao @gyliu513

@linsun agree - and I have personally manually tested this PR (only on x86_64).  I have changed the priority around or x86_64 from 2 to 1 and 3, and there is no negative impact.  Seems safe to merge once the gate flakiness is resolved.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: gyliu513, sdake
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

install/OWNERS [sdake]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@morvencao: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
f9fe6b27b861144785860a12b980df52091d7167
link
/test istio-pilot-e2e

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


Resolved Bug 567 and 574 :  Storybook > Components > Product List > Images alignment is not proper And Component > Edition New Basic : Validation missing for Edition Name. No error message if its kept emptyoved

Description

Resolved Storybook >Components>Product List > Images alignment is not proper.
Resolved Component >Edition New Basic : Validation missing for Edition Name. No error message if its kept empty
Resolved Storybook > Elements >Scrollspy>Default>Small and large mobile view card content and button overlap

Screenshot :-
Components>Product List

Component >Edition New Basic

Elements >Scrollspy>Default

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

Changes Reviewed and made changes accordingly in code itself  PR Approved


Trigger search on re-add

Is your feature request related to a problem? Please describe.
I add movies to Radarr via a trakt list. Some of these movies are older and may already be on streaming services. If I set the list import to add them unmonitored to wait for Excludarr to check streaming availability I need a way to start a search when they are set to monitored so I don't have to wait for the movie to be found in RSS.
Describe the solution you'd like
If a movie is going to be re-added/set to monitored, add an option to start a search for the movie.
Describe alternatives you've considered
Let the movie download, and then get deleted when it's on a streamer. Or if excludarr was a filtering list proxy that would handle this problem as well.

Great issue! Will add this in the next version! I am also planning on adding somekind of proxy functionality in Excludarr so Excludarr reads the lists and filters out the streaming providers before they are actually being added to Radarr/Sonarr. But that is something for the long run


Auto-initialize Woodwork

As a user, I think it would be helpful to auto-initialize Woodwork when using the accessor. DataFrames contain enough information to create an initial schema based on the data types. There are several methods to update the schema after initializing.
Additionally, I think this behavior is similar to pandas behavior which does not require data type information to initialize a DataFrame -- you can modify the data types afterward. One possible drawback is losing the option to provide typing information before initializing, but it might be more of a pain point to make this initialization a requirement for the user.
As a developer, I think it would help simplify the code since it wouldn't require adding an initialization check to most (if not all?) of the methods in the Woodwork accessor. There may be some points I've overlooked here, but I think this is something worth considering.

@jeff-hernandez What would the code example of this look like?
import pandas as pd
import woodwork as ww

df = pd.read_csv("https://api.featurelabs.com/datasets/online-retail-logs-2018-08-28.csv")
# dataframe gets auto-initialized without calling `init`?


Captions aren’t extracted for some videos

Describe the bug
The transcript isn’t extracted for some videos. I think there are a few problems here:
1. The regex is a little bit wrong
Here’s the current regex, followed by a modified regex:
sample = """
<?xml version="1.0" encoding="utf-8" ?>
<transcript>
    <text start="0.199" dur="6.37">Hello and welcome to my YouTube channel.\nMy name is Sara Peternell and I&#39;m the</text>
    <text start="6.569" dur="3.121">owner of Family Nutrition Services in\nDenver, Colorado.</text>
</transcript>
"""

caption_re = re.compile('\<text start="(?P<start>[0-9\.]*?)" dur="[0-9\.]*?">(?P<sentence_text>.*?)</text>')
list(caption_re.finditer(sample))  # no matches

modified_caption_re = re.compile('<text start="(?P<start>[0-9\.]*?)" dur="[0-9\.]*?">(?P<sentence_text>[^<]*)<\/text>')
list(modified_caption_re.finditer(sample))  # 2 matches

2. We’re using regex here at all
I think it would be better to use an XML parser (e.g. lxml directly or BeautifulSoup) for parsing HTML and XML. Doing this with regex is a bit hairy.
3.  Very very similar code for extracting captions exists in two different places (in youtube.py and in youtube_api.py) – both of which have this same bug.
4. We’re throwing duration information away
Bit of an aside, but we throw caption duration away here, and later on we attempt to recreate it from start timestamps. It would make life a lot easier to capture the original duration data.

I know most (possible all) of the people reading this will be familiar with this legendary SO answer, and it's XML we're trying to parse, not HTML, but I don't like an opportunity not to share it.

I agree grepping the XML isn't the best solution but as long as we can fix the regex I don't think it's worth migrating this MVP to parse the XML correctly. I'm pretty sure there are ways to download the vtt-formatted subtitles for an arbitrary video then iterating over those with webvtt-py (iirc used in audio-transcriber). So it's between parsing xml or vtt, properly. Python does have the built-in xml.dom.minidom but I've never used it


Adds stats for how often the read cache evictor wakes up

Problem
I'd like to analyze how often the read cache background evictor thread runs, but there are not any specific stats for this to look at.
Summary of Changes
Add 'em.

Codecov Report
Attention: Patch coverage is 82.35294% with 3 lines in your changes are missing coverage. Please review.

Project coverage is 82.1%. Comparing base (4ae2ca1) to head (69c2139).
Report is 3 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1223   +/-   ##
=======================================
  Coverage    82.1%    82.1%
=======================================
  Files         886      886
  Lines      236439   236487   +48
=======================================
+ Hits       194252   194318   +66
+ Misses      42187    42169   -18


Can we add text to the icons?

is there a way to add text to icons?

No.

Actually, i was able to, i made update to the library and i was able to add icons+text. So if anyone is interested in this, reach out to me at<EMAIL_ADDRESS>

nandinicbit1981 put that's update here
thank you

+1


slight rewording

@AndreasWolter : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@AndreasWolter : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off

#sign-off

@AndreasWolter: I'm sorry - only the author of this article, @DavidTrigano, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

@AndreasWolter: I'm sorry - only the author of this article, @DavidTrigano, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

#sign-off

#sign-off

@ktoliver : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@ktoliver : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Hi @AndreasWolter - This pull request was created in the public repository, which is why you weren't able to sign off. Could you make future updates in the private repo? A small update like this one likely will auto-merge in the private repo. Thanks!

Hi @AndreasWolter - This pull request was created in the public repository, which is why you weren't able to sign off. Could you make future updates in the private repo? A small update like this one likely will auto-merge in the private repo. Thanks!


Bump haskell.nix

The bump is to support cabal file revisions on CHaP which are necessary to get our packages to build without all those manual constraints we have in cabal.project.
I am opening a draft PR to test the waters and warm up the chaces ahead of time since it's relatively big change in haskell.nix. I'll make sure everything works and then mark it as ready.

bors try

Subsumed by #4349 4349


Get all connected agents status

it would be useful to receive from the listAgentStatuses api not only the routable offline custom statuses but also the activity statuses (busy, pending busy, missed ... etc) to know in real time the status of the other connected agents

Amazon Connect Streams tries to be scoped down to information one agent wherever possible. The information you requested should be available through the Admin Website at {connect-url}/home

Are there any plans for an API interface to retrieve this information in real-time? The following response back in 2018 references something similar about a different API.
https://github.com/amazon-connect/amazon-connect-streams/issues/34#issuecomment-362356016

Following up from late 2023, are there any plans to retrieve this data through an API without navigating to the Connect website and viewing it manually? Even if it's an API as a part of the Client Connect SDK or somewhere else, it'd be useful to have that data available.


How to set the initial zoom level and the specific X ranges to be visible after mounting the chart?

Good idea.

See https://github.com/C451/trading-vue-js/tree/master/docs/api#setranget1-t2


cordovaHTTP can not be register

It's a Ionic project. When I register cordovaHTTP in main module ,browser console that:
Uncaught Error: [$injector:modulerr] Failed to instantiate module starter due to:
Error: [$injector:modulerr] Failed to instantiate module cordovaHTTP due to:
Error: [$injector:nomod] Module 'cordovaHTTP' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.

and my code is:
angular.module('starter', ['ionic','ngCordova', 'cordovaHTTP',
  'starter.DBUtilsService',
  xxxx
 ])

I can't use this plugin. Is there anything wrong with me?

Hi There, any fix to this.
I installed this plugin last night and it was working but getting the same problem above now.
Not sure why?! Thanks

Hi Chris,
I didn't have much success with the manual bootstrap but what did work for me was just commenting out cordovaHTTP in angular.module. The plugin works fine so all good :-) Thanks for reply

no problem.
For anyone else struggling & just to let you know-:
the best practice for ionic apps is to bootstrap your application manually. This ensures the dependencies are resolved in the correct order and avoids issues like these.
Here is an example how to manually bootstrap which works for web & phones:
  <script>
    angular.element(document).ready(function () {
      if (window.cordova) {
        document.addEventListener('deviceready', function () {
          angular.bootstrap(document.body, ['ionicApp']);
        }, false);
      } else {
        angular.bootstrap(document.body, ['ionicApp']);
      }
    });
  </script>


docs for loading with contracts to existing tables

Description
Update the docs on how to work with schema contracts and existing tables and columns

@rudolfix I'm not quite sure, are you suggestion to only update the docs or also to change some code now?

@sh-rp just to update docs - just as I described in the comment above about https://dlthub.com/docs/general-usage/destination-tables
so again: it is a short guide how to load data into existing table. you describe what your test does


Add support to deserialize as more complex collections

Example:
{"key1":["value1","value2","value3"],"key2":[]}
This could be represented, for example, as HashMap<String,Set<String>>, I'm getting two Lists instead, new List for each key.

Ok, let's also show more real example, json like this (real example, returned from Google Firebase Messaging):
{
    "applicationVersion": "64",
    "connectDate": "2018-08-06",
    "attestStatus": "UNKNOWN",
    "application": "my.app",
    "scope": "*",
    "authorizedEntity": "27173240702",
    "rel": {
        "topics": {
            "topic1": {
                "addDate": "2018-08-06"
            },
            "topic2": {
                "addDate": "2018-08-06"
            },
            "topic3": {
                "addDate": "2018-08-06"
            },
            "topic4": {
                "addDate": "2018-08-06"
            },
            "topic5": {
                "addDate": "2018-08-06"
            },
            "topic5": {
                "addDate": "2018-08-06"
            },
            "topic6": {
                "addDate": "2018-08-06"
            },
            "topic7": {
                "addDate": "2018-08-06"
            },
            "topic8": {
                "addDate": "2018-08-06"
            }
        }
    },
    "appSigner": "7a54b9f1ae94dba9afee721ab9252f9a93f1f190",
    "platform": "ANDROID"
}

It can be represented as only 2 classes:
public class TestModel
{

    public String applicationVersion;
    public String connectDate;
    public String attestStatus;
    public String application;
    public String scope;
    public String authorizedEntity;
    public Map<String,Map<String,Topic>> rel;
    public String appSigner;
    public String platform;
}

public class Topic
{
    public String addDate;
}

Instead, I'm getting multiple classes, new class for each topic, which is completly useless, because I don't even know how many topic will be there.

If you want this kind of control you have to write a JSON schema for this, instead of using source type JSON. Inside your schema, you can use the "javaType":"java.util.Map<String,java.util.Map<String,Topic>>" when you define the schema for the topics property.


Add a simple way to pass context to the Conversation service

Remember, an issue is not the place to ask questions. You can use Stack Overflow for that, or you may want to start a discussion on the dW Answers.
Before you open an issue, please check if a similar issue already exists or has been closed before.
When reporting a bug, please be sure to include the following:

[ ] Start the title with the service name in brackets:  [speech-to-text] websockets...
[ ] Steps to reproduce
[ ] Expected behavior
[ ] Actual behavior
[ ] Xcode version
[ ] ios-sdk version
[ ] ios version you are targeting

When you open an issue for a feature request, please add as much detail as possible:

[ ] A descriptive title starting with the service name
[ ] A description of the problem you're trying to solve
[ ] A suggested solution if possible

There is no documentation on how to pass context using the Swift SDK that I can find.  Below is a sample of code that we figured out over a 2 month process to be able to do so:
let failure = { (error: Error) in print(error) }
conversation.message(withWorkspace: conWorkspace, failure: failure) { response in
self.context = response.context
        // Grab the Conversation ID and System object and copy their contents
        let convID = (self.context?.conversationID)!
        let systm = (self.context?.system)!

        let jason = JSON(json: ["conversation_id": convID, "system": systm.json, "json": [["mrn":"MP0312"], ["cid":"PDX"], ["prov":"MP"]]])

        //Now re-initialize the context object with the json object you created above
        self.context = try! Context(json: jason)

        // Form new message request containing your initial context variable(s) and pass it to the Watson Conversation service
        let conFailure = { (error: Error) in print(error)}
        let request = MessageRequest(text: "hi", context: (self.context))
        self.conversation.message(withWorkspace: self.conWorkspace, request: request, failure: conFailure) {
            response in

            //copies the response context to context
            self.context = response.context

...
This took a lot of reverse engineering to figure out so there must be a more simple way.  In addition if you use my  solution above when you change this is the Conversation service dialog, you have to updates the context as so:
"context": {
"json": {
"mrn": "123456",
"cid": "BNA",
"prov": "RM"
}

@schen22 can you take a look at this? I met @trpmap93 at Interconnect and the had some issues trying to use the SDK.

Hi @trpmap93 - thanks for letting us know. We actually have an example in our README about how to continue a conversation which includes an example about how to pass and use the context. If you have any suggestions on where else we can place this information, or how to improve on our explanation so that other users will more easily understand how to use the Conversation service, definitely feel free to let us know. At the same time I agree the example in the README is fairly simple, and perhaps not the best fit for what you were looking for.
Are you trying to customize the responses the Conversation service gives, or are you trying to hold a conversation with the Conversation?
From your code it looks like you're not changing or updating the Context variable after you instantiate it with the JSON object you created, so I'll go under the assumption you're trying to hold a conversation with the service.
I'll walk through the code you posted. Let me know if you agree/disagree:
        conversation.message(withWorkspace: conWorkspace, failure: failure) { response in
            self.context = response.context

You save the context here, but you end up creating your own context. Why? You're basically copying what the Context object contains again in the jason object you create in the following
            // Grab the Conversation ID and System object and copy their contents
            let convID = (self.context?.conversationID)!
            let systm = (self.context?.system)!

            let jason = JSON(json: ["conversation_id": convID, "system": systm.json, "json": [["mrn":"MP0312"], ["cid":"PDX"], ["prov":"MP"]]])

            //Now re-initialize the context object with the json object you created above
            self.context = try! Context(json: jason)

Remove all the code above. You needn't re-initialize the context object since you've already saved it in the line self.context = response.context. Furthermore, in your second callback you actually do what I'm suggesting. Though maybe in the rest of the code you create another JSON object. My point is, creating the jason object you made is redundant. Just pass in the response.context variable you received from the conversation service.
Simplify your code to just the following:
  let failure = { (error: Error) in print(error) }
        conversation.message(withWorkspace: conWorkspace, failure: failure) { response in
            self.context = response.context
            // Form new message request containing your initial context variable(s) and pass it to the Watson Conversation service
            let conFailure = { (error: Error) in print(error)}
            let request = MessageRequest(text: "hi", context: (self.context))
            self.conversation.message(withWorkspace: self.conWorkspace, request: request, failure: conFailure) {
                response in

                //copies the response context to context
                self.context = response.context

From your code it looks like the main difficulty was how to handle callbacks. All calls to the Watson services are done through HTTP requests that are asynchronous meaning we need to wait for the service's response through callbacks. There's no way around the asynchronous calls, but maybe adding a completion handler when using the SDK would help you. That way you don't need to have a callback within a callback.
Definitely let us know what was hard to understand so we can improve. No one should spend 2 months or more even trying to figure one thing out. Try reaching out to us sooner too. Just keep in mind limited time and resources will lead to prolonged delays so sometimes you'll have to keep following up with any open issues you create with us unfortunately. However overall our main goal is to improve the ease of using the SDK, so we want to help.

You can also check out Cognitive Concierge, a sample app we wrote that actually uses the Conversation service in a full fledged app. The context is passed through a segue in the EntertainmentViewController.swift file, to the MessagesViewModel.swift, which is then called in the MessagesViewController.swift to handle the conversation response, etc.

Hi Schen,  I guess a better way to describe what I was trying to do was actually set a context variable from my application and pass this to the service.  I cannot find any example of how to do this using the sdk.  Basically what I was wanting to do was send out the nil call and receive back the conversation id and system object.  I then wanted to pass those along with an initial context variable object that I define in my application to the conversation service.  I can then modify this context variable in the conversation service and when need be alter it in my application code to pass back.
Hopefully this makes sense :)
And thank you for your detail response above!

The example I gave above was just to set the context variable initially when the service is started.  I have another function that handles the conversation back and forth after the initializing function above.  Its just imperative with application I am building to be able to set some initial items in the context variable from the application side.
Thanks again!

Oh I see - so it's mainly difficulty initializing the service then. Have you tried using completion handlers? Creating a context variable isn't necessary in my opinion, and having completion handlers is a bit clearer to understand, though that's all personal preference. It also makes more sense to contact the Conversation service to grab the Context variable rather than have the SDK provide a pre-defined Context variable to pass to the service for users to use. I'm not sure how else to better design creating/beginning a conversation. Any suggestions or thoughts you have would be much appreciated!
Let me know what you think about the following example that describes what I'm thinking:
let failure = { (error: Error) in print(error) }

// Instantiate context object outside of callback in order to continue conversation outside of the callback to call on and continue modifying the variable.
var context: Context?

Here I use completion handlers to instantiate the conversation service and upon success, return the needed context to continue a conversation.
func instantiateConversationContext(
    onSuccess success: @escaping(Context) -> Void,
    onFailure failure: @escaping (Error) -> Void) {
    conversation.message(withWorkspace: conWorkspace, failure: failure) { response in
        // End callback with success call that passes context variable
        success(response.context)
        // end this callback to improve code readability
  }
}

The following provides an example of how to use the instantiateConversationContext function created. Rather than initializing and creating your own context object, we call on the function to grab the context to use in the conversation service. The rest of my example is pretty dependent on what your app needs; I just added it to describe how to use the function I created above.
// Call on the instantiateConversationContext func to grab the context.
instantiateConversationContext(
  onSuccess: {
    // save context as a variable
    self.context = response.context

    // Add your app logic here.

    // Begin or continue conversation.
    continueConversation(message: "hi") { conversationReply in
      // Or whatever you want to do with the reply.
      print (conversationReply)
    }
  },
  onFailure: { error in
    print (error)
  }
)

The above continueConversation call is a function I made that takes in whatever message you want to send to the service and outputs a completion handler for you to check what the response is:
func continueConversation(message: String, completion: @escaping ([String]) -> Void) {
  // Form new message request as you had done.
  let conFailure = { (error: Error) in print(error)}
  let request = MessageRequest(text: message, context: (self.context))
  // Pass into the conversation service
  conversation.message(withWorkspace: self.conWorkspace, request: request, failure: conFailure) {
    response in
      self.context = response.context

      // output from conversation is usually saved as well so we can pass it into
      // the completion.
      completion(response.output.text)
  }
}

Schen22 thanks again for the example code.  At issue is still an easy way to change the context variable from the application side.  As I understand, context is made up of an conversation_id, a system object, and a json object (which is the actual context variable part).  The example I gave at the very first will work but instead of the context variable being expressed as context:{"property_one_key": "property_one_value" ...   it would have to be expressed as context: {json: {"property_one_key": "property_one_value"...
Changing the context variable looks pretty trivial in other languages from the application side, but I can't see a way to do it other than how I suggested which seems rather complex.
Thanks again for the discussion.

We've opened a new issue to track this problem that we'll most likely tackle in the next few sprints. I'll go ahead and close this issue for now, but feel free to refer to #620 for updates, or to submit further suggestions!!


[plugin|tiling] chunkc tiling::monitor --focus next|prev has no option to wrap

Used upgrading to High Sierra as an excuse to upgrade to chunkwm, great work on this. Seems superior to kwm
I've looked though the docs of chunkwm many times and can't seem to figure this out. In kwm I was have to issue a monitor focus prev/next command and it would wrap around if it was the last/first monitor and focus something.
In chunkwm chunkc tiling::monitor --focus next does not seem to wrap. I have to try both next/prev till I find the direction I need to go in.
Is there an option to allow wrapping that I missed?
This is the only issue i've found so far, which is a really great sign.
Thanks a bunch!

Ah, just noticed this is tied to window_focus_cycle.
Would you consider splitting these into to settings?
window_focus_cycle and monitor_focus_cycle (or display, whatever fits other settings)
I personally dislike focus to wrap between monitors, but do like having focus wrap when focusing an entire monitor.
This is a pretty small deal, so feel free to close if this is out of scope

I think this makes sense, but there are bigger issues that should probably be resolved first (#153)

I have no idea how to even fix the referenced issue, as it is forced behaviour by macOS.
Figured I'd at least implement this. I have not tested this personally, but it should work.
chunkc set monitor_focus_cycle 1 | 0

FWIW: I can confirm monitor_focus_cycle permits focus commands to cycle/wrap over monitors

I too confirm this works. Please feel free to close at your discretion


Classes sidebar for mobile

Keeping the circle sidebar on mobile leads to a squished and bad design, but something else needs to be implemented to allow mobile users to change classes. Compare:

Entirely agree with the above. Mobile looks way better without sidebar.

Entirely agree with the above. Mobile looks way better without sidebar.


Port basic functionality in restart.

For the first restart plan, we plan to achieve these goals:

Extract compiler details into resource files (maybe .json?)
Extract Block editor content into resource files
Restore basic functionality (BasicEditor in legacy version)

For newcomers, we are sorry that this project is under active reconstruction.
The legacy code needs massive fixes, so we thus remove those release versions.

All functionality verified :)


New Release?

Are there any plans to release a new version soon? There are some updates to exoplayer I'd like to use without pointing to the master branch of the repo.
ps - love this component, thank you to everyone involved!

Any update on this?

Version 2.1.0 just shipped!

and includes ExoPlayer 2.7.3


create_all fails during the composer playground card import

create_all fails during the composer playground card import.
composer-card-import logs shows:
Successfully created business network card file to
    Output file: PeerAdmin.card

Command succeeded

Failed to import the business network card
keyword:    required
dataPath:
schemaPath: #/required
params:
 missingProperty: certificateAuthorities
message:    should have required property 'certificateAuthorities'

Error: Errors found in the connection profile in the card
Command failed`

Looks that the JSON struct of ibm-container-service/cs-offerings/kube-configs/composer-card-import.yaml are wrong.
The CA Session shows:
        "ca.org1.example.com": {
              "url": "http://localhost:7054",
              "certificateAuthorities": {
              "caName": "ca.org1.example.com"
            }
          },

and should be:
        "certificateAuthorities": {
            "ca.org1.example.com": {
              "url": "http://localhost:7054",
              "caName": "ca.org1.example.com"
            }
          },

The fix provided by @rischioto worked for me as well as my customer that I am currently engaged with on their Azure cloud instance. FYI and thank you @rischioto.

See ticket #110 for full set of changes required.  Impleted under PR #114

Looks resolved; if not, Composer support has been removed anyway.


"pyocd pack --install stm32l4a6vg" installs "Keil::STM32L4xx_DFP::2.5.0" instead of "Keil::STM32L4xx_DFP::2.2.0". Because of this I get error "Target type 'stm32l4a6vg' not recognized."

v2.5.0 is better than v2.2.0 :-)

The name change to add the Tx and other suffixes makes partial sense in that some STM32 devices have more than just Tx suffix. But why almost all of the target names were changed is unclear (and not all have been changed).
Either way, pyocd (or more accurately cmsis-pack-manager) will always use the latest available pack version, and it performs a contains search. There is not a clear logical case for searching old pack versions, as it could result in unexpected behaviour (finding incorrectly named devices fixed in newer versions), and would require maintaining metadata (PDSC files) for all existent pack versions, thus exploding the index size. You can always use pyocd pack --find to search for the part numbers you're looking for.


[in_app_purchase] buyNonConsumable failing

Steps to Reproduce
Running on my iPhone device in debug mode from Android Studio, i tried to call
final result = await InAppPurchaseConnection.instance.buyNonConsumable(purchaseParam: PurchaseParam(productDetails: productDetails))

Where productDetails is a non-null object i got from calling
InAppPurchaseConnection.instance.queryProductDetails(productIds)

The product is an iOS subscription.
The call to buyNonConsumable resulted in a crash, with no error message, even with --verbose.
Then i figured i should add sandboxTesting: true to PurchaseParam. Now i don't get  crash, but i got the following error:
flutter: error buying non consumable: PlatformException(storekit_duplicate_product_object, There is a pending transaction for the same product identifier. Please either wait for it to be finished or finish it manually using `completePurchase` to avoid edge cases., {applicationUsername: null, requestData: null, quantity: 1, productIdentifier: myProductID, simulatesAskToBuyInSandbox: true}, null)

I have already set up a listener to purchaseUpdatedStream before runApp, but i don't receive any events now.
UPDATE: i did receive events the next day..
Expected results:
I expect the call to return with a result.
Actual results:
The app either crashed with no error message or threw an expecetion with sandboxTesting: true set.

Logs

See log file:
log-iap.txt

Nothing of relevance.

[✓] Flutter (Channel dev, 1.22.0-12.0.pre, on Mac OS X 10.15.6 19G2021, locale en-GB)
    • Flutter version 1.22.0-12.0.pre at /Users/erlend/flutter
    • Framework revision a27c242b0e (7 days ago), 2020-09-11 17:46:57 -0400
    • Engine revision fee6f9e533
    • Dart version 2.10.0 (build 2.10.0-110.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/erlend/Library/Android/sdk
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.7)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.7, Build version 11E801a
    • CocoaPods version 1.9.1

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 49.0.2
    • Dart plugin version 193.7547
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

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

[✓] Connected device (2 available)
    • Erlend (mobile) • 76dfa318a18803240a229805dd90bcb18d07fef1 • ios        • iOS 13.7
    • macOS (desktop) • macos                                    • darwin-x64 • Mac OS X 10.15.6 19G2021
    ! Error: Erlend is busy: Processing cache files from device. Xcode will continue when Erlend is finished. (code -10)

• No issues found!

Today i did get a purchaseUpdateStream event with and empty purchases array.
When i tried purchase the iOS subscription today i got a new error in addition to the previous mentioned error:
flutter: Failed assertion: boolean expression must not be null

happening to me as well

In InAppPurchasePlugin.m:182 there is:
payment.simulatesAskToBuyInSandbox =
        [[paymentMap objectForKey:@"simulatesAskToBuyInSandbox"] boolValue];

However, when the Flutter side sends null for this option, on the Objective-C side we get a NSNull instance, on which you cannot call boolValue—so it crashes.
I guess the fix should be to check the type of simulatesAskToBuyInSandbox.

#60763 This is one of the plugins that simply will never work.

@ndhbr try purchases_flutter by RevenueCat

@erf I've already thought about that, but actually I don't want to make my app dependent on yet another company.

Duplicate of #60763
Old purchases need to be finished.

Closing this issue as it is a duplicate. If you don't agree leave a comment with an explanation and I will be happy to re-open the issue.


Penthouse dependancy is outdated

Penthouse is approaching its stable release. Maybe it is time to update the dependancies of this gem :) .

@maximilianmessing, Sorry for the late reply as i'm just getting back in town. I'll write up a reply as soon as I can that explains why updating penthouse may not be possible.

@maximilianmessing Currently, this gem is leveraging the command line option of Penthouse. Here is the section that states that the command line option is being supported for newer versions: https://github.com/pocketjoso/penthouse/blob/master/README.md#from-command-line
When this gem was created, I wasn't able to figure out a way to get the Node option working. Could you propose another solution that would allow us to stay up to date with Penthouse?

It should be possible to invoke the penthouse JS from within Ruby using therubyracer by specifying a Ruby function as the penthouse callback to retrieve the generated CSS. If you're interested I can give it a try tomorrow evening.

@milgner, Any luck on getting this working using therubyracer?

Hey y'all, check out the approach in #18

On a related note, I have published a gem that wraps critical:
https://github.com/glebm/critical-rubygem

@glebm Sorry for the late reply. When I first saw your pull request come in, I got super excited since this has been something on the TODO list for awhile! I took a run through the changes and everything looks good. I'm trying to get some time to be able to play around and test these changes. I'll attempt to keep you up to date with the progress, and I may have to reach out if I have any questions relating your pull request.
Thank you so much for this contribution.

All,
This has been merged in. Penthouse has been updated to 0.11.5 in this gem's 1.0.0 release. Closing this for now, but please let us know if there are any issues.


Update retdec to v4.0

Checklist

[x] Checked the nixpkgs master branch

[x] Checked the nixpkgs pull requests

Project name
nix search name: retdec
(I don't know what nix search means but this is the package name)

current version: 3.2
desired version: 4.0
Notify maintainers

maintainers: @dtzWill @timokau
Note for maintainers
Please tag this issue in your PR.

I tried building this myself, but building the current derivation already gives me an error:
[100%] Built target LLVMScalarOpts
[ 13%] No install step for 'llvm-project'
[ 13%] Completed 'llvm-project'
[ 13%] Built target llvm-project
make: *** [Makefile:136: all] Error 2

I do not use that package anymore, so unfortunately I won't be of much help. I'll gladly review a PR if you manage to update it though. If you do, please also remove me from the maintainers list in that PR (and add yourself if you like).


Transparent mode failure: Runtime Error (could not resolve original destination)

Steps to reproduce the problem:
1.Followed these steps precisely: http://docs.mitmproxy.org/en/stable/transparent/osx.html
2.mitmproxy -T --host
Any other comments? What have you tried so far?
I could not figure out how to connect my iOS 10/11 device to mitmproxy. I tried to change the gateway/router in the wifi settings, but did not work.
This the error message:

I also tried in the regular mode, but I get following errors:

System information
Mitmproxy version: 2.0.2 (release version)
Python version: 3.6.2
Platform: Darwin-16.7.0-x86_64-i386-64bit
SSL version: OpenSSL 1.1.0f  25 May 2017
Mac version: 10.12.6 ('', '', '') x86_64

Hi,
The first error is hard to diagnose - are you on an IPv4 or IPv6 network (see #2594)?
Regarding your second error, it looks like mitmproxy cannot reach the internet? You can for example check that by creating an artificual flow in mitmproxy (n) and then replay it (r).

See my comment in https://github.com/mitmproxy/mitmproxy/issues/2609, it seems that -T disables TLS/SSL. Maybe the error 'could not resolve original destination' is explained by this as well? Because --host or SNI is not reached (after all, there is never proper connection).

@mdavids: I appreciate that you are looking through the issue tracker before opening a new one, but this issue here seems entirely unrelated to me. :-)

Was this resolved, or just closed for lack of response?  I'm having the same transparent mode failure issue.  In non-transparent mode I can access http sites with no trouble.  However, when accessing https sites, I consistently get an error because a secure connection could not be established, even on sites that don't use pinning.  (I'm sure of this because one of those sites is my own and I just rechecked the config and restarted the server.)
I have the same configuration as @wimbledon had, except I'm on an older version of OS X.  In particular, I also followed the docs precisely, with the exception of setting the interface in step 3 to en0 (since that's what WiFi is on according to networksetup -listallhardwareports).  I'm trying to use this as a proxy for my iphone running ios 11.1.  I have followed the instructions for setting up the proxy, and added the CA cert to the phone, which both look like they worked.
Mitmproxy version: 2.0.2 (release version)
Python version: 3.6.3
Platform: Darwin-15.6.0-x86_64-i386-64bit
SSL version: OpenSSL 1.1.0g  2 Nov 2017
Mac version: 10.11.6 ('', '', '') x86_64

@moble: Are you perhaps hitting https://github.com/mitmproxy/mitmproxy/issues/2594?

Maybe, but I tried updating to the current git master HEAD, and trying to work around that bug, and get the same results.  Specifically, I tried commenting out that whole try-except block that tries to get the IPv6 socket, expecting that it should fall back to just the IPv4 block.  I get the same error (but in a nicer-looking interface!).
Also, I still get the same non-transparent behavior.  I removed and reinstalled the CA cert, just in case something had changed with that.

@moble: Could you attempt adding some debugging print statements to mitmproxy/platform/osx.py and mitmproxy/platform/pf.py to figure out what's happening?
peer should have the client ip/port and we then call pfctl to obtain the actual destination.

Okay, I added print statements basically everywhere in those two files that a new value is obtained.  Each time peer is obtained, I see the IP of my phone as a string, followed by an integer that increments each time, in the ~50000 range.  That looks reasonable.  (This is still with the IPv6 block in /net/tcp.py commented out.  When I uncomment it, I get ::ffff:.)
More interestingly, each time pfctl is called, the output is uninformative:
b'No ALTQ support in kernel\nALTQ related functions disabled\n'

This is also what I get when I run the command in my terminal:
> sudo -n /sbin/pfctl -s state
No ALTQ support in kernel
ALTQ related functions disabled

That's it — nothing else.  If I do pfctl -s all, I see
> sudo -n /sbin/pfctl -s all
No ALTQ support in kernel
ALTQ related functions disabled
TRANSLATION RULES:
rdr on en0 inet proto tcp from any to any port = 80 -> <IP_ADDRESS> port 8080
rdr on en0 inet proto tcp from any to any port = 443 -> <IP_ADDRESS> port 8080

FILTER RULES:

INFO:
Status: Enabled for 3 days 21:03:03           Debug: Urgent

State Table                          Total             Rate
  current entries                        0
  searches                         9961181           29.7/s
  inserts                                0            0.0/s
  removals                               0            0.0/s
Counters
  match                            8210189           24.5/s
  bad-offset                             0            0.0/s
  fragment                               0            0.0/s
  short                                  0            0.0/s
  normalize                              0            0.0/s
  memory                                 0            0.0/s
  bad-timestamp                          0            0.0/s
  congestion                             0            0.0/s
  ip-option                           2417            0.0/s
  proto-cksum                            0            0.0/s
  state-mismatch                         0            0.0/s
  state-insert                           0            0.0/s
  state-limit                            0            0.0/s
  src-limit                              0            0.0/s
  synproxy                               0            0.0/s
  dummynet                               0            0.0/s

TIMEOUTS:
tcp.first                   120s
tcp.opening                  30s
tcp.established           86400s
tcp.closing                 900s
tcp.finwait                  45s
tcp.closed                   90s
tcp.tsdiff                   30s
udp.first                    60s
udp.single                   30s
udp.multiple                 60s
icmp.first                   20s
icmp.error                   10s
grev1.first                 120s
grev1.initiating             30s
grev1.estblished           1800s
esp.first                   120s
esp.estblished              900s
other.first                  60s
other.single                 30s
other.multiple               60s
frag                         30s
interval                     10s
adaptive.start             6000 states
adaptive.end              12000 states
src.track                     0s

LIMITS:
states        hard limit    10000
app-states    hard limit    10000
src-nodes     hard limit    10000
frags         hard limit     5000
tables        hard limit     1000
table-entries hard limit   200000

OS FINGERPRINTS:
696 fingerprints loaded

I don't claim to understand any of this, but I guess the relevant point is that the state table has 0 current entries.

Thanks, this is super helpful. Does this help: https://superuser.com/a/1172786 ?

Nope.  I found that answer too, and upvoted the comment because it didn't work for me either.

More specifically, the firewall was already on in System Preferences.  I tried turning it off and on again anyway, and still got just the ALTQ output.  Then I tried sudo pfctl -E, which looked like it worked, but still got just ALTQ.

I seem to be having the exact same problem here. When I try to load a webpage on the device I'm testing, it flashes up on the bottom of the screen:
Warn (ip of connecting device):(incrementing number): Transparent mode failure: RuntimeError('Could not resolve original destination.',)

Like others, I've followed this exactly: http://docs.mitmproxy.org/en/stable/transparent/osx.html
And if I run sudo -n /sbin/pfctl -s state I get only:
No ALTQ support in kernel
ALTQ related functions disabled

@moble - did you ever find a solution for this problem?
@mhils - could I suggest reopening this issue? Looks like an actual problem in either mitmproxy itself or in the osx docs

I did not find a solution.

@jimhigson: thanks for the heads-up. Which OSX version are you on?
I just merged #2643, which contains a fix for #2594 that might be related to this. Maybe you two can check if the latest master version works for you.
There will be standalone binaries for easy testing at https://snapshots.mitmproxy.org/v3.0.0/, but we need to wait for @travis-ci to build them which may take a few hours (we need 3.0.0dev0979 or above).

@mhils - thanks for reopening.
I'm on 'HIgh Sierra' - macOS 10.13.2 (17C88)
Will try the latest master. Hopefully brew upgrade --HEAD mitmproxy should work since I'm not very experienced with building Python projects. Otherwise I can wait for travis to build it.

So this morning I downloaded and ran mitmproxy-3.0.0dev0985-0x79cf6d2-osx.tar.gz
The -T and --host option seem not to be supported any more, so I'm now running like:
./mitmproxy --mode transparent
Unfortunately, I get the exact same error as on the older version. Transparent mode failure, could not resolve original destination.
If there is any log or some debugging output I can share what would help here?

Not sure if this is relevant but I tried running v3.0.0dev0985 without --mode transparent to see if that worked. Whenever I connected to mitmproxy, I got this repeated over and over:
Traceback (most recent call last):
File "site-packages/OpenSSL/SSL.py, line 313, in wrapper
AttributeError: module 'lib' has no attribute 'X509_up_ref'
From cffi callback <function create_client_context.<locals>.verify_callback at (various hex codes)

Thanks. The best way to debug would be to install from source on OSX and then play around with mitmproxy/platform/osx.py and mitmproxy/platform/pf.py. It's either an issue where we don't parse the pfctl output correctly, an issue where pfctl doesn't contain the output we need, or a misconfiguration.

I haven't tried building and debugging from source, but looking at py.py, it looks like the command mitmproxy is calling pfctl with is providing no useful output, based on me calling this manually:
jimhigson@budapest ~> sudo -n /sbin/pfctl -s state
No ALTQ support in kernel
ALTQ related functions disabled

/sbin/pfctl -s state is what I added to my sudoers as per here so I'm assuming that's the output that this code is trying to parse. If doesn't look like there's anything meaningful in there to parse. Would that cause this problem?

I'm getting the same output on my macOS 10.12 and 10.13 system.

I don't know Python very well so it's difficult for me to say, but it looks like this code is choking on that output from pfctl:
    for i in s.split("\n"):
        if "ESTABLISHED:ESTABLISHED" in i and spec in i:
            s = i.split()
            if len(s) > 4:
                if sys.platform.startswith("freebsd"):
                    # strip parentheses for FreeBSD pfctl
                    s = s[3][1:-1].split(":")
                else:
                    s = s[4].split(":")

                if len(s) == 2:
                    return s[0], int(s[1])
    raise RuntimeError("Could not resolve original destination.")

Not really choking - there simply isn't anything to parse.
For me, pfctl -s state returns nothing (except the two ALTQ lines).
What we expect to get is some lines with ESTABLISHED:ESTABLISHED in it.

Anyone got this solved?

No, the code still looks for results from pfctl -s state, which still returns nothing meaningful.  The relevant docstring suggests another way this could be made to work, if anyone has the time and skills for that.  Though there might be an easier way...
@mhils I notice that lsof -i displays a lot of similar-looking information (including the fact that the connection is TCP, and whether or not it's established).  I'm not clear on what all these connections are, but would it be possible to just replace the call to pfctl with one to lsof?  It would require a special case in the lookup function of pf.py, but that's not too hard.

I have exactly the same problem:

My iPhone has IP <IP_ADDRESS> and it uses the certificate from mitm.it and I've configured the WiFi connection to use a proxy on my Mac IP on port 8080.
I start mitmproxy on my Mac in transparent mode:
$ sudo mitmproxy --mode transparent --showhost

$mitmproxy --version
Mitmproxy: 4.0.4
Python:    3.7.0
OpenSSL:   OpenSSL 1.0.2p  14 Aug 2018
Platform:  Darwin-17.7.0-x86_64-i386-64bit
$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.13.6
BuildVersion:	17G65

It also complains about the ALTQ.
$ sudo pfctl -vvv -s all
No ALTQ support in kernel
ALTQ related functions disabled
TRANSLATION RULES:
@0 rdr on en0 inet proto tcp from any to any port = 80 -> <IP_ADDRESS> port 8080
  [ Owner : nil          Priority : 0     ]
  [ Evaluations: 104582    Packets: 0         Bytes: 0           States: 0     ]
  [ Inserted: uid 0 pid 52482 ]
@1 rdr on en0 inet proto tcp from any to any port = 443 -> <IP_ADDRESS> port 8080
  [ Owner : nil          Priority : 0     ]
  [ Evaluations: 53415     Packets: 0         Bytes: 0           States: 0     ]
  [ Inserted: uid 0 pid 52482 ]

FILTER RULES:

INFO:
Status: Enabled for 0 days 04:00:48           Debug: Urgent

Hostid:   0xc00c8807
Checksum: 0xd41d8cd98f00b204e9800998ecf8427e

State Table                          Total             Rate
  current entries                        0

I hope that this will get fixed, I need to reverse engineer an App API :-)

Update: I got https traffic working with the above settings. Turns out I forgot to enable to certificate on ios after installing it.
Without the http.HTTPMode.regular change, I get a 400 error saying Mitmproxy received an absolute-form request even though it is not running in regular mode.
@mhils I'd be happy to dig more into this if you have any pointers for why the above configuration is necessary to get a transparent proxy running.

Is the ALTQ warning a red herring?
No ALTQ support in kernel
ALTQ related functions disabled

"OpenBSD (original developer of pf) actually removed ALTQ support since April 2014."
https://apple.stackexchange.com/a/221060
Appears to refer to commits on openbsd/src/pf*.....

Source 1:
shrink pf by 445 lines.
while there, get rid of the altq ioctls and assciated now obsolete code

https://github.com/openbsd/src/commit/6720ff9e54d80a0b74de864deb5b7312a8f532e6#diff-9517dfce4e8db974781a4536fd38cfc1

Source 2:
Remove some altq tentacles.
ok pelikan@, henning@

https://github.com/openbsd/src/commit/a9253da7673d2aab4c230dcf21cf02cefdbbf927#diff-9517dfce4e8db974781a4536fd38cfc1

@seafre The warning is not the problem; it's just a symptom.  The problem is that that warning is the only thing output.  This code calls the command sudo -n /sbin/pfctl -s state, and expects that command to return something that can be parsed as the s argument to this function.  Specifically, the output should have a line containing the string "ESTABLISHED:ESTABLISHED", as well as the address and port of the client, and an address and port for the destination.  Obviously, that warning does not contain the required information.
The conclusion to be drawn from this thread is that pfctl on macOS does not output the required information.  However, as noted here, the sections of code I pointed to above could probably be rewritten to use lsof pretty easily by anyone who needs this.

@moble @seafre I'm intensively using pfctl, transparent mode & mitmdump in Debookee, and it has been working successfully on all macOS versions from 10.12 to 10.15.
I would not see a reason to change code to parse lsof instead of pfctl.
-> If you want we make a remote session to troubleshoot your case, I'd be willing to help you.
Maybe you're hitting a bug with your config, and so we could understand what's wrong or not clear in the current documentation. Contact me privately to do so.
Here are some mistakes I've made with transparent proxy :
-> No effective use of the rdr rule : as long as  sudo pfctl -vvv -s n shows Packets: 0 for your rdr rules, then something is wrong and the traffic is not arriving at mitmproxy, even not at pfctl.
-> Use of IPv6 traffic : pf.py is not ready yet to parse IPv6 traffic at all, even if you set rdr rules for IPv6 traffic. (I'm writing a PR request of this)
-> Try to send the own traffic of the mac running mitmdump in transparent mode.
This is more complicated and needs filter rules in pfctl as stated in https://github.com/mitmproxy/mitmproxy/issues/1261
(Don't try this if simple traffic of another device doesn't work in transparent mode !)
-> The traffic of the external device wasn't sent properly on the mac running mitmproxy (sent as a proxy, or bad MITM)
For your information, I have this error Transparent mode failure: Runtime Error (could not resolve original destination) in Debookee maybe 1x out of 1000 URLs, my guess is that pfctl output is not updated with "ESTABLISHED:ESTABLISHED" at the time mitmproxy sees the request, but maybe the previous state of INIT...
But it's so rare that I haven't taken the time to debug it.

I fixed this issue with @tomlabaude's comment. I still had my client configured to use the device as a proxy and not as a default gateway. Changing that is all it took.

Hello everyone! I am using Mitmproxy with the latest version and MAC OS 12.6 and I am having the problem discussed earlier in the thread. I would like to know if anyone has solved it somehow...as @tomlabaude  comments it tells me Packets: 0, and when using: pfctl -s state . It does not show me the ESTABLISHED....
I have done all the steps indicated in the guide.

@tomlabaude Ohh, maybe, instead of using MacOS, you could use mitmproxy with Linux? I'm trying to decrypt data from an Android mobile app with Root, because I need to know the API that the app uses on the back end.
Thank you for telling me that, at least now I know and I don't have to keep on eating my head!!

Any update on this? I have tried with Linux and still nothing, with the last update 9,

For mitmproxy 9, I would recommend to use WireGuard mode instead. I don't have any insights otherwise as I'm not on macOS.

@mhils I used Wireguard but I read that the transparent proxy was not working properly. I have used it and at least for me, it gives me a certification error in the app I'm using to see the content...
I have used Linux, Mac and Windows.
I don't know if you have any idea...


Images pulled from Docker Hub default to 'latest'. Causes images to ERROR 404 when they do not lave a 'latest' tag.

Expected behavior
Create a container with the chosen images from the Docker Hub.
Actual behavior
Images chosen without a 'latest' tag, ERROR 404 and fail to deploy.
Information about the Issue
Going through some of the issues reported for this repository, I picked up a trend that this issue references. Kitematic defaults to 'latest' tag even if it does not have a latest tag.
Steps to reproduce the behavior

Open Kitematic
Select an image you want to deploy
Click "Create" and error will appear

If the image you're creating a container from doesn't have a :latest tag (which is the default), you need to manually select the tag to use from the UI;
Click the three "dots" to open the details pane for the image

Click on the "selected tag"

Select the image tag you want to use:

Click the close button ("X"):

Then click "create" to create a container using the image (and tag) you selected

My goal of this ticket is the default should not be to 'latest', it should be to the first of the list of tags. I've been traversing through the code and found where it needs to be changed, but have not narrowed down the solution yet.

I'm not sure randomly picking the "first" tag is the right solution "first" may be a very old tag.

I had that thought as well. May be cool to some how sort by age of the tag in the list. Very well may be too much work than it's worth.

@fmeade this isn't a Kitematic behavior, but a docker behavior- By default the latest tag is what docker looks for.


VLS: Panics a lot

The VLS panics on code Type Errors and other code errors. Shouldn't VLS report an error instead on panicking?

Opening these issues in vlang/vls

Opening these issues in vlang/vls


fix(landingpage): align mobile menu item content vertically

Closes #1188
Proposed Changes

align text and icon of mobile muenu item vertically
optimzie spacing in mobile menu to prevent letter break in german


how to remove padding on divs right/left

Hello,
i have a problem with padding around my div .

i want to remove the padding in the left and right . and this is my code

                        qweqweqwe

                    @RenderBody()

                        zxczxczxc

Can you create a JSFiddle that reproduces your issues?
I've tried with your example, and it looks fine:
http://jsfiddle.net/7k6kjm9h/

thanks for your response
check this out : http://jsfiddle.net/ed9ugb5f/

any idea here !?
im stocking on this one !

Grids have gutters between columns. Your bottom row has three columns, so there are gutters in between the first, second, and third columns.
If you want things to "butt up" against each other, you need to specify background colors on all columns.

i dont get it !
background-color  ? gutter ? whats the relation !
i just need the div with ten column having no padding in the left and right .
the backgrounds is different and cant be the same .
if im wrong , can you please edit my fiddle ?
thank you

so how can i make this happen ?
i tried everything but i couldn't do the same thing like the picture .
the main column ( ten wide column ) is getting filled from the partials.
i really appreciated if you help me with this .
thank you .

i get it now .
i should set the background on the  and not the inside div .
thank you .