Inline Layout (Rich Text)

Some other mods already have this type of feature or have support planned, like Almanac. I think it's likely users will eventually come to expect this, especially from an HTML-like markup system.
The essential use case is "rich text" - writing paragraphs with embedded sections of bold, shadows, color, even small images, etc. There are lots of good examples at the Almanac author guide.
StardewUI shouldn't try to implement this specific thing, though. What it should do is implement something similar to what HTML already has: inline layout. The parser is there, the layout system is (basically) there, but there is no actual layout view for this kind of behavior.
Inline layout is similar, but not exactly the same as a WrapPanel kind of widget. It's somewhere between that and a regular Lane. Some characteristics of a hypothetical <inline> would be:

No configurable orientation, always flowing left-to-right and top-to-bottom (yes, RTL theoretically exists but that's a problem for another day)
Stretched and percentage widths either shouldn't be used at all, or need to behave differently from the Lane which has special logic to support deferred stretching. If implemented, stretching would always use the remaining width (since subsequent fixed/content sized spans can wrap to the next line) and percent would probably always be a percent of the total line width rather than remaining width to avoid weird inconsistencies as the content is changed.
Vertical alignment of elements in a line doesn't exist by default and there needs to be some way to specify it that (a) isn't super complex and (b) doesn't cause a bunch of confusion and ambiguity with other non-inline layout types that won't support it. Possibly a vertical-content-alignment attribute on the <inline> itself, while allowing nested <inline> elements to change that.
Probably most crucially, individual elements need to wrappable or perhaps "breakable" is a better term. If a Label appears near the end of the line, and wraps to the next line, it has to wrap to beginning of the <inline>, not to the left edge of where it started.

In theory, I think there's no reason why <inline> can't support any arbitrary content whatsoever, including even editable content like text inputs and drop-down lists. They are already "inline" in the sense of working by themselves, or in horizontal or vertical flows; StardewUI doesn't really have "block" level elements. The only difference, really, to me, is wrapping behavior.
Lanes and panels don't wrap, and a lane or panel embedded in an <inline> wouldn't wrap either. So in theory you could actually use one of these to keep content together, like an image with some adjacent text, and have "all or nothing" wrapping. Inlines, by contrast, always wrap content, and specifically wrap back to the origin position of any parent/ancestor inline, not their own nominal left position. In Measure terms, this means they may get a narrower width for the first line but always reset back to the full outer width on subsequent lines.
<label> ends up being the wildcard, since it already has wrapping behavior. I think that this can/should be solved in a general way, that is, any type of view that might implement its own wrapping needs both a "normal" and "inline" mode, where "inline" mode is similar to <inline> itself, i.e. wrapping back to a previous point after a line break.
I know there's more to it. One unanswered question here is how alignment of wrapped lines is supposed to work. If a label is 2 lines long, assuming all the horizontal business is sorted out, there's still the question of what Y position to render the 2nd line at; it might not be the "normal" line height from the 1st line, if the 2nd line has an image in line with the text that's much taller. For example:
Get ready for the
               +----+
big festival!  |    |
               +----+

Where this hypothetical layout has one actual text label ("Get ready for the big festival!") but the second/wrapped line is vertically-centered with some <image> after it. The <label> has no way to know that its second line of text should be drawn lower.
I think this caveat can only actually ever affect the last line, as middle lines would presumably be full of text and therefore have no interesting vertical alignment. However, nested <inline> elements (if that is the design) could have similar requirements with a less-simple solution.
Don't have all the answers yet, but given the above, I think the problem is solvable and an early version, perhaps with some quirks, could go into an M4 release.

Some further thoughts and refinements to the idea, which is starting to look more like a real design.
Layout
Inline layout is always flowing horizontal, wrapping vertical. This allows us to make simplifying assumptions about the interactions between inline elements, other inline elements and non-inline elements.
The output of any inlineable view (mainly just Label) is spans (working term). A span is roughly equivalent to a "line"; that is, a pre-measured segment that can't or shouldn't be broken up further. It may occupy the entire view's width, or only part of it. Its height is the line height - in the case of multiple fonts/sizes/scales, it is the maximum line height.
Inlineable views receive two width arguments instead of one size argument: total available width and width available for the first line/span. Height is not used because for inline layout, the view only computes the measure pass; it will be the <inline> itself that is responsible for the layout pass of all inner views and spans. Likewise, spans do not have positions, only sizes, although text inside a span may be implicitly relatively positioned e.g. to align runs of different font sizes.
The spans from an inlineable view replace the view itself in the layout; in terms of what happens in the layout pass, there may be traditional IView elements that are wrapped, and then IInlineableView elements that are expanded to their spans that are individually wrapped.
This doesn't really need to be a separate mode for the label; original behavior can be represented by changing the current "line-breaking" to "span-creation" where the initial width just happens to be the same as available width, and instead of outputting a string list, we output a span list. The Draw method treats each span like it used to treat lines.
Non-inline elements in an <inline> have different layout behavior. Stretch width is ignored, and stretch height is the line height. "Re-breaking" (having to re-measure an inlineable element, possibly repeatedly, because some non-inline element wants to adjust its width according to the final line height) is apt to be messy and slow, so it won't be implement. Instead, all <inline>s shall have a default line height that is used for this specific purpose. Most non-inline elements in an inline section should use a fixed height instead.
Markup
While it might indeed be easier to implement this by requiring a slew of <label> elements with different properties, it is just not user-friendly. We need text-modifying tags like HTML has:

<b> for bold
<u> for underline
<s> for strikethrough
<c> for color (e.g. <c color="#123">)
<f> for font (e.g. <f font="dialogue">)
<z> for scale (zoom) (<z scale="1.2">)
<w> for shadow properties (<w alpha="0.5" offset="-3, 3" color="#321">)

To support this on the code side, these need to be translated into something similar in concept to a SpannableString. The text itself must determine breaking, e.g. "hello" is one word. Therefore it is probably advantageous to reduce the markup tree to a series of Label attribute modifiers that each apply to a specific range of text, while continuing to break the text according to whitespace. Note that font/scale changes will affect the width of the word, so breaking isn't an exclusively text-only algorithm; during layout, as we look at individual words, we need to adjust the computed width by applicable word and character spans.
These tags only make sense inside of a text context, i.e. a <label>. The document parser should provide a meaningful error when they are encountered in a different context, as opposed to just "unknown tag". Also, even in a label context, they are not true views; they have to be represented differently.
To deal with this, we may need to have a "local" or "contextual" IViewFactory, which is used in place of the default factory when looking at Label children, and instead of operating only on the tag name, can operate on the children as well (or just the entire INode) and consume the entire markup. We are taking the entire markup and converting it to a RichText or FormattedString or whatever.
Another possible implementation, instead of a contextual factory, is using the new node transformer system. This could make it look to the default factory as though it is a perfectly ordinary <label> element, with a value assigned to the Text (now typed as a FormattedString etc.) representing all that inner content. The hurdle here is that since node transformers are source-only, they can't inject an arbitrary value - all attribute values have to be expressible as a string. This could make internal bindings difficult to handle.
Unfortunately this is still a rough area and needs further design work to figure out. It seems to be about halfway there.
Regardless of design, this new text type needs to have a concept of placeholders - see below.
Interpolation
Both the text itself and some of the attribute values, e.g. the font of an <f> tag, should support bindings, otherwise the system is entirely limited to static text.
Experience tells us that interpolations are somewhat easier to manage in this context than tags:
{{Npc}} has given you a {{Gift}}!

as opposed to:
<run text={Npc}/> has given you a <run text={Gift} />

Only some bindings are valid here: context (one-time/input/two-way) and translation. Others, such as assets, output bindings, etc., don't really make sense. This may require a separate sub-parser, or perhaps invalid bindings can simply be ignored.
Formatting tags may also use bindings, e.g.
You scored <c color={ScoreColor}>{{Score}}</c> points.

In order for any of this to work, there has to be a binding source and binding destination. The destination is the View, of course, but what we're really looking at here is a list of placeholder objects that correspond to "slots" in the text interpolation, each slot being either an attribute binding or a regular interpolation, though in the FormattedString there is no difference between the two, it is just a sequence of spans and placeholders.
This requires support on the view binding side. In addition to the usual attributes and events on the IElement, there needs to be an extra pair whose input is a list of binding attributes and whose output is a list of the bound values. This works the same as regular attributes except that the expressions comes from a different source, and bind to a single list property instead of many named properties.
A lot of this is hinting at a possible expansion of SElement, which could marry a node-transformer solution with a placeholder mapping system. However, it feels very one-off, changing the entire binding system around the needs of one particular widget; I don't favor this method unless it turns out to be generalizable.
Localization
Inline text can reference translations, but in most cases where rich text would actually be any kind of benefit, i.e. moderate to long paragraphs with multiple formats or tokens interspersed, that is really not a good way to handle the translation, because translations will often use a completely different word ordering requiring placeholders and formats to appear in different relative locations. An English {{#foo}} {{bar}} might be a French {{#baz} {{bar}} {{#foo}} and this can spiral out of control very quickly.
StardewUI does have template localization and in many cases this could be a solution - just make a view.fr.json with everything translated. This can work well for views that aren't too complex, or whose complexity is mostly due to the text content itself, but isn't so good for views with a lot of hierarchy or control logic, as it results in a lot of repetition and therefore is very error prone. It's especially poor when a second-tier mod wants to replace the UI of a primary mod.
Another option is <include>, which can also work well in theory as those includes can be localized (and won't have a bunch of a non-text content to copy and paste), but this could lead to a proliferation of many tiny views all to localize a single paragraph of text.
The best solution may be one based on templates (#39). Specifically, although the current system requires templates to be local to some view, and every StarML file must have a real root view, there is a hypothetical idea of "includes", in which a file would be only templates, and one .sml can include another .sml to make its templates local. This could either be done with the same file type, requiring extra validation in various places, or possibly with a different file type with its own asset pipeline, which could help to prevent silly mistakes and also allow authors to put their "UI i18n" in a different folder entirely.

Looking at what I've written above, it's pretty clear that this needs another day to bake for the design alone, and is probably going to take several days to implement. Thinking it's time to remove this from the 0.4 milestone, and perhaps make it the entire focus of the 0.5 milestone. That will also give some of the important related systems (e.g. node transformers) a chance to get some field testing before going whole hog.


docs(python-sdk): Python docs, Makefile, code formatter

Looks like OCaml workflow failed

^ I will make a PR to fix that


⚠ Processors has degraded performance

In cf064d2, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 89 ms

Resolved: Processors performance has improved in 15566bb.


Opera Platform is now OperaVision

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like this: [x])
Use the Preview tab to see what your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2<IP_ADDRESS>. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2<IP_ADDRESS>

Before submitting an issue make sure you have:

[x] At least skimmed through the README, most notably the FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[ ] Bug report (encountered problems with youtube-dl)
[x] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):
Note that youtube-dl does not support sites dedicated to copyright infringement. In order for site support request to be accepted all provided example URLs should not violate any copyrights.

Description of your issue, suggested solution and other information
The Opera Platform has changed domain, it is now Operavision (www.operavision.eu) and it does not work with youtube.dl, please upgrade with this new site.
Single video: http://www.operavision.eu/en/library/performances/operas/lecume-des-jours

SORRY, didnt notice they now use Youtube!!!! It took me a while to figure out.

Add the label as it's still useful to support those links directly.


Research spike to check dev effort and advantages of using monorepo libraries

We need to look for these while researching monorepo libraries

Single package json for running command in multiple repos.
We need better management of dependencies across various repos in the project.
The Boilerplate for the code sharing among the repos should be moved to the monorepo library.
Some out-of-box advantage of the improvement in the build system (by caching)

Nx is preferable as it is already used in CL.

Most of the Nx features are not useful for us as they are used for managing large monorepos which have interdependencies on each other. The only features which will be useful are
Caching task result
Enforcing module boundaries

@VivekFitkariwala Can we close this for now?


One of my Apple TV’s is not discovered during the pairing process

I have seven Apple TVs, and for some reason, only one of the seven is not discovered during the pairing process.  They are all hardwired and Airplay settings/permissions are set to everyone.  I’ve restarted everything multiple times to no avail.

@ahwman Which version are you running?

v0.3.1-beta.2

So to keep all the informations together ... @ahwman and me were chatting on reddit about this issue. Here is the conversation:
@ahwman

Hi there,
Regarding the issue with one of my ATV’s (latest HD model) not being found, I can’t put my finger on why just this one isn’t being discovered. I have a total of 7 ATV’s and all but this one have been discovered by the plugin. All are hard wired…

@maxileith

Is this your only Apple TV HD and the others are all 4K?

@ahwman

No, I have 2 other HD’s that were discovered and are working fine.

@maxileith

Check in the AirPlay settings of your Apple TV if the access is set to everyone or Anyone in the same network

@ahwman

AirPlay is set to everyone.

@maxileith

Can you send me the output of /var/lib/homebridge/appletv-enhanced/.vent/bin/atvscript scan? where /var/lib/homebridge is the storage path of your homebridge. It is probably different since you are on Mac. You can see it on the dashboard.

@ahwman

I  don’t see a file named atvscript in the following path: /Users/<username>/.homebridge/appletv-enhanced/.venv/bin
[...]
I’ve honestly scoured my hard drive and just cannot locate this file. How frustrating. Could it possibly be named something different on Mac?

@ahwman the atvscript really has to be in the path /Users/<username>/.homebridge/appletv-enhanced/.venv/bin. Could you please enable debug mode on your Homebridge, then restart. There will be a log message like Set atvscript path to "/Users/<username>/.homebridge/appletv-enhanced/.venv/bin".. This is the location of your atvscript.

I enabled logging on Homebridge as you suggested, and found the following line in the log files, which happens to be the missing Apple TV. Any ideas?
E3A1DB34-2984-4976-AA4B-5FB748A94117 is not a MAC-Address. Master Bedroom Apple TV (<IP_ADDRESS>) is therefore skipped.

Closing since this issue is a duplicate of #20


WIP: Fixes in readme for proper "Getting started"

Hi! I found information about starting development in readme outdated. I added small changes:

[x] Comment out npm part in buildkite to make CI green
[x] Add dependencies installation via pip and requirements.txt
[x] Change readme bootstrap instructions
[ ] Make python part work in Mac OS X

I found few problems with pydsdl package. nunavat requires 1.4.0 and pyuavcan requires 1.2.0. I installed older version of nunavat to make it work, but I think this conflict should be resolved in nunavat and or pyuavcan. Without it simple pip install -r requirements.txt will not work properly.
I also struggled to run python part on Mac OS X but it's because of loopback interface aliases - it does not support wildcards for ifconfig. Need to figure it out.

I added 2 aliases for loopback interface:
sudo ifconfig lo0 alias <IP_ADDRESS> up
sudo ifconfig lo0 alias <IP_ADDRESS> up
sudo sysctl net.inet.ip.portrange.first=15000

After this I get error while running api/main.py:
>python src/api/main.py

Demo Backend process started!
Traceback (most recent call last):
  File "/Users/ionbuggy/.espressif/python_env/idf4.1_py3.7_env/lib/python3.7/site-packages/pyuavcan/presentation/_presentation.py", line 166, in make_subscriber
    impl = self._registry[Subscriber, session_specifier]
KeyError: (<class 'pyuavcan.presentation._port._subscriber.Subscriber'>, InputSessionSpecifier(data_specifier=MessageDataSpecifier(subject_id=32085), remote_node_id=None))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "src/api/main.py", line 58, in <module>
    get_event_loop().run_until_complete(main())
  File "/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/base_events.py", line 587, in run_until_complete
    return future.result()
  File "src/api/main.py", line 40, in main
    monitor = Monitor()
  File "/Users/ionbuggy/projects/lab/Yukon/src/yukon/backend/src/api/controllers/nodes/__init__.py", line 209, in __init__
    self._node = pyuavcan.application.Node(presentation, node_info)
  File "/Users/ionbuggy/.espressif/python_env/idf4.1_py3.7_env/lib/python3.7/site-packages/pyuavcan/application/_node.py", line 43, in __init__
    self._heartbeat_publisher = pyuavcan.application.heartbeat_publisher.HeartbeatPublisher(self._presentation)
  File "/Users/ionbuggy/.espressif/python_env/idf4.1_py3.7_env/lib/python3.7/site-packages/pyuavcan/application/heartbeat_publisher.py", line 78, in __init__
    self._subscriber = self._presentation.make_subscriber_with_fixed_subject_id(Heartbeat)
  File "/Users/ionbuggy/.espressif/python_env/idf4.1_py3.7_env/lib/python3.7/site-packages/pyuavcan/presentation/_presentation.py", line 306, in make_subscriber_with_fixed_subject_id
    queue_capacity=queue_capacity)
  File "/Users/ionbuggy/.espressif/python_env/idf4.1_py3.7_env/lib/python3.7/site-packages/pyuavcan/presentation/_presentation.py", line 169, in make_subscriber
    transport_session = self._transport.get_input_session(session_specifier, self._make_payload_metadata(dtype))
  File "/Users/ionbuggy/.espressif/python_env/idf4.1_py3.7_env/lib/python3.7/site-packages/pyuavcan/transport/udp/_udp.py", line 201, in get_input_session
    self._setup_input_session(specifier, payload_metadata)
  File "/Users/ionbuggy/.espressif/python_env/idf4.1_py3.7_env/lib/python3.7/site-packages/pyuavcan/transport/udp/_udp.py", line 277, in _setup_input_session
    sock=self._network_map.make_input_socket(udp_port, expect_broadcast),
  File "/Users/ionbuggy/.espressif/python_env/idf4.1_py3.7_env/lib/python3.7/site-packages/pyuavcan/transport/udp/_network_map/_ipv4.py", line 140, in make_input_socket
    s.bind(('', local_port))
OSError: [Errno 48] Address already in use

Any ideas how to fix it?

I added 2 aliases for loopback interface:
sudo ifconfig lo0 alias <IP_ADDRESS> up
sudo ifconfig lo0 alias <IP_ADDRESS> up
sudo sysctl net.inet.ip.portrange.first=15000

After this I get error while running api/main.py:
>python src/api/main.py

Demo Backend process started!
Traceback (most recent call last):
  File "/Users/ionbuggy/.espressif/python_env/idf4.1_py3.7_env/lib/python3.7/site-packages/pyuavcan/presentation/_presentation.py", line 166, in make_subscriber
    impl = self._registry[Subscriber, session_specifier]
KeyError: (<class 'pyuavcan.presentation._port._subscriber.Subscriber'>, InputSessionSpecifier(data_specifier=MessageDataSpecifier(subject_id=32085), remote_node_id=None))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "src/api/main.py", line 58, in <module>
    get_event_loop().run_until_complete(main())
  File "/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/base_events.py", line 587, in run_until_complete
    return future.result()
  File "src/api/main.py", line 40, in main
    monitor = Monitor()
  File "/Users/ionbuggy/projects/lab/Yukon/src/yukon/backend/src/api/controllers/nodes/__init__.py", line 209, in __init__
    self._node = pyuavcan.application.Node(presentation, node_info)
  File "/Users/ionbuggy/.espressif/python_env/idf4.1_py3.7_env/lib/python3.7/site-packages/pyuavcan/application/_node.py", line 43, in __init__
    self._heartbeat_publisher = pyuavcan.application.heartbeat_publisher.HeartbeatPublisher(self._presentation)
  File "/Users/ionbuggy/.espressif/python_env/idf4.1_py3.7_env/lib/python3.7/site-packages/pyuavcan/application/heartbeat_publisher.py", line 78, in __init__
    self._subscriber = self._presentation.make_subscriber_with_fixed_subject_id(Heartbeat)
  File "/Users/ionbuggy/.espressif/python_env/idf4.1_py3.7_env/lib/python3.7/site-packages/pyuavcan/presentation/_presentation.py", line 306, in make_subscriber_with_fixed_subject_id
    queue_capacity=queue_capacity)
  File "/Users/ionbuggy/.espressif/python_env/idf4.1_py3.7_env/lib/python3.7/site-packages/pyuavcan/presentation/_presentation.py", line 169, in make_subscriber
    transport_session = self._transport.get_input_session(session_specifier, self._make_payload_metadata(dtype))
  File "/Users/ionbuggy/.espressif/python_env/idf4.1_py3.7_env/lib/python3.7/site-packages/pyuavcan/transport/udp/_udp.py", line 201, in get_input_session
    self._setup_input_session(specifier, payload_metadata)
  File "/Users/ionbuggy/.espressif/python_env/idf4.1_py3.7_env/lib/python3.7/site-packages/pyuavcan/transport/udp/_udp.py", line 277, in _setup_input_session
    sock=self._network_map.make_input_socket(udp_port, expect_broadcast),
  File "/Users/ionbuggy/.espressif/python_env/idf4.1_py3.7_env/lib/python3.7/site-packages/pyuavcan/transport/udp/_network_map/_ipv4.py", line 140, in make_input_socket
    s.bind(('', local_port))
OSError: [Errno 48] Address already in use

Any ideas how to fix it?

I think @thirtytwobits was having the same problem in MacOS. The suggestion I gave him was the same you tried, but I am not a Mac user so I can't dig into the problem properly.

As we discussed with Nuno earlier today, it might be better to switch to the serial transport instead of UDP for demo purposes, at least on macOS, unless this problem is resolved.
We test UAVCAN/UDP on localhost in the CI against Windows and GNU/Linux; it's odd that the problem is unique to macOS. @arrowcircle maybe it's worth asking for help on stackoverflow?

As we discussed with Nuno earlier today, it might be better to switch to the serial transport instead of UDP for demo purposes, at least on macOS, unless this problem is resolved.
We test UAVCAN/UDP on localhost in the CI against Windows and GNU/Linux; it's odd that the problem is unique to macOS. @arrowcircle maybe it's worth asking for help on stackoverflow?

Is changing transport for demo node in the scope of this PR?

Is changing transport for demo node in the scope of this PR?

Probably not, it's just something to keep in mind.


feat: OPTIC-3: Enable users to submit and pause their lead time by returning to the dm list

Hi @Travis1282!
This PR was created in response to a PRs in upstream repo:

https://github.com/HumanSignal/dm2/pull/225
https://github.com/HumanSignal/label-studio-frontend/pull/1541

To enable Auto Merge for this PR also merge those PRs:

https://github.com/HumanSignal/dm2/pull/225


4.2.1 Active tab color in iOS issue

Originally posted by @ionic-issue-bot in https://github.com/ionic-team/ionic/issues/14758#issuecomment-425650599

Thanks for the issue. There's not enough information here for me to give you a solution, but I imagine you're running into one of the following problems:

Not being able to set the color attribute on ion-tabs in latest (4.0.0-beta.13), duplicate of https://github.com/ionic-team/ionic/issues/15942

Fixed by adding an ion-tabbar (which will become ion-tab-bar in 4.0.0-beta.14).
See https://github.com/ionic-team/ionic/pull/16048 and https://github.com/ionic-team/ionic/blob/master/core/src/components/tab-bar/readme.md

Not being able to change the active color of the text using CSS variables, duplicate of https://github.com/ionic-team/ionic/issues/15559

Will be fixed in 4.0.0-beta.14 by https://github.com/ionic-team/ionic/pull/16003

I am going to close this issue since it is missing the issue template and there is not enough information for us to investigate, but if you are not running into one of the above issues please open a new issue with as much information as possible for us to reproduce the problem. Thanks!


Support multidimensional (nested) arrays

In our application during registration a user can select multiple option. These options are stored in a multidimensional array. We want to be able to get the value of each field in the given path.
Take for example the following document:
{
  field_1: "tagValue1",
  field_2: [
    { label : "label_1", value: "value_1" },
    { label : "label_2", value: "value_2" },
    { label : "label_3", value: "value_3" },
  ]
}

From this we want to extract field_1 and every value of field_2. The end result will look like this:
{
  tags: [
    { name: "tagValue1", status: "active" },
    { name: "value_1", status: "active" },
    { name: "value_2", status: "active" },
    { name: "value_3", status: "active" },
  ],
}

The value for memberTags will look like this: ["tag_data.field_1", { path: "tag_data.field_2", key: "value" }].

Hey! Thank you for the pr, I've forwarded it to the relevant teams. Unfortunately I don't have access to request specific reviewers in this repo so it's up to them

Hi @saifbechan ,
I am on parental leave until the new year, so I'll pass this along to my colleague but I have some thoughts.
Firstly, thank you for contributing! We've been looking at expanding the config formats for different types (such as outlined here), to support greater feature sets, and this looks in line with that.
For the overall approach, I think you're on the right track. However, I'd prefer:

The config property names to be explicit, e.g path to be mailchimpTagPath and key to be keySelector
The implementation should not be tied so tightly to multidimensional arrays, e.g.["tag_data.field_1", { mailchimpTagPath: "tag_data.field_2" }]

should be equivalent to["tag_data.field_1", "tag_data.field_2" ]

I'll add some inline comments that should help with this too.

Can you please also update the destination branch to release/0.5.0?

@barticus thanks for the feedback. Will work on these changes soon.

Hi @saifbechan , I have implemented your requested changes as part of #53 . Happy for you to provide feedback, please let me know if this solution works for you, but it should as I modelled it from your problem description.
Regards.

Hi @saifbechan , after some consideration I altered the implementation for this sort of problem. Instead of requiring additional configuration elements, I've integration a JMESPath library which means, for your earlier example document:
{
  field_1: "tagValue1",
  field_2: [
    { label : "label_1", value: "value_1" },
    { label : "label_2", value: "value_2" },
    { label : "label_3", value: "value_3" },
  ]
}

In order to extract the tag values of ["value_1", "value_2", "value_3"], your memberTagsConfig will only need to be:
{ "memberTags": ["field_2[*].value"], "subscriberEmail": "emailAddress" }

This is implemented in the newly launched 0.5.0 release from PR #58


New Message without explictly set correlation_id AND message_id fails when sent

I'm working with the the send_d2c_message.py from the samples folder.
If I don't explicitly set the correlation_id AND the message_id of the message the message fails to send.  Is this behavior by design or a bug?    If one or the other is set it works fine.
Calling send_d2c_message with just a message payload works just fine.  I'm trying to add custom_properties to my message and discovered this behavior.
I can provide logs if needed.

We are looking into it.

This bug has been fixed in the latest release, 2.0.0-preview.9 (9919643), now available on pip

Your fix did the trick.   Thanks for the quick turnaround @olivakar @cartertinney.


Update multiline static Labels with 1.5 pitch. It can be done with a non simplify rich text

Updated


Can skywalking monitor hystrix?

Please answer these questions before submitting your issue.

Why do you submit this issue?
[x] Question or discussion
[ ] Bug
[ ] Requirement
[ ] Feature or performance improvement

Question

What do you want to know?
Can skywalking monitor hystrix?
If skywalking is available, can you provide the corresponding document?

Bug

Which version of SkyWalking, OS and JRE?

Which company or project?

What happen?
If possible, provide a way for reproducing the error. e.g. demo application, component version.

Requirement or improvement

Please describe about your requirements or improvement suggestions.

I can't find the relevant documentation

Can skywalking monitor hystrix?

please refer to the supported-list

I can't find the relevant documentation

@M-make please, documentations definitely exist, please [search](https://github.com/apache/skywalking/search?q=hystrix] before opening an issue


add some tests for RpcUtils

What is the purpose of the change
add some tests for org.apache.dubbo.rpc.support.RpcUtils
Brief changelog
test RpcUtils.getReturnType
test RpcUtils.getParameterTypes
test RpcUtils.getMethodName
Verifying this change
Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Make sure there is a GITHUB_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GITHUB issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Format the pull request title like [Dubbo-XXX] Fix UnknownException when host config not exist #XXX. Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Run mvn clean install -DskipTests=false & mvn clean test-compile failsafe:integration-test to make sure unit-test and integration-test pass.
[ ] If this contribution is large, please follow the Software Donation Guide.

Codecov Report

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

@@             Coverage Diff              @@
##             master    #5844      +/-   ##
============================================
+ Coverage     61.15%   61.21%   +0.06%
  Complexity      497      497
============================================
  Files           981      981
  Lines         39137    39137
  Branches       5643     5643
============================================
+ Hits          23934    23959      +25
+ Misses        12572    12537      -35
- Partials       2631     2641      +10

Impacted Files
Coverage Δ
Complexity Δ

...he/dubbo/remoting/transport/netty/NettyServer.java
70.17% <0%> (-3.51%)
8% <0%> (-1%)

.../remoting/transport/netty4/NettyServerHandler.java
56.81% <0%> (-2.28%)
0% <0%> (ø)

.../dubbo/remoting/transport/netty4/NettyChannel.java
65.34% <0%> (-1%)
0% <0%> (ø)

...g/apache/dubbo/registry/consul/ConsulRegistry.java
62.11% <0%> (ø)
30% <0%> (ø)
:arrow_down:

...rg/apache/dubbo/common/timer/HashedWheelTimer.java
63.1% <0%> (+0.34%)
0% <0%> (ø)
:arrow_down:

...a/org/apache/dubbo/monitor/dubbo/DubboMonitor.java
89.52% <0%> (+2.85%)
17% <0%> (+1%)
:arrow_up:

...c/main/java/org/apache/dubbo/rpc/RpcException.java
83.33% <0%> (+3.33%)
0% <0%> (ø)
:arrow_down:

...dubbo/remoting/exchange/support/DefaultFuture.java
79.31% <0%> (+4.31%)
0% <0%> (ø)
:arrow_down:

.../apache/dubbo/rpc/protocol/AsyncToSyncInvoker.java
79.16% <0%> (+8.33%)
0% <0%> (ø)
:arrow_down:

...he/dubbo/common/threadpool/ThreadlessExecutor.java
63.04% <0%> (+10.86%)
0% <0%> (ø)
:arrow_down:

... and 1 more

Continue to review full report at Codecov.

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


Beta test, release 2.2 (first release candidate)

Welcome to the beta test of version 2.2!
I've just released the first version release candidate for 2.2.
It means the scope of the version is now closed, and we will only do bugfixes/translation update until official release.
Please enter one new issue for each problem you see, with as many details as possible regarding the way to reproduce it. Screenshots are very welcome.
Version has been officially pre-released here:
https://github.com/NPBruce/valkyrie/releases/tag/prerelease%2F2.2%2Fv2.2.00b
The changelog can probably be improved.
If you are ready to help on this, please raised you hand :)

#1065 is a deal breaker for release.

I like this prompt for Descent!

Second beta test release incoming.
Closing this one


Bump golangci-lint version

Changes

:broom: Bump golangci-lint version so it works with newer Go version. The older version was getting OOM with newer Go.
NOTE: this might introduce new warning in knative projects, we will have to update them accordingly.

/cc @dsimansk

/approve
/lgtm


Fix typo in key bindings

This fixes a typo for a minibuffer keybinding.
@hlissner *-char and *-word commands in this section are generally mixed up, please let me know if I should include the fix to them as well.

Good catch! Thanks for the fix!

*-char and *-word commands in this section are generally mixed up, please let me know if I should include the fix to them as well.

Actually, those swaps were intentional because most evil motions utilize the ctrl key far more than meta, so having these two stand out was a bit confusing, especially when they get used more than their single-character counterparts. What do you think? Is that too jarring a departure from their original functions?

Well, that's a bit unexpected. I never use the arrow keys, so c-f/m-f/c-b/m-b is a kind of a muscle memory. And in case of the minibuffer I don't switch to command mode (because esc simply closes the minibuffer), so using good old emacs keys. And when you first try m-f, that's fine because you can reach any position by walking single char at a time. But when you try c-f and it jumps between words, it's not really clear how to move to a char


[Core] Remove unnecessary checks for ERR_INDEXs in error_macros.h

Removed an unnecessary check for m_index. Instead, I made the number convert to an unsigned type, where numbers smaller than zero will become very large, which will definitely be larger than m_size.
Before:
        test    eax, eax
        js      .L102
        cmp     DWORD PTR [rbx-8], eax
        jle     .L102

After:
        cmp     eax, DWORD PTR [rbx-8]
        jnb     .L102

Closing it because it's necessary to use a negative size somewhere.


PanResponder uses location of current component

Hi! Me again :sweat_smile:
Given how the PanResponder works, the position of the touch is calculated against the current component you're touching.
Because of this, when you drag a rating outside of its boundaries, the ratings get messed up:
https://github.com/kolking/react-native-rating/assets/26324703/b6abc988-9cb4-434c-bfa9-db945a6e796e
This behaviour is explained in this issue. There is a PR from the official react native slider that addresses this: #221 sliding on track edge bugs
Do you think something similar could implemented here, so that the sliding works regardless of the position of the rating?
Thanks a lot, and again, if I can help please let me know!

Hey Guglielmo! Thanks for writing the issue. It seems that I can't reproduce the bug, for me it works normal when the touch goes over the boundaries. When I move over the left edge it resets the value - this is the expected behaviour, when I move over the right edge it holds until the touch released - this is also the expected behaviour.
https://github.com/kolking/react-native-rating/assets/4656448/407b27bc-425c-4433-bb9d-70efba0d1936
This is the full code of my test:
import React, { useCallback, useState } from 'react';
import { StyleSheet, Text, View } from 'react-native';
import { Rating } from '@kolking/react-native-rating';

const App = () => {
  const [rating1, setRating1] = useState(3.5);
  const [liveRating1, setLiveRating1] = useState(0);

  const handleChange1 = useCallback(
    (value: number) => {
      setRating1(Math.round((rating1 + value) * 5) / 10);
      setLiveRating1(0);
    },
    [rating1],
  );

  const [rating2, setRating2] = useState(3.5);
  const [liveRating2, setLiveRating2] = useState(0);

  const handleChange2 = useCallback(
    (value: number) => {
      setRating2(Math.round((rating2 + value) * 5) / 10);
      setLiveRating2(0);
    },
    [rating2],
  );

  return (
    <View style={styles.root}>
      <View style={styles.frame}>
        <Rating size={22} rating={rating1} onMove={setLiveRating1} onChange={handleChange1} />
        <Text style={styles.text}>{liveRating1 || rating1} out of 5</Text>
      </View>
      <View style={styles.frame}>
        <Rating size={22} rating={rating2} onMove={setLiveRating2} onChange={handleChange2} />
        <Text style={styles.text}>{liveRating2 || rating2} out of 5</Text>
      </View>
    </View>
  );
};

const styles = StyleSheet.create({
  root: {
    flex: 1,
    flexDirection: 'row',
    alignItems: 'center',
    justifyContent: 'center',
  },
  frame: {
    padding: 10,
    borderWidth: 1,
    borderColor: 'red',
    alignItems: 'center',
  },
  text: {
    fontSize: 15,
    marginTop: 10,
  },
});

export default App;

Thanks a lot for taking the time to look into this. I will try to run your test app and see how it goes, perhaps I have some outdated package.

I tried to run your exact code in an Expo app, and I'm still getting the issue:
https://github.com/kolking/react-native-rating/assets/26324703/c3deedc0-2431-4a7d-82fc-fc9181d453e5
This is on expo 49 and RN 0.72.6
I wonder if this has to do with the android implementation.

Probably it's an Android thing then, because I've tested on iOS. Unfortunately, I can't run it on Android now, will do my best to reproduce at the next week.

Thanks! I don't have an iPhone nor a Mac at hand so I cannot test it on iOS. Let me know if you manage to reproduce on Android (no rush)

Probably it's an Android thing then, because I've tested on iOS. Unfortunately, I can't run it on Android now, will do my best to reproduce at the next week.

Yeah, this is an Android specific issue, quite annoying, I encountered the same several days ago.
It's pretty easy to reproduce, just move your finger onto another touchable element, then you will find that locationX and locationY are all messed up 😅
Hope this will help you.

@GuglielmoFelici, @finejuice thank you guys for pointing the issue to me. Just published v1.3.0 with a fix. I'd appreciate if you could test the new version and let me know if it works for you as well.

I believe the issue is fixed now. Feel free to reopen it if not.

@kolking thanks a lot for looking into this. Sorry for the late reply but I've been abroad the past week. I'll reopen the issue if I encounter it again.
Thanks and good job!


Allow console connection to paused VM

What this PR does / why we need it:
Until now console connection to paused VM was not permitted. This PR will allow serial and VNC console into paused VM. Console will be active after VM is unpaused.
This can be useful for debugging. In the future we can start VM with it's guest paused and debug guest OS boot issues.
Release note:

NONE

/retest

Thanks!
/lgtm

/retest

/retest


[BE] do not duplicate devices when added via API

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@e7e89be). Click here to learn what that means.
The diff coverage is 100%.

