Contacts to be editable and case insensitive

Rationale
Once the COntact added we cannot easily modify it, we need to delete and re-enter it. Having "Edit" option would be useful - both name and address, as we might want to rename some contact or also keep the name while this person may change a wallet address...
Also, as of now, it is possible to add almost identical Contact names as long as we use different cases - which might cause issues for the Users with time as the address book grows. Creating "john s" and "John s" and "John S" etc...- having all 3 or more completely different people/wallets is currently possible and might be quite probable for some Users.
Adding 2 Addresses with just a different case is also possible right now, even though there is a checking of "already existing address". Should also be case insensitive.
Prerequisites
n/a
User story

[ ] I can edit the name of the Contact
[ ] I can edit the address of the Contact
[ ] I cannot add almost the same contact names if the only thing that differs is the letter case

Acceptance criteria

[ ] The basic scenario works as described
[ ] If I enter the contact name that already exists (but with different case), an error is shown

Out of scope
n/a
How to implement
How to test

Added one more aspect:
Adding 2 Addresses with just a different case is also possible right now, even though there is a checking of "already existing address". Should also be case-insensitive.


Creating a matching policy for the content key and for streaming

@AnassHmida Hope you have self resolved and hence closed the issue. Thanks for the update.
Just FYI, This azure-docs repository deals about feedback related to particular Azure document page (like correcting doc bugs, doc enhancements, product issues related to wrong doc instructions, etc.) so if issue is intended to update / correct / enhance anything in an Azure document then going forward please share that kind of feedback here along with Azure document URL. Thanks.


App Crashes trying to enable COVID Alerts After choosing Skip for now

The following might have been fixed in a subsequent release.
After choosing Skip for Now during onboarding attempting to click the orange banner to set up My Covid Alerts at the landing screen causes the app to crash. Closeness sensing can still be turned on from the App Settings under My COVID Alerts. Crash is repeatable, just turning off closeness sensing and then returning to the landing page to click the orange banner causes it.
Bug number 29 |   | 1.0.0 (29) | Android | Galaxy S10+ | 9/3/20 4:13 PM | Patrick Brennan

Retest passed. Issue is closed.


[BUG] Real Time Clock Doesn't Pause When Reloading The Page With Active Combat

Steps to reproduce (copied from discord and edited)

Enable the setting "Unify Clock Start/Pause With Game Pause".
Combat is started - clock pauses as per normal but no "Paused" UI wheel.
Reload the canvas.
You should now have the normal "UI paused" wheel due to reload.
Unpause the game, which also unpauses the clock. Despite being in an active combat.

As I've seen, the bug seems to happen not necessarily with active combat, but just whenever the time on the clock is running and the game isn't paused.

So this bug happens for me just as is, like I can't get the combat to auto-pause the time clock regardless of whether it's unified or not.
I've had a similar bug before where if I started combat with the game 'paused' (to give me time to set up the encounter etc), and then 'unpause' after I started combat the combat pause would not happen and i'd have spell effects just running out mid turn.  My current solution is to just no unify the pause/unpause and just do it manually as combat starts, not ideal.
I can occasionally get combat to auto-pause, but it's super inconsistent.

@Dairid I think your issue is different from this.
By default the clock only pauses when there is a combat on the active scene. The active scene will have a little target next to its name in the scene list.  This is so that combats that have been set up on other scenes or old combats that weren't deleted don't cause the clock to pause.
There is a setting in Simple Calendar called "Pause Real Time Clock on Combat Rule" that can change that behavior from the active scene to "the Scene the GM is Currently Viewing". That tends to work better if as a GM you don't update the active scene or have a play style that is better suited to do that check based on the scene you are currently looking at rather than the active one. More details about that setting can be found in this page https://simplecalendar.info/pages/global-configuration/index/settings.html
If neither of those are working for you then can you let me know the version of Simple Calendar you are running, the version of FoundryVTT and the system you are playing in?

So fun thing happened, I saw I did no have that option AT ALL.  Somehow my module was showing up to date etc, but was stuck way back in 1.0 so it was an old bug, once I forced the update all is well.
Thank  you

This issues was fixed in version 2.1.73!


[Question] Are there any simple ways to get a binary data of NSData or NSInlineData?

Hi, thank you for your nice library.
I got an image data as NSInlineData via NodObjC.
Since I could not find a simple way to convert it into a Buffer object in the document and sources, I converted it from the result of toString() or 'description'.
If you already provided a right way, please let me know.
Thanks.

What about -[NSData bytes]?
That returns const char*, from which you could create a Buffer

I tried 'bytes' but the return value was an empty instance of Buffer...

I think it's something like const buffer = ref.reinterpret(data('bytes'), data('length'));

It works! Thank you!


Stream TO device?

Let's say I have a network stream that outputs an mpegts stream. How can I pipe that into a v4l2 device?

@DUOLabs333 it depends. Is that device an input or output device ?
If it's a camera, you cannot stream into it.
If it's a video output, I don't know how that works.


[DO NOT MERGE] Re-add 2019 dates

Reverts alphagov/calendars#154
Re-instates alphagov/calendars#153

 (1) Add 2019 bank holidays and clock changes

PSA: The review app for this is working again.


Kickoff for on-demand Mutations/QC/Lineages

Summary:

What: Adds kicking off the job/workflow for calling Mutations/QC/Lineages via Nextclade upon sample upload
Ticket: sc<220816>
Env: yes... but no. I had an rdev going for this vince-kickoff-ondemand-spikemutations, but there was separately some Happy weirdness, and it wound up getting cleaned up over the course of working. But I did manage to complete the testing on it and you can see that in the demos below.

Demos:
I uploaded a set of 12 samples total, 10 known good, actual COVID genomes, the other 2 as bad genomes (one trash, one MPX). Job ran as expected when inspecting step function and logs. Results came out as expected in various tables.
For all the demos below, these are not the entirety of the DB row, just partials. The entire row for each has a gigantic chunk of the raw output as JSON, so makes for some pretty ugly screenshots, so I just made it enough cols to use for reasonable demo screenshots.
The two invalid samples are 17826 and 17827.

