What to do with QuickStart?

The existing Quickstart is outdated and would require a total rewrite to work with current Keptn releases.  Moreover, it requires the user to go through an excruciating installation process which may fail because of the range of k8s and user operating systems.  If they succeed in getting it to run, they get to do a couple of quick, trivial Keptn exercises that have little context or explanation.
We now have the end-to-end tutorial referenced in https://keptn.sh/docs/explore/ instead.  This uses Killercoda to quickly install and configure a Keptn instance in a controlled environment.  They then get to run more interesting exercises that include come context and information so that the user actually learns something.
If we can discard the old Quickstart, we could rename this end-to-end tutorial to be Quickstart.

This is something I agree with
Although probably temporarily discarding it until the Quickstart is being re-written would be a good idea or we can as of now put a link to redirect the user to the explore page in the Quickstart
Also, we should be having the installation and setup guide for the current releases on the Quickstart and that is something that I feel needs to be worked on

FYI the quick start page is referenced in the bridge so we'd at least need a redirect from that page to "explore" although I favour the opposite. Replace the content on the Quickstart page with the content from the "explore" page (modify / improve / update as required during the move) then retire the explore page. Therefore all existing references and links still work.

Related discussion - #1448


Can't connect with Franz credentials

Can't login from https://api.getferdi.com/import page with right credentials (just logged with same login and password on Franz page). Each time it sends "Could not login into Franz with your supplied credentials. Please check and try again"

This is a known issue (https://github.com/getferdi/server/issues/38). Unfortunately, Franz seems to have recently made some changes to its servers which causes our Import Tool to break. We hope to fix this in the next weeks.


Added functionality of populating text inputs by pasted a code from a clipboard.

I suggest using fork: react-native-confirmation-code-field, with :heavy_check_mark: long term support!


Intercept hardware button events completely?

Hi,
Is it possible to intercept events generated by hardware buttons completely? For example if the app is active and volume up/down button is pressed, is it possible to intercept that event in the app handle it in the app specific way and most importantly prevent it from being acted upon further by the system so that the default behaviour that actually turns the volume up/down and displays the system dialog/popup showing the volume going up/down would not happen?
Thanks in advance for your reply!
K.

Hello @hicnar !
Yeah actually, this implementation was a to-do but was delaying on it cause we thought there was no demand for this.
Since we now know you want it, we can start working on it.
However, this would only be possible on Android and not on iOS.
I'll let you know when we're done with this.
Thanks!

Thanks for replying! Why is it not possible on iOS?

As far as we saw, there was no way to block default behaviors on iOS.
If you know any, please let us know.

Hello @hicnar ,
We'll start working on it this weekend.
Just to let you know :)

same issue

Same issue here does anyone have a solution for this?

Same issue here does anyone have a solution for this?

@HasanEltantawy & @bahador-r
For Android, the solution is implementing onKeyUp/Down in the way shown below. There's no viable solution for iOS as Apple explicitly bans applications that attempt to intercept or amend the default hardware buttons functionality.
class MainActivity: FlutterActivity() {

  override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
      super.onKeyDown(keyCode, event)
      return true
  }

  override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
      super.onKeyUp(keyCode, event)
      return true
  }
}

@HasanEltantawy & @bahador-r
For Android, the solution is implementing onKeyUp/Down in the way shown below. There's no viable solution for iOS as Apple explicitly bans applications that attempt to intercept or amend the default hardware buttons functionality.
class MainActivity: FlutterActivity() {

  override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
      super.onKeyDown(keyCode, event)
      return true
  }

  override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
      super.onKeyUp(keyCode, event)
      return true
  }
}

@hicnar I tried to implement that code in MainActivity.java but it the compiler throw these errors bleow
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:7: error: ';' expected
    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
                ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:7: error: invalid method declaration; return type required
    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
                 ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:7: error: <identifier> expected
    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
                                  ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:7: error: ';' expected
    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
                                   ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:7: error: illegal start of type
    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
                                       ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:7: error: ';' expected
    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
                                              ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:7: error: <identifier> expected
    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
                                                        ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:7: error: illegal start of type
    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
                                                         ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:7: error: <identifier> expected
    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
                                                          ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:7: error: ';' expected
    override fun onKeyDown(keyCode: Int, event: KeyEvent?):  Boolean {
                ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:12: error: invalid method declaration; return type required
    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
                 ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:12: error: <identifier> expected
    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
                                ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:12: error: ';' expected
    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
                                 ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:12: error: illegal start of type
    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
                                     ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:12: error: ';' expected
    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
                                            ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:12: error: <identifier> expected
    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
                                                      ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:12: error: illegal start of type
    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
                                                       ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:12: error: <identifier> expected
    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
                                                        ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:12: error: ';' expected
    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
                                                         ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:13: error: ';' expected
        super.onKeyUp(keyCode, event)
                                     ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:14: error: ';' expected
        return true
                   ^
24 errors

@hicnar I tried to implement that code in MainActivity.java but it the compiler throw these errors bleow
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:7: error: ';' expected
    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
                ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:7: error: invalid method declaration; return type required
    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
                 ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:7: error: <identifier> expected
    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
                                  ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:7: error: ';' expected
    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
                                   ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:7: error: illegal start of type
    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
                                       ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:7: error: ';' expected
    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
                                              ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:7: error: <identifier> expected
    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
                                                        ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:7: error: illegal start of type
    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
                                                         ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:7: error: <identifier> expected
    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
                                                          ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:7: error: ';' expected
    override fun onKeyDown(keyCode: Int, event: KeyEvent?):  Boolean {
                ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:12: error: invalid method declaration; return type required
    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
                 ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:12: error: <identifier> expected
    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
                                ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:12: error: ';' expected
    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
                                 ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:12: error: illegal start of type
    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
                                     ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:12: error: ';' expected
    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
                                            ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:12: error: <identifier> expected
    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
                                                      ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:12: error: illegal start of type
    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
                                                       ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:12: error: <identifier> expected
    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
                                                        ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:12: error: ';' expected
    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
                                                         ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:13: error: ';' expected
        super.onKeyUp(keyCode, event)
                                     ^
\android\app\src\main\java\com\hassaneltantawy\hisnelmoslem\MainActivity.java:14: error: ';' expected
        return true
                   ^
24 errors

I make it like this and it run but the problem is still there the volume go up and down wen i press it
package com.hassaneltantawy.hisnelmoslem;
import android.view.KeyEvent;
import io.flutter.embedding.android.FlutterActivity;

public class MainActivity extends FlutterActivity {

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
         super.onKeyDown(keyCode, event);
        return true;
    }

    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
         super.onKeyUp(keyCode, event);
        return true;
    }

}

I make it like this and it run but the problem is still there the volume go up and down wen i press it
package com.hassaneltantawy.hisnelmoslem;
import android.view.KeyEvent;
import io.flutter.embedding.android.FlutterActivity;

public class MainActivity extends FlutterActivity {

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
         super.onKeyDown(keyCode, event);
        return true;
    }

    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
         super.onKeyUp(keyCode, event);
        return true;
    }

}

@HasanEltantawy My code sample was in Kotlin and you've go Java there, sorry should have mentioned it. Anyway that's pretty bizarre there should be no difference if it's Java or Kotlin. Did you try to put that code in a new project, just to explore if it works or you placed it in the project where you actually need it to work? If I were you I would create a new project with minimal amount of code and experiment on it a bit. If possible generate a new project with Android backed by Kotlin.

@HasanEltantawy My code sample was in Kotlin and you've go Java there, sorry should have mentioned it. Anyway that's pretty bizarre there should be no difference if it's Java or Kotlin. Did you try to put that code in a new project, just to explore if it works or you placed it in the project where you actually need it to work? If I were you I would create a new project with minimal amount of code and experiment on it a bit. If possible generate a new project with Android backed by Kotlin.

Ok I'll try to do that with anew project. I hope it'll work
thanks @hicnar

Ok I'll try to do that with anew project. I hope it'll work
thanks @hicnar

Even with new app and also implementing kotlin code the problem is still existing. @hicnar

Even with new app and also implementing kotlin code the problem is still existing. @hicnar

@HasanEltantawy I have just modified the MainActivity.kt in my little template project that I use for recreate flutter issues I occasionally find and submit (the project is called fluttery_stuff).
Go ahead, clone it and run on your Android device. I can confirm that once I tested that just a few minutes ago, the hardware buttons (volume up/down) were fully intercepted and pressing them did not result in displaying the volume bar on my Samsung S9. The class you can run is https://github.com/hicnar/fluttery_stuff/blob/main/lib/dialogs/main.dart

@hicnar On my Samsung Galaxy S7 the implementation is working, too.
Here you can see the source code of @hicnar's Android implementation (Kotlin).


(maint) change migrate trgm message to refer to 9.4

Previously this gave the impression that 9.3 was allowed.

Refer to this link for build results (access rights to CI server needed):
http://jenkins-enterprise.delivery.puppetlabs.net/job/enterprise_puppetdb_init-multijob_githubpr-stable/9/
Test PASSed.


recording actions with VS feedback tool does not record video

@madskristensen
IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off
/cc @jasonchlus


Version2 runoff et

Finished runoff_et port. Results are very similar to version 1. Changes are due to a) difference in remapping tools (iris vs cdo) and b) update of reference values. Still, the issue of how to distribute the catchment.nc files is (to my knowledge) not resolved. Please find a copy attached
catchments.zip. Also I am not aware of how to read in the catchment file in such a way, that the pre-processor can be used to remap the experiments onto the catchment grid. Thus, this is done in the diagnostic routine (catchment_analysis.py).

Hi Tobias,
thanks for this! I'll do a proper review, for now I just want to mention that you can include in your pull request description for example closes #663. Like this not only do we have the link to the discussion here, but also github will know to close the issue one this pr is merged.
Also, I'd like to add a pointer to #670 here. It was already mentioned in the discussion of the issue, but I think it is still a little bit up in the air.
Finally, a general comment about the code. It looks very clean and nicely laid out and it's great that you already included all the documentation!
However, your methods are too long. My personal rule of thumb is that no method should be longer than 40 lines of code. Of course, there is the occasional exception to the rule, but eg your make_catchment_plots routine is far too monolithic. All those blocks following a comment of the form
# 1. Barplots for single variables

should be functions of their own rights. Then you probably want at least one function that ties all of those together for one model and maybe that can be called from the make_catchment_plots function so that this becomes much more compact and it gets actually possible to read the nested loops, grasping the meaning of the different indentations in one go.
This will also eliminate a lot of whitespace at the line beginnings and thus help keep the line breaks within statements to a minimum.
Cheers
Klaus

Hi Klaus,
thanks a lot for the comments, that is really helpful! One question: how does the revision work in a technical way? I started to put stuff in functions to reduce the linebreaks and whitespace. Do I afterwards just commit the changes or do I have to make another pull request?

No need for another pull request. Once you commit the changes and push them to this branch, this pull request will automatically be updated.

Can you please address the issues reported by Codacy? Just click the 'Details' link below, behind the Codacy icon.
Most formatting issues can be fixed automatically by running two following two commands:
isort esmvaltool/diag_scripts/runoff_et/catchment_analysis.py
yapf -i esmvaltool/diag_scripts/runoff_et/catchment_analysis.py

This will also ensure that the code is formatted in a way that is consistent with the rest of esmvaltool source code.
Would it be possible to publish you catchment file on Zenodo, as suggested in #670?

@bouweandela I had a look at the catchment selection in #700 . It is true, both aim to extract grid cells belonging to a specific catchment. However, the procedure as well as the prerequisites differ strongly: I define the catchments in a netCDF file and thus have to remap the experiment data to the catchment grid while masking out cells not belonging to a given catchment. Instead Peter compares the boundary of the catchment polygons directly against the grid cell locations (assuming I read his code correctly). Thus, I'd say there is a certain overlap in purpose, but not so much in the method.

Thank you for the explanation and cleaning up the code.

Would it be possible to publish you catchment file on Zenodo, as suggested in #670?

Did you look into this option yet?

I had a look at Zenodo and this appears to be a reasonable option. However, I am currently talking to DKRZ to see whether it is possible to publish the file there. It would be the more natural option for us as they store all our other stuff as well. I'll try to sort this out as soon as possible.

The catchment mask is now publish at zenodo (https://doi.org/10.5281/zenodo.2025775). How to proceed from here? Unfortunately, I am not aware how to implement this in the recipe.

Great, I think this is a very good start, as anyone who wants to use the recipe can now download it from there. We will probably implement automatic downloading in the future, so if you add a short note to the recipe with the zenodo download link, that should be fine for now.

I added the links to the documentation. Is there anything else, I need to take care of?

Is this Codacy issue something that needs a fix? I cannot reproduce the problem locally and I am anyway confused how it can complain about 'Similar lines in 2 files' while having an issue with only one file.


Hide Blocks fields in Layout fieldset in Add/Edit form

The blocks and blocks_layout fields are visible in the Add/Edit form of content that has the Pastanaga editor enabled. These fields should not be visible there, because they are used and modified by the Pastanaga editor itself.

❤ We were tempted to do so in Plone but they are extremely useful to have them there.


Remove (comment) default objects

Details
Describe the solution you'd like:
As a remnant from the old KaH library a number of objects are present in the values.yaml by default so that helm-docs would generate the value descriptions in the README:

A controllers.main.containers.main container / controller
A service.main Service
A ingress.main Ingress
A persistence.config item
And perhaps some other stuff as well

These should be removed and put in some form of documentation instead:

values.yaml comments
JSON schema
Site docs

Anything else you would like to add:
Current thinking is to put this in a JSON schema and potentially have this render into the README
Relates to:

#123
#205

Is the idea to remove the built-in main objects so we don't have to set controllers.main.enabled=false if we want to use other names besides main?

My issue is probably related to this, so I'm adding this as comment here. If I disable the main controller, it seems that it exposes a few suboptimal default statements which would need some fixing.
 Warning  error   26s   helm-controller  Helm install failed: template: app-template/templates/common.yaml:14:3: executing "app-template/templates/common.yaml" at <include "bjw-s.common.loader.generate" .>: error calling include: template: app-template/charts/common/templates/loader/_generate.tpl:8:6: executing "bjw-s.common.loader.generate" at <include "bjw-s.common.render.controllers" .>: error calling include: template: app-template/charts/common/templates/render/_controllers.tpl:37:12: executing "bjw-s.common.render.controllers" at <include "bjw-s.common.class.statefulset" (dict "rootContext" $ "object" $statefulsetObject)>: error calling include: template: app-template/charts/common/templates/classes/_statefulset.tpl:32:67: executing "bjw-s.common.class.statefulset" at <$statefulsetObject.statefulset.podManagementPolicy>: nil pointer evaluating interface {}.podManagementPolicy

Source: https://github.com/samip5/k8s-cluster/blob/6c189bfdb5343ef0c8114deded92c661148078f0/k8s/nebula/apps/default/immich/app/hr.yaml
https://github.com/bjw-s/helm-charts/blob/main/charts/library/common/templates/classes/_statefulset.tpl#L32


Fix electra sanity testgen for blocks

@tersec pointed out on Discord that tests still passed without the new process_ops calls.

If I leave off from [modified process_operations lines], all the EF consensus spec alpha.6 tests Nimbus runs pass. Are there tests which are supposed to detect this?

This is because we forgot to add from .test_blocks import * to __init__.py here:
https://github.com/ethereum/consensus-specs/blob/0c5ad81145fea58504b6db9e8c73214a9fcb331a/tests/core/pyspec/eth2spec/test/electra/sanity/blocks/__init__.py#L1
This is a new pattern and I'm not really a fan of it. I would prefer to keep using the old pattern which does not require an up-to-date init file. This PR deletes the new blocks module and reverts the mods code to match other phases. See:
https://github.com/ethereum/consensus-specs/blob/0c5ad81145fea58504b6db9e8c73214a9fcb331a/tests/generators/sanity/main.py#L6-L9
Note, there would be a new deposit_transition section in the test vectors. I believe this is fine.

Thank you!
test_deposit_transition.py file is an extension of test_blocky.py. I think it was a nice categorization that helped the readability of these sanity block tests.
The sanity/block/__init__.py change was a hack to allow the test_deposit_transition file to reuse the sanity/block test format without editing the test format documents. If we use ../electra/sanity/deposit_transition/pyspec_tests/deposit_transition__* as the new file path, clients may need to add the new path manually.
Perhaps we can maintain the folder structure used in this PR and apply some adjustments in the sanity/main.py so that clients won't see the path change? 🤔

The sanity/block/__init__.py change was a hack to allow the test_deposit_transition file to reuse the sanity/block test format without editing the test format documents. If we use ../electra/sanity/deposit_transition/pyspec_tests/deposit_transition__* as the new file path, clients may need to add the new path manually.

Oh I see. Hmm yeah that makes sense.

Perhaps we can maintain the folder structure used in this PR and apply some adjustments in the sanity/main.py so that clients won't see the path change? 🤔

Yes, let me try this. We could also just add the import to __init__.py.


Compact Deploy

Compact Deploy
Changed the deploy scripts to be more compact
Description

Describe here your pull request modifications
It could be more than one thing

How to Test

Run both ganache-cli
Run the integration tests

Case 1

Go to bridge directory

$~ cd bridge

Run the first ganache-cli

$~ npm run ganache

Open another shell and run the ganache mirror

$~ npm run ganache-mirror

Deploy the contracts to both chains

$~ npm run deployIntegrationTest

Go to the federator directory

$~ cd ../federator

Run the Integration tests

$~ npm run integrationTest

Expected Result

It should pass the test

Checklist
Bridge Directory cd bridge

[x] Lint is clean npm run lint
[x] Test is passing npm run test
[x] Contracts are compiling npm run compile

Federator Directory cd federator

[x] Lint is clean npm run lint
[x] Test is passing npm run test
[x] Typescript is compiling npm run build

Coverage remained the same at 63.39% when pulling 7e9868219edb28f0ed8bb81f314f681ff04ed402 on nftbridge-compact-deploy into a69b106b20e1a03c70d3bd5173f3d1b61d58b415 on nftbridge.

Still need to check the coverage stuff

Still need to check the coverage stuff

@marcciosilva @pmprete Maybe, we should add test to the rest of the contracts or, do you guys think we should add the rest of the contract versions to the coverage skip files


pkg/ipcache: Updates IPListEntrySlice.Less() to Use netip Pkg

Previously, the Less() method used the net/ip and bytes packages to sort the IPListEntry objects by CIDR prefix and then IP address. This PR updates the method to remove both packages in favor of the net/netip package.
Related: #24246

/test

/test


As a developer I want to have common set of labels over all my projects.

Now i have to manually create labels for all the projects. As a user would like to reuse my predefined label set across all the project

provide set of labels to reuse across
-reuse labels from existing project

Hei, I will work on that issue :)

Great !

PR is for the first bulletpoint - provide set of labels to reuse across
i will work on the second bulletpoint now :)

soooo :) second PR for this issue is up - both PRs (#22 & #23 ) works independently - both Branches are from master - maybe there will be merge-conflicts when one of them makes his way in the master - we will see :)
I really like this tool!!!

Since we keep adding nice features to project we decided to rename the project
https://github.com/99xt/github-manager-cli

@codingCookie Maybe you can add this feature to readme as well, under usage

@charithsoori oh yeah I will do that later today :)

@charithsoori I looked into it, but I haven't implement an own command for this - it's just a question during the 'process' should we change this, to start the cli with a specific command for every feature?


[WIP] Proteore Venn diagram tool - Version 20210512

Hello,
Another ProteoRE tool for the review.
Thanks !

@combesf do you want to review these PRs gradually or when you have them all together?
You have a few things that apply to all tools.
Also do you know https://github.com/galaxyproject/galaxy-language-server ... this is very handy and helps you by formating the tools and catching some common errors.

@bgruening review the PR gradually is ok for us, if it is ok for you.
Thanks for the tip, I'll take a look !


fix bbox get_height and get_width

value of get_width and get_height are absolute to not get negative value of height and width
if side boundaries are overlapping, we return get_width value as 1

Input to recreate the bug:
06150003.json.gz
06190003.json.gz

can you give an example of a box in the json file that has a negative width or height? that's very strange... my initial reaction is to think that this might be a side effect of the space insertion but I might be wrong

this bug arises in get_avg_bbox_height(self, bboxes) method of the OCRFormatter class, line 123 of ocr.py

can you copy-paste the json of the box as a comment in this PR please?

{
"textAnnotations": [
{
"locale": "und",
"description": "\u0f53\n\u0f0b\n\u0f42 \u0f42",
"boundingPoly": {
"vertices": [
{
"x": 816,
"y": 388
},
{
"x": 3635,
"y": 388
},
{
"x": 3635,
"y": 672
},
{
"x": 816,
"y": 672
}
],
"normalizedVertices": []
},
"mid": "",
"score": 0.0,
"confidence": 0.0,
"topicality": 0.0,
"locations": [],
"properties": []
},
{
"description": "\u0f53",
"boundingPoly": {
"vertices": [
{
"x": 880,
"y": 388
},
{
"x": 880,
"y": 411
},
{
"x": 817,
"y": 411
},
{
"x": 817,
"y": 388
}
],
"normalizedVertices": []
},
"mid": "",
"locale": "",
"score": 0.0,
"confidence": 0.0,
"topicality": 0.0,
"locations": [],
"properties": []
},
{
"description": "\u0f0b",
"boundingPoly": {
"vertices": [
{
"x": 3636,
"y": 520
},
{
"x": 3636,
"y": 529
},
{
"x": 3609,
"y": 529
},
{
"x": 3609,
"y": 520
}
],
"normalizedVertices": []
},
"mid": "",
"locale": "",
"score": 0.0,
"confidence": 0.0,
"topicality": 0.0,
"locations": [],
"properties": []
},
{
"description": "\u0f42",
"boundingPoly": {
"vertices": [
{
"x": 884,
"y": 574
},
{
"x": 884,
"y": 604
},
{
"x": 832,
"y": 604
},
{
"x": 832,
"y": 574
}
],
"normalizedVertices": []
},
"mid": "",
"locale": "",
"score": 0.0,
"confidence": 0.0,
"topicality": 0.0,
"locations": [],
"properties": []
},
{
"description": "\u0f42",
"boundingPoly": {
"vertices": [
{
"x": 884,
"y": 611
},
{
"x": 884,
"y": 672
},
{
"x": 832,
"y": 672
},
{
"x": 832,
"y": 611
}
],
"normalizedVertices": []
},
"mid": "",
"locale": "",
"score": 0.0,
"confidence": 0.0,
"topicality": 0.0,
"locations": [],
"properties": []
}
],
"fullTextAnnotation": {
"pages": [
{
"width": 4344,
"height": 1046,
"blocks": [
{
"boundingBox": {
"vertices": [
{
"x": 880,
"y": 388
},
{
"x": 880,
"y": 411
},
{
"x": 817,
"y": 411
},
{
"x": 817,
"y": 388
}
],
"normalizedVertices": []
},
"paragraphs": [
{
"boundingBox": {
"vertices": [
{
"x": 880,
"y": 388
},
{
"x": 880,
"y": 411
},
{
"x": 817,
"y": 411
},
{
"x": 817,
"y": 388
}
],
"normalizedVertices": []
},
"words": [
{
"boundingBox": {
"vertices": [
{
"x": 880,
"y": 388
},
{
"x": 880,
"y": 411
},
{
"x": 817,
"y": 411
},
{
"x": 817,
"y": 388
}
],
"normalizedVertices": []
},
"symbols": [
{
"property": {
"detectedBreak": {
"type": 5,
"isPrefix": false
},
"detectedLanguages": []
},
"boundingBox": {
"vertices": [
{
"x": 880,
"y": 388
},
{
"x": 880,
"y": 411
},
{
"x": 817,
"y": 411
},
{
"x": 817,
"y": 388
}
],
"normalizedVertices": []
},
"text": "\u0f53",
"confidence": 0.7286599
}
],
"confidence": 0.7286599
}
],
"confidence": 0.7286599
}
],
"blockType": 1,
"confidence": 0.7286599
},
{
"boundingBox": {
"vertices": [
{
"x": 3636,
"y": 520
},
{
"x": 3636,
"y": 529
},
{
"x": 3609,
"y": 529
},
{
"x": 3609,
"y": 520
}
],
"normalizedVertices": []
},
"paragraphs": [
{
"boundingBox": {
"vertices": [
{
"x": 3636,
"y": 520
},
{
"x": 3636,
"y": 529
},
{
"x": 3609,
"y": 529
},
{
"x": 3609,
"y": 520
}
],
"normalizedVertices": []
},
"words": [
{
"boundingBox": {
"vertices": [
{
"x": 3636,
"y": 520
},
{
"x": 3636,
"y": 529
},
{
"x": 3609,
"y": 529
},
{
"x": 3609,
"y": 520
}
],
"normalizedVertices": []
},
"symbols": [
{
"property": {
"detectedBreak": {
"type": 5,
"isPrefix": false
},
"detectedLanguages": []
},
"boundingBox": {
"vertices": [
{
"x": 3636,
"y": 520
},
{
"x": 3636,
"y": 529
},
{
"x": 3609,
"y": 529
},
{
"x": 3609,
"y": 520
}
],
"normalizedVertices": []
},
"text": "\u0f0b",
"confidence": 0.6573698
}
],
"confidence": 0.6573698
}
],
"confidence": 0.6573698
}
],
"blockType": 1,
"confidence": 0.6573698
},
{
"boundingBox": {
"vertices": [
{
"x": 884,
"y": 574
},
{
"x": 885,
"y": 672
},
{
"x": 833,
"y": 672
},
{
"x": 832,
"y": 574
}
],
"normalizedVertices": []
},
"paragraphs": [
{
"boundingBox": {
"vertices": [
{
"x": 884,
"y": 574
},
{
"x": 885,
"y": 672
},
{
"x": 833,
"y": 672
},
{
"x": 832,
"y": 574
}
],
"normalizedVertices": []
},
"words": [
{
"boundingBox": {
"vertices": [
{
"x": 884,
"y": 574
},
{
"x": 884,
"y": 604
},
{
"x": 832,
"y": 604
},
{
"x": 832,
"y": 574
}
],
"normalizedVertices": []
},
"symbols": [
{
"property": {
"detectedBreak": {
"type": 1,
"isPrefix": false
},
"detectedLanguages": []
},
"boundingBox": {
"vertices": [
{
"x": 884,
"y": 574
},
{
"x": 884,
"y": 604
},
{
"x": 832,
"y": 604
},
{
"x": 832,
"y": 574
}
],
"normalizedVertices": []
},
"text": "\u0f42",
"confidence": 0.99997324
}
],
"confidence": 0.99997324
},
{
"boundingBox": {
"vertices": [
{
"x": 884,
"y": 611
},
{
"x": 884,
"y": 672
},
{
"x": 832,
"y": 672
},
{
"x": 832,
"y": 611
}
],
"normalizedVertices": []
},
"symbols": [
{
"property": {
"detectedBreak": {
"type": 5,
"isPrefix": false
},
"detectedLanguages": []
},
"boundingBox": {
"vertices": [
{
"x": 884,
"y": 611
},
{
"x": 884,
"y": 672
},
{
"x": 832,
"y": 672
},
{
"x": 832,
"y": 611
}
],
"normalizedVertices": []
},
"text": "\u0f42",
"confidence": 0.99940836
}
],
"confidence": 0.99940836
}
],
"confidence": 0.9996908
}
],
"blockType": 1,
"confidence": 0.9996908
}
],
"confidence": 0.79524016
}
],
"text": "\u0f53\n\u0f0b\n\u0f42 \u0f42"
},
"faceAnnotations": [],
"landmarkAnnotations": [],
"logoAnnotations": [],
"labelAnnotations": [],
"localizedObjectAnnotations": []
}

thanks! can you tell me which one of these coordinates is supposed to have an height of 0?

I will recreate the bug and send you the screen shot of it.

I don't doubt that there's a division by 0 error, but I think the change you made is just a small patch on what might be a larger issue, so I think we should really understand where the issue comes from because none of the boxes have an height of 0 so there's no reason why there would be a division by 0

Looking at the data again, I think this might come from the coordinates set in a bbox is not always in the same order. For instance at the beginning you have:
                "vertices": [
                    {
                        "x": 816,
                        "y": 388
                    },
                    {
                        "x": 3635,
                        "y": 388
                    },
                    {
                        "x": 3635,
                        "y": 672
                    },
                    {
                        "x": 816,
                        "y": 672
                    }
                ],

so the order is
43
12

but then you have the more usual pattern:
"vertices": [
                                                        {
                                                            "x": 884,
                                                            "y": 611
                                                        },
                                                        {
                                                            "x": 884,
                                                            "y": 672
                                                        },
                                                        {
                                                            "x": 832,
                                                            "y": 672
                                                        },
                                                        {
                                                            "x": 832,
                                                            "y": 611
                                                        }
                                                    ],

which is
32
41

so I think the issue is in this lines of code that assume the second structure and get the wrong coordinates for the first type (giving a height of 0)

oh ok. Do you remember cases where it didn't work?

