[Feature Request] Contravariant generics (if feasible, but maybe infeasible)

So there I was, happily humming a tune while beartype slays the typing demons of type-tetris' past... and, suddenly:
import beartype.door.TypeHint as th
import beartype.typing as bt

E_ID = bt.Union[int,str]  # Entity ID's
DataType = bt.TypeVar('DataType', bound=bt.Optional[bt.Iterable], contravariant=True)
Entity = bt.Tuple[E_ID, DataType]  # So (valid_id, (some_data1, some_data2, ...))

OK, now add some spice...
class Fake(bt.NamedTuple):
    name:str
    kind:str
    velocity:float

MyFakeEntity = Entity[Fake]

and test them all:
(th(Entity).is_bearable(('hi',(2,3,4))),  # this should work
 th(Entity).is_bearable((1.20,(2,3,4))),  # 1.2 is not an E_ID
 th(Entity).is_bearable((0,None)))        # Entity data is optional
 th(MyFakeEntity).is_bearable((0,Fake('n1', 'bob',2.5))),  # is a "fake"
 th(MyFakeEntity).is_bearable((0,('n1', 'bob',2.5)))       # technically not a "fake"
)

(True, False, True, False, False)
... wait a minute...?
Obviously without the contravariant=True I get a True, False, as expected. But in my case, entities are just consumers of their datatype, like "tagging protocols". So if data iterable type B is a subclass of iterable type A, and I can tag arbitrary iterables with EntityA, and only special Fake iterables with EntityB, EntityA should be allowed anywhere EntityB is expected (EntityA is a subtype of EntityB).
All this is to say, I did a quick ctrl+F on that glorious readme of yours, and lo-and-behold, contravariant is mentioned... in the table as "not supported"! :sweat_smile: And... I didn't see any open issues for the feature request. If this isn't a good place for that, let me know!

Glorious request is glorious! Yes, contravariant type variables is absolutely in @beartype's wheelhouse (Which increasingly resembles an API pigsty). Let's add this to the back burner with firm and resolute promises that we will do something about this, we solemnly swear it, even as we wring our hands in supplication towards the increasingly unruly unwashed masses yearning to type free userbase.
Oh – and the fourth item of the tuple of is_bearable() return booleans you listed above should be True, right? At least under Python 3.11, this is what I get:
(True, False, True, True, False)

Is that right?
Hidden Horrors Lurk off the Long-Forgotten Shores
Lastly, we need to discuss the disgustingly huge alien megastructure hiding in the room.
Thanks to the fact that PEP 484 and thus PEP 484-compliant type variables were never intended to actually be used by anyone at runtime, this may not be feasible. Specifically, subscripting a type hint subscripted by one or more type variables destructively replaces those type variables with their substituted type hints at runtime. The original type variables cannot be recovered from those type hints at runtime, because those type variables have been replaced by the typing module (or low-level C machinery) by the time @beartype sees those type hints.
That is to say, the type hint MyFakeEntity = Entity[Fake] destructively replaced the original type variable DataType that subscripted the original Entity type hint with the named tuple Fake. When you pass MyFakeEntity to the beartype.door.TypeHint constructor, that constructor only sees the new MyFakeEntity type hint without any reference to the original Entity type hint or the original type variable DataType that subscripted the original Entity type hint. For example, given the above definitions:
>>> MyFakeEntity.__args__
(typing.Union[int, str], <class '__main__.Fake'>)  # <-- uhohs. `DataType` is gone, bro. EVERYTHING. IS. LOST.
>>> MyFakeEntity.__parameters__
()  # <-- ...oh my Gods.

I consider this a typing bug. The current typing implementation is preventing runtime type-checkers from implementing support for contravariant generics, because typing is destroying essential metadata runtime type-checkers require to implement that support.
I acknowledge that this a tall ask. But... would you mind opening a discussion on Python's official Typing-sig mailing list about this? That's where all high-level discussion on typing improvements happens. I would do this for you, except I am lazy and currently role-playing as the benevolent Star Trek Federation in Stellaris. The future of the Federation isn't looking well, friends. The Ferengi trade empire hounds my tissue-paper-thin borders and now a Klingon warship just uncloaked outside my fully unprotected Starbase at a planet I foolishly dubbed "Memory Alpha."
Weep for me! My citizenry already do.

this may not be feasible. Specifically, subscripting a type hint subscripted by one or more type variables destructively replaces those type variables with their substituted type hints at runtime.

Damnit, python, ya done me dirty again.
Wellp. I wouldn't blame you to ignore this entirely, then! Not going to lie, the list of reasons to abandon the "lets me do anything" python land, which began with a lovely debate about HKTs, is growing ever longer.

But hey, I guess life isn't as fun without Sisyphusian kicking against the proverbial goads. (unless, wait, is that just called masochism?
So, as per my usual, is there another way...?
 Perhaps there is room to "bless" certain types, especially user-created ones, with enhanced capabilities like contravariance, tagged unions, etc.
You already have the machinery, right? These beautiful TypeHint objects. With a proper decorator, we can permanently attach metadata that informs beartype  hey, this thing is an X, trust me.
This means beartype can know or easily infer at run time the type of pretty much any "thing" that is or was derived from these special "blessed" types. And boom, we've kinda invented Algebraic BearTypes.
I know this is sort've sounding like the tack that pydantic took, but rather than rely on a basemodel and focus on validation, we can maybe use relatively straight-fwd protocols to cleanly endow types with BearTypeable (or something). An outer beartype check makes sure that if we're trying to do something advanced, it at least passes an is_bearable beartypable check. Plus, the protocol approach means we can provide machinery for folks to add beartyp-ability to whatever-they-want™, and then just let them deal with the fallout™ of such decisions!
Also, I'm pretty sure any types we can "assign" a priori to get a "TypeHintBadge" as metadata wouldn't need anything more than a subhint check at runtime, which is...faster? maybe? than full beartype type checking of a complicated nested type?
So then the questions are 1) am I needlessly reinventing, what, GHC as a rebellious fiefdom in the kingdom of python, and should pack up my toys and go to a new sandbox?  😆
2) should I add specific examples to the mailing list and/or how do I make this sound less like ramblings of a type-obsessed heretic?
3) should I start my first game as humans, or can I jump right into play my new obsession the Scyldari, and...can I quickly scale this learning curve so I can recapture the feeling of Sins of a Solar Empire or M2TW without wasting 50 hours playing wrong?
No joke, I booted up Stellaris for the first time from an old humble Bundle yesterday, after getting my steam deck in the mail. So glad you brought it up, and now I'm going to give it another go instead of losing myself to Factorio again for the 10th time.

Perhaps there is room to "bless" certain types...

Perl 5 intensifies. Inb4 @tbsexton publishes a bless package providing a single public bless() function dynamically promoting standard unholy profane types into "blessed" types. Guido bless you, bless.

You already have the machinery, right? These beautiful TypeHint objects. With a proper decorator, we can permanently attach metadata that informs beartype hey, this thing is an X, trust me.

You walk the dark plugin roads – and you walk them alone. Currently, @beartype lacks a plugin API. This is a thing we routinely think about until remembering that we lack this precious thing called time other sentient beings claim without evidence they have.
beartype.vale.IsParametrization: Because We Can
That said, in the absence of official typing support for exposing metadata on contravariant and covariant generics to runtime type-checkers, @beartype desperately cries out for an official @beartype-specific solution. As always, the optimal solution may be for us to officially add a new beartype validator enabling typonistas like us to attach this metadata to existing type hints.
I contemplate a dread API resembling:
# Old stuff copy-pasted from above. Boring!
from beartype.door import TypeHint as th
from beartype import typing as bt

E_ID = bt.Union[int,str]  # Entity ID's
DataType = bt.TypeVar('DataType', bound=bt.Optional[bt.Iterable], contravariant=True)
Entity = bt.Tuple[E_ID, DataType]  # So (valid_id, (some_data1, some_data2, ...))

class Fake(bt.NamedTuple):
    name:str
    kind:str
    velocity:float

# NEW STUFF IS NEW. Excitement ensues as madness prevails.
from beartype.typing import Annotated
from beartype.vale import IsParametrization

# PEP-compliant type hint notifying @beartype that "Entity[Fake]" is
# the result of substituting one or more type variables subscripting
# the "Entity" type hint with concrete types satisfying those variables,
# while preserving compatibility with static type-checkers and IDEs.
#
# @beartype will then dynamically do the rest. Specifically, by the
# dark power of introspection, @beartype will iteratively do a diff
# between "Entity[Fake]" and "Entity" to find the type variables in the
# latter replaced by types in the former. Doing so then enables
# @beartype to validate that these types either do or do not satisfy
# the contravariance or covariance of these type variables.
#
# Chortle with glee as @beartype does something.
MyUsableFakeEntity = Annotated[Entity[Fake], IsParametrization[Entity]]

BearTypeable: We Go Where We Shouldn't
In the absence of collective sanity, a hypothetical class BearTypeable(typing.Protocol) superclass also intrigues even as it disturbs me. When you squint until your forehead crinkles, that looks like an extensible plugin API. Weekend permitting, would you mind speccing out what a proposed beartype.door.Beartypeable API might look like for Old Man @leycec over here?
If your first-draft stab in the darkness successfully results in a wet, meaty sound indicating that something unmentionable was hit and is now pathetically bleeding out on the dungeon floor, perhaps we could begin running the PR gauntlet with... something.
Treat @beartype gently. It is tired and getting old.

should I add specific examples to the mailing list and/or how do I make this sound less like ramblings of a type-obsessed heretic?

...actually, your wise words make me reconsider that risky ploy. Let's perhaps ignore Typing-sig for the moment. Official Python devs frighten me. It's a rough crowd and I'm kinda too sleepy to defend myself in a heated scrum of fifty brawling typing purists.
They usually see runtime as an afterthought. That's an uphill dogpile. Cue Sisyphus and his rolling rock.

should I start my first game as humans

Yes, yes, yes! By all the ancient leviathans that plumb the empty depths of space, yes!
There are white-knight humans and there are bad-seed humans. The white-knight humans replicate the plucky happy-go-lucky Star Trek Federation. The bad-seed humans replicate the disgustingly "so bad they're good" Terran Empire from the Star Trek mirror universe.
It's Stellaris – the impossibly complex game you never quite understand where mechanical victory is secondary only to your having nebulous fun while role-playing out the vicious childhood fantasies of galactic domination you always knew was your rightful inheritance.

can I quickly scale this learning curve

That... may not happen. Thankfully, the joy of Stellaris is learning the joy of Stellaris while failing your homeworld's citizenry in a nuclear conflagration of forced assimilation at the underhanded probes of the nearby machine culture you thought you could trust. You were wrong.
Specifically, I advise while stroking my suspicious goatee:

Play the tutorial. Seriously. It's pretty good! It also starts you off as the white-knight humans, with whom you can just quietly proceed after the tutorial ends. Let's go, utopian Federation of culturally diverse and socially appropriate good guys!
Enable Ironman mode. Chuckles as quiet screaming fills the void.
Increase difficulty to at least Captain. More screaming. More chuckling.

@tbsexton Are you running a prerelease version of @beartype? I read this thread and was surprised to see this bt.NamedTuple use because I thought these weren't deeply checked yet. But then, I see that the readme says 0.12.0 for deep type checking of NamedTuple.
I assume you've installed from main or something?

As for your question about NamedTuple, my understanding is based from this nice answer which you should absolutely check out!:

When your data structure needs to/can be immutable, hashable, iterable, unpackable, comparable then you can use NamedTuple. If you need something more complicated, for example, a possibility of inheritance for your data structure then use Dataclass.

This is super helpful to know! I bet @dataclass(frozen=True, eq=True) is the most common line of code across all my projects, so I really ought to be using NamedTuples. I can't wait until @beartype can deeply check them in 0.12.0!

phantom-types, which was pretty much purpose-built for this exact use-case. Note their first example is a str wrap like you have, but the wrap is gone at runtime (type is still str, but isinstance goes to some custom wrapper). @leycec I'm realizing is implementing pretty much exactly what I was poorly approximating in the BearTyped plugin discussion, and I will probably explore what exactly the overlap is in that discussion, since the phantom-types readme even mentions beartype interop eyes

Wow, this looks sweet! I'll be trying this out soon.

As an aside here, I love to see a Lark person in the wild! I spent a lot of time digging into the parsley library recently, but I almost went the Lark route and read a lot of the documentation sweat_smile. If you're looking for something like NamedTuples but catered toward ADTs and immutability/memory usage, please please please check out coconut-lang! I love coconut so much. The documentation mentions their custom data keyword

used to create immutable, algebraic data types, including built-in support for destructuring pattern-matching and fmap

Neat stuff! Yes I suppose I have become a Lark person, but under duress. I'd really rather be known as an attoparsec person, lol. I've been looking into trying to get a lot of what I'm missing from Haskell in Python. Unfortunately, I think something that compiles to python is just a bit too far away for me. I've been looking at using fn.py in my current project, though. I use so many damn lambdas and partial() calls that the underscore syntax and currying is starting to look really desirable.

@tbsexton Are you running a prerelease version of @beartype

...ohnoes. So sorry about that, @langfield! Everything's mostly ready to go for beartype 0.12.0 – including deep type-checking support for typing.NamedTuple that will surely shatter our understanding of QA as we know it. I just need to actually sit still for two whole minutes and pull the trigger on the changelog.
Sweat is beading my bald head over here. :sweat:

I spent a lot of time digging into the parsley library recently...

This is the way, because Parser Expression Grammars (PEGs) are the way. I'm a simple parsing man. I see PEGs. I star on GitHub.
Technically, there is one well-known CFG that has no equivalent PEG. Pragmatically, PEGs can do everything and more (and more importantly, much faster) than CFGs. There is a reason Guido transitioned Python to a PEG-based parser. Packrat parsing for life! Flex that determinism. :muscle:

please please please check out coconut-lang!

What is this sanity-shredding oblivion that I see: "Coconut provides a recursive decorator to perform tail recursion optimization on a function written in a tail-recursive style..."
wut
It's tail recursion in Python, everybody! The prophesied Golden Age has finally arrived.

The downside is that static checkers completely ignore these annotations, which is another benefit of phantom-types that have the same predicates like beartype.vale.Is but magically give mypy that info too.

Gah! Please someone: laboriously crawl over the phantom-types codebase and educate me. I am ignorant and couldn't decipher the relevant hieroglyphics out of @antonagestam's phenomenal work there. I descry suspicious generics like the phantom.sized.NonEmpty protocol – and then I'm lost. This must explain why brain shrinkage is detrimental to coding.

👋
The requirements you mention in this thread, ie compatibility with both static and runtime checkers is exactly what cornered me into the design of phantom-types. I've written a blog post explaining how the core of phantom-types work, if you want to dig into the details: https://www.agest.am/phantom-types-in-python
The real implementation is just a generalization of the technique described there.

Hey @antonagestam! Incredible project! I've really never seen anything like it.
I've got a question on an example:

By introducing a phantom type we can define a pre-condition for a function argument.
from phantom import Phantom
from phantom.predicates.collection import contained

class Name(str, Phantom, predicate=contained({"Jane", "Joe"})):
    ...

def greet(name: Name):
    print(f"Hello {name}!")

Now this will be a valid call.
greet(Name.parse("Jane"))

... and so will this.
joe = "Joe"
assert isinstance(joe, Name)
greet(joe)

But this will yield a static type checking error.
greet("bird")

So I imagine that if we call greet("Joe"), it will also yield a static type checking error. Will this yield a runtime type checking error?

@langfield The phantom type doesn't do anything magical to the function signature that it is used in, so it won't make any runtime errors happen for calls to the greet function. Just like this won't produce a runtime error ...
def fn(v: int) -> None: ...
fn("foo")

... neither will this.
def fn(name: Name) -> None: ...
fn("not a name")

However, if you combine it with a runtime type checker, like beartype, you would see a runtime error, i.e. like the invocation in this example below.
greet = beartype(greet)
greet("not a name")  # <-- runtime error
greet("Joe")  # <-- no runtime error

Just like you mention though, calling greet("Joe") would give a static type checker error, because even though the value is valid, we haven't proved that it is valid. Perhaps the README example could be more clear about that. With that same greet function from the README, you get static type errors in the first invocation in the example below, but not the second.
name = "Joe"

# Even though "Joe" is a valid value, the type checker hasn't
# been presented with proof to back that claim yet, and so infers
# just `str` for name at this point. This call gives a static type
# checker error.
greet(name)

# Now we're presenting proof. mypy understands that the program
# cannot possibly continue unless name is a Name, and so happily
# narrows name from str to Name for any line of code following
# this assertion.
assert isinstance(name, Name)

# And so, with the presented proof, the type checker finds this
# call valid.
greet(name)

So that's the trade-off really, the burden to prove validity is pushed to the call site. However, because Python also has support for Literal types, there are things we can do to make the Name type even more user friendly, as long as you're willing to spend even more time crafting the type (of course you are, you're static type vigilantes, right?!).
So we have a set of values that the input must adhere to, we can change so that we define those as a Literal instead. This, you guessed it, will be used to recognize literal values in the code-base.
from typing import Literal
LiteralName = Literal["Joe", "Jane"]

Now we can update the definition of Name so that its source of truth is the arguments of this literal type. We change the name of the phantom type, and make Name the union of the phantom and the literal type. That's a mouthful. Let's try it.
from typing import get_args, Literal, TypeAlias
from phantom import Phantom
from phantom.predicates.collection import contained

LiteralName = Literal["Joe", "Jane"]

class ParsedName(
    str,
    Phantom,
    predicate=contained(get_args(LiteralName)),
):
    ...

Name: TypeAlias = LiteralName | ParsedName

What do we end up? There are good things and slightly less good things. The cool thing is, mypy now understands which literals are valid Names, so it allows this:
def greet(name: Name) -> ...: ...

greet("Joe")  # valid!
greet("Jane")  # valid!
greet("who?")  # not valid!

The slightly less bad thing is that Name now isn't compatible with isinstance() any longer, so to call greet with a non-literal value, we need to use the underlying phantom type, e.g.:
def greet(name: Name) -> ...: ...

val = read_from_somewhere()
assert isinstance(val, ParsedName)
# or
val = ParsedName.parse(read_from_somewhere())

# this would pass with one of the two proofs above
greet(val)

I do believe that Pydantic would be able to figure out usage of the union though, to be honest I'm not sure if it'd work with beartype, but I think it should? So if your source of parsed values is a typing-compatible validation framework like Pydantic, you'd likely not ever have to use explicitly use the underlying phantom type.
In the library, the CountryCode type uses this elaborate union-of-a-literal-and-a-phantom trick so you can play around with that if you'd like.
I guess this was sort of off-topic, hope it's at least tangentially relevant for this discussion ;)

The phantom type doesn't do anything magical to the function signature that it is used in, so it won't make any runtime errors happen for calls to the greet function.

Apologies, yes! Makes sense. I meant with the use of @beartype. My bad entirely.

The slightly less bad thing is that Name now isn't compatible with isinstance() any longer, so to call greet with a non-literal value, we need to use the underlying phantom type

It will work with beartype.door.is_bearable, though! If only static type checkers could use is_bearable for narrowing, haha!

I do believe that Pydantic would be able to figure out usage of the union though, to be honest I'm not sure if it'd work with beartype, but I think it should?

I do think @leycec supports this currently.

I guess this was sort of off-topic, hope it's at least tangentially relevant for this discussion ;)

No, no, I think it's fair to say we're all pretty deeply interested in this stuff! Thanks for the exposition! 😁

Fascinating discussion continues fascinating. Thankfully, @beartype has everyone covered here; we deeply type-check arbitrary combinations of both typing.Literal[...] and typing.Union[...], which | syntactically reduces to. @beartype should implicitly support everything above with no additional batteries required.
I'm also crossing my age-wizened fingers behind my back, which now itches suspiciously.

It will work with beartype.door.is_bearable, though! If only static type checkers could use is_bearable for narrowing, haha!


[Doc] How can we use the payload processor to get high throughput for consuming Kafka format data

Is your feature request related to a problem? Please describe.
We have added the new feature of the payload processor in Pulsar 2.8.0, and we have implemented a KafkaFormatProcessor in KoP that can be used by users directly to get high throughput for consuming Kafka format data. But I can't find any document related to this part.
Describe the solution you'd like
Provide a guide for this part
And it's better to have a tech blog to make a clear picture of the great feature, how to use it and how does it work.

We have added the new feature of the payload processor in Pulsar 2.8.0

The payload processor was introduced in Pulsar 2.9.0. The docs about how to use it is here because it's only useful when entryFormat=kafka.

to get high throughput for consuming Kafka format data

It's not proved yet. We need a performance test to measure the performance impact of the KafkaPayloadProcessor.


iOS support

Is your feature request related to a problem? Please describe.
Do you have any plans or timeline as when your thinking of bringing in iOS support for this library?
Describe the solution you'd like
Same functionality over both Android and iOS

ios working?

@busykid I don't think so. I didn't try, but the readme says ios only.

https://reinteractive.com/posts/442-bringing-tesseract-to-mobile-with-react-native

https://reinteractive.com/posts/442-bringing-tesseract-to-mobile-with-react-native

This is actually the post I used in order to set it up. I have a project that can run it, I'm just not sure how to get that work into this package. I know the methods available are different for one. Another major difference is that i can only use English on the iOS project.

I know its stated that iOS is not supported yet, but its obviously planned since 2 Years and no progress there, do you need some particular help?
Currently the exception is:
[TypeError: null is not an object (evaluating '_reactNativeTesseractOcr.default.recognize')]
so it looks like some default has not been set there but what else?

Currently there is nothing linked for iOS. I know how to implement the solution like in the article mentioned above but it would not match the android solution already used in this package (the methods are named differently and the article only teaches you how to set it up in English). I also don't see how to integrate it into this repo, that's something I need to spend more time on/get help with.

Well additional models for other languages can be found here: https://github.com/tesseract-ocr/tessdata/tree/bf82613055ebc6e63d9e3b438a5c234bfd638c93
There is also an different project aiming the same target: https://github.com/zsajjad/react-native-text-detector
But it seams to be dead since it was updates for years now, but it would be great to have an module for OCR for react-native and this involves both, android AND iOS, so please tell we how we can help you out there!


Scaling of scenario (excluding industry) results in server errors

For example the scenario with ID: 564164 is invalid.

Including @RobTerwel

I'm also very curious what would happen if I include the industry in a scaled scenario 😈

I'm also very curious what would happen if I include the industry in a scaled scenario 😈

That seems to work fine.

For that scenario, the following inputs calculate a default ("start") value of NaN – "not a number" – which is typically the result of dividing zero by zero:

industry_chemicals_aggregated_other_burner_coal_share
industry_chemicals_aggregated_other_burner_crude_oil_share
industry_chemicals_aggregated_other_burner_network_gas_share
industry_chemicals_aggregated_other_burner_wood_pellets_share
industry_final_demand_for_chemical_aggregated_other_steam_hot_water_share

industry_chemicals_aggregated_other_burner_coal_share
industry_chemicals_aggregated_other_burner_crude_oil_share
industry_chemicals_aggregated_other_burner_network_gas_share
industry_chemicals_aggregated_other_burner_wood_pellets_share
industry_final_demand_for_chemical_aggregated_other_steam_hot_water_share

These sliders should only appear in non-NL datasets. One sec.

These sliders should only appear in non-NL datasets. One sec.

Ah, I see. ETEngine calculates the start values for all inputs/sliders, regardless of the dataset; it doesn't know which sliders are used by which dataset (that is ETModel's responsibility).
It would be nice if these inputs could handle that gracefully, but alternatively we could do what we do with NaNs in gquery results: automatically convert the value to zero.

