Best way to scope lambda functions Allowed principals

Discussed in https://github.com/CloudSnorkel/cdk-github-runners/discussions/137

Originally posted by diegoaguilar October 28, 2022
I'm deploying hosted runners into an application with some automated policies check. Both setup and webhook handle lambdas are getting flagged because they're pretty open and publicly exposed.
Is there a way to access to these? Should I resolve these from the outputs and then configure? I want to avoid doing a sort of manual check and then getting code to invoke by ARN or something.
Should these even be taken and resolved from the outputs somehow?
Expectations
Allow the following configurable and selectable setups:

Default: Create Lambda URL for the function (simplest zero headache approach)
Disable function access
Create API Gateway for the function that limits access to just GitHub webhook IPs (statically defined in code with action on this project that updates it once in a while, assuming they don't change those IPs often)
Create API Gateway for the function that limits access to a given list of IPs/CIDRs
Nice-to-have: private API Gateway that can only be accessed from certain VPC where GitHub Enterprise is installed

Please @kichik assign this to me

Should 2. Disable function access mean, do NOT expose any function from the start?

Should 2. Disable function access mean, do NOT expose any function from the start?

Yeah this is specifically useful for the setup function. After initial setup it won't be needed at all for most cases. Best security is to therefore have no access to it at all.

Ok so this is setup function and NOT handler function. Naive questions but wanted to make sure


AMCFOC – Test the architecture

Following up on https://github.com/robotology/icub-firmware-models/issues/60#issuecomment-1860980782, we're required to:

restore the custom code calls
create proper automated test to verify if all conditions turn out as expected

The test was embedded in a Test Harness inside the supervisor, with sequence and assessment, as seen here:

Simply put, the Test Sequence sets the inputs to the supervisor in the usual sequence, and at the end it pushes the fault button.
The step change occurs in the sequencer after 0.01secs, and the Test Assessment block checks if the condition for moving to the next step is satisfied.
For example, if at the set_mode step the previously set PID D value does not match (check_pid_set), a warning is thrown.
At the moment the checks are working as expected 👍  I can add more steps to verify if the transitions work as expected.

Nice!

I can add more steps to verify if the transitions work as expected.

Ideally, we should check as many conditions and pathways as possible.
Another important point is to verify whether transitions occur in the expected amount of time without taking up longer lapses.

I started adding a scenario to check for behaviour of hardware faults, so far there is only the overcurrent:

And it was useful because it made me realize that I forgot to reset the flag isInFault, which would allow to switch back to idle when the fault condition disappeared:

I'm not a fan of how I'm writing the test sequences, I'm curious to see if it can be avoided to repeat the steps when evaluating them in different conditions.

I'm not a fan of how I'm writing the test sequences, I'm curious to see if it can be avoided to repeat the steps when evaluating them in different conditions.

Maybe barely related but still useful:

https://www.mathworks.com/help/sltest/ug/using-an-external-function-in-test-sequence-block.html

I'm not a fan of how I'm writing the test sequences, I'm curious to see if it can be avoided to repeat the steps when evaluating them in different conditions.

Maybe barely related but still useful:
* [mathworks.com/help/sltest/ug/using-an-external-function-in-test-sequence-block.html](https://www.mathworks.com/help/sltest/ug/using-an-external-function-in-test-sequence-block.html)

I'll give it a look!
Today I implemented new checks, related to control mode switches and bumpless switch:

Also, I added a simple discrete linear model that simulates a RL circuit, so that it could be used as a very coarse emulation of a motor if more sophistication is needed

All in all the tests seem fine, but check_mode_velocity fails, because the output of the Supervisor occurs one sample after the input

I found the culprit of the 1 sample lag above, a silly mistake:
In the input dispatcher, I was triggering the event of SetControlMode before storing the desired mode:

The event triggers the transition in the Control Mode handler who then checks for requiredControlMode. I thought the assignment was made before letting the Control Mode handler execute, who knew!
After swapping the two instructions, we have a perfect alignment of control mode changes:

Nicely debugged!
Tests are indeed useful!

There was also a timing issue I found, that was caused by the InputDispatcher, and it was probably more critical. Basically, one FSM tick needed to occur before it could be able to process another event.
To fix this, I replaced the subcharts in the dispatcher with graphical functions. See the picture bellow. In this way, the return occurs immediately and at the next tick the Supervisor is able to process another call.

Generating the static code metrics for ONE motion controller, we can see the following:

I noticed that I had a different compiler set up for the new supervisor, after setting the same one as the AMCBLDC, we have much better results:

Old supervisor
New supervisor

Lines of code
1014
834

Global variables size (bytes)
664
0

Accumulated stack size (bytes)
241
174

I'm surprised by the zero on the global variables, maybe they are needed when many subsystems are interacting with each other.

At the moment, I'm struggling to make the simulation work properly: it seems that even in open loop the simulated pmsm cannot spin:

I'll try to revert to a previous commit to see what changed.

At the moment, I'm struggling to make the simulation work properly: it seems that even in open loop the simulated pmsm cannot spin:

Fixed via #77.

Yep, and the new supervisor works as expected:

Nice!

Hi @mfussi66
Just to make a recap of the task's objectives:

restore the custom code calls
Is this accomplished?
create proper automated test to verify if all conditions turn out as expected
Lots of work done in this respect. Did you plan to extend the existing tests or can we consider this subtask complete?

Is this accomplished?

Done ✅
Both for the iCubTech code replacement library and the C functions called in stateflow

Lots of work done in this respect. Did you plan to extend the existing tests or can we consider this subtask complete?

I think It can be considered completed, also because the integration test in simulation was successful.

Fantastic job!
Closing the issue then.


Add Artemis's user defined watchdog delay

Story: As a user of Artemis service I want to have control over the Artemis's watchdogs timers.
Some tests may run longer in a state without being accessible by ssh (Leapp tests).
This PR also adds Artemis to the provisioning documentation.
The proposed addition collaborate with Artemis RFE: https://gitlab.com/testing-farm/artemis/-/merge_requests/1085
The Jira ticket: https://issues.redhat.com/browse/TFT-1949

Last adjustment: I just moved the artemis spec into a separate file in da47bfeb. The provision file is already growing and it makes sense to keep the provision plugins under the /spec/plans/provision/ directory.

/packit test


Decorator pattern

I think it worth to move the conversation here from the main repo.
@rosstuck I still think this should remain a decorator. I listed some arguments in the PR. Any response to those?

To me, a decorator doesn't make any more promises about execution logic than a middleware does. In the old decorator-based system, you could easily reshuffle the point at which events were dispatched too. The point at which we invoke the next callable is the exact same as the point at which we invoke the command bus.
Further, there are advantages to repositioning when the events trigger. If folks want them moved before or after a database transaction middleware opens/closes, having the event dispatching as a middleware is the only place to do that.
We could say "we encourage middleware for everything except events" but then we're recommending two different extension scenarios (plus encouraging people to create decorators again, just to work around the event trigger points).
Having to support two different extension scenarios makes everything a lot more complex, especially for framework modules/bundles/providers/whatevers. Rather than having a single option which is a list of objects or lazy loading proxies, we now also have a decorator option which is trickier to configure. Considering the entire advantage of middleware was to ease the setup process, we'd be undoing a lot of that for the sake of one plugin, which actually doesn't get stricter promises for it.
The only way we could have full control over the events, anyways, would be to build the event dispatching into the StandardCommandBus. However, even that isn't 100% because we re-added the CommandBus interface so folks could just write decorators around it again.
So, ultimately, that's my entire thought process on it. It doesn't make anything actually stricter and it kinda borks the standarization process around middleware. Sorry if that comes across a bit long-winded but I've thought about it a lot the last few days and can't come to any other solution.

I completely understand the single extension point concerns, and partly agree with it. However I don't really understand why emitting events AFTER eg. database connection open makes sense.
I have three possible solutions for this:

Have both/one of a middleware and a decorator solution
Create another command bus supporting both the middleware and event driven logic
Extend the standard command bus, so that you don't have to build the event driven logic in it (I prefer this)

(or any mixture of the above)

For the database example, imagine two different use cases like this:

I want to dispatch the CommandExecutedEvent after my database transaction closes, the benefit is: this allows me to know that everything has safely dispatched and been written before I trigger any side effects.
I want to dispatch the CommandExecutedEvent before my database transaction closes, the benefit is: this allows any side effects to operate within the same transaction, so that if a side effect breaks, the DB changes get rolled back too.

These are different cases with different tradeoffs, based on where we stack the events. I personally have a preference for one style, someone else has a preference for another. Tactician is meant to be a relatively unopinionated library, so we shouldn't lock someone into one solution or another. That's why I'd like the events as a middleware that we can change the order of.
Breaking down the solutions

Have a decorator solution: as discussed means we have to have multiple types of extension points
Have a middleware solution: obviously I'm rooting for this one :grin:
Create another command bus with middleware and event logic: I think we'd both prefer to avoid this because of the duplication
Extend the standard command bus: I'm heavily opposed to this, we have a lot of other ways to extend the behavior here (decorators, middleware, regular composition), inheritance should be the absolute last resort.

(if I totally had my druthers, StandardCommandBus would be just CommandBus and would be marked final :grinning: )

Honestly, I don't have any problem with a middleware solution.
But you have to admit that it doesn't cover ALL possible use cases. I think the before->do every logic->after is a more generic workflow than the middleware->event->middleware one. The latter gives you greater flexibility, but if you don't specifically need it, you should choose the first path. Even if it is possible to reach the same functionality, events could even be part of the core logic, so I think it is better to avoid messing with the middleware chain (pushing the event middleware, taking care of right order).
Another reason to provide an EventableCommandBus is to be able to rely on it and emit events from the outside world (the EventableConsumer in the queueing package is perfect example)
As I said, I am not against having both a middleware AND a command bus extension as well. I also think that inheritance is a viable way here, since event handling could even be a core logic. So I would vote for decoration < inheritance not to break the singel extension concern, but I don't mind as long as I am not forced to make event handling in a middleware.

Ok here is my two cent on the event matter.
There is not a single event for before or after!
I have used multiple CommandBus implementation and I have used multiple types of events within them (from before,after to init, begin, flush, end, final (or whatever you name them).
Middleware allows for all these cases and due to the way it's implemented you can every easily put them in the correct order.
Also overriding a CommandBus to add functionality not core to it's responsibility is just bad OOP.

I didn't say I can't see the advantage of middlewares.
As I said, I think it is core functionality splitted out to make it optional. Why would it be bad OOP? Inheritance is about knowledge, which is the clear case here IMO.

@sagikazarmark I do believe that the middlewares cover all use cases that the decorators do (with the possible exception of adding an extra interface but that'd be weird). As you said, the middlewares are more flexible and I don't think using them for the first path really adds any extra complexity (arguably reduces it even). That also includes the idea of an EventableCommandBus. Without going off topic too much, I think PHP architecture tends to use Events as an extension point a little too often, so I'm actually okay with not shipping that in core in favor of extension via middleware.
Regarding inheritance, I posted this same link in another PR @boekkooi opened but I think many of the same points about inheritance apply here as well http://ocramius.github.io/blog/when-to-declare-classes-final/ I do think extending the command bus is a sub-optimal solution here.
@boekkooi I do think there are some use cases where events might be slightly easier, such as the original package that this was extracted from (the Bernard integration), so I don't think it's a bad thing to have as a plugin but I wouldn't want to ship it in core for the reasons I mentioned above.

@rosstuck I accept your arguments, and understood the way you would like to follow.
However the problem I mentioned (EventableConsumer in the queueing package) still exists. I think it's worst to make an assumption that you have to inject the same event emitter in both the event middleware and the eventable consumer. Without this problem I wouldn't continue this and would immediately implement the middleware. So what do you think about that. (Short description: the EventableConsumer emits a cycle event using the same emitter as the current EventableCommandBus. This way I can increase counters, etc on command events and check those on cycle event. By using middleware this would become impossible, as the consumer can no longer access the actual event emitter)

@rosstuck I agree that events are very useful and that a event middleware plugin is a great idea. So no argument there.
@sagikazarmark Correct me if I'm wrong but would you problem not be solved by adding a EventEmitter constructor argument to the EventableConsumer and using the same emitter as a constructor argument for the middleware?

@boekkooi That would solve the problem, but you can't expect or even check that the same instance is passed to both objects. Also I prefer using the emitter trait which removes the need of a constructor parameter, but allows setter injection which makes things more clear in this case.

@sagikazarmark I'm sorry but my knowledge about the domain/problem is a little lacking here regarding (EventableConsumer etc.) but is this not just related to the bernard plugin/middleware? or even just to your domain?
I do get the problem that you want to be sure that both use the same event emitter but (personally) i feel this is up to the developer to make sure of. If you instantiate the classes with different event emitters it should be developers problem not the plugins problem.
Also writing good docs and a good example would solve this for (most) devs.

@boekkooi yeah, sorry. It is related to the bernard plugin. But I wonder that using a DI solution it can be easily solved. We will see. I will leave this open for now and see what I can come up with.

We've talked about it before but I'm also :+1: on passing in the event emitter; there's a lot of frameworks and libraries these days that rely on getting the correct emitter and folks are pretty used to that by now. I think good setup docs for the Bernard plugin can mitigate this as well.

What should the EventableCommandBus be renamed to? Also, currently the main namespace in th package is League\Tactician meaning the decorator is currently in the same namespace as the main command bus. However, the other namespace in the package is CommandEvents which is reserved for the Event classes. So the namespace is still a question.
Any ideas?

Bernard related discussion moved to thephpleague/tactician-bernard-queueing#4

Possible naming:
League\Tactician\CommandEvents\EventMiddleware
League\Tactician\CommandEvents\Event\CommandSomething

I'd be down with League\Tactician\CommandEvents\EventMiddleware.

@rosstuck I'm not sure but i would sort of expect League\Tactician\Plugins\EventMiddleware based on the current core repo but hey that's probably just a bad idea.

We agreed that real plugins should go into their own namespaces which is fine. I think that Plugins namespace is the confusing one.

@sagikazarmark thanks for letting me know.
I'm +1 on League\Tactician\CommandEvents\EventMiddleware


What Is Ansible?

We ask that you please be patient as our team works through approving and publishing all articles/tutorials in a timely manner. Allow 1-3 days for a topic to be reviewed and/or approved - allow 3-7 days for an articles to be reviewed and/or published.
Proposed title of the article
What Is Ansible ?
Introduction paragraph (2-3 paragraphs):
Ansible is an open-source software provisioning, configuration management, and application-deployment tool enabling infrastructure as code. It runs on many Unix-like systems and can configure both Unix-like systems as well as Microsoft Windows.
Key takeaways:

What is Ansible
Why Ansible
Ansible configuration
Ansible architecture, playbook, and inventory.

References:
Please list links to any published content/research that you intend to use to support/guide this article.
Ansible
Ansible Docs

Good afternoon and thank you for submitting your topic suggestion. @Olanetsoft
Your topic form has been entered into our queue and should be reviewed (for approval) as soon as a content moderator is finished reviewing the ones in the queue before it.

Hi @Olanetsoft. How will your article defer from other pre-existing documentation?

Hello @WanjaMIKE , For better comprehension, I will use graphical/diagram depiction as well as a step-by-step tutorial.

Check out this PR https://github.com/section-engineering-education/engineering-education/pull/130. I feel that you content duplicates what is already covered there. Feel free to suggest another topic. Thanks


Add support in Makefile to install it on Mac as well

Signed-off-by: M S Vishwanath Bhat<EMAIL_ADDRESS>

Thank you for your contribution :+1:


Primal Stage Guide Suggestion

Hi, would it be possible for you to provide more information about how the blocks and items in Primal Stage are obtained? There are no mod reviews so there isn't much info anywhere. Currently have no idea how to get kiln bricks to start smelting core. Thank you.

Hi, would it be possible for you to provide more information about how the blocks and items in Primal Stage are obtained? There are no mod reviews so there isn't much info anywhere. Currently have no idea how to get kiln bricks to start smelting core. Thank you.

just smelt sandy clay compound in primitive grill to get kiln bricks
I'll write a guide later

Ans do the iron chunks go into the kiln oven? Right clicking on them
doesn't put them inside unlike with sand blocks.
On Sun, 14 May 2023, 9:15 pm nanokulon, @.***> wrote:

Hi, would it be possible for you to provide more information about how the
blocks and items in Primal Stage are obtained? There are no mod reviews so
there isn't much info anywhere. Currently have no idea how to get kiln
bricks to start smelting core. Thank you.
just smelt sandy clay compound in primitive grill to get kiln bricks
I'll write a guide later
—
Reply to this email directly, view it on GitHub
https://github.com/nanokulonq/PrimalStage/issues/3#issuecomment-1546991610,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AC5RFN7C6FOLXRJW25TDGWTXGE4MTANCNFSM6AAAAAAYBIHRZI
.
You are receiving this because you authored the thread.Message ID:
@.***>

Ans do the iron chunks go into the kiln oven? Right clicking on them doesn't put them inside unlike with sand blocks.
…
On Sun, 14 May 2023, 9:15 pm nanokulon, @.> wrote: Hi, would it be possible for you to provide more information about how the blocks and items in Primal Stage are obtained? There are no mod reviews so there isn't much info anywhere. Currently have no idea how to get kiln bricks to start smelting core. Thank you. just smelt sandy clay compound in primitive grill to get kiln bricks I'll write a guide later — Reply to this email directly, view it on GitHub <#3 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC5RFN7C6FOLXRJW25TDGWTXGE4MTANCNFSM6AAAAAAYBIHRZI . You are receiving this because you authored the thread.Message ID: @.>

You can put only blocks of raw iron/copper/gold in the Kiln
Also u can use REI to see Recipes

the only thing that ive been able to grab so far is the club, fire sticks, and flint shovle(this was after half an hour).

Ans do the iron chunks go into the kiln oven? Right clicking on them doesn't put them inside unlike with sand blocks.
…
On Sun, 14 May 2023, 9:15 pm nanokulon, @.> wrote: Hi, would it be possible for you to provide more information about how the blocks and items in Primal Stage are obtained? There are no mod reviews so there isn't much info anywhere. Currently have no idea how to get kiln bricks to start smelting core. Thank you. just smelt sandy clay compound in primitive grill to get kiln bricks I'll write a guide later — Reply to this email directly, view it on GitHub <#3 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC5RFN7C6FOLXRJW25TDGWTXGE4MTANCNFSM6AAAAAAYBIHRZI . You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>
You can put only blocks of raw iron/copper/gold in the Kiln Also u can use REI to see Recipes

do you have to break the primitive grill to get what's on it or am i missing something?

Ans do the iron chunks go into the kiln oven? Right clicking on them doesn't put them inside unlike with sand blocks.
…
On Sun, 14 May 2023, 9:15 pm nanokulon, @.> wrote: Hi, would it be possible for you to provide more information about how the blocks and items in Primal Stage are obtained? There are no mod reviews so there isn't much info anywhere. Currently have no idea how to get kiln bricks to start smelting core. Thank you. just smelt sandy clay compound in primitive grill to get kiln bricks I'll write a guide later — Reply to this email directly, view it on GitHub <#3 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC5RFN7C6FOLXRJW25TDGWTXGE4MTANCNFSM6AAAAAAYBIHRZI . You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>
You can put only blocks of raw iron/copper/gold in the Kiln Also u can use REI to see Recipes

do you have to break the primitive grill to get what's on it or am i missing something?

You need to shift-right click on it with empty hand

Potentially I may just need to keep going, or I may be stupid, but how do you get flint? I've been breaking gravel for several minutes and have had no luck

Potentially I may just need to keep going, or I may be stupid, but how do you get flint? I've been breaking gravel for several minutes and have had no luck

Flint is obtained from gravel, if other mods didn't change loottable for gravel

Potentially I may just need to keep going, or I may be stupid, but how do you get flint? I've been breaking gravel for several minutes and have had no luck

Flint is obtained from gravel, if other mods didn't change loottable for gravel

It was another mod >_>


Change the fontsize of TickMarks

Hello Gerrit,
I have a Question if it's possible to change the fontsize of Tickmarks without setting custom Tickmarks?
The Dokumentation says: The default font size is 18px at a size of 250px. This value will be used to calculate the currentfont size for the ticklabels when scaling.
The Problem is with high values as Tickmarks the numbers are going inside of the Gauge.

Maybe there is an easy solution to this, that I don't see.
Thanks in advance.

If I remember right there should be a property named customTickLabelFontsize in Gauge.

Ah ok...got it...so I could implement a method that would enable custom tick label font size only e.g. setCustomTickLabelFontSizeEnabled() etc.
Would that work for you?

that would work yes :)

Ok...will implement it...and will let you know once it is in...

I've implemented it with the latest commit, could you give it a try?

I just tested it and it works. Thanks alot.
Highly appreciate your work.
It would be very helpful if you could create a new Release with this new feature :)

Okidoki...will release a new version now...

Fixed with version 11.6


Excessive resource consumption & long critical path in XDMA

The system-level synthesis on Vivado 2023.2 targeting at VCU128 evaluation board shows the excessive resource consumption & exceptionally long critical path (~30ns, nearly a hundred LUTs and CARRY8) in XDMA. However, since the synthesis does cross-module optimization, the actual module that causes this problem is difficult to be diagnosed. Based on current finding includes the following point:

There are much hardware LUTs and Adders observed in pipeline register module. This may be introduced by other building blocks.
The address generation utilizes DSP48 block, but the number of blocks is much smaller than the design.

Thus, a thorough redesign and optimization of AGU inside xdma is in favor.

The problem is solved in PR #226.


fix(typing): Ignore [arg-type] error in _deduplicate_enum_errors

Fixes mypy error that appeared during a merge https://github.com/vega/altair/actions/runs/9905108163/job/27364368641
altair/utils/schemapi.py:423: error: Argument 1 to "join" of "str" has incompatible type "Any | Unset"; expected "Iterable[str]"  [arg-type]
Found 1 error in 1 file (checked 367 source files)
Error: Process completed with exit code 1.

Edit
This is ready to merge and is blocking for all other PRs

For my understanding, this is required because of a new version release of jsonschema (v4.23.0) or mypy (changelog)?

For my understanding, this is required because of a new version release of jsonschema (v4.23.0) or mypy (changelog)?

I'm fairly certain it is jsonschema, but I don't understand why the un-annotated validator_value=_unset in https://github.com/python-jsonschema/jsonschema/pull/1019/files would trigger this

@Julian, quick question: is this something to expect to introduce in packages that are dependent on jsonschema?

@Julian, quick question: is this something to expect to introduce in packages that are dependent on jsonschema?

From a glance at the discussion, I think Unset appearing was something they were trying to avoid.
If mypy inferred this type to be Any, there wouldn't be a need to check it is not Unset

Okay so I'm more confident this was caused by the stubs being updated (11 hours ago)
https://github.com/python/typeshed/blob/eb0422195eb89810a4bf6f7cc5689c22d72248dd/stubs/jsonschema/jsonschema/exceptions.pyi#L36
This does have the annotation:
validator_value: Any | Unset

Which mypy is referencing in

error: Argument 1 to "join" of "str" has incompatible type "Any | Unset"; expected "Iterable[str]"  [arg-type]

@mattijn really appreciate you questioning this in https://github.com/vega/altair/pull/3475#issuecomment-2225215229
There were no runtime changes introduced by jsonschema, so I'm simply ignoring this "error" as it is simply a correctness vs library intention issue.
If the typeshed stubs are updated in the future, as a result of https://github.com/python-jsonschema/jsonschema/pull/1019#issuecomment-2225773286 - we'll get a [unused-ignore] and be able to revert back to the original code.

I'm a bit concerned that this means that the latest released altair version will not pass mypy checks anymore when using the latest released version of jsonschema. Or I'm wrong in thinking this? Does this need to be raised at the typeshed repository? @binste, do you have some insights here, also on mypy_primer. I don't feel technically skilled in regards to type optimizations.

I'm a bit concerned that this means that the latest released altair version will not pass mypy checks anymore when using the latest released version of jsonschema. Or I'm wrong in thinking this? Does this need to be raised at the typeshed repository? @binste, do you have some insights here, also on mypy_primer. I don't feel technically skilled in regards to type optimizations.

@mattijn apologies if I've misunderstood the question, but to break this down:
jsonschema

The new release of jsonschema adds type hints to _Error.
The only parameter that is relevant to this PR is validator_value.

All that changed was adding the hint of Any.

Nothing was introduced in this release which would change the actual value returned by _Error.validator_value

https://github.com/python-jsonschema/jsonschema/pull/1019#issuecomment-2225773286

From an end-user perspective as I tried to say in this PR, it's just plain incorrect -- the public type of that attribute is str, will always be str, and it's an implementation detail that in the course of assembling the object we still do this temporary _Unset nonsense which we'd never do if it were authored today. But no one downstream using the attribute should be seeing anything but str, if they did it would be a bug in this library.

v4.22.0
v4.23.0

class _Error(Exception):
    def __init__(
        self,
        message: str,
        validator=_unset,
        path=(),
        cause=None,
        context=(),
        validator_value=_unset, # <---------------------
        instance=_unset,
        schema=_unset,
        schema_path=(),
        parent=None,
        type_checker=_unset,
    ) -> None: ...

class _Error(Exception):
    def __init__(
        self,
        message: str,
        validator: str = _unset,
        path: Iterable[str | int] = (),
        cause: Exception | None = None,
        context=(),
        validator_value: Any = _unset, # <----------------------
        instance: Any = _unset,
        schema: Mapping[str, Any] | bool = _unset,
        schema_path: Iterable[str | int] = (),
        parent: _Error | None = None,
        type_checker: _types.TypeChecker = _unset,
    ) -> None: ...

typeshed

The corresponding update to typeshed.stubs.jsonschema is not equivalent
To satisfy mypy as a result, you would need to check every parameter every time to confirm it is not Unset
This is not something that the new release of jsonschema wanted to achieve, and is mentioned multiple times throughout the PR and

v4.22.0
v4.23.0

class _Error(Exception):
    def __init__(
        self,
        message: str,
        validator: _utils.Unset | None | protocols.Validator = ...,
        path: Sequence[str | int] = (),
        cause: Incomplete | None = None,
        context: Sequence[ValidationError] = (),
        validator_value=..., # <--------------------
        instance=...,
        schema=...,
        schema_path: Sequence[str | int] = (),
        parent: _Error | None = None,
        type_checker: _utils.Unset | TypeChecker = ...,
    ) -> None: ...

class _Error(Exception):
    def __init__(
        self,
        message: str,
        validator: str | Unset = sentinel,
        path: Iterable[str | int] = (),
        cause: Exception | None = None,
        context: Sequence[ValidationError] = (),
        validator_value: Any | Unset = sentinel, # <--------------------
        instance: Any | Unset = sentinel,
        schema: Mapping[str, Any] | bool | Unset = sentinel,
        schema_path: Iterable[str | int] = (),
        parent: _Error | None = None,
        type_checker: TypeChecker | Unset = sentinel,
    ) -> None: ...

I'm a bit concerned that this means that the latest released altair version will not pass mypy checks anymore

Specifically on this point, altair does pass mypy checks on this branch.
To the same extent that any usage of # type: ignore can be considered passing mypy.

Does this need to be raised at the typeshed repository?

I think so, but I'm unsure whether this would need to be raised by @Julian / @DanielNoord

It's a joy to review PRs which are as well documented as this one! Thanks @dangotbanned for figuring out where the issue came from and explaining it, even with diffs :)

Thanks @binste
I wasn't happy with my earlier uncertainty of what caused the issue, but it was an interesting trail to follow

I'm not familiar with mypy_primer but if it's easy to get Altair added, I think it would be great if PRs in mypy get tested against Altair code (if I understand it correctly).

I'd seen it mentioned before, but it was specifically this https://github.com/python/typeshed/pull/12315#issuecomment-2221519020 which I thought was worth mentioning.
If I've understood correctly, this bot would've flagged the change in typeshed as casuing altair to fail - possibly leading to a different set of stubs being released.
This issue https://github.com/hauntsaninja/mypy_primer/issues/42 seems to be tracking projects to add


[FLINK-20559] [historyserver] don't add caching headers for /jobs/overview.json

What is the purpose of the change
fix overview.json caching: it should not be cached because the job overview should be updated as soon as possible.
Brief change log

add "/jobs/overview.json" to the overview files to be ignored for caching.

Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no

@flinkbot run azure


Enabled doc checks in golint

This change is

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


Change Fargate Security Group / Load Balancer Health Check

Description
LoadBalancer security group is added to node_security_group_id inbound (all ports) when it is created. BUT Node SG isn't the same group that Fargate is in (Even though I really wish it was). That makes health check fail and pod inacessibilidade through it.
So I wonder if it is possible to do one of these:

Change Fargate security group from cluster_primary_security_group_id to node_security_group_id (Which seems like the best option)
Change behavior of LoadBalancers to add inbound ports to cluster_primary_security_group_id  instead of  node_security_group_id. (Not so good security wise but would fix this).

Versions

Terraform:
Terraform v1.0.11
Module:
terraform-aws-modules/eks/aws 18.2.3

hi @francardoso93 - we don't have control over what security group the Fargate profiles use at this point in time (as far as I am aware). also, this module does not have any resources regarding load balancers so I don't think thats applicable here

Ok @bryantbiggs thanks anyway!
I feel that this would be a nice feature though.

I'm sorry - I don't know what feature you are referring to. The AWS API does not expose the ability to specify what security group is assigned to the Fargate profile https://awscli.amazonaws.com/v2/documentation/api/latest/reference/eks/create-fargate-profile.html
AWS has to support the configuration first, then the AWS Terraform provider has to support it before we can support it here

closing for now


User account as a prerequisite.

Addressing issue: https://github.com/MicrosoftDocs/azure-docs/issues/39324
@robinsh to help review.

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

#sign-off

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

#sign-off (in case it's needed)


Don't use Option as Meta key

With an azerty keyboard, you can generate the ~ char with option+n. So if useOptionAsMetaKey is set to true, it's not possible to generate the ~ in the terminal.

I can second this, with the current setup it's impossible to type ~ or @ or any other important characters.

It is very common to enable this option, see: http://osxdaily.com/2013/02/01/use-option-as-meta-key-in-mac-os-x-terminal/ You can just disable the option yourself if you don't want it. Why is this a pull request?

I thought that having this option disabled would be a better default than having it enabled, since all the profiles that ship with Terminal.app have this option disabled.
I'm fine closing this if you don't agree with me though.


Routing Name Truncation Issue on UI

Note
Same issue is occurring for rule name also on routing rule page.
Expected behavior
Routing names should be wrapped appropriately to ensure complete visibility on the UI, even if they exceed the available space.
Users should be able to view the full routing names without any truncation, facilitating easy identification and comprehension.
Steps to reproduce the issue
Navigate to the section of the UI where routing names are displayed.
Observe routing names that are longer than the available space.
Notice that instead of wrapping to accommodate the full name, the routing names are truncated.
Attempt to discern the complete routing names, which may be challenging due to truncation.
Environment details
App version : v1.1.0
App environment : UAT
Additional information
https://jam.dev/c/c997ad44-99f4-47db-afbf-c14b8aecbe5d

This is a pretty low priority issue since the likely hood that someone will actually do this is pretty low. So @ymaheshwari1 if you haven't already finished this fix, we can skip this.

Ok, Sir moving this  to backlog.

Closing issue since we will not be picking it in near future


Firebase deployment failed: Couldn't find binary.

Issue Description
Deployment fails with the error Firebase deployment failed: Couldn't find binary.
Configuration
  lane :firebase_deploy_android do
    UI.message "Deploying Android build to Firebase"
    ENV['GOOGLE_APPLICATION_CREDENTIALS'] = File.expand_path('./firebase-key.json')

    apk_path = Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]
    UI.message "APK Path: #{apk_path}"
    UI.message "Firebase Android App ID: #{ENV['FIREBASE_ANDROID_APP_ID']}"

    unless File.exist?(apk_path)
      UI.error "APK file not found at #{apk_path}"
      UI.user_error!("Failed to locate the APK file for Firebase deployment.")
    end

    begin
      firebase_app_distribution(
        android_artifact_path: apk_path,
        android_artifact_type: "APK",
        app: ENV['FIREBASE_ANDROID_APP_ID'],
        service_credentials_file: './firebase-key.json', # Optional: Use service account JSON
        debug: true
      )
      UI.success "Successfully deployed to Firebase"
    rescue => e
      UI.error "Firebase deployment failed: #{e.message}"
      UI.message "Continuing build despite Firebase deployment failure"
    end
  end

Complete verbose output
[09:12:20]: ----------------------------------------
[09:12:20]: --- Step: Verifying fastlane version ---
[09:12:20]: ----------------------------------------
[09:12:20]: Your fastlane version 2.225.0 matches the minimum requirement of 2.198.0  ✅
...
| fastlane-plugin-firebase_app_distribution | 0.9.1   | firebase_app_distribution_add_testers, firebase_app_distribution_get_udids, firebase_app_distribution_create_group, firebase_app_distribution_delete_group, firebase_app_distribution, firebase_app_distribution_get_latest_release, firebase_app_distribution_remove_testers
....
     FIREBASE_ANDROID_APP_ID: ***
    FIREBASE_IOS_APP_ID: ***
    FIREBASE_CLI_TOKEN: ***
    GOOGLE_APPLICATION_CREDENTIALS: $HOME/firebase-key.json

....

 [09:37:12]: Deploying Android build to Firebase
[09:37:12]: APK Path: /Users/runner/work/mobile-app-react-native/mobile-app-react-native/android/app/build/outputs/apk/release/app-release.apk
[09:37:12]: Firebase Android App ID: ***
[09:37:12]: ---------------------------------------
[09:37:12]: --- Step: firebase_app_distribution ---
[09:37:12]: ---------------------------------------
[09:37:12]: Firebase deployment failed: Couldn't find binary.

Pluginfile:
gem 'fastlane-plugin-firebase_app_distribution'

I might have some wrong configuration, but I tested with Google credentials and FIREBASE_TOKEN_CI and got the same error. Actually, from the logs, you can see that the app path is correct, and there is an app file in there. Can you advise?
The same issue I have with the ios build, where configuration is pretty similar.
locally it works fine:
lane :firebase_deploy_android do
  UI.message "Deploying Android build to Firebase"
  ENV['GOOGLE_APPLICATION_CREDENTIALS'] = File.expand_path('./creds.json')
  begin
    firebase_app_distribution(
      android_artifact_path: "./app-release.apk",
      android_artifact_type: "APK",
      app: ENV['FIREBASE_ANDROID_APP_ID'],
      service_credentials_file: './creds.json', # Optional: Use service account JSON
      debug: true
    )
    UI.success "Successfully deployed to Firebase"
  rescue => e
    UI.error "Firebase deployment failed: #{e.message}"
    UI.message "Continuing build despite Firebase deployment failure"
  end
end

I guess there is a problem with apk_path variable but in logs I see the path is correct and the same path we use for deployment to MS AppCenter
Update:
added more logs and the apk is definitely there:
[12:36:25]: ------------------------------------------------------------
[12:36:25]: Cruising over to lane 'android firebase_deploy_android' 🚖
[12:36:25]: Deploying Android build to Firebase
[12:36:25]: APK Path: /Users/runner/work/mobile-app-react-native/mobile-app-react-native/android/app/build/outputs/apk/release/app-release.apk
[12:36:25]: Firebase Android App ID: ***
[12:36:25]: Listing contents of APK directory: /Users/runner/work/mobile-app-react-native/mobile-app-react-native/android/app/build/outputs/apk/release
[12:36:25]: $ ls -la /Users/runner/work/mobile-app-react-native/mobile-app-react-native/android/app/build/outputs/apk/release
[12:36:25]: ▸ total 243856
[12:36:25]: ▸ drwxr-xr-x  4 runner  staff        128 Nov 22 12:35 .
[12:36:25]: ▸ drwxr-xr-x  3 runner  staff         96 Nov 22 12:35 ..
[12:36:25]: ▸ -rw-r--r--  1 runner  staff  124847927 Nov 22 12:35 app-release.apk
[12:36:25]: ▸ -rw-r--r--  1 runner  staff        383 Nov 22 12:35 output-metadata.json
[12:36:25]: ---------------------------------------
[12:36:25]: --- Step: firebase_app_distribution ---
[12:36:25]: ---------------------------------------
[12:36:25]: Firebase deployment failed: Couldn't find binary.
[12:36:25]: Continuing build despite Firebase deployment failure
[12:36:25]: Cruising back to lane 'android all_app_center' 🚘

I tried to hardcode the apk path, but got the same error. I also double-checked all the secrets.

@kaibolay maybe you can advise? Thanks in advance

The code printing the error message is:
        binary_path = get_binary_path(platform, params)
        UI.user_error!("Couldn't find binary.") if binary_path.nil?
        UI.user_error!("Couldn't find binary at path #{binary_path}.") unless File.exist?(binary_path)

The odd thing is that binary_path appears to be nil, otherwise the path would be printed as part of the error message.
So the problem seems to be in get_binary_path. I see nothing suspicious there. Could it be that the platform is inferred incorrectly somehow and the code path for iOS is taken?

@kaibolay I don't think so, to be honest, because the iOS build is the next step in a build pipeline. We do not even have an IPA built on this step. Even more, the previous step uses the same path to upload app-release.apk to the MS AppCenter.

At this point I can only suggest more logging:

Actions.lane_context[SharedValues::PLATFORM_NAME]
Actions.lane_context[SharedValues::GRADLE_AAB_OUTPUT_PATH]
Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]
params[:app]
params[:apk_path]
params[:android_artifact_path]