@@            Coverage Diff            @@
##             master      #36   +/-   ##
=========================================
  Coverage          ?   82.05%
=========================================
  Files             ?       31
  Lines             ?     1053
  Branches          ?        0
=========================================
  Hits              ?      864
  Misses            ?      189
  Partials          ?        0

Impacted Files
Coverage Δ

universal_notifications/serializers.py
98.11% <100%> (ø)

Continue to review full report at Codecov.

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


Error when doing pip install

Hi, there is this error when I run the command "pip install ddcci-plasmoid-backend" :
ERROR: Could not find a version that satisfies the requirement ddcci-plasmoid-backend (from versions: none)
ERROR: No matching distribution found for ddcci-plasmoid-backend

pip3 --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.5 LTS
Release:	20.04
Codename:	focal

As of version 0.1.5 only python 3.8 or later is required, so installing it should now work.


Mark asset_path calls as asset uses.

This copies assets referenced with asset_path into destination _site directory.

I do apologize, I forgot to thank you :heart:

Thank you for merging this quickly.

I always like to respond to people and problems as quickly as I can because it lets people know I truly care about my software and whether it works for them.


Wallet-Connect v1 switch chain bug

Overview
Broken Dapp https://thatsgnar.ly/ submitted to keepkey support by shapeshift dao member.
broken chain select flow
References and additional details
Steps to recreate:
pair to
https://thatsgnar.ly/edition/box-gap-to-tail-tap941
press "switch network to polygon"