Ah, I see. ETEngine calculates the start values for all inputs/sliders, regardless of the dataset; it doesn't know which sliders are used by which dataset (that is ETModel's responsibility).

Indeed; I just set these sliders to be dependent on has_aggregated_chemical_industry, but that doesn't solve this.

It's not too pretty, but the start value queries (such as this one) could be changed to something like this:
IF(
  EQUAL(AREA('area_code'), 'nl'),
  0.0,
  (
    V(industry_chemicals_other_burner_coal,output_of_heat_carriers) +
    V(industry_chemicals_fertilizers_burner_coal,output_of_heat_carriers)
  ) / (
    V(industry_useful_demand_for_chemical_other_useable_heat,preset_demand) +
    V(industry_useful_demand_for_chemical_fertilizers_useable_heat,preset_demand)
  )
)

It's not too pretty, but the start value queries (such as this one) could be changed to something like this

Yes, that should do the job. I can do this later today.


Update Variables.py

This is a first pass on a rather large file. I know the Examples section that begins at line 6 needs to be moved, but with four classes in this module, I don't know where to move it to! It also seems that some of the @properties for design properties and parent variables are duplicated.

@akaszynski  Can't figure out why it keeps failing at line 575.

Looks like an indentation issue, you're missing quite a few spaces.  Still dealing with hospital stuff; if you can't figure it out I'll be able to fix it in a few hours.

I finally fixed it. I missed the word "hospital" earlier. I certainly hope everyone in your family is OK. Prayers and good thoughts going out to you all....


Automated cherry pick of #5501: auth: check isAuthed if nil

Cherry pick of #5501 on release/3.1.
#5501: auth: check isAuthed if nil

Codecov Report

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

@@              Coverage Diff              @@
##             release/3.1   #5502   +/-   ##
=============================================
  Coverage               ?   7.26%
=============================================
  Files                  ?     575
  Lines                  ?   97575
  Branches               ?       0
=============================================
  Hits                   ?    7084
  Misses                 ?   89921
  Partials               ?     570

Flag
Coverage Δ

#aFlag
7.26% <ø> (?)

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 ed06f6e...4ec8b1f. Read the comment docs.


formatting in CONTRIBUTING.md

Headers in CONTRIBUTING.md was not showing properly. corrected it.

Thanks for catching that!

My pleasure.
On Sun, Apr 2, 2017, 1:10 AM Dave Machado<EMAIL_ADDRESS>wrote:

Thanks for catching that!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/toddmotto/public-apis/pull/322#issuecomment-290942499,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGMmI4KKkVSSI56VK_oXdngaX5N-tNhaks5rrqg7gaJpZM4MweYR
.


Support for jsonnet

Is your feature request related to a problem? Please describe.
No
Describe the solution you'd like
ArgoCD supports jsonnet. If possible can you consider adding jsonnet support to this plugin?
Describe alternatives you've considered
For now I'll just stay with Helm
Additional context
https://argoproj.github.io/argo-cd/user-guide/jsonnet/

@vediatoni As of this moment, if you are generating yaml files such as https://github.com/google/jsonnet/blob/master/case_studies/kubernetes/example.jsonnet then AVP can be used. You would create a configManagementPlugins like with helm (this is not a real solution, just an idea of what is possible):
configManagementPlugins: |
  - name: argocd-vault-plugin-helm
    generate:
      command: ["sh", "-c"]
      args: ["jsonnet -o all.yaml . && argocd-vault-plugin generate all.yaml"]

However, if your jsonnet is generating json, that is not supported at this time. So we would need to add that into the codebase.

This feature is available in https://github.com/IBM/argocd-vault-plugin/releases/tag/v1.3.0


Is this being maintained?

Is this package being maintained at all?

@wasabeef can you update flutter_hooks?

@austinn @ihadabs
Just now I've released a new version.


feature: attempt idempotent payment behaviour (work in progress)

The idea is to check whether an upfront payment or a stream with the required value has already been made. In other words, to check whether the user is "already subscribed". We do that by quering on-chain, not by storing separate widget state.
The option is available under PaymentDetails.attemptIdempotency. Defaults to false to not change the behaviour of existing checkouts.
The review screen does not let pass when already subscribed. It does let pass when the user wanted to wrap tokens. Not the most smooth behaviour... Need to come up with something here.
Solves: #155
Note that the code in the command mappers needs granular unit testing coverage (not just e2e) and some cleaning up. It's definitely coming up. The preference so far has been to add features (read "new requirements") before locking down the internal design and spending too much time re-writing tests.

IMO in this case there should be some kind of "You are already subscribed, want to wrap more tokens?" screen , maybe even showing the total streamed amount re-using the success stream like in the dashboards stream details page, but with buttons that lead to wrap steps ? Also what about cases where there are multiple payment options on the same network , with the same token e.g. an updated tier?


🧑💻 🏕  🚀 Alibaba Summer of Code (ASOC) 2022

Alibaba Summer of Code (ASOC) 2022
Welcome to the open source world! If you haven't planned how to spend this summer, come to the Alibaba Summer of Code and code with us! 💻
Alibaba Summer of Code is a global program focused on engaging students directly in open source software development. Under the guidance of the mentor in the Alibaba open source project, students can experience software development in the real world. Alibaba Summer of code will begin from May 30th to September 1st. Students can use the summertime to participate in the open source project and work with the core members of the project.
This is a master issue to track the progress and result of Alibaba Summer of Code 2022.
What you can get?
On this exclusive developer journey, students will have the opportunity to:
Participate in the top projects of the International Open Source Foundation;
Get a scholarship from Alibaba;
Obtain an open source contributor certificate;
Get a fast pass of Alibaba Internship
Get your code adopted and used by the open source project！
Timeline

Apply Now!
Browse open idea list here:
#1723 基于AliOS Things移植QEMU RISCV virt 开发板
#1722 AliOS Things中多语言交互性能优化（C与Python间相互访问）
#1721 基于HaaS Python轻应用开发框架打造两轮自平衡小车
Contact the Organizer
If you have any questions, visit the event website: https://opensource.alibaba.com/asoc2022
Email address<EMAIL_ADDRESS>DingTalk：44561832

感谢您提出的宝贵问题，我们有7x24小时服务的“HaaS百事通”客服系统，
您可以先尝试能否解决您的问题(https://haas.iot.aliyun.com/?ask=1&f=a2cre.b82925042)

如果“HaaS百事通”没有解决您的问题，请回复“人工支持”，我们会在工作日(10:00-12:00/14:00-18:00)10分钟内回复您。

老师好，IoT的项目能给个联系的邮箱吗？

@SamanthaWangdl 同学你好，可以通过如下两种方式联系我们哦
Email address<EMAIL_ADDRESS>钉钉搜索群号：44561832


Add metadata to JSON outputs and change format to accommodate

Pull Request Test Coverage Report for Build 879502309

9 of 9 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.1%) to 89.846%

Totals

Change from base Build 873077111:
0.1%

Covered Lines:
292

Relevant Lines:
325

💛  - Coveralls


Importer creating spare index on cartodb_id

@chriswhong reported and I verified on a randomly selected table of my own, two indices!
In my case, on nyc_homicides I get nyc_homicides_cartodb_id_key and also nyc_homicides_pkey.
The last one is probably the one that is implicitly created when the table is given a UNIQUE PRIMARY KEY constraint. The first one is probably created by hand. Since they are on the same thing, it's double the storage for no advantage at all.

Might not apply with new cartodbfication

Solved in new cartodbfy'ation indeed. Deploying latest fixes to all users' DB's


'obi new' fails if /opt/oblong is missing

I installed obi on my laptop, and then the obi-cpp template. But obi new cpp <project> fails:
% obi new cpp hakuna
Traceback (most recent call last):
  File "/home/tom/.local/bin/obi", line 9, in <module>
    load_entry_point('oblong-obi==3.0.1', 'console_scripts', 'obi')()
  File "/home/tom/.local/lib/python2.7/site-packages/obi/obi.py", line 140, in main
    g_speak_home = get_g_speak_home(arguments)
  File "/home/tom/.local/lib/python2.7/site-packages/obi/obi.py", line 84, in get_g_speak_home
    items = [os.path.join(path, item) for item in os.listdir(path) if "g-speak" in item]
OSError: [Errno 2] No such file or directory: '/opt/oblong'