QC Metrics
You can see the 10 good samples have QC accordingly, while the bad samples have the invalid keyword to show a failed Nextclade run. (There's an extra 2 samples in here from an earlier test with 2 other invalid samples. You can see those at the top, 17814 and 17815.)

Mutations
You can see the mutations result calls for the 10 good samples. The bad samples do not have a row at all, because if a sample fails the Nextclade run, we do not record its mutation info (because it's trash, there's nothing there, and Sidney told me to do so).

Lineages
Is this a demo? This is a demo of not having done anything, I guess? Because these samples were all given as SC2 pathogens, we did not get their lineages from Nextclade. These values were all populated by the already existing Pangolin on-demand job/workflow. The new work of this PR did not interfere or accidentally change any of that. (You can also see that the two invalid samples have a trash Pangolin call because they're not SC2 genomes.)
Also note that all the reference dataset info (name, accession, tag) is left as NULL, because that's a Nextclade specific thing. Since these entries did not come Nextclade, there's nothing there for any of them.

Checklist:

[x] I merged latest trunk
[x] I manually verified the change
[x] I added labels to my PR

Is there anything we can do re: test coverage?

Is there anything we can do re: test coverage?

I'm not really sure. I looked a bit and didn't see any tests for kicking off the Pangolin jobs. We do have some test coverage of the Nextclade run itself in its workflow folder, though. But I don't see an easy way to test the end-to-end kick-off aspect.


How to use company logo, instead of simply text name i upper left.

I would like to know how to add company logo instead of brand_text="novaram"
Can anyone help me with that?
Thx

I have the same question...

same here

I made progress with this one. Go to user\plugins\gravstrap\templates\bootstrap in your directory and inspect line 11. This is where the template creates the HTML for navbar image

There is code mentioned if brand_image is not null i am trying to use brand_image= path of my logo to see if that works

Hi, everybody.
I could get the image showing but, only by hardcoding an image tag, just as peter-doherty suggested first.
But how can I use the provided brand_image attribute?
With any path I set, nothing gets inserted inside the corresponding a-tag!?!?
Somehow the if-clause seems not to be working ...
Or maybe I am passing the image path wrong!?
I tried brand_image="logo.png" as well as brand_image="/images/logo.png".
Any help appreciated!


Bump git version to 2.17.1

2.9.5 (probably?) suffers from CVE-2018-11235.
I have tested this on CentOS 7 but I don't have time to test every system. Perhaps this version is too new for some but we do need some kind of update to address the vulnerability.

Thanks

Thanks for bumping. It looks like this was intended to be final but you haven't pushed to the supermarket?

@tas50 Ping?

Sorry for the late response. I've pushed to supermarket.


'Flutter/Flutter.h' file not found

@syedmuhammadwaqas
As mentioned previously, please provide more details as requested in the issue template that'll help us to debug further.
Only screenshot of the error won't help. We need your flutter doctor -v and flutter run -v logs to know more about the issue. Current info you provided isn't helpful at all, so we have to close this issue because it is not actionable.


Survey's alert builder strings moved to strings.xml. Strings i18n for Sp...

...anish

This is great! Thanks for the contribution!

Updated. Thanks @chiara-jm for pointing that out :)

Closing this PR as it had been merged into master.


Selfbots

I believe that selfbots are banned with the newest Discord TOS update. You should probably take this down.

False


[FEATURE] Enable updating of email for anonymous users

Description
When a user logs in anonymously, the user must first log out before being able to log in with their email.
But what if the anonymous user wants to update/add email to enable them to use features of email users (i.e add friends, log out without losing chats, etc) without losing the current chat?
We need to add the option for users to update their email after logging in.
Screenshots
No response

It's great having you contribute to this project by creating an issue Make sure you are assigned to this before you work on it and you read the Contributing.md file, Thank you! Welcome to the community :nerd_face:

Sounds good to me. I'm willing to contribute.
Please assign it to me.


how can i deal with it when i‘d like to segment any novel class i want？Need i train the model from scratch？

I want to reproduce the results of Figure 4 in the paper, segmenting unannotated categories in the dataset.
Do i need to modify the cfg file and then train from scratch, or i can use the model weight like B13/N4 during inference directly?
But when i directly used the model weight like B13/N4 in Scannet, and i added some unannotated novel classes in the cfg and then get text embeddings online during inference time, i just got 'nan' on novel classes.
So i want to ask that if i need to train from scratch when i add some novel classes???

Hi, since the added novel classes don't have annotations in the ScanNet dataset, they cannot be evaluated quantitatively. You can save the instance results and visualize them to see how they perform qualitatively.


simp_le: 0.6.1 -> 0.8.0

Motivation for this change
according to the changelog, the release 0.6.2 of simp_le will be future-proof by not hard-coding the TOS checksum.
To update simp_le, the latest version is required which is bumped by this PR. Additionally josepy is added which is required for simp_le and certbot.
related: #31944
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-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 nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build simp_le certbot

Failure on x86_64-darwin (full log)
Attempted: simp_le, certbot
Partial log (click to expand)
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

IMPORTANT NOTES:
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

error: build of '/nix/store/fkmcxy3jjymzhidv7c9b9l6i551rm5a2-simp_le-client-0.8.0.drv' failed

Success on aarch64-linux (full log)
Attempted: simp_le, certbot
Partial log (click to expand)
   Donating to EFF:                    https://eff.org/donate-le

IMPORTANT NOTES:
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

/nix/store/vjrj643401n3b0iqs7q1cz3jkxri9m41-simp_le-client-0.8.0
/nix/store/mzbqw35qyn09ar2jpckvhcn75r0lficp-certbot-0.22.2

Failure on x86_64-darwin (full log)
Attempted: certbot, simp_le
Partial log (click to expand)
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

IMPORTANT NOTES:
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

error: build of '/nix/store/6l91ci1gvp1pgszx4d6hi6dymdmnyx3x-simp_le-client-0.8.0.drv' failed

Success on aarch64-linux (full log)
Attempted: certbot, simp_le
Partial log (click to expand)
/nix/store/mzbqw35qyn09ar2jpckvhcn75r0lficp-certbot-0.22.2
/nix/store/vjrj643401n3b0iqs7q1cz3jkxri9m41-simp_le-client-0.8.0

Success on x86_64-linux (full log)
Attempted: simp_le, certbot
Partial log (click to expand)

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

IMPORTANT NOTES:
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Success on x86_64-linux (full log)
Attempted: certbot, simp_le
Partial log (click to expand)
/nix/store/ml590087glxdncjcgajnyrd8as3jj5sm-certbot-0.22.2
/nix/store/zbr3cn5s1fgkvlhswipisdgdzfhy66sl-simp_le-client-0.8.0

certbot fails on darwitn with
ERROR: test_no_persisted_empty (simp_le.ExternalIOPluginTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/nix/store/5myi8sjqdhii0wsrcrjaw1pkzc14hmnj-simp_le-client-0.8.0/lib/python2.7/site-packages/simp_le.py", line 886, in test_no_persisted_empty
    self.assertEqual(IOPlugin.EMPTY_DATA, self.plugin.load())
  File "/nix/store/5myi8sjqdhii0wsrcrjaw1pkzc14hmnj-simp_le-client-0.8.0/lib/python2.7/site-packages/simp_le.py", line 654, in load
    pems = list(self.split_pems(self.get_output_or_fail('load')))
  File "/nix/store/5myi8sjqdhii0wsrcrjaw1pkzc14hmnj-simp_le-client-0.8.0/lib/python2.7/site-packages/simp_le.py", line 629, in get_output_or_fail
    raise Error('Failed to execute external script: {0}'.format(error))
Error: Failed to execute external script: [Errno 8] Exec format error

not sure how to fix it. should i disable this test for darwin? everything else looks fine

/cc @dotlambda @disassembler

I noticed some /bin/sh stuff in simp_le.py. No idea if that's the reason but it should be fixed anyway.

Failure on x86_64-darwin (full log)
Attempted: certbot, simp_le
Partial log (click to expand)
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

IMPORTANT NOTES:
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

error: build of '/nix/store/rc6vwszbkh78v3v0p4g6w88bwp8y8sax-simp_le-client-0.8.0.drv' failed

Success on x86_64-linux (full log)
Attempted: certbot, simp_le
Partial log (click to expand)
   Donating to EFF:                    https://eff.org/donate-le

IMPORTANT NOTES:
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

/nix/store/ml590087glxdncjcgajnyrd8as3jj5sm-certbot-0.22.2
/nix/store/di9lpv6750sv3f48fh2gw883g7afvbz8-simp_le-client-0.8.0

Success on aarch64-linux (full log)
Attempted: certbot, simp_le
Partial log (click to expand)
   Donating to EFF:                    https://eff.org/donate-le

IMPORTANT NOTES:
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

/nix/store/mzbqw35qyn09ar2jpckvhcn75r0lficp-certbot-0.22.2
/nix/store/92vfwxa4pkl2gk9wax431awsl3jhmplw-simp_le-client-0.8.0

It would be nice to backport this to stable too

Currently I a don't have time to do this, but maybe someone else.

This breaks the acme module:
@GrahamcOfBorg test acme

No attempt on aarch64-linux (full log)
The following builds were skipped because they don't evaluate on aarch64-linux: tests.acme
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowBroken = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowBroken = true; }
to ~/.config/nixpkgs/config.nix.

Failure on x86_64-linux (full log)
Attempted: tests.acme
Partial log (click to expand)
error: command `curl https://example.com/ | grep -qF "hello world"' did not succeed (exit code 1)
command `curl https://example.com/ | grep -qF "hello world"' did not succeed (exit code 1)
cleaning up
killing webserver (pid 616)
killing letsencrypt (pid 593)
killing client (pid 627)
vde_switch: EOF on stdin, cleaning up and exiting
vde_switch: Could not remove ctl dir '/build/vde1.ctl': Directory not empty
builder for '/nix/store/cxwb1wwyza4kvggsc7z8k0jaass8hlnn-vm-test-run-acme.drv' failed with exit code 255
error: build of '/nix/store/cxwb1wwyza4kvggsc7z8k0jaass8hlnn-vm-test-run-acme.drv' failed

The reason seems to be simp_le: error: unrecognized arguments: --tos_sha256 cc88d8d9517f490191401e7b54e9ffd12a2b9082ec7a1d4cec6101f9f1647e7b
It doesn't use that argument any more, so the test needs to be adjusted.

@wmertens exactly, with 0.6.2 the TOS shasum will not be hardcoded anymore. See changelog 0.7.0 on https://pypi.python.org/pypi/simp-le-client . the client implicitly agrees with the TOS if one is is presented


Load and add predefined tokens on init/pageload

Hi again. I noticed today that I am kind of lacking a way to add tokens myself when the page is initialized.
I am using Tokenize for a form, and when saving the form the tokenize "results" (and a bunch of other things) is sent to my server for storage, so that the user can later edit the form, and all the old data gets loaded.
This is a bit hard to do with tokenize it seems to me?
Basically on pageload I would like to do something like this:
$('select#tokenize').tokenize();
var field = $('input[name=champs]'),
    fieldvalues = field.val().split(' ') || [];
if (!$.isEmptyObject(fieldvalues)) {
    $.each(fieldvalues, function (i, val) {
        //search json for val etc
});
  //update tokenize field with results and "select" them (add them to the tokenize input field)
}

If there is a way to achieve this I can't figure out how, otherwise would this be a feature that you could possibly look into adding?

Hi, I'm not sure that I understand your problem, if you want just add tokens after the page load, you can use the api.
$('select#tokenize').data('tokenize').tokenAdd(value, label);

P.S. I see that your input name is in french. French is my native language.

My input name is actually swedish :)
I want to add a number of values (that are grabbed from the server) to the tokenize field when the page is loaded
I tried to do something like this:
if (!$.isEmptyObject(fieldvalues)) {
    $.each(fieldvalues, function (k, v) {
        $.ajax({
            url: ajaxurl,
            data: 'search=' + v,
            dataType: 'json',
            success: function (results) {
                $.each(results, function (i, val) {
                    console.log(val.clean, val.champion);
                    $('select#tokenize').data('tokenize').tokenAdd(val.clean, val.champion);
                });
            },
        });
    });
}

But it did not seem to add any tokens, am I misunderstanding something?
The correct data is output with the console.log but the tokenAdd function seemed to do nothing

Your usage is correct I just tested the tokenAdd function. The only reason that it will not work it if tokenize have "newElements" = false and the "val.clean" value is not in the select element.

I see.
Then it's because the newElements = false option is set.
It seems changing the code to this works as a solution for that problem
if (!$.isEmptyObject(fieldvalues)) {
    $('select#tokenize').data('tokenize').options.newElements = true;
    $.each(fieldvalues, function (k, v) {
        $.ajax({
            url: ajaxurl,
            data: "search=" + v,
            dataType: 'json',
            success: function (results) {
                $.each(results, function (i, val) {
                    $('select#tokenize').data('tokenize').tokenAdd(val.clean, val.champion);
                });
            }
        });
    }).promise().done( function() {$('select#tokenize').data('tokenize').options.newElements = false; });
}

I think that will work, the second solution is to add the all options element in the select (with php) whitout "selected" attribute, before tokenize load, so you don't have to change newElements option.

I think just setting the option to false after the "preload" is done is the easiest method instead of writing a new php function just for adding all the options, and I don't think it will cause any problems.
I also modified the code above a bit because I realized promise() would not work like that :P


PrepareStatement methods are extracted

prepareStatement() methods are duplicated.
This PR extracts a private method from the prepareStatement() methods and simplifies codes.

Looks good for me. The same could be done with method prepareCall()?

Therefore it would be better to create a pull request for https://github.com/apache/commons-dbcp

Correct. Patches should go to Commons DBCP.


is there an android java implementation available?

flutter setup is kind of a hassle.
Step 3 is not clear , hope you can expand on Step 3.
Can you make a short youtube video on Step 1 to 4 ?
Is there a java android version of this project available?
Thanks for such a good project! Appreciate your work making the flutter version.

Thanks @GeorvityLabs . No idea about that


Using standalone application feature

Using standalone application feature

For creating multiple serverless functions and sharing common modules between them, we recommend using the CLI Monorepo mode.

참고 URL
study-monorepo-serverless


tachidesk-server-preview: Add version 0.6.4

preview version of tachidesk-server

[x] I have read the Contributing Guide.

/verify

