Ratelimit in Fastapi

First Check

[X] I added a very descriptive title to this issue.
[X] I used the GitHub search to find a similar issue and didn't find it.
[X] I searched the FastAPI documentation, with the integrated search.
[X] I already searched in Google "How to X in FastAPI" and didn't find any information.
[X] I already read and followed all the tutorial in the docs and didn't find an answer.
[X] I already checked if it is not related to FastAPI but to Pydantic.
[X] I already checked if it is not related to FastAPI but to Swagger UI.
[X] I already checked if it is not related to FastAPI but to ReDoc.

Commit to Help

[X] I commit to help with one of those options 👆

Example Code
@app.get("/", dependencies=[Depends(RateLimiter(times=2, seconds=5))])
async def index():
    return {"msg": "Hello World"}

Description
There is no official way to add ratelimit in path operation functions , it would be good if we could limit requests to a specific rate , for example: a client can only request to "/" path 3 times in 60 seconds.
NOTE: Im aware of libraries made for handling this , but they are not trustable and useful enough.
Wanted Solution
i would like a dependency class to handle ratelimits , Both for HTTP And WEBSOCKET Requests
Wanted Code
@app.get("/", dependencies=[Depends(RateLimiter(times=2, seconds=5))])
async def index():
    return {"msg": "Hello World"}

Alternatives
No response
Operating System
Linux
Operating System Details
No response
FastAPI Version
0.70.0
Python Version
3.9.0
Additional Context
No response

I recently saw two projects solving this problem:

https://github.com/laurentS/slowapi
https://github.com/long2ice/fastapi-limiter

I recently saw two projects solving this problem:

https://github.com/laurentS/slowapi
https://github.com/long2ice/fastapi-limiter

NOTE: Im aware of libraries made for handling this , but they are not trustable and useful enough.
which one did you use and which one was better ?
None of them support websocket

I recently saw two projects solving this problem:

https://github.com/laurentS/slowapi
https://github.com/long2ice/fastapi-limiter

NOTE: I'm aware of libraries made for handling this, but they are not trustable and useful enough.
which one did you use and which one was better? None of them support WebSocket

If you code python so you can read the code, check the function or class that you need from one of these packages, and fix this issue

I recently saw two projects solving this problem:

https://github.com/laurentS/slowapi
https://github.com/long2ice/fastapi-limiter

NOTE: I'm aware of libraries made for handling this, but they are not trustable and useful enough.
which one did you use and which one was better? None of them support WebSocket

If you code python so you can read the code, check the function or class that you need from one of these packages, and fix this issue

Is it supposed to be an answer ??!!
I asked for an enhancement , and you say this ? Thanks A lot =)))))))))))))))))

I recently saw two projects solving this problem:

https://github.com/laurentS/slowapi
https://github.com/long2ice/fastapi-limiter

NOTE: Im aware of libraries made for handling this , but they are not trustable and useful enough.
which one did you use and which one was better ? None of them support websocket

What isn't trustable about them?
They're both literally open-source. You can go ahead and read the code line-by-line if you wanted to to make sure they aren't doing anything nefarious. Which I doubt they are.

I recently saw two projects solving this problem:

https://github.com/laurentS/slowapi
https://github.com/long2ice/fastapi-limiter

NOTE: Im aware of libraries made for handling this , but they are not trustable and useful enough.
which one did you use and which one was better ? None of them support websocket

You managed to find a solution which support websockets

I think this features should be built into FastAPI.

I recently saw two projects solving this problem:

https://github.com/laurentS/slowapi
https://github.com/long2ice/fastapi-limiter

NOTE: Im aware of libraries made for handling this , but they are not trustable and useful enough.
which one did you use and which one was better ?
None of them support websocket

Dude, are you sure you went through the documentation of fastapi-limiter? 'cause it does support websocket.


Empty reply from server

Tried running curl wttr.in to test why my waybar was broken.
got error:
❯ curl wttr.in
curl: (52) Empty reply from server

I have the same response. Is this down?

Should work now, please check

Yeah don't work for me either, same error curl: (52) Empty reply from server


Issue with symmetrization of the hubbard occupation matrix

If we symmetrize the hubbard occupation matrix n_s, then the solver becomes crazy after few iterations and electrons fly away (wrong unsymmetrized density warning). This happened before the my wfc refactoring but we leave this work to QE so it was simply forgotten with time.
This does not occur if we do not explicitly symmetrize n_s. The symmetries procedure is identical to the procedure for the density matrix since it is the same function.

@mtaillefumier I pushed a new branch ldapu with the new verification test19. It will crash on the stress tensor.

@mtaillefumier is this issue resolved now?

We close this one as well.


The log browser does not have a Title

We should add a title to the log browser

fixed and added test in : https://github.com/moosetechnology/Midas/commit/a796853d8069c4db45f913a8a380eba570a56889


Return deployment errors to end user?

Investigate to see if we can pass through deployment errors to end user and not whitelist them on a case by case basis.  Example - so they can see errors like ZonalAllocationFailure, RequestDisallowedByPolicy, etc.  These are in principle visible to end users via the CRG anyway.

@amanohar what's your take on this?

@nilsanderselde ptal at this.  A deployment can fail for a million weird reasons and the user needs to know why.  They can already see the deployment error by consulting the cluster resource group, so there is no benefit for us to hide the error from the user when Create() errors out, which is what we currently do (with the current exception of quotas, which we whitelist).
I think we should drop the special case quota error check + error in favour of a generic "we did a deployment and it failed and here's the error we got" kind of error.  WDYT?

Sounds good to me.


Evaluate FTL (BNN) model with DFFD

The media we want to classify with have manipulated or generated faces. We know the model works well with CIFAKE, we need to check it on DFFD as that is closer to the images we are targeting.

DFFD is compiled using multiple different subdatasets. I used CelebA (for real imgs) and PGGAN_v2 (for fakes).
The model works well with DFFD and achieves >0.95 accuracy on ~10k real images from celebA test imgs  and ~10k fake images from DFFD. I selected a 0.9 threshold for prediction through probability (after looking at the logits and corresponding prob). So we predict real if probability is >0.9 and fake otherwise. The accuracy on just the real imgs was 100% which makes this great for filtering out fakes as probability of incorrectly classifying real images is low.
Furthur threshold optimization, possibly with more data, can furthur improve performance.

P.S specific model used was DFFD model with unfrozen medium BNN backbone. I also added the additional channels available as in the paper, this improved performance.


attrs only set L2 MTU if an MTU is specified.

Addresses #445

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 71.374%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1314

Relevant Lines:
1841

💛  - Coveralls


Enable MyBinder in HybridQ

.github/workflows/ must be changed to take into account the fact that Dockerfile now pulls directly from smandra/hybridq-baseline (Dockerfile is using smandra/hybridq-baseline instead of smandra/hybridq-baseline:[python version]).

.github/workflows/ must be changed to take into account the fact that Dockerfile now pulls directly from smandra/hybridq-baseline (Dockerfile is using smandra/hybridq-baseline instead of smandra/hybridq-baseline:[python version]).

Fixed.

MyBinder can be tested at https://mybinder.org/v2/gh/nasa/hybridq/mybinder.


Event Grid - Move to the new proxy server based recorder

See https://github.com/azure/azure-sdk-for-js/issues/17994 for details

#20273


Copy URL with query string does not parse

As part of the migration from Postman to Bruno, I copy/paste URL of my queries.
However, when I paste an URL with query string, like https://httpbin.org/anything?q=test, it does not parse and does not create an entry the query tab.
As soon as I edit the URL field or the query value both (url and query list) are correct.

@arnaduga This as been fixed by @Its-treason in v0.23.0

@helloanoop @Its-treason Can this issue be closed if it is implemented already?


Fix hReview backcompat

Currently the hReview backcompat parsing is pretty broken. Here's a live example:
http://pin13.net/mf2/?url=https%3A%2F%2Fw7apk.com%2Fkenwood-th-d74a

This should be fixed in #111!


Add instructions for updating the Services/Stack to README

The README mentions how to update Grafana Dashboards and Prometheus Alert Rules.
However it doesnt have infos how to update the stack/services itself.

Can one simply pull latest code and re-run ./deploy script and expect it to deploy any updated services/configs?
Do you have to run the ./teardown beforehand and will it persist/reattach the storage and data to the newly created stack then?
Do you have to manually run kubectl set image / apply -f for updating?

