Support other Currencies

For some reasons beyond my understanding, I still don't get why you don't support all other 168 currencies out there?

This api publishes the currency rate published by European Central Bank, May be that is the reason they don't have any more currencies.

Sounds great! But the APIs currently supported currencies is quite a really
small number, I don't know how possible it would be but I really believe it
make much more sense if they can change their source to something like
Yahoo Finance, Google, etc. I don't know, but am just making an honest
suggestion which I believe would propel fixer.io to greater heights!
Just saying!
On Oct 23, 2017 22:06, "Niranjan Molkeri"<EMAIL_ADDRESS>wrote:

This api publishes the currency rate published by European Central Bank,
May be that is the reason they don't have any more currencies.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/hakanensari/fixer-io/issues/81#issuecomment-338796773,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AY9OJSf6zF4Rqy_LciNP3NCxnI8bFtGjks5svP_ZgaJpZM4PzeQd
.

Had to stop using the service exactly for that reason. Love the service, love how simple it is, but it needs to support more currencies.

You are right Gabriel!
Same thing made me stop using their service when I wanted to integrate
currency conversion to my Android App (
https://play.google.com/store/apps/details?id=com.gigabytedevelopersinc.app.calculator),
it's on the app store as CalcMate.
Even my Country's currency isn't supported by fixer.io, so I had to stop
using fixer.io, now decided to use Yahoo Finance and so far so good,
everything works just fine!
They really should do something about it!
On Nov 1, 2017 18:04, "Gabriel Jean"<EMAIL_ADDRESS>wrote:

Had to stop using the service exactly for that reason. Love the service,
love how simple it is, but it needs to support more currencies.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/hakanensari/fixer-io/issues/81#issuecomment-341170445,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AY9OJaz1tVTivJXv3weWWuILTm2aBoaCks5syKSbgaJpZM4PzeQd
.

I would like to see following currencies be added:
xau
xag
btc
ltc
xrp


[BUG] AsgiFunctionApp is missing BindingApi and SettingsApi mixins

Investigative information

Timestamp: 2024-02-05T08:28:51.887Z
Core Tools version: 4.0.5455

Repro steps

Create Azure Functions Python V2 docker template
Create AsgiFunctionApp using FastAPI
Add any BindingApi functions such as queue_output
Run the application in Docker (need to install Core tools and run in verbose to get the actual Exception. Without it, it fails silently)

Expected behavior
I should be able to add BindingApi and SettingsApi such as queue output, function name, etc. to my application while running FastAPI.
Actual behavior
No functions are loaded when running in Docker.
If I add the Core Tools and run --verbose:
[2024-02-05T08:29:00.675Z] Worker failed to index functions
[2024-02-05T08:29:00.676Z] Result: Failure
[2024-02-05T08:29:00.677Z] Exception: AttributeError: 'AsgiFunctionApp' object has no attribute 'queue_output'
[2024-02-05T08:29:00.677Z] Stack:   File "/usr/lib/azure-functions-core-tools-4/workers/python/3.11/LINUX/X64/azure_functions_worker/dispatcher.py", line 345, in _handle__functions_metadata_request
[2024-02-05T08:29:00.677Z]     fx_metadata_results = self.index_functions(function_path)
[2024-02-05T08:29:00.677Z]                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[2024-02-05T08:29:00.677Z]   File "/usr/lib/azure-functions-core-tools-4/workers/python/3.11/LINUX/X64/azure_functions_worker/dispatcher.py", line 617, in index_functions
[2024-02-05T08:29:00.677Z]     indexed_functions = loader.index_function_app(function_path)
[2024-02-05T08:29:00.677Z]                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[2024-02-05T08:29:00.677Z]   File "/usr/lib/azure-functions-core-tools-4/workers/python/3.11/LINUX/X64/azure_functions_worker/utils/wrappers.py", line 44, in call
[2024-02-05T08:29:00.677Z]     return func(*args, **kwargs)
[2024-02-05T08:29:00.677Z]            ^^^^^^^^^^^^^^^^^^^^^
[2024-02-05T08:29:00.677Z]   File "/usr/lib/azure-functions-core-tools-4/workers/python/3.11/LINUX/X64/azure_functions_worker/loader.py", line 214, in index_function_app
[2024-02-05T08:29:00.677Z]     imported_module = importlib.import_module(module_name)
[2024-02-05T08:29:00.677Z]                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[2024-02-05T08:29:00.677Z]   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
[2024-02-05T08:29:00.677Z]     return _bootstrap._gcd_import(name[level:], package, level)
[2024-02-05T08:29:00.677Z]            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[2024-02-05T08:29:00.677Z]   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
[2024-02-05T08:29:00.677Z]   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
[2024-02-05T08:29:00.677Z]   File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
[2024-02-05T08:29:00.677Z]   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
[2024-02-05T08:29:00.677Z]   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
[2024-02-05T08:29:00.677Z]   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
[2024-02-05T08:29:00.677Z]   File "/home/site/wwwroot/function_app.py", line 35, in <module>
[2024-02-05T08:29:00.677Z]     ingestion.app_factory(app)
[2024-02-05T08:29:00.677Z]   File "/home/site/wwwroot/src/data_hub/ingestion.py", line 22, in app_factory
[2024-02-05T08:29:00.677Z]     @app.queue_output(arg_name="msg", queue_name="model-data-ingestion-queue", connection="AzureWebJobsStorage")  # type: ignore[misc]
[2024-02-05T08:29:00.677Z]      ^^^^^^^^^^^^^^^^
[2024-02-05T08:29:00.677Z] .
[2024-02-05T08:29:00.683Z] 0 functions found (Worker)
[2024-02-05T08:29:00.699Z] 0 functions loaded

Known workarounds
This monkey patch works:
class FastAPIFunctionApp(func.AsgiFunctionApp, func.BindingApi, func.SettingsApi):
    """
    Adding missing BindingApi and SettingsApi to the AsgiFunctionApp
    """
    pass

Contents of the requirements.txt file:
azure-functions
fastapi

Related information

BindingApi in general
SettingsApi in general

thanks for reporting this issue! a pr is out for fixing this and will be included in next release.

thanks for reporting this issue! a pr is out for fixing this and will be included in next release.

Thanks a lot! This is much appreciated!

Any news on when will this fix be released? thanks in advance!


Implement an efficient CFR solver.

This PR is a work-in-progress for implementing efficient CFR solvers for infostate trees.
@elkhrt @gabrfarina I would appreciate your feedback on the work.

[x] Implement infostate tree representation.
[x] Make sure the construction works also for a sequence of states where the same player chooses actions repeatedly. (correct alternation of decision/observation nodes, so that the number of decision nodes' children corresponds to the number of actions in those nodes). Also, the child index in the vector should correspond to the legal action index.
[x] Add more infostate tree tests. I am not sure how to make them so they are not brittle. Testing tensor observations is not a good idea at the moment, as they change quite a bit right now.
[x] Implement CFR that will build infostate trees for both players, and then run iterations only on these lightweight trees.
[x] Run this CFR on the same suite of tests as the current implementation.

I expect that this CFR implementation will be much faster, as making rollouts in the game is slow and locating CFRInfoStateValues in a map indexed by strings is nice for understanding the algorithm, but not for efficiency.
Some things I decided not to do (in this PR):

Allow to prune the observation nodes. Because we cannot be sure about the construction of the infostate tree until it is finished, some observation nodes can be redundant. We can optionally prune them to get a smaller tree.
Identify infoste nodes by a sequence (sequence-form). Not sure whether just having a vector if ints is good enough, but if more info is needed you can always use these to traverse the infostate trees.
Compute sequence tuples for any State. I don't need that for my purposes, but I can add it if @gabrfarina would like to have it.

I outlined a number of welcome contributions in the code.

Uff, this turned out to be bigger than I thought. I can split it into several pieces for review, if you'd like.

a. Infostate trees
b. Infostate CFR
c. Action view (for simultaneous move nodes)

Deps:
b
| \
a  c

Thank you for the comments! I will go over them.
Since I have a lot of other code piled up locally, I was thinking about how to incorporate it efficiently. I came up with the idea that I split them up into smaller PRs that are better structured. The code has mostly a linear chain of dependence, and I will post new PRs as we move forward the chain. This will allow us to incorporate the review feedback and have a cleaner git history.  I appreciate the quality code review, therefore please do not feel under a rush for reviewing the PRs. This change will only mean that the contributions will come slower from our side.
I will close the PR for now, but I will address the comments in the new smaller PRs. Thanks again!


[Feature Suggestion] Being able to train on N different folds during cross-validation

Suggesting a feature following the discussion with @mikkokotila on Spectrum:
Currently, the default ta.Scan(..., val_split, ...) behaviour only allows for putting aside the val_split  proportion of data out of training for later evaluation of several pre-trained models from the hyperparameter space. For better error estimation, Talos also supports N-fold cross-evaluation  via scan_object.evaluate_models(x_val, y_val, n=N) method.
However, it would be great if we could also could automatically train our models on N different folds of the training data and then average resulting metrics for proper cross-validation.

Just to be clear, what you are suggesting is that cross-validation is used as a training metric instead of the Keras way which is to just use whatever metric have been input as metric in model.compile().

Yes, I am suggesting that cross-validation would be a great optional method for calculating a training metric. But I think the exact metric used in for the error calculation (say, mse or logcosh for regression) could still be passed through model.compile().

I have been working on this today. I had not done a custom Keras metric before, so needed to learn a couple of things. As it stands, I did not find a way to get the length / number of observations inside the metric for y_pred and y_true which is needed for the split. Otherwise everything is working already. I've posted an issue on Keras and also a question on StackOverflow (as I had already tried ~10 different methods and none returned the actual length of the underlying data for y_pred and y_true). I prefer doing it 100% using Keras backend.
Basically the way this would work is that there are several custom metrics (I think accuracy, f1, and mae at first) which support cross-validation for every epoch.

Having thought about this more, it appears tricky.
Let's  say your batch size is 50 but the whole training dataset is 500 samples. In that case there are 10 batches that will be evaluated for each epoch, and it appears that in fact those batches are kind of like folds. If I understand it correct, for every epoch Keras will pass the batch_size samples to the metric, and the result for each batch will make up the epoch result. In other words, it is already a kind of "fold".
Again, Keras metrics is something that I have not been working with in the past to this extent, and this is as much as I have been able to gather.

Wouldn't be a middle solution to change the train and eval split at each round? Different models will have different train/val pairs but if you have enough models in your grid, some models will be similar and will run on different sets of train/val splits.
Thanks for this great work.

@cartof that's an interesting idea! :) This is easy to do just by passing validation_split in the params dictionary (or data could be split in some custom way inside the input model also).
When it comes to a custom metric that would do something like cross-validation as part of the training, I did not find it feasible after spending some time with it. So closing here.


Cluster messaging features - discussion

cc @yindongfei, @SebastianStehle, @wind-rider and others.
There have been a number of requests regarding pub-sub, per-silo activation in terms of clustering.
I'd like to raise this topic for discussion as there is no such support currently, but as there is an interest for it, let's try to specify what these needs are.
To my understanding, some of the requests comes down to what in the Akka world would be a cluster router.
We want to be able to pass a message to multiple nodes, where each node has a dedicated receiver.
So pretty much the normal router features, but where the pool consists of pre-allocated actors on each node.
Would that be a decent start for this?

Some context, in Akka, there is the concept of "Roles" and you can deploy routers over a given role.
In Proto.Actor, we have "Kinds" which are used to spawn remote actors on known kinds.
My suggestion is that we use these kinds similar to cluster roles in Akka.
A cluster pool router, could subscribe to cluster topology and once a new node joins, it could remote activate the given props.

When you register "kinds" in ProtoActor, you are really saying that this node knows about a certain predefined Props.
So let's say you have a props for creating a Fractal calculating actor, and register this as kind:"Factal"
Then the cluster knows that those nodes have this capability

Got it.,
Pre-allocated actors would be fine for me. I mean I can always build the dynamic allocation by myself by making the receiver a Pool-Router.

I have a very early PoC suggestion on how cluster routers could work #335
See comments on limitations on this approach


Add IWA label

Fixes #35

I'm reluctant to invest a lot of work at this point, but I think the PR addresses the most urgent need now, which was having an IWA label.
It also updates all dependencies, which is nice, especially when it comes to the far outdated Puppeteer it was using.
@beaufortfrancois PTAL!

Filtering and label in action:

Let's hope that what builds fine locally also builds fine here. I'm about to board a transcontinental flight. Could you have an eye on the site?

Sure!

FYI Daily deploys are scheduled to happen "00:00 GMT".

@tomayac  You were right to be concerned. Last deploy turned https://fugu-tracker.web.app/ into 404 page:
@Snugug Can you help us there? I don't see anything wrong with https://github.com/GoogleChromeLabs/fugu-tracker/actions/runs/3132005115/jobs/5083910622


Trying to add dot parsing

Trying to expose the parseDOTNetwork method to C# (see https://visjs.github.io/vis-network/docs/network/#importDot)
I'm not used to how JS/TS importing works and I get an exception:
TypeError: Cannot read properties of undefined (reading 'convertDot')           at Module.parseDOTNetwork (https://localhost:5001/_content/VisNetwork.Blazor/BlazorVisNetwork.js?v=<IP_ADDRESS>:12914:71)
when running the example page
@stiankroknes any pointers on how to import this method correctly?

Hi, I just pushed some changes to resolve the parseDOTNetwork method. But next issue was to deserialize this to our NetworkData type. In vis-network model some properties allow multiple types (string, object etc).
Added some comments in the code.

Thank you! I'll take this PR and test it out with the dot files I have. Might not be able to resolve everything but I'll update this PR with what I can.

Working on adding custom json converters


[Suggestion] Would it be possible to edit said notion pages through vscode in the future?

Duplicate of #7


Discussions about the mask implementation

Thank you for your code! I found a confusion:
According to the original paper, the mask is used in the source mel-spectrongram instead of target mel-spectrongram, while both Mel-spectrongrams use mask in your scripts. Why does target side also uses mask? Looking forward to your reply!

Hi @youngboy52, do you mind linking a specific line that does this?

Hi @youngboy52, do you mind linking a specific line that does this?

Thank you for your reply. I found the masks are used in both source and target Mel-spectrongram, please refer to https://github.com/GANtastic3/MaskCycleGAN-VC/blob/d1d66b575669b03765c0d8d8ffd33d4fbacc0936/dataset/vc_dataset.py#L54 and https://github.com/GANtastic3/MaskCycleGAN-VC/blob/d1d66b575669b03765c0d8d8ffd33d4fbacc0936/dataset/vc_dataset.py#L67. But in MaskCycleGAN paper, the mask only implements on source Mel-spectrongram as follows:

I doubt that the mask in target Mel-spectrongram will loss some speaker information, and make a bad influence on the VC performance.

Hi @youngboy52,
We added a mask for the target Mel Spectrogram to have symmetry in our CycleGAN in both directions during training, so that both generators can effectively learn the time frequency structure of the Mel Spectrogram. Our implementation still follows the paper as it pertains to the section you pasted above. During training, when converting from A (source) to B (target), we apply mask_A to A and generate fake_B. When producing the reconstruction, i.e. rec_A, we apply a matrix of ones to fake_B, as suggested in the paper. We only apply mask_B to B when training the reverse generator (i.e. from B (target) to A (source)) in a symmetric way. Since the paper suggests that a matrix of ones should be passed in to the generator in the reverse direction, it suggests that the reverse generator BtoA should be trained in a similar way to the forward generator AtoB (i.e. that inputs B are masked), as we have done in our code. Otherwise, the reverse generator BtoA would not need an extra channel for a matrix of ones.
Hope that clarifies our choice behind our implementation decision.


[XamarinWorkbook-MAC]: Accessibility: Keyboard: MAS2.4.7: The keyboard focus is traversing the outer-boundary of feedback window, but the keyboard focus on that window is not visible, which lead to focus loss for the feedback window.

Steps to Reproduce

Launch Xamarin Workbook application and select Mac platform and create a new workbook.
Navigate to Xamarin Workbooks-> preferences-> Hit On Enter key-> General tab is opened by default.
Navigate to Feedback tab-> Hit on Enter.
Feedback tab is opened.
Press on the Tab key to traverse all the interactive elements of this opened feedback tab.
Observe the keyboard focus next to Feedback tab item.

Expected Behaviour
The keyboard focus is traversing the outer-boundary of the feedback window, so keyboard focus should be visible on this window, otherwise it would be also better if keyboard traversing is removed from outer boundary.
Actual Behaviour
The keyboard focus is traversing the outer-boundary of feedback window, but that keyboard focus on that window is not visible, which lead to focus loss for the feedback window.
User Impact:
The keyboard user might be confused due to apparent focus loss.

Environment
MAC: macOS High Sierra [10.13.4]
Workbook - 1.4 (master/b3f92f9)
Log File

Please add the following labels to this bug:
A11yMAS
Accessibility
MAS2.4.7
Xamarin-Workbook-MAC
Wipro

Exemption Approved - 1820


Forms with datepicker fields spoil Jest unit tests

I'm submitting a ...  (check one with "x")
[ ] bug report => search github for a similar issue or PR before submitting
[X] feature request
[ ] support request

Current behavior

I use Jest for unit tests. When I try to test any component containing a datepicker (Material UI), I get an error:
MatDatepicker: No provider found for DateAdapter. You must import one of the following modules at your application root: MatNativeDateModule, MatMomentDateModule, or provide a custom implementation.
despite the proper configuration of TestBed (the same test run via Karma works correctly). This is probably not a problem with @angular /material because the tests of the component containing the datepicker work correctly.
Expected behavior

You can test components that contain a datepicker using Jest
Minimal reproduction of the problem with instructions

git clone https://github.com/miwaniak/formly-datepicker-test.git
cd formly-datepicker-test
npm i
npm run jest

FormWithDpComponent - component with formly datepicker field.
VanilaDpComponent - component with vanilla @angular/material date picker component.
What is the motivation / use case for changing the behavior?

Jest  IS significantly accelerates the work with unit tests (especially in connection with testing snapshots) and gains more and more popularity in Angular projects. The inability to test components with forms containing datepicker fields is painful.
Please tell us about your environment:

Angular version: 7.2.X

Language: [ TypeScript 3.2.2 ]

Also got this just now. Definitely a gotcha

still needed https://github.com/angular/angular-cli/issues/13635


Update Old Shaders

Hi.
We need to update the below shaders:
DebugNormalsTangets
Equirectangular
LerpColorNearToFarPlane
VertexColorMesh
UnlitFakeCurved
If you found any old shader please post it here.
Thanks.

Corrected the shaders to adapt for the new Unity.

Nice job. thanks.

@Lootheo Please reference the working issue in your commits. thanks.


Implement clasp open --addon

Fixes #455 (it's a good idea to open an issue first for discussion)

[ ] npm run test succeeds.
[x] npm run lint succeeds.
[ ] Appropriate changes to README are included in PR.

@googlebot I signed it!


Docs/sf review

Suggestion.  The "so what" of keeping history isn't immediately obvious from the example.  Expanded to make that more explicit.   It's more code, and I know there's a balance between demonstrating features and keeping perspective.  Just felt that making the history explicit was, on balance, beneficial.

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 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
3362

Relevant Lines:
3362

💛  - Coveralls


Alpha

Remove console.log() from src/main.js
Update v2.0.2

v2.0.1 is by mistake uploaded the same code that's why v2.0.2


Modified embedded doc causes 'conflicting mods in update' error after .remove()

//Schemas
var Domain = new Schema({
  name: String,
  users: [User]
};

var User = new Schema({
  username: String,
});

User.pre('save', function(next) {
  //save something to the model
});

//Usage
domain.users[0].remove();
domain.save(function(err) {
  //err is: 'Error: have conflicting mods in update'
});

When an embedded doc has pre-save middleware and you try to remove it you always get this error.
This is similar to issue https://github.com/LearnBoost/mongoose/issues/377 but potentially more of a fundamental problem as it means middleware can't really be used on embedded documents.
If the pre and post save middlewares shouldn't be called when remove() is being used, this should fix the issue.

I have the same kind of issue when I do :
P.doc[0].remove;
P.doc.push( ... );
P.save();
It doesn't save P.
Any solution?

@Philmod right now the solution is to split up your save() calls. :(

Like that?
P.doc[0].remove;
P.save( function(err,P) {
P.doc.push( ... );
P.save();
})

yeah

Any update on this?


Develop script to share content for local development

To work on the Commons site locally, it is necessary to import a database and uploads directory. Depending on what is being developed, different subsets or versions of the database and uploads directory might be required. These are all hundreds of megabtye to multi-gigabyte files. They also potentially contain sensitive user data.
For these reasons, it is desirable to have a way of managing content exports in an organized way, without resorting to ad hoc methods such as Google Drive or scp.
Develop a script for managing exported Commons content. The first version should allow developers to list and import different exports.

scripts/s3-pull.php
/**
 * Interact with AWS S3 kcommons-dev-content bucket.
 *
 * Usage: ./s3-pull.php [prefix] [options]
 * 	--import-prefix=<prefix>		Import db and uploads from <prefix>.
 *  [prefix]						Alias for --import-prefix.
 * 	--get-prefix=<prefix>			Download all files from <prefix>.
 * 	--list-prefixes					List all prefixes in bucket.
 * 	--destination-dir=<dir>			Download files to <dir>. Applies only to --get-prefix.
 *  --just-db						Only import the database. Applies only to --import-prefix.
 *  --just-uploads					Only import the uploads. Applies only to --import-prefix.
 *  --backup-uploads				Move uploads folder to uploads-old before extracting new uploads dir.
 * 									Applies only to --import-prefix.
 *
 * If not options are passed, --list-prefixes is assumed.
 */

Example usage:
./s3-pull mike-local
lando rebuild -y

This downloads and imports sql and tar.gz files.
Example listing:
➜  scripts git:(main) ✗ ./s3-pull.php
import-test/
        import-test/test.sql                        1.77 KB 2023-06-29T15:50:20+00:00
        import-test/test.tar.gz                    19.52 MB 2023-06-29T13:18:35+00:00
mike-local/
        mike-local/db-local.sql                   720.92 MB 2023-06-27T20:24:45+00:00
        mike-local/uploads.tar.gz                   8.28 GB 2023-06-27T20:24:45+00:00
small-test/
        small-test/lorem test doc.pdf              28.66 KB 2023-06-28T14:39:34+00:00
        small-test/storm.webp                     170.85 KB 2023-06-28T14:39:34+00:00
        small-test/tree.jpeg                       13.97 MB 2023-06-28T14:39:32+00:00


Handle SubscriptionBusyException in resetCursor api

Motivation
In method PersistentSubscription.resetCursor,  SubscriptionFencedException is thrown in several place, but not handled in PersistentTopicBase.
It caused the error message not very clear.   This fix tries to export SubscriptionBusyException in PersistentTopicBase for resetCursor, to make the error in reset api more clear.
Modifications

handle SubscriptionBusyException in PersistentTopicBase for resetCursor.
add tests for it.

cherry-picked to branch-2.6(2.6.2)


Feature Request: The Ability to Add Labels

Can you add the ability for the user to add labels to different sections of the map? Once my empire gets sprawling enough, it would help make sure I am oriented.

Also, the ability to add lines would be awesome as well (to map out gate networks, assign territory, etc)


enable arm builds

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[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.

Fixes #13
Replaces #14

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender

@conda-forge-admin, please rerender

did https://github.com/conda-forge/magic-feedstock/pull/15/commits/e54d52a78be5c2c7b3368fd79d04f345f614c587 since there seems to be already a _1 build in https://anaconda.org/conda-forge/magic/files and https://anaconda.org/cf-staging/magic/files (maybe as a side effect of #14?)


Looking for ideas!

Hello everyone!
In order to extend the collection I am looking for new fresh ideas.
Thanks.

What about to create a poll to vote for the features to impement first?

I'd go for @Dependency

A few ideas:

@BundleInfo: reads a key from Bundle.main.infoDictionary
@Keychain: reads and stores values in the Keychain
@NotificationHandler: subscribes to a specific notification and is automatically deallocated
@Debug: optional that is only initialized in debug mode (#if DEBUG)
@Release: optional that is only initialized in debug mode (#if RELEASE)

@Zyphrax maybe @Secret(debug: "", release: "") ?

On top of my mind:

@SafeArray: the subscript method returns an optional element, nil if the index is out of bounds

@Zyphrax maybe @Secret(debug: "", release: "") ?

Yes that could work, it reminds me a bit of Rails environment secrets.
Is it possible to make it generic? Can you for example do:
@Secret(debug: 10, release: 100) ?

@Zyphrax maybe @Secret(debug: "", release: "") ?

Yes that could work, it reminds me a bit of Ruby Rails environment secrets.
Is it possible to make it generic? Can you for example do:
@Secret(debug: 10, release: 100) ?

Absolutely. I am not sure

I would like to do a PR for something like @Compressed(maxSizeInMB: 10) that makes sure UIImage and Data properties are compressed to below a certain maximum limit. What do you think?

I'll add totally not obious scenario here:
@Cached(name: String)
I'm not even sure PropertyWrapper are the right tool for that, but the idea is to provide a cache key to any optional property that you set later into your code (maybe on the .onAppear, or maybe once you receive data from an async call). The next time you use the same key, it'll fetch the value from the backing storage of @Cached (a shared singleton which hold a map of [Key: Value]) and return it if available. And when you set the wrapped value it save it to the cache. Would be quite handy IMO in some case.

@Cached(name: String) ...

@Dimillian a Cached property wrapper is on the  todo list. I am still not sure about the cache implementation itself; either NSCache, a popular 3rd party or an easy way of plug in the cache itself.

Right I didn't saw thanks!

Hi @guillermomuntaner
Do you accept PR for new property wrappers ?

@Obfuscate: encrypt and decrypt the string

Are you guys still working on this repo?

In Pilgrim I have:
@Assembled var assembly: ApplicationAssembly

to pull items from a dependency container, where the container is responsible for lifecycle and wiring together actors at the composition root.
You can then use @Assembled to inject into top-level components (things like view controllers).
Looking forward to @KeyChain

In Pilgrim I have:
@Assembled var assembly: ApplicationAssembly

to pull items from a dependency container, where the container is responsible for lifecycle and wiring together actors at the composition root.
You can then use @Assembled to inject into top-level components (things like view controllers).
Looking forward to @KeyChain

@Persisted to save Codable values as JSON to the hard drive.

Hello @guillermomuntaner
Are you going to archive this repository?

AltLayer Airdrop Season One Announcement

Exciting news! AltLayer token (ALT) is set to launch on Binance on January 25, 2024. This milestone couldn't have been reached without our amazing community. Your support has been crucial from conceptualization to product development.
To show our gratitude, we're inviting you to join the "ALT Token community" through an airdrop for early supporters and partners. Below is a summary:

Total Allocated ALT Tokens: 300,000,000 (3% of total supply)
Distribution Categories:

NFT Holders
Altitude Campaign Participants
EigenLayer Restakers
EigenLayer Ecosystem Partners
Celestia Stakers and others

For detailed criteria and information, check the full announcement here.
Claim opens from January 25 to February 25, 2024. Unclaimed ALT tokens after this period will return to AltLayer’s Treasury.
Thank you for being part of AltLayer's success! More to come in Season One, stay tuned.
Note: Certain regions are restricted from the airdrop. Please review the disclaimer before participating.
Winners: @kasyanov-ms, @jplasser, @Wolfgang89, @nick-bob, @eugenpirogoff, @dsevillamartin, @nitely, @jcampbell05, @kylehickinson, @madcato, @WangChaooooo, @vipmobile, @MarSe32m, @robezman, @xmsqh, @sverrisson, @jjorgemoura, @daejungkim, @bylatt, @nixzhu


Expose kube-scheduler, kube-controller-manager and etcd via k8s endpoints in rke clusters

In RKE provisioned clusters, we should consider exposing kube-scheduler, kube-controller-manager and etcd via k8s endpoints. As rke components run in standalone containers, and the containers are not static pods that can be exposed via k8s service directly, we should consider running a system daemonset that would proxy corresponding k8s component ip on the internal network.
cc @galal-hussein

The pr with the fix is up, asked the user to run POC before merging.

Will this also expose kube-proxy as well? The kube proxy docker container listens binds 10249 to the loopback, localhost address only and so is not available via HostIP:10249.

I would consider this a blocker for using RKE as there is no visibility into the state from prometheus.

So I just hit this issue lately and I want to clarify something.
BackStory: I needed to monitor etcd and kube-scheduler using prometheus operator, but yea That didn't work out-of-the-box as expected so I had to dig around. We use rancher on-premise with our custom loadbalancer in front of its nodes.
I found out that I can reach the kube-scheduler metrics on port 10251 on any of my nodes.
Ex.
curl http://node1:10251/metrics
curl http://node2:10251/metrics

So does it make any sense to just point to this port on on all nodes from our loadbalancer and make prometheus use this single endpoint (our loadbalancer) to reach the scheduler's metrics? But I guess This way we won't be able to differentiate which metrics are for which nodes, right?
also another question, Is there a reason why I can reach the scheduler's metrics but not etcd's? When I try to curl on  etcd port (tcp:2379) I got an empty reply.

I wanted to add a note from rancher/rke#2142
Using the prometheus-operator chart I you can use these values to stop the noisy alerts:

defaultRules:
  rules:
# RKE, cluster in docker is still experimental
    kubeScheduler: false
kubelet:
  enabled: false
kubeControllerManager:
  enabled: false
# End RKE

Would also like to ask to get this prioritized at some point as it's very important for us.

Would also like to ask to get this prioritized at some point as it's very important for us.

Any updates on this, sir? This is very needed for us, I was blocked from using RKE to provision cluster with this point.

We're using Prometheus PushProx tool to expose these as K8S endpoints. Rancher has a chart for that, see https://github.com/rancher/charts/blob/dev-v2.6/charts/rancher-pushprox/rancher-pushprox/100.0.1/README.md.

@aslafy-z I prefer the native integration too. More components to manage then more efforts to maintain. It will be nightmare with huge architecture with many environments and tech stack which is applied on system.

this would be nice

Unstale

Same problem here. RKE does not deploy KubeControllerManager, KubeProxy, Etcd or KubeScheduler as a vanilla Kubernetes cluster would, however the default ServiceMonitors we deploy assumes this and creates ServiceMonitors that do not work.


Add emplacement for cxx::UniquePtr.

Users of cxx may well want to emplace into cxx's UniquePtr. This PR adds such support.
There are a number of issues yet to be resolved here. Specifically:

The contract of emplace always returns a Pin<SmartPtr<T>>,
whereas we want to return a simple UniquePtr<T>, because UniquePtr
is always intrinsically pinned.

Because of this mismatch, there are some nasty transmutes, and the test code is incomplete.

As there appears to be no way to run a build script separately
for tests, we are pulling in some C++ into the production code.

Still, it feels ready for an early look @mcy!
For users of plain cxx, there's a lot of boilerplate to be written. Of course, the idea is that 100% of the boilerplate here is created by autocxx. For testing purposes, though, this code depends only on cxx not autocxx.

Duly rebased into a single descriptive commit (and your two remaining nits addressed). Thanks!

Are you waiting for anything from me here @mcy? I have an autocxx pull request (still WIP) which depends on this (https://github.com/google/autocxx/pull/742)


Update the abitype to stable v1

The aa-core is using package abitype/zod. abitype/zod has been upgraded normally but the one in aa-core is using an outdated version. I can’t effect it or patch it cause it’s node modules and it’s in package.json
Error Unable to resolve "abitype/zod" from<EMAIL_ADDRESS>[REQUIRED] Environment

AA SDK version: 2.0.0
Package: aa-core

Have tried using this accountkit-react-native-boilerplate. But seems a bit outdated.
Suggest to update it to v1.0.0 as it doesn't break anything.

ah this should be fixed in aa-sdk v3 since we leverage the latest version of viem which brings v1.0.0 of abitype/zod with it


Unable to open dropdowns and other popups.

Godot version:

Master a474926ac
OS/device including version:

Linux Mint 20
Issue description:

Popups such as dropdowns are closed when the mouse is released or leaves the button area.
https://www.youtube.com/watch?v=uo5vsD19090
Steps to reproduce:

Click a dropdown and release, it will close.
or
Click a dropdown and hold, drag outside of the button area. It will close.

Minimal reproduction project:

Works in any project through editor settings.
Test.zip

Duplicate of #40227


more examples for typical scenarios needed

A typical scenario in the Linux world is to have a read only install NFS share for every host in an IP range.
That said I am missing an example how to allow any user (even root) from all my linux boxes to read data from an installation share.

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

ID: 80da8016-ab02-32fb-d14a-f488cf86f69f
Version Independent ID: f610fad9-478c-c667-84dd-857d96b4dd7e
Content: Grant-NfsSharePermission (nfs)
Content Source: docset/windows/nfs/grant-nfssharepermission.md
Product: w10
GitHub Login: @coreyp-at-msft
Microsoft Alias: coreyp

@officedocsbot assign @yogkumgit

Hello @gitterman
Thanks for your feedback, we appreciate it.
I created a PR to add an example for a UNIX-type sharing, please keep in mind that more steps are needed that are out of the scope of this specific cmdlet article.
Hope you find it useful.

@get-itips  Thank you very much for the contribution and updating the documentation with PR. @gitterman Hope this update is helpful for you. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.

@officedocsbot close


My API is wrong :(

Describe the bug
1.The API is wrong."I dont remember how to set it."
2. in English, as I explain below,
3. In French, you can only speak to a volunteer but no meeting location and no Just For Today.
What version are you running?
v4.2.10
Did this happen on prior versions to the one you are running?
No
To Reproduce
Steps to reproduce the behavior:

Call our region helpline 1<PHONE_NUMBER>
Dial 2 (For English)

An application Error is occured

Expected behavior
After the issue
You can dial #1 ask for volunteer ; (works only in french)
You can dial #2 to find a meeting
You can dial #3 to hear the just for today

What is your webhook?

Voice
Webhook to GET:
https://yap.membres.naquebec.org/index.php?override_service_body_id=32
Messaging
Webhook to POST:
https://yap.membres.naquebec.org/sms-gateway.php?override_service_bod

Your server is returning a 500 error on response.  I'm gathering from your subject that you don't know how to set your Twilio Api Key.  If this is your issue, then you need to login into your Twilio account and head to the https://console.twilio.com/us1/account/keys-credentials/api-keys page.  Your api keys will be there and need to be set in your config.php file.  In the future please use Slack for this type of issue, as this is not a bug, and you are looking for support.

About Twilio, I change the Auth Token string what was wrong.
Only the Google Account has to be checked.
What is the Working Team on Slack?

I’m not sure what you are saying.  Is it working now?
Get Outlook for iOShttps://aka.ms/o0ukef

From: Claude St-Jean @.>
Sent: Saturday, October 14, 2023 12:07:45 PM
To: bmlt-enabled/yap @.>
Cc: Danny Gershman @.>; Comment @.>
Subject: Re: [bmlt-enabled/yap] My API is wrong :( (Issue #837)
About Twilio, I change the Auth Token string what was wrong.
Only the Google Account has to be checked.
What is the Working Team on Slack?
—
Reply to this email directly, view it on GitHubhttps://github.com/bmlt-enabled/yap/issues/837#issuecomment-1763013711, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAOD3OYOL7KI5TSAL4WUZADX7K2FDAVCNFSM6AAAAAA57ZRSGKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONRTGAYTGNZRGE.
You are receiving this because you commented.Message ID: @.***>

What? Not at all.

Good it come back when i refresh the page.
{"status":true,"message":"Ready To Yap!","warnings":"","version":"4.2.10","build":"968207e147cb1c7ffcd654526371b8efbe9dd557"}
I wnat to check everything nowé

Ok is this resolved?
Get Outlook for iOShttps://aka.ms/o0ukef

From: Claude St-Jean @.>
Sent: Saturday, October 14, 2023 1:32:31 PM
To: bmlt-enabled/yap @.>
Cc: Danny Gershman @.>; Comment @.>
Subject: Re: [bmlt-enabled/yap] My API is wrong :( (Issue #837)
Good it come back when i refresh the page.
{"status":true,"message":"Ready To Yap!","warnings":"","version":"4.2.10","build":"968207e147cb1c7ffcd654526371b8efbe9dd557"}
I wnat to check everything nowé
—
Reply to this email directly, view it on GitHubhttps://github.com/bmlt-enabled/yap/issues/837#issuecomment-1763059084, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAOD3O3OEC7M7S32SD6Y7JDX7LEC7AVCNFSM6AAAAAA57ZRSGKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONRTGA2TSMBYGQ.
You are receiving this because you commented.Message ID: @.***>

Now, none is working :
the system answers right through that "we are sorry, an eror has occured".
Here is the config script
config.php.docx

This is a public site, do not share your config files here.

You were invited to slack https://github.com/bmlt-enabled/yap/issues/837.  In the future, you need to take great care to back up your working configuration before making changes.  It seems like your Yap system is constantly is a state of being broken after it's fixed.


Firefox bin 69.0.1

Motivation for this change

Moderate security fix
Other bug fixes

https://www.mozilla.org/en-US/firefox/69.0.1/releasenotes/
https://www.mozilla.org/en-US/security/advisories/mfsa2019-31/
Things done

[X] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

Only tested firefox-bin. firefox is being built.
Notify maintainers
cc @edolstra @andir

The packages are successfully built with this PR rebased on master (d8adf06d355e9f49c86089c7231202094f4ede05).
$ nix-build -I nixpkgs=. --keep-failed --keep-going -A pkgs.adoptopenjdk-icedtea-web -A pkgs.xulrunner -A pkgs.mozplugger -A pkgs.slimerjs
/nix/store/ra3r99yc84k430viqxcvcz6ygbdkjfaz-adoptopenjdk-icedtea-web-1.8.3
/nix/store/k9akv5bbqnjy7plq8pja0kxp76sfz7x7-firefox-unwrapped-69.0.1
/nix/store/fpr7lj7wyqf3grww4ms5klq90c33pqyk-mozplugger-2.1.6
/nix/store/nnnzqhsm7jj7m1cdzj68igdq84limbyc-slimerjs-1.0.0

Hmm, I verified even exact /nix/store/lcyyfnzyna7xgi341pj7pamw5z6m952p-firefox-unwrapped-69.0.1.drv builds – I hope it was just some rare glitch.

Also built for me.

[detached HEAD 61201f89da9] firefox-bin: 69.0 -> 69.0.1
Author: taku0<EMAIL_ADDRESS>Date: Thu Sep 19 21:43:32 2019 +0900
1 file changed, 935 insertions(+), 935 deletions(-)
rewrite pkgs/applications/networking/browsers/firefox-bin/release_sources.nix (60%)
Press Enter to continue
[detached HEAD 1bf3db545cb] firefox: 69.0 -> 69.0.1
Author: taku0<EMAIL_ADDRESS>Date: Thu Sep 19 21:50:43 2019 +0900
1 file changed, 2 insertions(+), 2 deletions(-)

[detached HEAD 75fdf70a92d] firefox-bin: 69.0 -> 69.0.1
Author: taku0<EMAIL_ADDRESS>Date: Thu Sep 19 21:43:32 2019 +0900
1 file changed, 935 insertions(+), 935 deletions(-)
rewrite pkgs/applications/networking/browsers/firefox-bin/release_sources.nix (60%)
Press Enter to continue
warning: inexact rename detection was skipped due to too many files.
warning: you may want to set your merge.renamelimit variable to at least 2080 and retry the command.
[detached HEAD d91b06e4362] firefox: 69.0 -> 69.0.1
Author: taku0<EMAIL_ADDRESS>Date: Thu Sep 19 21:50:43 2019 +0900
1 file changed, 2 insertions(+), 2 deletions(-)


Can't import Bestiary - Marilith (Demon)

Can't import statblock:
Marilith (Demon)      CR 17
XP 102,400
Male marilith (Pathfinder RPG Bestiary 63)
CE Large outsider (chaotic, demon, evil, extraplanar)
Init +4; Senses darkvision 60 ft.; Perception +31
Aura unholy aura (DC 25)
Defense
AC 32, touch 17, flat-footed 28 (+4 deflection, +4 Dex, +15 natural, -1 size)
hp 264 (16d10+176)
Fort +25, Ref +18, Will +13
DR 10/cold iron, 10/good; Immune electricity, poison; Resist acid 10, cold 10, fire 10; SR 28
Offense
Speed 40 ft.
Melee +1 longsword +24/+19/+14/+9 (2d6+8/17-20) or
+1 longsword +24 (2d6+4/17-20) or
+1 longsword +24 (2d6+4/17-20) or
+1 longsword +24 (2d6+4/17-20) or
+1 longsword +24 (2d6+4/17-20) or
+1 longsword +24 (2d6+4/17-20) or
6 slams +17 (1d8+3), tail slap +17 (2d6+3 plus grab)
Space 10 ft.; Reach 10 ft.
Special Attacks constrict (2d6+10), multiweapon mastery
Spell-Like Abilities (CL 16th; concentration +23)
Constant—true seeing, unholy aura (DC 25)
At will—greater teleport (self plus 50 lbs. of objects only), project image (DC 23), telekinesis (DC 22)
3/day—blade barrier (DC 23), fly
1/day—summon (level 5, 1 marilith 20%, 1 nalfeshnee at 35%, or 1d4 hezrous at 60%)
Statistics
Str 25, Dex 19, Con 32, Int 18, Wis 18, Cha 25
Base Atk +16; CMB +24 (+26 disarm, +28 grapple); CMD 42 (44 vs. disarm, can't be tripped)
Feats Bleeding Critical, Combat Expertise, Combat Reflexes, Critical Focus, Improved Critical (longsword), Improved Disarm, Power Attack, Weapon Focus (longsword)
Skills Acrobatics +23 (+27 to jump), Bluff +26, Diplomacy +26, Fly +18, Intimidate +26, Knowledge (engineering) +20, Perception +31, Sense Motive +23, Stealth +19, Use Magic Device +26; Racial Modifiers +8 Perception
Languages Abyssal, Celestial, Draconic; telepathy 100 ft.
SQ crushing coils, infuse weapon
Other Gear mwk longsword, mwk longsword, mwk longsword, mwk longsword, mwk longsword, mwk longsword
Ecology
Environment any (abyss)
Organization solitary, pair, or platoon (1 marilith, 1-3 glabrezus, and 3-14 babaus)
Treasure double (6 mwk longswords, other treasure)
Special Abilities
Bleeding Critical Critical Hits deal 2d6 bleed damage.
Combat Expertise +/-5 Bonus to AC in exchange for an equal penalty to attack.
Combat Reflexes (5 AoO/round) Can make extra attacks of opportunity/rd, and even when flat-footed.
Critical Focus +4 to confirm critical hits.
Crushing Coils (DC 25) (Ex) Foes damaged by constrict lose consciousness for 1d8 rds (Fort neg).
Damage Reduction (10/cold iron) You have Damage Reduction against all except Cold Iron attacks.
Damage Reduction (10/good) You have Damage Reduction against all except Good attacks.
Darkvision (60 feet) You can see in the dark (black and white only).
Energy Resistance, Acid (10) You have the specified Energy Resistance against Acid attacks.
Energy Resistance, Cold (10) You have the specified Energy Resistance against Cold attacks.
Energy Resistance, Fire (10) You have the specified Energy Resistance against Fire attacks.
Grab: Tail slap (Large) (Ex) You can start a grapple as a free action if you hit with the designated weapon.
Immunity to Electricity You are immune to electricity damage.
Immunity to Poison You are immune to poison.
Improved Disarm You don't provoke attacks of opportunity when disarming.
Infuse Weapon (Su) Wielded weapons bypass DR as chaotic, evil, and cold iron.
Multiweapon Mastery (Ex) The creature never takes penalties on its attack rolls when fighting with multiple weapons.
Power Attack -5/+10 You can subtract from your attack roll to add to your damage.
Spell Resistance (28) You have Spell Resistance.
Summon (level 5, 1 marilith 20%, 1 nalfeshnee at 35%, or 1d4 hezrous at 60%, 1/day) (Sp) Summon creatures as though with summon monster spell but with limited chance of success.
Telepathy (100 feet) (Su) Communicate telepathically if the target has a language.

Identified Issue:
Missing range in aura string

I got this statblock from Hero Lab.  You might benefit from retesting with aonprd.com.  Sometimes Hero Lab truncates some of the descriptions.
I used the latest Pathfinder system and your latest module to test this.


WIP: tutorial for statistics

@awvwgk I started a tutorial for the functions in stdlib_stats. Comments are welcome ;)
A few questions:

I tried to compile the examples with fpm, but it didn't succeed because the fpm.toml is not appropriate. Is it on purpose?
Under Tutorial, would it be possible to have a single tab Statistics that would include the pages Descriptive statistics, Correlation and variances,...?

Thanks. I think in the current shape those are more suitable for the how to section.

I tried to compile the examples with fpm, but it didn't succeed because the fpm.toml is not appropriate. Is it on purpose?

Having a src directory, even if it is empty, makes it work. This is a bug in fpm, we should report it.

Under Tutorial, would it be possible to have a single tab Statistics that would include the pages Descriptive statistics, Correlation and variances,...?

You can create a new toctree, just like the tutorials/how-tos (pages/*/index.md) are nested in the main toctree (pages/index.md), we can have a separate section for statistics which contains further entries. Probably easier to show than to explain.

I moved the pages to the how-to section, and created a new toctree (at least I hope so).
Let me know if it is ok like this. If so, I will then continue the other pages

Looks good to me.

I completed pages for descriptive statistics, correlations and covariances.
These provide a short introduction to the different functions, but not a complete explanation of the API (that should be the section reference).

@jvdp1 Is this still work in progress or ready to go?

@jvdp1 Is this still work in progress or ready to go?

Sorry. I forgot to update the title. Ready to go from my side.


Aggregation fuzzer test fails with unmatched result

Description
This is a failure of aggregation fuzzer test, but the error message doesn't suggest there is unmatched result. We need to investigate into the error to tell whether it is a bug in the fuzzer itself or the core library.
Error Reproduction
In internal repository, checkout 7706e3790 and run velox/exec/tests/velox_aggregation_fuzzer_test --seed<PHONE_NUMBER>.
Relevant logs
I1212 11:51:53.716396 3375096 AggregationFuzzer.cpp:503] ==============================> Started iteration 0 (seed:<PHONE_NUMBER>)
I1212 11:51:53.726944 3375096 AggregationFuzzer.cpp:595] Executing query plan:
-- Aggregation[SINGLE [g0, g1, g2] a0 := stddev_pop(ROW["c0"])] -> g0:REAL, g1:BOOLEAN, g2:TIMESTAMP, a0:DOUBLE
  -- Values[1000 rows in 10 vectors] -> c0:BIGINT, g0:REAL, g1:BOOLEAN, g2:TIMESTAMP
I1212 11:51:53.752323 3375096 AggregationFuzzer.cpp:610] [ROW ROW<g0:REAL,g1:BOOLEAN,g2:TIMESTAMP,a0:DOUBLE>: 853 elements, no nulls]
I1212 11:51:53.827328 3375096 AggregationFuzzer.cpp:192] Testing plan #0
I1212 11:51:53.827430 3375096 AggregationFuzzer.cpp:595] Executing query plan:
-- Aggregation[FINAL [g0, g1, g2] a0 := stddev_pop("a0")] -> g0:REAL, g1:BOOLEAN, g2:TIMESTAMP, a0:DOUBLE
  -- Aggregation[PARTIAL [g0, g1, g2] a0 := stddev_pop(ROW["c0"])] -> g0:REAL, g1:BOOLEAN, g2:TIMESTAMP, a0:ROW<"":BIGINT,"":DOUBLE,"":DOUBLE>
    -- Values[1000 rows in 10 vectors] -> c0:BIGINT, g0:REAL, g1:BOOLEAN, g2:TIMESTAMP
I1212 11:51:53.850160 3375096 AggregationFuzzer.cpp:610] [ROW ROW<g0:REAL,g1:BOOLEAN,g2:TIMESTAMP,a0:DOUBLE>: 853 elements, no nulls]
velox/exec/tests/utils/QueryAssertions.cpp:986: Failure
Value of: false
  Actual: false
Expected: true
Expected 853, got 853
0 extra rows, 0 missing rows
0 of extra rows:

0 of missing rows:

Unexpected results
E1212 11:51:53.914549 3375096 Exceptions.h:68] Line: velox/exec/tests/AggregationFuzzer.cpp:838, Function:testPlan, Expression: assertEqualResults({expected.result}, {actual.result}) Logically equivalent plans produced different results, Source: RUNTIME, ErrorCode: INVALID_STATE
terminate called after throwing an instance of 'facebook::velox::VeloxRuntimeError'
  what():  Exception: VeloxRuntimeError
Error Source: RUNTIME
Error Code: INVALID_STATE
Reason: Logically equivalent plans produced different results
Retriable: False
Expression: assertEqualResults({expected.result}, {actual.result})
Function: testPlan
File: velox/exec/tests/AggregationFuzzer.cpp
Line: 838
Stack trace:
# 0  0x0000000000000000
# 1  0x0000000000000000
# 2  0x0000000000000000
# 3  0x0000000000000000
# 4  facebook::velox::exec::test::(anonymous namespace)::AggregationFuzzer::testPlan(std::shared_ptr<facebook::velox::core::PlanNode const> const&, bool, bool, facebook::velox::exec::test::(anonymous namespace)::ResultOrError const&)
# 5  facebook::velox::exec::test::(anonymous namespace)::AggregationFuzzer::testPlans(std::vector<std::shared_ptr<facebook::velox::core::PlanNode const>, std::allocator<std::shared_ptr<facebook::velox::core::PlanNode const> > > const&, bool, facebook::velox::exec::test::(anonymous namespace)::ResultOrError const&)
# 6  facebook::velox::exec::test::(anonymous namespace)::AggregationFuzzer::verifyAggregation(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::shared_ptr<facebook::velox::RowVector>, std::allocator<std::shared_ptr<facebook::velox::RowVector> > > const&, bool, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)
# 7  facebook::velox::exec::test::(anonymous namespace)::AggregationFuzzer::go()
# 8  facebook::velox::exec::test::aggregateFuzzer(std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::shared_ptr<facebook::velox::exec::AggregateFunctionSignature>, std::allocator<std::shared_ptr<facebook::velox::exec::AggregateFunctionSignature> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::shared_ptr<facebook::velox::exec::AggregateFunctionSignature>, std::allocator<std::shared_ptr<facebook::velox::exec::AggregateFunctionSignature> > > > > >, unsigned long, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)
# 9  AggregationFuzzerRunner::run(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, std::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)
# 10 main
# 11 __libc_start_call_main
# 12 __libc_start_main_alias_2
# 13 _start

*** Aborted at<PHONE_NUMBER> (Unix time, try 'date -d @1670874713') ***
*** Signal 6 (SIGABRT) (0x37b3c00337ff8) received by PID 3375096 (pthread TID 0x7f2489e50080) (linux TID 3375096) (maybe from PID 3375096, UID 228156) (code: -6), stack trace: ***
    @<PHONE_NUMBER>01100e folly::symbolizer::(anonymous namespace)::innerSignalHandler(int, siginfo_t*, void*)
                       ./folly/experimental/symbolizer/SignalHandler.cpp:449
    @<PHONE_NUMBER>00f731 folly::symbolizer::(anonymous namespace)::signalHandler(int, siginfo_t*, void*)
                       ./folly/experimental/symbolizer/SignalHandler.cpp:470
    @<PHONE_NUMBER>000000 (unknown)
    @<PHONE_NUMBER>09c9d3 __GI___pthread_kill
    @<PHONE_NUMBER>0444ec __GI_raise
    @<PHONE_NUMBER>02c432 __GI_abort
    @<PHONE_NUMBER>0a3fd4 __gnu_cxx::__verbose_terminate_handler()
    @<PHONE_NUMBER>0a1b39 __cxxabiv1::__terminate(void (*)())
    @<PHONE_NUMBER>0a1ba4 std::terminate()
    @<PHONE_NUMBER>0a1ec1 __cxa_rethrow
    @<PHONE_NUMBER>076ab4 facebook::velox::exec::test::(anonymous namespace)::AggregationFuzzer::verifyAggregation(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::shared_ptr<facebook::velox::RowVector>, std::allocator<std::shared_ptr<facebook::velox::RowVector> > > const&, bool, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)
                       ./velox/exec/tests/AggregationFuzzer.cpp:1004
    @<PHONE_NUMBER>04a504 facebook::velox::exec::test::(anonymous namespace)::AggregationFuzzer::go()
                       ./velox/exec/tests/AggregationFuzzer.cpp:571
    @<PHONE_NUMBER>045c22 facebook::velox::exec::test::aggregateFuzzer(std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::shared_ptr<facebook::velox::exec::AggregateFunctionSignature>, std::allocator<std::shared_ptr<facebook::velox::exec::AggregateFunctionSignature> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::shared_ptr<facebook::velox::exec::AggregateFunctionSignature>, std::allocator<std::shared_ptr<facebook::velox::exec::AggregateFunctionSignature> > > > > >, unsigned long, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)
                       ./velox/exec/tests/AggregationFuzzer.cpp:231
    @<PHONE_NUMBER>2c8336 AggregationFuzzerRunner::run(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, std::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)
                       ./velox/exec/tests/AggregationFuzzerRunner.h:93
                       -> ./velox/exec/tests/AggregationFuzzerTest.cpp
    @<PHONE_NUMBER>2c66cb main
                       ./velox/exec/tests/AggregationFuzzerTest.cpp:70
    @<PHONE_NUMBER>02c656 __libc_start_call_main
    @<PHONE_NUMBER>02c717 __libc_start_main_alias_2
    @<PHONE_NUMBER>2bc1c0 _start
                       /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/csu/../sysdeps/x86_64/start.S:116
Aborted (core dumped)

This problem is caused by undefined behavior of std::multiset<MaterializedRow, MaterializedRowComparator> used when comparing the expected and actual results in QueryAssertions.cpp. The undefined behavior is due to MaterializedRowComparator not satisfying "strict weak ordering" required by std::multiset.
@Yuhta proposed one possible solution of using sort-merge to replace the use of std::multiset. First, we use the basic comparison without epsilon to ensure well-defined behavior of sorting. Then during the merge phase, we use epsilon in the comparisons to tolerate imprecision of floating point numbers.

Two other failures related to this:

https://app.circleci.com/pipelines/github/facebookincubator/velox/18313/workflows/9fc22a6b-6400-4b12-894f-e07d5a15c11d/jobs/115825/steps
https://app.circleci.com/pipelines/github/facebookincubator/velox/18200/workflows/df988b6f-f4c5-440e-9d02-9de66fe83ea2/jobs/115087/steps

@oerling pointed out that sorting could results in different order when error is added.  An example is sorting these 2 tuples:
(0, 0)
(0.0001, 100)

when there is an error of 0.001 on the first column of first row, the result becomes
(0.0001, 100)
(0.001, 0)

And comparison on second column would fail.  In this case we probably need to do maximum bipartite matching.

And comparison on second column would fail. In this case we probably need to do maximum bipartite matching.

Hi @Yuhta, Thank you for the explanation! I looked at the algorithms for the maximum bipartite matching problem. The mostly used Fold-Fulkerson and Kuhn-Munkres algorithms have O(V*E) time complexity where V is the number of rows in one result and E is V^2 in our problem. Since we usually use 1000 as the batch size in our tests, the complexity would be O(10^9) in the worst case. (The more complex Hopcroft–Karp algorithm has O(V^1/2 * E) complexity, which would be around O(3 * 10^7) in the worst case.)
Since the original code that compares results using std::multiset has O(V * logV), I'm worrying the maximum bipartite matching algorithms might be too slow and wondering about other options we have.

Is it possible for our tests to consider the results to be fixed-point numbers, e.g., we consider both 10.001123 and 10.001345 to be 10.001 when comparing the actual and expected results? (If so, how many digits after the decimal point would be reasonable?)
Are you aware of other possible solutions? I searched for hashing of floating point numbers with epsilon, but it's generally not recommended.

cc @mbasmanova @oerling

For reference, here is how this is implemented in Presto: https://github.com/prestodb/presto/blob/master/presto-main/src/main/java/com/facebook/presto/testing/MaterializedRow.java#L185

@kagamiori E usually is not as bad as V^2 because an edge only exists if the difference between the 2 sides is under epsilon.  The complexity is at least O(V^2) though, worse than the current version.  We could do some sort and clustering to improve it though if this becomes a problem.
For the rounding solution (as @mbasmanova pointed this is also used in Presto), there is a problem that if 2 values are close enough, but they fall into two different buckets, we will have a false positive.  For example if we round 2.715 to 2 digits after decimal point, it becomes 2.72, but 2.714999999 would become 2.71, even they are very close to each other.

Perhaps, most use cases are aggregations with non-floating point keys and floating point aggregates. We could first bucket the rows by non-floating point columns, then compare with epsilon within the buckets. Assuming buckets will be very small (1 row), we could use some simple algorithms and throw if bucket size is large (> 5 rows).

@mbasmanova Yes that's one optimization, we should reorder the columns to put floating point columns at end

@kagamiori E usually is not as bad as V^2 because an edge only exists if the difference between the 2 sides is under epsilon. The complexity is at least O(V^2) though, worse than the current version. We could do some sort and clustering to improve it though if this becomes a problem.
For the rounding solution (as @mbasmanova pointed this is also used in Presto), there is a problem that if 2 values are close enough, but they fall into two different buckets, we will have a false positive. For example if we round 2.715 to 2 digits after decimal point, it becomes 2.72, but 2.714999999 would become 2.71, even they are very close to each other.

Thanks @mbasmanova and @Yuhta! Presto rounds floating point numbers to 5 significant digits by default. The problem that @Yuhta pointed out can indeed exist. I'll prototype a Fold-Fulkerson or Kuhn-Munkres algorithms to see if the performance of maximum bipartite matching is acceptable for us.

Perhaps, most use cases are aggregations with non-floating point keys and floating point aggregates. We could first bucket the rows by non-floating point columns, then compare with epsilon within the buckets. Assuming buckets will be very small (1 row), we could use some simple algorithms and throw if bucket size is large (> 5 rows).
@mbasmanova Yes that's one optimization, we should reorder the columns to put floating point columns at end and sort and pair them by non-floating point columns first

@mbasmanova @Yuhta, Sorry I somehow didn't see your last two messages when I replied. I think the optimization you mentioned would work for aggregation tests. But assertEqualResults() and assertResults() (that this bug is in) are also used in join fuzzer, TaskTest, HashJoinTest, MergeJoinTest, and OperatorTestBase. For these use cases, we may not be guaranteed to have small buckets.

But assertEqualResults() and assertResults() (that this bug is in) are also used in join fuzzer, TaskTest, HashJoinTest, MergeJoinTest, and OperatorTestBase. For these use cases, we may not be guaranteed to have small buckets.

That's a good point. In these cases through floating point values tend to be copied directly from input to output as opposed to be computed. Hence, the chance for divergence is much lower than in aggregations.


Gateway API: Duplicate secret in cilium-secrets

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
I recently migrated to Gateway API from Ingress and noticed this following behaviour: an additional secret is created into cilium-secrets namespace, related to the Cloudflare certificate generated by cert-manager.
# helm get values cilium -n kube-system
USER-SUPPLIED VALUES:
autoDirectNodeRoutes: true
bandwidthManager:
  enabled: true
dashboards:
  enabled: true
enableCiliumEndpointSlice: true
envoy:
  enabled: true
  prometheus:
    serviceMonitor:
      enabled: true
  resources:
    limits:
      cpu: 400m
      memory: 256Mi
    requests:
      cpu: 100m
      memory: 64Mi
  rollOutPods: true
externalIPs:
  enabled: true
gatewayAPI:
  enabled: true
hubble:
  metrics:
    dashboards:
      enabled: true
    enabled:
    - dns:query;ignoreAAAA
    - drop
    - flow
    - httpV2
    - icmp
    - port-distribution
    - tcp
    serviceMonitor:
      enabled: true
  peerService:
    clusterDomain: cluster.local
  relay:
    enabled: true
    prometheus:
      serviceMonitor:
        enabled: true
    replicas: "2"
    resources:
      limits:
        cpu: 400m
        memory: 256Mi
      requests:
        cpu: 100m
        memory: 64Mi
    retryTimeout: 10s
    rollOutPods: true
  ui:
    enabled: true
    rollOutPods: true
ingressController:
  enabled: true
  service:
    loadBalancerIP: <IP_ADDRESS>
ipam:
  operator:
    clusterPoolIPv4PodCIDRList: <IP_ADDRESS>/16
ipv4NativeRoutingCIDR: <IP_ADDRESS>/16
k8sClientRateLimit:
  burst: "100"
  qps: "50"
k8sServiceHost: <IP_ADDRESS>
k8sServicePort: "6444"
kubeProxyReplacement: true
l2announcements:
  enabled: true
l2podAnnouncements:
  enabled: true
  interface: eth0
operator:
  prometheus:
    enabled: true
    serviceMonitor:
      enabled: true
  resources:
    limits:
      cpu: 400m
      memory: 256Mi
    requests:
      cpu: 100m
      memory: 64Mi
  rollOutPods: true
prometheus:
  enabled: true
  serviceMonitor:
    enabled: true
rollOutCiliumPods: true
routingMode: native

Gateway:
# kubectl get gateway argo-cd-argocd-server -n kube-system -o yaml
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  annotations:
    cert-manager.io/cluster-issuer: cloudflare-cluster-issuer-staging
  creationTimestamp: "2024-04-06T01:40:07Z"
  generation: 1
  name: argo-cd-argocd-server
  namespace: kube-system
  resourceVersion: "8772"
  uid: bcb3a04d-cf48-4b7c-9dda-aff4496ed5b4
spec:
  gatewayClassName: cilium
  infrastructure:
    annotations:
      io.cilium/lb-ipam-ips: <IP_ADDRESS>
  listeners:
  - allowedRoutes:
      kinds:
      - group: gateway.networking.k8s.io
        kind: HTTPRoute
      namespaces:
        from: Same
    hostname: argocd.domain.com
    name: http
    port: 80
    protocol: HTTP
  - allowedRoutes:
      kinds:
      - group: gateway.networking.k8s.io
        kind: HTTPRoute
      namespaces:
        from: Same
    hostname: argocd.domain.com
    name: https
    port: 443
    protocol: HTTPS
    tls:
      certificateRefs:
      - group: ""
        kind: Secret
        name: cloudflare-tls-argo-cd-argocd-server
      mode: Terminate
status:
  addresses:
  - type: IPAddress
    value: <IP_ADDRESS>
  conditions:
  - lastTransitionTime: "2024-04-06T01:40:07Z"
    message: Gateway successfully scheduled
    observedGeneration: 1
    reason: Accepted
    status: "True"
    type: Accepted
  - lastTransitionTime: "2024-04-06T01:40:07Z"
    message: Gateway successfully reconciled
    observedGeneration: 1
    reason: Programmed
    status: "True"
    type: Programmed
  listeners:
  - attachedRoutes: 1
    conditions:
    - lastTransitionTime: "2024-04-06T01:41:36Z"
      message: Listener Programmed
      observedGeneration: 1
      reason: Programmed
      status: "True"
      type: Programmed
    - lastTransitionTime: "2024-04-06T01:41:36Z"
      message: Listener Accepted
      observedGeneration: 1
      reason: Accepted
      status: "True"
      type: Accepted
    - lastTransitionTime: "2024-04-06T01:41:36Z"
      message: Resolved Refs
      reason: ResolvedRefs
      status: "True"
      type: ResolvedRefs
    name: http
    supportedKinds:
    - group: gateway.networking.k8s.io
      kind: HTTPRoute
  - attachedRoutes: 1
    conditions:
    - lastTransitionTime: "2024-04-06T01:41:36Z"
      message: Listener Programmed
      observedGeneration: 1
      reason: Programmed
      status: "True"
      type: Programmed
    - lastTransitionTime: "2024-04-06T01:41:36Z"
      message: Listener Accepted
      observedGeneration: 1
      reason: Accepted
      status: "True"
      type: Accepted
    - lastTransitionTime: "2024-04-06T01:41:36Z"
      message: Resolved Refs
      reason: ResolvedRefs
      status: "True"
      type: ResolvedRefs
    name: https
    supportedKinds:
    - group: gateway.networking.k8s.io
      kind: HTTPRoute

I see two secrets created, cloudflare-tls-argo-cd-argocd-server in kube-system (used by the gateway) and kube-system-cloudflare-tls-argo-cd-argocd-server in cilium-secrets namespace. What is the role of second secret and is there way to prevent its creation?
Cilium Version
1.15.3
Kernel Version
Linux apollo 5.15.0-1049-raspi #52-Ubuntu SMP PREEMPT Thu Mar 14 08:39:42 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux
Kubernetes Version
Client Version: v1.29.3+k3s1
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.29.3+k3s1
Regression
No response
Sysdump
No response
Relevant log output
No response
Anything else?
No response
Cilium Users Document

[ ] Are you a user of Cilium? Please add yourself to the Users doc

Code of Conduct

[X] I agree to follow this project's Code of Conduct

It seems you can disable this behavior by setting the enable-gateway-api-secrets-sync parameter.

Removing stale.

@ti-mo can we please reopen this ticket?

/nostale


add support to log to a file

Add support for options to accept filePath and use it instead of process.stdout

Thanks, I will merge it here: https://github.com/MailOnline/jest-tap-reporter/pull/44


refactor: Qdrant async improvements

Follow up on https://github.com/langchain-ai/langchain/pull/13048.
This PR intends to simplify the Qdrant async implementation by replacing the internal GRPC methods with the QdrantAsyncClient methods.
This is a backward compatible change with no additional steps required after merge.

Review please @baskaryan.


Win scenario not always fulfilled

Users are reporting that despite correctly having solved the puzzle, the win scenario is not fulfilled. Some users report that sometimes it registers as won, only later to be returned to in progress.
One user reports:

On puzzle 106, even when you complete the puzzle, it doesn't turn green or mark itself as completed.
I've completed a fair number of these (the first 15 or so) and then just jumped to a random one in the pack.

Another user reports:

I opened the puzzle again today and it gave me my score. I then reset the puzzle to see if it was okay today… but it ends up the same situation like yesterday…
Oh and, since it doesn't let pass yesterday, I thought maybe I typed something wrong and started to reveal words, and that's why there are so many revealed words

A user provided more insights:

It's not related to switching apps, as I just recreated the error myself. It seems it has something to do with resetting the puzzle, and any revealed letters not staying revealed after a reset.
Puzzle #653, i revealed an I (the first letter), then reset the puzzle to test it. The I stayed revealed, but when i reset it a second time, immediately afterward, it didn't keep the I revealed as far as the keyboard was concerned. I think the error has to do with resetting the puzzle directly.

I haven't encountered this issue any more; closing.

A user reports:

Start solving a Cryptogram.
After entering a letter, open the left sidebar to show the cryptogram list with their solved status.
Scroll down this list so that the current cryptogram goes off screen past the top.
Dismiss the left sidebar by swiping it to the left.
Continue solving the cryptogram.
Once you enter the last letter, the app does not detect that it's solved, even if all letters are correct.
Open the left sidebar again. The scroll position should be at the same position it was when the left sidebar was dismissed, so that the list item of the current cryptogram is not visible. Now scroll back up to get to the list item of the current cryptogram. As soon as the list item comes into view, the app detects the puzzle is solved.

Resolved in 1f73dae5abfbe24275f6195ee2518d70ed0b2b7a


[macOS] Change the shortcut for Align Transform with View

Option-Command-M doesn't work on mac, it minimizes all windows of the active app. Changing to Option-Command-G, it's right next to align rotation with view

Production edit: Follow-up to https://github.com/godotengine/godot/pull/93675.

I suggest also supporting Ctrl + Alt + G on other platforms so it's less jarring if you switch between macOS and Windows/Linux frequently.

Thanks!


AngularJS 1 / 2 / 4 support

Like old Azure Active Directory Authentication Library (ADAL) for JavaScript had a library AngularJS 1 (adal-angular.js), and we hope Angular 2 and Angular 4.
Are there any plans to develop Angular library inside MSAL for major stable version (1,2,4) ?

With the newly released HttpClient in Angular it allows for interceptors. Building an interceptor like what was done for the ADAL library should be feasible now.

Maybe this can help - https://github.com/Azure-Samples/active-directory-b2c-javascript-angular2.4-spa

I created a fully working example using MSAL in an Angular 4 / .Net Core application, based off the Angular 4 .Net starter template. https://github.com/Gimly/NetCoreAngularAzureB2CMsal
I also have a simpler example with just Angular 4 https://github.com/Gimly/simpleAngularAzureB2C

@Gimly great example. However it does not have Microsoft Graph API (which also should be used to pull extended properties from users) and delegation/access rights to another backend app. So properly frontend/angular (implicit flow) and backend can be devided...

@hkusulja Yes, I know it has still a few things to improve. I could add easily the Graph API since I did it in the app I'm working on, but I'm using a sample Azure AD B2C tenant and therefore can't add the permission to get info from the Graph API.
Delegation/access rights to another backend app, you mean from the .Net Core backend?

So you are saying that it is not possible to get one OAuth2 token through implicit flow / angular2 from B2C AAD directory which also has a permission for:

Graph API, scope:xxx
mycustomServerBackend, scope: xxx

If so, any reference to do that?
This is normally working on "normal" AAD.

@Gimly  So you are saying that it is not possible to get one OAuth2 token through implicit flow / angular2 from B2C AAD directory which also has a permission for:
Graph API, scope:xxx
mycustomServerBackend, scope: xxx
If so, any reference to do that?
This is normally working on "normal" AAD.

@hkusulja No, I'm not saying it's not possible, it's totally possible. It's just that I don't have to rights to the Azure B2C tenant I'm using in the sample and I'm not sure if they have added the rights for the app registration I'm using to use the Graph API. It's just a question of configuration.

I am sure, that if you have a Azure subscription for testing, you can create your own test Azure AD B2C , and inside it, create your applications with rights / Graph API...
I do not see way how to achieve access to Graph API and my custom backend...

Bump, will Microsoft support the MSAL for Angular library?

@hkusulja There are plans in MSAL roadmap this year for an Angular library.

@hkusulja @Gimly @jraadt  We have released @azure/msal-angular for angular 4.3+ and @azure/msal-angularjs for angular 1.7 on NPMJS. I am closing this issue.

@nehaagrawal where can we find @azure/msal-angular cause a google search only sends me to a github page of https://github.com/benbaran/msal-angular


[clean up] Delete unused imports

Modifications
related to #12690 , @gaozhangmin doesn't clean up the unused import in tests.
Documentation

[x] no-need-doc
just clean up

/pulsarbot run-failure-checks

I found https://github.com/apache/pulsar/pull/8878 has already adds the checkstyle plugin for pulsar-broker module, do you know why it didn't check the unused imports? Or could we add an automatic check for it?

I found #8878 has already adds the checkstyle plugin for pulsar-broker module, do you know why it didn't check the unused imports? Or could we add an automatic check for it?

It's works, but only new modified file. test in #12799


Created SlidingUpPanel

TO-DO
Table of Contents

[x] Identify the component the PR relates to in brackets in the title.
SlidingUpPanel
[x] Sign the CLA bot. You can do this once the pull request is opened.

Contributing
has more information and tips for a great pull request.

@zeobot set lc to pass


Add subgroup

Objective
Sometimes a PluginGroup requires another PluginGroup, like DefaultPlugins. The previous solution to this was:
use bevy::prelude::*;
use bevy::app::PluginGroupBuilder;

struct GamePlugins;

impl PluginGroup for GamePlugins {
    fn build(&mut self, group: &mut PluginGroupBuilder) {
        DefaultPlugins.build(group);

        // Add more plugins here...
    }
}

This feels backwards, even though it is correct.
Solution
Add a quality-of-life function that merges another group into the current one.
use bevy::prelude::*;
use bevy::app::PluginGroupBuilder;

struct GamePlugins;

impl PluginGroup for GamePlugins {
    fn build(&mut self, group: &mut PluginGroupBuilder) {
        group.add_subgroup(DefaultPlugins);

        // Add more plugins here...
    }
}

Changelog
Added PlugingGroupBuilder::add_subgroup().
Reasoning
My game is structured in a set of plugins. All you need to do is call App::new().add_plugins(GamePlugins).run(). This ensures that all the required plugins are registered. If main.rs has to also register DefaultPlugins, but doesn't, then my game would break. To fix this, I attach the default plugins as seen in the first example. I was dissatisfied with how that broke the flow of the code, so I wrote this function to fix it.

Thanks for the feedback! I'll look into adding an example.

I have updated the example to show using add_subgroup. As long as that looks good, this PR is ready to merge.

I'll ask for you then :) No worries!

Blocked on #69 then.

It's been a while since there's been activity here. Should I close the PR or leave it open?

Let's close this out per the comment from James; we can always reopen in the future.

Ok, I won't delete my fork though until this gets resolved.


Frontend tweaks for new slim sidebar

LGTM! Only thing is I think the circular Wagtail background looks a little weird in slim mode, but that's something for design

Yep, I couldn't find a better way but we can always adjust this later. Thanks for the review!


Add test for Canary model upgrade

is this empty file needed? ods_ci/tests/Resources/Files/llm/caikit_canary_model_upgrade.yaml