Added more logs. Lane:
  lane :firebase_deploy_android do
    UI.message "Deploying Android build to Firebase"
    ENV['GOOGLE_APPLICATION_CREDENTIALS'] = File.expand_path('/tmp/firebase-key.json')

    apk_path = Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]
    aab_path = Actions.lane_context[SharedValues::GRADLE_AAB_OUTPUT_PATH]
    platform_name = Actions.lane_context[SharedValues::PLATFORM_NAME]

    UI.message "APK Path: #{apk_path}"
    UI.message "AAB Path: #{aab_path}"
    UI.message "Platform Name: #{platform_name}"
    UI.message "Firebase Android App ID: #{ENV['FIREBASE_ANDROID_APP_ID']}"
    # Log the Firebase deployment parameters
    UI.message "Deployment Parameters:"
    UI.message "Params[:app]: #{ENV['FIREBASE_ANDROID_APP_ID']}"
    UI.message "Params[:apk_path]: #{apk_path}"
    UI.message "Params[:android_artifact_path]: #{apk_path}"

    # Extract directory of the APK
    apk_dir = File.dirname(apk_path)

    # List files in the APK directory
    UI.message "Listing contents of APK directory: #{apk_dir}"
    Actions.sh("ls -la #{apk_dir}")

    # Verify if the APK file exists
    unless File.exist?(apk_path)
      UI.error "APK file not found at #{apk_path}"
      UI.user_error!("Failed to locate the APK file for Firebase deployment.")
    end

    begin
      firebase_app_distribution(
        android_artifact_path: apk_path,
        android_artifact_type: "APK",
        app: ENV['FIREBASE_ANDROID_APP_ID'],
        service_credentials_file: '/tmp/firebase-key.json', # Optional: Use service account JSON
        debug: true
      )

      UI.success "Successfully deployed to Firebase"
    rescue => e
      UI.error "Firebase deployment failed: #{e.message}"
      UI.message "Continuing build despite Firebase deployment failure"
    end
  end

Logs:
[10:18:52]: Release '657' (10.0.1) was successfully distributed to group "ORG"
[10:18:53]: Release '657' (10.0.1) was successfully distributed'
[10:18:53]: Release '657' (10.0.1) was successfully distributed to group "Collaborators"
[10:18:53]: Release '657' is available for download at: https://install.appcenter.ms/orgs/ORG/apps/ORG-Android
[10:18:53]: skipping since tag and create GH release already done
[10:18:53]: Cruising back to lane 'android all_app_center' 🚘
[10:18:53]: ------------------------------------------------------------
[10:18:53]: --- Step: Switch to android firebase_deploy_android lane ---
[10:18:53]: ------------------------------------------------------------
[10:18:53]: Cruising over to lane 'android firebase_deploy_android' 🚖
[10:18:53]: Deploying Android build to Firebase
[10:18:53]: APK Path: /Users/runner/work/mobile-app-react-native/mobile-app-react-native/android/app/build/outputs/apk/release/app-release.apk
[10:18:53]: AAB Path:
[10:18:53]: Platform Name: android
[10:18:53]: Firebase Android App ID: ***
[10:18:53]: Deployment Parameters:
[10:18:53]: Params[:app]: ***
[10:18:53]: Params[:apk_path]: /Users/runner/work/mobile-app-react-native/mobile-app-react-native/android/app/build/outputs/apk/release/app-release.apk
[10:18:53]: Params[:android_artifact_path]: /Users/runner/work/mobile-app-react-native/mobile-app-react-native/android/app/build/outputs/apk/release/app-release.apk
[10:18:53]: Listing contents of APK directory: /Users/runner/work/mobile-app-react-native/mobile-app-react-native/android/app/build/outputs/apk/release
[10:18:53]: $ ls -la /Users/runner/work/mobile-app-react-native/mobile-app-react-native/android/app/build/outputs/apk/release
[10:18:53]: ▸ total 243856
[10:18:53]: ▸ drwxr-xr-x  4 runner  staff        128 Dec  3 10:17 .
[10:18:53]: ▸ drwxr-xr-x  3 runner  staff         96 Dec  3 10:17 ..
[10:18:53]: ▸ -rw-r--r--  1 runner  staff  124847831 Dec  3 10:17 app-release.apk
[10:18:53]: ▸ -rw-r--r--  1 runner  staff        383 Dec  3 10:17 output-metadata.json
[10:18:53]: ---------------------------------------
[10:18:53]: --- Step: firebase_app_distribution ---
[10:18:53]: ---------------------------------------
[10:18:53]: Firebase deployment failed: Couldn't find binary.
[10:18:53]: Continuing build despite Firebase deployment failure
[10:18:53]: Cruising back to lane 'android all_app_center' 🚘
[10:18:53]: -------------------------------------------
[10:18:53]: --- Step: Switch to ios app_center lane ---
[10:18:53]: -------------------------------------------
[10:18:53]: Cruising over to lane 'ios app_center' 🚖
[10:18:53]: ------------------------------------------
[10:18:53]: --- Step: Switch to ios pre_build lane ---
[10:18:53]: ------------------------------------------
[10:18:53]: Cruising over to lane 'ios pre_build' 🚖
[10:18:53]: ----------------------
[10:18:53]: --- Step: printenv ---
[10:18:53]: ----------------------