@philicious I'll add the instructions in a couple of weeks. Usually, I'm running ./teardown and ./deploy.

@camilb but ./teardown delete all data, or not? A command for updating all components without deleting data exists?
tx

@camilb the response is here :)
I run ./teardown and ./deploy and don't delete any information... sorry for the question :) and tanks for your great work.


Your Phone and Cortana NEW Update cannot be uninstalled by this Debloater

Your Phone and Cortana NEW Update cannot be uninstalled by this Debloater.
I've been experiencing this, since the new update in May 2020 Update until 20H1 update(October 2020 update).
cannot really remove the Cortana and Your Phone even from the custom blacklist or full debloat.

Up.

Up.

Up

Up

Up

Up

Up

Up


Generate 1  new genome assembly from the FDA BioProject SRR's based on Thomas's protocols

Dependent on ticket #142

This may become a Jan 2023 task just FYI.

this task as developed into multiple, new tickets. closing


BUG: (Or missing feature?) objects along tile borders are duplicated

For example in Goldshire the inn building is right on the edge between two tiles and both tiles import the building so it appears duplicated on top of itself. The same is true for all trees along tile borders as well.
I quickly compared with Blender and it doesn't seem like this is the case when importing directly into there.
Haven't done anything towards remedying this yet apart from observing it happening :p

Some objects can be duplicated as many as 4 times. I noticed I had 4 overlapping Fargodeep Mines in my scene.
I'm not sure how best to solve this. I don't know what they've done in the Blender addon to solve it. One potential solution could be to keep track of all imported objects in a static array or something, and then whenever you are about to import a new object you check against that array first. The array would contain a hash or whatnot of the object's name/id and position/rotation/scale, and if the object we are about to import is identical we skip it. But this would only work if you were importing everything at once, and maybe not even then for all I know :p
This is something I probably need to look into because I feel there too many duplicated objects to manually clean up. Since I already have imported most of what I want in this project I'm thinking about making (or finding) an editor script that will allow me to identify all prefab instances with identical transforms in the scene view so that I can delete them all in a single go. If nothing else such a solution is a decent fallback at least.
I'm thinking that ideally this is solved in wow.export. It should ensure that each object only belongs to a single tile, but I have no insights into potential limitations in working with that, or drawbacks for other use cases than my own with such an approach.

wow.export takes the data as-is from WoW and places it in the output. Stormwind, for example, is referenced across a handful of ADTs because it's so big. It makes sense border objects would also have this issue.
Unfortunately, I don't think this will be fixable as a bug, so I think you are right to call this a feature request. Maybe some kind of scene optimizer that can hunt for and disable duplicates.


Feature/1775 rename text2textdataset to textgenerationdataset

#1775 This wraps up the renaming of external API methods like Text2TextRecord and DatasetForText2Text.

I assume this is enough for now. Or do we want to make the effort of remove all mention of Text2Text from our code and also re-name API-endpoints too?


Add partial update support to AttributeManager

For #1576 RFC
This is a non-breaking change -- any custom attribute updater now receive startIndex endIndex parameters. If it doesn't handle them, it would perform a full update on the attribute array just like before.
Change List

Add optional startIndex endIndex parameters to AttributeManager.update
Docs
Unit test

TODO

Add a test app for this feature
Handle partial updates in core layers (e.g. PathTesselator and PolygonTesselator)
Validate the provided range -- in path and polygon use cases, if the old and new vertex counts in the partial range do not match, partial update would corrupt the attribute array. This is less of a concern if we limit the usage to internal scenarios.

@ibgreen @georgios-uber Just calling attributeManager.update does not update the attributes, you also need to mark an attribute as needsUpdate. I wonder if it makes more sense to trigger a partial update with attributeManager.invalidate(triggerName, range) from the layer author's perspective.

Coverage increased (+0.1%) to 62.178% when pulling f3cd377394979a130bc95e3e1fd73ca5983f3956 on x/partial-update into eb3a125531de626d855ce9e3b312c01c8803e506 on master.


Pride.ejs Page: make "Quotes Carousel" section mobile responsive

Right now, the section is only user-friendly in bigger screens- need to make it mobile friendly as well!

Assigned @sushovanb02

ok assign me this . let me see if i can fix it

@chehak123 Can I work on this??


Syntax error in olHelpers.js

In the file
https://github.com/tombatossals/angular-openlayers-directive/blob/master/src/services/olHelpers.js
..there is an redundant comma on line 234:
extractStyles: false,
..which causes a syntax error

You're right. Now it's solved, thanks.


Add app Icon

@LiavGut where do we have an SVG for app icon? is it available in adobe xd?

@sirpy for web or native?
If it's for the native version you can use the regular logo from the Design pattern file.


IZPACK-1528: Add progress listener to UninstallerListener#beforeDelet…

…e(List)

Another complaint:

I'd like to make this enhancement complete for all methods of InstallerListener and UninstallerListener, not just for UninstallerListener#beforeDelete(java.util.List<java.io.File>). But not as a breaking change, but as enhancement. Wouldn't that be possible?

Why we cannot keep the original method of the interface fully functional and just add the new one with the ProgressListener parameter?

I had considered this myself. However, if we kept the original method and added a new method with the additional parameter for the ProgressListener, how would we then ensure, that the interface works for both scenarios ? My initial thought was to implement a default behaviour in AbstractUninstallerListener like this:
    /**
     * Invoked before files are deleted.
     * <p>
     *     The default implementation calls {@link #beforeDelete(List)} for
     *     backwards compatibility.
     * </p>
     *
     * @param files all files which should be deleted
     * @param listener the progress listener
     * @throws IzPackException for any error
     */
    @Override
    public void beforeDelete(List<File> files, ProgressListener listener)
    {
        beforeDelete(files);
    }

While this works for all custom uninstall listeners extending AbstractUninstallerListener, it won't for those just implementing the interface. For that we'd need to call both methods in UninstallerListeners like so:
    /**
     * Invoked before files are deleted.
     *
     * @param files    all files which should be deleted
     * @param listener the progress listener
     * @throws IzPackException if a listener throws an exception
     */
    public void beforeDeletion(List<File> files, ProgressListener listener)
    {
        ProgressHandler handler = new ProgressHandler(listener, prompt);
        for (UninstallerListener l : listeners)
        {
            try
            {
                l.beforeDelete(files);
                l.beforeDelete(files, listener);
            }
            catch (IzPackException exception)
            {
                throw exception;
            }
            catch (Exception exception)
            {
                throw new IzPackException(exception);
            }
        }
    }

What do you think ?

        try
        {
            l.beforeDelete(files);
            l.beforeDelete(files, listener);
        }

Exactly this could be avoided with the suggestion above:

We could for instance add a default implementation to AbstractUninstallerListener
    @Override
    public void beforeDelete(List<File> files, ProgressListener listener)
    {
        beforeDelete(files);
    }

and you just override it if needed.
In this case you could call
   l.beforeDelete(files, listener);

in UninstallerListeners#beforeDeletion as desired.

This would of course require to inherit from AbstractUninstallerListener instead of implementing UninstallerListener, but it would be a fast solution for migrating.

Ok, great ! I'll prepare an update to this pull request.

I'd like to make this enhancement complete for all methods of InstallerListener and UninstallerListener, not just for UninstallerListener#beforeDelete(java.util.List<java.io.File>). But not as a breaking change, but as enhancement. Wouldn't that be possible?

I would have created another ticket and pull request for the InstallerListener. However, I was able to get a hold of a ProgressListener through injecting a reference to IUnpacker and retrieving the value of the private field listener ;) So I started with UninstallerListener, since there's absolutely no way of accessing any ProgressListener.
Anyway, do you think it is really necessary to add a ProgressListener to all methods ? As far as I know, the ProgressListener instance does not change during the lifetime of an uninstall listener. Therefor, a reference retrieved in beforePacks/beforeDelete could be kept in a field and accessed from within the other methods, if needed ?

Anyway, do you think it is really necessary to add a ProgressListener to all methods ?

Not to all methods, but those with lists which could take more time.
At least those with similar parameters like yours.

As far as I know, the ProgressListener instance does not change during the lifetime of an uninstall listener. Therefor, a reference retrieved in beforePacks/beforeDelete could be kept in a field and accessed from within the other methods, if needed ?

I'd not make it more complicated than necessary.
My goal was just to get some basic kind of consistency to this API.
If you're unsure, leave it unchanged.
If it's too complex to do or takes too much time, I'll merge it and we can do this later.
This is just our spare time, right? ;-)

Not to all methods, but those with lists which could take more time.
At least those with similar parameters like yours.

Oh, I see. I know of UninstallerListener#beforeDelete(List<File>, ProgressListener) and InstallerListener#beforePacks(List<Pack>, ProgressListener). Do you have any other listeners in mind which I'm not aware of ?

I'd not make it more complicated than necessary.

Sorry if I was a bit unclear. I do not want to extend AbstractUninstallerListener any further. What I was trying to say is that any custom uninstall listener which wants access to a progress listener in any of the other methods could store a reference to ProgressListener in a local field.

If it's too complex to do or takes too much time, I'll merge it and we can do this later.
This is just our spare time, right? ;-)

I'm fine with it ;)
So to be sure, should I update this pull request and add a ProgressListener to InstallerListener#beforePacks ? We should change the title of the issue, then too.

So to be sure, should I update this pull request and add a ProgressListener to InstallerListener#beforePacks ? We should change the title of the issue, then too.

I'd vote yes for it, this is very similar, to have this more complete.

Done!

Thank you.


Run partial backup with include_addons option?

Hello,
Would it be possible to trigger partial backup to do the backup for selected addon/s (as an opossite to exclude_addons)?
In my case I'm executing backup daily for all addons apart of influx which I need to run on weekly basis (due to big size and time needed). Is it somehow possible without using exclude_addons options and puting on the list all addons apart of influx ?

Hi. I'm actually not a big fan of having multiple config options for the same thing. Sure, both ways would work. It was more a design decision to make it excludable instead of includable.
I guess you are using a script and not doing this by hand. So it should only be a one-time effort to create the list of addons to be excluded.


Fix blank screen on Linux/Ubuntu after login

Thanks!

Please, test in Windows and OS X, teorically it will not be a problem but...


Describe the bug
When I put a path in a race group with intake for example, if the command finishes earlier than the path, the robot just stalls in the last direction it was pointed in.
Expected behavior
It should just cut the robot's ChassisSpeeds to 0
Versions:

OS: Windows 11
GUI Version: 2024.1.4
PPLib Language: Java

This is intended. If a path following command is interrupted, it is up to the user to make sure new speeds are applied to the drive train depending on their use case. This could either be coming to a stop, or continuing to move towards something else without stopping. So, the path following command will not output 0 speeds so that it does not interfere with trying to maintain speed into another command.


Refactor blpapi-http

This PR refactors code on top of develop branch:

Refactor the route handling code(onRequest()) out to a separate class RequestHandler.ts
Refactor api-session.ts into typescript class.
Move request logging into plugin.log() function, which will be called at a later stage than server.pre(). This action will results in logging the request id with the request details.
Move retrieving & logging client certificate into two steps, where retrieving is happening in apiSession.handleRequest() and logging is in plugin.log(). Use typescript 1.4 union type notation and syntax.
Add sessionOptions into conf class for consistency.
Remove unnecessary boolean flag sessConnected in index.ts.
Rename session to blpSession in index.ts.
Change testRequest.js to use https instead of http(and some formatting issue).

This PR serves as the starting block for the much larger changes in #33 while it does not add any functionality related to subscription.

I think this latest commit fixes the session terminated issue (and generally looks ok to me); evw, is this what you were thinking was the problem?

lgtm.  Would appreciate @yupinghu's feedback as well.  Once that let's good, let's squash some commits down and amp-up the commit message to describe the high-level details.

LGTM other than the ' vs " thing we discussed. :)

Squash & change all reference tag to use single quote.


Add cutting guides around the cards

Card templates with light background are difficult to cut without any sort of border around them.

hi this bot generates you amazon gift card?


RAML Support

Is your feature request related to a problem? Please describe.
I would like to import RAML (.raml) documents into Insomnia Designer
Describe the solution you'd like
RAML is extended from YAML and at the moment Insomnia Designer does not allow to import .raml files.
It would be great to see support for this extension..

@nijikokun can you add the feature label to this please :)

Would be glad to participate as contributor if this FR would be approved.


Feat keys resource aligned

These changes make the web key resource API consistent with the v3alpha actions API.
The base branch is feat-keys-resources from PR #8262
To see only the changes from this PR, the base branch should be updated with the latest main.

Manually cherry-picked onto feat-keys-resource


Add undo / redo support to NME

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Snapshot stored with reference name:
refs/pull/15546/merge
Test environment:
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15546/merge/index.html
To test a playground add it to the URL, for example:
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15546/merge/index.html#WGZLGJ#4600
Links to test babylon tools with this snapshot:
https://playground.babylonjs.com/?snapshot=refs/pull/15546/merge
https://sandbox.babylonjs.com/?snapshot=refs/pull/15546/merge
https://gui.babylonjs.com/?snapshot=refs/pull/15546/merge
https://nme.babylonjs.com/?snapshot=refs/pull/15546/merge
To test the snapshot in the playground with a playground ID add it after the snapshot query string:
https://playground.babylonjs.com/?snapshot=refs/pull/15546/merge#BCU1XR#0

WebGL2 visualization test reporter:
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15546/merge/testResults/webgl2playwright/index.html

Visualization tests for WebGPU (Experimental)
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15546/merge/testResults/webgpuplaywright/index.html

Visualization tests for WebGPU (Experimental)
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15546/merge/testResults/webgpuplaywright/index.html

WebGL2 visualization test reporter:
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15546/merge/testResults/webgl2playwright/index.html

~My honest opinion - this is only partly the solution. But it does solve a pain point!~
Ignore that :-)

Discussed offline and we are all good!

I'm afraid that the undo stack list will take up a significant amount of memory if a material has several textures embedded... I've seen .json files that weighed several tens of megabytes. Perhaps we should only store two diffs for each entry (one for undo and one for redo) + the complete json for the current entry in the stack? We'd need a quick way to diff two json, though (I suppose applying a diff to a json should be quick)...

That's why I limited to 64 for now. That being said I like the idea of the diff for an upcoming version


Project Matchmaker

Using AirTable to match people skills & interests with projects.

Beta AirTable matchmaker is available.
https://airtable.com/shrJwZqwa8KIahHR6


[Win] Support backend loading mechanism on Windows

As some changes to CMake were required as well, this includes and thus supersedes #452.
The main addition on top of #452 is, the dynamic library loading mechanism is also supported on Windows now. For this, the loading / closing functions have been moved to separate functions with integrated error handling, which always return nullptrs if something went wrong to simplify the calling functions.
Additionally, the library loading mechanism is relaxed: a new function, which builds a list of unique search paths, is added. One of those paths is the old mechanism, of using the CMAKE_INSTALL_PREFIX/... directory. Alternatively, dladdr and GetModuleHandle are used to determine the position of the (lib)hipSYCL-rt.{so|dll} which then is used as base path.

@hipSYCL-ci-bot test this on the new infra, please :)


Watermark existing EPUB

Hello everybody :)
Is it possible to watermark an existing epub file by this library?
P.S. I asked this question also on the source epublib repo, but I noticed that it is no longer maintained, so I repeat it here.

@Stiuil06 Do you mean add a watermark to the cover?
I guess you can read the EPUB first and modify resources and generate a new EPUB


Is this feature cancelled

is this feature cancelled ?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 9707e1ff-5927-e3e4-134d-8d2b04266f9c
Version Independent ID: bec9f641-757c-b76f-4cee-c823c60222b4
Content: Create featured questions for Power BI Q&A - Power BI
Content Source: powerbi-docs/service-q-and-a-create-featured-questions.md
Service: powerbi
Sub-service: powerbi-service
GitHub Login: @maggiesMSFT
Microsoft Alias: maggies

Hi, @bikubay -- thanks for your question! Are you referring to the ability to add featured Q&A questions? If so, then no, it's not cancelled.
For my own edification, could you say why you thought it was cancelled?

Hi, @bikubay -- feel free to reopen if you have further questions.


Confusing argument layouts (send_receive_into)

The argument layout of point_to_point::send_receive_into(msg, destination, buffer, source) doesn't feel very intuitive.  I read the arguments as pairs "msg - dest, buf - src".
How it reads at the moment is "Message to destination, in to buffer on source" - or something similar.. I think there's a few more functions like this.
I feel it should be send_receive_into(source, msg, destination, buffer) so that it reads as if it is implying that "the source is sending a message to destinations buffer" -> "src - msg, dest - buf", this feels more natural.

The order of the function arguments is inherited from the original C bindings where you specify the buffer (message buffer or receive buffer) first, the communication partner (destination or source) second. This is true for both send and receive functions and since send_receive_into is just a pair of send and receive_into operations packed into a single function, its argument list is the concatenation of the argument lists of those two functions. I am reluctant to give up this similarity to the C bindings.
Also, note that your reading of the improved argument list is not in fact what send_receive_into does. It performs two operations on the calling process: it sends msg to destination and receives a message from source into buffer with the added value that these two operations will not cause each other to block, e.g. source and destination could both refer to the calling process itself and not cause a deadlock.

Ah! I thought that might be the case, thank you. And thank you for the clarification - I've got a fair bit to learn yet :smile:
This isn't the most appropriate avenue to ask questions, but: do you have an example of gathering a nested vector at all?
I so far have a root process sending out the required data via a for p in world.size() loop to each process, where each process runs a mirror for loop to receive the nested vector and push to another vector - using send_receive_into for the root process and receive_into for the non-roots.
It seems I need to do the inverse with each non-root iterating through the Vec<Vec<_>> and using a view to send the data, where the root process... receives_into? in a for loop checking the rank of the msg?
I can't quite see how use of gather_into_root works here - this would concatenate each sent vector in to one contiguous vector right?

Hmm, another step of my confusion here was
            for c in start..end {
                unsafe { // scoped to drop the mut ref so that the column can be moved
                    let msg_to =
                        View::with_count_and_datatype(&self.current[c][..], 1, &data_type);
                    // the process to send to
                    // This is the inverse of how you would expect it to operate;
                    // eg root.send(&msg_to, &process)
                    process.send(&msg_to);
                }
            }

Where process.send is;

Send the contents of a Buffer to the Destination &self
I didn't realise that meant literally calling send() on the process you wanted to receive the data. Essentially sending the data to itself.

Followed by root.receive_into(&mut into); for example where I was reading this as "root receives this in to its buffer" - as opposed to "in the calling process we will receive from root and put it here".
I can get some time in the next while (I have assignments and exams coming up) I'll see if I can draft some sort of introduction or tutorial for you you use - it might be the ideal thing for me to write since I'm an outsider to the codebase and have likely hit many of the same roadblocks other newcomers will.

I can't quite see how use of gather_into_root works here - this would concatenate each sent vector in to one contiguous vector right?

Yes. MPI knows nothing about Rust datatypes so its operations are defined on C arrays. In this situation you can either go with your solution of emulating the gather operation with a series of send and receives into the individual sub-vectors or gather into a flat buffer and then partition it afterwards. The second solution might give better efficiency at least for the inter-process communication of the data.

I didn't realise that meant literally calling send() on the process you wanted to receive the data. Essentially sending the data to itself. Followed by root.receive_into(&mut into); for example where I was reading this as "root receives this in to its buffer" - as opposed to "in the calling process we will receive from root and put it here".

I can get some time in the next while (I have assignments and exams coming up) I'll see if I can draft some sort of introduction or tutorial for you you use - it might be the ideal thing for me to write since I'm an outsider to the codebase and have likely hit many of the same roadblocks other newcomers will.

Yeah, this might be a good idea, eventually. The documentation at the moment is geared towards people who have already used MPI through its C or Fortran bindings and mostly serves to build the connection to those. I can imagine that someone who is completely new to the API might struggle at first. However, since rsmpi is not quite finished yet, I don't know whether it makes sense to write long form documentation just now. It would be another place that has to be modified in case there are API changes, and mostly, I think, without the help of a compiler that warns you when things get out of sync.
As for your observations on the &self argument of send and receive functions: I think this is also something that would be less surprising to someone who knows the original C bindings. The "executor" of MPI point-to-point operations is not explicitly specified, it is always implicitly the calling process.
In the C bindings, receive has the signature receive(buffer, source) (with buffer and source actually comprising multiple actual arguments). I translated these into a receive method on a value that implements Source. I could have translated it as a free function as well. I am not sure why I made the choice initially. Maybe I thought it was a better fit for a Rust library. Maybe I started with send and thought method call syntax would be appropriate due to the calling a method <--> sending a message analogy from classical OOP.


[v14] GlobalFee, IBCHooks

Summary
This PR gets the main branch to a base layer of the features we want. GlobalFee & IBCHooks were taken v13 revert PRs, with interchain-test replacing the current e2e suit. While it is a large PR, majority is auto generated or mass find and replace all
completed

Imports gaia v9
setups up globalfee
merges in #591
adds v14 upgrade handler + default fees (0.0025ujuno or ujunox, 0.001 ATOM (IBC denom) on upgrade)
Regens swagger
Adds globalfee for ujuno to test_node script
Adds ibchooks to upgrade handler as well
renames v13 to v14 everywhere

TODO: remove all e2e test code
Ensure interchain-test is good

GlobalFee

IBCHooks working proof
(increment count over IBC through hermes)

hmm same issue we got before with ica controller - tried that locally but did not fix. So some module is not being added, through this only adds GlobalFee & IBCHooks from v13 - UGH!

I'm going to fork this branch and try out what sdk v0.47.x looks like here.

Also, Don't think that a branch in the version module bumps style really works out.  This branch should use mainline wasmd v0.31.x or v0.40.x

@faddat no no no we are staying on v45 for this release - the main version bumps branch gets us up to .31 wasmd. This is purely getting the new modules in, removing e2e testing, and getting in interchain-test after Justin finishes one last thing

hmm, test pass locally so something to do with githubs CI. I'm going to optimize  heighliner's compile so it caches & does not take 30+ minutes

Nice

Going to poke around, but I bet interchain-test is trying to grab from juno main v13.0.0, but alex brought up its only 13.0.0 now. Either way I need to switch it from cosmoscontracts/juno to cosmoscontracts/juno-e2e for the docker instances for each branch

Hmm seems to fail now before it can even apply the upgrade


Conversion without resizing

Situation
I have a set of big source JPG images compressed with quality ~95. Their resolution is useful for really big screens, but they are too heavy. It would make sense to have them recompressed with quality 70 and use as a src and the biggest srcset.
Solution
Allow sizes[ { width: 0 }, ...], which would be a placeholder for processing with no resizing.
What do you think about this idea?

For similar reasons as #92, I don't think this feature belongs in this plugin. I suggest you keep your source images as high resolution and high quality, but add a resize width for large screens.


Update scorecard-analysis.yml

Codecov Report

Merging #171 (3730db9) into main (0c5c8c8) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #171   +/-   ##
=======================================
  Coverage   67.50%   67.50%
=======================================
  Files          14       14
  Lines        1468     1468
=======================================
  Hits          991      991
  Misses        370      370
  Partials      107      107

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 0c5c8c8...3730db9. Read the comment docs.


EncodeJSONResponse - http: superfluous response.WriteHeader call

Describe the bug
When request to rosetta-etheruem using roestta-cli check:data, it often returns
2022/05/22 06:02:13 http: superfluous response.WriteHeader call from github.com/klaytn/rosetta-sdk-go-klaytn/server.EncodeJSONResponse (routers.go:86)

Related source code: https://github.com/klaytn/rosetta-sdk-go-klaytn/blob/34a3f989ee5f152135e9ab2f64134502ce2e3474/server/routers.go#L79-L88
I found Go Forum posting which deals with this problem and now I'm trying to solve this problem.

I also created https://github.com/coinbase/rosetta-sdk-go/issues/407 to share this problem with Coinbase


Broken link to http://github.com/yesodweb/issues

The “installation failure!” message ends with a broken link to the issue tracker:
installation failure!
If you are just installing and haven't mucked with the code,
please report this to the mail list at http://groups.google.com/group/yesodweb
or on the issue tracker at http://github.com/yesodweb/issues

Thanks for the report!


Feature request-A filter which helps to apply cosmetics.It tells you which shade of cosmetics will fit to your skin tone.(GSSOC)

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Approach to be followed (optional)
A clear and concise description of the approach to be followed.
Additional context
Add any other context or screenshots about the feature request here.

already present


Adds the defines passed through +define+ into the preprocessor.

The goal is to register the defines passed to the processor tool through +define+<macro>[=<value>] into the preprocessor defines map.
Added the method VerilogPreprocess::AddDefineFromCmdLine wihch internally registers defines using the method VerilogPreprocess::RegisterMacroDefinition to ensure that everything is aligned, and these passed defines are treated the same way as macros defined by  `define <macro> <body>.
Suggestion:

It might be the time to use MacroDefinition instead of TextMacroDefinition to save defines in the FileList struct.
But, I am not sure about who will own the data itself as MacroDefinition only holds Tokens (string-views).

Codecov Report

Merging #1424 (150a17b) into master (694974a) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master    #1424   +/-   ##
=======================================
  Coverage   92.92%   92.93%
=======================================
  Files         342      342
  Lines       24158    24169   +11
=======================================
+ Hits        22450    22461   +11
  Misses       1708     1708

Impacted Files
Coverage Δ

verilog/preprocessor/verilog_preprocess.h
100.00% <ø> (ø)

verilog/preprocessor/verilog_preprocess.cc
91.79% <100.00%> (+0.20%)
:arrow_up:

verilog/tools/preprocessor/verilog_preprocessor.cc
89.91% <100.00%> (+0.26%)
:arrow_up:

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

It might be worthwhile actually considering passing the preprocessing directives directly as the FileList object, as it also contains incdirs, which we'll need later. But can be a TODO for later.

The next PR is about the incdirs, I will change it then (y).

Alright, looks like ready to merge unless there is more you want to change.
Let's await the CI to finish.

I am okay with it, ready to merge.

To link this up: the corresponding issue is #1358


[Feature] User vs System errors should be clearly classified and labeled in metrics

Motivation: Why do you think this is important?
It is important for the users to know when something failed due to a User error and when something failed due to a System error, without being very low level.
Goal: What should the final outcome look like, ideally?
On the UI and in the metrics a user should be able to delineate user and system errors.
Describe alternatives you've considered
This needs work in propeller and plugins
Flyte component

[ ] Overall
[ ] Flyte Setup and Installation scripts
[ ] Flyte Documentation
[ ] Flyte communication (slack/email etc)
[x] FlytePropeller
[ ] FlyteIDL (Flyte specification language)
[ ] Flytekit (Python SDK)
[ ] FlyteAdmin (Control Plane service)
[x] FlytePlugins
[ ] DataCatalog
[ ] FlyteStdlib (common libraries)
[ ] FlyteConsole (UI)
[ ] Other

[Optional] Propose: Link/Inline
NA
Additional context
This will improve visibility greatly
Is this a blocker for you to adopt Flyte
NA

A follow up PR is needed to classify dynamic, branch errors too.

As we discussed offline, to accurately be able to collect this data and build any decisions on it, it's not enough to rely on metrics sampling. We are going to expose the error kind and code as separate columns in Flyte Admin DB in order to be able to build queries/dashboards that are consistent, accurate and reliable.

This is now released and will be available as part of 0.3.0


Dynamic datalink

This is the first attempt to create dynamic datalink.
Why dynamic datalink?
making use of tables for datalink is useful since it allows more flexibility (for non-programmable entries) and it is easier to maintain.
Additionally the datalink entries are usually part of the release, and as such get a DOI.
However, in one cases making use of tables to provide datalink entries may not be confortable:

in case of too many entries: like in Gaia, several datalink entries per source_id (same for applause...)

In these cases datalink entries generated on the fly based on the ID are necessary.
Implementation
I added a DynamicDatalinkAdapterMixin class that take care of the dynamic datalink entries. I also added a method called: get_datalink_rows and get_dyn_datalink_links to the BaseDatalinkAdapter, to provide a single point of gathering for the datalink entries (slighlty slower).
This improve greatly the maintenance and flexibility.
These changes should not break the former functionality.
How to
With this new implementation it is possible to add new datalink entries by overwriting the method:
get_dyn_datalink_links from the DatalinkAdapter. This method returns a list of dynamic datalink entries for the provided IDs. The user is free of implementing anything necessary. It just need to declare the new DatalinkAdapter in settings/base.py
Improvements
This pull request also solves some issues the previous implementation had:

There were various place in the code where the datalink data were gathered, making maintenance difficult
There were no flexibility in the way OAI and Datalink were connected (now there is an adapter).

This is working with the dynamic-datalink branch of gaia-app

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

9 of 40 (22.5%)  changed or added relevant lines in 5 files are covered.
4 unchanged lines in 3 files lost coverage.
Overall coverage decreased (-0.1%) to 63.98%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

daiquiri/datalink/viewsets.py
1
3
33.33%

daiquiri/oai/adapter.py
1
4
25.0%

daiquiri/query/models.py
0
5
0.0%

daiquiri/datalink/adapter.py
6
27
22.22%

Files with Coverage Reduction
New Missed Lines
%

daiquiri/datalink/viewsets.py
1
47.83%

daiquiri/query/models.py
1
71.29%

daiquiri/datalink/adapter.py
2
41.13%

Totals

Change from base Build<PHONE_NUMBER>:
-0.1%

Covered Lines:
4723

Relevant Lines:
7382

💛  - Coveralls


stdout option for the tools that directly write to the file

Some formatter tools like black from Python have no option for printing to the stdout. There should be an option so that those tools can directly write to the file without warnings.

I'm also facing this with F#'s Fantomas.

Similar with PHP's PHP-CS-Fixer

In my Symfony project (PHP) I built a little wrapper script to overcome this limitation. It's not nice, but it works for now.
I created the file bin/dprint-stdout-wrapper.sh
#!/usr/bin/env bash

# Currently dprint doesn't provide a way to use commands which modify the
# file directly instead of printing the result to stdout
# see https://github.com/dprint/dprint-plugin-exec/issues/26
#
# Therefore we use this little wrapper script which we can call like this
# bin/dprint-stdout-wrapper.sh vendor/bin/php-cs-fixer fix {{file_path}}
#
# The last argument MUST BE the file path as it first calls the command and
# then uses cat to print that path to a file

# https://unix.stackexchange.com/a/612122
FILE_PATH="${!#}"  # see man bash, search for "indirect expansion"

# this "pops" the file path from the argument list which we use via $@
set -- "${@:1:$#-1}"

$@ $FILE_PATH && cat $FILE_PATH

Now I can use the following config in my dprint.json:
{
    // ...
    "exec": {
        "cwd": "${configDir}",

        "commands": [
            {
                "command": "bin/dprint-stdout-wrapper.sh vendor/bin/php-cs-fixer fix {{file_path}}",
                "exts": ["php"]
            }
        ]
    },
    "excludes": [
        "**/node_modules",
        "**/*-lock.json",
        "assets/vendor/*",
        "assets/**/controllers.json",
        "composer.json",
        "public/assets/*",
        "package.json",
        "README.md",
        "**/*.twig"
    ],
    "plugins": [
        // ...
        "https://plugins.dprint.dev/exec-0.5.0.json@8d9972eee71fa1590e04873540421f3eda7674d0f1aae3d7c788615e7b7413d0"
    ]
}

@adaliszk I just updated my comment. See "Edit 2"

I just noticed one downside: When running dprint fmt the fix is still applied to the file.
So we also would need dprint-plugin-exec to provide us with the current mode, maybe via a command template {{mode}}.
Then in our script we can decide if we want to use fix or check (or --dry-run, etc)

Yeah, I was thinking about making a wrapper like that, but the issue is that there would be two separate reads and writes for the same file.
At the moment, I am exploring the option of changing the PHP-CS-Fixer and, in extension, Laravel Pint to have a print mode instead.

Yes, that's really not very elegant, just a workaround.
Also I now used a similar wrapper for Twig-CS-Fixer and then running prettier with the Plugin for Tailwind automatic class sorting on the file (https://github.com/ttskch/prettier-plugin-tailwindcss-anywhere)
After also adding https://daisyui.com/ it was writing log output from daisyUI to my twig files. I now set an env var in my script which disables logging from the tailwind.config.js – also not very nice.

Okay, my colleague had issues in VS Code because the command wrote to the file multiple times. I now updated my wrapper script to use a temporary file instead.
bin/dprint-stdout-wrapper.sh
#!/usr/bin/env bash

# Currently dprint doesn't provide a way to use commands which modify the
# file directly instead of printing the result to stdout
# see https://github.com/dprint/dprint-plugin-exec/issues/26
#
# Therefore we use this little wrapper script which we can call like this
# bin/dprint-stdout-wrapper.sh vendor/bin/php-cs-fixer fix
#
# dprint passes the input via stdin which we write to a temporary file.
# Then we apply the formatting to the temporary file and write the result
# to stdout. dprint then writes the output back to the input file.

TEMP_FILE=$(mktemp)

# read stdin to temporary file
cat - > $TEMP_FILE

function cleanup {
  rm "$TEMP_FILE"
}
# make sure the temporary file is removed on exit, even in error cases
trap cleanup EXIT

$@ $TEMP_FILE >&2 && cat $TEMP_FILE

To make it work for twig files in VS Code my workaround is even worse, but works now:
bin/fix-twig.sh
#!/usr/bin/env bash

# Currently dprint doesn't provide a way to use commands which modify the
# file directly instead of printing the result to stdout
# see https://github.com/dprint/dprint-plugin-exec/issues/26
#
# Therefore we use this little wrapper script which we can call like this
# bin/fix-twig.sh {{file_path}}
#
# dprint passes the input via stdin which we write to a temporary file.
# Then we apply the formatting to the temporary file and write the result
# to stdout. dprint then writes the output back to the input file.

# We use the file path for prettier to determine the correct parser
# https://prettier.io/docs/en/options.html#file-path

# We use the file path for prettier to determine the correct parser
# https://prettier.io/docs/en/options.html#file-path
FILE_PATH="$1"

TEMP_FILE=$(mktemp)
# read stdin to temporary file
cat - > $TEMP_FILE

# make sure the temporary file is removed on exit, even in error cases
function cleanup {
    rm -f "$TEMP_FILE"
}
trap cleanup EXIT

CURRENT_SCRIPT_DIR_NAME=$(dirname "${BASH_SOURCE[0]}")

vendor/bin/twig-cs-fixer lint --report null --fix $TEMP_FILE

# We only need a real file for Twig-CS-Fixer
# For prettier we can work with a variable
PRETTIER_RESULT="$(cat $TEMP_FILE)"
# So we don't need our temp file anymore now
rm "$TEMP_FILE"

# Throw error after we tried formatting for 25 times
FORMATTING_RETRY_LIMIT=25
COUNT=0

# We use prettier with prettier-plugin-tailwindcss to automatically sort tailwind classes according to the recommended
# class order. To make it work with twig files we need to use plugin ttskch/prettier-plugin-tailwindcss-anywhere
#
# There is a bug when there are multiple elements with the exact same class attribute only the classes of the first
# element are sorted. See https://github.com/ttskch/prettier-plugin-tailwindcss-anywhere/issues/2
#
# We therefore run prettier several times until formatting no longer takes place.
while true
do
    if [ $((++COUNT)) -gt $FORMATTING_RETRY_LIMIT ]; then
        # echo to stderr so we're able to see it in the dprint output
        >&2 echo "Tried to format $FORMATTING_RETRY_LIMIT times with differing results. Twig formatting seems to be unstable."
        exit 1
    fi

    # We use the DISABLE_DAISY_LOGS environment variable to disable daisyUI logs in our tailwind.config.js file
    # When logs are enabled that output would be written to our Twig files.
    PRETTIER_RESULT_UPDATE=$(echo -e "$PRETTIER_RESULT" | \
         DISABLE_DAISY_LOGS=1 \
         node_modules/.bin/prettier \
           --config "$CURRENT_SCRIPT_DIR_NAME/.prettierrc" \
           --stdin-filepath "$FILE_PATH")

    if [ "$PRETTIER_RESULT_UPDATE" != "$PRETTIER_RESULT" ]; then
        PRETTIER_RESULT="$PRETTIER_RESULT_UPDATE"
    else
        break
    fi
done

echo -e "$PRETTIER_RESULT"

My dprint.json looks like:
{
    // ...
    "markup": {
        "associations": [
            "!**/*.twig"
        ]
    },
    "exec": {
        "cwd": "${configDir}",

        "commands": [
            {
                "command": "bin/ci-cd/dprint-stdout-wrapper.sh vendor/bin/php-cs-fixer fix",
                "exts": ["php"]
            },
            {
                "command": "bin/ci-cd/fix-twig.sh {{file_path}}",
                "exts": ["twig"]
            }
        ]
    },
    "excludes": [
        "**/node_modules",
        "**/*-lock.json",
        "assets/vendor/*",
        "assets/**/controllers.json",
        "composer.json",
        "public/assets/*",
        "package.json"
    ],
    "plugins": [
        // ...
        "https://plugins.dprint.dev/exec-0.5.0.json@8d9972eee71fa1590e04873540421f3eda7674d0f1aae3d7c788615e7b7413d0"
    ]
}

I just opened:

https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/discussions/8309
https://github.com/VincentLanglet/Twig-CS-Fixer/discussions/332


allow_unconfirmed_access_for

Hi,
How do you configure allow_unconfirmed_access_for. I've added
Devise.setup do |config|
  config.allow_unconfirmed_access_for = 7.days
end

to config/initializers/devise.rb and confirmed with byebug that the configuration is hit, but the users still aren't allowed unconfirmed access.

@samstickland - sorry for the late reply. This feature hasn't been implemented yet.
I'm just about to roll out version 0.1.31 and I don't want to introduce any more changes. Hopefully I'll be able to include this feature in version 0.1.32.

@lynndylanhurley if you give me some pointers on how to do it, I'd go ahead and give it a try.

Would love to see this implemented. I'd also be up for trying to do it myself if I had some pointers.

Would love to see this as well.

+1  Any progress on this?

Would love to see this as well.  Do we have any other ways to allowed unconfirmed access?

+1 maybe there is another way how we can achieve this without allow_unconfirmed_access_for option?

for those who may be interested - I implemented "allow_unconfirmed_access_for" in next way
add devise.rb file with
Devise.setup do |config|
  config.allow_unconfirmed_access_for = 365.days
end

code from this issue (adds access token after sign up)
https://github.com/lynndylanhurley/devise_token_auth/issues/361

I was able to use:
config.allow_unconfirmed_access_for = nil
with the current version of devise_token_auth, and it allowed a user to login without being confirmed.
Closing this issue for now!


iOS 16 beta: Return empty string when plist value is nil

When parsing an entry in the plist, was getting a NULL entry for the Container, and ended up crashing. Doing an [NSString stringWithUTF8String:] with a NULL value results in a crash.  Not sure why or how this is happening, or whether this is specific to iOS 16 beta 1, but I had to make the following code change to get this to work under iOS 16 beta 1.
The good news is that I was able to pair my device using jitterbugpair and use the iOS 16.0 developer disk image, and was able to try a couple JIT enabled apps (flycast and Play!).
Please feel free to suggest edits and/or additional insight.

Fixed in https://github.com/osy/Jitterbug/commit/e110cc8afe87c1094c490b91cc47312f7f4da138


Update product slug name for Spring Cloud Service 3.x

Are there plans to update the cli to sync up with the new product slug and file name for SCS 3.x to be p_spring-cloud-services?

The product slug name for SCS 3.x on Pivnet is still p-spring-cloud-services
The file name for the SCS 3.x is p_spring-cloud-services
The product slug name for SCS 3.x when deployed to PCF is p_spring-cloud-services

We are using the cli for automation to upgrade PCF tiles- and had to account for these variances. Ideally we just have a new product slug for SCS 3.x.
Thanks!

There are no products at this time on Pivnet that have slugs that start with p_ and there are many that start with p-.  We have no plans, at this time, to change the slug for SCS to p_spring-cloud-services unless the Spring Cloud Services team approached us and requested the change.

I'm going to look into making an alias slug p_spring-cloud-services for p-spring-cloud-services.  I'll let you know after we make the change.

@runningfoo Please note that an alias slug p_spring-cloud-services was created for p-spring-cloud-services. Please try out the cli and verify that this now works as you intend. Thank you.

Closing this issue, but please reopen if the need arises.

This is working as expected. Thank you!


Remove deps on common.

removes dependencies for common

These two lines should be removed to avoid importing classes from common: https://github.com/Burwood/cromwell/blob/bdd41affe98838bfde27d8d9ce785af5ebb5cfec/build.sbt#L227-L228


exe download

every time a user hosts or joins a game on faf he will download the ForgedAlliance.exe file
i assume the client checks the MD5 value and compares it with the one on the server and since the exe gets modified on the client side after downloading the MD5 doesn't add up which causes the problem
would be nice if users would not have to download the 12MB of exe each time the host/join any lobby

IMHO, this should be solved on HTTP via HEAD request.
Ask server for Last-Modified, if date is modified, then download.
Nginx as it is, doesn't compute md5 and create md5 response on server side is not efficient. Even with cache server will compute md5 for all files that users will download. It's hard hit on HDD.

What? @norraxx no it is saved in the database XD

To be honest it works all the time it is just this time @Geosearchef did the patch and he did not know about the client sided modification i think and did not enter the correct md5 value into the db(it worked before).
Tho the client sided modification is strange and i dont know what it is good for and we might probably wanna try to get rid of it...

Horrible decision to store data in db :-/

It is not really an issue...

so apparently not a client issue - afaik brutus wants to change the way the exe is being deployed which would also solve this issue (i suppose)


Lookup VMware fusion location using mdfind

Fixes #685

+1

-1
We should use os.LookPath in Go instead.

Yes, if exec.LookPath will work this use case (it will if the binary is in PATH, but we've had some issues with binaries outside of PATH with Fusion in the past IIRC), we should use it.

This has some merit. Not everyone puts VMware fusion in the default place or uses home brew to install. Although, for the users that don't install it in either place, I'm unsure if we should bother, instead we should advise them to add it to their path manually.

@sthulb I understand that some would put things outside of PATH but IMO I think it gets clunky trying to look through the filesystem on each platform for the tools.  That's what PATH is for :)
I do think we could add a note if people are using tools outside of their PATH but we probably should do it globally for all other tools as well (ssh on windows, etc).

Closing since maintainers are not really fans on the approach.


Create Kanban board

Here is a kanban board create for a project that involves 3 authors
@Timbar09  was assigned to all tasks for team member 1
@Tobby8629   was assigned to all tasks for team member 2
@aubinleyoung   was assigned to all tasks for team member 3
Here is a link to the project

Hi @Tobby8629 @aubinleyoung @Timbar09 👋,
Good job so far!
Highlights

Created Kanban Board ✔
All cards are assigned to a team member ✔
All project requirements for team members and group tasks have a corresponding card ✔

There are some issues that you still need to work on to go to the next project but you are almost there!
Required Changes ♻
Kindly consider making the following changes to the kanban board the group created:

80% of the cards assigned to @aubinleyoung have no description. Kindly add appropriate descriptions to each card assigned to @aubinleyoung. 👍
The number of points is not shared evenly among the group. Below is the breakdown of the total number of points allocated to each group member:

@aubinleyoung  - 15pts
@Tobby8629  - 9pts
@Timbar09  - 7.5pts

Kindly allocate the number of points evenly amongst yourselves. When reallocating the number of points, please do not assign tasks for Student A to Student C or vice versa. Each group member should represent a student and complete all tasks for a student according to the project requirement. 👍 😎
Optional suggestions
Every comment with the [OPTIONAL] prefix is not crucial enough to stop the approval of this PR. However, I strongly recommend you take them into account as they can make your code better.
You can also consider:
N/A
Cheers, and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification. You can tag me by typing @Gambit142
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

As described in the Code reviews limits policy you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.

status: APPROVED :green_circle: :100:
Hi, @Team,

Good job so far 👍 Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉
Highlights ⚡

Created Kanban Board :heavy_check_mark:
All cards are assigned to a team member :heavy_check_mark:
All project requirements for team members and group tasks have a corresponding card :heavy_check_mark:

Optional suggestions

N/A

Every comment with the [OPTIONAL] prefix won't stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better. Some of them were simply missed by the previous reviewer and addressing them will really improve your application.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


Manual Install Compile

So Im trying to do this manual install where the compiling thing is and when I try to start it I go to the web and It didn't work

This is not enough information for me to help.
What commands did you run?
What does it log?
What URL did you go to?

Ok so I got It to go online by running bun run dev in the site folder but now I only see        Beszel
Please sign in to your account

Here is what i see

Are you there?

Check the section in the readme about compiling:
https://github.com/henrygd/beszel?tab=readme-ov-file#compiling

I already did Still cannot get past that page

Are you trying to compile the binaries?
If so you should never need to run the dev command.
Run make in the /beszel folder. It should create a build folder with the binaries.

Is there any way I can rename the thing to a new name that i want to put for it? like on the main status page?

What do you mean by "the thing"? What do you mean by "the main status page"?

This

Where it says Beszel i want it to say my company

Not yet. There's an open issue for it here: #214
I will probably add that functionality eventually, but right now my priorities are features, bug fixes, documentation, and tests.
Looks like you were able to compile it though?

No I wasent able to compile it this is a past instance i had setup is there anyway i can access the files and change the name that way?

To run locally you need to do bun run dev in the site folder like you said.
Also go run . serve in cmd/hub.
Then you should be able to open http://localhost:8090.
If you want to run the agent locally, that's in cmd/agent

You see its running on my vps can I just open a tunnel then access it?

See this is the page i see

http://localhost:8090 not http://localhost:5173
You must be running go run . serve in cmd/hub

Did you get this figured out?


If "Hide Zero Balances" is On and you go to your wallet from another page, zero balances aren't hidden; Same for "Only Show Favorites"

@gadrian78 This has been fixed. Thanks for reporting.


XCTestCase category methods to test mapping and serialization

For those who use XCTest (like me) I think it will be convenient to have helper methods to remove tons of asserts from their test case method. I've added few methods for that, both for testing mapping and serialization. Base check is made using XCTAssertEqualObjects. Additionally you can skip some keyPaths and check them yourself using resulting object (model object or it's dictionary representation) returned from these helper methods.

Thanks, @ilyapuchka!
I personally don't use such kind of tests - for me it seems simpler to test resulting object instead of mapping itself, but i'll be happy to provide this functionality, if you need it.
I'll release this stuff soon, probably via EasyMapping subspec.


Create zh_cn.json

Hey, thanks for the PR. I just added more entries to en_us.json, do you think you could translate those too?

Hey, thanks for the PR. I just added more entries to en_us.json, do you think you could translate those too?

Done.

Thanks a lot!


Add a base class for the algorithms

Inherit form ABC

so we need to create a class where the class methods are the algorithms that are already implemented (and that will be implemented)?

@akagam1 no. The base class will be a skeleton class which will be inherited by all the algorithms.
It will contain methods which are common for all the algorithms (only MAML for now) (for eg. a train() method, a compute_loss() method, etc.). You do not need to define these methods, just declare them as abstract methods.
Some References:

Abstract Base Class in Python
Example of a Base Class for an RL Agent (from GenRL)

We can continue the discussion on slack (if you have further questions)

can I do this one?

Sure


Why the learn rate does not match during the training period?

Fist of all, thanks for your help!
Checklist

I have searched related issues but cannot get the expected help.
The issue has not been fixed in the latest version.

Describe the issue
A clear and concise description of what the problem you meet and what have you done.
Reproduction

What command or script did you run?

python tools/train.py ./configs/cascade_rcnn/cascade_rcnn_x101_64x4d_fpn_20e_coco.py

What config dir you run?

you can see here the learn rate is 0.00125
optimizer = dict(type='SGD', lr=0.00125, momentum=0.9, weight_decay=0.0001)
optimizer_config = dict(grad_clip=None)
lr_config = dict(
    policy='step',
    warmup='linear',
    warmup_iters=500,
    warmup_ratio=0.001,
    step=[16, 19])
total_epochs = 20
checkpoint_config = dict(interval=1)
log_config = dict(interval=50, hooks=[dict(type='TextLoggerHook')])
dist_params = dict(backend='nccl')
log_level = 'INFO'
load_from = 'checkpoints/cascade_rcnn_x101_64x4d_fpn_20e_coco_20200509_224357-051557b1.pth'
resume_from = None
workflow = [('train', 1)]
work_dir = './work_dirs/cascade_rcnn_x101_64x4d_fpn_20e_coco'
gpu_ids = range(0, 1)

Did you make any modifications on the code or config? Did you understand what you have modified?
What dataset did you use?

something like that :
'images': [
    {
        'file_name': 'COCO_val2014_000000001268.jpg',
        'height': 427,
        'width': 640,
        'id': 1268
    },
    ...
],

'annotations': [
    {
        'segmentation': [[192.81,
            247.09,
            ...
            219.03,
            249.06]],  # if you have mask labels
        'area': 1035.749,
        'iscrowd': 0,
        'image_id': 1268,
        'bbox': [192.81, 224.8, 74.73, 33.43],
        'category_id': 16,
        'id': 42986
    },{
        'segmentation': [[88,
            33.09,
            ...
            444.03,
            555.06]],  # if you have mask labels
        'area': 1035.749,
        'iscrowd': 0,
        'image_id': 1268,
        'bbox': [192.81, 224.8, 74.73, 33.43],
        'category_id': 0,
        'id': 42986
    }
    ...
],

'categories': [
    {'id': 0, 'name': 'fish'},
 ]

Environment
the environment is fine.
Results
before 500:

after 500, it's keeping lr: 1.250e-03:

So, why it happened?
what should I do for this problem?  My evaluation result is not good, so I suppose the learn rate is not correct.

Issue fix
If you have already identified the reason, you can provide the information here. If you are willing to create a PR to fix it, please also leave a comment here and that would be much appreciated!

Because the config uses warmup and the number of warmup iterations is 500. You can see that after 500 iters the LR is 1.250e-3

Because the config uses warmup and the number of warmup iterations is 500. You can see that after 500 iters the LR is 1.250e-3

Thanks for your reply. So, do u think the learn rate is the cause of the low ap result?

0.00125 = 1.250e-3. If the model is trained using single GPU, the LR should be fine. The low AP might be caused by other issues, I do not know.

0.00125 = 1.250e-3. If the model is trained using single GPU, the LR should be fine. The low AP might be caused by other issues, I do not know.


Specify tab length

Title says it all, allow for choosing between 2-4 spaces for tab length. Really annoying having to convert it with a vim macro.

According to the usage instructions this is an option: https://github.com/js2coffee/js2coffee/blob/master/Usage.txt#L7

I should have specified that I was suggesting this for the web UI. Should I have posted some where else?

nah, this is the right place too, since the web version is simply the gh-pages branch of this repo.

This would be fantastic. Seconded.

Any update on this? I'll implement it if someone can point me in the right direction on how to get started. I'm sure I could figure it out but would be a huge help from someone familiar with the source.

That would be in the gh-pages branch.

Here's the pull request:
https://github.com/js2coffee/js2coffee/pull/382


[SPARK-18111] [SQL] Wrong ApproximatePercentile answer when multiple records have the minimum value

What changes were proposed in this pull request?
When multiple records have the minimum value, the answer of ApproximatePercentile is wrong.
How was this patch tested?
add a test case

Test build #67566 has started for PR 15641 at commit 3ad5920.

/cc @thunterdb  @cloud-fan

Test build #67566 has finished for PR 15641 at commit 3ad5920.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/67566/
Test FAILed.

Test build #67574 has started for PR 15641 at commit de1fdd5.

Test build #67574 has finished for PR 15641 at commit de1fdd5.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/67574/
Test PASSed.

Test build #67634 has started for PR 15641 at commit 0a5489c.

Test build #67634 has finished for PR 15641 at commit 0a5489c.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/67634/
Test FAILed.

Merged build finished. Test FAILed.

retest this please

Test build #67639 has started for PR 15641 at commit 0a5489c.

Test build #67639 has finished for PR 15641 at commit 0a5489c.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/67639/
Test FAILed.

Merged build finished. Test FAILed.

Seems many test builds failed in org.apache.spark.sql.streaming.StreamingQuerySuite.StreamExecution metadata garbage collection. Do you know why? @srowen

retest this please

Test build #67652 has started for PR 15641 at commit 0a5489c.

Test build #67652 has finished for PR 15641 at commit 0a5489c.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/67652/
Test PASSed.

@thunterdb It looks reasonable to my understanding, having looked at this code with you before, so if you don't object I'll merge this tomorrow.

Merged to master

It has a merge conflict in 2.0, but if you'd like to get it into 2.0 and could open a similar PR for testing, I can merge that.

@srowen Seems branch-2.0 doesn't have related files, ApproximatePercentile.scala is not merged in 2.0?

Yeah it was in sql/core/src/main/scala/org/apache/spark/sql/execution/stat/StatFunctions.scala before in 2.0. I'm not sure if it has the same problem or not.

Got it, thanks! I think it also has the problem, let me open a PR for it.


ci: Publish to GitHub packages

Fixes #955
Test Plan

How do we know the code works?

Flank is published to GitHub packages when making a release job
Checklist

[x] Documented

@Mergifyio rebase

@Mergifyio refresh


install plugnmeet without docker

Somehow plugnmeet crashes everytime when i use docker. Is it possible to install it without docker? "bare metal" if you will.

Sure, you can download from release https://github.com/mynaparrot/plugNmeet-server/releases also related components from their receptive repo.


#[swift_bridge::bridge] macro forces module to be private

I defined a transparent type in one ffi submodule:
// error.rs
#[swift_bridge::bridge]
pub mod ffi {
    #[swift_bridge(swift_repr="struct")]
    pub struct RuntimeError {
        pub error: String
    }
}

and tried to import it in another module:
// lib.rs
mod error

use error:ffi:RuntimeError;

but saw the following error for this line: use error:ffi:RuntimeError:
module `ffi` is private

It seems the #[swift_bridge::bridge] macro forces its module to be private--is this intentional, or can its private/public status be passed through?

Not intentional, we've just been adding things as we need them and you're the first to make note of this.
On workaround is to use pub self::ffi::Foo to expose Foo to the parent module.
Supporting this should be easy though if you're interested. Roughly two lines of implementation code + a couple of tests.
Here are some notes in case you or any future person wants to tackle this.
Potential Solution
Here's how one might add support for preserving the module's visibility:

Add a parsing test where we verify that we can store the module's visibility https://github.com/chinedufn/swift-bridge/blob/72e1759e0504e3a5a32587605c98e410f12ea9e7/crates/swift-bridge-ir/src/parse.rs#L164-L210

Add a codegen test where we confirm that the module's visibility is preserved in the generated Rust tokens:
Perhaps in a mod module_visibility_tests in here https://github.com/chinedufn/swift-bridge/blob/4fbd30f81085dc366bda3c0303eac66345de3ed9/crates/swift-bridge-ir/src/codegen/codegen_tests.rs#L30-L54

Add a field SwiftBridgeModule.visibility: syn::Visibility
https://github.com/chinedufn/swift-bridge/blob/b07745108b0daa86255fbc30dc1bce7ce9c02eb5/crates/swift-bridge-ir/src/lib.rs#L59-L60

Then set the field during parsing visibility: item_mod.visibility
https://github.com/chinedufn/swift-bridge/blob/72e1759e0504e3a5a32587605c98e410f12ea9e7/crates/swift-bridge-ir/src/parse.rs#L126-L127

Verify that tests pass using cargo test -p swift-bridge-ir

Awesome! I'll try and get a PR open for this soon :)


Mixin -> HOC + ES6 classes

Replaced mixin to hocs
Removed react-create-call, Instead, ES classes are used.
Added support new React Refs API

the only difference from the version with myxins that the colors of the fill are different

https://github.com/codesuki/react-d3-components/issues/120

https://github.com/codesuki/react-d3-components/issues/133

TODO:

Add typescript type decloaration https://github.com/codesuki/react-d3-components/issues/103 |  first commints
Update d3 to latest version https://github.com/codesuki/react-d3-components/issues/155
Improve performance https://github.com/codesuki/react-d3-components/issues/23 | https://github.com/codesuki/react-d3-components/issues/105

Sorry for the long delay. I made a branch for you:
https://github.com/codesuki/react-d3-components/tree/development
Good job so far!

@codesuki
Now I'm finishing the tests.
And after that you can check PR

Let me know when I should review!


RFC 0592 Proof Request includes nonce that is also required for a proof proposal

Present Proof v2 proposal and request both use<EMAIL_ADDRESS>format. This is different from v1 where it used the protocol native presentation proposal.
One thing I've noticed is that the proof request specifies a nonce, however in the case of a holder making a proposal this doesn't make a lot of sense. The nonce should be provided by the verifier to prevent replay attacks.
By allowing the holder to propose a nonce we lose this. In AFJ we now just always generate a new nonce, but it's still quite odd that it's in the RFC.
Should we only allow the nonce for requests and not when used as a proposal?

I think that a verifier would/should always create/use their own nonce in a presentation request.  The use of the proof-req format in the proposal is just out of convenience, and does not/should not imply that the verifier would just blindly use an unchanged version of the proof request data structure in their proof. Further, by removing the nonce from the proposal, the two data structures become different, which means more specifying.
Perhaps a clarification that the nonce from the proposal should NOT be used in the request should be added?