https://github.com/ScoopInstaller/Versions/actions/runs/3064426596/jobs/5257003124 reports
RuntimeException: The following 1 lines contain trailing whitespace:
[24](https://github.com/ScoopInstaller/Versions/actions/runs/3064426596/jobs/5257003124#step:4:25)
      File: D:\a\Versions\Versions\my_bucket\bucket\tachidesk-server-preview.json, Line: 46
[25](https://github.com/ScoopInstaller/Versions/actions/runs/3064426596/jobs/5257003124#step:4:26)
      at <ScriptBlock>, D:\a\Versions\Versions\scoop_core\test\Import-File-Tests.ps1: line 109
[26](https://github.com/ScoopInstaller/Versions/actions/runs/3064426596/jobs/5257003124#step:4:27)
    [+] any leading whitespace consists only of spaces (excepting makefiles) 74ms
[27](https://github.com/ScoopInstaller/Versions/actions/runs/3064426596/jobs/5257003124#step:4:28)

And personally, I would like to see us not download ancillary scripts, but to use $bucketdir. Primarily because you don't need to change URLs after testing it locally.

/verify

I fixed the checks failing and changed it to use $bucketsdir instead. Should we include the release build number (-r1136) in the version number so that it can be picked up as a new version when running scoop update?

Of course, the version should be 0.6.5-r1136, not only 0.6.5.

preview version of tachidesk-server

[x]  I have read the Contributing Guide.

preview version of tachidesk-server

[x]  I have read the Contributing Guide.


mysql : InnoDB: Unable to lock ./ibdata1 error: 11

What happened:
Mysql:
I forced the operating system to restart (after power restart) mysql startup error
InnoDB: Unable to lock ./ibdata1 error: 11
The 2022-03-16 T02:10:29. 964608 z 0 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.
It'll take about three minutes to recover on its own
Some people say it is caused by NFS lock. How to solve it under JuicEFS
What you expected to happen:
Mysql can start normally
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?
Environment:

JuiceFS version (use juicefs --version) or Hadoop Java SDK version:  1.0.0-beta1 (2022-01-13 28a42cf6)
Cloud provider or hardware configuration running JuiceFS: Kubernetes csi
OS (e.g cat /etc/os-release): CentOS7
Kernel (e.g. uname -a): 4.19
Object storage (cloud provider and region, or self maintained):  self maintained Minio
Metadata engine info (version, cloud provider managed or self maintained): self maintained Redis
Network connectivity (JuiceFS to metadata engine, JuiceFS to object storage):
Others:

Do you put data files of MySQL in JuiceFS? Is there any other client running MySQL with the same data files?

Yes, I put the mysql data files into JuicEFS, only this mysql client, mysql reported an error and started about three minutes later (it should have locked the files successfully), but three minutes is too long for our failover, and there is no guarantee that three minutes can be started properly every time

It's probably caused by the crash of JuiceFS process (since you force restarted the host), which leaves some files locked by the previous session. The new session is unable to lock them until the old one is cleaned up (about ~5 mins later). You can check this log message to confirm.
BTW if the old session is closed gracefully (say, by umount), the locks will be released immediately.

@mytting We change to default session timeout from 5 minutes to 1 minutes by #1591  , so it will be OK when the stale session cleaned.


Add Pikachu to Random Battles

Based on the post-merge discussion on #1422.
Also, discuss whether it should be done here, while we're at it.
If we ultimately decide against it, make it quick so the Cosplay Pikachu formes can be kicked out of Random Battles instead (their unique position as non-evolving makes them bypass the NFE check)

They should be kicked out. There are several NFE Pokemon that outclass Pikachu in the lowest tier, PU, and I disagree with specifically selecting Pikachu to be in Random Battles. @Zarel you specifically did not want NFE/LC Pokemon but now you are contradicting yourself. :|

I think @Zarel was referring to Pokemon that are quite different from their fully-evolved Pokemon in terms of playstyle, yet can still probably pull their own weight.
Pikachu out-damages Raichu (because of Light Ball) but is slow and incredibly brittle.
Porygon2 is bulkier than PorygonZ and thus can play something closer to a support role. (This was true even before Eviolite was a thing)
Chansey... doesn't get Eviolite because the random set generator said so, and isn't actually that different from Blissey.
It's not my decision to make, though, and I don't care either way what the decision becomes.

As an aside, I'm curious as to the reasoning behind Extremespeed in Pikachu and Raichu's sets (Raichu only has it in its Double Random Battle pool). It can only be learned via an event in Generation 5, and thus is incompatible with the many egg and pre-evo moves that the evolution line has (Volt Tackle, Nasty Plot, etc).

Random Battle does not check for incompatibilities, and we do not limit Random Battle moves based on incompatibility.

This isn't required anymore as Pikachu is PU now.
279b7bb7a637f7ee392dd7878eaa1550896694c6

Technically that's untrue, because BattleScripts#randomTeam makes a check for template.evos.length and rejects all Pokemon with potential to evolve. This means Pikachu is still kicked out of random battle teams, but Cosplay Pikachu (which is arguably worse than regular Pikachu) is still allowed.

23c830562a4754f18ee4eab4cd3068597d2f9c8e


Simplify logic and add test

Please provide a description of this PR:
removeDNSConfig: Simplify logic and add test

Hi @helen-frank. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

/ok-to-test

@helen-frank: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

gencheck_istio
28b270841dc6c03d33f9e6247ee1afbfa5ec87ef
link
true
/test gencheck

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@helen-frank: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-security-multicluster_istio
11bc276ac65d25860e4e017f31f41a0a88244d50
link
true
/test integ-security-multicluster

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Release

This is a 1.0.0 version of the library.
This will NOT be binary-compatible.  That wasn't possible for python anyway due to the move to cryptography for EC.
Big changes here are:

aes128gcm is now the default.

The ability to save keys is removed.  Callers need to use the
private_key/privateKey.

The keymap and keylabels parameters are gone.  If you are using an older
version, then keylabel can be used to override the default value of 'P-256'.

The padSize/pad_size parameter is gone, as is the authSecret spelling for
auth_secret in python.

The python version uses cryptography for EC (pyelliptic is no longer
maintained).  A P-256 private key can be created using:

from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.asymmetric import ec

ec.generate_private_key(ec.SECP256R1(), default_backend())

The python version also accepts a cryptography EllipticCurvePublicKey in
place of raw bytes for the dh parameter.

Closes #34.

Very pleased to see this, the current syntax was quite confusing!
      keyid: 'foo',
      keymap: {
        foo: localCurve
      },
      keylabels: {
        foo: 'P-256'
      }

Let me know if you need a hand. :)

@ronanyeah it would be good if you could test this and tell me that it's not broken for you.  My tests have reasonable coverage, but that's no substitute for "does this work in the real world".

@martinthomson OK so I was doing this:
    const cipherText = ece.encrypt(bufferPayload, {
      keyid: 'foo',
      keymap: {
        foo: localCurve
      },
      keylabels: {
        foo: 'P-256'
      },
      dh: subscription.keys.p256dh,
      authSecret: subscription.keys.auth,
      padSize: 2,
      salt
    })

but now that throws:
crypto.js:74
  this._handle.update(data, encoding);
               ^

TypeError: Data must be a string or a buffer
    at TypeError (native)
    at Hmac.Hash.update (crypto.js:74:16)
    at HMAC_hash (/home/ronan/repos/encrypted-content-encoding/nodejs/ece.js:52:8)

How should I change my arguments?

@ronanyeah, try this:
    const localCurve = crypto.createECDH('prime256v1');
    localCurve.generateKeys();
    //....
    const cipherText = ece.encrypt(bufferPayload, {
      privateKey: localCurve,
      dh: subscription.keys.p256dh,
      authSecret: subscription.keys.auth
    })

Oh, I should point out that that is for the new syntax, so that's probably wrong.  You get better compatibility (for the moment) using:
    const localCurve = crypto.createECDH('prime256v1');
    localCurve.generateKeys();
    //....
    const cipherText = ece.encrypt(bufferPayload, {
      version: 'aesgcm',
      privateKey: localCurve,
      dh: subscription.keys.p256dh,
      authSecret: subscription.keys.auth
    })

Give it a few months and we'll have rolled out the new version in browsers, but this is the best choice for the moment.  Ultimately, the ideal method will depend on you passing version from the first element of PushManager.supportedContentEncodings, but that's even further out.

Currently both examples are returning a 201 but no push notification is coming through. I'll do some investigation. Let me know if you need more information.

@martinthomson Whew, that was thankfully brief! OK, the salt AND the version (aesgcm) have to be provided in order for the notification to come through, but all 3 cases return a 201, which might not be ideal.

Yep, you are probably setting the salt parameter in your request; omitting salt causes the encrypt function to generate a random salt, which won't match up.
Note: The push service can't decrypt your message, so it always returns 201.


Apache MetaModelMETAMODEL-140 Elasticsearch module unable to correctly process complex mappings

These changes are to address the issues in [1] .
I changed ElasticSearchDataContext.java detectTable to iterate through the
mappingMetaData and only parse the properties element.
I changed ElasticSearchMetaDataParser.java parse to split on "}," so that it
keeps the full description of a field with the field name, and adjusted
getMetaDataFieldTupeFromMetaDataField to handle the presence of extra
field descriptors and the edge case of the last field which will end with
a "}".
I changed ElasticSearchMetaDataParserTest.java to test the case when a field
has an extra descriptor by adding the index=not_analyzed tag to the
message field in the metaDataInfo string.
I also added a small test to ElasticSearchDataContextTest.java that makes sure that the changes addressing objects on the same level as the "properties" object are handled correctly.
[1] https://issues.apache.org/jira/browse/METAMODEL-140

I'm unable to reproduce this test failure locally.

I see that the test is only failing on Java 6. So to reproduce locally you also need to run with Java 6 I guess. And maybe worth noting: In the J6 build profile we are using ElasticSearch version 0.90.13

To track this in the stacktrace I can also recommend that you add .operationThreaded(false) to the requests that you send. That way you will not have a stack from another thread, but a stack that you can trace back to lines in your unittest.

Looked a bit more into this and I simply cannot explain it ... Honestly I don't worry too much in this case because it seems to be just your test fixture that is failing, not the actual code change.
So unless you find a better way, I would accept if you do a dirty thing a la:
        if (Version.CURRENT.major == 0) {
            return;
        }

(in the test method)

Can you apply the above fix in the unittest so that we can see Travis accepting it, and then I will happily merge. It's a good fix that you've made.

Due to release timing I'm gonna go and make a fork of your branch @maphysics and then put in the unittest fix that I proposed ... Might get us a fix quicker and then we can hopefully get it into an upcoming bugfix release soon.

Thanks!  For tracking this.


Nuxt + Histoire doesn't work

Describe the bug

I have made a fresh nuxt project on stackblitz (and locally via Nuxt's "getting started" instructions)
I then installed histoire while following the getting started for nuxt
I then created a basic Button.vue and Button.story.vue, and got the following errors in console when clicking on the story:

For used package manager - I use pnpm locally but the reproduction stackblitz uses npm
Reproduction
https://stackblitz.com/edit/nuxt-starter-j2ib4c
System Info
System:
    OS: Windows 10 10.0.19043
    CPU: (24) x64 AMD Ryzen 9 5900X 12-Core Processor
    Memory: 15.30 GB / 31.94 GB
  Binaries:
    Node: 16.15.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.17 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 8.1.0 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Edge: Spartan (44.19041.1266.0), Chromium (104.0.1293.54)
    Internet Explorer: 11.0.19041.1566

Used Package Manager
pnpm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion.
[X] The provided reproduction is a minimal reproducible example of the bug.

I get the same issue. I updated from Histoire 8.2 to latest 10.2 with Nuxt RC 8.
During the build:
Unexpected token (Note that you need plugins to import files that are not JavaScript)
file: /$histoire-generated-global-setup-resolved:9:13
 7:                 }
 8:               }
 9:             },export async function setupVue3 (payload) {
                 ^
10:               for (const setup of setupList) {
11:                 if (setup?.setupVue3) {
file:///Users/alexandre.guidoux/projects/ergosign-pixel-warriors/node_modules/vite/node_modules/rollup/dist/es/shared/rollup.js:1858
        base = Object.assign(new Error(base.message), base);

In dev im Browser after the first load on click on a story:
Uncaught (in promise) SyntaxError: expected expression, got ',' [$histoire-generated-global-setup-resolved:9:13](<BASE_URL>/$histoire-generated-global-setup-resolved)


flying mode for navigating the map in 3D

Demo here: http://www.youtube.com/watch?v=Hu8Yd3-WbP4&t=10m33s
This navigation mode feature could also be used for a WebVR controller I think (when OpenGlobus gets VR support).
Even better, would be to be able to set way points along which to fly and some configurations (speed, type of easing curve, info events, etc.). This could make for some engaging geo-info based story telling.

The video is not available. Can we close this @Zemledelec ?

It's an interesting task, definitely it must be a control, it must include such things as velocity, NED, and attitude(orientation), and also have user-friendly feedback. I'd leave it here for a while. Because it's an important improvement for default camera navigation could be.


Bump Kubevirtci to align with Kind ipv6 migration support

Also presents:
Kind SRIOV bazel update
Signed-off-by: Or Shoval<EMAIL_ADDRESS>None

/cc @AlonaKaplan
/cc @danielBelenky
bumping due to the kind migration fix
thanks

/test pull-kubevirt-e2e-k8s-1.15-ceph

/hold
something is broken , make bump was changed and it looks like it conflict with make generate

/hold cancel

/test pull-kubevirt-e2e-k8s-1.16
/test pull-kubevirt-e2e-k8s-1.15-ceph

looks like make generate creates
cluster-up/cluster/kind-k8s-sriov-1.17.0/csrcreator/BUILD.bazel
i guess we dont need this file or i am wrong ?

/retest

/lgtm
/approve

can we override  pull-kubevirt-e2e-k8s-1.15-ceph  please ?
since i did run it already in this PR and the one that doesnt pass you shown its flaky
thx

all is green, why it isnt merged ?
thx

/assign @rmohr

Because there is a pr-batch under test in parallel. If the batch succeeds it is from a testing perspective more efficient to wait for the batch and merge it instead of this one. If the batch succeeds these PRs are merged and this one will then start again to test. If the batch fails it will pick this single PR.

Thanks


Files are sent unencrypted over HTTP when encryption is actually enabled in the settings

To reproduce

(From phone) Fresh install from f-droid, version 1.10.0
Run app, Send, Add any File (JPEG file from Gallery in my case), Share via link
(From desktop) Open Wireshark, enable listening on your WiFi adapter, add ip.addr == <your phone ip address>
Open http://<your phone ip address> in a web browser
(From phone) Accept connection
(From desktop) Download file
In Wireshark, notice that data is actually received unencrypted via HTTP, rather than HTTPS

Expected behavior
File should be sent via HTTPS
Screenshots

You used the "Share via link" right?

You used the "Share via link" right?

Yes

you should see a notice that it is unencrypted.

Oh, I finally see the notice. It's very hard to notice this small gray text notice, so it's very unobvious that this connection is unencrypted (taking into account that app description doesn't directly state that specifically "Share via link" feature will be unencrypted)
It would be nice to have a more visible notice, perhaps with red or underlined "unencrypted" word
I'm looking for a different feature though: I want to share a link, available without installed app, but available with encryption only. Can we have additional settings option that forces HTTPS even though the browser user will need to ignore the SSL error?
Thanks!


[TA-LiveTest] use RECORD mode for recording

Description
TA live tests failed for
A recording policy can only be requested in RECORD mode.
https://dev.azure.com/azure-sdk/internal/_build/results?buildId=2694604&view=ms.vss-test-web.build-test-results-tab&runId=40357490&paneView=debug&resultId=100367

/azp run java - textanalytics - tests

API change check
API changes are not detected in this pull request.

/azp run java - textanalytics - tests

/azp run java - textanalytics - tests

/azp run java - textanalytics - tests

/azp run java - textanalytics - ci


Replace default email templates with HTML ones

This PR replaces the default markdown emails with ones that are styled using some simple HTML.
The templates are still very simple, but they are much more visually appealing than the otherwise plain-text templates.
Here's a few examples of the new ones:

Great work, but is there perhaps a better way to share the common bits like styling and footer?

We could turn it into a base template and then use the extends tag in twig, but then the issue is where to put it.
Client theme? Admin theme? In the module? In the DB?
I think we'd also need to write a loader.
Ultimately I think the long-term goal is to move from using the completely custom twig implementation for emails to using our own version of the Symfony\Bridge\Twig\Mime\TemplatedEmail class as symfony/mailer is built to integrated with that. Doing so at that time is in my option the ideal time to actually determine where we want to store CSS or base templates for emails & then build out the functionality and take advantage of it


Does not work: Tags Does Not Contain (blank)

According to this: List Work Items with No Tags

I'm trying to do this right now and "(blank)" is basically being ignored, no syntax errors when running the query.

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

ID: 9bf3ce0a-184f-ca49-5453-01317e23dde5
Version Independent ID: 0af9b10e-1126-2fda-982b-63d5795f9213
Content: Add tags to work items - Azure Boards
Content Source: docs/boards/queries/add-tags-to-work-items.md
Product: devops
Technology: devops-agile
GitHub Login: @KathrynEE
Microsoft Alias: kaelli

@reecebradley - Thank you for the feedback. I just tried the query as shown and it returns some values, but it returns values that also contain tags. I'll investigate further to see if there is a work around, otherwise, I'll update the article to reflect what I find.

@racebradley - On further investigation, this feature is not supported and I will make a note to that effect in the article. If you would like to upvote for this feature, see this entry in our Developer Community page, https://developercommunity.visualstudio.com/t/be-able-to-search-for-empty-tags/907425.  Closing this issue now as there is no further action.

Thanks for looking @KathrynEE
I went and upvoted it, kind of bummed I must admit. Have a good day.


Add support to development mode

Using a --dev option the user could instantiate a version that:

does not send data to Thingsboard, but prints detections in console
have short capturing and publishing intervals

A class hierarchy was created in commit 4482f57a54970beac18b0e8b3b6e5abbaf94dad1
This mode will be implemented as a child class.

Added in commit f530ca92f43bc990b241f9f73b499d98c483c3fe


How long does it take to generate an image?

How long does it take to generate an image?  Is that normal?   How can I accelerate the generation process?

I don't remember, but we generated data for a long time with a lot of computation. (200 CPUs, 2 weeks or more)
Considering the difficulty of using it, We also thought about making the data public. However, since the scale is so large and maintenance costs appear to be high, we didn't open the data. Sorry for your inconvenience.

Hey thanks for the work,
It will be beneficial to share atleast 1M documents of this data thought !


Clean up Prometheus-based measurements unit testing framework

What type of PR is this?
/kind cleanup
What this PR does / why we need it:
Reduces the amount of copy-pasting required when one sets up unit tests for a Prometheus-based measurement.
Which issue(s) this PR fixes:
Fixes https://github.com/kubernetes/perf-tests/issues/1965.
Special notes for your reviewer:
/assign @marseel

/lgtm
/approve


Add TypeScript declarations to @svgr/core

Summary
Following https://github.com/gregberge/svgr/issues/513 I added TypeScript declaration file (index.d.ts) to @svgr/core with @jschaf  https://github.com/gregberge/svgr/issues/513#issuecomment-829717133 modified a little.
This will help for easier auto-completion and for other library authors that use TypeScript and want to pass type-safe params to @svgr/core
NOTICE: as https://github.com/gregberge/svgr/issues/513#issuecomment-829717133 notes - the types are not 100% compatible but I think for most people it will be good enough (and it can improve it over time).

Test plan
I use https://github.com/ai/check-dts for checking .d.ts files

index.types.ts shows positive tests
index.errors.ts includes improper usage of the library

I added it to the CI too.

Can this be merged yet?

Thanks, will try to rewrite everything in TypeScript, but I think I will make a release before that includes typings.


Split GUI from Git model

UI code sould be packaged in a dedicated package to allox the use of Git in headless mode

In https://github.com/npasserini/iceberg/commit/7ca1d520dcf5ad57fb65d7135c9aff127171432e I have separated the GUI into an independent package.
But, so far I understand, Iceberg has been always been able to run in headless mode, or at least travis does run Iceberg tests in headless mode. So, I do not know how to validate that your problem is solved.

The use case is to use iceberg from a bootstraped pharo image without UI.
You could try to run iceberg tests from this image: https://ci.inria.fr/pharo/view/6.0-SysConf/job/Pharo-6.0-Step-07-01-ConfigurationOfUnifiedFFI/

I tried that and I get this error:
Metaclass(Object)>>doesNotUnderstand: #innerBindingOf:
	Receiver: Callback class
	Arguments and temporary variables:
		aMessage: 	innerBindingOf: #FlushThunkToCallbackMap
		exception: 	MessageNotUnderstood: Metaclass>>innerBindingOf:
		resumeValue: 	nil
	Receiver's instance variables:
		superclass: 	Object class
		methodDict: 	a MethodDictionary(#signature:block:->Callback class>>#signature:bl...etc...
		format: 	65551
		layout: 	a FixedLayout
		instanceVariables: 	nil
		organization: 	nil
		thisClass: 	Callback
		traitComposition: 	nil
		localSelectors: 	nil

Any ideas?
But still, I am not sure, is this test better than what is done by travis CI? Doesn't travis run in headless mode?

Could be an issue from the bootstrapped image.
Travis runs a standard pharo image in headless mode. This image is build from scratch from pharo sources and does not have any UI class loaded. This way you can spot easily any undesired dependency on UI stuff.
Do not spend more time on that. I will notice you if there is more things to split.

Solved in https://github.com/npasserini/iceberg/tree/repackaging


Add humble CI

https://answers.ros.org/question/415310/build-error-in-ros-humble-pcl_msgsmsgpoint_indiceshpp-not-found-in-pcl_conversions/

I just tried to test the repo, but I'm getting the same error. Tiny changes fixes the issue. See #21


Add link to ng-holder

Thanks, I'll take a look at this.

Thanks! ng-holder essentially the same as @NickClark's code, but wrapped in a reusable bower package.
Alternatively, you could take this angular directive and stick it directly into your source file with angular !== undefined wrapping the block.

Looks good to me for now, I'll look into the second option in the future.


Order tests

Removed one test case as it wasn't passing on CI but passed locally, unsure of the reason


Build iconographer as a tarball

[x] Create Makefile to compile iconographer using imgflo-dependencies
[x] Deploy on Travis
[x] Deploy on Heroku

It's also being built/deployed from Heroku too: https://travis-ci.org/the-grid/iconographer/builds/194928441#L5579.

@jonnor thanks for the suggestions. Can you take a look again, pls? I'll remove 8b85e40 before merging, that was just to conveniently check deploy from this PR.


Use LT_INIT instead of obsolete AM_PROG_LIBTOOL

I've cherry-picked the autotools (i.e. LT_INIT) only changes which pass Travis, I will split out the Travis changes into a separate patch unless @rillian objects.

I don't object.

Closing this as obsolete. The LT_INIT change was merged as 572618e3f50f214a875d72b631115b67450fa939.


PHP: upgrade to phpunit 8

phpunit 8.5.8
we cannot go straight to phpunit 9, as we want to keeping support php 7.2~7.4 for now
@stanley-cheung

Reference: why we chose PHPUnit version 8 at the moment https://github.com/grpc/grpc/pull/24525#issuecomment-727025577


Release

[x] review extant branches and merge to main
[x] check that main not master
[x] update readme
[ ] draft release notes
[ ] bump version
[ ] add to project site / downloads page
[ ] hand off for testing

Tested on Unity LTS (2019.4.12f1). Do not upgrade to Asset Package v2.

@helloCaller The Unity Client has been given a once-over and I've done an alpha release on github. The built package (which can be imported into an existing Unity project, as opposed to the GH repo, which is a full sample project) is available at https://cohort.rocks/packages/cohort-unity-client-v0.2.0-alpha.unitypackage.

@helloCaller I built the Unity Client project for Android and it's available for download / install at https://cohort.rocks/packages/cohort-demo.apk


Possible mismatch between schema entity property and API return type

When developing a client in Rust I noticed a mismatch in the generated model between expected an actual value retrieved from the API. Specifically the updatedAt property in the Database model is specified at ISO time string, but the return value is unix epoch / i64.

@roeap thank you for reporting this. I have been thinking about changing current dateTime fields to unix epoch. Most tools should be able to take it and convert it to date time as necessary. Date time makes it for easy readability. However Unix epoch makes it easy for people to input the values and use the field for ordering. Cc @mithmatt who had some input on this topic.
Based on this, we will fix this bug. Thoughts?

+1 for unix epoch time. We use the updatedAt field and add it to ES indexing which will enable us to order the landing page feed and sort by "lastUpdated"

+1 for unix epoch also from me. I believe having a consistent treatment of time across the api makes it a lot more convenient to use. The legibility factor is in my experience quite short lived since - as was mentioned - conversation is trivial in most environments.
@harshach as for contributing the rust client, I'd be happy to. There is still some work to be done, but making good progress. How would this be done? Is there a place in this org where stuff like that could land?

Thanks @roeap . I think we can clients dir under OpenMetadata or we could start another repo with OpenMetadata Clients. We already have a python client and can make it part of the Clients repo.

Sounds good, I'll need some time to get things to a state where it can be used somewhat productively, but just let me know what you think, and when that time comes I'll show you the state and we can decide if its worth moving :).
As one probably should, I am using the json schema files to generate data structs - much like in the python API. Here I have a question. While the vast majority of the files is quite consistent, there are some examples which lead to (at leat for my taste) some convoluted class names...
class SetOwnershipForAGivenEntity(BaseModel):
    ...

# called `CatalogVersion` in the API
class CatalogApplicationSoftwareVersion(BaseModel):
    ...

Would it be in your interest if I refined some of these smaller things an commit that back to this repo? @sureshms @harshach

@roeap sorry didn't see your last comment. Yes please add changes necessary to avoid these kind of naming. We can merge it into main.


Issue #8 (Add link to certification and training programs.)

There is now a link at the bottom of the career assessment results page.  Check templates/careers.mustache

@cam-carter Is there a reason this PR is on the codeforamerica repo instead of our local fork?

@nihonjinrxs Just noticed this! My bad!

@cam-carter Since you've moved this over to our fork, you can close this PR.


Fitting an Image as Watermark on PrintPage

Hello, first of all, thanks for the great plugin and your work on it.
I try to place a svg as watermark on the print page. On "Landscape" and "Portrait" Mode it works tolerably.
On "Custom" mode the bounds don't work.
Here is my Code:
`
	var browserPrint = L.control.browserPrint({
		title: 'Bild exportieren',
		documentTitle: 'some Text',
		printModes: [
			L.BrowserPrint.Mode.Landscape("A4", {title: "Querformat"}),
			L.BrowserPrint.Mode.Portrait("A4", {title: "Hochformat"}),
			L.BrowserPrint.Mode.Custom("A4", {title: "Bereich wählen"})
		],
		manualMode: false,
		closePopupsOnPrint: false
	}).addTo(map);

	var newBounds;
	var watermarkOverlay;

	map.on(L.BrowserPrint.Event.PrintInit, function(e) {
		newBounds = L.latLngBounds(e.target.getBounds());
		watermarkOverlay = L.imageOverlay("images/WasserzeichenTest.svg", newBounds, {
			opacity: 0.4
		}).addTo(map);
		return newBounds;
	});
	map.on(L.BrowserPrint.Event.PrintEnd, function() {
		watermarkOverlay.removeFrom(map);
		map.fitBounds(newBounds);
	});

`
I tried to place it into the bounds of the selected area, but somehow it goes where it wants.
Here an example:

the image here is in the left upper corner, bat I want it centered and the hole image on the printed map. It should be much smaller.
The bounds of the PrintInit Event doesn't work here.
Has anyone some ideas what I didn't notice or have other solutions for doing that?
Thanks in advance.

Hello.
When doing custom or auto mode tiles could not be loaded during pre-init actions. You can try instead get bounding box in L.BrowserPrint.Event.Print event. Also you can check parameters passed from the even (e.printLayer). Or just get map center and calculate your own bonds based on it.

Hello Igor,
thank you very much for your reply. I've found a solution that works well for me.
I followed your proposal to calculate my own boundingbox map center.
`
Here is the code:
	var watermarkOverlay;

	map.on(L.BrowserPrint.Event.PrintInit, function() {

		var overlayCenter = L.latLng(map.getCenter());
		var mapZoom = map.getZoom();
		var pixWidth = 511;
		var pixOffsetX = pixWidth / 2;
		var pixOffsetY = pixOffsetX * 15 / 27;

		var centerPoint = map.project(overlayCenter, mapZoom);
		var latLng1 = map.unproject(L.point([centerPoint.x - pixOffsetX, centerPoint.y + pixOffsetY]), mapZoom);
		var latLng2 = map.unproject(L.point([centerPoint.x + pixOffsetX, centerPoint.y - pixOffsetY]), mapZoom);
		var overlayBounds = L.latLngBounds(latLng1, latLng2);

		watermarkOverlay = L.imageOverlay("images/WasserzeichenNeu.png", overlayBounds, {
			opacity: 0.5
		});
		watermarkOverlay.addTo(map);
	});

	map.on(L.BrowserPrint.Event.PrintEnd, function() {
		watermarkOverlay.removeFrom(map);
		map.closePopup();
	});

`
Greetings,
Anna


UI does not

What did you do?
New install of prometheus using:
$ GO15VENDOREXPERIMENT=1 go get github.com/prometheus/prometheus/cmd/...

Simple config file under prom.conf.yml:
# my global config
global:
  scrape_interval:     5s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 5s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
    - targets: ['localhost:9090']

Ran prometheus with no error:
$ prometheus --config.file=prom.conf.yml
... redacted ...
level=info ts=2020-06-03T15:44:04.147Z caller=main.go:799 msg="Loading configuration file" filename=prom.conf.yml
level=info ts=2020-06-03T15:44:04.148Z caller=main.go:827 msg="Completed loading of configuration file" filename=prom.conf.yml
level=info ts=2020-06-03T15:44:04.148Z caller=main.go:646 msg="Server is ready to receive web requests."

Navigate to localhost:9090 and the following error for the UI occurs:
error reading base template: open templates/_base.html: no such file or directory

What did you expect to see?
The UI
What did you see instead? Under which circumstances?
A file/dir error.
Environment
sys
$ uname -a
Linux ubuntu-bionic 4.15.0-96-generic #97-Ubuntu SMP Wed Apr 1 03:25:46 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

go
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/root/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build181791144=/tmp/go-build -gno-record-gcc-switches"

System information:

$ uname -srm
Linux 4.15.0-96-generic x86_64

Prometheus version:

root@ubuntu-bionic:~# prometheus --version
prometheus, version  (branch: , revision: )
  build user:
  build date:
  go version:       go1.14

Prometheus configuration file:

# my global config
global:
  scrape_interval:     5s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 5s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
    - targets: ['localhost:9090']

Logs:
Nothing appears in the logs

Note: This hard coded path seems like the possible issue - I do not see a path prometheus/web/ui/static/react/index.html

Ah - apologies, in looking at switch path.Base(wd) { you need to execute the prometheus command from one of three directories. Closing.


Load jdbc driver with current classloader instead of system

Load jdbc driver with current classloader instead of system classloader. When running tests in SBT system classloader does not contain jdbc driver - SBT uses separate URLClassloader.
Maybe there are some reasons to use system classloader instead of current one, that I'm not aware of? With this fix tests run well in SBT with scalatest.

@vkrot thanks for this - I'll do a little more reading to try and double check the implications of moving this to the current classloader. I'm perfectly OK with this in principle, though.
Thanks!

According to http://www.kfu.com/~nsayer/Java/dyn-jdbc.html

"But why not use something like URLClassLoader and the overload of class.forName() that lets you specify the ClassLoader?" Because the DriverManager will refuse to use a driver not loaded by the system ClassLoader.

But since we're about about the tests, it's not an issue, because we don't actually load it dynamically.
So LGTM from me.

@bsideup thanks - that's an interesting fact to note! This looks good to me too, so I'll merge.
Side note: I think I may have done something similar in a fork when trying to (ab)use testcontainers to support this technique for jOOQ class generation. I remember there were some definite classloading tweaks required, but I'm afraid I don't have the details to hand. As I'd like to resurrect this Flyway-Testcontainers-jOOQ experiment one day soon I might have to tweak this again, but this time would do so aware of the needs of SBT.
@vkrot if some time (no rush) you could point me at a minimal SBT+Testcontainers example repo, it would be useful to be able to refer back to for future regression testing.

@rnorth , I'm really sorry for long delay, just forgot about this. Here is the minimal sbt project with testcontainers postgresql module - https://github.com/vkrot/testcontainers-sbt


[upgrade] No telemetry for non-elevated upgrade

When user runs gvfs upgrade --confirm from a non-elevated command prompt, VFS4Git displays error on Console and triggers a Telemetry error event. This PR removes the telemetry (no other change). Rather than generating pre-check telemetry errors generally at the higher UpgradeVerb level, InstallerPrerunChecker now decides whether to log Warning or Error events depending on specific pre-check failures.
Fixes #831

@alameenshah  Can you also change this line
                this.tracer.RelatedError($"{nameof(this.IsInstallationBlockedByRunningProcess)}: {consoleError}");
to a Warning?
I'm the original author and I shouldn't have put it as error.  The change is inline with others you have here.


Cryp 129/add auditors to test harness

https://polymath.atlassian.net/browse/CRYP-129
Work left to be done:

[x] Update the existing cli and add support for the auditors (this is what is causing the build errors)
[x] Add the audit cli
[ ] Remove TODOs from the diff

Merging to unblock the next PR. Will come back and revisit the unwrap and regex issues in another iteration.


Is there any plan to support MessagingStyle Notification on android like communication Notification on iOS?

I know that already notifee is supporting MessagingStyle Notification.
But it doesn't showing like Communication Notification on iOS
After i searching about it, i found it need to set ShorcutInfo and longLived option of ShortcutInfo to true.
I will upload the patch file for this soon. I hope it can be support on this library

For patch @notifee/react-native
@notifee-react-native-npm-7.8.2-b551bc6447.patch

test payload (NotificationAndroid)
{
    channelId: "default",
    smallIcon: 'ic_notification',
    showTimestamp: true,
    category: 'msg',
    color: '#000000',
    shortcutInfo: {
        id: 'channel-id',
        shortLabel: 'name-of-person',
        icon: 'https://example.com/image.png',
        action: {
            title: 'Chat',
            pressAction: {
                id: 'navigate-channel-id'
            }
        },
        persons: [{
            id: 'user-id',
            name: 'name-of-person',
            icon: 'https://example.com/image.png',
        }],
        longLived: true,
    },
    actions: [
      {
        title: 'Chat',
        pressAction: {
          id: 'reply-channel-id'
        },
        input: {
          choices: ['Hi', 'Hello'],
          placeholder: 'Chat with a person',
        },
      },
    ],
    style: {
        type: 3,
        person: {
            name: 'Me',
            icon: 'My Profile Image',
        },
        messages: [{
            text: 'Hi?',
            timestamp: Date.now(),
            person: {
                id: 'user-id',
                name: 'Name of person',
                icon: 'https://example.com/image.png',
            },
        }]
    }
}

It will be helpful. Please consider this

how can we show messaging style with large icon

up

I can try to raise a PR based on the changes discussed.
Thank you for all the effort put in this wonderful project🙌🏾


Fix for NoneType is not iterable

Description

Type of Change

[X] Bug fix
[ ] New feature
[ ] Documentation update
[ ] Refactor
[ ] Other (please describe):

Related Issues

Testing

[X] Tested by running safety scan
[ ] Tests added or updated
[ ] No tests required

Checklist

[ ] Code is well-documented
[ ] Changelog is updated (if needed)
[ ] No sensitive information (e.g., keys, credentials) is included in the code
[ ] All PR feedback is addressed

Additional Notes

@SafetyQuincyF did you run into the GitHub action build issues with build-binaries step?

@SafetyQuincyF did you run into the GitHub action build issues with build-binaries step?

I did not.


Installation example on Ubunto20.04 with several available compilers

Hi, I added this example compilation because the instructions failed on my Ubuntu20.04 as cmake was picking the wrong compiler versions, hope this helps.

Thank you!

Ironically this is exactly how I do a manual build on the compute cluster we use. Sorry for not putting this into the build instructions!


Faiss-node has a hidden dependency on libomp, causes unit tests to fail on some machines

Introduced in https://github.com/hwchase17/langchainjs/pull/685, will change unit tests to integration tests to signify the need for more setup. Ideally this would be bundled in or the dependency would somehow otherwise be represented in the future.

Oh awesome! Will do.


Preprocessing: explain how to create a custom pipeline

(Edit)
Add under Getting Started - Preprocessing a section that explains how to create a custom pipeline. This solution is easier than #9
Explain in the docstring of clean how to create a custom pipeline. Code example:
import texthero as hero
import pandas as pd

s = pd.Series(["is is a stopword"])
custom_set_of_stopwords = ['is']

pipeline = [
    lambda s: hero.remove_stopwords(s, stopwords=custom_set_of_stopwords)
]

s.pipe(clean, pipeline=pipeline)

Hey @jbesomi, should we include all methods in the default clean pipeline to the example?

Hey Cedric, what do you mean with that? The idea here is to explain how to generate a custom pipeline ...

@jbesomi, sorry it wasn't clear. I'm talking about how to explain generating a custom pipeline in clean's docstring.

import texthero as hero
import pandas as pd

s = pd.Series(["is is a stopword"])
custom_set_of_stopwords = ['is']

pipeline = [
    lambda s: hero.remove_stopwords(s, stopwords=custom_set_of_stopwords)
]

s.pipe(clean, pipeline=pipeline)

^^This example that you gave shows how to customize pipeline by passing a custom set of stop words to remove_stopwords. I'm wondering if you want to add more examples in the docstring which involves other methods in the default clean pipeline.
For example:
from texthero import preprocessing

custom_pipeline = [preprocessing.fillna,
                   preprocessing.lowercase,
                   preprocessing.remove_whitespace]
df['clean_text'] = hero.clean(df['text'], custom_pipeline)

Actually, I'm not sure if it's a good idea to show more one than example in the docstring, maybe a more detailed explanation should be in a separate Getting Started - Preprocessing section as you suggested.

The second code you showed is basically the once from get_default_pipeline. The discussion here was more intended to show how to create a custom pipeline with functions that might require other arguments as input ...

I see, that is much clearer now. Can you give me some pointers on what should be added to the docstring? Is adding the code below in Examples enough?

import pandas as pd

s = pd.Series(["is is a stopword"])
custom_set_of_stopwords = ['is']

pipeline = [
    lambda s: hero.remove_stopwords(s, stopwords=custom_set_of_stopwords)
]

s.pipe(clean, pipeline=pipeline)


Api upgrade to V5

I upgraded the API support to V5. I haven't tested everything, but the basic things seem to be working. The README will need some attention.

At first glance, this looks great. Thanks for the contribution!
I was tracking Twitch API updates on GitHub which seems to be abandoned now in favor of their own dev docs, so I completely missed all the new features and changes.
I will go over the changes a bit more, merge them, get the README up-to-date, and push out a new version of the gem.
Thanks again for your help.

No problem, the API went dead on the 14th, so I figured I might as well try to update this. There are still some other new things that need to get added. Most stuff didn't change too much. One or two endpoints had slight name changes where they went from a singular name to a plural name. The biggest change was everything switching over to ids instead of names, but they built an endpoint to convert names to ids, which I added in, but you might want to see if the way I went about it is sufficient. I am not familiar with spec files, so I didn't make spec files for V5. If I have time I might work on adding the new stuff I did add to the readme.


add serviceAccountUser permission when terraform is running as a service-account

The iam.serviceAccountUser role is necessary when deploying a cloud-run service or cloud-scheduler job.
Granting this at project level is very broad and is considered unsafe.
When terraform is running as a service-account the module will explicitly the iam.serviceAccountUser role on the invoker and cleaner SAs to the account that is running terraform.

Hi @andyroyle, IMO, the user|serviceAccount that is running terraform must be managed outside of this module.
It is up to you to grant the user|serviceAccount required permissions and priveledges.

@anouarchattouna the issue here is that the service account and the cloud service are created in the same module at the same time. However, the cloud service makes the current Terraform user/SA impersonate the gcr-cleaner-sa-id during the creation and if the service account doesn't have the permission, it fails:
module.gcr_cleaner.google_cloud_run_service.this: Creating...
╷
│ Error: Error creating Service: googleapi: Error 403: Permission 'iam.serviceaccounts.actAs' denied on service account<EMAIL_ADDRESS>(or it may not exist).
│
│   with module.gcr_cleaner.google_cloud_run_service.this,
│   on ../../main.tf line 3, in resource "google_cloud_run_service" "this":
│    3: resource "google_cloud_run_service" "this" {
│
╵

And as @andyroyle mentioned, the best practice with the role iam.serviceAccountUser is to grant it at the resource level, not on the project, folder, or organization. But because the Service Account is managed by the module, we can't bind the proper policy on the SA outside the module before the cloud run service is created.
We could also let the users of the module bring their own service account instead of providing the gcr-cleaner-sa-id, but I don't think it's a good idea?

We could also let the users of the module bring their own service account instead of providing the gcr-cleaner-sa-id, but I don't think it's a good idea?

@Erouan50 Hi, why do you doubt it's a good idea ?

Having the module handling the service account is pretty neat; otherwise, you need to add some boilerplate code outside the module. It's a shame that the Terraform user/sa has to impersonate the cloud service's service account. I'm actually ok with @andyroyle's solution. I would have preferred not to do that, but I don't think we have other options besides extracting the service account.
@anouarchattouna do you agree?

Having the module handling the service account is pretty neat; otherwise, you need to add some boilerplate code outside the module. It's a shame that the Terraform user/sa has to impersonate the cloud service's service account. I'm actually ok with @andyroyle's solution. I would have preferred not to do that, but I don't think we have other options besides extracting the service account.
@anouarchattouna do you agree?

Fair enough, thank you for the explanations

Closed in favor of https://github.com/mirakl/terraform-google-gcr-cleaner/pull/45


JavJT

Addon Manifest URL
https://c73485b8a7a2-javjt.baby-beamup.club/manifest.json
Addon Description
No response
Language of Content
Japanese (ja-JP)
Choose Labels

[ ] anime
[ ] debrid support
[ ] http streams
[ ] live tv
[ ] metadata
[ ] misc
[ ] movies
[ ] music
[X] nsfw
[ ] radios
[ ] subtitles
[x] torrents
[ ] tv shows
[ ] video games

No streams can be found on the GoogleTV Chromecast version but works fine on android and desktop


Non recoverable error from Py-Ae

Mod source
PyAE Beta
Which mod are you having an issue with?

[ ] pyalienlife
[X] pyalternativeenergy
[ ] pycoalprocessing
[ ] pyfusionenergy
[ ] pyhightech
[ ] pyindustry
[ ] pypetroleumhandling
[ ] pypostprocessing
[ ] pyrawores

Operating system

=Windows 10

What kind of issue is this?

[ ] Compatibility
[ ] Locale (names, descriptions, unknown keys)
[ ] Graphical
[X] Crash
[ ] Progression
[ ] Balance
[ ] Pypostprocessing failure
[ ] Other

What is the problem?
Game crashed. I created a small setup to test the first Renewable Energy, Aerial Turbine.
It seemed to not produce any energy, so I tried deconstructing the Aerial Discharging Bases to move it far from each other and see if it is needed a long time flying to gather enough energy; the moment I deconstructed the first base, the High Tech Aerial Turbine move over the remaining base; then I deconstructed the other base and the game crashed.
Steps to reproduce

Build a pair of Aerial Discharging Bases
Place a High-Tech Aerial Turbine and wait until it starts moving.
Deconstruct all bases, while the Turbine is still in flight.

Additional context
The energy buildings

The crash error

A related error when I tried by second time

Log file
No response

Fixed


Update http4s-client, http4s-dsl to 0.23.8

Updates

org.http4s:http4s-client
org.http4s:http4s-dsl

from 0.23.7 to 0.23.8.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.http4s" } ]

labels: library-update, early-semver-minor, semver-spec-patch, commit-count:1

Superseded by #507.


Working Form MERN Project Next JS #4581

Title and Issue number

Working Form MERN Project Next JS #4581
Close #4581

Checklist:

[X] I have mentioned the issue number in my Pull Request.
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have created a helpful and easy to understand README.md

@MohitGupta121
Kindly merge it.


fix: Correct rpm-ostree issue that prevents rollbacks

Upstream issue: https://github.com/coreos/rpm-ostree/issues/5048
Upstream MR: https://github.com/coreos/rpm-ostree/pull/5069
Package source: https://github.com/ublue-os/packages/tree/main/staging/rpm-ostree
Also sneaks in a quick fix for some whitespace issues.

Is this intended?

Yes, it's copied from Fedora.
https://src.fedoraproject.org/rpms/rpm-ostree/tree/f40

Is this intended?

Yes, it's copied from Fedora. https://src.fedoraproject.org/rpms/rpm-ostree/tree/f40

Yep, I just went down that path, to see if that's where you pulled it. I agree, this spec matches.
Thanks!


Update index.html

I added one more Campus.

Looks good! to me.
@Priyanka-is-on-github Your PR has been successfully merged.

You can now checkout the changes made by you on the website.


validation for static overwrite with filter

Section 1: Background
When we are doing a static overwrite, we could choose to overwrite the full table or overwrite some partitions of the table.
Example spark sql counterpart in iceberg spark static overwrite for full table overwrite is
INSERT OVERWRITE prod.my_app.logs
SELECT uuid, first(level), first(ts), first(message)
FROM prod.my_app.logs
WHERE level = 'INFO'
GROUP BY uuid

And example spark sql counterpart  for specified partition overwrite  is
INSERT OVERWRITE prod.my_app.logs
SELECT uuid, first(level), first(ts), first(message)
PARTITION (level = 'INFO')
FROM prod.my_app.logs
WHERE level = 'INFO'
GROUP BY uuid

Section 2: Goal of the Pull Request
When we overwrite the table, we could provide an expression as overwrite_filter in accord with these 2 cases. The filter expression should conform to certain rules such as it has to be on a partition column that does not use hidden partitioning and the fields in the filter have to be in accord with the input arrow table in a certain way so that the new partition has the partition value auto-filled in accord with the removed partition. This pull request aims at logics of:

Validate the filter and the filter-arrowtable relationship against the iceberg table schema.
Populate the arrow table for the partition column with specified partition value in the filter.

Section 3: Rules and Test Cases

Rule : The expression could only use IsNull or EqualTo as building blocks and concatenated by And
Tests : test__validate_static_overwrite_filter_expr_type parametrize 1-8

Rule : The building block predicates (IsNull and EqualTo) should not have conflicting values.
Tests : test__validate_static_overwrite_filter_expr_type parametrize 9-11

Rule : The terms (fields) should refer to existing fields in the iceberg schema, and also the literal in the predicate (if any) should match the iceberg field type. These mean the expression could be bound with table schema successfully.
Tests :
test__bind_and_validate_static_overwrite_filter_predicate_fails_on_non_schema_fields_in_filter
test__bind_and_validate_static_overwrite_filter_predicate_fails_to_bind_due_to_incompatible_predicate_value

Rule : If expression specifies a field which is required in iceberg schema, it should not be isnull in the expression.
Tests : test__bind_and_validate_static_overwrite_filter_predicate_fails_to_bind_due_to_non_nullable

Rule : The fields in the expression should be within partition columns
Tests : test__bind_and_validate_static_overwrite_filter_predicate_fails_on_non_part_fields_in_filter

Rule : The iceberg table fields specified in the expression could not have hidden partitioning, however, the non-specified fields could.
Tests :
test__bind_and_validate_static_overwrite_filter_predicate_fails_on_non_identity_transorm_filter
test__bind_and_validate_static_overwrite_filter_predicate_succeeds_on_an_identity_transform_field_although_table_has_other_hidden_partition_fields

Rule : Three-way relationship between filter, arrow table and iceberg table schema
The fields in filter should not appear in the input arrow table. However when we remove these fields from iceberg schema, the remaining schema should match the arrow table schema precisely in terms of field names, nullability and type.

Tests :
case 2: test__check_schema_with_filter_fails_on_missing_field
case 3: test__check_schema_with_filter_fails_due_to_filter_and_dataframe_holding_same_field
case 4: test__check_schema_with_filter_fails_on_nullability_mismatch
case 4: test__check_schema_with_filter_fails_on_type_mismatch
case 5: test__check_schema_with_filter_succeed
case 5: test__check_schema_with_filter_succeed_on_pyarrow_table_with_random_column_order for this change https://github.com/jqin61/iceberg-python/pull/4/files#diff-8d5e63f2a87ead8cebe2fd8ac5dcf2198d229f01e16bb9e06e21f7277c328abdR1739

Section 4: Flow and Scedo Code Logics

Entire Flow:

Rule 7 Elaboration:

Section 5: Rule Necessity Justification - Spark Counterparts
To better understand these rules, let us provide spark static overwrite crash counterparts. For which, we have following set up:
# Create Spark Dataframe
from pyspark.sql.types import StructType, StructField, StringType, LongType
data_multicols = [(2, "Flamingo", "red"), (4, "Horse", "white"), (4, "Pig", "pink")]
schema = StructType([
    StructField("n_legs", LongType(), nullable=True),
    StructField("animals", StringType(), nullable=True),
    StructField("color", StringType(), nullable=True)  # Mark as non-nullable
])
df_multicols = spark.createDataFrame(data_multicols, schema)

# Create Iceberg Table
create_sql = """CREATE TABLE lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols (
    n_legs bigint,
    animals string,
    color string)
USING iceberg
PARTITIONED BY (n_legs, color)

"""
spark.sql(create_sql)

# Insert Initial data
df_multicols.createOrReplaceTempView("tmp_view")
sql_cmd = f"""INSERT INTO
    lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols
    SELECT * FROM  tmp_view
    """
spark.sql(sql_cmd)

this gives such table schema:

col_name
data_type
comment

n_legs
bigint

animals
string

color
string

Partitioning

Part 0
n_legs

Part 1
color

with such data:

n_legs
animals
color

2
Flamingo
red

4
Horse
white

4
Pig
pink

Now let us check the rules
Rule 1. The expression could only use IsNull or EqualTo as building blocks and concatenated by And.
For example:
And(EqualTo(Reference("foo"), "hello"), And(IsNull(Reference("baz")), EqualTo(Reference("boo"), "hello")))

or
"foo = 'hello' AND (baz IS NULL AND boo = 'hello')
Spark counterpart example:
sql_cmd = f"""INSERT OVERWRITE
    lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols
    PARTITION (n_legs > 2)
    SELECT color,animals FROM  tmp_view
    """
spark.sql(sql_cmd)

gives:
mismatched input '>' expecting {')', ','}(line 3, pos 22)

== SQL ==
INSERT OVERWRITE
    lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols
    PARTITION (n_legs > 2)
----------------------^^^
    SELECT color,animals FROM  tmp_view

Other predicates of 'in', '!=', etc and other expression such as 'Or' give similar errors.
**Rule 2. The building block predicates (IsNull and EqualTo) should not have conflicting values. **
This means
And(EqualTo(Reference("foo"), "hello"), EqualTo(Reference("foo"), "bye"))

and
And(EqualTo(Reference("foo"), "hello"), IsNull(Reference("foo"))

are not allowed.
However,
And(EqualTo(Reference("foo"), "hello"), EqualTo(Reference("foo"), "hello"))

is allowed and shall be deduplicated.
Spark counterpart example:
sql_cmd = f"""INSERT OVERWRITE
    lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols
    PARTITION (color='red', color='green')
    SELECT animals,n_legs FROM  tmp_view
    """
spark.sql(sql_cmd)

gives
ParseException:
Found duplicate keys 'color'.(line 3, pos 4)

== SQL ==
INSERT OVERWRITE
    lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols
    PARTITION (color='red', color='green')
----^^^
    SELECT animals,n_legs FROM  tmp_view

Rule 3. The terms (fields) should refer to existing fields in the iceberg schema, and also the literal in the predicate (if any) should match the iceberg field type. These mean the expression could be bound with table schema successfully.
Spark counterpart example:
sql_cmd = f"""INSERT OVERWRITE
    lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols
    PARTITION (not_a_field='red')
    SELECT animals,n_legs FROM  tmp_view
    """
spark.sql(sql_cmd)

gives:
AnalysisException: PARTITION clause cannot contain a non-partition column name: not_a_field

Rule 4. If expression specifies a field which is required in iceberg schema, it should not be isnull in the expression.
Spark counterpart example:
# Create Spark Dataframe with non-nullable column
from pyspark.sql.types import StructType, StructField, StringType, LongType
data_multicols = [(2, "Flamingo", "red"), (4, "Horse", "white"), (4, "Pig", "pink")]
schema = StructType([
    StructField("n_legs", LongType(), nullable=True),
    StructField("animals", StringType(), nullable=True),
    StructField("color", StringType(), nullable=False)  # Mark as non-nullable
])
df_multicols = spark.createDataFrame(data_multicols, schema)

# Create Iceberg Table with non-nullable column
create_sql = """CREATE TABLE lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols (
    n_legs bigint,
    animals string,
    color string not NULL)
USING iceberg
PARTITIONED BY (n_legs, color)

"""
spark.sql(create_sql)

# Insert Initial data
df_multicols.createOrReplaceTempView("tmp_view")
sql_cmd = f"""INSERT INTO
    lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols
    SELECT * FROM  tmp_view
    """
spark.sql(sql_cmd)

sql_cmd = f"""INSERT OVERWRITE
    lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols
    PARTITION (color=null)
    SELECT animals, n_legs FROM  tmp_view
    """
spark.sql(sql_cmd)

gives:
AnalysisException: Cannot write incompatible data to table 'lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols':
- Cannot safely cast 'n_legs': string to bigint
- Cannot write nullable values to non-null column 'color'

Rule 5. The fields in the expression should be within partition columns
Spark counterpart example:
sql_cmd = f"""INSERT OVERWRITE
    lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols
    PARTITION (animals='pig')
    SELECT n_legs, color FROM  tmp_view
    """
spark.sql(sql_cmd)

gives:
AnalysisException: PARTITION clause cannot contain a non-partition column name: animals

Rule 6. The iceberg table fields specified in the expression could not have hidden partitioning, however, the non-specified fields could.
Spark counterpart example:
create_sql = """CREATE TABLE lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols_with_transforms (
    n_legs bigint,
    animals string,
    color string
)
USING iceberg
PARTITIONED BY (n_legs, truncate(color, 1))
"""
spark.sql(create_sql)

sql_cmd = f"""INSERT OVERWRITE
    lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols_with_transforms
    PARTITION (color='red')
    SELECT n_legs, animals FROM  tmp_view
    """
spark.sql(sql_cmd)

gives:
AnalysisException: PARTITION clause cannot contain a non-partition column name: color

However, if we specify the other partition column with identity transform, it works:
sql_cmd = f"""INSERT OVERWRITE
    lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols_with_transforms
    PARTITION (n_legs=1)
    SELECT color, animals FROM  tmp_view
    """
spark.sql(sql_cmd)

Rule 7. Three-way relationship between filter, arrow table and iceberg table schema
Rule 7 Case 1
from pyspark.sql.types import StructType, StructField, StringType, LongType
data_multicols_extra_col = [(2, "Flamingo", "red", "dummy"), (4, "Horse", "white", "dummy"), (4, "Pig", "pink", "dummy")]
schema_extra_col = StructType([
    StructField("n_legs", LongType(), nullable=True),
    StructField("animals", StringType(), nullable=True),
    StructField("color", StringType(), nullable=True),
    StructField("extra_col", StringType(), nullable=True)
])
df_multicols_extra_col = spark.createDataFrame(data_multicols_extra_col, schema_extra_col)
df_multicols_extra_col.createOrReplaceTempView("tmp_view_extra_col")

gives:
AnalysisException: Cannot write to 'lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols', too many data columns:
Table columns: 'n_legs', 'animals', 'color'
Data columns: 'n_legs', 'extra_col', 'color', 'animals'

Rule 7 Case 2:
sql_cmd = f"""INSERT OVERWRITE
    lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols
    PARTITION (n_legs = 2)
    SELECT animals FROM  tmp_view_extra_col
    """
spark.sql(sql_cmd)

gives
AnalysisException: Cannot write to 'lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols', not enough data columns:
Table columns: 'n_legs', 'animals', 'color'
Data columns: 'n_legs', 'animals'

Rule 7 Case 3
sql_cmd = f"""INSERT OVERWRITE
    lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols
    PARTITION (n_legs = 2)
    SELECT n_legs, color,animals FROM  tmp_view
    """
spark.sql(sql_cmd)

gives
AnalysisException: Cannot write to 'lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols', too many data columns:
Table columns: 'n_legs', 'animals', 'color'
Data columns: 'n_legs', 'n_legs', 'color', 'animals'

Rule 7 Case 4
from pyspark.sql.types import StructType, StructField, StringType, LongType
data_multicols_type_mismatch = [("dummy", "Flamingo", "red"), ("dummy", "Horse", "white"), ("dummy", "Pig", "pink")]
schema_type_mismatch = StructType([
    StructField("n_legs", StringType(), nullable=True),
    StructField("animals", StringType(), nullable=True),
    StructField("color", StringType(), nullable=True),
])
df_multicols_type_mismatch = spark.createDataFrame(data_multicols_type_mismatch, schema_type_mismatch)
df_multicols_type_mismatch.createOrReplaceTempView("tmp_view_type_mismatch")

sql_cmd = f"""INSERT OVERWRITE
    lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols
    PARTITION (color = 'red')
    SELECT n_legs, animals FROM  tmp_view_type_mismatch
    """
spark.sql(sql_cmd)

gives:
AnalysisException: Cannot write incompatible data to table 'lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols':
- Cannot safely cast 'n_legs': string to bigint

Special Case Rule 7
Please notice: Static overwrite with filter includes a complex scenario where filter has a subset of partition columns and the arrow table has the rest where full partition key is dynamically discovered for those non-specified partition fields.
# Static overwriter with subset of partition columns
sql_cmd = f"""INSERT OVERWRITE
    lacus.test.spark_staticoverwrite_partition_clause_and_data_reltship_multicols
    PARTITION (n_legs = 2)
    SELECT animals,color FROM  tmp_view
    """
spark.sql(sql_cmd)

gives:

For 3 way comparison, we need to print the mismatches clearly, sample of rule 7 printing:
https://github.com/jqin61/iceberg-python/pull/4/files#diff-f3df6bef7f6c6d2b05df9a09e0039ff4391ebb66725d41bb0f27f26bb2eb4047R1213

Hey Adrian, thanks for working on this! I've gone over the PR, and would like to thank you for the comprehensive writeup.
Looking at the PR, my main question would be, do we want to 1 on 1 copy the old Hive? I'm questioning that for the following reason: With Hive you have a single partitioning scheme at the time. With Iceberg this can be different since you've evolved the partitioning allong the way. Let's say that you have an orders table that quickly grows because your business is doing very well. You might want to change the monthly partitioning in a daily one, now you end up with partitions like: 2024-02, 2024-03, (evolve partition from month to day), 2024-03-22, 2024-03-23, 2024-03-24, ....
On the bright side. There is one important concept in Iceberg that will greatly simplify the code. The idea is that you can atomically create more snapshots during a single write operation. This means that you can do a DELETE+APPEND in an atomic way. I was playing around with this on the Java side, and it looks a bit odd there, but I think we should use this on the Python side.
My suggestion would be to decouple the delete/write. And let PyIceberg decide if we want to evaluate against the partitions or also against data files itself. We could add flags that you don't want to rewrite parquet files (only delete full files from the Iceberg metadata).
Last week I've added the StrictMetricsEvaluator that can be used to drop whole datafiles based on the column metrics, and this week I've added the strict projection that allows dropping whole manifests both on the record predicate, but also on the column metrics. Once #518 is in, I can wire everything up and allow for DELETE operations. The static overwrite would then be possible by first down the DELETE and then an APPEND operation.
This would mean that the partitioned writes, only would do the write part (the APPEND operation), and we can re-use the DELETE logic to efficiently remove the data that's being overwritten.


python_pass.py

python_pass.py solution

You should not edit the original class functionality. Rather you should implement the function as an override in your declared class.

You should not edit the original class functionality. Rather you should implement the function as an override in your declared class.

You should not edit the original class functionality. Rather you should implement the function as an override in your declared class.

thanks, I didn't know and I fix it


Automated cherry pick of #9154: feat(region): add list filter server type

Cherry pick of #9154 on release/3.4.
#9154: feat(region): add list filter server type

Codecov Report

Merging #9157 (ee9e59d) into release/3.4 (fc16c37) will decrease coverage by 0.03%.
The diff coverage is 0.00%.

@@              Coverage Diff               @@
##           release/3.4   #9157      +/-   ##
==============================================
- Coverage         6.19%   6.15%   -0.04%
==============================================
  Files              761     150     -611
  Lines           118405   21150   -97255
==============================================
- Hits              7330    1301    -6029
+ Misses          110412   19700   -90712
+ Partials           663     149     -514

Flag
Coverage Δ

aFlag
6.15% <0.00%> (-0.04%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/hostman/hostinfo/hostovn.go
27.45% <0.00%> (-2.03%)
:arrow_down:

pkg/monitor/alerting/eval_context.go
38.14% <ø> (ø)

pkg/monitor/alerting/notifier.go
0.00% <0.00%> (ø)

pkg/compute/models/scaling_activity.go

pkg/compute/models/quotas_doc.go

pkg/apigateway/handler/worker.go

pkg/compute/models/elasticcache_skus.go

pkg/util/s3auth/v4.go

pkg/compute/models/hosts.go

pkg/apigateway/handler/proxy.go

... and 588 more

Continue to review full report at Codecov.

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