After a discussion with @ngawangtrinley it turns out that this box orientation wasn't discovered before so we should run some tests on it. BBox should have an angle integer value between 0 (the default) and 359 (so no negative values), and it should be filled with the value detected from the coordinates order. @ta4tsering do you see what needs to be done?

@eroux in order to detect the orentation we are seeing two pattern as you have mentioned above. but sometimes the x coordinates are not exactly same. for some cases they are having +-1 or 2 but sometimes its more than that. hence i think we need to come up with a technique to compute the threshold n proceed.
Example:
"boundingBox": {
                                    "vertices": [
                                        {
                                            "x": 284,
                                            "y": 324
                                        },
                                        {
                                            "x": 1258,
                                            "y": 323
                                        },
                                        {
                                            "x": 1258,
                                            "y": 617
                                        },
                                        {
                                            "x": 284,
                                            "y": 618
                                        }
                                    ],
                                    "normalizedVertices": []
                                },
                                "words": [
                                    {
                                        "boundingBox": {
                                            "vertices": [
                                                {
                                                    "x": 284,
                                                    "y": 344
                                                },
                                                {
                                                    "x": 321,
                                                    "y": 343
                                                },
                                                {
                                                    "x": 323,
                                                    "y": 462
                                                },
                                                {
                                                    "x": 287,
                                                    "y": 463
                                                }
                                            ],

@kaldan007 I don't understand your comment, what do you mean?
this pr is replaced by #214


Add hide kwarg to all widgets

That way we can hide dimensions/metrics/referenced metrics. That makes sense in a few cases, like when using hyperlink templates in ReactTable but not wanting to display dependencies, when using references but wanting to display it for just a subset of the metrics or the counterpart.
This PR also introduces, DaysOverDays, WeeksOverWeeks, MonthsOverMonths, QuartersOverQuarters, and YearsOverYears as ReferenceType builders, which accept a custom interval. The original DayOverDay and so on are now relying on those newly created ReferenceType builders.

Coverage increased (+0.1%) to 93.248% when pulling f0d1dd28d4d69f23a724978ab2d786c928ca9a2d on add-hide-kwarg-to-all-widgets into 0ef35373aa9c622a3dd46985bf6d4227783de56e on master.


Serialize the fields in the components without the reference

@PerthCharern
I saw your change as below
https://github.com/Microsoft/OpenAPI.NET/commit/95c4b54d2d3fd615d9b2dbf92295aa23b2a2bf95#diff-91f82d686ea4bf00789d3381faa2475b
It will write the fix fields in the components without the reference if the component is reference. for example:
OpenApiDocument document = new OpenApiDocument
{
        Components = new OpenApiComponents()
 };

 document.Components.Schemas = new Dictionary<string, OpenApiSchema>
  {
         {
              "Edm.Geography",
               new OpenApiSchema
               {
                      Reference = new OpenApiReference
                      {
                              Type = ReferenceType.Schema,
                              Id = "Edm.Geometry"
                      }
               }
          }
 };

Then, if I serialize document as:
string a = document.SerializeAsJson(OpenApiSpecVersion.OpenApi3_0_0);

the a will have:
{
  "openapi": "3.0.0",
  "info": { },
  "paths": { },
  "components": {
    "schemas": {
      "Edm.Geography": { }
    }
  }
}

it should be:
{
  "openapi": "3.0.0",
  "info": { },
  "paths": { },
  "components": {
    "schemas": {
      "Edm.Geography": {
                "$ref": "#/components/schemas/...."
            }
    }
  }
}

@darrelmiller

This is a bug :(
It is an issue only for the case when a component is referencing to another component right at the first level, so in most cases, it should be okay. It's a little unusual for a component to refer to another component right away - that basically means they are a copy of each other.
We will need to fix this, but I don't think we need to label this as urgent. Thoughts?

It's actually not that uncommon.  Whenever someone has a slightly different model for doing a create/update/reader, they will often create the common core as a component and then reference it from the operation specific models.  I will look into it over the weekend as I continue working on the external references work.

This issue is quite unfortunate. I am thinking of a way to distinguish how we should write out a component.

If we see a Reference to itself

If the object (apart from the Reference section) is not empty, then just write the full object without $ref.
If the object (apart from the Reference section) is empty, then write this as $ref (This is Sam's example above.)

If we see a Reference to another object (This is the case Darrel and I mentioned above)

Always write as the full object

Oh, I didn't notice it was only at the top level.   That only happens where someone wants to create a local reference to a remote reference.  That's much less common.

@PerthCharern I don't think you can write a full object if the schema just contains a reference to another object.  That wouldn't work if it was an external reference.
Sam's example isn't a reference to itself.  It is the "Edm.Geography" component, pointing to the "Edm.Geography" component.
I think if the reference is to itself then you can write the full object.

I made a typo in my original suggestion:
It now reads:

If we see a Reference to another object (This is the case Darrel and I mentioned above)

Always write as $ref

And yes, I totally misread Sam's example (good thing I believe, so I could think of the edge case). In this case, Sam's case would be a Reference to another object. For this, we can default to writing a $ref.

I don't think we can always write full object if it references to itself.
Consider the example below.
 document.Components.Schemas = new Dictionary<string, OpenApiSchema>
  {
         {
              "X",
               new OpenApiSchema
               {
                      Reference = new OpenApiReference
                      {
                              Type = ReferenceType.Schema,
                              Id = "X"
                      }
               }
          }
 };

In this case, we need to write the $ref since that's what is given to us. This allows us to ensure that if the following string is given to our library in the components section, we can serialize it back to the same thing:
{
  "schemas":
  {
    "X":
    {
      "$ref": "#/components/schemas/X"
    }
  }
}

If there are any properties in the object like below, this indicates that this object has been added with reference from parsing the other parts of the document (because you can't start with both $ref and other properties, something not supported by the spec).
 document.Components.Schemas = new Dictionary<string, OpenApiSchema>
  {
         {
              "X",
               new OpenApiSchema
               {
                      Type = "object",
                      Reference = new OpenApiReference
                      {
                              Type = ReferenceType.Schema,
                              Id = "X"
                      }
               }
          }
 };

In the above example, we should serialize it as full object without the $ref. The only sensible way one could have arrived at this object is the X in components is defined with Type = "object" and then the object X is referred to from other parts. If one creates the document this way manually since the beginning, that looks like a mistake to me, so we can choose the most sensible way to serialize.
{
  "schemas":
  {
    "X":
    {
      "type": "object"
    }
  }
}

@PerthCharern
If you have:
 document.Components.Schemas = new Dictionary<string, OpenApiSchema>
  {
         {
              "X",
               new OpenApiSchema
               {
                      Reference = new OpenApiReference
                      {
                              Type = ReferenceType.Schema,
                              Id = "X"
                      }
               }
          }
 };

Why wouldn't you write it as:
{
"schemas":
{
"X":    {    }
}
}
Writing out a self-referencing component seems like a recipe for a stackoverflow.
The way you initially configured the object is exactly how regular schema objects are going to appear if they are read in from a file.  I don't see a reason for doing something different just because it was constructed manually.

As much as I don't understand why one would write the document below, it is fully supported by the spec. In that sense, our library should be able to parse this into an object and be able to serialize it back to the original string (if we choose the same format and version). At least that would be my expectation as a user.
{
  "schemas":
  {
    "X":
    {
      "$ref": "#/components/schemas/X"
    }
  }
}

If we write it with empty object, then it seems to me like we are saying we are not recognizing this original string above as valid, even though it is technically valid according to the spec.

And for the second point, I think I was unclear. I am all for being agnostic to the way the object was constructed. I was giving a couple of examples of what that object could possible mean to illustrate my point that any component with a property that's not Reference should ALWAYS be written as a full object in Components.

All that said, this is where our model is ambiguous, isn't it?
 document.Components.Schemas = new Dictionary<string, OpenApiSchema>
  {
         {
              "X",
               new OpenApiSchema
               {
                      Reference = new OpenApiReference
                      {
                              Type = ReferenceType.Schema,
                              Id = "X"
                      }
               }
          }
 };

This can be constructed from either:

{
  "schemas":
  {
    "X":
    {
      "$ref": "#/components/schemas/X"
    }
  }
}

or 2.
{
  "schemas":
  {
    "X": {}
  }
}

Where #/components/schemas/X is referred to somewhere in the document.
If we just have the .NET object, we have no idea whether to serialize it to 1 or 2.
Maybe we need to change the way we deserialize referenced object, so that we don't hit this ambiguity. I don't see another way to deserialize 1, but maybe we can think about 2? Can we serialize it in a way that would not coincide with 1?

@PerthCharern I don't think we should make our lives difficult to support a construct that has no value.  Having a root level reference that points to itself makes it impossible to implement any other properties in the schema.  Therefore it is functionally identical to an empty schema.

That's fair. I can totally live with that :)
To summarize, I think the rule below captures what we need to support in Components:

If we don't see any reference, write full object. (Already supported)
If we see a Reference to itself, write the full object without $ref. (Already supported)
If we see a Reference to another object, always write as $ref (This needs work.)

Does this match your expectations?

This makes sense to me.

@PerthCharern @darrelmiller
I updated to beta009, this problem is still there. So, it's not fixed, Right?

Correct, this has not been fixed.


Clarify context of TEXTSIZE effects to just TDS

I read this document this morning because I was trying to troubleshoot SQL run through sqlcmd.
The current phrasing of intro to this document leads one to believe that:

TEXTSIZE number refers to the length of the string in characters (text)
TEXTSIZE could have destructive effects in server-side operations (which is not the case, as this example demonstrates):

USE Test;
CREATE TABLE dbo.TextSizeTest (
    varchar50 varchar(50),
    varcharMax varchar(max),
    nvarcharMax nvarchar(max)
    );
INSERT dbo.TextSizeTest
VALUES (
    'five5',
    'five5',
    'five5'
    );

SELECT * FROM dbo.TextSizeTest;

SET TEXTSIZE 2048;

SELECT @@TEXTSIZE AS [Text Size];

SET TEXTSIZE 4

SELECT @@TEXTSIZE AS [Text Size];
SELECT * FROM dbo.TextSizeTest

INSERT dbo.TextSizeTest
(
    varchar50,
    varcharMax,
    nvarcharMax
)
SELECT varchar50,
       varcharMax,
       nvarcharMax
FROM dbo.TextSizeTest

SET TEXTSIZE 2046;
SELECT * FROM dbo.TextSizeTest
DROP TABLE dbo.TextSizeTest;

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

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

@jzabroski, thanks for your contribution.
approved.
#sign-off

@jzabroski, thanks for your contribution.
approved.
#sign-off


Separate Alpha Blend Support

Since the adoption of Custom Render Pipelines camera stacking, UI Layering, etc is more in the hands of each developer.
However the proper way to blend a separately UI render after the fact is to clear a render target to a full clear color (black and alpha zero'ed), render all the UI on it with the preferred color blend mode BUT with the alpha channel always adding to the destination (separate alpha blend one one). This resulting image can then be combined properly to any other on top.
Describe the solution you'd like
The option to use a UI-Effect shader with separate alpha blending op option.
Describe alternatives you've considered
Can force it on the current shaders, but would probably be better to have official support from the library. Probabably behind a #define directive?
Additional context
The default alpha blending behavior is that the last element that draws leaves it's alpha value "burned" on the image. So if by any chance one of the last elements during UI rendering happens to be very low opacity, it will leave that low value on the part of the image that it covers. Later on when combining them, that low value will wrongly make it low opacity.

Hi @amartinez1660
Thank you for your feature request!


New native Version of QR-Codes seems harder to read.

Thanks for this phantastic package!
I noticed that the new version produces QR-Codes that are harder to read. Here is a sample I created to test this:

The code to generate the codes is here:
#[
  #import "@preview/codetastic:0.1.0"

  #h(1fr)
  #box[#codetastic.qrcode(width: 42pt, "Dies ist ein dichter QR-Code mit vielen Informationen")]
  #h(1fr)
]
#[
  #import "@preview/codetastic:0.2.0"

  #h(1fr)
  #box[#codetastic.qrcode(width: 42pt, "Dies ist ein dichter QR-Code mit vielen Informationen")]
  #h(1fr)
]

Any idea what´s wrong?

QR-Codes are masked with a masking pattern, to create a code that is easy to read for scanners. Version 0.2.0 of codetastic uses a simplified algorithm to calculate the best pattern, to speed up the creation process. But this approach will not always produce the most readable code (though they are correct qr-codes). Using the original algorithm did take considerable time for medium to large codes.
I'm thinking of ways to get better result while still keeping rendering times feasible. Maybe using the original algorithm up to a certain size and switching to the approximation for larger versions.
For now, you could set the masking pattern manually with the mask argument. You can get the best mask from online generators like this one.
In your example, mask: 2 is used by the linked generator (while mask: 6 is used in the first code generated by codetastic).

#[
  #import "@preview/codetastic:0.1.0"

  #h(1fr)
  #box[#codetastic.qrcode(width: 42pt, "Dies ist ein dichter QR-Code mit vielen Informationen")]
  #h(1fr)
]
#[
  #import "@preview/codetastic:0.2.0"

  #h(1fr)
  #box[#codetastic.qrcode(width: 42pt, "Dies ist ein dichter QR-Code mit vielen Informationen", mask:6)]
  #h(1fr)
]
#[
  #import "@preview/codetastic:0.2.0"

  #h(1fr)
  #box[#codetastic.qrcode(width: 42pt, "Dies ist ein dichter QR-Code mit vielen Informationen", mask:2)]
  #h(1fr)
]

Some other things I noticed in your screenshot:

The individual modules have a minimal border to mask the thin white lines the old codes had. But this might be a problem for small module sizes. I will look into this.
The alignment pattern (square with a black dot in the bottom right quadrant) seems to be off in the new version. I can still scan the code, though. That might be a result of the error correction working, but the pattern is not in the correct place and thus makes scanning even harder.

I just submitted version 0.2.2 that fixes the last two issues.
The masking pattern thing will take some more time to optimize the code.

Cool, I will look into it!
Thanks!

Great, Version 0.2.2 works perfectly. Reading occurs instantly!
The new code appears a lot smaller than in version 0.1.0, also both have a width of 42pt.
I do not think, that is a problem. I see this Issue solved.
Thanks again!

The smaller code size is intended. The sizing before was wrong, because the quiet zone (white space around the code) was ignored while calculating the size. The qr-code spec suggests to have a quiet-zone of at least four modules around the code.
If you want the actual codes to be 42pt, either set quiet-zone to 0 or set the width to 53.58pt, to take the quiet-zone into account.


Huge .y4m file size (~20–30 ✕ original)

The issue
source.y4m size: 284.3 G (305 255 244 908 bytes)

compressed.y4m size: 88.5 G (94 981 849 088 bytes)

Source size: 14.7 G (15 749 803 095 bytes)
Compressed size: 3.4 G (3 670 213 684 bytes)
Additional info
Eventually, vmafgui exits with
---------------------------
There was a problem with VMAF
---------------------------
Error reading YUV frame data.

problem reading pictures

problem flushing context

---------------------------
OK
---------------------------

the .y4m files are not deleted.

This is a known problem, y4m files are basically decompressed video files which are much bigger than regular compressed video. It's necessary for me to turn video into .y4m format before sending it to the vmaf cli. I'm currently working on rewriting this application to use libvmaf directly instead of via the CLI interface which should keep only the current frames under consideration in memory which should preserve disk space/memory

If I had to take a guess, I'd say it's likely that you ran out of disk space writing that second y4m file. because it's decompressed video the file size should be roughly the same assuming the resolution and framerate match between the two videos


Add BaseClass

Should have the listenTo, replyTo, complyTo functionality.
See #4

listenTo is part of Backbone.Events  Consider radioEvents radioRequests radioCommands

This is going to be resolved shortly likely for 2.5  https://github.com/marionettejs/backbone.marionette/pull/2431

We should just adopt this https://github.com/benmccormick/marionette-service  as an alternative for those who don't have first class support from what is soon to be built into Mn.


update_project_provisioning.rb:74:in block (2 levels) in run': \e[31m[!] undefined method []' for nil:NilClass\e[0m (NoMethodError)

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description

When using update_project_provisioning to set my development provisioning profile, it crashes because the script wasn't able to parse the provisioning profile.
Command executed

/usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/actions/update_project_provisioning.rb:74:in block (2 levels) in run': \e[31m[!] undefined method []' for nil:NilClass\e[0m (NoMethodError)
Complete output when running fastlane, including the stack trace and command used

 	30: from /usr/local/Cellar/fastlane/2.179.0/libexec/bin/fastlane:23:in `'
	29: from /usr/local/Cellar/fastlane/2.179.0/libexec/bin/fastlane:23:in `load'
	28: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/bin/fastlane:23:in `'
	27: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/cli_tools_distributor.rb:122:in `take_off'
	26: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/commands_generator.rb:41:in `start'
	25: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/commands_generator.rb:352:in `run'
	24: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/commander-fastlane-4.4.6/lib/commander/delegates.rb:15:in `run!'
	23: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:76:in `run!'
	22: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/commander-fastlane-4.4.6/lib/commander/runner.rb:476:in `run_active_command'
	21: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/commander-fastlane-4.4.6/lib/commander/command.rb:153:in `run'
	20: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/commander-fastlane-4.4.6/lib/commander/command.rb:178:in `call'
	19: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/commands_generator.rb:108:in `block (2 levels) in run'
	18: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle'
	17: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/lane_manager.rb:47:in `cruise_lane'
	16: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/runner.rb:45:in `execute'
	15: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/runner.rb:45:in `chdir'
	14: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
	13: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/lane.rb:33:in `call'
	12: from Fastfile:45:in `block (2 levels) in parsing_binding'
	11: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/fast_file.rb:159:in `method_missing'
	10: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/runner.rb:157:in `trigger_action_by_name'
	 9: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/runner.rb:229:in `execute_action'
	 8: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/runner.rb:229:in `chdir'
	 7: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/runner.rb:255:in `block in execute_action'
	 6: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/actions/actions_helper.rb:69:in `execute_action'
	 5: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/runner.rb:263:in `block (2 levels) in execute_action'
	 4: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/actions/update_project_provisioning.rb:49:in `run'
	 3: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/actions/update_project_provisioning.rb:49:in `each'
	 2: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/actions/update_project_provisioning.rb:57:in `block in run'
	 1: from /usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/actions/update_project_provisioning.rb:57:in `each'
/usr/local/Cellar/fastlane/2.179.0/libexec/gems/fastlane-2.179.0/fastlane/lib/fastlane/actions/update_project_provisioning.rb:73:in `block (2 levels) in run': \e[31m[!] undefined method `[]' for nil:NilClass\e[0m (NoMethodError)

Environment

?? fastlane environment ??
Stack

Key
Value

OS
10.15.7

Ruby
2.7.2

Bundler?
false

Git
git version 2.21.1 (Apple Git-122.3)

Installation Source
/usr/local/Cellar/fastlane/2.179.0/libexec/bin/fastlane

Host
Mac OS X 10.15.7 (19H2)

Ruby Lib Dir
<EMAIL_ADDRESS>

OpenSSL Version
OpenSSL 1.1.1i  8 Dec 2020

Is contained
false

Is homebrew
true

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode_11.3.1.app/Contents/Developer/

Xcode Version
11.3.1

System Locale

Error

No Locale with UTF8 found ??

fastlane files:
`./fastlane/Fastfile`

            default_platform(:ios)
                platform :ios do
                desc "Description of what the lane does"
                lane :build do
                    update_app_identifier(
                        plist_path:"Info.plist",
                        app_identifier:"com.pilotgames.gameclient",
                        xcodeproj:"Unity-iPhone.xcodeproj"
                    )
                    update_info_plist(
                        plist_path:"Info.plist",
                        display_name:"Pilot Head",
                        app_identifier:"com.pilotgames.gameclient"
                    )
                    set_info_plist_value(
                        path:"Info.plist",
                        key: "UIFileSharingEnabled",
                        value: true
                    )
                    set_info_plist_value(
                        path:"Info.plist",
                        key: "UIRequiresFullScreen",
                        value: true
                    )
                    set_info_plist_value(
                        path:"Info.plist",
                        key: "UIStatusBarHidden~ipad",
                        value: true
                    )
                    set_info_plist_value(
                        path:"Info.plist",
                        key:"CFBundleShortVersionString",
                        value: "<IP_ADDRESS>"
                    )
                    set_info_plist_value(
                        path:"Info.plist",
                        key:"CFBundleVersion",
                        value: "11"
                    )
                    update_project_team(
                        path:"Unity-iPhone.xcodeproj",
                        teamid:"ZZJJ4HBLFS"
                    )
                    update_project_provisioning(
                        xcodeproj:"Unity-iPhone.xcodeproj",
                        build_configuration:"Release",
                        code_signing_identity:"iPhone Distribution: Maxbet Group LLC",
                        certificate:"/Users/pilot/BuildAgent/work/84081a2600a41255/pulltab.ios/developer_certificates/enterprise/ios_distribution_devel1_enterprise.cer",
                        profile:"/Users/pilot/BuildAgent/work/84081a2600a41255/pulltab.ios/developer_certificates/enterprise/Pilot_Games_Head.mobileprovision"
                    )
                    build_app(
                        scheme:"Unity-iPhone",
                        clean:true,
                        include_bitcode:false,
                        export_options:{
                            method:"enterprise",
                            provisioningProfiles:{
                                "com.pilotgames.gameclient" => "Pilot Games Head"
                                }
                        }
                    )
                end
            end

No Appfile found
fastlane gems

Gem
Version
Update-Status

fastlane
2.179.0
?


Using @spec! allows calling private functions

I was surprised to find that adding @spec! to a private function exposes that function publicly.
defmodule Typetest do
  use TypeCheck

  @spec! hello :: any()
  defp hello, do: "world"
end

# This works...
Typetest.hello()

I noticed it when changing a public function to private and seeing that my test of the function still somehow worked.

Interesting.
This is definitely not intended behaviour.
I will ask about this upstream, because it feels to me like this (using a spec on a private function) should result in a compiler error by Elixir itself.

I don't think it's too common to add them to private functions, but I wouldn't expect a compile-time error when doing so. I haven't done it, but I've at least heard some of our devs lament that it might be easier to follow some of our complex flows if there were specs even on some private functions.
Perhaps some validation that specs on private functions should be allowed in TypeCheck?... https://github.com/elixir-lang/elixir/issues/3144#issuecomment-77678584


Switch to internal event for Monitor

@ajcvickers @pakrym
Fixes https://github.com/aspnet/Options/issues/204

Updated to use Action<TOptions> which cleans things up a bit

ff4200632970c53a3a6c860219d10477d74060d6


Typing error with yupResolver v3 and yup v1

Hello team!
I have the following type error when I'm trying to use yupResolver v3 and yup v1.
import * as yup from 'yup';
import { useForm } from 'react-hook-form';
import { yupResolver } from '@hookform/resolvers/yup';

const formSchema = yup.object({
  name: yup.string().required(),
});
type FormData = yup.InferType<typeof formSchema>;

export const Test = () => {
  const methods = useForm<FormData>({ resolver: yupResolver(formSchema) });

  return (

Test

  );
};

Can you provide a codesandbox with the issue please?

Hello @jorisre! I've just realized that there was a problem between my turborepo and the apps on it


Make sample data realistic

When the app is run without a data file, it populates with default sample data. Our current sample data is not very realistic. We could instead make it more believable (less duplication, less stuff like "example", more variance in tag/alternate counts etc), which also makes updating to new Ui.pngs easier, since we can just use the sample data directly.
This would make for better product screenshots, based on these tips: https://nus-cs2103-ay2324s1.github.io/website/admin/tp-deliverables.html#website-ui-png:~:text=Some common sense tips for a good product screenshot
JSONs and tests may need to be updated accordingly. We could also update the commands' help text and UG to be merged and more in line with the sample data.

We could also update the commands' help text and UG to be merged and more in line with the sample data.

This part may also be important. For consistency between UG & output window text, such as param format. I don't think we can edit the messages once feature freeze is in effect.


Removal of for "generic" Sort By and Sort Direction labels

Describe the bug
I just updated to 1.6.6 to resolve a found issue with the tagging overlaps, and I noticed that the generic Sort By and Sort Direction were removed, which I do like. Unfortunately, on my site, I've had to set up my files to sort by Title rather than one of the available options. As a result of removing Sort By, I now see Unknown on load. Is there a reason why Title can't be included in the sort options or another way I can get a default label rather than Unknown?
Environment

AEM Version: 6.3.3
Asset Share Commons Version: 1.6.6
Author, Publish or both? Both

To Reproduce
Steps to reproduce the behavior:

Go to Assets list page.
Scroll down to Sort drop downs.
When using custom sort order, set to Title, without Sort By default, Unknown is displayed.

Expected behavior
I would like to see Title or be able to add a default like what was removed.
Screenshots

Hi @juliaetate - a quick fix would be to add the Title property to the Sort component's list of options (and make sure it maps to the property selected as Default Sort By in the Results component) ...
It seems a bit odd that you'd start with a default sort that you can't get back to after changing the sort? Maybe im missing something?
The problem is the sortable properties dont have any real "natural" labels (theyre just ordered JCR properties in the damAssetLucene index), so you have to specify them in the components... If this it's a compelling use case, we could look to add a "Sort By Label" in the Results so you could add it there.. but it seems rather odd to me you wouldnt want to make the default available in the dropdown as well.
Let me know what you think!

@juliaetate any thoughts on this?

My default sort has been added to the drop down. The problem is that on load, it shows as Unknown on load because it's not automatically mapped. In the previous version, it would show Sort which prevented this issue, but the update changed it to show just from what it could map to from the initial options provided in Asset Share Commons.

@juliaetate did you have a chance to review this? We are planning on releasing 1.6.10 tomorrow AM - ideally, if this is an issue, we'd get a fix out for it.

@davidjgonzalez I've modified my default search to use Title, which isn't an option that has been provided. Is there a reason that Title isn't available from programming?

Only properties marked as Orderable in the damAssetLucene index are exposed in the drop-down. This is to prevent you from picking slow properties and incurring unexpected performance issues at scale. If you want to sort on a property, it should be marked as Orderable - which may require you to talk to your Dev/Ops team.

@davidjgonzalez Sorry for the delayed response. I can't pick an unorderable property from the Results component, but I have to sort my assets in alphabetical order for my requirements. I just don't have a way to stop the default from showing Unknown. Thanks so much for adding an option that will prevent this! I'm excited to get the next update!


Question: How to scroll to a view within the nestedScrollView ?

Suppose I need to scroll to an inner view somewhere inside the nestedScrollView (including the resizing of the upper area, of course) , how do I do it?
It should work very similar to what this sample of the repo do it, but instead of scrolling in a number, scroll to a view.
I want to know how to do it with and without the scrolling animation.
I'm currently using this, but I'm not sure if that's the best way to do it:
    final NestedScrollView nestedScrollView = ...
    final View viewToScrollTo = ...
    runJustBeforeBeingDrawn(viewToScrollTo, new Runnable() {
        @Override
        public void run() {
            nestedScrollView.startNestedScroll(2);
            final int top = viewToScrollTo.getTop();
            nestedScrollView.setScrollY(top);
            nestedScrollView.dispatchNestedPreScroll(0, top, null, null);
            nestedScrollView.dispatchNestedScroll(0, 0, 0, top, null);
            nestedScrollView.stopNestedScroll();
        }
    });

public static void runJustBeforeBeingDrawn(final View view, final Runnable runnable) {
    final OnPreDrawListener preDrawListener = new OnPreDrawListener() {
        @Override
        public boolean onPreDraw() {
            view.getViewTreeObserver().removeOnPreDrawListener(this);
            runnable.run();
            return true;
        }
    };
    view.getViewTreeObserver().addOnPreDrawListener(preDrawListener);
}

The reason I think it's not a good solution, is that I don't think it scrolls to the correct position, because it seems to scroll so that the view to scroll to will be found around the middle, instead of the top. I don't know if it's even consistent when there are more view above and below the view to scroll to.

I'm afraid I'm not clear on the problem. Your solution should work, insofar as it will trigger a programmatic scroll to the correct position. Are you trying to scroll so that the target View occupies the centre of the NestedScrollView, rather than the top?
If I were programmatically scrolling a NestedScrollView that housed a ViewGroup with a certain number of child Views, I would probably approach it in a bit different though:

final int target = 3; //Index of child View to scroll to
final boolean shouldSmoothScroll = true; //Determines whether to scroll with or without an animation

final AppBarManager manager = ((AppBarManager) getActivity());
final View child = ((ViewGroup)mNestedScrollView.getChildAt(0)).getChildAt(target);
final int distanceInPixels = Math.abs((int)child.getY());

final boolean shouldCollapseAppBar =
    manager.getVisibleHeightForRecyclerViewInPx() < distanceInPixels;

if (shouldCollapseAppBar) {
    manager.expandAppBar();
} else {
    manager.collapseAppBar();
}

if(shouldSmoothScroll) {
    mNestedScrollView.smoothScrollTo(0, distanceInPixels);
} else {
    mNestedScrollView.scrollTo(0, distanceInPixels);
}

"Are you trying to scroll so that the target View occupies the centre of the NestedScrollView, rather than the top?"
no. The opposite. I want it to be at the top of the device's screen. as if the user has scrolled to this state. Only difference between this and the sample of the repo, is that I want to scroll to a view, and not by some value of scrolling.
I have a complex views hiererchy inside the NestedScrollView. Not RecyclerView.
Why the need to handle expand/collapse of the bar? It should resize as normal scrolling does, no?

Testing on a POC, it seems what I wrote above works fine. Now I'm not sure why it doesn't work well. I do know that the creation of the views is dynamic in many cases, and the view hierarchy is quite complex.

Putting a bit more complex UI in the POC, I've succeeded to cause an issue. It's not the same, but I think that if I solve this, it might help me with the original issue.
Please have a look at the attached project. Pressing the FAB, it should scroll to a red-colored-view , but it fails, because it's inside a CardView. If the cardView wasn't there, it works fine.
MyApplication.zip

Thanks for the sample. The problem in this specific case appears to be caused by getTop() returning a value relative to its parent (the CardView), rather than its position within the NestedScrollView. A solution could involve calculating the target View's top by subtracting its absolute position on screen from the Y value of the NestedScrollView:
    private void scrollToView() {
        final NestedScrollView nestedScrollView = (NestedScrollView) findViewById(R.id.nestedScrollView);
        final View viewToScrollTo = findViewById(R.id.middleView); //red color
        runJustBeforeBeingDrawn(viewToScrollTo, new Runnable() {
            @Override
            public void run() {
                nestedScrollView.startNestedScroll(2);
                final int[] xYPos = new int[2];
                viewToScrollTo.getLocationOnScreen(xYPos);
                final int top = (int)(xYPos[1] - nestedScrollView.getY());
                nestedScrollView.setScrollY(top);
                nestedScrollView.dispatchNestedPreScroll(0, top, null, null);
                nestedScrollView.dispatchNestedScroll(0, 0, 0, top, null);
                nestedScrollView.stopNestedScroll();
            }
        });
    }

Will this work no matter how deep the view is inside the view hierarchy ?

It should work regardless of the view's position in the overall hierarchy. Another approach could involve traversing said hierarchy and making adjustments for each parent/child's getTop() value though:
private void scrollToView() {
    //...
    runJustBeforeBeingDrawn(viewToScrollTo, new Runnable() {
        @Override
        public void run() {
            //...
            final int top = findTopRelativeToParent(nestedScrollView, viewToScrollTo);
            //...
        }
    });
}

private int findTopRelativeToParent(ViewGroup parent, View child) {

    int top = child.getTop();

    View childDirectParent = ((View)child.getParent());
    boolean isDirectChild = (childDirectParent.getId() == parent.getId());

    while (!isDirectChild) {
        top += childDirectParent.getTop();
        childDirectParent = ((View)childDirectParent.getParent());
        isDirectChild = (childDirectParent.getId() == parent.getId());
    }

    return top;

}

I see. Thank you.
Sadly, it took me too much time to get a solution for this (and even then, it didn't work well), so the task of doing it got cancelled. Maybe it will come back in the future. Perhaps I should put a tiny sample for this on Github . Can you perhaps add this as another sample? You can use my sample if you wish.

HI i have posted question related scrollview can you please help me in this question https://stackoverflow.com/questions/70527432/how-to-scroll-vertically-for-specific-view-using-nested-scrollview-in-android


Corrected API latency recording rule name

This metric name should be consistent with the 50th and 99th percentile metrics.

It's not clear to me why the Travis test failed...

All the files in contrib/kube-prometheus/manifests/ are auto generated, based on e.g. the file you edited. Can you run make generate on the root level of the Prometheus Operator and check-in the changed files?

Updated and added a README note explaining the steps involved.

#1279 does this as well, so I'd prefer to merge that so we don't create merge conflicts, but let's see if we can get that done today otherwise we'll merge this. Thanks @jamtur01 !

This has been fixed on master, and as a side note, the new location of these sources are in the kubernetes-mixin repository.
Thanks a lot for taking the initiative though, highly appreciated!


Netlify CMS - add support for talks, projects, and publications

Feature Request
Move the master Netlify CMS integration files into Academic and the Demo site:

[x] Add admin panel to demo - https://github.com/gcushen/hugo-academic/tree/master/exampleSite/static/admin
[x] Add optional Netlify Identity integration into Academic (controlled by a new cms.netlify_cms setting in params.toml)

Expand support for Netlify CMS admin panel to the following page types:

[x] talks
[ ] projects
[ ] publications

Note this story concerns the Kickstart repo, but tracking it here for delivery as part of an Academic milestone.

Hi there! Thanks for the great work on this so far. I remember this working in the past but recently I have been getting this error:
Config Errors: 'collections[0].fields' fields names must be unique 'collections[1].fields' fields names must be unique Check your config.yml file.
when using the config.yml file. I'm getting this also with a clean academic-kickstart repo on localhost. Grateful for any pointers.
Many thanks

Just for curiosity, is this the main blocker for the 5.0 release?


[polarion] Fix loop var usage

Missed in https://github.com/openstack-k8s-operators/ci-framework/pull/1675.
As a pull request owner and reviewers, I checked that:

[x] Appropriate testing is done and actually running
[x] Appropriate documentation exists and/or is up-to-date:

[x] README in the role
[x] Content of the docs/source is reflecting the changes

recheck unrelated Merge conflict


Bug: Required fields in TypedDicts throw exceptions

Description
Hello, thanks for this super useful library! I was trying out polyfactory with some TypedDicts and it throws an exception. Not sure if this should be classified as a bug or a feature request, but wanted to bring it to your attention in any case.
URL to code causing the issue
No response
MCVE
from typing_extensions import TypedDict, Required
from polyfactory.factories import TypedDictFactory

class Foo(TypedDict, total=False):
    name: Required[str]
    bar: str

class FooFactory(TypedDictFactory[Foo]):
    __model__ = Foo

Steps to reproduce
Run `FooFactory.build()`, and I get the exception: `TypeError: Required accepts only a single type. Got (<class 'str'>,).`

Screenshots
No response
Logs
No response
Release Version
Version: 2.10.0
Platform

[X] Linux
[ ] Mac
[ ] Windows
[ ] Other (Please specify in the description above)

[!NOTE]
While we are open for sponsoring on GitHub Sponsors and
OpenCollective, we also utilize Polar.sh to engage in pledge-based sponsorship.
Check out all issues funded or available for funding on our Polar.sh Litestar dashboard

If you would like to see an issue prioritized, make a pledge towards it!
We receive the pledge once the issue is completed & verified
This, along with engagement in the community, helps us know which features are a priority to our users.

@khusmann, thanks for the issue. I think you're right in marking it as a bug since this should be working by default.

Awesome, thanks for the quick response!


Prepare release 1.2.0

Codecov Report

Merging #38 (f8d5055) into master (045f385) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master      #38   +/-   ##
=======================================
  Coverage   83.09%   83.09%
=======================================
  Files          15       15
  Lines         822      822
=======================================
  Hits          683      683
  Misses        139      139

Flag
Coverage Δ

unittests
83.09% <100.00%> (ø)

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

Impacted Files
Coverage Δ

cloudscale_cli/version.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


Update the URL for the main Groovy site

Happened to notice that Groovy link still pointed to the old site on Codehaus. The main Groovy logo is also coming Codehaus, but I couldn't find it on groovy-lang.org so I didn't replace it.

Thanks, I have added the Groovy logo to the website!

Great! I'm not seeing it on the server, but I'm guessing that's just because it hasn't been picked up yet by the CI server.

Yes, builds are in progress.


[1.12] Bump Mesos to nightly 1.7.x 869df35

High-level description
This is a routine bump to the latest Mesos and mesos-modules.
Related JIRA Issues
Checklist for all PRs

[ ] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[x] Read the DC/OS contributing guidelines
[x] Followed relevant code rules Rules for Packages and Systemd

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[x] Changelog:
https://github.com/apache/mesos/compare/71685b5c807e4d4d1a5ebe33a3c3c0a2f824b9b4...869df3552dcd97db2b62d2207eba3099ea823084

[ ] Test Results: [link to CI job test results for component]

[ ] Code Coverage (if available): [link to code coverage report]

@mesosphere-mergebot bump-ee

@mesosphere-mergebot label Ready For Review


Leon not loading

I am using Leon on windows
I have fixed the issue with the .env file
Leon is not fully loading I just get suck with the buffering screen.

it seems that leon is currently broken on Windows, i may try to see if i can find a fix. if i do, ill open a pull request and reply back to you.

Have you configured the .env file?

Could you please try with the latest version of the develop branch ?
Also there is now Gitpod, so you can easily start Leon directly in your browser, it is worth taking a look: https://gitpod.io/#https://github.com/leon-ai/leon


[Documentation] Is the global css address specified for the Vite setup incorrect?

I was trying to get shadcn-vue setup last night following the Vite guide at https://www.shadcn-vue.com/docs/installation/vite.html.
I deleted the default style as per step 5:

Delete the default Vite stylesheet ./src/style.css

For the global css file in step 7 it says to specify src/index.css:

Where is your global CSS file? › › src/index.css

However in step 8 it says to remove .style.css and add ./assets/index.css:

import { createApp } from 'vue'

import './style.css'
import App from './App.vue'

import './assets/index.css'

At least during my walkthrough of that guide, assets/index.css didn't exist. I changed this to src/index.css and everything started working as expected.

@p74DDone
shadcn-vue installation is about starting with Vite/Nuxt/Astro/Laravel + TailwindCSS around shadcn components
Where is your global CSS file? » src/assets/index.css
shadcn-vue CLI default Vite path for creating Tailwind CSS file is  src/assets/index.css
Which is not exist yet until you complete CLI steps

@p74DDone
When you run the init command npx shadcn-vue@latest init the cli ask you where is/will be located your global CSS file, if there is not such file it will be created.
If you already have installed tailwindcss from its installation guide, then you can choose the CSS file specified there, where you only have @tailwind base; @tailwind components; @tailwind utilities;, just specify it in the shadcn-vue CLI. Then, import it in your main/index ts/js file.
Btw, if you want to use the shadcn themes you may choose to use CSS variables at the moment of installing shadcn-vue.

"It's worth noting that you're not required to place your main file in src/assets/index.css; you can place it anywhere you prefer. However, before running your app using the CLI, it's necessary to create essential files for your setup."


if schema output is not null, then no such file or directory, open ”.../schema.prisma“

Bug description
If you set the value of output, the following things will happen. If you do not set, the program is normal。
please  help
How to reproduce
i can set output in new version
Expected behavior
Error: ENOENT: no such file or directory, open<EMAIL_ADDRESS>    at Object.openSync (node:fs:585:3)
    at Object.readFileSync (node:fs:453:35)
    at new LibraryEngine (/Users/xxx/Program/prisma/prisma/client/runtime/index.js:35468:41)
    at PrismaClient.getEngine (/Users/xxx/Program/prisma/prisma/client/runtime/index.js:40266:16)
    at new PrismaClient (/Users/xxx/Program/prisma/prisma/client/runtime/index.js:40241:29)
    at Object.<anonymous> (/Users/xxx/Program/prisma/src/models.ts:2:16)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Module.m._compile (/Users/xxx/Program/prisma/node_modules/ts-node/src/index.ts:1459:23)
    at Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Object.require.extensions.<computed> [as .ts] (/Users/xxx/Program/prisma/node_modules/ts-node/src/index.ts:1462:12) {
  errno: -2,
  syscall: 'open',
  code: 'ENOENT',
  path<EMAIL_ADDRESS>  clientVersion: '3.11.0-integration-mobc-fix.1'
}

Prisma information

generator client {
  provider = "prisma-client-js"
  output   = "client". // If not, it is normal
}

datasource db {
  provider = "mysql"
  url      = env("DATABASE_URL")
}

Environment & setup

OS:
Mac
Database:
Mysql
Node.js version:
16.8.0

Prisma Version
prisma                  : 3.11.0-integration-mobc-fix.1
@prisma/client          : 3.11.0-integration-mobc-fix.1
Current platform        : darwin
Query Engine (Node-API) : libquery-engine ca9fb922c8fd66aa105fe549629891efc4219ca3 (at<EMAIL_ADDRESS>Migration Engine        : migration-engine-cli ca9fb922c8fd66aa105fe549629891efc4219ca3 (at node_modules/@prisma/engines/migration-engine-darwin)
Introspection Engine    : introspection-core ca9fb922c8fd66aa105fe549629891efc4219ca3 (at node_modules/@prisma/engines/introspection-engine-darwin)
Format Binary           : prisma-fmt ca9fb922c8fd66aa105fe549629891efc4219ca3 (at node_modules/@prisma/engines/prisma-fmt-darwin)
Default Engines Hash    : test-mobc-fix-ca9fb922c8fd66aa105fe549629891efc4219ca3
Studio                  : 0.458.0

Do I understand correctly that setting an output property for your generator block breaks something?
Where exactly do you get this error message?

@janpio   yes，3.10.0、3.11.0、3.9.0 also happen，this error message will appear after i run script npm run dev。

This is unexpected, as this functionality is probably used by many people and no one has reported this before.
Does this also happen when you create a new project with npx prisma init? If so, please put it on GitHub and post the link so we can reproduce.

This is unexpected, as this functionality is probably used by many people and no one has reported this before.
Does this also happen when you create a new project with npx prisma init? If so, please put it on GitHub and post the link so we can reproduce.

here reproduce link  https://github.com/xygengcn/prisma-demo, thanks

I can confirm the problem:
C:\Users\Jan\Documents\throwaway\12295>npm install

added 21 packages, and audited 22 packages in 17s

found 0 vulnerabilities

C:\Users\Jan\Documents\throwaway\12295>npm run dev

> dev
> ts-node ./script.ts

Error: ENOENT: no such file or directory, open 'C:\Users\Jan\Documents\throwaway\12295\node_modules\.prisma\client\schema.prisma'
    at Object.openSync (node:fs:585:3)
    at Object.readFileSync (node:fs:453:35)
    at new LibraryEngine (C:\Users\Jan\Documents\throwaway\12295\prisma\client\runtime\index.js:36082:40)
    at PrismaClient.getEngine (C:\Users\Jan\Documents\throwaway\12295\prisma\client\runtime\index.js:40406:16)
    at new PrismaClient (C:\Users\Jan\Documents\throwaway\12295\prisma\client\runtime\index.js:40377:29)
    at Object.<anonymous> (C:\Users\Jan\Documents\throwaway\12295\script.ts:3:16)
    at Module._compile (node:internal/modules/cjs/loader:1103:14)
    at Module.m._compile (C:\Users\Jan\Documents\throwaway\12295\node_modules\ts-node\src\index.ts:1459:23)
    at Module._extensions..js (node:internal/modules/cjs/loader:1155:10)
    at Object.require.extensions.<computed> [as .ts] (C:\Users\Jan\Documents\throwaway\12295\node_modules\ts-node\src\index.ts:1462:12) {
  errno: -4058,
  syscall: 'open',
  code: 'ENOENT',
  path: 'C:\\Users\\Jan\\Documents\\throwaway\\12295\\node_modules\\.prisma\\client\\schema.prisma',
  clientVersion: '3.9.1'
}

(Also with 3.10.0)

I can confirm the problem:

C:\Users\Jan\Documents\throwaway\12295>npm install

added 21 packages, and audited 22 packages in 17s

found 0 vulnerabilities

C:\Users\Jan\Documents\throwaway\12295>npm run dev

> dev

> ts-node ./script.ts

Error: ENOENT: no such file or directory, open 'C:\Users\Jan\Documents\throwaway\12295\node_modules\.prisma\client\schema.prisma'

    at Object.openSync (node:fs:585:3)

    at Object.readFileSync (node:fs:453:35)

    at new LibraryEngine (C:\Users\Jan\Documents\throwaway\12295\prisma\client\runtime\index.js:36082:40)

    at PrismaClient.getEngine (C:\Users\Jan\Documents\throwaway\12295\prisma\client\runtime\index.js:40406:16)

    at new PrismaClient (C:\Users\Jan\Documents\throwaway\12295\prisma\client\runtime\index.js:40377:29)

    at Object.<anonymous> (C:\Users\Jan\Documents\throwaway\12295\script.ts:3:16)

    at Module._compile (node:internal/modules/cjs/loader:1103:14)

    at Module.m._compile (C:\Users\Jan\Documents\throwaway\12295\node_modules\ts-node\src\index.ts:1459:23)

    at Module._extensions..js (node:internal/modules/cjs/loader:1155:10)

    at Object.require.extensions.<computed> [as .ts] (C:\Users\Jan\Documents\throwaway\12295\node_modules\ts-node\src\index.ts:1462:12) {

  errno: -4058,

  syscall: 'open',

  code: 'ENOENT',

  path: 'C:\\Users\\Jan\\Documents\\throwaway\\12295\\node_modules\\.prisma\\client\\schema.prisma',

  clientVersion: '3.9.1'

}

(Also with 3.10.0)

yes，also 3.11.0 dev

I just saw that you updated script.ts to explicitly import from .prisma/client (the automated output location): https://github.com/xygengcn/prisma-demo/commit/d3e5db149a83d9b5042b29b2a9620028a5366bea#diff-c6eac5fc4d0b2420ef79cb73faa8d97d0842729c1292d60fa9e6c48e252d4818R1 If you undo that change, all generator.output values should work again. Can you please confirm?

This seems to be a special case when the output value is exactly client. When I set any other value (e.g. foo) and update the import in my script.ts to import { PrismaClient } from './prisma/foo' to reflect that, everything works as expected.
Can you confirm?

Yeath！ Using foo instead of client，everything works as expected.

Thanks. We will treat this as a bug, I updated the issue title to make it easier to understand.

Closing as already fixed in latest releases.


Remove secret create restriction by resourcenames

Description
Change to remove secret access restriction based on resourcenames.
GitHub Issues

GitHub Issue #

https://github.com/dell/csm/issues/1190

Checklist:

[x] I have performed a self-review of my own code to ensure there are no formatting, vetting, linting, or security issues
[x] I have verified that new and existing unit tests pass locally with my changes
[x] I have not allowed coverage numbers to degenerate
[x] I have maintained at least 90% code coverage
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have maintained backward compatibility

How Has This Been Tested?

[x] Tested cluster onboard, assign and unassign license
[x] Tested installation of csm through DN

Please check the discovery service logs for any errors, once you onboard a cluster running the client with the above changes.


Hostname for Phishlets.

[16:24:07] [err] phishlets: invalid syntax: [iliad facebook my.phishing.iliad.iliad.com]
How to set a hostname, iliad18.com being my domain?

phishlets hostname facebook iliad18.com

How to resolve this? @keep-learning-go @kgretzky
[06:35:14] [war] failed to load certificate files for phishlet 'facebook', domain 'iliad18.com': open /root/.evilginx/crt/iliad18.com/facebook.crt: no such file or directory

Please re-read the blog post and readme, all answers are there.


all room names seem to end with an additional "0"

Steps to reproduce

Where are you starting? What can you see?
What do you click?
More steps…

Outcome
What did you expect?
What happened instead?
Operating system
No response
Browser information
No response
URL for webapp
No response
Application version
No response
Homeserver
No response
Will you send logs?
Yes

fixed


Enquiry about the code of FPS.

Hi! You have done great work. However, it seems that the code of Fast Patch Selection is not included. I am looking forward to seeing them.

@cpystan Please find it here https://github.com/KimiaLabMayo/PathDino/tree/main/FPS code