so, as you see, at the previous step the artifact has been uploaded to the AppCenter.

Sorry, this really stumps me. I think you could try finding firebase_app_distribution_action.rb in your gems directory and add a lot of debug logging in get_binary_path.
You'll probably need to add and log a lot of temporary variables to figure out exactly what branch the code is taking.
Hopefully that will help.

another interesting finding:

I was thinking there could be a problem with temporary file system, so I copied apk file and credentials to home, but the issue still persists:

  lane :firebase_deploy_android do
    UI.message "Deploying Android build to Firebase"
    ENV['GOOGLE_APPLICATION_CREDENTIALS'] = File.expand_path('/Users/runner/work/firebase-key.json')

    apk_path = Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]
    aab_path = Actions.lane_context[SharedValues::GRADLE_AAB_OUTPUT_PATH]
    platform_name = Actions.lane_context[SharedValues::PLATFORM_NAME]

    UI.message "APK Path: #{apk_path}"
    UI.message "AAB Path: #{aab_path}"
    UI.message "Platform Name: #{platform_name}"
    UI.message "Firebase Android App ID: #{ENV['FIREBASE_ANDROID_APP_ID']}"
    # Log the Firebase deployment parameters
    UI.message "Deployment Parameters:"
    UI.message "Params[:app]: #{ENV['FIREBASE_ANDROID_APP_ID']}"
    UI.message "Params[:apk_path]: #{apk_path}"
    UI.message "Params[:android_artifact_path]: #{apk_path}"

    # Verify if the APK file exists
    unless File.exist?(apk_path)
      UI.error "APK file not found at #{apk_path}"
      UI.user_error!("Failed to locate the APK file for Firebase deployment.")
    end

    # Copy APK to /tmp directory
    tmp_apk_path = "/Users/runner/work/app-release.apk"
    FileUtils.cp(apk_path, tmp_apk_path)
    UI.message "Copied APK to temporary path: #{tmp_apk_path}"

    # Confirm the file exists in /Users/runner/work
    unless File.exist?(tmp_apk_path)
      UI.error "Failed to copy APK to temporary path: #{tmp_apk_path}"
      UI.user_error!("Couldn't find APK file at #{tmp_apk_path} after copying.")
    end

    # List files in /tmp for debugging
    UI.message "Listing contents of /tmp directory:"
    Actions.sh("ls -la /Users/runner/work")

    # Firebase App Distribution
    begin
      firebase_app_distribution(
        android_artifact_path: tmp_apk_path,
        android_artifact_type: "APK",
        app: ENV['FIREBASE_ANDROID_APP_ID'],
        service_credentials_file: '/Users/runner/work/firebase-key.json',
        debug: true
      )

      UI.success "Successfully deployed to Firebase"
    rescue => e
      UI.error "Firebase deployment failed: #{e.message}"
      UI.message "Continuing build despite Firebase deployment failure"
    end
  end

  lane :build do |options|
    gradle(task: 'clean', project_dir: ENV['ANDROID_DIR_PATH'])
    gradle(
      project_dir: ENV['ANDROID_DIR_PATH'],
      task: options[:is_bundle]? "bundle" : "assemble" ,
      build_type: ENV['BUILD_CONFIGURATION_ANDROID']
    )
  end

and logs:
INFO [2024-12-05 17:12:56.50]: Cruising back to lane 'android all_app_center' 🚘
INFO [2024-12-05 17:12:56.50]: -----------------------------------------------------
INFO [2024-12-05 17:12:56.50]: Step: Switch to android firebase_deploy_android lane
INFO [2024-12-05 17:12:56.50]: -----------------------------------------------------
INFO [2024-12-05 17:12:56.50]: Cruising over to lane 'android firebase_deploy_android' 🚖
INFO [2024-12-05 17:12:56.50]: Deploying Android build to Firebase
INFO [2024-12-05 17:12:56.50]: APK Path: /Users/runner/work/mobile-app-react-native/mobile-app-react-native/android/app/build/outputs/apk/release/app-release.apk
INFO [2024-12-05 17:12:56.50]: AAB Path:
INFO [2024-12-05 17:12:56.50]: Platform Name: android
INFO [2024-12-05 17:12:56.50]: Firebase Android App ID: ***
INFO [2024-12-05 17:12:56.50]: Deployment Parameters:
INFO [2024-12-05 17:12:56.50]: Params[:app]: ***
INFO [2024-12-05 17:12:56.50]: Params[:apk_path]: /Users/runner/work/mobile-app-react-native/mobile-app-react-native/android/app/build/outputs/apk/release/app-release.apk
INFO [2024-12-05 17:12:56.50]: Params[:android_artifact_path]: /Users/runner/work/mobile-app-react-native/mobile-app-react-native/android/app/build/outputs/apk/release/app-release.apk
INFO [2024-12-05 17:12:56.58]: Copied APK to temporary path: /Users/runner/work/app-release.apk
INFO [2024-12-05 17:12:56.58]: Listing contents of /tmp directory:
INFO [2024-12-05 17:12:56.58]: $ ls -la /Users/runner/work
INFO [2024-12-05 17:12:56.61]: ▸ total 243856
INFO [2024-12-05 17:12:56.61]: ▸ drwxr-xr-x   8 runner  staff        256 Dec  5 17:12 .
INFO [2024-12-05 17:12:56.61]: ▸ drwxr-xr-x  42 runner  staff       1344 Dec  5 16:54 ..
INFO [2024-12-05 17:12:56.61]: ▸ drwxr-xr-x   3 runner  staff         96 Dec  5 16:47 _PipelineMapping
INFO [2024-12-05 17:12:56.61]: ▸ drwxr-xr-x   4 runner  staff        128 Dec  5 16:47 _actions
INFO [2024-12-05 17:12:56.61]: ▸ drwxr-xr-x  10 runner  staff        320 Dec  5 16:48 _temp
INFO [2024-12-05 17:12:56.61]: ▸ -rw-r--r--   1 runner  staff  124847831 Dec  5 17:12 app-release.apk
INFO [2024-12-05 17:12:56.61]: ▸ -rw-r--r--   1 runner  staff       2440 Dec  5 16:48 firebase-key.json
INFO [2024-12-05 17:12:56.61]: ▸ drwxr-xr-x   3 runner  staff         96 Dec  5 16:47 mobile-app-react-native
INFO [2024-12-05 17:12:56.61]: ---------------------------------------
INFO [2024-12-05 17:12:56.61]: --- Step: firebase_app_distribution ---
INFO [2024-12-05 17:12:56.61]: ---------------------------------------
ERROR [2024-12-05 17:12:56.61]: Firebase deployment failed: Couldn't find binary.
INFO [2024-12-05 17:12:56.61]: Continuing build despite Firebase deployment failure
INFO [2024-12-05 17:12:56.61]: Cruising back to lane 'android all_app_center' 🚘
INFO [2024-12-05 17:12:56.61]: -------------------------------------------
INFO [2024-12-05 17:12:56.61]: --- Step: Switch to ios app_center lane ---
INFO [2024-12-05 17:12:56.61]: -------------------------------------------
INFO [2024-12-05 17:12:56.61]: Cruising over to lane 'ios app_center' 🚖
INFO [2024-12-05 17:12:56.61]: ------------------------------------------
INFO [2024-12-05 17:12:56.61]: --- Step: Switch to ios pre_build lane ---
INFO [2024-12-05 17:12:56.62]: ------------------------------------------
INFO [2024-12-05 17:12:56.62]: Cruising over to lane 'ios pre_build' 🚖

Keeping digging

@kaibolay I figured it out.
Forked the repo and updated the mentioned method to have more logs:
      def self.get_binary_path(platform, params)
        UI.message "Invoking `get_binary_path` with platform: #{platform}, params: #{params.inspect}"

        if platform == :ios
          UI.message "Resolving iOS binary path..."
          binary_path = params[:ipa_path] ||
                        Actions.lane_context[SharedValues::IPA_OUTPUT_PATH] ||
                        Dir["*.ipa"].sort_by { |x| File.mtime(x) }.last

          if binary_path
            UI.message "Resolved iOS binary path: #{binary_path}"
          else
            UI.error "Failed to resolve iOS binary path. Ensure the IPA file exists and paths are correctly configured."
          end

          return binary_path
        end

        if platform == :android
          UI.message "Resolving Android binary path..."

          # Check for params[:apk_path] or params[:android_artifact_path]
          if params[:apk_path] || params[:android_artifact_path]
            binary_path = params[:apk_path] || params[:android_artifact_path]
            if File.exist?(binary_path)
              UI.message "Resolved binary path from params: #{binary_path}"
              return binary_path
            else
              UI.error "Binary specified in params does not exist: #{binary_path}"
            end
          end

          # Handle AAB artifact type
          if params[:android_artifact_type] == 'AAB'
            UI.message "Artifact type is AAB. Attempting to resolve path for AAB file..."
            binary_path = Actions.lane_context[SharedValues::GRADLE_AAB_OUTPUT_PATH] ||
                          Dir["*.aab"].last ||
                          Dir[File.join("app", "build", "outputs", "bundle", "release", "app-release.aab")].last

            if binary_path
              if File.exist?(binary_path)
                UI.message "Resolved AAB binary path: #{binary_path}"
                return binary_path
              else
                UI.error "Resolved AAB binary does not exist at: #{binary_path}"
              end
            else
              UI.error "Failed to resolve AAB binary path. Check Gradle build output or artifact configuration."
            end
          end

          # Handle APK artifact type (default)
          UI.message "Artifact type is APK. Attempting to resolve path for APK file..."
          binary_path = Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] ||
                        Dir["*.apk"].last ||
                        Dir[File.join("app", "build", "outputs", "apk", "release", "app-release.apk")].last

          if binary_path
            if File.exist?(binary_path)
              UI.message "Resolved APK binary path: #{binary_path}"
              return binary_path
            else
              UI.error "Resolved APK binary does not exist at: #{binary_path}"
            end
          else
            UI.error "Failed to resolve APK binary path. Check Gradle build output or artifact configuration."
          end

          # If no binary path is resolved
          UI.error "Failed to resolve Android binary path for platform: #{platform}. Check logs for details."
          return nil
        end

        # Unsupported platform
        UI.error "Unsupported platform specified: #{platform}. Only :ios and :android are supported."
        nil
      end

and in logs:
INFO [2024-12-06 10:33:32.15]: Copied APK to temporary path: /Users/runner/work/app-release.apk
INFO [2024-12-06 10:33:32.15]: Listing contents of /tmp directory:
INFO [2024-12-06 10:33:32.15]: $ ls -la /Users/runner/work
INFO [2024-12-06 10:33:32.17]: ▸ total 243856
INFO [2024-12-06 10:33:32.17]: ▸ drwxr-xr-x   8 runner  staff        256 Dec  6 10:33 .
INFO [2024-12-06 10:33:32.17]: ▸ drwxr-xr-x  42 runner  staff       1344 Dec  6 10:14 ..
INFO [2024-12-06 10:33:32.17]: ▸ drwxr-xr-x   3 runner  staff         96 Dec  6 10:05 _PipelineMapping
INFO [2024-12-06 10:33:32.17]: ▸ drwxr-xr-x   4 runner  staff        128 Dec  6 10:06 _actions
INFO [2024-12-06 10:33:32.17]: ▸ drwxr-xr-x  11 runner  staff        352 Dec  6 10:07 _temp
INFO [2024-12-06 10:33:32.17]: ▸ -rw-r--r--   1 runner  staff  124847831 Dec  6 10:33 app-release.apk
INFO [2024-12-06 10:33:32.17]: ▸ -rw-r--r--   1 runner  staff       2440 Dec  6 10:07 firebase-key.json
INFO [2024-12-06 10:33:32.17]: ▸ drwxr-xr-x   3 runner  staff         96 Dec  6 10:05 mobile-app-react-native
INFO [2024-12-06 10:33:32.17]: ---------------------------------------
INFO [2024-12-06 10:33:32.17]: --- Step: firebase_app_distribution ---
INFO [2024-12-06 10:33:32.17]: ---------------------------------------
INFO [2024-12-06 10:33:32.18]: Invoking `get_binary_path` with platform: android, params: #<FastlaneCore::Configuration:0x00007fa0d01a06a8 @available_options=[#<FastlaneCore::ConfigItem:0x00007fa0d01c5fe8 @key=:ipa_path, @env_name="FIREBASEAPPDISTRO_IPA_PATH", @env_names=["FIREBASEAPPDISTRO_IPA_PATH"], @description="Path to your IPA file. Optional if you use the _gym_ or _xcodebuild_ action", @short_option=nil, @default_value=nil, @default_value_dynamic=false, @verify_block=nil, @is_string=true, @data_type=nil, @optional=true, @conflicting_options=nil, @conflict_block=nil, @deprecated=nil, @sensitive=false, @code_gen_sensitive=false, @allow_shell_conversion=false, @display_in_shell=true, @skip_type_validation=false, @code_gen_default_value=nil>, #<FastlaneCore::ConfigItem:0x00007fa0d01c5548 @key=:googleservice_info_plist_path, @env_name="GOOGLESERVICE_INFO_PLIST_PATH", @env_names=["GOOGLESERVICE_INFO_PLIST_PATH"], @description="Path to your GoogleService-Info.plist file, relative to the archived product path"
ERROR [2024-12-06 10:33:32.18]: Unsupported platform specified: android. Only :ios and :android are supported.
ERROR [2024-12-06 10:33:32.18]: Firebase deployment failed: Couldn't determine path for android binary.
INFO [2024-12-06 10:33:32.18]: Continuing build despite Firebase deployment failure
INFO [2024-12-06 10:33:32.18]: Cruising back to lane 'android all_app_center' 🚘
INFO [2024-12-06 10:33:32.18]: -------------------------------------------
INFO [2024-12-06 10:33:32.18]: --- Step: Switch to ios app_center lane ---

so, I added
platform = platform.to_sym
and:
INFO [2024-12-06 11:09:12.38]: ---------------------------------------
INFO [2024-12-06 11:09:12.38]: --- Step: firebase_app_distribution ---
INFO [2024-12-06 11:09:12.38]: ---------------------------------------
INFO [2024-12-06 11:09:12.38]: Invoking `get_binary_path` with platform: android, params: #<FastlaneCore::Configuration:0x00007f9d6e9fb538 @available_options=[#<FastlaneCore::ConfigItem:0x00007f9d6bec8c80 @key=:ipa_path, @env_name="FIREBASEAPPDISTRO_IPA_PATH", @env_names=["FIREBASEAPPDISTRO_IPA_PATH"], @description="Path to your IPA file. Optional if you use the _gym_ or _xcodebuild_ action", @short_option=nil, @default_value=nil, @default_value_dynamic=false, @verify_block=nil, @is_string=true, @data_type=nil, @optional=true, @conflicting_options=nil, @conflict_block=nil, @deprecated=nil, @sensitive=false, @code_gen_sensitive=false, @allow_shell_conversion=false, @display_in_shell=true, @skip_type_validation=false, @code_gen_default_value=nil>, #<FastlaneCore::ConfigItem:0x00007f9d6bec8910 @key=:googleservice_info_plist_path, @env_name="GOOGLESERVICE_INFO_PLIST_PATH", @env_names=["GOOGLESERVICE_INFO_PLIST_PATH"], @description="Path to your GoogleService-Info.plist file, relative to the archived product path"
INFO [2024-12-06 11:09:12.38]: Resolving Android binary path...
INFO [2024-12-06 11:09:12.38]: Resolved binary path from params: /Users/runner/work/app-release.apk
WARN [2024-12-06 11:09:12.38]: Warning: Debug logging enabled. Output may include sensitive information.
INFO [2024-12-06 11:09:12.38]: 🔐 Authenticating with --service_credentials_file path parameter: /Users/runner/work/firebase-key.json
INFO [2024-12-06 11:09:12.81]: 📡 Uploading the APK.
D, [2024-12-06T11:09:12.832254 #4579] DEBUG -- : Sending HTTP post https://firebaseappdistribution.googleapis.com/upload/v1/projects/PROJECT/apps/***/releases:upload?
D, [2024-12-06T11:09:15.821322 #4579] DEBUG -- : 200
D, [2024-12-06T11:09:15.825711 #4579] DEBUG -- : #<HTTP::Message:0x00007f9d78923570 @http_body=#<HTTP::Message::Body:0x00007f9d789234d0 @body="***\n" + "  \"name\": \"projects/1031382296889/apps/***/releases/-/operations/70f3ee3a34424849c19476850273b36db47193df41e9c3203e4dcced1885bd21\"\n" + "***\n", @chunk_size=nil, @positions=nil, @size=0>, @http_header=#<HTTP::Message::Headers:0x00007f9d78923548 @body_charset=nil, @body_date=nil, @body_encoding=#<Encoding:UTF-8>, @body_size=0, @body_type=nil, @chunked=false, @dumped=false, @header_item=[["Content-Type", "application/json; charset=UTF-8"], ["Vary", "Origin"], ["Vary", "X-Origin"], ["Vary", "Referer"], ["X-GUploader-UploadID", "AFiumC7vOoabxx4yUZ3YnlirFPv9_C8DnTLOwiol1THpeq9OtiKYEP5Jqw0r5qkRnfb-j3ltnrV01aA"], ["Content-Length", "178"], ["Date", "Fri, 06 Dec 2024 11:09:16 GMT"], ["Server", "UploadServer"], ["Alt-Svc", "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"]], @http_version="1.1", @is_request=false, @reason_phrase="OK", @request_absolute_uri=nil,
D, [2024-12-06T11:09:15.826720 #4579] DEBUG -- : Success - "***\n" +
"  \"name\": \"projects/PROJECT/apps/***/releases/-/operations/70f3ee3a34424849c19476850273b36db47193df41e9c3203e4dcced1885bd21\"\n" +
"***\n"
INFO [2024-12-06 11:09:15.82]: 🕵 Validating upload…
D, [2024-12-06T11:09:20.880941 #4579] DEBUG -- : Sending HTTP get https://firebaseappdistribution.googleapis.com/v1/projects/PROJECT/apps/***/releases/-/operations/70f3ee3a34424849c19476850273b36db47193df41e9c3203e4dcced1885bd21?
D, [2024-12-06T11:09:21.028094 #4579] DEBUG -- : 200
D, [2024-12-06T11:09:21.028975 #4579] DEBUG -- : #<HTTP::Message:0x00007f9d6ec93ed0 @http_body=#<HTTP::Message::Body:0x00007f9d6ec92fa8 @body="***\n" + "  \"name\": \"projects/1031382296889/apps/***/releases/-/operations/70f3ee3a34424849c19476850273b36db47193df41e9c3203e4dcced1885bd21\"\n" + "***\n", @chunk_size=nil, @positions=nil, @size=0>, @http_header=#<HTTP::Message::Headers:0x00007f9d6ec93a98 @body_charset=nil, @body_date=nil, @body_encoding=#<Encoding:UTF-8>, @body_size=0, @body_type=nil, @chunked=false, @dumped=false, @header_item=[["Content-Type", "application/json; charset=UTF-8"], ["Vary", "Origin"], ["Vary", "X-Origin"], ["Vary", "Referer"], ["Content-Encoding", "gzip"], ["Date", "Fri, 06 Dec 2024 11:09:21 GMT"], ["Server", "ESF"], ["X-XSS-Protection", "0"], ["X-Frame-Options", "SAMEORIGIN"], ["X-Content-Type-Options", "nosniff"], ["Alt-Svc", "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"], ["Transfer-Encoding", "chunked"]], @http_version="1.1", @is_request=false, @reason_phrase="OK", @reque
D, [2024-12-06T11:09:21.029611 #4579] DEBUG -- : Success -

I don't know if it is sufficient to add platform = platform.to_sym into the plugin repo, but still.

Thank you for tracking this down!
I still don't understand how platform ends up being a string.
The main fastlane code calls to_sym before assigning the platform value to lane_context[PLATFORM_NAME]:
      self.current_platform = (platform ? platform.to_sym : nil)
      […]
      Actions.lane_context[Actions::SharedValues::PLATFORM_NAME] = current_platform

and in the plugin code uses either  lane_context[PLATFORM_NAME]  or :android or :ios :
      platform = lane_platform || platform_from_app_id(app_id)

      […]

      def self.lane_platform
        Actions.lane_context[Actions::SharedValues::PLATFORM_NAME]
      end

      def self.platform_from_app_id(app_id)
        if app_id.include?(':ios:')
          :ios
        elsif app_id.include?(':android:')
          :android
        end
      end

Do you have any idea what might be going on?

@kaibolay the only thing that comes to my mind - another plugin is rewriting it. I checked them one by one and found this:
    def self.default_output_file
        platform = Actions.lane_context[Actions::SharedValues::PLATFORM_NAME].to_s

So, it converts the platform symbol (e.g., "ios") into a string (e.g., "ios").
We use this plugin exactly before uploading to Firebase, so we found an explanation. Please, let me know if you are going to merge your PR and I won't need to handle a fork :)
Thanks for your time, without your suggestions, I would not have found a solution.

@anton-demydov-zoral Thanks for investigating further. The code you found looks innocent, though: It indeed converts the value from lane_context[PLATFORM_NAME] to a string, but lane_context[PLATFORM_NAME] remains unchanged.
That being said, I'll still merge my code once it's reviewed. I hope the updated plugin will be released in the next few days.

Thank you!


Planner: Add Task Recurrence to export-user-data

This feature has been in the product for some time; adding docs.

@tiburd I was advised to tag you, to discover what I need to do to get this merged. Thank you!

I will check to see who might be able to review this.

@DaMoksha Hi David,
I'll merge the PR after the article author (@efrene) approves.

Approving now.  Thanks!

@DaMoksha. Sorry for the delay. I looked up who you were and noticed you were in the same group as some of the folks I was going to ask to review. :-) Thanks!


Fix settings

Codecov Report

Merging #7 (cf21a2b) into master (afb2153) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master        #7   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            8         8
  Lines          406       406
  Branches        57        57
=========================================
  Hits           406       406

Impacted Files
Coverage Δ

djwto/authentication.py
100.00% <100.00%> (ø)

djwto/tokens.py
100.00% <100.00%> (ø)

djwto/urls.py
100.00% <100.00%> (ø)

djwto/views.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


2024.1

Checklist

[x] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

I reenabled mkl-openmpi again to see if the segfault is gone. Also libxsmm is on for this test.

@oschuett
2024.1 does not work with BUILD_DBCSR=ON anymore
cmake results in the following error:
CMake Error at CMakeLists.txt:594 (find_package):
  By not providing "FindDBCSR.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "DBCSR", but
  CMake did not find one.

  Could not find a package configuration file provided by "DBCSR" (requested
  version 2.6) with any of the following names:

    DBCSRConfig.cmake
    dbcsr-config.cmake

  Add the installation prefix of "DBCSR" to CMAKE_PREFIX_PATH or set
  "DBCSR_DIR" to a directory containing one of the above files.  If "DBCSR"
  provides a separate development package or SDK, be sure it has been
  installed.

https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=852134&view=logs&j=9e75aa61-5b36-561b-5f10-ea64a909c89f&t=6f1dc2fb-a6cb-5c46-0a92-93ce551ee674
Any pointers? Do we need another dbcsr release, too, maybe?

I think the cause is quite clear:
2023.2 searched like this for dbcsr:
f(NOT CP2K_BUILD_DBCSR)
find_package(DBCSR 2.4 REQUIRED)
else()
2024.1 misses the NO CP2K_BUILD_DBCSR if

Yes, the CMake option CP2K_BUILD_DBCSR was dropped. Sorry, that was missing from the release notes.
For the time being we're still including the DBCSR sources in the our release tar-ball, but that's probably going to change with the next release as well. So the best solution forward would be to create a separate feedstock for DBCSR. The Spack project already took that route.
As a starting point we could use this script.

Sure thing, if you setup the repository, I will create a PR. Until then I will try to push for 2023.2 still. I'm nearly converged on the libint feedstock. Once I add libint, we can merge that one, so that I can unblock my colleague.

Sure thing, if you setup the empty repository, I will create a PR.

Yes, I can get the ball rolling unless @alazzaro would like to take the lead in packaging DBCSR for Conda?

For the moment I made the dbcsr build part of this recipe again.

Both 2023.2 and 2024.1 are now good to merge.
Both have the incompatibility with scalapack-mkl, which is why I disabled that build again. Once we externalize dbcsr, we can pull out the dbcsr build from this recipe and rebuild.
But apart from that: Please review.

For the moment I made the dbcsr build part of this recipe again.

Perfect! Then we can take our time with the DBCSR package.

Both 2023.2 and 2024.1 are now good to merge.

Thanks! I've already merged 2023.2, which created some conflicts for this PR...

@conda-forge-admin, please rerender


Delete row is not being propagated to foreign key dependent rows.

Describe the bug
I have configured my tables to being deleted in case the parent table is deleted like in the next code:
@UseRowClass(Category, generateInsertable: true)
class Categories extends Table {
  TextColumn get id => text().map(IdToUuidConverter())();
  TextColumn get categoryName => text()();

  @override
  Set<Column<Object>>? get primaryKey => {id};
}

The dependent table is the next one:
@UseRowClass(Program, generateInsertable: true)
class Programs extends Table {
  TextColumn get id => text().map(IdToUuidConverter())();
  TextColumn get fkCategoryId => text().references(
        Categories,
        #id,
        onDelete: KeyAction.cascade,
      )();
  TextColumn get name => text()();
  TextColumn? get description => text().nullable()();
  BoolColumn get selectedByDefault => boolean()();
  BoolColumn get forceInstall => boolean()();
  IntColumn get programCommandStorageType =>
      integer().map(ProgramCommandStorageTypeConverter())();

  @override
  Set<Column<Object>>? get primaryKey => {id};
}

When I execute the next deletion I see that the it only deletes the Category row and it leaves orphan rows at Program table:
await (delete(categories)..where((tbl) => tbl.id.equals(categoryId))).go();

I've tried upgrading to 2.11.1 but it doesn't seem to work.
Note: The propagation is being generating:
WritePropagation(
            on: TableUpdateQuery.onTableName('categories',
                limitUpdateKind: UpdateKind.delete),
            result: [
              TableUpdate('programs', kind: UpdateKind.delete),
            ],
          ),

Thanks for your time.

Did you enable the foreign keys pragma in sqlite3? Foreign keys are disabled by default.
If you haven't done that yet, a good place to enable foreign keys is in the post-migration callback by adding this to your migration strategy:
beforeOpen: (details) async {
  await customStatement('PRAGMA foreign_keys = ON');
}

I'm sorry this was

Did you enable the foreign keys pragma in sqlite3? Foreign keys are disabled by default.
If you haven't done that yet, a good place to enable foreign keys is in the post-migration callback by adding this to your migration strategy:
beforeOpen: (details) async {
  await customStatement('PRAGMA foreign_keys = ON');
}

I made a typo, I wrote foreign_key instead foreign_keys, thank you so much, I'm so sorry.


NPE prints at APIM side server log for migrated 3.1.0 Is-km setup

Description:
The apim server log has been printed the following exception when it calling the key template retriever.
Exception in thread "Timer-13" java.lang.NullPointerException
	at java.util.Objects.requireNonNull(Objects.java:203)
	at java.util.Arrays$ArrayList.<init>(Arrays.java:3813)
	at java.util.Arrays.asList(Arrays.java:3800)
	at org.wso2.carbon.apimgt.gateway.throttling.util.KeyTemplateRetriever.loadKeyTemplatesFromWebService_aroundBody6(KeyTemplateRetriever.java:117)
	at org.wso2.carbon.apimgt.gateway.throttling.util.KeyTemplateRetriever.loadKeyTemplatesFromWebService(KeyTemplateRetriever.java:116)
	at org.wso2.carbon.apimgt.gateway.throttling.util.KeyTemplateRetriever.run_aroundBody0(KeyTemplateRetriever.java:55)
	at org.wso2.carbon.apimgt.gateway.throttling.util.KeyTemplateRetriever.run(KeyTemplateRetriever.java:51)
	at java.util.TimerThread.mainLoop(Timer.java:555)
	at java.util.TimerThread.run(Timer.java:505)

Steps to reproduce:

Setup APIM 3.0.0 with is-km 5.9
Create, Publish, Subscribe and invoke API for both tenant and super tenant users
Do the migration steps the for APIM 3.1.0  with is-km 5.10
Start the Iskm first and the APIM
APIM prints NPE for timer task to retrieve templates

Affected Product Version:
3.1.0
Environment details (with versions):
Mac Os
DBs:
Mysql, PostgreSQL

Optional Fields
Related Issues:

Suggested Labels:

Suggested Assignees:

This is reproducible in normal  APIM3.0.0 - iskm5.10  setup.
It seems there is a difference between ResourceAccessControl configuration at identity.xml at Iskm as it has been configured as default-access="deny"

Solution:
We have to make the following config[1] to true for Is-km.
"resource_access_control.default_access_allow":true,
[1] https://github.com/wso2/carbon-identity-framework/blob/master/features/identity-core/org.wso2.carbon.identity.core.server.feature/resources/org.wso2.carbon.identity.core.server.feature.default.json#L405

In real deployment adding the following configuration to deployment.toml file resides in the <IS_KM>/repository/conf folder will solve the issue
{code}
[resource_access_control]
default_access_allow= true
{code}

Thanks. We will fix this issue via WUM.

@SiluniPathirana, yeah it worked for me. thanks.


help wanted: Can I access the kusto cluster data with a user account rather than a authorized client(app) by Go SDK

This is an ask for help, Thanks.
The Go SDK autorest.Authorizer is commonly initialized with ClientID, TenantID, which means I need to create an app and authorize it to access kusto cluster.  Besides, I guess Kusto itself is an application(Client) ?
However, I hope to access the kusto cluster directly with an authorized user account.  I have check https://docs.microsoft.com/zh-cn/azure/data-explorer/kusto/management/access-control/how-to-authenticate-with-aad but fail to find a solution. Could you give me a more detaied infomation?
Thanks a lot.

Hi,
We currently support any auth method provided by https://github.com/Azure/go-autorest/blob/main/autorest/azure/auth/auth.go
There's device code auth and user/password auth you can attempt to use (the latter is less recommended).


Error on service worker extension editor details don't load on vscode server

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

VS Code Version: from sources

Steps to Reproduce:

run server
open vscode on browser
go to extensions view and click on a extension
click con details tab, then changelog, then details again
:bug: extension details doesn't load and this error shows in console

Uncaught (in promise) DOMException: Failed to execute 'postMessage' on 'Client': Port at index 0 is already neutered.

Created a PR fixing this https://github.com/microsoft/vscode/pull/139347
cc @mjbvz

Can you share some details about your setup? The current code works for me with both yarn web and on vscode-dev in my testing

@mjbvz I just tested it on vscode dev insiders and the issue happens

Thanks! I confirmed this happens after visiting the second extension page
The PR should work but I am going to fix this in a different way as I think this identified another bug

/verified


Setup new deployment server

To test the progress on where we stand; create a deployment server to monitor the progress.

This is done, many thanks to @pratimakandel
Link to the deployment server: https://test2021.nepalmap.org/


Shelly Gen2 discovered but no data gets populated

Hello, and thank you for developing these automations!
I have just recently installed a ShellyPlus1 device, and also installed your scripts and automations as per your instructions.
The script runs and (apparently to my) generates no errors, I am attaching the Home-Assistant log output.
But then all the sensors that the script generates are flagged as "unavailable"...
What am I missing...?
Shellyplus1-log.txt

Thanks!:-)

Please correctly fill out the issue template.

Duplicate #93


Lapce become unresponsive and freeze when using workspace symbol search

Lapce Version
Latest master -> 7c993f94
System information
os: Linux archlinux 5.19.12-arch1-1 #1 SMP PREEMPT_DYNAMIC Wed, 28 Sep 2022 13:21:25 +0000 x86_64 GNU/Linux
wm: sway 1.7 (wayland)
I think given the nature of the bug it's worthy to note that I am having this issue on a relatively low-end machine (AMD Ryzen 5 4500U 8Gb of RAM).
Describe the bug
When using workspace symbol search with any LSP server, lapce become unresponsive and then completely freeze.
Additional information
Lapce doesn't crash, it just completely freeze.
There are no error in the log but it seems lapce and the LSP server are doing some intensive work.
I tried with both rust-analyzer and the java lsp server getting the same result.

This seems to be due to some code setting the input and then updating it, which alerts it to set the input again. Thus if you type fast enough, then you can have a cycle where it modifies the input repeatedly. This has happened before, though I thought I fixed it last time. I'll fix this issue.


unique email not working while create

Hi, for example I created a below code in my index.html
var User = {
  email<EMAIL_ADDRESS>  password: 'admin',
  permissions: ['*']
};

app.service('auth').create(User).then(user => {
  console.log('Created default user', user);
}).catch(console.error);

I don't know why but after each page refresh create is new user. My schema model look like below:
module.exports = function (app) {
  const mongooseClient = app.get('mongooseClient');
  const auth = new mongooseClient.Schema({

    email: { type: String, unique: true, dropDups: true, required : true },
    password: { type: String, required : true },
    permissions: { type: String },

    createdAt: { type: Date, default: Date.now },
    updatedAt: { type: Date, default: Date.now }
  });

  return mongooseClient.model('auth', auth);
};

On the occasion why my collection name here is auth and after create an user is auths?

What module versions are you using? Is there error messages?

I have feathes-cli version 2.3.7 any error message. Something is wrong because previously it was OK. Previously I created one user and next I received a message that the user exists. Now after each page refresh is create new user. Script not checks if user exists but after changed db.collection from auth on eg. users I can create only one user with the same email. The second time I receive a message: "email<EMAIL_ADDRESS>already exists."
I don't understand that.  The problem is the same.

We need an example application to look at and reproduce the problem.

I know what was a problem probably. I launched my application, then I refreshed a page and is created a new user. Then I had to remove db without stopped the application. In this moment I refreshed a page and each next refresh has been creating a new user without checks if user already exists. I don't stopped the app! I checks now and I see that when I drop db or collection and I stop app and it relaunch I can add only one the same user. Can you explain me why I have to stop app before db.dropDatabase()? Tell me too why my collection in schema is "auth" and in mongo I see "auths" while "auth" collection exists too but is some other data there.

I think the auth vs. auths name is a mistake on your side. The generator will not change db or collection names. Dropping a database from under a running application without restarting it is always a case that can cause tons of issues.

I created new DB, then I launched this application. After launched the application in mongoDB I see that DB it was created and when I use this DB and I execute the command: show collection(); I see auths collection and system.indexes. I don't see auth collection but if I execute an command: db.auth.find({}); I receive this result:

db.auth.find({});
2017-09-20T13:27:00.412+0200 TypeError: Object function () {
var ex;
try {
this._authOrThrow.apply(this, arguments);
} catch (ex) {
print(ex);
return 0;
}
return 1;
} has no method 'find'
db.auths.find({});

I created too new application too and I have the same issue.

As I mentioned before, without a reproducible example it is almost impossible for us to figure out what is happening here.

I understand, OK. Below is my config file:
{
"host": "localhost",
"port": 3030,
"public": "../public/",
"paginate": {
"default": 10,
"max": 50
},
"authentication": {
"secret": "My secret key",
"strategies": [
"jwt",
"local"
],
"path": "/authentication",
"service": "auth",
"jwt": {
"header": {
"type": "access"
},
"audience": "https://yourdomain.com",
"subject": "anonymous",
"issuer": "feathers",
"algorithm": "HS256",
"expiresIn": "1d"
},
"local": {
"entity": "user",
"usernameField": "email",
"passwordField": "password"
}
},
"mongodb": "mongodb://localhost:27017/MyDatabase"
}
I noticed, that after first launched application is created hidden auth collection. I can have empty index.html, js file, whatever. Does not matter. First launched my application is changed my collection while in my config is auth.

I'm experiencing the same issue.
Here are the steps I took to reproduce scaffolding an app from scratch.
NodeJS v8.1.2
FeathersJS 2.3.3
RethinkDB 2.3.6

$ feathers generate app
? Accept defaults...

$ feathers generate authentication
? What authentication providers do you want to use? Other PassportJS strategies not in this list can
still be configured manually. Username + Password (Local)
? What is the name of the user (entity) service? users
? What kind of service is it? RethinkDB
? What is the database connection string? rethinkdb://localhost:28015/smart_garden

curl 'http://localhost:3030/users/' -H 'Content-Type: application/json' --data-binary '{ "email"<EMAIL_ADDRESS>"password": "secret" }'
curl 'http://localhost:3030/users/' -H 'Content-Type: application/json' --data-binary '{ "email"<EMAIL_ADDRESS>"password": "secret" }'
curl 'http://localhost:3030/users/' -H 'Content-Type: application/json' --data-binary '{ "email"<EMAIL_ADDRESS>"password": "secret" }'
curl 'http://localhost:3030/users/' -H 'Content-Type: application/json' --data-binary '{ "email"<EMAIL_ADDRESS>"password": "secret" }'

I verified that 4 documents were created with the same email and password.

RethinkDB does not support unique constraints. You will have to check yourself in a before hook if the email already exists. This also applies to MongoDB (you have to add a unique constraint on the email).
I'm going to close this issue since there is not much more debugging we can do without a complete repository to reproduce the original problem.

OK, Daff my problem had resolved previously. Now I wanted to understand why after first launched my application my collection name "auth" is changed on "auths" however the main question is other than my second question we can close this issue. We know that my problem was on me side. I not stopped the application. Regarding the second problem I named my authentication service like users (default) and everything is all right. I think the mongoDB has "auth" collection for authenticate their users therefore a collection name "auth" is changed on "auths". This is no matter already. Thanks for replies and the conversation.


Modern client integrations

I develop an application using angular 7 and i waste so much time. Just now I realized that ONLY working client is a OLD autobahn-js v0.8.2 because it's only still use WampV1, all newer versions working with WampV2, BUT Rachet is working ONLY with WampV1 and because this bundle works with Ratchet we can't use it on new modern apps.
I am interested, will this bundle planning to switch to https://github.com/voryx/Thruway instead of Ratchet because of WampV2
Any suggestions welcome.

Personally, I'd suggest rather than migrating this bundle to a WampV2 library it'd be better off looking for a WampV2 oriented bundle or writing a new one using a library like Thruway.  It's essentially a different protocol and implementing support for it means replacing the library and rewriting this bundle's internals to adapt to it, I think for an existing product that leap might be a bit too big.

Thank you,
based on what type of project i'm working on im going to band  WS and start using
https://github.com/dunglas/mercure


Workflow using vcpkg projects... do I just need to know to add windows .lib files to my linker inputs?

Using vcpkg has been a breath of fresh air, making adding a new dependency so much less painful than before. :)
Sometimes though I'll end up with unresolved external symbols and need to add certain windows .lib files to my linker inputs to get things to compile.
For example, I made a dummy project using grpc:x64-windows-static. Everything compiles, but when linking, I get a ton of unresolved external symbols in grpc.lib, libcrypto.lib, address_sorting.lib, cares.lib (e.g. __imp_CertOpenStore) . To resolve them I have to add ws2_32.lib and crypt32.lib to the linker inputs.
Is this just expected? Vcpkg handles so much that I was surprised when I hit this.

For cmake projects, they are not needed because the exported cmake configuration files will set the dependent Windows libraries into itself.
For MSVC projects, vcpkg does not currently support this feature, I think we should support it in the future.

Thanks for the info. Just curious how I could look at dependencies and cmake files to figure this out in the visual studio case? For the errors I got, googling was enough to find the libraries I needed to link, but I'm wondering how I'd figure it out otherwise.
I just started grep-ing trying to understand a bit more, and found the ws2_32.lib setting in winsock2\portfile.cmake . Is that what I'm looking for? It's the only cmake file that does that, but winsock2 is not a dependency of grpc, so I'm a little confused.

For cmake configuration files, you can check the folder VCPKG_ROOT/installed/TRIPLET/share/PORT_NAME.
Some of the ports are not support to exported them(such as winsock2), so you have two choice:

Use the cmake provided Find*.cmake if cmake provided it. See Documentation.
Manually implement find_path and find_library.

All ports have a separate portfile.cmake, but this does not mean that they are all built by cmake. Some ports need to use makefile, some use jom, etc.

We hope your question was answered to your satisfaction; if it wasn't, you can reopen with more info.

Thanks for the help with this. I still don't understand 100% but that is due to my slowly learning more details about how the different make systems work, etc. The answers were very helpful in progressing my learning.


[dns] Add the ability to specify multiple dns names for 'weave run --with-dns'

In some use cases, it is very useful to be able to assign multiple DNS names to a single host.
An example, would be:
Having multiple instances of Mesos/Marathon, which require distinct name (like 'marathon-{1..n}'), but at the same time, all having a common 'marathon.weave.local' name as well, since clients don't care and don't want to know how many instances there are, and what's their unique names.
Currently this is solvable using the REST API of weavedns (-X PUT), but that's cumbersome and inconvenient (and error prone).

This is covered by #364.


RFC: Asymmetrical Calendar Split

There's no reason why the calendar needs to be 50% of the screen (on desktop). There's a lot more information in the course pane, so it should be bigger. That should allow us to have a larger font size, improving readability and making the app look less dated.

good first task doers should take a glance at Home.tsx for the relevant code! For reference, ZotCourse uses a 45/55 split for their Split-Pane view, but feel free to select another ratio that looks good to you!


Remove some InstanceType fields to simplify events

Signed-off-by: Alexandra Bucur<EMAIL_ADDRESS>Description
In order to improve performance when it comes to events sent through the cohort, I removed typeDefDescription, typeDefDescriptionGUID, typeDefSuperTypes, validStatusList and validInstanceProperties fields from InstanceType class.
Testing
JUnits, FVTs, CTS repository workbench, Notebook labs for building a data catalog - passed.

Is this considered a backwards-compatible change? (Or maybe it doesn't need to be given we're bumping to v4.0?)
This has an impact on repository connectors that are, for example, storing all of these details as part of the instance type. (And in cases like XTDB relying on them to do validation of the details of instances — supertypes, valid properties, etc.)

@cmgrote Hi Chris! Let's discuss this on the next developers call.


More canonical installation on Cygwin

The DLL is named cygopenblas.dll, not libopenblas.dll--this is in accordance with the convention for all DLLs linked against Cygwin.
The import lib (still called libopenblas.dll.a) is installed in $(PREFIX)/lib.  Although this is not strictly necessary on Cygwin (gcc can link directly with the DLL) it is still useful to have in some cases.

See https://trac.sagemath.org/ticket/23797

Can you share screenshot of imports/exports from cygwin emulation lib from depends.exe of cygwin-built blas library?
You should be able to link/use binary (mingw-built) libopenblas.dll too

That's an interesting question, though I'm curious what it's relevant to?
From cygwin1.dll:
__assert_func
__cxa_atexit
__getreent
_impure_ptr
atan2
atan2f
atoi
cabs
cabsf
calloc
cexp
cexpf
cos
cosf
csin
csinf
csqrt
csqrtf
cygwin_detach_dll
cygwin_internal
dll_dllcrt0
exit
exp
expf
fputs
free
log
log10
log10f
logf
lround
lroundf
malloc
memcmp
memmove
memset
posix_memalign
pow
powf
printf
puts
realloc
sin
sinf
sqrt

Sure, one could still use the non-Cygwin lib. But this is in the context of building SageMath, where it's not uncommon to custom build many of its dependencies, and for the Cygwin port of Sage I'm working on it's better to have full consistency.  In any case, this PR doesn't change anything about how OpenBLAS is built on Cygwin--just how it's installed there.

I hoped it was single crt call that could be ifdef-avoided, nope it turns out full libm...

Yup, the Cygwin DLL provides libm as well.

Change is sane, sorry for bothering with curiousity.

It's fine--it's an interesting question. Thanks for merging.


Document Troubleshooting for Audio

Add troubleshooting guide for audio/installation in the documentation

This kind of exists, in the FAQ. There may be more troubleshooting/general info that we're missing, though. Any suggestions?


Use correct both flag when pushing remaining delimiters to stack

Fixes #657
Here's the delimiter match-ups that pulldown-cmark made before this commit, annotated to make clear the both flag and the multiple-of-three matching that was erroneously applied:
****foo*bar*baz****
^^12   2   1   ^^^^ = 6
       -   - both

***R]*-*
^^1  1 ^ = 3
     - both

Thanks for your contribution.
I need more time to fully understand the emphasis algorithm, but it looks well.
Could you take a look, @raphlinus?

Perfect, thanks!


standard_init_linux.go:228: exec user process caused: exec format error

Device: Raspberry Pi 4
OS: PiOS 11
Using Portainer, I added all fields shown in the guide (see attached image)

Upon running, I received one error constantly:
standard_init_linux.go:228: exec user process caused: exec format error
I'm not technically savvy, but does this error mean Doplarr is not compatible with ARM, or is it a different issue?

Yeah that looks like an architecture problem. Dopplar itself has no problems with ARM because it runs on the JVM, the docker container needs to have a matching kernel, though. The one I provide is only x86, but I believe the other container providers, hotio and lsio both have ARM versions. You could also just run the jar directly.

Since I haven’t studied the directions for running directly and am a bit more familiar with Docker, I’ll give the hotio container a try. Thanks for confirming my suspicion!

Closing for now - I'll make a note in the docs that the container we provide is x86 only


Fix: Allow regexes

Regexes were not coming through when passing the -r flag. Now they do.
If I'm missing something and the -r flag actually does work currently, my bad.  I couldn't get it to work without this modification, and possibly there's a modification that is more in line with the flow of the code.
Thanks for putting out a helpful tool!

@cloudrave You are absolutely right, I think it is a bug. Thank you very much for your contribution!

@cloudrave Thanks for your contribution!