ShapeShift Fails to switch networks
Gnarly shows error:

(this error does not show on kk desktop) desktop handles network swtich without error
error in ss logs

    at C.send (index.ts:57:19)
    at X._sendRequest (index.ts:564:25)
    at async X.killSession (index.ts:411:23)
    at async WalletConnectBridgeProvider.tsx:194:5```

However, this bug was found debugging matic broadcasting on kkdesktop that is broke and I believe to be dapp side.

### Acceptance Criteria

n/a

### Need By Date

_No response_

### Screenshots/Mockups

_No response_

### Estimated effort

_No response_

with walletconnect v1 removed from the project, this is now resolved


running build_ext

(venv) D:\JoyVASA-main\src\utils\dependencies\XPose\models\UniPose\ops>python setup.py build install
running build
running build_py
running build_ext
error: [WinError 2] The system cannot find the file specified

Try this repository. If it does not help, let us know.


How to add encryption subkey when it doesn't have one

This is possibly a noob question.
I have a private key. I can inspect it and see if it isUsableForEncryption.
I want to add an encryption subkey if it's not there.
I can see this method:
public static SecretKeyRingEditorInterface modifyKeyRing(@Nonnull PGPSecretKeyRing secretKeys)
which says you can add a subkey.
Could you please give me a hint on how to add a subkey to a PGPSecretKeyRing?

Of course :)
Take a look at this example.
I would recommend using XDH on X25519 instead, and delegate ENCRYPT_COMMS + ENCRYPT_STORAGE to the key though.
So for you, the code would look like this:
        secretKey = PGPainless.modifyKeyRing(secretKey)
                .addSubKey(
                        KeySpec.getBuilder(KeyType.XDH(XDHSpec._X25519), KeyFlag.ENCRYPT_COMMS, KeyFlag.ENCRYPT_STORAGE)
                                .build(),
                        subkeyPassphrase,
                        protector)
                .done();

Those examples are great - I didn't realise.  Thanks so much Paul.

Sorry @vanitasvitae just a quick follow-up question: is it possible to generate a subkey based similar to the existing key? I'd need a new KeyType & then I could build another spec, though I don't see a simple way.
OR - would you recommend not doing that and just use XDH on X25519?
Thanks & feel free to close :)

Hey @Jerbell, sorry for the late response.
There is currently no comfortable method to chose a KeyType based on a given key.
I'm also not sure if it is possible/sensible to create such a method. Consider for example a key which only has an elliptic curve primary key using ECDSA and you want to add an encryption key. What algorithm should such a method choose? ECDH? XDH?
I'd argue, its up to the application developer (aka you ;P) to decide.
There is a number of KeyTypes already predefined, those should cover everything you need.
For example, using KeyType.RSA(RsaLength._4096) you could specify the subkey to be a 4096 bit RSA key.
KeyType.ECDSA and KeyType.EDDSA are for signing/certification, while KeyType.ECDH and KeyType.XDH are for encryption. KeyType.RSA can be used for both and the other options aren't recommended.
For encryption I personally would recommend either XDH on X25519, or RSA with at least 3072 bits (better 4096).
For signing or certification I'd use EdDSA with Ed25519 or RSA.
Do you miss some specific algorithm?

Thanks for the explanation. My knowledge in this area is probably 10% or yours :)
We are actually matching KeyType.XDH(XDHSpec._X25519) with KeyType.EDDSA(EdDSACurve._Ed25519) in our UI code, so we are already doing something like this.
Thanks again!


feat: Introduce new GitHub Actions workflow for release preparation

This PR introduces a new GitHub Actions workflow for preparing a new release of the SAP Cloud SDK for Java. The new workflow is designed to automate the process of bumping the version number, running continuous integration, creating a GitHub release, and creating PRs for JavaDocs and release notes updates. The PR also includes several new GitHub Actions for specific tasks within the workflow, such as waiting for a workflow to complete and triggering a workflow.
The changes in this PR are related to the following backlog items: #318 and #196
Changes

Added a new GitHub Actions workflow for preparing a release.
Added several new GitHub Actions for specific tasks within the workflow.
Updated the release notes template.
Removed the old GitHub Actions workflow for building the project.

Test run

Workflow run
PR created

Notes for Reviewers

Please review the new workflow and the associated actions to ensure they are correctly configured.
Please review the changes to the release notes template to ensure they are appropriate.
Please check the different git config accounts, could it be streamlined?

Continued in #259


fixed maven warning

Codecov Report

Merging #16 into develop will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             develop      #16   +/-   ##
==========================================
  Coverage      80.37%   80.37%
  Complexity       164      164
==========================================
  Files             49       49
  Lines            581      581
  Branches          14       14
==========================================
  Hits             467      467
  Misses           109      109
  Partials           5        5

Continue to review full report at Codecov.

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


Feature/issue-1924

@ashwinGokhale has signed the Individual Contributor License Agreement. Thanks so much

most people won't go through the trouble of looking at the EnrichedEvent class to find out which property they want to use

No, we would point them at the official docs for the enriched event model:
https://github.com/snowplow/snowplow/wiki/canonical-event-model
The limiting factor here I think is more that people might want to partition on e.g. a user identity in a custom context, and this PR wouldn't let you do this. Still, I think this is a good first phase of functionality.

I still don't like this approach of using reflection and finding some property based on a name, the main reason being it's really expensive: we're reflecting and we're going over all fields of EnrichedEvent for every single event we enrich.
Surely, most of the fields wouldn't make good candidates for a partition key and a limited number would. My current thinking is still around suggesting a limited set of potential fields that would make good partition keys.

Let's come up with a shortlist

Here's my shortlist, tell me what you think @alexanderdean :+1:

event_id
event_fingerprint
domain_userid
network_userid
user_ipaddress we should remove useIpAddressAsPartitionKey as part of this PR btw
domain_sessionid
user_fingerprint

One thing worth investigating would be the proportion of events where those fields are missing

List looks good @BenFradet !

@ashwinGokhale Could we refactor this PR to leverage this list and not reflection?

@BenFradet Sure

Integrated into #3274 , thanks!


Cloud flare fetch loop

Expected Behavior
Load Cloud flare for me to access app

Current Behavior
Infinitely looping the Cloud flare instead for unknown reasons

Possible Solution
Fix loop

Steps to Reproduce (for bugs)
Turn on the app, that's all

Context

Your Environment
Used on miui 13 and using latest release from a week ago

Version used:
Operating System version:

NHentai link (if relevant):

Uninstalling the latest version of the app
Installing version 2.9.4
Logging into my nHentai account
Updating to the latest version
Opening the app, closing it and clearing it's data
it works!!
remove the current version and install version 2.9.4
https://github.com/Dar9586/NClientV2/releases/download/2.9.4/NClientV<IP_ADDRESS>.Release.apk

Uninstalling the latest version of the app
Installing version 2.9.4
Logging into my nHentai account
Updating to the latest version
Opening the app, closing it and clearing it's data
it works!!
remove the current version and install version 2.9.4
https://github.com/Dar9586/NClientV2/releases/download/2.9.4/NClientV<IP_ADDRESS>.Release.apk

Uninstalling the latest version of the app
Installing version 2.9.4
Logging into my nHentai account
Updating to the latest version
Opening the app, closing it and clearing it's data
install version 2.9.4
https://github.com/Dar9586/NClientV2/releases/download/2.9.4/NClientV<IP_ADDRESS>.Release.apk

Uninstalling the latest version of the app Installing version 2.9.4 Logging into my nHentai account Updating to the latest version Opening the app, closing it and clearing it's data
install version 2.9.4 https://github.com/Dar9586/NClientV2/releases/download/2.9.4/NClientV<IP_ADDRESS>.Release.apk

Same loop

Nvm, it loaded after like 2 years

failed on miui14,but succeed on miui 12


delete keys in a key protect instance

2022/02/28 12:01:07 KeyprotectServiceOpertions error while deleting the key: kp.Error: correlation_id='f9597194-3e12-40b5-bb71-ba7258799271', msg='Conflict: Key could not be deleted: Please see `reasons` for more details (PROTECTED_RESOURCE_ERR)', reasons='[PROTECTED_RESOURCE_ERR: Key is protecting one or more cloud resources - FOR_MORE_INFO_REFER: https://cloud.ibm.com/docs/key-protect?topic=key-protect-troubleshooting#unable-to-delete-keys]'
2022/02/28 12:01:08 TypicalServiceOpertions DeleteResourceInstance, StatusCode:502 Crn:crn:v1:bluemix:public:kms:us-south:a/713c783d9a507a53135fe6793c37cc74:26d85457-3ebf-4ca3-b72a-1851a23dbcfe:: err:[409, Conflict] CONTAINS_ACTIVE_KEYS: Remove all keys before de-provisioning: Instance contains 1 active keys
(bigdata) bigdata $ iww --apikey G9OfcyVI1zV_xe1EBdDPm4wjTS1kNHeDHMS8ppEApq2i ls -g tmp
#Resource instances
# b2992b521512437185e150fce204413d ( tmp )
kms  log-analysis-kp - crn:v1:bluemix:public:kms:us-south:a/713c783d9a507a53135fe6793c37cc74:26d85457-3ebf-4ca3-b72a-1851a23dbcfe::
(bigdata) bigdata $

Added the Force:true option commit 1abbe407b0cb91cd49939b35f514fdd08408b7bc


Speeding up calculations

Hello!
This isn't so much an issue with your awesome algo. It's more a question of efficiency and speeding things up a little: how would I go about speeding up a very large calculation?
I have raised a question on SO and have also created a jsfiddle. I'd be very eager to hear what you think.
http://stackoverflow.com/questions/29413453/speed-up-simplex-algorithm
http://jsfiddle.net/Guill84/qds73u0f/
I am relatively new to the world of mathematical optimisation -is there a way the problem I have defined can be broken down into smaller chunks or 'reframed' to speed up the calculations? Or is there a reason why it is slow? Perhaps it isn't slow at all given what I am trying to do.
Kind regards (and yours very humbly)
G.

I cleaned out a piece of code that I think was holding it back. When I run your problem against it now on node.js, it clocks in at around 1.75s.

Hello Justin!
Hope all is well. First of all -thank you so much for looking into this issue.
I am not sure what I am doing wrong but I updated the solver.js script and the problem seems to be taking double the time now. I am obviously doing something wrong, since you have achieved an impressive calculation time.
My jsfiddle: http://jsfiddle.net/qds73u0f/2/
Am I missing something here? Am very excited about your algo and would be eager to see if it could handle even meatier problems still! Be excited to compare it to other algorithms (e.g. What'sBest!) Am loving the simplicity of the array that gets fed into the algo and the straightforward javascript application.
Kind regards and thank you for your time,
G.

Guillaume,
Thank you for the kind words.
I don't have a formal background in math or comp. sci., but wanted to solve
LP problems in the browser, so I created this. I just now added a hacky
performance test to the grunt file:
grunt speed

Running in node.js on my old computer, it takes around 1,725ms to go
through your problem on the first pass but 12,618ms to go through it on the
second. If you want to help clean up some of the code and figure out what
bottlenecks there are I would really appreciate it. I'll leave this issue
open until I can at least figure out why its taking so long on the second
run.
Just thinking as I type, but depending on your needs and how much bigger
your problem sets get something like GLPK would probably be a better fit.
Would would be nice though (probably a seperate project) is if you could
feed a JSON problem into this and have it spit out a file that an
industrial LP Solver could use.
On Fri, Apr 3, 2015 at 9:18 AM, Guillaume84<EMAIL_ADDRESS>wrote:

Hello Justin!
Hope all is well. First of all -thank you so much for looking into this
issue.
I am not sure what I am doing wrong but I updated the solver.js script and
the problem seems to be taking double the time now. I am obviously doing
something wrong, since you have achieved an impressive calculation time.
My jsfiddle: http://jsfiddle.net/qds73u0f/2/
Am I missing something here? Am very excited about your algo and would be
eager to see if it could handle even meatier problems still! Be excited to
compare it to other algorithms (e.g. What'sBest!) Am loving the simplicity
of the array that gets fed into the algo and the straightforward javascript
application.
Kind regards and thank you for your time,
G.
—
Reply to this email directly or view it on GitHub
https://github.com/JWally/jsLPSolver/issues/3#issuecomment-89301843.

Hello Justin!
Apologies for the delay, have just returned from my easter break.
I have also looked into the code but am struggling to understand why it bottlenecks so badly. What performances do you get when you don't run the problem in Node?
Kind regards,
G.

The biggest choke point looks like its coming from the big loop in the pivot function
        // for every row EXCEPT the target row,
        // set the value in the target column = 0 by
        // multiplying the value of all elements in the objective
        // row by ... yuck... just look below; better explanation later
        for (i = 0; i < length; i++) {
            if (i !== row) {
                pivot_row = tbl[i][col];
                for (j = 0; j < width; j++) {
                    tbl[i][j] += -pivot_row * tbl[row][j];
                }
            }
        }

On your model, every iteration of this takes about 55ms, and is called 135 times. I'm not sure how big of a hassle it would be, but I think there might be a speed enhancement if instead of using an array of arrays to store the tableau, I just went with a 1d Float32Array and treated it like a 2d array.
I was wrong earlier, when I run this in node on a 64 bit computer, it is indeed slow. On a 32bit, it takes about 1.7 seconds if you run your model cold; but ~13 seconds if you've run any other models before it.

Figured it out!
Changed the pivot function from above to this:
        // for every row EXCEPT the target row,
        // set the value in the target column = 0 by
        // multiplying the value of all elements in the objective
        // row by ... yuck... just look below; better explanation later
        for (i = 0; i < length; i++) {
            if (i !== row) {
                pivot_row = tbl[i][col];
                for (j = 0; j < width; j++) {
                    // No point in doing math if you're just adding
                    // Zero to the thing
                    if (pivot_row !== 0 && tbl[row][j] !== 0) {
                        tbl[i][j] += -pivot_row * tbl[row][j];
                    }
                }
            }
        }

On my 32 bit computer, this dropped the runtime on your problem from around 12 seconds to 0.6 seconds.


Send NFTs

Hi,
how would you send NFTs with the sdk?
Thank you :)

Hi,
there is a demo link for SDK usage, https://tanglepay.github.io/TanglePay-SDK/
and within the page there is an example for sending shimmer NFT,
the code snippet can be found within the source code of that demo page,
https://github.com/TanglePay/TanglePay-SDK/blob/main/index.html
hope this solves your problem.

Oh thank you. I only looked at the readme. My fault sry.


qt: Move qt to qt5.12

This patch is required to meta-boot2qt to QtAS-5.12.1 and meta-qt5 to 5.12.

higher priority to pelux since b2qt bbappends need to be patched
enabling of rocko for b2qt
adding examples for wayland to make debugging easier in neptune-dev image
Fixes and workarounds to build gstreamer and packagegroup-b2qt-embedded-qt5-toolchain-target

@gleugner we need some background story of this PR as personally I am not sure what you're trying to achieve besides trying to make it build on rocko, but the question is then: why is this going to master?


Adds missing comma to setup.py

Missing comma in setup.py causes a Syntax Error on line 22

I realised after opening this PR that there is another problem with the find_packages and marshmallow parts as well because it is not imported so I will close this PR and create a new one that fixes both of these problems.


Add/geo coordinates session

What's the purpose of this pull request?
The validateSession was not accepting and handling geoCoordinates for regionalization. At VTEX we can do a regionalization using zipCodes or geoCoordinates and that's a common scenarium when we are using seller Whitelabels because they're logistics are usually set up using geoCoordinates to improve precision.
How it works?
The geoCoordinate is saved at indexedDB:

//default session inside faststore.config.js

How to test it?
Pass the "geoCoordinates":{"latitude": {{Float}} , "longitude": {{Float}} } at the validateSession:

It also works for ZipCodes as before:

It's import to mention that we are using a market protocol latitude (north or south) always precedes longitude (east or west) but to call the checkout we have to invert the notations:

Starters Deploy Preview

Closing this PR to open 2 separates PR


⚠ Fortnite has degraded performance

In b3b2411, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1804 ms

Resolved: Fortnite performance has improved in 15aac44.


Remove MCC abbreviations in text content

"MCC URL" -> "Instance URL"
"Add to MCC workspaces" -> "Add to new workspaces"

Also update "MCC" mentions in README and CHANGELOG.

Also update "MCC" mentions in README and CHANGELOG.


Change wording for setting capabilities lists

Proposed changes
Update the wording for allow/deny approach for setting capabilities.

Yeah, I'm guessing everyone will find stuff like this here and there in docs and code 🙂


AsyncAPI spec v3 support in Java Spring template

Reason/Context
This Issue is used to track changes needed to support AsyncAPI v3. As a code owner, please edit this list of TODO tasks in order to properly track the progress 🙂 Once this issue is closed it means that v3 is now fully supported in this library.
Remaining tasks:

[ ] Update template to use parser v2, this is already supported by the generator by changing the apiVersion

I start slowly gather here tasks:

[ ] update template to use parser-js v3. It doesn't make much sense to migrate from v1 to v2 when v2 is outdated. The problem is in significant parser API change
[ ] support reply operation, follow to asyncapi/spec#981
[ ] probably most of all calls to channels() has to be changed to operations() with rewrite of underling code, because for program it's more important which operations should be made instead of which channels are defined. It may be sense to use channels() in Configuration class.
[ ] use channel.address() instead of channelName
[ ] no more hasPublish or hasSubscribe methods
[ ] operation now should work only like oneOf is several possible messages are listed (clarification of Parser API is required here)
[ ] any parameters of channel now could be only string type (clarification of Parser API is required here)

Are there any plans to address this?


when develop extension，can not delete the taskDefinitions  and has error: there is no registered task type 'hellotest'. Did you miss installing an extension that provides a corresponding task provider

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

VS Code Version: 1.85.2
OS Version:CentOS Linux 7 (Core)
Steps to Reproduce:
I want to develop  a extension sample for run a task, my step is :
1.define helloTaskProvider and register this TaskProvider in extension.ts

add taskDefinitions  in package.json, the type is 'hellotest'  and  I run and debug the extension successfully

but when I delete the code about this task in extension.ts and delete the taskDefinitions about this task  in package.json， and I click ”Tasks: Run Task“,it has error "error: there is no registered task type 'hellotest'. Did you miss installing an extension that provides a corresponding task provider?"

4 when  I delete the code about this task in extension.ts and keep taskDefinitions about this  task in package.json,the error disappear.
anyway, I can not delete the taskDefinitions about this  task in package.json any more，even if I do not need the task， because when I  delete the taskDefinitions  about this  task in package.json， the error "there is no registered task type 'hellotest'. Did you miss installing an extension that provides a corresponding task provider?"" must appear,

I think it should not be like this
### Tasks

VS Code Version: 1.85.2
OS Version:CentOS Linux 7 (Core)

this is the defination of  helloTaskProvider

what happens if you delete the code and restart vs code?

I delete the code and restart code ,and Press F5 to debugg, but the error still exist,even if I generate a new templete by "yo" tool， the error still exist when I debug,  like this

and I find the code in /root/.config/Code/User/History/-523cd043/9fxy.ts , including the task type 'hellotest'， does this cause the error？

I cannot reproduce, so I think somehow your file system cache is causing this


[beta] Define a namedtuple type to be returned from the split_match plugin API

The current interface expects a 7-tuple, which is quite messy. Defining a namedtuple class (with default values) somewhere in the linter module that plugins can instantiate with named kwargs would improve readability significantly.
Additionally, this change would be completely backwards-compatible since you can index namedtuples just like normal tuples in addition to attribute names. (To always work with those internally, a normal tuple could be converted internally using the * unpacking operator.)

I have opened a PR for the implementation of this enhancement request.
https://github.com/SublimeLinter/SublimeLinter3/pull/732
Maybe you want to have a look into it.


Better be an IO instead of being thaskin/thanathorn's puppet.

I'm know that this is derivative of โดนจูงจมูก and ไอ้แม้ว ไอ้ทอน but this is too funny to pass on.

The irony being the fact that the IO page in question was so freshly created lmao


Save column width when using column resize (Datagrid)

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

I apologize, for whatever reason it did not post my issue.
I am trying to request a feature where the column width can be saved on resizing it.

This demo shows how to save various settings including column width after resize:
https://blazor.radzen.com/datagrid-save-settings

Great!
Thanks for the info!


Subclassing when using CocoaPods

Hi!
I wanted to subclass BadgeSwift to add some custom default styling. But when i tried i got..

Cannot inherit from non-open class 'BadgeSwift' outside of it´s defining module.

I´m using CocoaPods. I guess this is just because of the missing open declaration.
Could we add this? Or is the class intentionally non-open?

Hi @r-dent, changed the methods to open in version 5. Thanks for your feedback!

Closing the issue. Feel free to reopen if needed.


⚠ GitLab Server has degraded performance

In af3f365, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 11735 ms

Resolved: GitLab Server performance has improved in 8706d86.


Add customizable metadata for peer awareness

What does this PR do?
Add customizable metadata for peer awareness. Currently the API only exposes client ID and there's no way to add extra information about the client during collaborative activities.
How should this be manually tested?
Any background context you want to provide?
This works around WatchDocuments rpc call. In the WatchDocumentsRequest I add a new meta field, where you could put whatever peer's metadata there. The metadata then passed along with the WatchDocumentsResponse.
What are the relevant tickets?
Fixes  https://github.com/yorkie-team/yorkie-js-sdk/issues/106
Related with https://github.com/yorkie-team/yorkie/issues/48
Checklist

[ ] Added relevant tests
[ ] Didn't break anything

We will continue this at #123.

We will continue this at #123.


POWER-KI

https://github.com/POWER-KI/POWER-KI

From the description it's an interesting language, but I'm not sure if it's safe or not. It's available on Softpedia. The homepage of it is not https. This makes me afraid.

Virustotal said it's safe, will reopen.

Thanks!


LMLO create order action

Add action to populate new order form from lost item.

http://stackoverflow.com/questions/12822604/pre-populating-a-form-field-from-a-link


[docs][base-ui] Renaming demos to BaseXxx

[x] I have followed (at least) the PR section of the contributing guide.

One iteration toward solving #38904.
Demos changed in this PR:

[x] Slider
[x] Button

Apologies for the clutter of merge and failed tests commits. I should be handling those locally, lessons learned.
I'll send up the remaining Button demo changes, and reach out for a 👍 so see if this is going down the right path.

Opted to leave UseButton, and UnstyledButtonCustom demos unchanged as they use 'CustomButtonXxx' naming and their docs seem to emphasize customization.

I seem to have broken this trying to figure out rebase and updating my feature branch, so for now I'm going to close it out.


Remove event router dependency on Reagent

The goal with this is to be able to run the event router without any UI. This should be possible by moving the Reagent specific code into callbacks that are passed into the router when starting it.

The only Reagent specific code that needs to be moved is the single use of next-tick in router.cljs, right?

Yep, the amount of code is trivial. The bigger question is how to make the interface generic so next-tick could be replaced with equivalent functionality from another rendering engine.

Not the most elegant solution, but it'll do for now. Hopefully something better emerges over time.


swift 4.2 update

Can the updates for swift 4.2 be pushed to the cocoapods spec repo?

Hello. Validator 3.1 has been published and is built on Swift 4.2 (Xcode 10). Apologies for the delay. https://cocoapods.org/pods/Validator

Thanks @adamwaite . :)


Quast configuration problem at ORG

http://toolshed.g2.bx.psu.edu/repos/iuc/quast/quast/5.2.0+galaxy1 -- errors
OSError: [Errno 30] Read-only file system: '/usr/local/lib/python3.9/site-packages/quast_libs/silva'
But http://toolshed.g2.bx.psu.edu/repos/iuc/quast/quast/5.2.0+galaxy0 is Ok.
Same run, test data, all defaults
Test history https://usegalaxy.org/u/jen-galaxyproject/h/test-quast

Probably a flavor of the same issue as https://github.com/ablab/quast/issues/235#issuecomment-1487502203


OverFlow

An Other questin shy
how to controll overflow the layout when runing this

Do you mean support for scrolling items in the flyout menu if there are a lot? If so, no, there's no such support. Sorry. No planned either - it's outside the simple scope of the project.


[UTable] Select/deselect all does not work in v-modeled tables

Environment

Operating System: Darwin
Node Version:     v18.19.1
Nuxt Version:     3.10.3
CLI Version:      3.10.1
Nitro Version:    2.8.1
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      auth, devtools, experimental, extends, googleFonts, imports, mdc, modules, pwa, routeRules, runtimeConfig, $development, tailwindcss, typescript, sourcemap, ui, vite
Runtime Modules<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Build Modules:    -

Version
v1.15.0
Reproduction
https://stackblitz.com/edit/nuxt-ui-d3n4vs?file=app.vue
Description
When using v-model on a UTable to make the table selectable, the checkbox that appears on the top (to select or deselect all) does not work. It is checked but the actual elements are not all selected or deselected.
Additional context
No response
Logs
No response

@ymansurozer The same code works in v2.15.0, or you can try upgrading to that version and see if it works

same problem

This should have been fixed in #1580 already and released in https://github.com/nuxt/ui/releases/tag/v2.15.1.


replace setup with hooks

https://github.com/sveltejs/kit/issues/334#issuecomment-806289525. Working on docs

The docs explain the changes: 04-hooks.md.
This should give us all the flexibility we need to create new endpoints programmatically (e.g. for auth), modify request/response headers, modify bodies, add custom logging, and so on. It should also be possible to use existing connect middleware via a compatibility layer, which is left as an exercise to the reader.

sorry for all the sarcastic things I was saying

i would hope for nothing less


about http-tls-cert

Hello brocaar:
I want to know func "mustGetHTTPHandler" create httpHandler is for grpc?
I don't have "http-tls-cert" and "http-tls-key" .  so the mustGetJSONGateway return err.

There is a documentation on how to create the keys here:
https://docs.loraserver.io/lora-app-server/api/#security-tls

@lihao0107new the TLS certificates are required. The technical reason behind it is that gRPC uses http/2 as a transport and Go only enables the http/2 server (which is shared with the REST api) when TLS is enabled.


Prometheus can't collect metrics from hubble-metrics using cilium hubble enable command

Hi, I caught an unexpected behavior during running cilium hubble enable to enable hubble and gather its metrics using Prometheus.
Bug report
General Information

Cilium CLI version: I checked both v0.12.11 and the master branch
Orchestration system version in use: v1.25.4
Platform / infrastructure information: Building on VMs using kubeadm (kubernetes v1.23.9)

How to reproduce the issue

Run cilium install with the options:

cilium install --helm-set prometheus.enabled=true --helm-set operator.prometheus.enabled=true

Then run cilium enable hubble with the options:

cilium hubble enable --ui --helm-set hubble.metrics.enabled="{dns,drop,tcp,flow,icmp,http}"

Hubble resources are deployed, and hubble-metrics service is created.
** Expected behavior **
Prometheus can access to hubble-metrics (by default, port 9965) and can gather metrics.
** Actual behavior **
Prometheus didn't collect any metrics from the endpoint.
The cause of the problem

The backend of hubble-metrics is the pod which has k8s-app=cilium (actually, this is cilium pods from cilium daemonset), and the target port is 9965 by default
However, the daemonset doesn't expose the 9965 port:

$ kubectl get daemonsets.apps -n kube-system cilium -o yaml | grep -A20 ports
        ports:
        - containerPort: 4244
          hostPort: 4244
          name: peer-service
          protocol: TCP
        - containerPort: 9962
          hostPort: 9962
          name: prometheus
          protocol: TCP
        - containerPort: 9964
          hostPort: 9964
          name: envoy-metrics
          protocol: TCP
        readinessProbe:
...

The cilium enable hubble command with --helm-set hubble.metrics.enabled={...} updates cilium-config configmap then restart cilium-xxx pods, and creates both hubble-peer and hubble-metrics service. However, it does not update cilium daemonset to add the port.
We can see the behaviors around this part of the code: https://github.com/cilium/cilium-cli/blob/master/hubble/hubble.go#L627-L665

As a result, because cilium pods don't expose their 9965 port, Prometheus can't collect metrics through hubble-metrics.

Proposal
In order to enable Prometheus for hubble using not only helm but also using cilium-cli, we should update cilium daemonset adding the port for hubble-metrics when we run cilium enable hubble.
I assume that the adding code is similar as updateConfigMap.

If the proposal is reasonable for you, I'd like to make a PR to fix the problem!

Thanks for the report!

If the proposal is reasonable for you, I'd like to make a PR to fix the problem!

It does seem reasonable to me and we'd sure have a look at a PR that fixes this issue!


fix: subscription annotation values

Not sure why theres all the proto changes though

Not sure why theres all the proto changes though

Issues with the rename unrelated to this PR

Closing this, ended up bring the changes into my own branch


Internationalization/Localization Support

From a brief overview, it looks like currently everything is hard-coded in English but one would want to use commento in sites which are not in English. This would require:

Localizing the UI strings (things like 'Post Comment' , 'Reply' etc.)
Formatting relative dates in a locale independent manner.
Maybe a config parameter can be added to force a particular locale or detect the browser's locale preferences with fallback to a default locale.

Also, currently there is some bug which causes the timestamp to be displayed as '-2 seconds ago' (note the minus sign) just as a comment is posted.

@AkshayAgarwal007 thanks for the issue!
I'm pretty sure I've fixed the '-2s seconds ago' issue with https://github.com/adtac/commento/pull/117 - it'll display 'just now' for comments that were posted less than 5 seconds ago (for which -2 definitely qualifies).
The localization support featuer is still up for grabs if anyone wants to implement!

@AkshayAgarwal007 Thanks a lot for the issue! This is definitely still possible.
We have, however, moved all development to GitLab. Therefore, this comment has been exported to https://gitlab.com/commento/commento-ce/issues/28 (with a link back to this issue for history). Cheers!


ci: bump luarocks-tag-release to v5

Fixes #1121

Ty @mrcjkb!

FYI, this prompted https://github.com/ibhagwan/fzf-lua/commit/cd966d7e556b91d56b2cf3582d1a5b4f937a8f0e so we now have auto-completion the command arguments (auto-generated from defaults):

It's also possible to supply nested options to the command such as:
:FzfLua files winopts.fullscreen=true


Fix tag balancing

Changes

fix: optional tags are ignored during balancing, i.e., well-balanced input will not be broken by attempting to close optional tags.
tag balancing logics simplified (accept closing tag as long as it exists in the stack)
ignore self-closing solidus, which is required only for foreign elements
added a cap to limit the max levels of unclosed/nested tags

before the fix
default x 0.64 ops/sec ±5.90% (6 runs sampled)
disabled tag balancing x 0.60 ops/sec ±3.82% (6 runs sampled)
Fastest is      [ 'default' ]
Speed/Time is   0.6423016849725829MB/s 1.5567777936666667s
after the fix
default x 0.72 ops/sec ±5.01% (6 runs sampled)
disabled tag balancing x 0.60 ops/sec ±3.91% (6 runs sampled)
Fastest is      [ 'default' ]
Speed/Time is   0.7190234217142741MB/s 1.3906654078333334s
it actually runs faster than without it using the given 1m file. so tag balancing doesn't seem to incur any significant performance hit.

@maditya, please check.

can we track updates to benchmark suite in a separate PR ?

ok. see https://github.com/yahoo/html-purify/pull/25

@maditya , as discussed, i optimized the code a bit, and imposed a cap on stack size.

@maditya, @adon-at-work
Please see http://jsperf.com/array-push-int-and-string for performance with various array push technique. Since we are having a whitelist of tags, I think we would prefer using integer (enum based) assignment to the tag list stack (array).
There may be other optimization techniques, please feel free to edit the jsperf test for such.

I see you're suggesting to deal with integers instead of tagName (string), and thanks for the detailed performance tests. :)
Right now, the tagName whitelist is like ['a', 'div', ...], and I'm aware of making use of the array indices as the integers we want.
Looking farther, it boils down to whether we'll support tag-specific attribute whitelist, e.g., href is whitelisted for <a> but not <div>, as in the current Mail or YIV use case. This will for sure affect the list structure. As a reference, secure-handlebars attempted to support similar tag-specific attribute matching by: https://github.com/yahoo/secure-handlebars/blob/master/src/parser-utils.js#L68-L70.
Hence, should we now keep the current implementation as is before settling the use case regarding tag-specific attribute whitelist and its required the list structure? And if the list structure really requires a change, let's do it in separate PRs.

The suggestion there is to avoid using Array.prototype.push as it is not optimized for the use case. Instead, keeping a counter of the stack size and use it to mimic the push and pop operation will give you a huge performance boost.
A further boost can be possible if we use enum based approach for identifying the tag name, as the space required for building the stack will be much smaller.
Please take the suggestion on avoiding use of array push as a basic requirement for the tag balancing stack. Once that's done, we should be able to relax the requirement of stack size limitation (e.g. grow it to 100,000) to some value that we would consider the input as totally malicious / invalid, and then just return error for the case.

I appreciate your suggestions, and indeed, thank you for a midnight comment. :+1:
But there has no more .push since 24 days ago. Such an optimization is completed in https://github.com/yahoo/html-purify/commit/fa24fa2ee3b184696e2f9f36a8a04cffc85dae31#diff-9c568acf92dc1a69fdd058c41195c719R121. You may like to confirm by clicking "Files Changed".
I personally think legitimate HTML won't nest more than a maximum of 100 levels. 100,000 sounds way too relax perhaps. Will you consider/accept 1,000 or 10,000?
Regarding "enum based approach for identifying the tag name", I also see its potential as you do. But could we not to do that in this PR before we finalize the enum/whitelist structure?

I would rather use some measurable metrics to determine the level. Could you provide a simple benchmark with nested tags with different levels, e.g. 100, 1000, 10000?
We will also need a doc (or MD) file that describes the actual tag balancing algorithm. The doc you sent me previously has too many open questions there. My preference is to have a document that clearly explains the algorithm, and we use the algorithm spec to validate if any future pull requests or bug fixes from any contributors would align with the design principles and security consideration of such.
It'd actually be much nicer if the commit https://github.com/yahoo/html-purify/commit/fa24fa2ee3b184696e2f9f36a8a04cffc85dae31 has come along with a description of the changes.

Looking farther, it boils down to whether we'll support tag-specific attribute whitelist, e.g., href is whitelisted for  but not , as in the current Mail or YIV use case. This will for sure affect the list structure. As a reference, secure-handlebars attempted to support similar tag-specific attribute matching by: https://github.com/yahoo/secure-handlebars/blob/master/src/parser-utils.js#L68-L70. Here, we may need a very different structure.

Hence, should we now keep the current implementation as is before settling the use case regarding tag-specific attribute whitelist and its required the list structure? And perhaps, (if the list structure really requires a change,) let's do it in separate PRs.

Agree that the matrix of allowable tags and attributes combination should come as a separate PR.

I would rather use some measurable metrics to determine the level. Could you provide a simple benchmark with nested tags with different levels, e.g. 100, 1000, 10000?

I'm not sure if I misunderstood.
I perceive that the cap is more related to what the norm is, for which no legit inputs will get truncated because of exceeding the cap. So, we should set a sufficiently big number. 100, 1000, 10000 all look reasonable to me. As long as the cap is not hit, 100 and 100,000 won't make a difference in terms of performance (stackPtr < 100 vs. stackPtr < 100000).
In fact, I'm confused about the relationship between the cap and anything related to benchmark, including the worst-case performance you sort of mentioned a while ago. Assume we've a 1m file. One can obviously tell the performance is even better once hitting the cap, as no further inputs will be consumed. In other words, say, we encountered 300KB (e.g.,  x 100) of tags that are so nested to hit the cap, then the remaining 9700KB of data will be ignored.
Determining that big enough number may sound magical, but more accurately it's very use-case specific. The best effort is to have it configurable as I did, and let users judge based on their needs. May be Mail never want to truncate people's emails to avoid complaints, then the number could be MAX of what a Number can hold.

We will also need a doc (or MD) file that describes the actual tag balancing algorithm. The doc you sent me previously has too many open questions there. My preference is to have a document that clearly explains the algorithm, and we use the algorithm spec to validate if any future pull requests or bug fixes from any contributors would align with the design principles and security consideration of such.

MD (or even comments inside the code) is good, since it can be included in this open-sourced project. The description on tag balancing in already included in the README.md. I'd very much appreciate if you could directly edit/improve/polish it over there. Thanks.

The description on tag balancing in already included in the README.md. I'd very much appreciate if you could directly edit/improve/polish it over there. Thanks.

We need more than a paragraph, and we need the algorithm rather than an overview. Without such, this pull request would not be accepted.

MD (or even comments inside the code) is good

Also, we would not accept source code comment as a proper documentation unless they are gathered in one big comment block. The reason is that it is very easy to overlook any potential new pull requests that may wipe a single line comment or moved certain code logic and mess up all the remaining comments. The requirement may not be necessary for other libraries, yet we try to set a higher bar to make this security library be more easier manageable.

please find the rebased changes. comments added too

please find the changes rebased to the latest master. comments added too. @maditya @yukinying


[debug] Testing thumbnail 41 (FREEZE)

[download] Downloading video 3 of 212
[debug] [youtube] Extracting URL: vaTa14fmNnM
[youtube] vaTa14fmNnM: Downloading webpage
[youtube] vaTa14fmNnM: Downloading android player API JSON
[debug] Sort order given by extractor: quality, height, fps, source
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, height, fps, source, res, vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, id
[debug] Testing thumbnail 41

Any way to get around this hang? Just sticks forever.
I have tried adding --no-write-thumbnail but does not fix. Any ideas are appreciated!

Use --no-check-formats to disable the checks. Note that this will write wrong thumbnail data to infojson.
Or, if you want the checking, but just want to make it timeout faster, set a small value for --socket-timeout


Ttf file metadata same name fix

Hi! This PR give us a possible solution to avoid a specific issues with TTF files with same  metadata value "face-name" .
In specific situations you may need to update the face-name of a ttf file,
you can do it by adding # at the beginning of the font-family name to select
the new face-name.
Check the following example:
 /* put in quotes and add # at the beginning */
@font-face {
font-family: '#MY';
 src: url('font/Microsoft YaHei.ttf')
 }

Coverage decreased (-0.02%) to 56.633% when pulling 897bd4641279a17ab95c4fa81f4d4bd4574f970f on pedroszg:ttf_file_metadata_same_name_fix into 5f2aaee6d119eb25b74c94382e5dad21d1bfb81e on xhtml2pdf:master.

Coverage decreased (-0.02%) to 56.633% when pulling 897bd4641279a17ab95c4fa81f4d4bd4574f970f on pedroszg:ttf_file_metadata_same_name_fix into 5f2aaee6d119eb25b74c94382e5dad21d1bfb81e on xhtml2pdf:master.


Include next permanent char(s) when maskChar is null

Related to https://github.com/sanniassin/react-input-mask/issues/59, this appears to be happening again.
Believe I covered all the fun edge cases when using escape characters in a mask. Happy to add more tests if you know of others.
This might also resolve #61. It does when maskChar is null but not sure about other maskChar values.

@sanniassin I pulled in your updates to fix Travis. Need me to do anything else?

Great job, thanks!


Provider not working when temporal frontend has TLS enabled

What problem are you facing?
Provider temporal is not able to connect to temporal frontend when it has TLS enabled.
How could Crossplane help solve your problem?
Add optional TLS configuration parameters and connection support.

Released here


KeyStore integrity check failed

Xamarin.Auth Issue
KeyStore integrity check failed.
App crashes when using Xamarin.Auth on Android.
Version
NuGet version 16.0.2
Steps to reproduce

Install 15.0.3
Compile, Publish and Run the App
Install 16.0.2
Compile, Publish and Run the App

You will now get "KeyStore integrity check failed" when looking at adb logcat
Platform: Android, tested on Galaxy S9+
Expected behaviour
Not crashing the app
Actual behaviour
App crashes with "KeyStore integrity check failed."
Workaround
Downgrade to 15.0.3

I'm also seeing this. I was upgrading to fix the KeyStore not initialized bug.

I just received this same error too using <IP_ADDRESS>. Thanks.

I am also receiving the same error, Please help.

@LokeshBhatt79 Downgrade to 15.0.3 for now.

This is a serious bug. Published an app to prod yesterday had main complains about app crashes, checked logcat and saw that ... Arf. So only way for now is downgrading and publish again I guess ?
Thanks for support.

Does this also happen with 1.6.0? I'm using netstandard and cannot revert to 1.5.x as it does not support it...

@Leobaillard
We also target NET Standard and there is no prob with 1.5. Have you got the fallback on NET 4.5?

I don't think I do. Do I just have to add  <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback> in the .csproj of the NET Standard library?

Yep should be enough.

I am facing same issue. The app crashes after upgrading new version from google play, new version is using <IP_ADDRESS>, original working version is 1.6.0.
I am using PCL in Xamarin Forms project. Any solution here?

#291

Fix has been "in progress" since 16 May.
What's going on?

Is downgrading Xamarin.Auth to 1.5.x the only temporary solution to this? Does that version cause the 'KeyStore was not initialized' and/or 'Uninitialized keystore' issue?

For now yes, staying at 1.5 is the only solution ... waiting for update and news of @moljac

1.5 still causes the 'KeyStore was not initialized' and/or 'Uninitialized keystore' issue.
Is manually deleting the app data a possible workaround, so that the keystore will be recreated and initialized correctly? We have users that are unable to login to our app.

That's strange, I only have this issue with ~1.6.0. Yes imho you can erase app data, should also work with 1.6.0 ... I tried to find a way to erase data manually (as I found out that it was fixing the prob)  but I did not dig into it. If you find a way, would be glad if you share :)

This is a huge bug. Thank god for QA checking migration scenario's... Any new on a fix for this.

@moljac 5 months since you said "fix in progress". Is Xamarin.Auth dead, or are you still maintaining it?

Hey folks, apologies for the inaction here.  We are going to address this particular issue very soon.
As Xamarin.Essentials nears release, I'd also like to encourage moving over to its Secure Storage API and away from Keystore in Xamarin.Auth which we intend to mark as obsolete/deprecated.

Xamarin.Auth <IP_ADDRESS> has now been published to Nuget

@Redth Is there a guide anywhere on the best way to migrate from xamarin.auth or xamarin.essentials secure storage? So you don't have to re-enter the credentials?
Thanks

I've written up a migration guide that includes a class to help with the data/code migration:
https://github.com/xamarin/Xamarin.Auth/wiki/Migrating-from-AccountStore-to-Xamarin.Essentials-SecureStorage

Thanks @Redth I will take a look!


Implement "Map it!" functionality

This will require consulting the corresponding Perl script, porting the relevant feature set, and opening up any appropriate configuration options for management through the UI.
This is also more of a placeholder issue that would be best broken down into component issues before actually implementing.

COMPLETE Move the "Map it!" management (use local vs. send to StackMap) set-up to GIFM Service
COMPLETE This would need to basically say "use StackMap for everything except" and then a list of exceptions
COMPLETE Exceptions would need a field for location code(s) followed by the URL to which the button should go
We would also want to be able to turn off Map it! as needed as we have learned this year.
COMPLETE We would need to make sure EDS can use the information for it's own button
Manage Map features through GIFM UI

Is this completed?


Separate game systems executions using SystemTag

Ensure collisions to be resolved just before draw.
Resolves: #137

Codecov Report

Merging #139 (0820170) into master (fbd4841) will decrease coverage by 0.07%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master     #139      +/-   ##
==========================================
- Coverage   17.88%   17.80%   -0.08%
==========================================
  Files         112      113       +1
  Lines        1605     1612       +7
  Branches      595      598       +3
==========================================
  Hits          287      287
- Misses       1183     1190       +7
  Partials      135      135

Impacted Files
Coverage Δ

src/game/Game.cpp
0.00% <0.00%> (ø)

src/game/Game.hpp
0.00% <ø> (ø)

src/ecs/system/SystemTag.hpp
20.00% <0.00%> (-5.00%)
:arrow_down:

src/game/map/Map.hpp
0.00% <0.00%> (ø)

Continue to review full report at Codecov.

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


[Dialog] When using open attribute to control dialog state, accessibility is broken

Bug report
Current Behavior

I would like to demonstrate a problem we face when using Dialog. For many reasons, you might want to close the dialog without using the <DialogPrimitive.Close asChild> approach. You need to close later, calling a method.
The only way you can do this is by controlling the open state of the dialog from the outside. The problem with this is that you lose all the default close behavior from the dialog and have to code all other things to make the dialog accessible again, like ESC key, auto close when clicking outside, <DialogPrimitive.Close asChild>, etc.
Expected behavior
The expected behavior is to keep consistency when opening a dialog and keep the <DialogPrimitive.Close> working along with the ESC key, or at least provide a way to export a method on the content to control the dialog behavior while keeping the internal state of open intact.

Reproducible example
Example with the Dialog sample
Suggested solution

I suggest we somehow export a method to control the state of the dialog open/close, the same way you can use the DialogPrimitive.Close.
I might be wrong, but what if we expose the onOpenToggle() https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/src/Dialog.tsx#L37 as a method with a proper name?
Additional context
Related discussion: https://github.com/radix-ui/primitives/discussions/1361
Your environment

N/A

Ah sorry, just saw your discussion before the issue, I've answered there already: https://github.com/radix-ui/primitives/discussions/1361#discussioncomment-3336817
I will close the issue but let me know if you need a bit more explanation.


Rename s3 arguments to avoid collision with s3 kwarg

The _S3 __init__ method allows an s3 variable to be passed containing the boto connection, but this variable name will collide with the s3 argument in subsequent append calls.
This resolves #463.

Thanks for the bug report and the fix!