ipam: Change default rate limiting access to external APIs

This PR addresses three issues around cloud API rate limiting in the operator (one commit per problem):

A bug is fixed where the actual rate limit under load was half of the requested rate limit
A bug is fixed where the Azure IPAM did not rate limit all API calls
The rate limit defaults are adjusted to better reflect the rate limits of the cloud provider. See below for details.

Note: A subsequent PR will be opened to make the operator more robust in case of failiures, such as the operator leaking resources when rate limits are being hint. But since those changes are largely unrelated to the rate limit logic itself (e.g. the operator can also leak resources when crashing etc), I decided to keep the two PRs separate.

New IPAM cloud provider API rate limits
When provisioning network interfaces and IP addresses for Cilium ENI, Azure or
AlibabaCloud IPAM, the operator has to issue requests to the cloud provider API.
Those requests might be subject to throttling if the operator issues too many
requests in a short time window (which an for example happen if many nodes are
added to the cluster at once). Users have reported that the current limits are
not enough to avoid throttling on the cloud provider. If throttling occurs,
some operations (like interface deletion) might fail, causing potential resource
leaks.
Therefore, this commit adjusts the rate limit used by Cilium operator.
The new limit consist of a bucket size of 20 (also called the burst size) and
a bucket refill rate (called QPS in the config flag) of 4. The old refill rate
of 20 (effectively 10 under load, due to a bug fixed in the previous commit)
was reportedly high enough to be throttled on the Amazon EC2 API under load.
Therefore, the new refill rate of 4 queries per second (under load) is chosen
rather conservatively, to ensure we are not throttled by the backend API. To
compensate for that, the burst size is raised to 20, meaning the operator can
issue up to 20 operations before throttling to 4 queries per second kicks in.
It should be noted Cilium's rate limiter is shared for all operations
(read and write), where as cloud providers have more sophisticated per
operation quotas. But since the interaction in a real systems is likely even
more complicated than that (e.g. the quota is shared likely with other API
users too), we stick to a rather simple and conservative limit by default.
If the new default limit is too low for sophisticated or large-scale users,
it remains possible to overwrite the new default values if needed.
For reference, these are the documented API rate limits on supported cloud
providers:
Cilium Request Rate

Type
Burst
RPS

Old
4
20

New
20
4

Amazon EC2 API ^1

Type
Burst
RPS

Reads
100
20

Writes
200
10

Azure API
Network API ^2

Type
Burst*
RPS*

Reads
1000
3.33

Writes
10000
33.3

*Estimated burst refill rate per second based on their 5 minute window.
Compute API ^3
The compute API does not document what the default limits are, and it seems
like the actual setup is more sophisticated. But the rates that apply overall
seems to be in the same ballpark as the Compute API given the sample response
on the page.
Alibaba ECS API ^4
According to the public documentation, the limits are only visible to logged
in users. They may vary based on region and subscription. We assume they are
also in the same ballpark as the other two providers.

Pushed an additional commit which adds the upgrade note and Helm values to configure the setting.

Fixed missing cmdref update in https://github.com/cilium/cilium/pull/21387/commits/f0ea5b6dd43f7dc2ac65ed360f5359deef13182c

/test

/test-1.16-4.9

/test-1.23-5.4

/test-1.24-4.19

/test-1.25-net-next

/test-runtime

Runtime seems to have hit #19093. Restarting to make sure this is unrelated.
Net-next hit known flake #21120 - not restarting this one, it's clear that this is unrelated.

/test-runtime