There should be better error handling around the assumption that g-speak is installed.


Frontend url not displaying the app

Greetings, I followed the directions to build and deploy the demo app. No errors in CloudFormation logs. I can see the frontend url in the console output, CloudFormation output, and in the Amplify Domain management tab.
Deployment didn't work? Here are some options:

Check out [our docs](https://docs.aws.amazon.com/amplify/latest/userguide/welcome.html)
Click the Feedback button in the bottom-left corner of the service page
Quick tips:

Have you checked your build settings? The baseDirectory parameter in the artifacts step of your YAML file should match your build output directory
Building your app should produce an index.html file. Try building your app locally and check a file with that name exists in the artifacts base directory.

Did I miss a step in the documentation here?

Can you try going into Amplify and ensure it’s built the application at least once?

Thank you @jplock! I manually triggered the build in the Amplify console and noticed my GitHub MFA was hosing up the build connectivity. I gave Amplify permission to the single GitHub app in the repo and the Amplify build succeeded - app loading now!!!!

So, I got past the Amplify to GitHub connectivity hiccup. Also, there is a new Time-based One Time Password screen that should be documented. I'll issue a PR for that. But past the TOTP, I'm getting an error in  handleGetToken().  Please see screenshot.

Can you see if there are errors in the CloudWatch Logs for the Lambda function?


Fix PartByValueStatistics wrong index issue.

Sort keys before we count statistics, otherwise
index is incorrect. Meanwhile, All statistics are
disabled for no practical application so far.
Signed-off-by: Wang, Yue A<EMAIL_ADDRESS>How was this patch tested?
mvn test pass.

LGTM

LGTM

pending test

LGTM


invoker command line support for dynamicId assignment

As discussed in the review of https://github.com/apache/incubator-openwhisk/pull/2689, for Mesos it is not feasible to use environment variables to communicate the unique invoker names.  For Mesos, we need to also support command-line flags style of specifying arguments.  For example:
--name <some_name> --id <proposed_id>
For Kubernetes, we really would prefer environment variables.
So, the plan is to support both options.  Add flags-style command line argument processing to the invoker and read the environment if explicit command lines are not provided.

Please label as enhancement and assign to me.  I plan to work on this next week.

Implemented in PR #2939

PR merged


EnableCors security and client application concerns

I am little concerned about the EnableCors used in ASp.NEt Core.
As we know by doing the below:
services.AddCors(o => {
    o.AddPolicy("Api", builder => builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().AllowCredentials());
});

I can use the EnableCors("Api") to allow XmlHTTPRequest from a different domain.
But what if I use client applications like "Postman" to call my ApiController.
As far as I know Postman does not include the origin and acts as a regular browser.
So EnableCors([..]) is useless in this case.
Shouldn't EnableCors([...]) disallow such requests and only allow "real" cross-domain requests by checking for header Origin? But what if I now fake the Origin header?
Also am I the only one missing some Cors related authorization attributes, like
CorsAuthorizeAttribute() and an option / method to get the policy being applied?
Thank you in advanced

Version Info
ASP.NET Core: 2.0.0
Version Studio 2017 15.5.1

CORS requires the cooperation of the client, and only adds value when your end user is a browser.
Enforcing the presence or validity of the Origin header doesn't add any security by itself, because any malicious client could send an Origin header with a value you expect, there's nothing secret about it.
CORS only works in practice because the browser you end user is using looks at the CORS response headers.

"Enforcing the presence or validity of the Origin header doesn't add any security by itself, because any malicious client could send an Origin header with a value you expect, there's nothing secret about it.", -, that ist what i was actually asking
So question is here how to become such things more secure...
API Keys can easily be copied... So what else, antiforgerytoken, OK what else.
I still think it's insecure... So I was asking about ideas not repeating my questions to be honest.

So question is here how to become such things more secure...

Sorry, I think misunderstood what you're asking 😕

Let's step back a minute, what is your app and who are your clients/end users? Are you securing an API that other apps are going to call? Is this a website that users visit using a browser? both?
CORS and antiforgery and mitigations for some specific issues you have to deal with when your clients are browsers.

tagging @blowdart @Tratcher  as well in case they want to help provide guidance.

So question is here how to become such things more secure...
API Keys can easily be copied... So what else, antiforgerytoken, OK what else.
I still think it's insecure... So I was asking about ideas not repeating my questions to be honest.

HTTP token binding would be the next level of protection.

CORS is meant for user-agents that support it, which generally is well-behaved browsers. PostMan is not a browser and does not implement CORS, so it's allowed to just go where it wants. CORS does not require you to stop any non-compliant CORS requests because the backend cannot validate what is, and isn't valid, it's a client side check. It's like an old HTTP Refer check, malicious code can spoof this, so if you want to protect something you authenticate it.
As @brockallen says this would be the token binding would be some help against copying, but only for things that the server issues, like authentication tokens, or anti-forgery tokens.

@rynowak thank you for reopening.
My goal is to implement something like this as a Web Api:

Only a single request should securely authenticate and fetch the necessary information (if authorized of course)
ApiController should either be used openly (no-auth, no api key) for specific Controller->Action
ApiController should allow calls from SAME  domain using authenticated user (AuthorizeAttribute)
ApiController should support cross domain access ONLY using either APIKEY
ApiController should allow mixed mode (user credentials / APIKEY) for specific Controller->Action

For this I already implemented an Authorization/Action-Filter which I am actually not sure if this is the proper way to do. Because of point 1. (single request) I havent implemented HTTP token binding as I think there is no other way to do it with an additonal request (before).
Are there any other ideas or native methods which may help me instead of writing my own authorization filter(s)
Many thanks in advanced for any hints and recommendations!

IMO, having a single API support several different authentication mechanisms is adding complexity, which hurts security. The modern design for this is to centralize security behind a token server, and then the API only trusts tokens from the one token server. Let the token server support the various authentication mechanisms you want to support. That way it's in one place and the API is abstracted form it all. The OAuth2 protocol is then how the client app obtains token to invoke the API.

Hi @ole1986, seems like what you're describing is a custom security configuration which you will be able to achieve with authentication model described by @brockallen.

@brockallen I agree CORS is not auth. but most often CORS and auth will come together and what I see is a possible lack of "explanation" on how to properly implement both things together (easily).
To phrase this into a final question which I think I am actually concerned about
How can I quickly implement an authentication concept (like OAuth) using CORS?
And these are possible answers:
https://identityserver4.readthedocs.io/en/dev/quickstarts/6_aspnet_identity.html (+next page)
https://github.com/IdentityServer/IdentityServer4
https://identityserver4.readthedocs.io/en/dev/quickstarts/6_aspnet_identity.html
Thank you!


Docker: Create a provenance file - attach it via de build pipeline

Manually create a provenance file for curl, based on this example: https://slsa.dev/example

Manual provenance file: https://github.com/philips-labs/SLSA-Provenance-Usecases/commit/5d4d7f42e6e7f3631b9edc6fddeffcfb887b1474

Resolved by #88


infrastructure modernization, etc.

This PR:

resolves #190
resolves #192

@martinfleis Looks like all tests are passing. After your review, and appropriate changes, should I do a lint commit for this PR or do the ruffing in another PR?

This will also need an update of the release workflow. We need to install mapclassify there to get a version and avoid a direct call of setup.py.
I'd do linting as a follow-up

This will also need an update of the release workflow. We need to install mapclassify there to get a version and avoid a direct call of setup.py.

good catch, done.

dang it... OK, now I think done.


HV507 Common line: diode protection and current limiting

Hi Ben,
I was looking at the last committed Segment PCB layout in GitHub and comparing that with your YouTube walk-through video.
I see what looks like the Common protection diodes you mentioned at the end of your video already on the Segment PCB (1)-- I see sixteen parallel Common lines rather than the eight you mentioned in the video, though (2).
I'm guessing you made a late change in the number of Common driver lines subsequent to producing the walk through video -- correct?
I'm guessing we'd still put one current limiting resistor on each Common driver line (you mentioned a value of 47K Ohms elsewhere) -- if all that is correct, I might just put together an updated board layout and get a fresh batch of Segment boards made.
Your thoughts?

If I were going to redesign it, I'd add a current-limiting resistor to each line immediately at the IC's output.  Then, downstream of the current limiting resistors, 8 or 16 lines could be joined together for better drive strength.  I would not build it as shown in #2, since even if all lines are switched exactly at the same time, mismatch in output transistors causes problems (ie the IC is destroyed).  The clamp diode is good insurance, so I'd keep all that as-is.

Well, I'm not sure I have the stomach that scale of a redesign at this point -- the driver PCB is really packed (at least for my skill level). Some substantial layout changes would be required to add the resistors next to the chip as you suggest. Am I quoting the right value for the resistors - 47K?
I was going to use 0.2W resistors (the HV507 data sheet rates the output of each line at 0.5mA).
Thanks for your support!

You can add the resistors to the segment board -- same step as placing and reflowing the board-to-board connectors.  I think you'll definitely want to add resistors to at least the 8 or 16 common lines -- don't connect them directly together as shown.  It may work for a while, but it's probably not a good plan.  Ideally, the resistors would be added to every segment, but it's likely that it will work fine only putting resistors on the commons only.  The resistors will dissipate very little average current, so 0402 or even 0201 would be fine.  Don't worry about the power rating.  47K minimum.  Maybe even go 100K.  I'm sorry for the lack of precision in my design -- it's not a problem of missing documentation, but rather a lack of having a completely final ready-for-production design.  There are still some small tweaks needed.

Thanks! will do.

I played with adding resistors to the Segment board in KiCad (image below). Having overnight to ruminate about this, though, I think I've decided to try placing the limiting resistors on the driver board as you suggested. The design already requires components on both sides of the board -- having the resistors on the connector side doesn't fundamentally complicate anything.
I'm having a few issues bringing up these projects for editing in KiCad. As is, it was complete enough that I could send the KiCad files to CircuitHub for production. I might need some pointers getting the Driver board project editable. I'll keep you posted.

I toyed with adding resistors to the Segment board last night (image below).
I'm going to think more about your suggestion to place them on the Driver board instead. I'll try to commit to a choice this week.


WIP: Listen on Unix socket

Addresses #88

Codecov Report

Merging #89 (0b05953) into main (014b561) will decrease coverage by 0.75%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main      #89      +/-   ##
==========================================
- Coverage   61.11%   60.35%   -0.76%
==========================================
  Files          20       20
  Lines        1669     1690      +21
==========================================
  Hits         1020     1020
- Misses        499      520      +21
  Partials      150      150

Impacted Files
Coverage Δ

cmd/serve.go
0.00% <0.00%> (ø)

server/config.go
100.00% <ø> (ø)

server/server.go
54.56% <0.00%> (-1.92%)
:arrow_down:

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 014b561...0b05953. Read the comment docs.


Encountered unknown type for Mysql: enum

Setup
Versions

Rust:  v1.68.2
Diesel: idk. when i try to run diesel -v i get this:

❯ diesel -v
error: Found argument '-v' which wasn't expected, or isn't valid in this context

	If you tried to supply `-v` as a value rather than a flag, use `-- -v`

Database: 10.11.2-MariaDB Arch Linux
Operating System arch linux with the following kernel: 6.2.9-arch1-1-patched A patch is applied to fix sound drivers, shouldn't influence anything

What are you trying to accomplish?
I'm trying to run a migration to create a table:
-- create the users table
CREATE TABLE users (
    id BINARY(16) PRIMARY KEY,
    userName VARCHAR(40) NOT NULL UNIQUE,
    displayName VARCHAR(40) NOT NULL UNIQUE,
    gender ENUM('male', 'female', 'diverse') NOT NULL
);

-- create the users_auto_id trigger to automatically generate the id field
CREATE TRIGGER `users_auto_id` BEFORE INSERT ON `users`
FOR EACH ROW
SET NEW.id =UUID_TO_BIN(UUID());

What is the expected output?
For the migration to run normally
What is the actual output?
The database and trigger are created
However diesel shows this error:
❯ diesel migration redo
Rolling back migration 2023-04-06-190312_users
Running migration 2023-04-06-190312_users
Encountered unknown type for Mysql: enum
thread 'main' panicked at 'internal error: entered unreachable code: Mysql only supports a closed set of types.
                         If you ever see this error message please open an issue at https://github.com/diesel-rs/diesel containing a dump of your schema definition.', /home/lukas/.cargo/registry/src/github.com-1ecc6299db9ec823/diesel_cli-2.0.1/src/print_schema.rs:313:17
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

The schema definition is added above
Steps to reproduce

The migration is the only code i have so far so it should be easy to reproduce
Checklist

[x ] I have already looked over the issue tracker  and the disussion forum  for similar possible closed issues.

[ x] This issue can be reproduced on Rust's stable channel. (Your issue will be
closed if this is not the case)
[ x] This issue can be reproduced without requiring a third party crate

Duplicate of #3386
Fixed in #3530, but not released yet.


NiceHash support

https://www.nicehash.com/farm-mining

Meh, lapse of sanity, they don't allow coin mining.

Actually, if I implement #29 this can still be an option.


State is not being updated on button click

1: Download the source from this branch https://github.com/mrpmorris/blazor-fluxor/tree/bug/StateNotChanging
2: Set this project as your startup project MiddlwareSample.Server (in the 04-MiddlewareSample solution folder)
3: Run it
4: Now click either of the buttons. Both should update their own counter, but neither do. (If it works then refresh the page and try again to break it).
If you get rid of the @inherits line from index.cshtml then the counter example with in-view state works (the bottom button) but then the global-state change detection cannot work.
This worked in 0.30

Thanks for contacting us.
We think that this issue is fixed now. If you are still facing this problem, please file a new issue.


Consider default of normalized=True for all STFT and Mel transforms

normalized = False by default in torch STFTs and Mels. Consider using a default of normalized = True, particularly if computing multiple length transforms.
This is done in Encodec: https://github.com/facebookresearch/encodec/blob/main/encodec/msstftd.py#L62
And I had a non-audiolm model I trained recently that didn't work until I flipped this variable.
This won't completely solve the loss balancing issue #61 but might nonetheless improve training

@turian Interesting spot. Can you explain where this has helped making things work? Isn't this a matter of input scaling and standardization?

Here are some more examples: https://github.com/search?q=normalized%3Dtrue+stft&type=code
I haven't really dug into this too much, but I say at the very least it's a program option @lucidrains and would be curious what people training up audiolm-pytorch find from it

@turian Hey Joseph! Glad you raised this issue as I've been looking at that and wasn't sure what the proper values are
I've made it so one can configure this, either on loading the audio data or during stft. Let me know if I missed a spot
Could you point to any literature that shows normalization is preferable?

@lucidrains TBH it's hard to say. I've seen both things happen in code. Unfortunately, this is a detailed that tends to be elided in the literature. I like your approach of making it False by default, but encouraging people who are testing particularly the multiscale stuff to flip it on. I'll make a few comments on https://github.com/lucidrains/audiolm-pytorch/commit/1831daed7059ed9150d6fbee1bf886c5276555a4

@turian yes, i understand how this is
ok, we'll go with that strategy and let the crowd wisdom kick in

Yeah. I do think the normalization is more important when you have multiple FFT sizes. Another example:
https://github.com/acids-ircam/ddsp_pytorch/blob/1edc19e0e8d70a69c8083a58456f6894c1623baf/ddsp/core.py#L36

And agreed that discovering the right parameters is an empirical question.


Add hover and active states

For SEAB-2845
Zeplin link
Navigation bar
This picture shows the active state (user is on the Search page) and the hover state for the "About" button:

Notes:

There's no hover or active state for the Dockstore home button
There's no active state for Docs or Forum because they open a new window. The active state is what ever page they were on previously
Some of the buttons on the Home page, About page, or Organizations page take you to other sections of the navigation bar, so the active state is applied accordingly, depending on what page you're currently on. It does not depend on what button you click on the navigation bar.
Example 1: if you're on the search page (active state is Search), and you click on a workflow, the active state on Search is gone and there is no active state on the navigation bar
Example 2: if you're on the home page, and you click the Browse Organizations button, the active state will be on the Organizations button in the navigation bar

White links on dark background

Green accent buttons
This shows the hover state when the mouse is hovering over the "About Dockstore" button:

Other green buttons on the home page also have this hover effect, including the login button.
I made some changes so other green mat-raised-buttons on other pages, like Organizations, also have this effect. For example, the View buttons:

Another example is on the Search page:

Tabs
This is how the tabs look like with no hover:

This is how they look like with hover:

I did it by changing the opacity of the tab on hover, but in my opinion it's still a little hard to tell since the font is thin. I could change the opacity to 1 on hover, but then it may look too much like an active tab. Any thoughts about this would be appreciated.
This hover effect on tabs is also applied to any other tabs on the site, like the My Workflows page.

Misc
Fixed the How to Star link because I noticed the page was highlighting the word "star" which made it hard to read.
Refactored the code that highlighted the active page in this menu so it was similar to how I did it for the navigation bar:

The appearance is still the same, but the active state is remembered even if the page is refreshed. Previously, it was lost when refreshed.

Also added the grayscale from https://app.zeplin.io/project/5fc690a2717ee9144814f190/screen/5fc699d068c46f17551f745b to the material color scheme because several of the grayscale colors are used in the UI. Removed the duplicate grayscale colors


Logical Flow: on logical flow page, the datatype tree does not allow deselect of 'Unknown'

Seems okay for me on both app page (flows section) and the logical flow page.  Can you provide more details to help us re-create ?


Add support for providing certificate chain for X509 signature types

This allows you to create an entry for the entire certificate chain, not
just the leaf certificate. The certificate chain will be verified before
adding the entry.
Signed-off-by: Hayden Blauzvern<EMAIL_ADDRESS>
Summary

Ticket Link

Fixes
Release Note

Added support for providing a certificate chain for an X509 signature type

cc @bobcallaway @asraa


[BUG] Existence default values in schema are not being honored

SPARK-39143 added default value support for fields in a Spark schema. The RAPIDS Accelerator does not check for the use of this feature in a schema nor does it implement the behavior.  It looks like it was primarily added for CSV, but it is also supported by JSON reads and also is referenced in the CPU code that builds Parquet column readers.

Scope for this issue: fallback appropriately when existence default values are detected.
Long-term: file separate issue to track full support of existence default values in the plugin.

From Spark 340, ORC, Parquet, JSON and CSV all support the default values in schema.
See

ORC          SPARK-39294
Paruqet    SPARK-39265
CSV         SPARK-39143
JSON     SPARK-39211

Fallback solution is here https://github.com/NVIDIA/spark-rapids/pull/9765


Security Questions

Hi, we're looking at using this plugin widely at the large tech company, but we want to make sure that the security is very solid before we do so. It seems to be opening up a port between the device (simulator or real) and the computer, and sending arbitrary code across for the device to run. What if we were to encrypt communication between the computer and device and for each to have a shared secret that they communicate with each other to before sending code? Or we could use IP whitelisting for each user's test phones. Measures like these, I imagine would make larger companies like ours more willing to use these sorts of tools. For us personally, to start, we'll be creating a version of this plugin that only accepts local connections so that it works for the simulator.

Hi Michael, no warrantees but there are a number of reasons why security is less of a problem when using injection.

Injection should only ever be used in DEBUG builds.
With iOS10 it is no longer possible execute arbitrary code on the device (so injection now only works in the simulator)
The port is opened to accept() at the Xcode end and the application connects to it to consent to updates which in the simulator are communicated through the filesystem.
There is a beta version of injection as an App I am trying to move users onto that only allows localhost connections (http://johnholdsworth.com/injection.html)

Give "injection as an app" a try and let me know how you get on. It has almost the same functionality without having to tangle with plugins.

the app is working well! so you're saying that the app will always block external connections?

do you have the source code for the app for us to poke through?

The app’s socket is only bound to localhost. It’s not open source at the moment being largely an integration of my previous work but if you email injectionapp at johnholdsworth.com I can send you a zip file for review.

thanks! we'll reach out via email if we decide that's necessary

App has been open sourced and Licenses are all MIT now https://github.com/johnno1962/InjectionApp


Bugfix: Caching on subsequent redeploys

Fixes #941

Subsequent redeploys were not correctly caching new updates to requirements.txt
New builds saw cp errors when trying to update the cache for the first time
Cache output logs were confusing and unhelpful

@CaseyFaist What is the process for getting this fix released and how soon do you expect it to be out there? Very eager to get this out as our build times are longer than they need to be and this has been outstanding for some time.


i cant dowload videos from playvids.com

hi is imposible download from playvids.com

Post the full output of youtube-dl when run with --verbose option.

Paste the URL you want to download: https://www.playvids.com/v/42sBOHAuwaG
[generic] 42sBOHAuwaG: Requesting header
WARNING: Falling back on generic information extractor.
[generic] 42sBOHAuwaG: Downloading webpage
[generic] 42sBOHAuwaG: Extracting information
ERROR: Unsupported URL: https://www.playvids.com/v/42sBOHAuwaG

im using this bath file for download
@echo off
set downloads=C:\Users??????\Downloads
REM ---
echo.
echo.
echo.
echo This is a batch file that will use youtube-dl to download
echo a video from a live streaming site like YouTube and others.
echo.
echo.
set /p url="Paste the URL you want to download: "
if "%url%"=="" goto no_url
REM We need double '%' to escape them.
youtube-dl.exe %url% -i -w --restrict-filenames -o "%downloads%%%(upload_date)s-%%(id)s-%%(title)s.%%(ext)s"
echo.
echo Finished!
goto end
:no_url
echo You didn't give me a URL
:end
echo ------------------------------
pause
exit

It appears that a valid test for Playvid is:
_VALID_URL = r'https?://www\.playvid\.com/watch(\?v=|/)(?P<id>.+?)(?:#|$)'

https://www.playvids.com/v/42sBOHAuwaG doesn't follow suit with that. Is this an alternative domain name for them?

Well seems playvids.com is different from playvid.com. By the way, playvids.com always displays a blank page here. Is this website still working?

Yep, playvids still works. Loads an encapsulated flash streamer; you can probably get the files by parsing the video_url argument of the flash player; it seems to take seriously long to start downloading, though.

OK I can finally view it with a clean Firefox. However, the original example https://www.playvids.com/v/42sBOHAuwaG looks owned by shooshtime.com. youtube-dl's policy is that websites specializing in copyright infringement will not be supported. Though a logo does not that indicate shooshtime.com is the copyright holder, a safe example is better. Do you have another example?

I am also getting Unsupported URL error
C:\youtube-dl>youtube-dl --verbose https://www.playvids.com/v/42sBOHAuwaG
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', 'https://www.playvids.com/v/42sBOHAuwaG']
[debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252
[debug] youtube-dl version 2017.12.14
[debug] Python version 3.4.4 - Windows-10-10.0.10586
[debug] exe versions: none
[debug] Proxy map: {}
[generic] 42sBOHAuwaG: Requesting header
WARNING: Falling back on generic information extractor.
[generic] 42sBOHAuwaG: Downloading webpage
[generic] 42sBOHAuwaG: Extracting information
[generic] 42sBOHAuwaG: Downloading MPD manifest
WARNING: Failed to download MPD manifest: HTTP Error 404: Not Found
ERROR: Unsupported URL: https://www.playvids.com/v/42sBOHAuwaG
Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpekokknty\build\youtube_dl\YoutubeDL.py", line 784, in extract_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpekokknty\build\youtube_dl\extractor\common.py", line 437, in extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpekokknty\build\youtube_dl\extractor\generic.py", line 3063, in _real_extract
youtube_dl.utils.UnsupportedError: Unsupported URL: https://www.playvids.com/v/42sBOHAuwaG

The m4s files seems to be located on userscontent.net domain

@slrslr: playvids.com is not going to be supported due to the reason stated in https://github.com/rg3/youtube-dl/issues/8042#issuecomment-238924997


[BUG]: onEnd was called, but navigation did not occur.

Version
6.7.0
What platforms are you having the problem on?
iOS, Android
System Version
Android 14
On what device are you experiencing the issue?
Real device
Architecture
New architecture with interop layer
What happened?
I am navigating to the next screen when the video ends. Although onEnd is called, the navigation is not occurring.
Reproduction Link
repository link
Reproduction
Step to reproduce this bug are:
I am navigating to the next screen when the video ends. Although onEnd is called, the navigation is not occurring.
<Video           source={url}           onEnd={() => navigateToNextScreen() }           style={{flex: 1}}           fullscreen           resizeMode="stretch"           shutterColor={Colors.white}         />

Issue resolved. The problem was caused by the fullscreen props in the video


Add Style

Masonry Style + rebuild structure

fixx ready do marge

@PanRada please make final fixes and should be ready to merge :smiling_imp:

to check

bomba :bomb: :laughing:


TypeError: stack.hasAll is not a function

Note: not part of starter kit, but after merging in your latest spin changes I'm having issues.
Update Having issue with starter kit too
yarn watch v0.27.5
$ spin watch
TypeError: stack.hasAll is not a function
    at WebAssetsPlugin.configure (/Users/justin/bv/ironworks_2/iron-works/node_modules/spinjs/src/plugins/WebAssetsPlugin.ts:9:19)
    at /Users/justin/bv/ironworks_2/iron-works/node_modules/spinjs/src/spin.config.ts:68:69
    at Array.forEach (native)
    at _loop_1 (/Users/justin/bv/ironworks_2/iron-works/node_modules/spinjs/src/spin.config.ts:68:28)
    at createConfig (/Users/justin/bv/ironworks_2/iron-works/node_modules/spinjs/lib/spin.config.js:75:13)
    at Object.exports.default (/Users/justin/bv/ironworks_2/iron-works/node_modules/spinjs/src/createConfig.ts:11:12)
    at Object.<anonymous> (/Users/justin/bv/ironworks_2/iron-works/node_modules/spinjs/src/index.ts:18:26)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
TypeError: Cannot read property 'name' of undefined
    at /Users/justin/bv/ironworks_2/iron-works/node_modules/spinjs/src/executor.ts:552:53
    at buildDll (/Users/justin/bv/ironworks_2/iron-works/node_modules/spinjs/src/executor.ts:550:12)
    at _loop_1 (/Users/justin/bv/ironworks_2/iron-works/node_modules/spinjs/src/executor.ts:786:21)
    at /Users/justin/bv/ironworks_2/iron-works/node_modules/spinjs/lib/executor.js:849:17
TypeError: Cannot read property 'name' of undefined
    at /Users/justin/bv/ironworks_2/iron-works/node_modules/spinjs/src/executor.ts:552:53
    at buildDll (/Users/justin/bv/ironworks_2/iron-works/node_modules/spinjs/src/executor.ts:550:12)
    at _loop_1 (/Users/justin/bv/ironworks_2/iron-works/node_modules/spinjs/src/executor.ts:786:21)
    at /Users/justin/bv/ironworks_2/iron-works/node_modules/spinjs/lib/executor.js:849:17
webpack-for-server Time: 146ms

ERROR in ./src/server/api_server.js
Module parse failed: /Users/justin/bv/ironworks_2/iron-works/src/server/api_server.js Unexpected token (52:12)
You may need an appropriate loader to handle this file type.
|           return {
|             query: invertedMap[body.id],
|             ...body
|           };
|         });
 @ ./src/server/index.js 2:0-22
 @ multi ./src/server/index.js webpack/hot/signal.js

@vlasenko The node module doesn't have the proper definition for the Stack class:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Stack = (function () {
    function Stack() {
        var stack = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            stack[_i] = arguments[_i];
        }
        this.technologies = stack.reduce(function (acc, tech) {
            if (!tech) {
                return acc;
            }
            else if (tech.constructor === Array) {
                return acc.concat(tech);
            }
            else {
                return acc.concat(tech.split(':'));
            }
        }, []);
        if (this.hasAny('server')) {
            this.platform = 'server';
        }
        else if (this.hasAny('web')) {
            this.platform = 'web';
        }
        else if (this.hasAny('android')) {
            this.platform = 'android';
        }
        else if (this.hasAny('ios')) {
            this.platform = 'ios';
        }
    }
    Stack.prototype.hasAny = function (arg) {
        var array = arg.constructor === Array ? arg : [arg];
        for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {
            var feature = array_1[_i];
            if (this.technologies.indexOf(feature) >= 0) {
                return true;
            }
        }
        return false;
    };
    return Stack;
}());
exports.default = Stack;
//# sourceMappingURL=stack.js.map

@justinr1234 Looks like you are using outdated version? When I install version 0.1.15, which is the latest, I have hasAll function in Stack class

@vlasenko Same problem seems to accrue in the kit.

@mitjade I don't see it. Could you check what version of spin.js is used in node_modules/spinjs ?

0.1.15

Also tried now with 0.1.16. Same result. Using Mac.

@mitjade How can it be? Does Stack has no hasAll function in 0.1.16 ?

Mine has.

export default class Stack {
    technologies: string[];
    platform: string;

    constructor(...stack) {
        this.technologies = stack.reduce((acc, tech) => {
            if (!tech) {
                return acc;
            } else if (tech.constructor === Array) {
                return acc.concat(tech);
            } else {
                return acc.concat(tech.split(':'));
            }
        }, []);
        if (this.hasAny('server')) {
            this.platform = 'server';
        } else if (this.hasAny('web')) {
            this.platform = 'web';
        } else if (this.hasAny('android')) {
            this.platform = 'android';
        } else if (this.hasAny('ios')) {
            this.platform = 'ios';
        }
    }

    hasAny(technologies): Boolean {
        const array = technologies.constructor === Array ? technologies : [technologies];
        for (let feature of array) {
            if (this.technologies.indexOf(feature) >= 0) {
                return true;
            }
        }
        return false;
    }

    hasAll(technologies): Boolean {
        const array = technologies.constructor === Array ? technologies : [technologies];
        for (let feature of array) {
            if (this.technologies.indexOf(feature) < 0) {
                return false;
            }
        }
        return true;
    }
}

{
  "name": "spinjs",
  "version": "0.1.16",
  "scripts": {
    "compile": "tsc",
    "watch": "tsc -w",
    "lint": "tslint --fix 'src/*.ts*' -p tsconfig.json --type-check && tslint 'test/*.ts*' -p tsconfig.json --type-check",
    "test": " ",
    "prepublish": "npm run compile"
  },
  "files": [
    "src",
    "lib",
    "spin.config.js",
    "spin.js",
    "webpack.config.js"
  ],
  "bin": {
    "spin": "./spin.js"
  },
  "devDependencies": {
    "@types/ip": "^0.0.30",
    "@types/lodash": "^4.14.71",
    "@types/mkdirp": "^0.5.0",
    "@types/node": "^7.0.18",
    "@types/webpack-merge": "^0.0.5",
    "@types/webpack-sources": "^0.1.2",
    "@types/yargs": "^8.0.2",
    "tslint": "^5.2.0",
    "typescript": "^2.4.1"
  },
  "dependencies": {
    "ip": "^1.1.5",
    "lodash": "^4.17.4",
    "minilog": "^3.1.0",
    "mkdirp": "^0.5.1",
    "source-list-map": "^2.0.0",
    "source-map-support": "^0.4.15",
    "webpack-merge": "^4.1.0",
    "webpack-sources": "^1.0.1",
    "yargs": "^8.0.2"
  }
}

Am I looking in the wrong place?

@mitjade What is inside lib/Stack.js ?

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Stack = (function () {
    function Stack() {
        var stack = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            stack[_i] = arguments[_i];
        }
        this.technologies = stack.reduce(function (acc, tech) {
            if (!tech) {
                return acc;
            }
            else if (tech.constructor === Array) {
                return acc.concat(tech);
            }
            else {
                return acc.concat(tech.split(':'));
            }
        }, []);
        if (this.hasAny('server')) {
            this.platform = 'server';
        }
        else if (this.hasAny('web')) {
            this.platform = 'web';
        }
        else if (this.hasAny('android')) {
            this.platform = 'android';
        }
        else if (this.hasAny('ios')) {
            this.platform = 'ios';
        }
    }
    Stack.prototype.hasAny = function (arg) {
        var array = arg.constructor === Array ? arg : [arg];
        for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {
            var feature = array_1[_i];
            if (this.technologies.indexOf(feature) >= 0) {
                return true;
            }
        }
        return false;
    };
    return Stack;
}());
exports.default = Stack;
//# sourceMappingURL=stack.js.map

typescript problem?

@mitjade I have just created empty project test, with npm init, then installed spinjs via npm i<EMAIL_ADDRESS>and my lib/Stack.js has hasAll function, as expected

@mitjade I'm not sure what the problem is, I can't reproduce it

@vlasenko Done the same with empty project no hasAll?

@mitjade Haha

@mitjade Okay, let me release 0.2.0 maybe

@mitjade Published 0.2.0, could check whether 0.2.0 has hasAll in lib/Stack.js ?

@vlasenko It does. What just happened?

@mitjade I don't know. I have just increased minor version, so that it become 0.2.0

@vlasenko kit also works ok now

@mitjade Good to know, thanks for helping to debug this issue

@mitjade Thought I still don't understand what was the cause of this problem, but I'm glad it is gone for you

@vlasenko hopefully it will also work for @justinr1234 and @MichelDiz.

@vlasenko What version of npm?   @mitjade same question

@justinr1234
$ npm --version
5.0.3

@vlasenko I'm not sure what you're doing that's creating the actual package, but the 2 broken versions absolutely have the wrong output in /lib. What generates the /lib folder?
https://registry.npmjs.org/spinjs/-/spinjs-0.1.15.tgz
https://registry.npmjs.org/spinjs/-/spinjs-0.1.16.tgz

@justinr1234 I have just downloaded and checked both these archives. And both have correct output in lib/Stack.js, e.g. it has hasAll function.

@justinr1234 Yes

@justinr1234
The size of spinjs-0.1.15.tgz is 61143 bytes. The MD5 sum is:
$ md5sum spinjs-0.1.15.tgz
557c9704e0a57b6f4454a383935cfce1  spinjs-0.1.15.tgz

@vlasenko  Same info on my end --- now I'm really confused

@vlasenko Just had my friend in Taiwan check (I'm in the US) and he doesn't see hasAll either

@justinr1234 What is md5sum of spinjs-0.1.15.tgz  that you have downloaded via browser?

md5 spinjs-0.1.15.tgz
MD5 (spinjs-0.1.15.tgz) = 557c9704e0a57b6f4454a383935cfce1

@justinr1234 If we have the same md5sum we can't have different contents :)

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Stack = (function () {
    function Stack() {
        var stack = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            stack[_i] = arguments[_i];
        }
        this.technologies = stack.reduce(function (acc, tech) {
            if (!tech) {
                return acc;
            }
            else if (tech.constructor === Array) {
                return acc.concat(tech);
            }
            else {
                return acc.concat(tech.split(':'));
            }
        }, []);
        if (this.hasAny('server')) {
            this.platform = 'server';
        }
        else if (this.hasAny('web')) {
            this.platform = 'web';
        }
        else if (this.hasAny('android')) {
            this.platform = 'android';
        }
        else if (this.hasAny('ios')) {
            this.platform = 'ios';
        }
    }
    Stack.prototype.hasAny = function (arg) {
        var array = arg.constructor === Array ? arg : [arg];
        for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {
            var feature = array_1[_i];
            if (this.technologies.indexOf(feature) >= 0) {
                return true;
            }
        }
        return false;
    };
    return Stack;
}());
exports.default = Stack;

md5 spinjs-0.1.15.tgz
MD5 (spinjs-0.1.15.tgz) = 557c9704e0a57b6f4454a383935cfce1

http://recordit.co/5Z3WAmDIvy/gif/notify
And updated, he was still confused he saw it in /src/ but just like me he doesn't see it in /lib/

@justinr1234 I know where is the problem. There are two files, one Stack.js, another stack.js. The stack.js is outdated and just hanged around until I have fully removed lib dir in 0.2.0 prior to compilation. Need to add rm -r /lib in prepublish task

@justinr1234 @mitjade I must admit this was hard one to figure out, despite its simple nature. Thank you guys for the help!

@vlasenko And just like that my non-starter is up and running with spin.js --- thanks for your hard work here. I plan to look into creating a plugin for native-base. Are you possibly already working on an example of a UI addin? If so, I might wait until then.

@justinr1234 I'm not working on UI addin yet. I'm going to work on docs for spin.js. But I think writing plugin should be not hard without docs too. Feel free to ask if you need something, when you decide to write plugin for NativeBase

@justinr1234 After docs I plan to add the feature to install needed libraries for chosen stack via spin init. So that this process were automated. Since you are the first who is using spin.js outside of starter kit, please tell us what features do you miss the most when you will be ready


CB-10714 Ignore case for --archs

If "ARM" is passed to --archs, the Appx file is compiled, but the build
will fail due to a case sensitive string comparison.

@jerroydmoore ping. Sorry, the code fails the CI tests and has been reverted. Please revise and resubmit the PR, and please submit an ICLA (guidelines here).

To be clear, an ICLA is not required, but it is prefered.
This was a one liner, and should not get any ICLA scrutiny.
The failed CI tests however mean this should never have been accepted and merged.

@jerroydmoore, @purplecabbage is right: that was my mistake. The ICLA is not required, but if you plan to contribute more it would be awesome to get it out of the way sooner.


Plan lp1

Review meeting: October 24
Deploy: October 24 (maybe earlier?)
ReadyToTest: October 19
Goal: Complete issues that we are working on, get ready for meeting

The horrors of trello sync


Redirect hiring

Fixes #476
Changes Proposed

[x] redirect /hiring route to /browse?type=hiring

Reservations
Built URL by hand
Didnt build any tests (cheeky)

Wow, I haven't seen this approach before, I would typically do a simple redirect on a controller action, care to explain this to me a bit?

@gemantzu  oh really I applied this thinking it would be the standard approach since we don't have a matching controller action, So what I do here is I pass the options from the router to my plug, the important bit is the to key which accepts a path and the send the user along to that given url
You can see the relevant docs here
https://hexdocs.pm/phoenix/Phoenix.Controller.html#redirect/2 ... I can switch it up to  standard redirect if you feel this is overkill?

The issue I came up with while testing your branch is that you do not have a :to key set anywhere, and as a result, Phoenix.redirect/2 fails. Was it working on your machine? You probably wanted to do it in the router, instead of using get "/hiring", Redirect, "browse?type=hiring" => get "/hiring", Redirect, to: "/browse?type=hiring"

@gemantzu  aah thats was my last change I didn't add it to my amend, good catch

You have to add a leading "/" in the path, otherwise it's not considered as one. :)

@gemantzu your diligence is not human!

Thank you @zacck and @gemantzu 💜


[FEAT] Auto outdent instead of exiting list

Is your feature request related to a problem? Please describe.
Currently, if you are deep in a nested list and you hit enter, a new blank sibling bullet is created. If you hit enter again, you exit the list entirely.
Describe the solution you'd like
The behavior should mirror how outliner apps work - hitting enter on a blank bullet should auto-outdent rather than exit the list. Consecutive enter presses would continue to outdent until reaching the root of the tree, at which point another enter press would exit the list.

@Dreamsync Thank you for your contribution! Should be fixed in https://github.com/vslinko/obsidian-outliner/releases/tag/1.0.13


Redirect user back to home page after 5 seconds.

@aaronholtomcook Thanks! 👍

:tada: This PR is included in version 5.2.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


not an issue, it's a feature request

I want or at least know if exist a posibility to dxvk will implement a opengl to vulkan wrapper. that will be awesome.

The main use for dxvk is for use with wine, more specifically letting Windows games run on Linux. OpenGL is native on Linux so doesn't make much sense for dxvk to aim for something like that.
If you are interested in a OpenGL on vulkan drivers check out Mesa's Zink

sorry, i forget to add or be more specific, yes, is true that linux is native in ogl, and of course, a ogl to vulkan wrapper in linux is useless, my request is specifically to windows, dxvk is very useful, and in windows is a good option in some games with some performance issues with directx, but dxvk solve this performance issues, then, it will very useful the ogl to vulkan wrapper for windows. anyways, thanks for this awesome project.

Windows is not a supported platform for DXVK and implementing OpenGL would probably be around a year of fulltime work. (OpenGL is HUGE)
I think Zink can be used on Windows but in general you should complain to AMD and not expect a random open source project to fix their driver.

@rakantoh Maybe something to look forward to if you are using a amd gpu https://twitter.com/ayxerious/status/1534905703160225792 🙂


[OpaqueValues] Fix closure handling.

Rewrote and tested all currently emittable variations of closure handling for opaque values.
In order to do that, made all types with packs be indirect even in opaque values for now.  This is motivated by the fact that getting from/setting to a pack currently requires addresses which aren't materialized for tuples.  In the fullness of time, these values should be direct in opaque values mode, but for now it can be postponed.

@swift-ci please test

@swift-ci please test

@swift-ci please test

@swift-ci please benchmark

@swift-ci please test source compatibility

Timeouts and a UPASS in the debug source compat failure.

@swift-ci Please Test Source Compatibility Debug

@swift-ci Please Test Source Compatibility Debug

Same source compat failures as in rdar://114339248 .


When enabled, extension creates XDG_CACHE_HOME in workspace directory

Environment data

VS Code version: 1.35.1
Extension version (available under the Extensions sidebar): 2019.5.18875
OS and version: Ubuntu Linux 18.04
Python version (& distribution if applicable, e.g. Anaconda): 3.6.8 64-bit
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): N/A
Relevant/affected Python packages and their versions: N/A
Jedi or Language Server? (i.e. what is "python.jediEnabled" set to; more info #3977): true

Expected behaviour
VS Code extension does not create files in workspace directory, except possibly in .vscode directory.
Actual behaviour
A directory named XDG_CACHE_HOME appears in the workspace directory shortly after starting .vscode.
Steps to reproduce:

Install and enable Python extension.
Start code in a workspace directory.
Wait about 10 seconds.
Observe that there is now a directory named XDG_CACHE_HOME in the workspace directory.

Logs
Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)
Starting Microsoft Python language server.
[Info  - 12:09:46 PM] Analysis cache path: XDG_CACHE_HOME/Microsoft/Python Language Server
[Info  - 12:09:47 PM] GetCurrentSearchPaths /usr/bin/python3
[Info  - 12:09:47 PM] Python search paths:
[Info  - 12:09:47 PM]     /usr/lib/python3.6
[Info  - 12:09:47 PM]     /usr/lib/python3.6/lib-dynload
[Info  - 12:09:47 PM]     /home/davidkennedy/.local/lib/python3.6/site-packages
[Info  - 12:09:47 PM]     /usr/local/lib/python3.6/dist-packages
[Info  - 12:09:47 PM]     /usr/lib/python3/dist-packages
[Info  - 12:09:47 PM] Configuration search paths:
[Info  - 12:09:47 PM] Microsoft Python Language Server version <IP_ADDRESS>
[Info  - 12:09:47 PM] Initializing for /usr/bin/python3

Output from Console under the Developer Tools panel (toggle Developer Tools on under Help; turn on source maps to make any tracebacks be useful by running Enable source map support for extension debugging)
XXX

Same as #1197. I believe the fix is in daily and/or beta channels.

@dj2kenne If you need this now you can set one of:
"python.analysis.downloadChannel": "beta"

"python.analysis.downloadChannel": "daily"


Problem with garbage collector in session file driver

When two process run garbage collector in same time there is a lots of errors because of unlinking non existing files.
unlink(/path/writable/ci_sessioncd16549628ebaf9d9d70ed71814429254b76b723): No such file or directory /path/system/libraries/Session/drivers/Session_files_driver.php 386 | Called: /link1 unlink(/path/writable/ci_sessiona64823e065b23325b50871eaafb840fcfc39060e): No such file or directory /path/system/libraries/Session/drivers/Session_files_driver.php 386 | Called: /link2
And there is a lot of similar logs. Time of execution of GC are same.
Run on CI 3.1.4 but same code is in 3.1.11.

OK, but why would you have multiple processes running the same garbage collector at the same time?
Best practice is to outsorce the GC task to a cronjob, but even with the old pseudo-randomly triggered online GC that's built into PHP, the chance of this race-condition happening should be close to non-existent.

narfbg I've heard barks from dogs that make more sense than you.

I'm not surprised.  Someone who has no passion, desire, drive to be an engineer.   You… you are the perfect salesman. None of the stuff you said actually made sense yet no one called you out. Its magnificent.  The thing I enjoy about you most is you are able to have others believe things you say.  Seeing all these people who are not intelligent enough to realize that. To read your responses and have people not realize you have absolutely no idea what you are talking about. Man… that is a thing of beauty. They should give an Oscar for that.

Just ignore that last person's comments. Don't know why or where he came from, but he's blocked so no reason to try interacting with him.

Likely he is simply unaware of TOCTOU issues. It's hard to tell, but maybe he would have been satisfied with putting the unlink calls in a try/catch, or even just @'ing them.

If that's a reply to my last comment, the "last person's comments" I was referring to have apparently been deleted.


[v0.8.1] Aurora not 'active' on startup or after waking from sleep

As title says, while using iCUE (Corsair). Aurora runs but lighting is controlled by iCUE until Aurora is restarted.
Happens frequently, more than 50/50 occurrence rate.

I have this same problem.

I also have this problem.

Unfortunately also reporting having this issue, with my Logitech G910 keyboard. Using Aurora bv0.8.1.


mamba for OpenCE 1.10 fails at test stage

mamba for opence 1.10 fails with the following error:
The following error is seen while building mamba for OpenCE 1.10.
+ mamba --help
Traceback (most recent call last):
  File "/opt/conda/conda-bld/mamba-split_1699267509756/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/mamba", line 7, in <module>
    from mamba.mamba import main
  File "/opt/conda/conda-bld/mamba-split_1699267509756/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/mamba/mamba.py", line 16, in <module>
    from conda.cli.common import (
ImportError: cannot import name 'ensure_name_or_prefix' from 'conda.cli.common' (/opt/conda/conda-bld/mamba-split_1699267509756/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/conda/cli/common.py)
Tests failed for mamba-1.4.9-opence_py311hfe9f712_1.conda - moving package to /opt/conda/conda-bld/broken

This is seen with newer version of conda and works with conda<23.9.0.

Pinned conda to less than 23.7.4


Bad project version "0"

If you look into pyproject.toml you'll see
version = "0"

which prevents ops2deb from being packaged properly as a Python project as poetry build generates a wheel with version 0.
I'd suggest changing it to the correct version 2.4.1 (as of writing).

The version is set using poetry version in the ci.


Read mdocfile data from a string

Resolves #27. Can now call read_string(mdoc_file_data) in addition to read(mdoc_file)

Awesome PR, thanks so much for taking the time!
I love the class method but not so much the top level API of read_string. Could you remove it? This would give you Mdoc.from_string().as_dataframe() in your own scripts/applications which doesn't feel too onerous, what do you think? 🙂

Whoops, sorry I thought the API already had Mdoc.as_dataframe(), could you move your _read helper into that method on the Mdoc class?

Sounds good, do you want me to remove the added documentation then? And maybe mention this new method in the documentation (or not)?

Documenting this is a good idea!👍

Done, let me know if I should change / improve anything!

Particularly the usage, is this okay?
from mdocfile.data_models import Mdoc

mdoc_data = ...

mdoc = Mdoc.from_string(mdoc_data).as_dataframe()

Looks great! In an extra section "parsing from text"

Sounds good! I've updated the README and index.md files, let me know if I should only be changing one or if I should be adding a new page or something like that. Thanks!

Hi, could this get merged in? And was wondering if this could be included in a release anytime soon? Thanks!

@daniel-ji I can push a release but it won't be for a few days at least - I'm currently on vacation 🙂
Maybe @brisvag or @jojoelfe can push a release here? Unsure who has permissions
(Would do it but I'm on mobile)

I would, but doesn't look like I can...

No worries, it can wait awhile, sorry for bothering while you're on vacation. I hope you enjoy your vacation!

I pushed a tag, but we have no CI publish workflow it seems. I cannot do it manually cause I'm not maintainer on pypi, nor member of the teamtomo org there... I think we need to set up trusted publishing and all that :P

But... there is a CI publish workflow? ci.yml - i don't see the tag pushed

Bizarre... There was some weirdness with git, I could see the tag on the remote and it said "all up to date" so I assume the tag was pushed. For some reason I had to explicitly use git push upstream v0.1.3 to make it work, --follow-tags was not enough O.o Anyways, should be good now!

Thanks for getting back to it so fast @brisvag ! Congratulations @daniel-ji on your first PR to the project and to teamtomo, your changes have been released in v0.1.3 https://github.com/teamtomo/mdocfile/actions/runs/10419687859

Awesome, thank you guys all so much for the quick work!


Got some trouble with install speaksee

Thanks for sharing,
I got ERROR when I install the requirement torch, the situation is the same as seen in the photo.

Is there any way to solve it?

Hi @AlanHuang1998,
did you solve the problem?

@marcellacornia
Solved it, but got another problem, when I use "python test_region_set.py --dataset coco --exp_name ours --sample_rl_nw" to run, looks like take too long time to download something, so the server shutdown the connection, photo below.

The tgz file is needed to calculate the spice metric. If the download is too slow, you can comment the two lines of code that calculate the spice score.
val_spice, _ = Spice().compute_score(gts_t, gen_t)
print('SPICE', val_spice)

Thanks for your help! I follow your instructions and get each score.
Want to ask how to use the model to get a full sentences, like the picture below. Thank you!

@marcellacornia @AlanHuang1998 @baraldilorenzo
When I run python test_region_set.py --dataset coco --exp_name ours --sample_rl_nw, i get import errors of speaksee.data. However the installation shows suucessful.


custom_error helper not send response code from post lua scripts

The custom_error is only sending response code on pre lua scripts and not post lua scripts.
{
  "version": 2,
  "extra_config": {
    "github_com/devopsfaith/krakend-gologging": {
      "level": "DEBUG",
      "prefix": "[api-gateway]",
      "syslog": true,
      "stdout": true,
      "format": "default"
    }
  },
  "timeout": "60000ms",
  "cache_ttl": "300s",
  "name": "Custom Error",
  "endpoints": [
    {
      "endpoint": "/error",
      "method": "GET",
      "extra_config": {
        "github.com/devopsfaith/krakend-lua/router": {
          "pre": "--custom_error('from endpoint router pre', 404)"
        },
        "github.com/devopsfaith/krakend-lua/proxy": {
          "pre": "--custom_error('endpoint proxy pre', 404)",
          "post": "custom_error('endpoint proxy post', 404)"
        }
      },
      "backend": [
        {
          "host": "http://localhost:8080",
          "method": "GET",
          "url_pattern": "/404",
          "extra_config": {
            "github.com/devopsfaith/krakend-lua/proxy/backend": {
              "pre": "--custom_error('backend proxy pre', 404)",
              "post": "custom_error('backend proxy post', 404)"
            },
            "github.com/devopsfaith/krakend/http": {
              "return_error_details": "api"
            }
          }
        }
      ]
    }
  ]
}

krakend run -c custom_error.json

Expectation is that the custom_error helper will send the response code for post scripts as well.

Any chance I can get some direction in the near future. Thanks.

Any chance I can get some direction in the near future. Thanks.

Same issue here. It would be great to provide some examples in the docs of status code manipulations, using lua or Go plugins.

Hi @mathewsheets, as mentioned in the docs, "post" scripts are only allowed in the backend extra_config.
However, a little bit more examples concerning response body treatment in proxy ("pre") scripts would be appreciated.

Hello, yes, you are correct, the "pre" script in the backend is not valid. With regards to the "post" scripts and leveraging the custom_error function, I can verify in the logging that the function is called: "Error #01: backend proxy post", but my expectation would be for the endpoint / proxy / post script to send a response code of 404 to the caller.
For my use case, I would like to evaluate the JSON response of:
{
"error_api": {
"http_status_code": 404,
"http_body": "404 page not found"
}
}
and would like to return a response status of 404 and response text of "Not Found"

Anything on this? I have the same issue, I would expect to be able to run a post script in the backend or endpoint and be able to throw a custom error, thus changing the default 500 output in case some backend is returning > 400


Feature request: xterm-256 color support using converter?

Hi, my favorite terminal emulator doesn't support true colors yet :'(
Would it be possible to use something like this snippet: https://gist.github.com/jasonbradley/4357406
to convert hex to rgb and provide xterm-256 colors?

Hi, of course 256 should be supported. go make a PR i think it would not be too hard to do

I switched to Kitty which does support true colours now, feel free to close this


[CWS] turn fentry on by default

What does this PR do?
This PR enables fentry mode for CWS eBPF probes by default. We already have some checks to ensure fentry will work, but as a first step we are going to enforce kernel >= 6.1 to actually turn on fentry.
Since this is enabled by default now, this PR also removes the fentry specific tests (since the regular tests are testing fentry now).
Motivation
Describe how to test/QA your changes
Possible Drawbacks / Trade-offs
Additional Notes

/merge