@pippolo84 Thanks for the feedback, addressed your comments.
Rebased on master, the main diff between the last push is the following:
diff --git a/pkg/api/helpers/rate_limit_test.go b/pkg/api/helpers/rate_limit_test.go
index<PHONE_NUMBER>3b..62bac916dedb 100644
--- a/pkg/api/helpers/rate_limit_test.go
+++ b/pkg/api/helpers/rate_limit_test.go
@@ -33,13 +33,13 @@ func (e *HelpersSuite) TestRateLimitBurst(c *check.C) {
        for i := 0; i < 10; i++ {
                limiter.Limit(context.TODO(), "test")
        }
-       c.Assert(metricsAPI.RateLimit("test"), checker.DeepEquals, time.Duration(0))
+       c.Assert(metricsAPI.RateLimit("test"), check.Equals, time.Duration(0))

        // Rate limit should now kick in (use an expired context to avoid waiting 1sec)
        ctx, cancel := context.WithTimeout(context.TODO(), time.Microsecond)
        defer cancel()
        limiter.Limit(ctx, "test")
-       c.Assert(metricsAPI.RateLimit("test"), check.Not(checker.DeepEquals), time.Duration(0))
+       c.Assert(metricsAPI.RateLimit("test"), check.Not(checker.Equals), time.Duration(0))
 }

 func (e *HelpersSuite) TestRateLimitWait(c *check.C) {
@@ -49,9 +49,9 @@ func (e *HelpersSuite) TestRateLimitWait(c *check.C) {

        // Exhaust bucket
        limiter.Limit(context.TODO(), "test")
-       c.Assert(metricsAPI.RateLimit("test"), checker.DeepEquals, time.Duration(0))
+       c.Assert(metricsAPI.RateLimit("test"), checker.Equals, time.Duration(0))

-       // Hit rate limit 15 times. The bucket refill rete is 100 per second,
+       // Hit rate limit 15 times. The bucket refill rate is 100 per second,
        // meaning we expect this to take around 15 * 10 = 150 milliseconds
        start := time.Now()
        for i := 0; i < 15; i++ {

I left another question inline regarding the default. Thanks for the thorough description of the problem in the commit message :100: :+1:

/test


Databinding has some problem: NoSuchMethodError: android.databinding.BindingBuildInfo.enableDebugLogs()Z

This issue is aduplicate of https://github.com/heinrichreimer/material-intro/issues/198. Please make sure to check if the issue was already answered before posting a new issue.


ClassLikeCognitiveComplexityRule: take final and extends into account

when calculating the cognitive complexity of a class, IMO it should be taken into account whether..

the class beeing analyzed extends another class -> inheritance leads to tight coupling which in turn makes it harder to change classes. Therefore I think this should be scored like e.g. complexity += 25
the class beeing analyzed is final -> final prevents classes from beeing used in inheritance, so changing this class is easier then one which isn't final. Therefore I think this should be scored like e.g. complexity -= 10

wdyt?
it seems this could be implemented easiy in https://github.com/symplify/symplify/blob/main/packages/phpstan-rules/packages/cognitive-complexity/src/AstCognitiveComplexityAnalyzer.php

Hi, I like this idea as I treat code the way you describe. If it's final I know its what I see is what I get. If it's extends I have no idea what's gonna happen outside.
This behavior should me IMO optional, as there made up rules at the moment. Something like "advanced mode", you know :)
If you like to add it, I look for the PR!

fyi, I am in the process of implementing a small tool which allow to analyse phpstan baseline files.
it also supports comparing a basline-file across different points in time and computes a "trend-report" for this case.
its still really early days, though
https://github.com/staabm/phpstan-baseline-analysis


Player Widget not working.

Ever since Iceborne came out, the player widget does not work. i dont see my buffs or debuffs.
im not sure why since other overlays like HelloWorld it shows them.
any help?
ive been keeping up with each version.


[8.x] Fix overriding presence verifier connection by null

Before this PR, when we did $validator->setPresenceVerifier($verifier); the verifier's connection was always overridden by null:
$verifier = App::make('validation.presence');
$verifier->setConnection('sqlite');
$validator = Validator::make($request->data, ['attribute' => 'exists:table,column']);
$validator->setPresenceVerifier($verifier);
$data = $validator->validate(); // queries to 'mysql.table' but we expected 'sqlite.table' to be used

This PR allows customizing validator connection by presence verifier as expected.

Would be a breaking change. What if you do want to set the connection to the default (null)?

@taylorotwell but It is null by default, it always uses the default connection. Currently we don't have any way to change the validator's default connection because it always sets it to null.


make sphinx-intl reproducible

We Debian now try to make package build reproducible.
See Reproducible Builds https://reproducible-builds.org and https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=881258
Could you consider to accept this change to make it happen, please?

Very sorry for my late response (because newborn babies occupied my spare time)
I think setup.py release sdist bdist_wheel is reproducible procedure.
release is a alias command of egg_info -Db '' and it has been defined in setup.cfg.
How about this?

Now I close this issue. However if you still have the problem, please feel free to reopen. Thanks.


Added Script Identification Dataset for Triple Classification

Moved lmdb conversion to Utils directory
Added script to directly get script identification dataset
Updated Readme accordingly

Adding for review


feat(#1): Add Project Skeleton

Add the following configuration files:

Maven build configuration (pom.xml)
GitHub workflows, including codecov, maven.test, pdd, up and xcop
LICENSE and CODE_OF_CONDUCT
Several git configuration files like .gitignore and .gitattributes

Closes: #1.

History:

feat(#1): add git and maven related files
feat(#1): add LICENSE
feat(#1): add CODE_OF_CONDUCT
feat(#1): specify developer, properties and dependencies in pom.xml
feat(#1): add code quality maven profile
feat(#1): add the rultor configuration file
feat(#1): add LICENSE to all the project files
feat(#1): add package info
feat(#1): fix all qulice suggestions
feat(#1): add all the required github actions

PR-Codex overview
This PR focuses on adding GitHub Actions workflows and updating project configuration files.
Detailed summary

Added .idea, target, and src/it/eo-to-bytecode/target to .gitignore
Added .github/workflows/pdd.yml file for PDD workflow
Added .github/workflows/xcop.yaml file for Xcop workflow
Added .gitattributes file for handling line endings
Added .github/workflows/codecov.yaml file for Codecov workflow
Added .github/workflows/maven.test.yaml file for Maven test workflow
Added .github/workflows/up.yaml file for version update workflow
Added .rultor.yml file for Rultor configuration
Added LICENSE.txt file with MIT License
Added package-info.java files with license information
Added OpeoMojoTest.java for unit testing OpeoMojo class
Added OpeoMojo.java for decompiling bytecode into EO representation

The following files were skipped due to too many changes: CODE_OF_CONDUCT.md, pom.xml

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

@yegor256 Could you also add CODECOV_TOKEN  to the repository, please?

@yegor256 Also, probably, we will have to add rultor to the collaborators list


Request Streaming upload for client-side Blazor 9.0

Description
Prior work at https://github.com/dotnet/AspNetCore.Docs/pull/28306.
Product unit PRs:

https://github.com/dotnet/runtime/pull/91295
https://github.com/dotnet/runtime/pull/91699

Page URL
https://learn.microsoft.com/en-us/aspnet/core/blazor/file-uploads?view=aspnetcore-8.0
Content source URL
https://github.com/dotnet/AspNetCore.Docs/blob/main/aspnetcore/blazor/file-uploads.md
Document ID
c11d981c-05af-c19d-a333-feedd5978639
Article author
@guardrex
Related Issues

Related ASP.NET Core change to add the SetBrowserRequestStreamingEnabled extension method: https://github.com/dotnet/aspnetcore/pull/50481

@tdykstra ... I think you manage the main doc set's File uploads article, and I recommend a separate issue for it ...
https://learn.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads?view=aspnetcore-8.0
This issue will close as soon as we wrap up the Blazor bits in the Blazor article. You can see what I did on that PR.
You might not want to look at it until it's reviewed.


Zoom get reset when layout change

Hi,
I've used PhotoView with an activity full screen. I hide/show the actionbar on user click.
When that happens any zoom get reset to the default, same goes for when I rotate the device.
Is this expected behavior?
I've scrambled the code in PhotoViewAttacher and saw the onGlobalLayout() method which apparently is there to recompute the zoom.
Unfortunately my experience with custom view is sparse and I couldn't really get the grip of what's going on in there at a quick reading.
I'm using Android 4.4 Kitkat and library version 1.2.2 version
To intercept the touch events I created a custom ViewGroup extending the FrameLayout and pass the MotionEvent(s) to my a gesture detector using onInterceptEvent (I always return false, do not intercept) and when I identify a tap I toggle the actionbar show state.
Of course this also happen when you rotate the device (orientation change).

@smarek I didn't even noticed this was assigned to me. This bug is so old that I don't even remember for which project I needed this or how I did in the end.
Still think this is a must-have feature for a photo view library.

@danielesegato could you give any help to solve this problem?

@pavei I'm sorry, so much time has passed that I don't even remember the project I used this. And I do not remember what I did at all. Can't help you

Is this still an issue that people would like resolved?  If so, I could take a look at it, I've spent a lot of time playing with it and wouldn't mind perfecting it for everyone: http://stackoverflow.com/questions/31482007/android-photoview-keep-zoom-after-orientation-change

I'm not using this library anymore because of this issue.
So yes, I would see it solved.

How to reset default zoom level in view pager item ?

any one found the solution.. i am still in the same boat!

Any updates on this? Thank you

In case someone want to replace the image and preserve the zoom (position and scale), you could change the update() method in the PhotoViewAttacher like this:
public void update() {
        if (updateEnabled) { // a boolean that you can set to false to preserve the zoom (position and scale)
            if (mZoomEnabled) {
                // Update the base matrix using the current drawable
                updateBaseMatrix(mImageView.getDrawable());
            } else {
                // Reset the Matrix...
                resetMatrix();
            }
        }
    }

@maxcorrads , can you show full sample, how to save position and scale, when you replace image?

@GrishinSergey  just replace the update() method in the PhotoViewAttacher like this https://github.com/chrisbanes/PhotoView/issues/168#issuecomment-431873864
updateEnabled is just a boolean that you have to set to false once you have set the image:
private CustomPhotoView image; //CustomPhotoView is just a PhotoViewAttacher with the update method replaced with the one above and the boolean "updateEnabled"

image.setImageBitmap(aBitmap);
image.getAttacher().setUpdateEnabled(false);

@maxcorrads, I tried to set custom attacher -- this field without setter. Also I tried to extends from PhotoView and change init() method. This also impossible, because some methods, which used in it are private. Then I tried just left method update() empty (code in it will never executed cuz bool flag). But this variant also works not so properly.
Maybe, you mean to change it in sources of library and attach them?


Devops/terraform

@aionic is working on TF feature branch, this PR will be reviewed after the feature is finished
cc: @paromitaroy

@aionic can we abandon this one?

@kunalbabre - should get it working, merge into feature and then combine all of it

Apologies to all that were watching this PR, that got flooded with email notifications with my commits.
Changes introduced:

Workflow now composed of two jobs that leverages two GitHub environments:

staging - tied to the OIDC service principal in AAD for read only access

run init validate and plan, provide readable output for reviewer and generate the .tfvars file as an artifact

production - tied to the OIDC service principal in AAD for contributor access

download the .tfvars artifact and deploy after reviewer signs off on changes

The github script is not functional. Commenting it out for now until the need arises for us to leverage it.
Currently checking out the feature/terraform branch so that it has terraform code to play with.

will need to revisit once the feature/terraform branch is merged to remove the two checkout references with the branch specified.

Terraform in-line vars did not have corresponding secrets. Fixed accordingly and populated 'dummy' vars for VM_USER secret.
Placed the in-line Terraform vars as environment variables through the TF_VAR_<variable_name> notation

Also, on the production github environment, added @petemessina, @kunalbabre, @briggsb9, @aionic, and myself as reviewers for now. Should probably turn this into a DL in the future.

closing this PR and created a separate PR to merge the changes + some additional modifications in the context of merging the feature/terraform branch with this current devops/terraform branch.
https://github.com/Azure/apim-landing-zone-accelerator/pull/81

PR closed - removing stale branch


[BUG] The username you entered doesn't appear to belong to an account

Hi,
When trying to login with
cl.login(username, password)
I'm getting this error message
The username you entered doesn't appear to belong to an account. Please check your username and try again.
The username and password are correct and I'm able to login via Instagram App or desktop.
This is weird as it works fine when I run this from my local machine from python shell.
But it throws me the above error if I run it from AWS instance.
Any ideas?
Also I noticed that the following error is thrown:
HTTPError: 400 Client Error: Bad Request for url: https://i.instagram.com/api/v1/accounts/login/
I also tried using proxy - but it does not help

This message return back from instagram, I don't know why. If you help the project and investigate the reasons, then I will be extremely grateful to you!

I have noticed the exact same bug when using AWS Lambda (with/without using a proxy)...
The weird thing is that it seems to work from time to time, but then suddenly the Error shows up.

This doesn't seem to happen much when it's local, but soon as I deploy to Azure it throws this error.

I was trying to work with proxies and this error was popping up when one proxy wasn't good enough.

Alright same thing is happening to me,
Working on my local pc works perfect no login issue or anything,
but as soon I run it on a windows server, I get the same login error, although I have to mention that it works sometimes and sometimes not

Got this error first time yesterday, tried from many proxies - always the same error... It was working fine from those IP for months... Please, help

changing proxy ip helps

Which type of proxies do you use?

changing proxy ip helps

Which type of proxies do you use?

tried on a linux server machine and it works!
switched to another windows server with another ip and I get this error "sometimes"

I also get this message quite frequently, even when using residential IPs. Same accounts with same IPs work fine when I do a login with another of my services, where I use a selenium script to login. So this definetly has something to do with the login logic of the library @adw0rd .

@adw0rd This issue is not resolved. You should reopen it, so the community can see that this bug is still existing and can work on it. I have the same problem and like some other users changing the proxy does not help.
I had the situation that it was always working on my local machine (MacBook Pro) while developing. It did not work after uploading to AWS Lambda, Azure Functions or Google Cloud Functions, but in parallel it was still working on my local machine. I did some testing and deployed it to a Raspberry Pi in my home network (same outgoing IP as my machine). Running the script on the RPi resolved in the above error. After that it's not working any longer on my local machine too. Also not after getting a new IP address.

@F481 Changing proxies always helps me, but if you find a new way to get out of this block, then send a PR

Just a hint for the people who also notice this error and using / changing proxy does not help.
I got it work for me now by changing "country", "country_code", "Phone code", "locale" and "timezone_offset" in the file mixins/auth.py to my "real" values. In addition you can try to play around with the "USER_AGENT_BASE" in config.py.

@F481 All this can be changed through the settings: load_settings, set_settings, get_settings
This is described with examples in the documentation

Anyone found any permanent solution for this issue?

I have the same problem. Any solution?

I have the same problem. Any solution?

use another proxy

@adw0rd I'm not using proxy

@adw0rd I'm not using proxy

That is the problem


Update Effect: Boost Eidolon Rule Element

Closes #2525
Removes not unarmed predicate from Effect: Boost Eidolon

Don't change description
Move the "not" statement to "all"


Laravel Updater

This pull request includes updates for the recent minor version release of Laravel as well as updates to your package dependencies. Feel free to commit any additional changes to the shift-ci-v7.24.0 branch.
Before merging, you need to:

Checkout the shift-ci-v7.24.0 branch
Review all pull request comments for additional changes
Run composer update
Test your application (no tests?)

:warning: You are running version 5.3.4 of guzzlehttp/guzzle. The latest version is 7.0.1. You should review this dependency to see if you can upgrade to the latest version.

:information_source: You are running an older version of Laravel. The latest version is 7.24.0. Run the Laravel 7.x Shift to upgrade to the latest version of Laravel.

:warning: You are running version 1.0.10 of laravel/tinker. The latest version is 2.4.1. You should review this dependency to see if you can upgrade to the latest version.

:warning: You are running version 0.14.0 of league/fractal. The latest version is 0.19.2. You should review this dependency to see if you can upgrade to the latest version.

:warning: You are running version 3.9.3 of ramsey/uuid. The latest version is 4.1.0. You should review this dependency to see if you can upgrade to the latest version.


REQUEST: BSPWM instead of i3?

Would it be possible to use bspwm instead of i3?

Yes it is, there's actually a fork focusing on BSPWM, let me find out.

Thank you for your quick reply.
This would be awesome if you could find this fork. I was planning to create a bspwm fork too, but ifthere is already one I don't have to to reinvent the wheel. In any way: You did a great job and I appreciate it! Thank you.

hmm, it seems like it's not available nor exist, i remember that one of the forks was trying to add a bspwm support but i don't know exactly what happened, i'll try to find out but if you wish you could start your fork, no one knows.

No problem!, go ahead it would be nice to have more options out there.
Cheers!

@csxr Just a question. Did you get gnome-tweak-tool working with gnome-flashback?

Yes, but to be honest i don't have hard customizations, just something simple.

Okay... Weird. I still get the Error calling GetCurrentState: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Name "org.gnome.Mutter.DisplayConfig" does not exist error even with gnome-flashback. All settings (including the monitors tab) works without any problems, but gnome-tweak-tool doesn't. :/

You should consider that this tweak has been working successful under the last version of GNOME 3.30 and gnome-flashback is not a main focus

Yes but neither if I use official gnome nor if I use gnome-flashback gnome-tweak-tool works. I am using latest GNOME (3.30) in both cases.

Closing this non-issue due to lack of activity.


Fix cosn ufs cannot find class

Fix bug involved by https://github.com/Alluxio/alluxio/pull/17024
After https://github.com/Alluxio/alluxio/pull/18143, HdfsUnderFileSystemFactory is no longer included in COSN jar therefore no need to exclude.
Same PR as https://github.com/Alluxio/alluxio/pull/18303 but pushing to the main branch

alluxio-bot, merge this please


Pypy compatibility

Windows only has 32-bit pypy installer.
error occurred during pip install cryptography
building '_openssl' extension
error: Microsoft Visual C++ 14.1 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/

Failed building wheel for cryptography
Running setup.py clean for cryptography
Failed to build cryptography
Could not build wheels for cryptography which use PEP 517 and cannot be installed directly


fix typos for building from source

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

腾讯公司友情提醒：机主暂时奔出服务区、、、呵呵

LGTM

LGTM


Issue#47: fix lookups doesn't return all records for empty query

Fix Issue#47.
Any detail, please go to that issue page.
@RackHD/corecommitters @iceiilin @WangWinson @cgx027 @pengz1 @sunnyqianzhang

+1

:+1: Felix, perfect - thank you!

:+1:


[Bug]: (needs investigation) panic in logs

Preflight Checklist

[X] I could not find a solution in the documentation, the existing issues or discussions
[X] I have joined the ZITADEL chat

Environment
ZITADEL Cloud
Version
No response
Describe the problem caused by this bug
We observed two panics in the logs. the first one recovered, the second one resulted in an Error (and termination?).
Timestamps:
2023-08-18T06:56:28.101823Z
2023-08-18T06:56:28.210043Z
The log on 2023-08-18T06:56:28.210043Z refers to:
https://github.com/zitadel/zitadel/blob/main/internal/auth/repository/eventsourcing/handler/user.go#L53
To reproduce
Needs investigation asap to identify the cause.
Screenshots
No response
Expected behavior
No response
Operating System
No response
Relevant Configuration
No response
Additional Context
production environment

will close this as it is not possible to find the problem anymore


Fixed #103 (KeyError: 'CIPOS')

This pull requests fixes issue #103 where svtyper fails with a KeyError due to the input VCF missing "CIPOS" information.

Fix consists of adding a try block around the offending code and setting ci = [0, 0]

I am still getting CIPOS error. Could you please check the following error?
File ".../miniconda3/envs/py2/bin/svtyper", line 11, in <module>
    load_entry_point('svtyper==0.7.1', 'console_scripts', 'svtyper')()
  File ".../miniconda3/envs/py2/lib/python2.7/site-packages/svtyper/classic.py", line 575, in cli
    sys.exit(main())
  File ".../miniconda3/envs/py2/lib/python2.7/site-packages/svtyper/classic.py", line 568, in main
    args.max_ci_dist)
  File ".../miniconda3/envs/py2/lib/python2.7/site-packages/svtyper/classic.py", line 265, in sv_genotype
    ciA = confidence_interval(var, 'CIPOS', 'CIPOS95', max_ci_dist)
  File ".../miniconda3/envs/py2/lib/python2.7/site-packages/svtyper/parsers.py", line 12, in confidence_interval
    ci = map(int, var.info[tag].split(','))
KeyError: 'CIPOS'

Hi can you provide an example vcf for me to test with?  I'll try to see what I can do.

It works good  by adding "CIPOS=-100,100;CIEND=-100,100" to each SV entry in vcf file.

Dear @srbehera
Thank you for commenting on this post; I added "CIPOS=-100,100;CIEND=-100,100" to all my records and it worked; however, I'm worried about the genotyping results. I mean, doesn't adding "CIPOS=-100,100;CIEND=-100,100" to the variants affect the genotyping accuracy in samples?
Thank you in advance for your time,
Best regards,

Hello @dr-ashu-geno
Sorry for my late response. I am not sure if it affected the accuracy of our analysis. I will take a look at the outputs and let you know if I find anything.


Consider adding support for TableView

Explore the TableView API and consider adding support for it.
It may be that it is simple enough as it is and there is not much to add/enhance.

One could expose a TableView as a bean as such:
@Bean
TableView<User> userTableView(PulsarClient pulsarClient) {
  try {
    return pulsarClient
	    .newTableView(Schema.AVRO(User.class))
	    .topic("persistent://public/default/user")
	    .autoUpdatePartitionsInterval(10, TimeUnit.SECONDS)
	    .create();
  }
  catch (PulsarClientException e) {
    throw new RuntimeException(e);
  }
}

A TableViewFactory like Consumer-and-Producer-Factory could be provided to facilitate in creating TableViews:
pulsarTableViewFactory.createTableView("persistent://public/default/user", Schema.AVRO(User.class));

The TableViewFactory could internally rely on Customizers and let them be overridden if specific Customizers are passed in the createTableView method.

That sounds like a good approach @jonasgeiregat

Contemplated on this a bit more and come up with another design in the line of @PulsarMessage
@PulsarTableView(topic = "${topic.name}", ...)
class CustomType {
}

This would expose a pulsar TableView<CustomType> as a bean.


Add Minecraft Server Integration

Breaking change
None (new integration).
Proposed change
Add Minecraft Server integration.
It allows you to monitor a Minecraft server (Java edition) from within Home Assistant. Uses the 3rd party library mcstatus to fetch the data. For more information please refer to the below linked documentation pull request.
Type of change

[ ] Dependency upgrade
[ ] Bugfix (non-breaking change which fixes an issue)
[x] New integration (thank you!)
[ ] New feature (which adds functionality to an existing integration)
[ ] Breaking change (fix/feature causing existing functionality to break)
[ ] Code quality improvements to existing code or addition of tests

Example entry for configuration.yaml:
n.a. (configuration via config flow).
Additional information

This PR fixes or closes issue: n.a.
This PR is related to issue: n.a.
Link to documentation pull request: home-assistant/home-assistant.io#11815

Checklist

[x] The code change is tested and works locally.
[x] Local tests pass. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.
[x] I have followed the development checklist
[x] The code has been formatted using Black (black --fast homeassistant tests)
[x] Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated for www.home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[x] The manifest file has all fields filled out correctly.
Updated and included derived files by running: python3 -m script.hassfest.
[x] New or updated dependencies have been added to requirements_all.txt.
Updated by running python3 -m script.gen_requirements_all.
[x] Untested files have been added to .coveragerc.

The integration reached or maintains the following Integration Quality Scale:

[ ] No score or internal
[ ] 🥈 Silver
[ ] 🥇 Gold
[ ] 🏆 Platinum

No score

Satisfy all requirements for creating components and creating platforms.
✔

Configurable via configuration.yaml
➖ Config flow is supported instead.

Silver 🥈

Connection/configuration is handled via a component.
✔

Set an appropriate SCAN_INTERVAL (if a polling integration)
✔ (set to 60 s)

Raise PlatformNotReady if unable to connect during platform setup (if appropriate)
➖   Not needed, as the states become unknown if connection to server is interrupted/not possible (platforms are always ready).

Handles expiration of auth credentials. Refresh if possible or print correct error and fail setup. If based on a config entry, should trigger a new config entry flow to re-authorize.
➖  No auth required.

Handles internet unavailable. Log a warning once when unavailable, log once when reconnected.
✔

Handles device/service unavailable. Log a warning once when unavailable, log once when reconnected.
✔ (same as above)

Set available property to False if appropriate
Entities are always available (state is unknown if server connection is interrupted).

Entities have unique ID (if available)
✔

Gold 🥇

Configurable via config entries.
✔

Don't allow configuring already configured device/service (example: no 2 entries for same hub)
✔

Tests for the config flow
✔

Discoverable (if available)
➖  Didn't find a ways to discover Minecraft servers on same network. Not possible for servers outside the home network.

Set unique ID in config flow (if available)
✔

Entities have device info (if available)
✔

Tests for fetching data from the integration and controlling it
❌

Has a code owner
✔

Entities only subscribe to updates inside async_added_to_hass and unsubscribe inside async_will_remove_from_hass
✔

Entities have correct device classes where appropriate
✔ (only appropriate for a few entities)

Supports entities being disabled and leverages Entity.entity_registry_enabled_default to disable less popular entities
❌

If the device/service API can remove entities, the integration should make sure to clean up the entity and device registry.
❌

We want to differentiate between entity unknown state and unavailable state. Unknown means that the server hasn't reported yet. Unavailable means that the server is down.

We want to differentiate between entity unknown state and unavailable state. Unknown means that the server hasn't reported yet. Unavailable means that the server is down.

I would like to reach the silver quality scale. I think I handle the unavailable and unknown states now correctly. Hopefully the last change 🤞


SDK Setup Instructions

I have managed to setup my multiplatform project with this library for Android with no issues and it works great so far! However, iOS is giving me the following error when I try to build the app
ld: framework not found FirebaseFirestore

which I believe is similar to some of the other issues I've seen in this repo.
Would it be possible to include working setup instructions for iOS?
My setup for Android is exactly the same as the usual Firebase guide so I imagine iOS would be the same but I'm probably missing an important step somewhere in between. I should also mention that I have a multi-module project and Firebase is setup as a standalone module to be linked to the rest of the app.
Thanks very much for building the SDK and I'm hoping to have iOS working the same way as Android 🙏

You still need to follow the normal steps to add Firebase iOS SDK to your iOS app (https://firebase.google.com/docs/ios/setup).

@suntrix I was following the Swift Package Manager instructions to add Firebase but I was still getting linker errors when executing embedAndSignAppleFrameworkForXcode with the above error.
What seems to work was to add all Firebase frameworks manually by downloading the bundle and doing this:
val xcf = XCFramework()
val libs = listOf(
    "FirebaseFirestore.xcframework",
    ...
)
val nativeFrameworkPaths =
        projectDir.resolve("PATH/TO/FIREBASE/DOWNLOAD").listFiles().filter { it.isDirectory }
            .flatMap { it.listFiles().filter { it.isDirectory && libs.contains(it.name) } }
iosTarget("ios") {
    binaries {
        framework {
            baseName = "KmmShared"
            xcf.add(this)
            val libraryIdentifier = "ios-arm64_i386_x86_64-simulator"
            linkerOpts(nativeFrameworkPaths.map { "-F$it/$libraryIdentifier" })
            linkerOpts("-ObjC")
        }
    }
}

I feel like we need a way to tell gradle where to look for the SPM Firebase frameworks, or should that be handled automatically somehow? I feel like I'm missing a step somewhere...

Have you tried to not use XCFramework()?
This is how I have it setup in our app that uses this lib.
ios {
    binaries {
        framework {
            baseName = "KmmShared"
            isStatic = true
            linkerOpts("-ObjC")
        }
    }
}

Then I just add it to iOS app with -framework KmmShared & framework search paths in build settings.
Theoretically it should also work as dynamic framework (without isStatic = true).

How are you installing the Firebase SDK into your iOS project? Is it with Swift Package Manager?
I tried the above the I'm still getting ld: framework not found FirebaseFirestore when I install through Swift Package Manager.
The only thing that works for me is the code that I shared here, which makes me think that Kotlin has no access to the downloaded Firebase SDK if I use SPM for some reason.

Yes we're using SPM in our project & no linking issues in iOS. Are you sure it's actually linked in iOS project?
There's also another thing why this could happen, if you're using iOS-specific SDKs in your iosMain sources (that would actually explain the issue).

I'm using the standard Xcode -> File -> Add package -> https://github.com/firebase/firebase-ios-sdk and I choose my project target. Xcode also seems to show autocompletes when I try to import Firebase for example. I can't launch the app because KMM isn't able to link due to the above error.

if you're using iOS-specific SDKs in your iosMain sources
I don't have iOS-specific SDKs but I do have some dependencies which have iOS implementations, for example Ktor which needs:

val iosMain by getting {
  dependencies {
    implementation("io.ktor:ktor-client-ios:$ktorVersion")
  }
}

Is this what you meant? Or you meant a Firebase iOS-specific dependency?
In your project, do you have any linker flags set after adding Firebase or are you just following the official instructions?

Also, when I build on Xcode I can see the Firebase dependencies also building so I'd say the SDK should be linked

I'm using the standard Xcode -> File -> Add package -> https://github.com/firebase/firebase-ios-sdk and I choose my project target. Xcode also seems to show autocompletes when I try to import Firebase for example. I can't launch the app because KMM isn't able to link due to the above error.

if you're using iOS-specific SDKs in your iosMain sources

I don't have iOS-specific SDKs but I do have some dependencies which have iOS implementations, for example Ktor which needs:
val iosMain by getting {
  dependencies {
    implementation("io.ktor:ktor-client-ios:$ktorVersion")
  }
}

Is this what you meant? Or you meant a Firebase iOS-specific dependency?

I meant Firebase iOS-specific SDKs.
I remember that I had to link the iOS frameworks when we used to have some Kotlin code in iosMain sources that were calling the Firebase SDKs directly or through the .ios properties in the multiplatform code.

In your project, do you have any linker flags set after adding Firebase or are you just following the official instructions?

Yes, we followed the official instructions.

I don’t use iOS specific SDKs in iosMain and am just linking this library in commonMain and accessing Firestore from the shared code.
Obviously on Android we have to specifically link and initialise Firebase and iOS should be the same, so I am expecting to have to tell the Kotlin compiler where to look for the dependencies during the emberAndSignXcodeFramework task, so there must be a step we’re missing somewhere…
@suntrix Do you have a working project we can take a look at?
My plan is to try and setup a basic app with just this library to rule out any multimodule-specific issues I may be hitting.

yes a simple sample will solve this issue. Trying to solve this for few days now using cocoapods

I tried this with a new vanilla project and am getting the same error. Steps to reproduce are:

Create new Kotlin Multiplatform App from Android Studio
Select Regular Framework for the setting iOS Framework Distribution
Add classpath("com.google.gms:google-services:4.3.10") to the dependencies section of buildscript under MyApplication/build.gradle.kts
Add apply(plugin = "com.google.gms.google-services") and implementation(platform("com.google.firebase:firebase-bom:30.0.1")) to appAndroid/build.gradle.kts
Add dependencies { implementation("dev.gitlive:firebase-firestore:1.6.1") } to commonMain in shared/build.gradle.kts

At this point the Android app builds but complains about a missing google-services.json which is expected and not an issue.

Open File -> Add Packages on Xcode and add https://github.com/firebase/firebase-ios-sdk
Select FirebaseFirestore from the available SDKs and wait until Xcode finishes initialising
Build ios app -> Fails with ld: framework not found FirebaseFirestore

@suntrix @nbransby My suspicion is that we need extra steps for the iOS setup but I can't quite figure out what they are. Any other suggestions or maybe a small working example app?

I can repro this issue when I setup a sample app. I'll check what I did in our project to not see this issue & let you know.

When I set the framework to static the linker issue goes away.
kotlin {
    android()

    listOf(
        iosX64(),
        iosArm64(),
        iosSimulatorArm64()
    ).forEach {
        it.binaries.framework {
            baseName = "AppShared"
            isStatic = true
        }
    }

    sourceSets {
        ...
    }

Also one of the devs in my team have created https://github.com/akaffenberger/firebase-ios-sdk-xcframeworks :)

isStatic = true did the magic ! also note that this dev.gitlive:firebase-config is causing another issue on ios but im just commenting its use for now

I can confirm that setting isStatic = true has solved it both in my test project and real multi-module app, thanks! @suntrix would you mind sharing a 1-line sentence of why this is necessary?
As a side-effect I assume this means the final shared KMM framework that is linked to iOS is now a static one, rather than dynamic, right?

So essentially we have 2 ways of doing this (with their own pros/cons):

static framework (isStatic = true)

doesn't require linking the Firebase SDKs when building KMM, this is because static libraries are just an archives of object files, so it will need to create those only from KMM code
require linking the Firebase SDKs when building iOS app
final app binary will be bigger than with dynamic framework
compiler can strip unused parts of the static framework, so app binary can be smaller than app + dynamic framework

dynamic framework (isStatic = false)

require linking the Firebase SDKs when building KMM
require linking the Firebase SDKs when building iOS app
final app binary smaller than with the static framework
compiler can't strip unused parts of the dynamic framework

TBH - linking statically something that needs to be initialised at app start makes sense, because Apple doesn't recommend using too many dynamic frameworks in iOS apps & also there's noticeable latency when loading a bunch of dynamic frameworks at app start.

Awesome, thanks for the clarifications!
I think it might be helpful to update the README with some setup instructions, since there are a few similar issues. I've linked some basic instructions here which as of today produce a working project (have also linked the relevant versions I'm using) 👍

That would be a question for @nbransby since he's the owner of this project, I'm just contributing my free time :)
The issue is not specific to this library but to KMM which still is missing a few things.

WOW THIS THREAD IS A LIFE SAVER.
Thanks a bunch @suntrix and @gchristov for finding the fix and posting it here!
I think we should definitely get this stuff added to the README as it is essential to get the project working and googling for the errors this solves leads to old posts with answers that didn't work for me.

Thank the heavems for this thread!

Any possible way to create dynamic XCFramework(isStatic = false) with this lib?

Any possible way to create dynamic XCFramework(isStatic = false) with this lib?

isStatic = true results in many thousands of warnings in XCode during Generate YourApp.app.dSym such as the following
warning: (arm64)  could not find object file symbol for symbol _kfun:kotlinx.cinterop.NativePointed#<get-rawPtr>(){}kotlin.native.internal.NativePtr
warning: (arm64)  could not find object file symbol for symbol _kfun:kotlinx.cinterop#interpretOpaquePointed(kotlin.native.internal.NativePtr){}kotlinx.cinterop.NativePointed
warning: (arm64)  could not find object file symbol for symbol _kfun:kotlinx.cinterop.CPointer#<get-value>(){}kotlin.native.internal.NonNullNativePtr
warning: (arm64)  could not find object file symbol for symbol _kfun:kotlinx.cinterop#<get-ptr>__at__0:0(){0§<kotlinx.cinterop.CPointed>}kotlinx.cinterop.CPointer<0:0>
warning: (arm64)  could not find object file symbol for symbol _kfun:kotlinx.cinterop#<get-rawValue>__at__kotlinx.cinterop.CPointer<*>?(){}kotlin.native.internal.NativePtr
warning: (arm64)  could not find object file symbol for symbol _kfun:kotlinx.cinterop.CVariable.Type#<init>(kotlin.Long;kotlin.Int){}
warning: (arm64)  could not find object file symbol for symbol _kfun:kotlinx.cinterop.CVariable.Type#<get-size>(){}kotlin.Long
warning: (arm64)  could not find object file symbol for symbol _kfun:kotlinx.cinterop.CVariable.Type#<get-align>(){}kotlin.Int
warning: (arm64)  could not find object file symbol for symbol _kfun:kotlinx.cinterop.CStructVar.Type#<init>(kotlin.Long;kotlin.Int){}
warning: (arm64)  could not find object file symbol for symbol _kfun:kotlinx.cinterop.NativePlacement#alloc(kotlin.Int;kotlin.Int){}kotlinx.cinterop.NativePointed

Because of the sheer quantity of warnings, it causes XCode to hang. Any idea of how to silence these warnings at least?

Hm, I don't just get those warnings while generating dsyms, I get them for each build... And yes, it seems to be a bit much for Xcode, for my little project its 36k+ warnings. 😅

I found a workaround that eliminates the warnings, though it is not ideal.
In your project's build settings, find Debug Information Format and under Debug select DWARF and leave Release as DWARF with dSYM File.
This eliminates the warnings, but it isn't ideal for the stack trace during debugging, I think.

This eliminates the warnings, but it isn't ideal for the stack trace during debugging, I think.

Yes, it makes setting breakpoints for Kotlin/native code in Android Studio etc. impossible.
The warnings are only a problem for Xcode, not Android Studio (go figure 😁 ), so what I'm doing now is enabling the setting in Xcode while implementing Kotlin/native stuff, then build and debug via Android Studio, and then disable DWARF with dSYM again when back in Xcode. Tedious, but it works.
Another side note: I found, that the warnings don't seem to affect Xcode as long as I don't have the problem view (or the build view) open during build.

I'm using the standard Xcode -> File -> Add package -> https://github.com/firebase/firebase-ios-sdk and I choose my project target. Xcode also seems to show autocompletes when I try to import Firebase for example. I can't launch the app because KMM isn't able to link due to the above error.

if you're using iOS-specific SDKs in your iosMain sources

I don't have iOS-specific SDKs but I do have some dependencies which have iOS implementations, for example Ktor which needs:
val iosMain by getting {
  dependencies {
    implementation("io.ktor:ktor-client-ios:$ktorVersion")
  }
}

Is this what you meant? Or you meant a Firebase iOS-specific dependency?

I meant Firebase iOS-specific SDKs. I remember that I had to link the iOS frameworks when we used to have some Kotlin code in iosMain sources that were calling the Firebase SDKs directly or through the .ios properties in the multiplatform code.

In your project, do you have any linker flags set after adding Firebase or are you just following the official instructions?

Yes, we followed the official instructions.

@suntrix Apologies for coming back to this after such a long time.
I'm in the process of migrating my project to KMM using the gitlive firebase sdk and I'm having trouble accessing the .ios property inside the iosMain module.
This seems to happen because I'm using SPM instead of CocoaPods and I'm really struggling to find a fix.
According to your comment, you had a similar issue and I was wondering if you somehow remember what it was. Thanks!

I believe this is due to the iOS arch "commonization" feature not being enabled. Right now, your IDE isn't showing autocomplete and is showing errors, but if the code were correct, it would compile via the command line. If you were to create a file under a specific iOS arch folder like iosArm64 vs iosMain, then the IDE would be happy. However, you can enable commonization so that the IDE is happy while writing in iosMain.
Try adding this line to your gradle.properties file at your project root:
kotlin.mpp.enableCInteropCommonization=true

@walkingbrad That did the trick!


check signals during AutoMode

Signals should change to green on start.
Signals of target block should change to red.
Vorsignale entsprechend.

base functionality implementes, first test on real hardware were successfully


Create Better Landing Page

LINKED ISSUE
#15
DESCRIPTION

Added welcome header
Add game description
Add minimal styling

METHODOLOGY
The changes were made to the landing page so that the user can learn more about the game Quarto.

Looks great! Thank you!


Start BCeID process for CIF

Describe the task
Need to look into what is required to set up BCeID (basic/business) for CIF to allow for proponents to submit their applications online.
Acceptance Criteria

[x] draft intake form
[x] submit intake form
[ ] complete kickoff meeting
[ ] confirm with CIF team if it is a priority to have users be logged into system in order to submit applications
[ ] other?

Additional context

Add any other context about the task here.
Or here

Followed up with IDIM team last week to schedule the kickoff, but have not heard back.

Note: @Dianadec, this ticket will carry over into next sprint.


Komal7209

resolve #679

@CodingSpecies Done, else I was obliged to change whole structure of table.

@CodingSpecies Any specific reason

@Komal7209 , it is because all the new names go to the bottom of the file, all the first ever names are at the top. Hope that helps. Thanks. :)

In data.json, you specified that #679 (this pull request) is the issue that has a screenshot of your profile. Please submit an issue with an image of your profile (you can use this one).

Great catch!

@Panquesito7 @schmelto Here's that issue : https://github.com/EddieHubCommunity/awesome-github-profiles/issues/681


chore(main): release 0.1.0

:robot: I have created a release beep boop
0.1.0 (2023-02-06)
🔖 Features

add core example project structure (2831a9e)
add esbuild config (92eca90)
initial package implementation (29aeedc)

🧹 Miscellaneous

build: update build configs (12d867f)
change function entry-point property to functionTarget (7184308)
change module compilation from commonjs to esnext (7e473ca)
changes tsconfig compile options (8b60fea)
deps: added core dependencies (ee06ce3)
deps: pin dependencies (93d485f)
deps: pin dependencies (a8f44f0)
deps: removed changeset in favor of release-please (5224f68)
deps: resolve merge conflict (0af4860)
deps: update all non-major dependencies (16081f2)
deps: update all non-major dependencies (69010b1)
deps: update dependencies (c591008)
deps: update dependency @types/jest to v29.2.6 (b2615da)
deps: update dependency @types/jest to v29.4.0 (383ecac)
deps: update dependency dotenv-cli to v7 (133385f)
deps: update dependency rimraf to v4 (9c8819e)
deps: update lockfile (ae75e03)
force run release pipeline (9370df9)
main: release 0.1.0 (c440495)
release 0.1.0 (ff2be61)
remove cspell (9996b68)
remove unused tests (ba11539)
removed unneeded .envrc (46d212c)
return http function on handler (8c92f96)
update docs and comments (251326a)
update prettier rules (d329258)
update release workflow (48d664a)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/apollo-server-integrations/apollo-server-integration-google-cloud-functions/releases/tag/v0.1.0 :sunflower:


Auth.login() does not return rejection

When there is are invalid Auth.login credentials the failure function is never called. Only a 401 unauthorized access is returned.
My code:
Auth.login($scope.user).then(function(){
$state.go('home');
}, function(error){
// never called
});

@Coroecram That is because you enable AuthIntercept for your application. And AuthInterceptor return a promise that haven't been rejected or resolved
In your example, you can ignore the intercepor by passing interceptAuth: false to login method, like this:
Auth.login($scope.user, { interceptAuth: false }).then(function(){
  $state.go('home');
}, function(error){
  // Error handing
});

closed in #89

@leomao10 Thank you very much, I got that from a tutorial which then acted like it still handled the errors normally.


./dotnet-install.sh --version latest installs .net 8

Type of issue
Typo
Description
I had to use --version 9.0.100 to install latest SDK
Page URL
https://learn.microsoft.com/en-us/dotnet/core/install/linux-scripted-manual#scripted-install
Content source URL
https://github.com/dotnet/docs/blob/main/docs/core/install/linux-scripted-manual.md
Document Version Independent Id
2be3647d-495b-c9f0-cf06-9a7bf687d3bb
Article author
@adegeo
Metadata

ID: 885585df-1c7c-c774-34e4-4b274a7c2602
Service: dotnet-fundamentals
Sub-service: install

Related Issues

Hello. As specified in that article, latest means the latest long-term support (LTS) release, which is .NET 8.


feat: use network events from pw

bring back the original PR along with couple of improvements #372 #398
fixes #253
We use the network events from the Playwright context instead of events from CDP which can only listen for the first page request and ignores all subsequent requests. With this change, all requests inside all frames, windows gets captured with this change and also we get header and body size for each individual request.
Timing calculation becomes a lot simpler to deal with and don't require much understanding of the chrome devtools code which we relied on before.
Changed logic around emulating the subsequent pages for network throttling as the previous implementation had bug and did not account for pages that are closed during the navigation.
Barriers are added for all the async operations that happens while observing for network events.

Missing data

We don't have a queuing time exposed from the PW API as Queueing time is pretty specific to chromium and not exposed for other browsers like FF and Webkit and its in the order of 1-2ms max when tested -
Bare uncompressed resource size is not exposed for each request instead we have header and body sizes for both request and responses.
http.version data is not exposed, but we can add that as a follow up once PW adds support for it and we are not using it on the waterfall UI.

:broken_heart: Build Failed

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Start Time: 2022-04-12T06:05:16.556+0000

Duration: 7 min 48 sec

Steps errors
Expand to view the steps failures

Checks linting

Took 0 min 4 sec . View more details here
Description: npm run-script lint

:robot: GitHub comments
To re-run your PR in the CI, just comment with:

/test : Re-trigger the build.

@lucasfcosta Thanks for the review, yeah the test details provided by Paul should suffice for the popup scenario and we dont need to explicity test for the barrier case as the unit tests catches that.
But we need an E2E with HB and Kibana to check if everything looks fine on the Kibana side as the PR touches lots of network data.

Btw just E2E tested with Kibana and I was able to see the screenshot from the popup page as well as the network request it did to Google because of the script tag I've added.


[UBS-User.Edit Profile] User cannot save the default address when he/she selects it on the editable 'User data' page

Environment: Windows 10 Pro v.21H2, Google Chrome 111.0.5563.147 (64-bit).
Reproducible: always.
Build found: 07/04/23
Preconditions

User is logged in as user.
User data tab is opened.
More than 1 address is added.

Steps to reproduce

Click on the 'Edit Data' button.
Click on the unchecked 'Make the address by default' checkbox for any address except the first one.
e.g. Address 3.
Click on the 'Save changes' button.
Click on the 'Edit Data' button.
Pay attention to the 'Make it the default address' checkbox for this address.
Click on the 'Orders' tab in the navigation menu.
Click on the 'New order' button''.
Go to the 'Personal data' tab.
Pay attention to the default address in the 'Garbage collection address' section.

Actual result
'Make the address by default' checkbox is unchecked for the selected address on the editable 'User data' page. The default address isn't changed in the Order form.
https://user-images.githubusercontent.com/119864646/230674959-b1ba0796-46e1-4d1b-9ca0-2fc997c8825b.mp4
Expected result
'Make the address by default' checkbox should be checked for the selected address on the editable 'User data' page. The default address in the Order form should be matched with the address by default in the editable 'User data' page.
User story and test case links
User story #3811
Test case
Labels to be added
"Bug", Priority ("pri: High"), Severity ("severity: Major"), Type "Functional").

This functional not implemented yet

Backend part is ready. Use PATCH/ubs/makeAddressActual/{addressId} to make address actual


Problem with stdout buffering

Here's a problem that I am experiencing which I don't fully know the cause of. But I'll explain what I know.
When running a Flask app under heroku local, my stdout is buffered until I control-c, at which point it is all printed.
This issue describes what I think is the same problem, in this case under supervisord and not heroku local: https://github.com/pallets/flask/issues/1420
Both of the workarounds described in the issue work for me. either
import sys
import os
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)

at the top of my flask application file, or
PYTHONUNBUFFERED=1

in my environment.
Someone in the thread vaguely asserts that it's werkzeug's fault and points out this line of code: https://github.com/mitsuhiko/werkzeug/blob/master/werkzeug/_reloader.py#L96
Let me know if you would like me to provide a minimal demonstration of the bug.

I suppose you are referring to https://github.com/pallets/flask/issues/1420#issuecomment-89769748, but I don't think this problem is fixable.

@untitaker why? A limitation at what level?

I don't know a way to get the arguments passed to the Python interpreter, within Python.

I don't believe PYTHONUNBUFFERED solves this problem at all, actually. At least, not in my experimentation. Python will not, under any circumstances, automatically flush once it writes a full line to stdout/err, like every other language I know of.
That has historically been the problem with many third-party wrapper tools (Foreman, etc).
It's possible the source of this issue is unrelated though, as I've been told node-foreman's scanning exhibits more proper behavior with stdout streams from Python applications.

fwiw: in my setup it solves my problem very consistently on multiple apps

@kennethreitz Maybe foreman fakes a TTY, I don't know. But PYTHONUNBUFFERED and -u definetly disable stdout buffering (at least in my tests).

Is flushing not a thing when buffering is taken out of the equation?
It's been many years since I've experimented with this — it was when I was trying to replicate pexpect's functionality into a subprocess module "for humans" wrapper.

Is flushing not a thing when buffering is taken out of the equation?

Yes, I think so.
There appear to be more stdio buffers than Python's internal one BTW, but I really have no idea.

There appear to be more stdio buffers than Python's internal one BTW, but I really have no idea.

That was my impression — that there was another layer of buffering somewhere within the system, and that a stdout.flush() is simply required if a simplistic (potentially lazy?) line scanning method is being used in the parent application.

This no longer seems to be an issue. I created a basic app with run_simple(..., use_reloader=True), and heroku local printed all output as it occurred.
I know you're using heroku local and not actually deploying, but unless you're using a different procfile in production that uses Gunicorn, your current configuration is not safe. You should not be running the development server, with or without the reloader, in production.


Int type inference behavior

I'm a little unsure of whether or not #111 subsumes this, but right now, this program compiles just fine:
decl arr: bit<32>[10];

for (let i = 0..33) {
  arr[5] := i;
}

However, this program:
decl arr: bit<32>[10];

for (let i = 0..33) {
  arr[5] := i * 1;
}

(Only difference is the * 1.)
Throws this error:
Exception in thread "main" java.lang.RuntimeException: [Type error] [4.13] Expected subtype of int32 in assignment, received: int33.
  arr[5] := i * 1;
            ^

Is this the expected behavior?

Try using an explicit let binding to get the types to work? See if that helps?

This program compiled successfully:
decl arr: bit<32>[10];

for (let i = 0..33) {
  let temp:bit<32> = 1;
  arr[5] := i * temp;
}

So there are ways to write this so it'll type check, but I wasn't sure if the error message from my first example was erroneous. Should the type be bit<33> like it says?

This is a bug. Here is the offending code: https://github.com/cucapra/seashell/blob/f65229d3997af8e69974954da5daa8fb38207202/src/main/scala/Subtyping.scala#L78


[TASK] Create package containing resource ID utilities w/ new chain ID type

The package should be very minimal. We should only start on this task once we have the whole suite working with the new chain ID / resource ID types.

relayer
solidity / substrate
etc.

@drewstone can you provide further direction here.

Reusables
Projects

ResourceId type
webb.js, relayer, webb-dapp, webb-rs, dkg-substrate, protocol-substrate

ProposalHeader type
relayer, dkg-substrate

createResourceID, makeResourceId
relayer, protocol-solidity, dkg-substrate

checkNativeAddress
protocol-solidity, webb-dapp

getProposalData
protocol-solidity

ChainIDType
dkg-substrate


Gasteiger Charge for organometallics are Nan

I want to get the Gasteiger Charge of a molecule. However, I get nan. How can I solve this problem?
smil = "[CH3:1][CH2:2][CH2:3][CH2:4][Sn:5]([CH2:6][CH2:7][CH2:8][CH3:9])([CH2:10][CH2:11][CH2:12][CH3:13])[c:14]1[cH:15][cH:16][c:17]([CH2:18][CH3:19])[n:20][cH:21]1"
mol = Chem.MolFromSmiles(smil)
AllChem.ComputeGasteigerCharges(mol)
for atom in mol.GetAtoms():
    value = '%.2f'%(atom.GetDoubleProp('_GasteigerCharge'))
    atom.SetProp('atomNote',value)
Draw.MolToImage(mol, size=(500, 500))

The NaNs are arising because there are no Gasteiger parameters available for these metals. I'm afraid that there's nothing we can do in this case


JSONString to Data?

@onelcat Sorry, I am not sure what you mean.

Can I read the JSON string ?

Ah you mean JSON to FlatBuffers. You can use googles flatc to convert compatible JSON file to binary file, given a schema. For Swift we could enhance the code generator to generate a static API from(dict: [String: Any]) for root type. This way you could use JSONSerialization class to parse the JSON string and create object graph from it. We could also add custom JSON parser and add from(jsonString: String) API to root type, but I don't think it is worth the hassle. It will be a couple times faster than JSONSerialization, but I don't think performance is a big issue if you already decided to use JSON. It is rather about convenience and for that using JSONSerialization should be enough.
Is this what you meant, or did I misunderstood?

Closing this one because it is a code generator issue: https://github.com/mzaks/FlatBuffersSwiftCodeGen/issues/8

@onelcat the new code generator provides now the feature you wanted.
Here is how it can be used https://github.com/mzaks/FlatBuffersSwift/blob/master/FlatBuffersSwiftTests/ContactsTest.swift#L259


ADWIN: tests for BucketRow and BucketRowList methods

Write tests for the other BucketRow and BucketRowList methods, separate from the full ADWIN tests. Currently, the relevant test functions that exist are: test_bucket_row_init, test_bucket_row_list_empty, and test_bucket_row_list_append_head.
Methods in BucketRow still to write tests for
add_bucket
remove_buckets
shift
Methods in BucketRowList still to write tests for
init
append_tail
remove_tail

An alternative would be to switch to a native Python data structure that can implement a linkedlist than the "by-hand" implementation, which would avoid the unit tests altogether.


Error Reporting and reportUnhandledRejections - what am I doing wrong?

I have a Node.js Cloud Function and am trying to be alerted to unhandled rejections. Error Reporting overall seems to be working as I can get alerted if I manually throw a console.error('error').
If I throw an unhandled rejection and cause a crash in my index.js entry point, the error shows up in Error Reporting (although I don't receive a notification for some reason). This also shows up as log level "critical":

If I throw an identical unhandled rejection in a different .js file in the same Cloud Function (which is being imported by index.js), it does not show up as log level "critical" and the error is never reported in Error Reporting:

What is the correct way to ensure I capture all unhandled rejections across my entire Cloud Function (and ensure I receive alerts)? Do I need to initialize an instance of error reporting in every single .js file within my cloud function? This is how I am initializing Error Reporting in my index.js entry point:
const {ErrorReporting} = require('@google-cloud/error-reporting');

      const errors = new ErrorReporting({
        reportUnhandledRejections: true
      });

@derrickrc have you tried initializing a new error reporting client in each js file? the reason that's important is that errors need to know the relative location of the error in your source code. See more info in formatting requirements: https://cloud.google.com/error-reporting/docs/formatting-error-messages
Aside, another reason could be that your functions are finished with execution (thus cpu is ramped down) before the error is emitted. One way around it is to synchronously emit error logs.

@nicoleczhu thanks Nicole - I don't believe it's because my functions have already terminated. I have not tried initializing in each .js file, but was hoping to avoid doing that if possible. Is there any way to initialize it once across the entire Cloud Function?  If not, I guess I'll do it individually for each .js file.

Can you try it in each file? Can you provide a longer snippet of your implementation?
Also you actually do not need this library for errors to be picked up by error reporting. You can console.log to STDOUT in this format. I'd do this if I were you, because of the above mentioned race condition. Even if you aren't experiencing that now, you might under greater load. It'll also make for a lighter implementation/less dependencies, no need to include it in each file, etc.
Here's an example for how to write structured logs to stdout.

Thank you @nicoleczhu . Here is the main snippet, I am still relatively new to node.js so please advise if this isn't best practice. For example, deleteProduct and updateInventory are methods I have written that live in other .js files and are being imported within this main index.js file.
Regarding using STDOUT, does that mean though that I would have to try / catch  and log it in the catch? I guess what I am hoping to be notified of any exceptions I might have not planned for.
exports.myFunction = async (req, res) => {
    // if it's a closed order
    if (json.hasOwnProperty('closed_at')) {
     let awaiter = new Promise((resolve) => {
        // get order object from orders directory
        await ordersRef.once("value", async function(snapshot) {
            var orderResponseObj = snapshot.val();

            await deleteRef.once("value", async function(snapshot) {
                var deleteResponseObj = snapshot.val();
            });

            await shopInfoRef.once("value", async function(snapshot) {
                var firebaseResponseObj = snapshot.val();

                await updateInventory.updateInventory(); // do some fetch request to 3rd party API

                await deleteProduct.deleteProduct(); // do another fetch call to 3rd party API

                resolve(); // we put resolve in the very last point of the chain
            });
        });
      });

      await awaiter;
    }
    // terminate the cloud function
    res.end();
}

Hi @derrickrc I'm guessing you shared the function that doesn't have the client instrumentation yet. Can you initialize error-reporting in this file as well and see what you get?
For writing to stdout, yes you can just do a console.log in a catch statement. Your catch could catch on any exception right? using uncaughtException' and 'unhandledRejection

Thanks @nicoleczhu, sorry for the confusion - in my actual file I actually had initialized the client reporting. After playing around with it, I think I've got it. I can simply wrap my entire index.js code in try/catch and in the catch(e) block, if I use errors.report(e), then even if an error occurs in another .js file along the way I will be notified. Is there any danger it to doing it this way?
I think I did experience the race condition you described which is when I throw an exception that actually causes the function to crash, sometimes it doesn't report it and now I understand why.
One thing I do remain confused about though is, in my testing it seems the only way I can get an error to show up is either a) when an unhandled exception occurs in the main .js file (and the race condition does not occur), or b) using errors.report(). When I try using something like console.error(new Error('I failed you')) per this article I don't get notified or see it in https://console.cloud.google.com/errors. Are these 2 different things?
I also don't think I grasp what's going on with the JSON logging examples you provided and why that's necessary, but that might just be a bit over my head at the moment. Thanks again.

great question. So there are 2 ways (minimally) to log/error in cloud functions.

Default approach. When you use the javascript standard library console package, i.e. when you type console.log console.error, it writes your messages to the STDOUT/STDERR stream. This is a very "native" way of writing logs. It will run locally. Then in the Cloud Functions backend, the team actually has custom code that takes these message from your STD stream, parses them, and pings them to the Cloud Logging/Cloud Error Reporting API. There's no race condition here since your console.x commands are a part of your function execution itself.

I suggest you use this approach. Note you have to format the message in console.error(message).

When you use the client libraries, i.e. when you require('@google-cloud/error-reporting'); and errors.report() you are actually bypassing logging to STDOUT/ERR. The nice part is these libraries format your messages for you. Then you are making a sync or asynchronous call to directly write these messages to the Logging/ErrorReporting API. This is why there's a race condition, when your function ramps down but the async api request hasn't been sent.

So your errors.report or console.error code go in the same place - they are interchangeable, depending on which route you take.
Closing this issue for now as it's not a bug/feature request or question related to this library.


Update updater.sh

Looks great @earthlng!!
Besides those two minor things, the only other thing I really noticed is the user input for -l won't work if you have 11 or more profiles...not sure if that's something we need to worry about or not

okay then, thanks guys! I kept the broken else but commented it out (as a reminder that there's a 3rd option ie -p) and changed the proposed output when the user-input for profile selection doesn't match our "safe" regex to "Invalid selection!" because it's generally better not to output random unsanitized user input. I committed everything else exactly as suggested

Looks great!


✨ Feat: Add support for launching Python 3.10 on the Analytical Platform Control Panel

Describe the feature request.
This ticket would cover the work required to release a new version of jupyter-lab to users running on Python 3.10
Recommended Approach:

[ ] Update the dockerfile to reflect the new base version of python
[ ] Update the helmchart accordingly
[ ] Create a new release on control panel

Acceptance Criteria

[ ] A version of jupyter-lab running on python 3.10 is available to AP users

Describe the context.
The current AP allows for the launching of several variants of jupyter-lab, however all of the currently available images are based on Python 3.9. However, a change to the base version of python used by Airflow has lead to the current guidance becoming invalid, as the validation process requires a base python version of 3.10.
Value / Purpose
This would allow our user guidance to be applicable once more, providing a high quality of service to users. Beyond the immediate value to airflow users, keeping up-to-date versions of python available to users allows users to write code targeting newer features of base python, giving them the advantages of the continued development of the language.
User Types
Any python users of AP.
Definition of Done

[ ] Complete Recommended Approach above
[ ] Update the current guidance

We also need to update the python version used in the rstudio images, see message in #ask-data-platform channel

Stats on Jupyter image usage as of 29/01/24
allspark-notebook:
  - v2.0.0: 4
  - v3.0.0: 36
  - v3.0.1: 41
  - v3.1.13: 131

datascience-notebook:
  - lab-3.1.12: 43
  - v3.1.13: 64
  - v3.1.14: 119

datascience-notebook-moj: # no idea where this is from
  - lab-3.1.12: 59

oracle-datascience-notebook: {}

https://github.com/ministryofjustice/analytics-platform-jupyter-notebook/pull/76 has been merged and v4.0.0-beta released

ghcr.io/ministryofjustice/analytical-platform-datascience-notebook:v4.0.0-beta
ghcr.io/ministryofjustice/analytical-platform-allspark-notebook:v4.0.0-beta

Created a new release for datascience https://controlpanel.services.analytical-platform.service.justice.gov.uk/release/65/

Release didn't work https://ministryofjustice.sentry.io/share/issue/33ff6c170bc8443481b346078b4dc951/

I'm parking this ticket as updating the base image is not a drop in replacement 😢 this work also blocks https://github.com/ministryofjustice/data-platform/issues/3041

v3.6.3 of Jupyter Lab has been released which includes Python 3.10


Improve the Form Button documentation

The documentation was missing the code blocks for the two button and input examples. It also wasn't clear when and how they should be used. Updated the md file to address both issues
Changes

Improved the form button docs

Review

@cfarm
@mistergone
@anselmbradford
@contolini

Screenshots

Notes

Patch necessary to pull into the docs site.

Checklist

[x] Changes are limited to a single goal (no scope creep)
[x] Code can be automatically merged (no conflicts)
[x] Code follows the standards laid out in the front end playbook
[x] Passes all existing automated tests
[x] New functions include new tests
[x] New functions are documented (with a description, list of inputs, and expected output)
[x] Placeholder code is flagged
[x] Visually tested in supported browsers and devices
[x] Project documentation has been updated (including the "Unreleased" section of the CHANGELOG)

:+1:


Replace this with self (or similar) in generated C code?

Since this is a registered keyword in C++, this might cause problems when interfacing/integrating directly with C++ code. Would it be beneficial to simply replace this with self or something similar in the C-generator?

This does not seem to be an issue anymore, closing.


BLE is not receiving messages

seems working on badge II but not badge I.

This is related to the use of the singlemode vs multimode driver with the uble stack. WONTFIX for 2021.


Not Compatible With the new API - UPDATE THIS PLEASE

Not Compatible With the new API - UPDATE THIS PLEASE

Alright! I just want to say awesome job, I saw the previews on it's look amazing!

Also: it's been almost a year since you updated this and incase you didn't know, PocketMine moved to here https://pmmp.io & their GitHub https://github.com/pmmp/PocketMine

Status?

Still searching for the bug. It is quite difficult so I will need some time. Sorry


Module Warning

The module is generating this warning:
The module "hourglass" is using the old flat core compatibility fields which are deprecated in favor of the new "compatibility" object

No longer seeing this warning since the v12 update. Can you confirm please?


fix issue 27

Fixes #27

Coverage increased (+0.02%) to 88.358% when pulling 39649ea309351b42fdab734128802d0e8b8b19d0 on really-fix-issue-27 into 88345b762ed2c70bec888ef20ea13bf59c39da75 on master.

Is there a way to run tests also against the build artifacts?


feat: clustering experiments

replaces #69 with a local branch (not forked). Initial description by Sunanda:
Description
The experiments conducted to cluster the questions are added in a separate folder experiments. The folder contains a Readme file that elaborates the structure of the folder.
Files of interest - Pipeline python notebooks
Methodology

Cluster using LSA + AHC with low enough distance threshold to get clusters such that the cluster distribution is close to the following stats -count    43.000000
mean     11.069767
std       8.209737
min       2.000000
25%       5.000000
50%       8.000000
75%      14.500000

The reason for this is to get closely knit clusters to see which questions are clustered together and probably why. "Why" can help determine the rules for the next step.
Create rules that can separate out the major clusters from the step 1. Check the rules.
Repeat the step 1 and 2 on the unclustered to observe the patterns, while lowering the distance threshold.

Checklist

[ ] Document code for collaboration
[ ] Improve clustering for french
[ ] Dangers, risk, protection, safety and precautions clusters need revisiting

Closing this


About the error of the array

My Email<EMAIL_ADDRESS>

Sorry, array is not a supported type in LitePal. So your entity will be regarded as declared with no field. Then the error above will appear.


Fix "Lambda functions can be invoked without passing the params"

Purpose

Describe the problems, issues, or needs driving this feature/fix and include links to related issues.

Fixes #18302
Approach

Describe how you are implementing the solutions along with the design details.

Samples

Provide high-level details about the samples related to this feature.

Remarks

List any other known issues, related PRs, TODO items, or any other notes related to the PR.

Check List

[x] Read the Contributing Guide
[ ] Required Balo version update
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[x] Added necessary tests

[x] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Codecov Report

Merging #18495 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #18495   +/-   ##
=======================================
  Coverage   15.15%   15.15%
=======================================
  Files          48       48
  Lines        1254     1254
  Branches      197      197
=======================================
  Hits          190      190
  Misses       1050     1050
  Partials       14       14

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 d059ffd...2bf46a2. Read the comment docs.


Best server database column to indices for config difference API?

When requesting the API that we're developing, what should be used as the identifying attributes?  the config_name column seems like a good one to have, but should we use the id from the server table, or is there a better option?  Right now, it is /servers/{id}/cfg.json to request all configuration differences of the server, but there should be an option to only select the differences of a single file.

The new norm is /servers/{host-name}/cfg.json, but maybe add a route for requesting an individual one.


Add Collection::select()

This pull request adds the Collection::select() method.
The method will allow calling code to select a subset of fields from each time.
Example:
$collection = new Collection($client, 'ads', ['status' => 'A',  'view' => 'full']);
.
foreach ($collection->select(['id', 'price']) as $simpleAd) {
    var_export($simpleAd);
}

Would produce output similar to
array(
    'id' => 123,
    'price' => 99.99,
);
...

:+1:

This doesn't really do what I would expect from a function called project.  I would have expected something like Arrays::project where it reduces 1 level of the resulting array, but then it should only take 1 key.

@guywithnose name suggestion?

Maybe select?

select would be good.

Not to make the function change back to project but in the academic world project means the column's that values will be returned for. The StackOverflow community seems to agree as well as seen with this question.

Changes Unknown when pulling 90ad43abfb5c587f7925978f618129770f0f3fee on chadicus:fea/collection-subset into ** on dominionenterprises:master**.

Changes Unknown when pulling 40548fd0125bc96bfa9e19ea4ef9ccaf7edef060 on chadicus:fea/collection-subset into ** on dominionenterprises:master**.

Coverage remained the same at 100.0% when pulling 1c40d1db1baf3811de43a49eec052bf89719b172 on chadicus:fea/collection-subset into dfbc0dd9e991b19cf6a87e2999c89dfe9ca2d488 on dominionenterprises:master.

Should the test select more than one column?
Should there be a test to verify that null values are returned if a column doesn't exist?

Coverage remained the same at 100.0% when pulling c2bd38a9c12d0c83195b3d26c47412f1acff2f15 on chadicus:fea/collection-subset into dfbc0dd9e991b19cf6a87e2999c89dfe9ca2d488 on dominionenterprises:master.

@chrisryan tests have been added.

Coverage remained the same at 100.0% when pulling 5a66b2f2695dbd559604fca719716ca02e669f7b on chadicus:fea/collection-subset into dfbc0dd9e991b19cf6a87e2999c89dfe9ca2d488 on dominionenterprises:master.


Update bnd version to avoid build failure

project build fails - bnd-maven-plugin errors with ConcurrentModificationException
https://github.com/bndtools/bnd/issues/3903

Description

Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] I have signed the Adobe Open Source CLA.
[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Closed - this was incorporated in other PR already


Respect shouldPublish flag when set to false

Fixes https://github.com/contentful/contentful-migration/issues/156
The problem is that we always defaulted it back to true when any falsy value was passed.
I also removed use of util/isNullOrUndefined because it is deprecated since Node 4.

:tada: This PR is included in version 0.16.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket: