Turing Release

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/6411
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if Julia TagBot is installed, or can be done manually through the github interface, or via:
git tag -a v0.7.5 -m "<description of version>" 0ce624f66d6cc57982a861f77bb531075d5fb949
git push origin v0.7.5

Also, note the warning: Version 0.7.5 skips over 0.7.4
This can be safely ignored. However, if you want to fix this you can do so. Call register() again after making the fix. This will update the Pull request.

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/6413
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if Julia TagBot is installed, or can be done manually through the github interface, or via:
git tag -a v0.7.4 -m "<description of version>" bf0762856040f69d22dcbaa968c6f1dbc76fd273
git push origin v0.7.4

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/7531
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if Julia TagBot is installed, or can be done manually through the github interface, or via:
git tag -a v0.8.0 -m "<description of version>" b9a10396cb556ef857ebcc8f03b195dc5c933de1
git push origin v0.8.0

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/7550
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if Julia TagBot is installed, or can be done manually through the github interface, or via:
git tag -a v0.8.1 -m "<description of version>" 4afcf2da53ca2d4a916b4510b2c0b86fb37e8c9a
git push origin v0.8.1

@JuliaRegistrator register

Registration pull request updated: JuliaRegistries/General/7550
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if Julia TagBot is installed, or can be done manually through the github interface, or via:
git tag -a v0.8.1 -m "<description of version>" 7b81df4ee819e7363664ecf7b3ccd06669b27e13
git push origin v0.8.1

@JuliaRegistrator register

Error while trying to register: "Tag with name 0.8.3 already exists and points to a different commit"

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/10032
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if Julia TagBot is installed, or can be done manually through the github interface, or via:
git tag -a v0.9.0 -m "<description of version>" 35e3fe8e356212ba4e64265a870833e3a9b9f4e0
git push origin v0.9.0

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/11502
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.9.1 -m "<description of version>" 3b182d07c0597a019143a827c6f72c87a9a718ee
git push origin v0.9.1

I'm undoing 0.9.1 by release the contents of 0.9 as 0.9.2, so that 0.9.1 can be released as a minor version.
@JuliaRegistrator register branch=turing/v0.9.2

Registration pull request created: JuliaRegistries/General/11513
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.9.2 -m "<description of version>" 652c7c007e07c52ad8d2625a03f666ff32e8e5bd
git push origin v0.9.2

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/11515
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.10.0 -m "<description of version>" e50c88a992334d6eef2f09c41e05c512e21ada29
git push origin v0.10.0

@JuliaRegistrator register

Registration pull request updated: JuliaRegistries/General/11515
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.10.0 -m "<description of version>" 8881b437fad136ffbfb115b76f0d9d5d5cc8e9e7
git push origin v0.10.0

@JuliaRegistrator register()

Registration pull request updated: JuliaRegistries/General/11515
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.10.0 -m "<description of version>" 8881b437fad136ffbfb115b76f0d9d5d5cc8e9e7
git push origin v0.10.0

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/11614
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.10.1 -m "<description of version>" e078e3528f46b508008927e369050597f48d3556
git push origin v0.10.1


Offical Demo web site error.

can't accept any prompt, no any response.

Input question and press “Enter” other than click “Regenerate”

Sorry for the misunderstanding...


FreshAKT

Please update your branch with ovrclk/net:master

See https://github.com/ovrclk/net/pull/170, @anilCSE


Modules version mismatch

It seems that there are now different versions of packages on the clients, schedulers and workers

/srv/conda/envs/notebook/lib/python3.9/site-packages/distributed/client.py:1274: VersionMismatchWarning: Mismatched versions found
+-------------+----------+-----------+--------------------------+
| Package     | client   | scheduler | workers                  |
+-------------+----------+-----------+--------------------------+
| dask        | 2022.7.0 | 2022.7.0  | {'2022.8.0', '2022.7.0'} |
| distributed | 2022.7.0 | 2022.7.0  | {'2022.8.0', '2022.7.0'} |
| numpy       | 1.23.1   | 1.23.1    | {'1.23.2', '1.23.1'}     |
+-------------+----------+-----------+--------------------------+
warnings.warn(version_module.VersionMismatchWarning(msg[0]["warning"]))

Could it be that some use the version of the pangeo-notebook docker image that was available at the time of deployment of the infrastructure, whereas newly created workers use the latest version of the same image ?

I've also observed the same warning.

Could it be that some use the version of the pangeo-notebook docker image that was available at the time of deployment of the infrastructure, whereas newly created workers use the latest version of the same image ?

I think that is correct:

Client and Scheduler are running inside the notebook Kernel, using the deployment time Pangeo image.
Workers: some are using initial Pangeo image, others are using a more up to date one. This is weird!

I didn't dig into it, but thinking of it, I wonder if we are not in some caching situation of Docker image on underlying openstack VMs. Perhaps the first deployed VM has an old Pangeo image which is never refreshed, and when scaling Workers to VMs that didn't have this Pangeo image, a new one got pulled there.
I'm not sure how we can force notebook servers or Dask workers to really pull the last image, there might be some configuration options on Daskhub/Jupyterhub helm charts, or in Dask gateway, to allow this. Another possibility would be not to use latest tag in our Helm configuration.

Hi,
Indeed, I think this is controlled in the following section of values.yaml for helm:
  singleuser:
    image:
      name: pangeo/ml-notebook
      tag: latest

And the version option of the helm command below:
sudo helm upgrade daskhub daskhub \
    --repo=https://helm.dask.org \
    --install \
    --cleanup-on-fail \
    --create-namespace \
    --namespace daskhub \
    --version 2022.6.0 \
    --values values.yaml

Both in: https://github.com/pangeo-data/pangeo-eosc/blob/main/EGI.md should be pinned consistently.
Best regards,
Sebastian

It seems that simply stopping and restarting the server from Jupyter's "Hub control pannel" fixes it
I guess that discrepancies will always happen if the server was started before the latest pangeo-notebook docker image (used by the newly created workers) was released
So, unless you still have the same problem and it does not disappear after restarting your server, there is nothing to change for that in the deployment and we can close this issue

Thanks @j34ni for testing this.
So there is two solutions:

Use latest Docker image and just restart the notebook server if we run into this issue.
Pin the Docker images for both notebook server and workers.


catchall does not work with templates

Here is a simple test:
def test_bottle():
    import bottle
    import webtest

    app = bottle.app()
    app.catchall = False

    @bottle.route('/hello/<name>')
    def hello(name):
        return bottle.template('hello_template', name=name)

    testapp = webtest.TestApp(app)
    testapp.get('/hello/world')

Here I expect to get full traceback, since app.catchall is False, but instead I get 500 error without possibility to see original traceback.
Related: https://github.com/bottlepy/bottle/issues/167

The problem is that TemplateError is a subclass of HTTPError and thus always caught and special-cased, even with catchall=false. I don't see why TemplateError should be a HTTPError. Missing templates are applications errors after all. Perhaps we just change TemplateError then.


Change the multipart lib to improve performances

Related to #2355 I reworked the Multipart handling and used https://github.com/Vodurden/Http-Multipart-Data-Parser to do so.
Here are some performances test I made:

before
after

2GB
55s
33s

4GB
120s
75s

8GB
314s
285s

Please let me know if this look OK for you before I start working on the tests. I included all the lib, maybe we want to only pick relevant classes.
Regards

Hi,
Nice! This is one of those things that you just don't pull in without giving it a proper code review and step the code a bit. Even then it's a nightmare to dare to pull the merge button because of the uncertainty of that scenarios that might be broken :D
So before we start reviewing that, there are some pretty big code style violations that would need to be fixed. I would prefer if they were addressed before we even started looking at the actual implementation logic. You can find the style guides here (they were also linked during the pull-request process)
Thanks

I'm aware that the code added in HttpMultipart directory is not coding style compliant.
As I said the code is coming from a lib, and I think it will be easier to maintain this kind of "external" dependency if we don't change the code too much. Looks like it's already the case for TinyIOC.
Regards

Rather than directly pull in the codebase, can we learn from it and apply changes to the existing handling?


ExceptionExtensions Flattens Incorrectly

ExceptionExtensions.FlattenInnerExceptions() was returning inner
exceptions of non-aggregate exceptions. This caused the wrong exception to
be passed to the error pipeline.
I found this bug after upgrading from Nancy 1.2 to 1.3. My application has an OnError pipeline handler to take the exception thrown by the app and return the exception text in the response body. Automated tests that were checking error messages returned by the service started failing but only for exceptions where the InnerException property was set to a non-null value. Oddly, the inner exception message text was returned by the service. The bug was in ExceptionExtensions.FlattenInnerExceptions(). It was returning the inner exception for non-aggregate exceptions and throwing away the original exception. This means the OnError pipeline was receiving the incorrect exception.

Hmm. Weird. This fails on Mono. Seems like an issue with the ordering of the exception.

 I'll try it out and update the pull request.

It probably won't give the best failure message, but it does the job.

The test is still failing in Mono. I'll try a manual comparison of each item.
Also, I apologize for the extra commits in the pull request. I did a rebase of remote/master on my feature branch before pushing to Github. Not sure how to fix.

Passing now. Test assertions are ugly, but like you said, they do the job.

Thanks for the contribution @joebuschmann! :heart:


Escape @ in form tag returns empty.

I'm working with VueJs in my .cshtml file.
The short syntax to attach an event in Vue is "@eventName".
@ is also used by Razor, so I need to escape it using @@.
When I write:

The html is perfectly rendered as:

But this seems not to work in a form tag.
When I write:
<form action="/" method="post" @@click="doSomething">
The html rendered is:
<form action="/" method="post">
@@click in this case is completly ignored.
This issue occurs only in .NET Core.
For now, I'm using an another syntax.

@alexandretperez do you have TagHelpers applying to your page?

Hi @NTaylorMullen,
No, I don't have any TagHelpers on my page.
Just a simple HTML.

@alexandretperez it's working for me. Could you share a repro project?

Closing due to response.


Fix: Remove creation of log-groups in Lambdas

Feature or Bugfix

Bugfix

Detail
In #1134 log groups are created explicitly for each Lambda in the backend, which results in errors when the log-groups do not exist.  (see #1190 )
This PR removes the log_group parameter from the definition of the Lambdas. It reverts back to the previous (2.3) settings.
Tested: on a fresh deployment, making sure that no log-groups were previously created, the stack creates the log-groups with the Lambda name. For example /aws/lambda/<resource_prefix>-<env_name>-esproxy.
Update: we need to explicitly define the log groups to avoid the log retention lambdas and their roles and policies that CDK automatically creates. So to cope with existing groups and non-existing groups this PR adds a CfnCondition to the creation of the log-group
Relates

#1134

Security
Please answer the questions below briefly where applicable, or write N/A. Based on
OWASP 10. n/a

Does this PR introduce or modify any input fields or queries - this includes
fetching data from storage outside the application (e.g. a database, an S3 bucket)?

Is the input sanitized?
What precautions are you taking before deserializing the data you consume?
Is injection prevented by parametrizing queries?
Have you ensured no eval or similar functions are used?

Does this PR introduce any functionality or component that requires authorization?

How have you ensured it respects the existing AuthN/AuthZ mechanisms?
Are you logging failed auth attempts?

Are you using or adding any cryptographic features?

Do you use a standard proven implementations?
Are the used keys controlled by the customer? Where are they stored?

Are you introducing any new policies/roles/users?

Have you used the least-privilege principle? How?

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

pretty sure the change to explicitly create log groups was primarily to avoid CDK from constructing a policy with PutLog* permissions on resource *
I think no specifying a log group and letting CDK/AWS create defaults does behave that way but maybe there is another way around (i.e. .without_role_policy_updates() as we do with CodeBuild and giving log permissions in create_function_role())

Hi @mourya-33 @petrkalos.
We can discard using CfnConditions with log groups imported
I have tried the implementation in the latest commit and some other local alternatives using CfnConditions. It turns out that ILogGroup  which is what we get when we import the log_group, does not have any method that we can successfully evaluate in a condition. I have tested log_group_physical_name() which is the only one that gives a Token as string, but it returns an empty string as the log group does not have a physical name even when it exists. All other parameters from the IlogGroup class do not check if the log group actually exists (it makes sense, that is why it failed so late in the Cfn template)
Other alternatives

Create new log-groups (with slightly different names). It does not impose any issues in fresh deployments or in existing deployments. The only issue is that for existing deployments users will have 2 log-groups, the old one and the new one. I will investigate ways of migrating the log-streams from one to the other.
Use boto3 to check if the log group exists. It would not be an issue because log groups are not deleted as we do not set expiration date for them. But it is a bit hacky.
Use version to decide whether to create a new log-group

@petrkalos I double check and a CW metric keeps the history even after changing the log-group. Good to know :)


[CR][ENG-6055][ENG-6098]

Purpose
Hotfixes for: double-encoded urls + dep upgrades
Changes

Stop double-encdoing spaces in urls (eg. moo%20cow => moo%2520cow)
Bump Django to v4.2.15
Bump werkzeug to v3.0.3
Poetry side-effect: bump latent deps

QA Notes

Need to verify that double quoting no longer occurs
Slight risk of bugs from indirect deps changing, but a review of changelogs didn't show anything concerning

Documentation
No docs.
Side Effects
Unlikely
Ticket
https://openscience.atlassian.net/browse/ENG-6055
https://openscience.atlassian.net/browse/ENG-6098

Squashed in as 406c027f73e86140c4452868824ae44af6075e13, consider this merged :octocat:


[Bug]: No icon for food delivery website

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
There is no icon present for the food delivery website.
Expected behavior
There has to be a icon for the food delivery website
Add ScreenShots

On which device are you experiencing this bug?
Windows
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[X] I have starred the repository

can u please assign this issue to me

@chaanakyaaM this issue has already been resolved & now we have a favicon icon in the website now

So Thanks for raising this issue but I have to close it for now as completed.


Odd usage alignment

Usage: client [options] [command] [command options]
  Options:
    --config
      Config file location.
      Default: /home/dyuen/.dockstore/write.api.config.properties
    --help
      Prints help for the client.
      Default: false
  Commands:
    add      Add the Dockerfile and CWL file(s) using the write API.
      Usage: add [options]
        Options:
        * --Dockerfile
            The Dockerfile to upload
        * --cwl-file
            The cwl descriptor to upload
          --cwl-secondary-file
            The optional secondary cwl descriptor to upload
          --help
            Prints help for the add command
            Default: false
          --version
            The version of the tool to upload to

    publish      Publish tool to dockstore using the output of the 'add'
            command.
      Usage: publish [options]
        Options:
          --help
            Prints help for the publish command.
            Default: false
        * --tool
            The json output from the 'add' command.

Note that "Add the Dockerfile" and "Publish tool to dockstore" seem misaligned

If "Publish" was unindented 1 level, it would get too close to "publish".  There would only be one space between then.  If "Add" was indented 1 level to match "Publish", it would waste space.  If "command." was indented 1 level, it would also waste space.
JCommander generates the usage.  If command description was multiple lines, this current way of displaying usage makes more sense.  It tries to minimize the amount of wasted space by not line-breaking after the command, it also leaves at least 2 after the command (however long it is).

Apparently, it's not indented. JCommander puts the command name then followed by 6 spaces and then the description pretty much no matter what.


Dockerd section missing options

Problem description
The dockerd's options section is missing a bunch of options added over time.
For example, the graph option has been deprecated (https://github.com/moby/moby/pull/28696) while experimental never reached the doc. I would suggest to write a small automation tool that can see if there's the need of a refresh at docs side for options, parameters etc.. There's the real issue of having a disparity between the implementation and the actual documentation
Problem location
https://docs.docker.com/engine/reference/commandline/dockerd/#options
Suggestions for a fix
Here's a diff of the options:
left: current situation on the docs
right: current situation of dockerd
1d0
<
9a9
> --cluster-store-opt
11a12,14
> --cpu-rt-period
> --cpu-rt-runtime
> --data-root
15a19
> --default-shm-size
22a27
> --experimental
25d29
< --graph
29a34,35
> --init
> --init-path
48a55
> --seccomp-profile
49a57
> --shutdown-timeout
58a67
> --userland-proxy-path

@thaJeztah PTAL - could be a good ideal to write some code at least to warn about this kind of differencea between the docs and the target release ?

A quick look learns me that the missing options are options that were added after 17.03. The current documentation on docs.docker.com is for the "stable" channel, hence doesn't show flags that were added after 17.03 (e.g. https://github.com/moby/moby/pull/29692)

It seems that these options made it to the docs, so everything is OK 🙌

yay @joaofnfernandes thanks for looking at it


Support Decimal256 column in create external table

Which issue does this PR close?

Closes #7865.
Rationale for this change

What changes are included in this PR?

Are these changes tested?

Are there any user-facing changes?

Thank you @alamb


Event Hubs: added cmdlets

This checklist is used to make sure that common guidelines for a pull request are followed.
General Guidelines

[x] The PR has modified HISTORY.rst describing any customer-facing, functional changes. Note that this does not include changes only to help content. (see Modifying change log).

Command Guidelines

[X] Each command and parameter has a meaningful description.
[X] Each new command has a test.

(see Authoring Command Modules)

View a preview at https://prompt.ws/r/Azure/azure-cli/5522
This is an experimental preview for @microsoft users.

@tjprescott can you please review

@v-Ajnava Take a look at this documentation to allow you to block the extension from loading.
https://github.com/Azure/azure-cli/blob/dev/doc/authoring_command_modules/authoring_commands.md#extension-suppression

@derekbekoe implemented the extension suppression.

@tjprescott addressed the comments, can you please review the PR


mavsdk_server build fail

I want build mavsdk_server, but there had some problems..
I have already installed this one
sudo apt-get install build-essential cmake git

I used this command There was a no problem
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DBUILD_MAVSDK_SERVER=ON -Bbuild/default -H.

But this one had problems
cmake --build build/default -j8

Looks like grpc library error.. So I have installed grpc with this guide
https://grpc.io/docs/languages/cpp/quickstart/
But still error occured.
My Ubunt environment
cmake version 3.16.3
OpenSSL 1.1.1i  8 Dec 2020
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.3 LTS
Release:        20.04
Codename:       focal

Is it a clean build? Looks like an issue with OpenSSL. Did OpenSSL build successfully above?

Thank you for comment @JonasVautherin

Umm I'm not sure about that this one is end point of OpeenSSL.
And there has warnings.
It looks like there has some problems.

Can you search for "Found OpenSSL" in your log? It should find the one that you just built, not the one on your system.
Also just to be sure: are you building the main branch?

And what sort of Ubuntu are you using?

Thank you for comment @julianoes
This one is my Ubuntu environment.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal

@JonasVautherin
Yes my branch is this one
Do you mean this log?

Found OpenSSL: /usr/local/lib/libcrypto.so

This is wrong, it should find it in /preneu/utm/MAVSDK/build/default/third_party/install/lib. Can you check that you have the ssl libraries installed in /preneu/utm/MAVSDK/build/default/third_party/install/lib?

@dayleMG and is that latest main?
You can do git rev-parse HEAD to check the commit.

@JonasVautherin

Do you mean this one??

@julianoes
Here you are~ 444d6b693b2d76cd594b1df074f28f468cc78f47

Do you mean this one??

Yes. I don't see libcrypto and libssl there, it feels like OpenSSL failed to build/install :thinking:

So what was the fix? Sorry I missed it.

@julianoes that's okay thank you
I found mavsdkserver releases artifacts. so I have just used that one.
Thanks for helping me.

I use ubuntu 22.04 to build the mavsdk server. And also cannot found the openssl library.
First the openssl library in ubuntu 22.04 is output at build/third_party/install/lib64 dir.
And the openssl seems only generate pkg-config file and no cmake config file.

@tbago please create a new separate issue and describe the steps you do and what goes wrong, thank you.


TACKLE-575: Uses exposed ingress limit to validate uploaded binaries

Closes https://issues.redhat.com/browse/TACKLE-575?filter=12395291

@ibolton336 while you're in here can you set the variant of the modal to be medium or large? It looks funky taking up the full screen width for a short message.


How to add translation of docs on own language

I wanna start translate docs on Russian. How I can do it?

This is being done in this PR https://github.com/stride3d/stride-docs/pull/88.
This can be closed.

Just a reference that a guide was created https://github.com/stride3d/stride-docs/blob/master/NewLanguageWorkflow.md


add github action for building + pushing docker image to ghcr

Thank you for open sourcing this repo! I am currently playing around with changing the output to grafana loki (which I hope to finish + test shortly and open source as well!)
In the meantime, I figured I'd raise this PR in case it's useful for you - this just adds a quick job to build + publish docker images to GitHub Container Registry (GHCR) for this repo when you create a release!
Also, feel free to close if this isn't useful!

@jpetrucciani glad it was a helpful starting point! Happy to include any improvements you make. or a new "driver" for grafana loki.


S3 Versioning, Cleanup, and Tagging

to @ryandeivert
cc @airbnb/streamalert-maintainers

Enable S3 versioning
Cleanup tagging on Lambda/Kinesis resources for easier tracking
Begin to use Terraform policy data resources over JSON strings (provides more reliability when running Terraform)

Verified this change via running python stream_alert_cli.py terraform init in an AWS account


Support anonymous custom element constructors

Summary
Support anonymous custom elements
Fixes #15137
Test plan

Thanks! Can you add a test and a changelog entry?

@SimenB Done!

https://github.com/jestjs/jest/releases/tag/v30.0.0-alpha.6


Updates version of infowindow template

nice and easy :) @javierarce how does it look?
Ref. #481

:+1:
Is this associated with a change in the stylesheet?

As far as I know it's not associated with a change to the stylesheet. But I could easily be wrong.

@javisantana is there anything else I should change in this PR?

I don't know, @javierarce is the reviewer, is everything is fine just merge


Downgrade poison and test against Dgraph v1.0.13

Since a lot of projects still use Poison 3 the previous switch to Poison 4 forced people to use override: true in the mix.exs.
I also upgraded the docker-compose.yml to test against the latest version of Dgraph (v1.0.13).

Pull Request Test Coverage Report for Build 155

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

Totals

Change from base Build 151:
0.0%

Covered Lines:
173

Relevant Lines:
235

💛  - Coveralls


Usability improvements

close fullscreen editor on ESC
add basic search to log level table
add date column to image file table
minor improvements

@terrestris/devs Please review

Thanks for reviewing!


Map object / ACL hierarchy

Access tree to objects should be inherited from parents
With a tree like this  A / B / C  where user u1 can read data from A, they will be able to read data from B and C too

Implemented and tested


Add tracking of screen coordinates

Added mapping of gaze ratios to screen coordinates, so that it now tracks eye point of gaze (EPOG) on the screen.
This is done by asking the user to fixate on calibration points with predetermined coordinates. These points, plus knowledge of screen size, are used to map subsequent gaze ratios to screen coordinates. Subsequently, a short test is run, where user fixates on test points, and the EPOG error is calculated.
Mainly added gaze_calibration.py file and completely redid the previous example.py file

This would be super cool, except after installing everything and trying to run the example file, it returned an "Abort trap: 6" error.

It would also be nice to be able to do a calibration via webcam and then do gaze detection from a different video source.

Or even just do screen coordinates without calibration. That would be ideal.


Add country mapping overwrite field on geoip maxmind filter

Commit Message:
Add country map file to ovewrite country code.
Added :ref:Geoip country mapping path option<envoy_v3_api_msg_extensions.geoip_providers.maxmind.v3.MaxMindConfig.country_mapping_path to allow override of country code when needed. The country mapping file is a json containing the iso code to be mapped from:to so it is possible to override the result read from the Maxmind database. If the path is incorrect or the json is invalid, a warning will be logged, the metric country_mapping.parse_error will be incrementedand an empty map will be used.
Additional Description:
I've added a commit that changes the behaviour to throw exceptions instead of logging errors when the country mapping file is invalid. Feel free to ask for removal if you prefer to have it just sending warnings.
Risk Level:
This PR changes the maxmind geoip filter and should have low risk since it doesn't change other filter behaviours.
Testing:
Using curl with curl -k -H "X-Forwarded-For: <IP_ADDRESS>, <IP_ADDRESS>" -H "X-Real-IP: <IP_ADDRESS>"  might be enough to validate the configuration.
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

/docs

/docs

@barroca the docs will render once they are able to - theres still an issue with the changelog link

Now that nezdolik has the comments I'm going to assign it over. :)

Apologies for delayed review, i have been swamped past weeks.

@nezdolik I addressed your comments, but right now I'm having trouble identifying the leak that I'm getting from the presubmit  job https://dev.azure.com/cncf/envoy/_build/results?buildId=163920&view=logs&j=1439b9f7-a348-5b50-b5fe-ea612ea91241&t=1002ac43-da84-5fae-70b2-98833b702d09
I'm still investigating, but if you have any clue let me know.


Fix: enable nested trap

Current implementation does not support nested mocking:
func Foo() string {
     return "foo " + Bar()
}

func Bar() string {
    return "bar"
}

If setup mock on Foo, then Bar cannot be mocked.
The main consideration is xgo cannot figure out if calling interceptor inside pre or post stage will cause infinite recursion or not. Actually, there are cases where calling or not calling can make sense. So xgo cannot determine if a function intercepting should be nested.
Thus, to avoid surprising users, xgo defaults to avoid nested trap.

To support nested trap, we must mark interceptors and skip them to avoid infinite recursive intercepting.
Thus, retrieve func information from func tab is important. Consider getting function info at init stage:
func init() {
	cancel = trap.AddInterceptor(&trap.Interceptor{
		Pre: func(ctx context.Context, f *core.FuncInfo, args, result core.Object) (data interface{}, err error) {
			return
		},
	})
}

Since trap.AddInterceptor is being called at init stage, its Pre function is not yet registered, so we may encounter recursive intercepting which causes stack overflow.
The solution is to make func info registering prior to any other init function.
In go this can be done via a trick that cause the function to be called as package level expression:
var _ = func() bool {
    ...do early registering...
    return false
}()

To avoid infinite recursion, when Foo is intercepted, check if there is any matching interceptor specifically for Bar, proceed with these interceptors if any. This can reduce the chance causing recursions.

var _ = func() bool {
    ...do early registering...
    return false
}()

Just realized that this isn't prioritized at all:

func init(){
    functab.InfoFunc(A) // --> nil
}
func TestFuncInfo(t *testing.T){
      functab.InfoFunc(A) // --> non-nil
}

func A(){
}

Solution: when adding the helper file, add that file the head instead of appending to tail. This ensures the helper file's code is executed first.


Transmission resend entries created with 0 CreateDate

Fix #1315
If a notification comes in and transmittal to a subscriber fails, a
retry can occur. In this case, the retry transmission record was being
created with a 0 CreateDate value. This was because dates are managed
at the database provider level and the return value on an ADD operation
is simply the ID of the newly inserted record.  In order to fix this,
I had to add a new function to the DBClient and supporting providers
that would fetch the newly inserted Transmission record so that the
date values could be retained for further opertations.
Signed-off-by: Trevor Conn<EMAIL_ADDRESS>

@cherrycl @cloudxxx8 Waiting for confirmation that this addresses the issue. If no input by tomorrow, will assume I can merge.


encoding/json: doesn't deserialize json fields with underscores into struct's fields who's tag contains the underscore but the struct field name does not

This issue - https://github.com/golang/go/issues/9841
Is true for go1.14.2
This works
Ws_Id              string.   `json:"ws_id"`

This does not work
WsId              string.   `json:"ws_id"`

Is it fixed in a later version or has all new manufacturing stopped LOL.

@andrewhodel Could you please provide an example of your issue? The following code works well for me:
package main

import (
	"encoding/json"
	"fmt"
)

type Foo struct {
	Ws_Id string `json:"ws_id"`
}

type Bar struct {
	WsId string `json:"ws_id"`
}

func main() {
	js := []byte(`{"ws_id": "abc"}`)

	var f Foo
	var b Bar
	json.Unmarshal(js, &f)
	json.Unmarshal(js, &b)
	fmt.Printf("f: %+v\n", f)
	fmt.Printf("b: %+v\n", b)
}

Output:
$ go1.14.2 run main.go
f: {Ws_Id:abc}
b: {WsId:abc}

Alternatively, see the playground:
https://play.golang.org/p/LWtwMGPSGtC
I'm not sure I understand the comment about manufacturing.

The manufacturing comment was a joke about not fixing bugs and having fancy
new cars.
It must be a mongo issue, I was experiencing the problem with a .Decode()
result from find() in the Go Mongo driver.
I searched for the issue and found the closed issue with no explanation.
On Wed, Jul 22, 2020 at 2:23 PM alexander rakoczy<EMAIL_ADDRESS>wrote:

@andrewhodel https://github.com/andrewhodel Could you please provide an
example of your issue? The following code works well for me:
package main
import (
"encoding/json"
"fmt"
)
type Foo struct {
Ws_Id string json:"ws_id"
}
type Bar struct {
WsId string json:"ws_id"
}
func main() {
js := []byte({"ws_id": "abc"})
var f Foo
var b Bar
json.Unmarshal(js, &f)
json.Unmarshal(js, &b)
fmt.Printf("f: %+v\n", f)
fmt.Printf("b: %+v\n", b)
}
Output:
$ go1.14.2 run main.go
f: {Ws_Id:abc}
b: {WsId:abc}
Alternatively, see the playground:
https://play.golang.org/p/LWtwMGPSGtC
I'm not sure I understand the comment about manufacturing.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/golang/go/issues/40351#issuecomment-662676738, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSOEMPYCLYGMBTSANIDR45DDPANCNFSM4PE7LBQA
.


Allow overwriting used contract addresses via env variables

Currently the contract addresses are hardcoded. It should be possible to overwrite the hardcoded values via env variables, so that it is easy to configure the interface for custom contract addresses (e.g. on other networks)
Notes

https://github.com/gnosis/safe-react/blob/development/src/logic/contracts/safeContracts.ts#L13-L17

@rmeissner I suggest we close this because we'll work on this as part of the bigger L2 support epic.

Closing this one since this will be tackled with the L2 support as far as I see it in #2216


problem about /modeling/rpn/matcher.py

Matcher(match_quality_matrix) return tensor of 'matches'. matches[i]=k means i-th anchor matched k-th target; k==-1, means a negative anchor (k can also be -2).
So, when we try to sample positive and negative anchors according to 'matches',  we should choose those anchors where matches>=0  as positive ones, and matches==-1 as negative ones
However, in file balanced_positive_negative_sampler.py, matches>=1 and matches==0 are considered as positive and negative samples conditions
Althought clamp(min=0) is called before sampling(in /modeling/rpn/loss.py, line 49), this will assign target[0] to some of the anchors compulsorily

clamp works only for matched_targets = target[matched_idxs.clamp(min=0)] this part.
unmatched index information is kept in matched_targets.add_field("matched_idxs", matched_idxs)
In prepare_targets function, only extracting matched items using matched index that is not clamped.


[Share] Support custom activity items

Use case
I'm trying to figure out how to add custom activity items to the share sheet in iOS via the Share plugin. Is it possible to add the ability to the share plugin?
Example of adding custom activity items from any ViewController in swift:
 let textToShare = "Look at this awesome website!"
 let myWebsite = NSURL(string: "http://www.google.com/")!

 let objectsToShare = [textToShare, myWebsite]
 let applicationActivities = [FavoriteActivity()]

 let avc = UIActivityViewController(activityItems: objectsToShare, applicationActivities: applicationActivities)

 self.presentViewController(avc, animated: true, completion: nil)

Proposal
My first thought would be to add another parameter to the share method to accept some kind of ShareActivityItem class. I'm not exactly sure what the ShareActivityItem would contain.

No features are being added to this plugin; see https://pub.dev/packages/share#deprecation-notice


Compare 2 files with multi selection

Ref: http://stackoverflow.com/questions/30139597/visual-studio-code-is-there-a-compare-feature-like-that-plugin-for-notepad

VSCode Version: 1.10.2
OS Version: Windows 10

A similar comparing tool as the plugin explained in StackOverflow above. Currently, VSCode does not allow multi select and also ability to edit the compared files (only the file to the right is allowed).
Features Request:

Multi-select files in the tabs
Compare and edit both the files
Ability to not refresh in real time (or allow it)

@vnl separate feature requests deserve separate issues, not one.
what does "multi select" mean in the context of diff?

@bpasero Sorry, since it was all related to the same feature I included them as one.
Multi-select here was to be able to select at least 2 files for comparing. This may also be extended in selecting more than 2 files for may be moving them/closing the selected files and so on. However for comparing it is being able to select at least 2 files from the list (currently, the limited compare feature is several clicks). Hope I am conveying the message.

Ah ok, we already have an issue for multi select in the explorer, so I am closing this one as duplicate.

@bpasero The issue is to compare files. I just explained what was multi-select in this context.

@vnl what?

Not quite right. The tab when you compare 2 files should allow editing of either file.
Also
Click 1 - Open Explorer
Click 2 - Right click a file and 'Select for Compare'
Click 3 - Right click on another file and 'Compare with ..'
Finally, editing of files is not even allowed to both the files. I think a lot of effort for a simple compare between 2 files.
Sorry but if there is a reason for this, then I am unaware of that and so opened the ticket.

That would be https://github.com/Microsoft/vscode/issues/4180


add information about how to get help

add information about how to get help to the bottom of README.md

Merging after mailing list discussion.


Update workflow

Codecov Report

Merging #102 (a5d405a) into main (91be0ac) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main      #102   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            2         2
  Lines           22        22
=========================================
  Hits            22        22

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 91be0ac...a5d405a. Read the comment docs.


How to add chips when we are click multiple selected from select input in materialize css?

Please use the issue template


Add specs for Thread.each_caller_location

#1016
[Feature #16663]

Thread.each_caller_location is added.

What cases I would consider:

it iterates through the current execution stack

we can check e.g. that every yielded value is instance of Thread::Backtrace::Location
and that all the yielded locations equal exactly what #caller_locations returns

it raises LocalJumpError when called without a block
it doesn't accept positional and keyword arguments
it returns nil
it raises StopIteration at the end when used as an external enumerator (there is such test case already)

There are two more cases mentioned in the https://bugs.ruby-lang.org/issues/16663:

break stops the iteration
using to_enum (Thread.to_enum(:each_caller_location)) doesn't add any locations related to to_enum implementation, so locations should be the same as Thread.each_caller_location {} returns.

There is a WIP PR in TruffleRuby https://github.com/oracle/truffleruby/pull/3050 that contains some specs but I think this PR can be merged independently if there are more detailed test cases.


Twilio call temporary blocking

Hi @bobiechen-twilio
We tried this demo of VoIP calling in iOS in the following ways and checked the results:
Using static token generated for device-specific identity.
Device A: application in one client device.
Device B: application in another client device
Scenario: 1 (Demo app )

Calling from device A to device B: call was successful.
Deregistered the token in B by invalid for logout
Now calling from A to B - (Call Error:20104), Access Token expired or expiration date invalid.(as we have deregistered it’s also valid)

Scenario: 2 (Our main app)

Login in both device
Call from A to B (successful)
Logout in B
Call from A to B (not available)
Again login in to device B with a successful registration message.
Now calling from device A to B ((Call Error:20104), Access Token expired or expiration date invalid)
The above point 6 should work but it’s unexpected

The demo code works but when we are adding login and logout functions and adding the same codebase like we have created instance class for call manager to add call functionality throughout the application but this thing is causing issues in the call blocking.
Do you have any other solution for adding a file manager class for VoIP.
Xcode
13.0
iOS Version
15.0
iOS Device
iPhone XR

Hi @vaibhavpandey130240
The 20104 error code and its message suggests that the access token has expired when making the outbound call on client A. Please check the expiry value of the access token and make sure you are using a valid token (has not expired) when making outbound calls or registering.


Try text-rope's line

https://hackage.haskell.org/package/text-rope-0.2/docs/Data-Text-Lines.html

Resolves via #121


WIP Cython port

Before:

After:

Before:

Todo:

[ ] Profile why tile.get_mesh is still slow.

References:

https://cython.readthedocs.io/en/latest/src/userguide/numpy_tutorial.html
https://suzyahyah.github.io/cython/programming/2018/12/01/Gotchas-in-Cython.html
https://cython.readthedocs.io/en/latest/src/userguide/memoryviews.html
https://blog.paperspace.com/faster-numpy-array-processing-ndarray-cython/

No you don't


boto streaming_body.iter_lines() results in root [ERROR] Read timeout on endpoint URL: "None"

Describe the bug
From time to time AWS Lambda throws such errors when trying to read a file with a list of JSONs from s3.
There is no clear pattern, hard to reproduce it looks like it's related with the load on s3.
Expected Behavior
Normal processing of iter_lines() or meaningful error description.
Current Behavior
3-5 times per day  receiving such errors:
[ERROR] ReadTimeoutError: Read timeout on endpoint URL: "None"
Traceback (most recent call last):
  File "/var/task/lambda_function.py", line 234, in lambda_handler
    raise e
  File "/var/task/lambda_function.py", line 230, in lambda_handler
    jsons_list = read_json_data(boto_streaming_body)
  File "/var/task/lambda_function.py", line 46, in read_json_data
    for line in body.iter_lines():
  File "/var/runtime/botocore/response.py", line 118, in iter_lines
    for chunk in self.iter_chunks(chunk_size):
  File "/var/runtime/botocore/response.py", line 131, in iter_chunks
    current_chunk = self.read(chunk_size)
  File "/var/runtime/botocore/response.py", line 85, in read
    raise ReadTimeoutError(endpoint_url=e.url, error=e)

File on s3 is ok, if copy it again - all fine.  Issue could be with very frequent and heavy reading from s3, but can't debug as it's unstable happens not frequently.
File name and bucket in s3.get_object(Bucket=bucket, Key=key) - is correct.
Code example:
  for record in records:
        data = json.loads(record['Sns']['Message'])
        bucket = data['Records'][0]['s3']['bucket']['name']
        key = unquote_plus(data['Records'][0]['s3']['object']['key'], encoding='utf-8')
        logging.info(f"### bucket: {bucket} \n file: {key}")
        try:
            response = s3.get_object(Bucket=bucket, Key=key)
            boto_streaming_body = response['Body']

            jsonsList =[]
            for line in boto_streaming_body.iter_lines():
                try:
                    data_json = json.loads(line)
                    jsonsList.append(data_json)
                except:
                    logging.info(f'Error in json.loads reading json transaction from a file')

        except Exception as e:
            logging.error(e)
            logging.error('Error getting object {} from bucket {}. Make sure they exist and your bucket is in the same region as this function.'.format(key, bucket))
            raise e

Reproduction Steps
It's hard to reproduce as it happens randomly few times per day. But could be related that we have multiple lambdas reading frequently files up to 25Mb from s3.
 response = s3.get_object(Bucket=bucket, Key=key)
 boto_streaming_body = response['Body']
 for line in boto_streaming_body.iter_lines()::
...

Possible Solution
No response
Additional Information/Context
Need to understand the reason for this error.
SDK version used
boto3.version: 1.20.32
Environment details (OS name and version, etc.)
Windows 11

Hi @OleksiiYeromenko thanks for reaching out. Here is an article on troubleshooting timeout errors in Lambda functions that may help: https://aws.amazon.com/premiumsupport/knowledge-center/lambda-function-retry-timeout-sdk/
Have you tried updating the boto3 timeout and retry configurations? Here is the boto3 documentation on configuration and retries.

Thank you, will check now.
I had following config: Config(connect_timeout=30, retries={'max_attempts': 4})

Hi @OleksiiYeromenko thanks for reaching out. Here is an article on troubleshooting timeout errors in Lambda functions that may help: https://aws.amazon.com/premiumsupport/knowledge-center/lambda-function-retry-timeout-sdk/
Have you tried updating the boto3 timeout and retry configurations? Here is the boto3 documentation on configuration and retries.

After switching from body.iter_lines() to  body._raw_stream.readlines(), Error changed from Read timeout on endpoint URL: "None" to ReadTimeoutError: AWSHTTPSConnectionPool.
So that's mean I have issues reading file from s3,  I changed config to
Config(connect_timeout=100,read_timeout=100, retries={'max_attempts': 10}).
Will highly appreciate advice on how to troubleshoot the reasons why it happens.
[ERROR] ReadTimeoutError: AWSHTTPSConnectionPool(host='xxx.eu-west-1.amazonaws.com', port=443): Read timed out.
Traceback (most recent call last):
  File "/var/task/lambda_function.py", line 240, in lambda_handler
    raise e
  File "/var/task/lambda_function.py", line 236, in lambda_handler
    jsons_list = read_json_data(boto_streaming_body)
  File "/var/task/lambda_function.py", line 52, in read_json_data
    all_body_lines = body._raw_stream.readlines()
  File "/opt/python/urllib3/response.py", line 811, in __iter__
    for chunk in self.stream(decode_content=True):
  File "/opt/python/urllib3/response.py", line 579, in stream
    data = self.read(amt=amt, decode_content=decode_content)
  File "/opt/python/urllib3/response.py", line 544, in read
    raise IncompleteRead(self._fp_bytes_read, self.length_remaining)
  File "/var/lang/lib/python3.8/contextlib.py", line 131, in __exit__
    self.gen.throw(type, value, traceback)
  File "/opt/python/urllib3/response.py", line 446, in _error_catcher
    raise ReadTimeoutError(self._pool, None, "Read timed out.")

@OleksiiYeromenko thanks for following up. Could you share the logs prior to the read timeout occurring? And can you confirm if the function works locally outside of Lambda? If this is a long-running task then another services such as AWS Fargate may be better suiting for accomplishing it since the max Lambda runtime is 15 minutes.

@OleksiiYeromenko thanks for following up. Could you share the logs prior to the read timeout occurring? And can you confirm if the function works locally outside of Lambda? If this is a long-running task then another services such as AWS Fargate may be better suiting for accomplishing it since the max Lambda runtime is 15 minutes.

Yes, thanks.
Function works fine locally and during tests in Lambda, it happens from time to time. Runtime is fine, current Lambda configuration timeout - 5min, but execution usually takes 2-3min.
In debug see that botocore.retryhandler [DEBUG] No retry needed., in Response metadata also 'RetryAttempts': 0. So it's very strange.
Any ideas how I can debug this Read timed out?
Logs from start:

Additionally -I've checked all files form S3 which got ERROR, in 1 minute later were triggered again and processed successfully.
The source for Lambda is SNS, triggered by updates in S3.
So main question - how properly debug the reason why we are having these errors reading by boto from s3..

Have you ruled out network issues as a possible cause for this? Since the issue occurs randomly as you mentioned. To get the boto3 logs you can add boto3.set_stream_logger('') to your script. That might provide more insight into what's going on. Also what is the highest value you've increased your connect_timeout and read_timeout to?

Recent Error with logs from boto:

Are you using the same region where your bucket is located? Also have you tried using tcp_keepalive as mentioned in https://github.com/boto/boto3/issues/2510#issuecomment-1163825488. See: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html?highlight=tcp_keepalive#configuration-file

Yep, all in same region.  I will try tcp_keepalive

Sorry, @tim-finnigan , thank you for your support, we've fixed an issue, it was indeed related to the VPC endpoint - requests to s3 were going through internal network, external Internet and then hit S3, very long trip. After switching to VPC endpoint no errors anymore.

Thanks @OleksiiYeromenko for letting us know! I'll go ahead and close this issue.


Fixes #2

This branch fixes imaginary number to real. Perhaps this project is real.

I tested this.  Works great!  In an imaginary way, of course 👻


cbox share manager lists group shares for users named like the group (and vice versa)

I'm not sure how the cbox sql share manager is being used and I didn't actually verify my suspicion, but I believe the share manager doesn't properly distinguish between user and group shares when querying the received shares in https://github.com/cs3org/reva/blob/master/pkg/cbox/share/sql/sql.go#L331.
Looking at the query the share manager seems to return group shares to a user with the same name as the group even if the user is not part of the group and vice versa.
I'm not sure about the practical implications but it does look like a bug to me.

Hi @aduffeck, the SQL query for groups works as follow.
Imagine you (@aduffeck) are part of 3 groups (admins, devs and managers).
When querying the list of received shares we prepare the following SQL condition:
share_with=aduffeck AND share_with in ('admins', 'devs', 'managers')
I hope that answers your question.

@labkode the problem I was trying to highlight was that a if a user manages to sign up with the username "managers" they would see the "mangers" group share in their list of shares because the query compares the share_with field with both the username and the group names without taking the share type into account.
Does that make sense?

Hi @aduffeck, thanks for pointing that out! It indeed is a bug. I'll modify the SQL query to check share_type as well along with share_with.


Option to re-throw original exception instead of inner exception?

Observation.cs#L126
We're losing a lot of information when this re-throws the inner exception rather than the original exception.
Open to always using the original exception or adding an option somewhere to use the original exception instead?

In what scenarios are you losing information? I can't recall the exact reason, but I think this was set up to always throw the inner exception due to the way exceptions get thrown/caught in async methods.

I'm using the async method Scientist.ScienceAsync<T>(...).
In my case I'm getting an AmazonDynamoDBException which has an inner exception of HttpErrorResponseException.
The inner exception is useless, but that's what gets returned by ex.GetBaseException() and re-thrown.
I think you are thinking of AggregateException. If mine was wrapped in that, then AggregateException.GetBaseException() would return the correct thing. Otherwise, it keeps following InnerException until there's not one to follow anymore.
Async/await only wraps the exception with AggregateException if you use the blocking methods Wait()/Result. If I switch to those, then it works as expected.
What about something like:
try
{
    Value = await block();
}
catch (AggregateException ex)
{
    Exception = ex.GetBaseException();
}
catch (Exception ex)
{
    Exception = ex;
}

Ahh yes, that's what I was thinking.
The above proposal looks good to me - make it happen!


[GestureRecognizer][Labs] [11.1.0-beta1] PanGestureRecognizer do not working

Describe the bug
11.1.0-beta1

To Reproduce

Download Avalonia.Labs e6dd62f3623488ef13202d1dfa737fa54149b3f2
Run Sample app
Go Gesture
Click on Grab

Expected behavior
11.0.10

Avalonia version
11.1.0-beta1, 11.2.999-cibuild0046793-alpha, e31fc59e9c9d62f5efc7c39a6fbb2bf4a330ff3b
OS
No response
Additional context
On 11.1.0-beta and upper, if remove following line work
https://github.com/AvaloniaUI/Avalonia.Labs/blob/e6dd62f3623488ef13202d1dfa737fa54149b3f2/src/Avalonia.Labs.Controls/Base/Pan/PanGestureRecongnizer.cs#L88

Hi @MikeCodesDotNET ,
Why do you moved this issuse in labs ? It is breaking changes of Avalonia beta 1.


"In Development" Flag

Theres already this issue to document quality expectations of connectors being migrated to MeltanoLabs https://github.com/MeltanoLabs/Meta/issues/1 but we also need to document a process for connectors that were developed in MeltanoLabs (right now theres a lot of these because of tap-toberfest).
There should be a way to tell users that new tap/target is not production ready yet even though its hosted in MeltanoLabs. From an outside perspective users probably assume that connectors in this repo have been given our stamp of approval but many of the new connectors developed in MeltanoLabs are still experiemental and under development which could be misleading.
There needs to be a way for us to flag that a new connector is beta/experimental/in development/etc. and that users should help raise bugs to get it to a production state.
Right now theres a few connectors that use the convention of adding a note to the description but we should have a consistent way to do this and document it somewhere so users are aware of it.
https://github.com/MeltanoLabs/target-yaml
https://github.com/MeltanoLabs/tap-google-analytics
Action Items:

set all existing connectors to experimental
create a blurb in https://github.com/MeltanoLabs/Meta describing what experimental means
complete https://github.com/MeltanoLabs/Meta/issues/1 to define what it takes for a connector to be out experimental state

@tayloramurphy @aaronsteers What do you think? Do you have an opinion about what label we should give these - beta/experimental/under development. I'd vote for beta.

Not necessarily to put a vote in for the names yet, but I do I think "Beta" and "Under Development" should be different grains.

Unknown
Under Development
Beta
Stable

And perhaps separately or as requirements for "Stable":

CI Tests
PyPi / published status
...

@aaronsteers I agree with that. What were you thinking for the Unknown bucket? I'm not sure we need that since everything in MeltanoLabs should have gone through some sort of review as it was added.
I'm good with the naming - Under Development/Beta/Stable

@pnadolny13 - I think the benefit of Unknown bucket is just that it makes a built-in burndown list. I think functionally, it should probably carry the same warnings as "Under Development" and could be phased out once everything has been reviewed and/or after a certain amount of time has passed.

@pnadolny13 I think we can make custom badges on shields.io. I don't think they would show up in the list, but we could have them as part of the readme.

@pnadolny13 - I think the benefit of Unknown bucket is just that it makes a built-in burndown list. I think functionally, it should probably carry the same warnings as "Under Development" and could be phased out once everything has been reviewed and/or after a certain amount of time has passed.

@aaronsteers ah ok that makes sense. So we can set everything to Unknown to start then work up the hierarchy from there to make sure theyre all appropriately labeled.

@pnadolny13 I think we can make custom badges on shields.io. I don't think they would show up in the list, but we could have them as part of the readme.

@tayloramurphy yeah good idea. We can add those to the top of the READMEs. Looks like we can have something like this:

@pnadolny13 - LOVE it! ❤

These are the statuses as I see it right now:
tap-github - Beta
tap-dbt - Unknown
tap-stackexchange - Beta
tap-athena - UnderDevelopment
tap-google-analytics - Beta
tap-gitlab - Beta
target-athena - Beta
tap-slack  - Unknown
target-sqlite  - Beta
target-yaml  - Beta
tap-csv - Beta
tap-peloton  - Unknown
target-csv  - Beta
tap-sqlalchemy  - Unknown
Let me know if you disagree with any of those.

@pnadolny13 I think tap-dbt is pretty Stable. @edgarrmondragon thoughts?
tap-peloton is probably beta. it uses the SDK and relies on an working library underneath.
Also, I'd recommend adding spaces in between the words if we could. so Development Status: In Progress or something like that.

@pnadolny13 @tayloramurphy

I think tap-dbt is pretty Stable. @edgarrmondragon thoughts?

I think it's stable though it may be accumulating bugs 😬. I recall a user (Stephen Bailey, maybe?) saying the other day they identified a type mismatch in some streams.

@pnadolny13 I think tap-dbt is pretty Stable. @edgarrmondragon thoughts?
tap-peloton is probably beta. it uses the SDK and relies on an working library underneath.
Also, I'd recommend adding spaces in between the words if we could. so Development Status: In Progress or something like that.

@tayloramurphy sounds good I updated my previous comments to include spaces and your suggestions for tap-dbt and tap-peloton.

@pnadolny13 @tayloramurphy would it be helpful to have those statuses are metadata in the Hub? It could still be made into a badge through a JSON endpoint in the Hub and that way they'd be in-sync.

@edgarrmondragon interesting idea! Its sort of starting to remind me of https://gitlab.com/meltano/meltano/-/issues/2829 again. We have also have maintenance status (Unknown, Active, Unresponsive) which is kind of similar but still different.
@tayloramurphy I'm also hesitant to give anything in MeltanoLabs a "Stable" badge until we finish this issue and document what that means.

@pnadolny13 either that or if we want to allow the dev keep all that metadata in the repo, I think somewhere we talked about having a file like meltano.hub.yaml that gets scraped along with the other repo data.

@pnadolny13 - Regarding your comment:

We have also have maintenance status (Unknown, Active, Unresponsive) which is kind of similar but still different.

I think perhaps we should consider merging "Maintenance Status" and "Development Status":
What if we expand "Maintenance Status" to something like this:

@aaronsteers I like it 👍

@edgarrmondragon I hadnt heard about the meltano.hub.yaml, do you have an issue you can link me to? I also like the idea of having a hub endpoint for these repos to reference so the status is only stored in one place. Although we'd need to implement that new endpoint in the hub first.
@aaronsteers I like that break down! I can create an issue to update the hub definitions with those statuses and render them as badges instead of text ("Maintenance Status: Active") on the front end.
Unknown -
Active -
Unresponsive -

@pnadolny13

@edgarrmondragon I hadnt heard about the meltano.hub.yaml, do you have an issue you can link me to? I also like the idea of having a hub endpoint for these repos to reference so the status is only stored in one place. Although we'd need to implement that new endpoint in the hub first.

I couldn't the exact mention of such file but there's a .singer with similar intentions discussed in https://gitlab.com/meltano/sdk/-/issues/255.

@pnadolny13 - re:

I can create an issue to update the hub definitions with those statuses and render them as badges instead of text ("Maintenance Status: Active") on the front end.

I like this path forward. I think it's worth looking at other text renderings and evaluating them as shields also. Generally speaking, I think it's a nice touch to have consistent bade-like rendering on fields/metrics where it makes sense. (Probably it's possible to go "too far" with badges but I don't fee like we're there yet. 😅

@aaronsteers I created an issue for these two issue for maintenance status and other general badges.
https://gitlab.com/meltano/hub/-/issues/162
https://gitlab.com/meltano/hub/-/issues/163

Nice! Thanks, @pnadolny13 !


Ignore source_dest_check if nil

On master:
$ terraforming ec2 > ec2.tf
$ terraform plan .
Error loading config: Error parsing ec2.tf: Line 2817, column 20: syntax error

There's a line like:
    source_dest_check =

in the .tf file.
On this branch:
$ terraforming ec2 > ec2.tf
$ terraform plan .
There are warnings and/or errors related to your configuration. Please
fix these before continuing.

(the errors here are due to duplicate names in our AWS account, but the parser finishes)

I will review this in a day or two :eyes: :bow:

LGTM :+1: Thanks :exclamation:
Sorry for being late :bow:

Released as v0.6.2 :rocket:


[CU-8686khm2f] Adjusts event page layout once the event has finished

Task linked: CU-8686khm2f Handle Event Complete State


feat: Add Canadian provinces to CONST

Added a list of Canadian provinces. It will be used in global reimbursements flow. This is needed in the linked issue
Fixed Issues
$ GH_LINK
Tests

What unit/integration tests cover your change? What autoQA tests cover your change? N/A
What tests did you perform that validates your changed worked? N/A

QA

What does QA need to do to validate your changes? N/A
What areas to they need to test for regressions? N/A

I have read the CLA Document and I hereby sign the CLA

recheck


Refactor Fuel to make it more extensible

I really like Fuel but I think the existing design doesn't allow for easy extension. Here're some design suggestions that, IMO, will make the library a lot more user friendly and also reduce code. Thoughts?

Users should be able to use any encoder, decoder, HTTP client they want using the builder pattern on Fuel, like so:

Fuel.builder.build() // creates Fuel with all default settings
Fuel.builder
  .encoder(FuelJacksonEncoder())
  .build() // creates Fuel with Jackson encoder and rest default
Fuel.builder
  .encoder(FuelJacksonEncoder())
  .client(FuelOkHttpClient())
  .build() // you get the idea

Each of the components FuelJacksonEncoder etc also follows the same builder pattern.

Do away with the String.* extension methods. You always start with a Fuel instance as shown above, plain and simple.

The Triple is kind of confusing, because the Result is sort of forced on the user. When I make a HTTP request, I expect a response, and thank you for also providing the request at the same time. If I didn't ask you for a Result object, don't force it on me.

fuel.get("http://httpbin.org/get")
  .response { request, response ->
    // response.body would be Array<Byte>
    // response.bodyAs<T> would use the decoder to convert to T, where T can be, but not limited to, InputStream
    // response.as<Result> would convert the response to a Result object provided result module is in compile scope. If not this code wouldn't compile.
  }

Do away with responseString and responseJson as point 3 above is enough.

Hey, thank you @asarkar for your opinion, it is really helpful.

One thing that I wanna set Fuel apart from popular library like Retrofit is to offer the ease of usage. Having some sort of builder or configuration class seems to go a bit different than what I have in mind for Fuel. I know, this is debatable (because as of now Fuel already has FuelManager which is still a configuration), but it was designed from the beginning to be like that.
Speaking for Jackson module, I, at least personally, want it to be just another set of deserializer like what we have already done for Gson.

I found the String extension to be very helpful when trying things out quickly like calling some other full URL that differs from your regular one.
I have discussed to lot of people and some of them also expressed the same feeling as you as well where they do not like those String extension. However, I do have a strong reason to remove them either. I am not very adamant on this one though. I think if we can find a good reason to deprecate them, I think it is acceptable.

I mostly agree with you on this one. I feel that originally 2 years ago, I designed API to be super simple and prevent users to memorize anything. So, I figured out that I could return everything (request, response, result) so in the case, you don't need them just ignore (with _ in Kotlin), and when you do just use it.
After I have used it myself personally, I think I have only remembered just handful of occasion that I need to do something with Request. Meanwhile, I think Response is still helpful though because I have numerous of occasions that I have to check for response's statusCode.
So, you ask me in 2017, I might actually want to change the API to something like this instead
Fuel.request("https://httpbin.org/get").response(String/Json/Object) { response ->
}

Then, if there is a need to access for request or result. We might expose to the user like this
//access result
when (response.result) {
  is Success ->
  is Failure ->
}

//access request
println("Request: ${response.request}")

I believe (in a good intention) that Result object that I expose to the user is a good abstraction (maybe I am too optimistic). Also, it dictates the type T in result base on the interface that user call either (String/Json/Object). So, I feel like it is beneficiery to user.
But I am very open for reponse.dataStream to open for user to use in any other purpose as they see fit.
I hope I share some of my good thoughts, what do you think in here?

@kittinunf Here is my 2c.

...offer the ease of usage. Having some sort of builder or configuration class seems to go a bit different...

I understand where you are coming from, but I think sooner or later, you'll start seeing more requests for customization, especially as more users pick up on Fuel in specific, and Kotlin in general. Builder is a well-known pattern, and like you said, Fuel already has one, so having a single and consistent way of creating a client doesn't seem very complicated to me.

String extension

I made the case for removing them to simplify the API, and have a consistent workflow. If starting from String, it's not unreasonable to start from a URL, or URI, which you don't currently support. Why not leave all that conversion to the user instead of increasing the bulk of the library?

Result

I was arguing for removing it because it brings in a dependency on Result, as part of fuel core, and you're making a big assumption that the user even wants to use a functional abstraction.
As for response.request, I don't like that abstraction. A response does not contain a request, it is generated because of a request (cause and effect, happens after).

@asarkar Thank you for the discussion. To move this forward, do you think would it be nice to start from the things that we pretty much on the same page. Maybe starting from 3. and we are moving on from there.

I think FuelManager is OK for configuration and there is no need for extra builder.

FuelManager().apply {
client = FuelOkHttpClient()
encoder = FuelJacksonEncoder()
}

However, I think we should create a Fuel class that is created from FuelManager and pass the requests to the manager class:
val fuel = Fuel.of(fuelManager)
fuel.get("https://www.google.com")

The Fuel class will have a companion object that extends Fuel and has a property manager: FuelManager. In this way normal users could use Fuel as before.

The string extension are indeed very useful for quick prototyping. I use them a lot. We can move them from the main module to fuel-string-extensions module. A support for URL and URI and android Uri is nice, but seems like duplication. That's why I think the extraction to a different, extra, module is good - since it is extra we don't need to support everything.

The response[String|Json|Object] is OK in my opinion. Just an idea that will probably be good enough for you two (but will be ~magic):

data class ResponseResult<K>(val request: Request, val response: Response, val result: Result<K, FuelError>)
fun Request.[String|Json|Object](callback: ResponseResult<[String|Json|Object]>.() -> Unit)

4. I think Fuel is being hold back by Java support. Many methods that could have been extension methods are normal methods for Java support. Cleaning the classes and putting extra functionality in extensions is a great improvement imo for the code design.
Java support is great feature, but do we really need it?

@yoavst What's the difference between Fuel and FuelManager?

FuelManager is like the builder you suggested. It creates the configuration for creating a request. Fuel is just a simple interface to call it with simple API.
About extension, this is how I see it:
You provide the basic, minimal working functionality in the class itself, and enhance it with extension methods. Take a look at the methods response[String|Json|Object]. Are they integral part of the Request class? They are just wrapper  over response that apply a deserializer. They should not be part of the binary interface of Request, which should be as minimal as possible.

Seems like we didn't reach an agreement, so let's go with baby steps.
Do we have an agreement about making Request a dumb class and moving all the network related config to somewhere else? In this way we can pass Requests to different Fuel instances and have different configuration for each instance (it also means that all the base properties will be added only on request). No binary/source change should be required, since it will modify only internal and private fields.

@kittinunf and I had agreed that the response signature is unwieldy. I didn't get time to look into the source code, so I didn't comment further. As a result (of not having looked into source code), I only partly understand @yoavst proposal regarding refactoring Request. Perhaps, @kittinunf can comment on that, or you can just submit a PR with what you have in mind.

My Idea:
FuelBuilder / FuelManager:

Internal configuration for request (same as now. but if you want to rename it I'm not against it).

Fuel class + Fuel companion object:

Class that internally calls FuelManager and provides more friendly API for request.
One can build Fuel instance from provided FuelManager.
For backward compatibility and for simple cases, Fuel has companion object: Fuel that has FuelManager mutable field. So you could just call Fuel.get(...) if you need only a single Fuel instance.

Request (and MutableRequest??):

A Pojo class for creating a request.
Does not contain any implementation detail (like Future, SSLSocketFactory...).
Instead, FuelManager config (headers, parameters, ssl,...) will be injected on Client.
We do need to find a way to pass the configuration (FuelManager). Maybe will have a internal field with FuelManager instance, and a public method on Fuel class fun apply(request: Request): MutableRequest (which will replace the instance).
We can also provide MutableRequest interface which you receive from Fuel.method(...) and is mutable. the Request you receive from responseX {} is immutable.
*All the mutating methods of MutableRequest will become extension methods, though they will still be the preferred way to mutate a request.

So
val fuel = Fuel.of(fuelManager)
fuel.get("https://google.com").responseString() // custom fuelManager
Fuel.get("https://google.com").responseString() // default/singleton fuelManager
Can we use it now?


Chooser fields empty on init

All the chooser fields (ie. ImageChooser, PageChooser, etc.) are empty when initialized for me. I have the app first in my installed apps, so the solution that solved #47 did not solve the problem for me.
Getting the following JS errors, for what it's worth:

Could you tell us which versions of Django, Wagtail & wagtail-react-streamfield are you using?

Closing for now, as I am not able to reproduce the issue.


'category' column heading incorrect when using Advanced ("Write wikicode") option

Hello,
Thanks for making PattyPan; it's very useful. I have been using the Advanced option to upload files using the Biohist template, but whenever I create a spreadsheet with this option (i.e., the "Write wikicode" option), the category column label gets changed to category?trim, when it should properly be just category. Is this something you could look into?
Thank you,
Hugh
Windows 7 (6.1.7601); java version "1.8.0_40"

It should be categories, I think.
I just noticed that bug too on version 19.06.


Getting TypeError when I try to import google_search and newspaper modules

This is the error that I got.
TypeError: attrs() got an unexpected keyword argument 'eq'

I found that the google_search module does not exist under the news module. google contains the google_search module.
You can try  this:
from newsfetch.google import google_search

Hi, I tried this as well and it's still not working. I think this is an issue in the application.py file. Did you install the library using pip or did you clone it?

Attaching the complete error message here @MashodRana @santhoshse7en
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-70-99038758192b> in <module>
----> 1 from newsfetch.google import google_search

c:\users\hp\appdata\local\programs\python\python36\lib\site-packages\newsfetch\google.py in <module>
----> 1 from newsfetch.utils import (BeautifulSoup, Options, UserAgent, get, re, sys,
      2                               webdriver)
      3
      4
      5 class google_search:

c:\users\hp\appdata\local\programs\python\python36\lib\site-packages\newsfetch\utils.py in <module>
     11 from fake_useragent import UserAgent
     12 from newspaper import Article
---> 13 from newsplease import NewsPlease
     14 from requests import get
     15 from selenium import webdriver

c:\users\hp\appdata\local\programs\python\python36\lib\site-packages\newsplease\__init__.py in <module>
     10
     11 from newsplease.pipeline.extractor import article_extractor
---> 12 from newsplease.crawler.items import NewscrawlerItem
     13 from dotmap import DotMap
     14 from newsplease.pipeline.pipelines import ExtractedInformationStorage

c:\users\hp\appdata\local\programs\python\python36\lib\site-packages\newsplease\crawler\items.py in <module>
      4 # http://doc.scrapy.org/en/latest/topics/items.html
      5
----> 6 import scrapy
      7
      8

c:\users\hp\appdata\local\programs\python\python36\lib\site-packages\scrapy\__init__.py in <module>
     10
     11 # Declare top-level shortcuts
---> 12 from scrapy.spiders import Spider
     13 from scrapy.http import Request, FormRequest
     14 from scrapy.selector import Selector

c:\users\hp\appdata\local\programs\python\python36\lib\site-packages\scrapy\spiders\__init__.py in <module>
      8
      9 from scrapy import signals
---> 10 from scrapy.http import Request
     11 from scrapy.utils.trackref import object_ref
     12 from scrapy.utils.url import url_is_from_spider

c:\users\hp\appdata\local\programs\python\python36\lib\site-packages\scrapy\http\__init__.py in <module>
      9
     10 from scrapy.http.request import Request
---> 11 from scrapy.http.request.form import FormRequest
     12 from scrapy.http.request.rpc import XmlRpcRequest
     13 from scrapy.http.request.json_request import JsonRequest

c:\users\hp\appdata\local\programs\python\python36\lib\site-packages\scrapy\http\request\form.py in <module>
     14 from scrapy.http.request import Request
     15 from scrapy.utils.python import to_bytes, is_listlike
---> 16 from scrapy.utils.response import get_base_url
     17
     18

c:\users\hp\appdata\local\programs\python\python36\lib\site-packages\scrapy\utils\response.py in <module>
      8 import tempfile
      9
---> 10 from twisted.web import http
     11 from scrapy.utils.python import to_bytes, to_unicode
     12 from w3lib import html

c:\users\hp\appdata\local\programs\python\python36\lib\site-packages\twisted\web\http.py in <module>
    100 from incremental import Version
    101 from twisted.python.components import proxyForInterface
--> 102 from twisted.internet import interfaces, protocol, address
    103 from twisted.internet.defer import Deferred
    104 from twisted.internet.interfaces import IProtocol

c:\users\hp\appdata\local\programs\python\python36\lib\site-packages\twisted\internet\address.py in <module>
     99
    100
--> 101 @attr.s(hash=False, repr=False, eq=False)
    102 @implementer(IAddress)
    103 class UNIXAddress(object):

TypeError: attrs() got an unexpected keyword argument 'eq'

@prakharrathi25
I installed using pip.
And you can see in the issues, that I have opened another issue that is about google_search module
It will be more convenient if you provide a snippet of your code

Check once now. I have made some alters in the code.  Now its working. please install news-fetch==0.2.5

@prakharrathi25
I installed using pip.
And you can see in the issues, that I have opened another issue that is about google_search module
It will be more convenient if you provide a snippet of your code

Hi, this was an error that came during the importing of the module. I will install the updated version now. Thank you.

I'm having a similar issue - I cannot import the google_search because of web driver issue

@alyshahudson. Hi, Hope you are doing great!.
Sorry for the delayed response.
I have written the google_search function with python module called https://pypi.org/project/chromedriver-binary/
this module helps to avoid manual entering of chrome driver location in the code.
To get better usability, please do check your chrome version installed in your system. And also check with the related version from https://pypi.org/project/chromedriver-binary/#history and install it in your system.
Check then, it will work fine.
Hope that I have answered your query. Thank You

I'm having this error, how to fix this?


Add title attributes to all items in the repo list viewer

Resolves #6256
Leaving as a draft for now, going to see if there are more places this should be done as well.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@ad86b84). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #6258   +/-   ##
=========================================
  Coverage          ?   38.83%
=========================================
  Files             ?      355
  Lines             ?    50256
  Branches          ?        0
=========================================
  Hits              ?    19517
  Misses            ?    27909
  Partials          ?     2830

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 ad86b84...03c8bd5. Read the comment docs.

I noticed that github put full (multiline) commit message into title="" on the same screen... But I'm not sure if this time we want to have this one too... Might be a little waste of bandwith.

Counting this as ready for review. More enhancements could be made down the road if wanted/needed.

I wonder if this should be backported to 1.8?


lightning: parse nested params

Nested params were being stringified instead of kept in nested structure.
Before this PR, they were being saved like:
optim_params: '{"lr": 0.01}''

After this PR, they are being saved like:
optim_params:
  lr: 0.01

Codecov Report
Patch coverage: 100.00% and project coverage change: +0.01 :tada:

Comparison is base (03ec6cf) 96.14% compared to head (52cbcd4) 96.16%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #571      +/-   ##
==========================================
+ Coverage   96.14%   96.16%   +0.01%
==========================================
  Files          43       43
  Lines        2857     2866       +9
  Branches      239      241       +2
==========================================
+ Hits         2747     2756       +9
  Misses         65       65
  Partials       45       45

Impacted Files
Coverage Δ

src/dvclive/lightning.py
92.18% <100.00%> (+1.27%)
:arrow_up:

tests/test_frameworks/test_lightning.py
97.76% <100.00%> (ø)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


🚀 Feature: Support for rotating Postgres password / managed identities

🔖 Feature description
Add support in the new backend core Postgres database for database passwords that expire/are rotated during runtime, such as for usage with Azure Managed Identities where a token is used for the password.
🎤 Context
I'd like to switch away from username & password authentication of our Postgres database to Managed Identities in Azure to make the database more secure. At present there does not appear to be any support for this and would mean we need to extend the Database Manager
✌ Possible Implementation
Allow for providing a custom function to fetch the token and expirationChecker to the underlying Knex connection. Knex supports this via a connection function param as detailed here: https://knexjs.org/guide/#configuration-options
👀 Have you spent some time to check if this feature request has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
Yes I am willing to submit a PR!

Thanks for reporting this 🙏. There has been some effort in the past toward supporting dynamic database credentials, but nothing landed in production. Indeed, it would be a nice addition.

Well, it is critical for Azure environment, especially in enterprise industry. Up.

Hey just wanna keep this feature request up, we are needing that as well in our org...just need to have it to do what techdoc uploading to azure blob is doing.

Hi, just linking issues together: https://github.com/backstage/backstage/issues/17466 - this is also about rotating Postgres password but also the user, as that one is about support for Hashicorp Vault. No idea if this would be the same implementation but.

Also interested in a version of this for IAM auth to RDS - open to picking it up, but wanted to talk a bit about what this would look like in the new backend system.
My initial thought was to use https://github.com/backstage/backstage/pull/25593 to either

move the db connectors to db connector service modules
move just the knex initialization logic to separate service modules

Both solutions seem to have the same problem of "How do I override the pg/mysql/sqlite?" connector with my custom implementation though, any ideas on a good path forward here? Can we use extension points in services to provide a more clear id -> implementation map and override structure (AFAICT no 🤔)?
cc: @Rugvip / @camilaibs from the service modules PR.

@aramissennyeydd Hey! I've made some small movement toward this, in terms of untangling the old code so that it's basically all concentrated in e.g. postgres.ts.
What I thought remains to do, to support the ask in this issue specifically, is to change createPgDatabaseClient slightly, such that it uses the callback form of connection. Then some logic around properly feeding that expirationChecker callback with a true value when it's time to reconnect.
One of the things to fix on the way there is that the old code creates a ConfigReader with computed config, so you won't be able to use .subscribe on it to listen for changes if that's the mechanism you are looking to use - it severs the "connection" to the original app-config

@freben Thanks! My original thinking was to add JS function-based support similar to what's demonstrated here.
How does the config subscribe work?  Config-based support definitely seems like the better generic solution, but from what I can tell it would require a separate process/module/something to do the work of getting the token and updating your config file inline?

subscribe is very simple - it calls a callback whenever that config node or any of its children have a change of data. So you'd basically do (very pseudocode)
let itIsTimeToReload = false;
config.subscribe(() => {
  itIsTimeToReload = true;
});

return knex({
  connection: async () => {
    // ...
    itIsTimeToReload = false;
    return {
      // ...
      expirationChecker: () => itIsTimeToReload,

or so :)

@aramissennyeydd Hey! I've made some small movement toward this, in terms of untangling the old code so that it's basically all concentrated in e.g. postgres.ts.
What I thought remains to do, to support the ask in this issue specifically, is to change createPgDatabaseClient slightly, such that it uses the callback form of connection. Then some logic around properly feeding that expirationChecker callback with a true value when it's time to reconnect.
One of the things to fix on the way there is that the old code creates a ConfigReader with computed config, so you won't be able to use .subscribe on it to listen for changes if that's the mechanism you are looking to use - it severs the "connection" to the original app-config. So that ol' code needs to be unwound a little.

Hey based on our infrastructure we only allow connections to RDS via token issuance through IAM role, so we are unable to use a simple user/password setup. Support for rotating passwords/IAM is quite important for us so would be good to know if this is being actively worked on?
With regards to your proposed changes to postgres.ts, do you have a draft PR/working implementation I could take a look at? I'm happy to contribute and see what changes needs to be done.

@jaimewukb I've been making slow progress here - this ends up being a pretty significant limitation of knex, https://github.com/knex/knex/issues/3578. The expirationChecker doesn't actually get used to recreate the client so the credential refresh logic isn't working. I think you can forcefully destroy/recreate the pool, but I haven't gotten that far.


rework all quests

I have started to rework the tutorials, merge everything into one stream and plan some time to improve content.

why have I started this :)

done so far


Habitat_sim install script for Colab is failing - new error

Habitat-Sim version
A new error is showing when executing
curl -L https://raw.githubusercontent.com/facebookresearch/habitat-sim/master/examples/colab_utils/colab_install.sh | NIGHTLY=false bash -s
It was working well as of October 2, 2022.
🐛 Bug
Habitat_sim install fails during this part of the installation:
Cloning into 'habitat-sim'...
remote: Enumerating objects: 925, done.
remote: Counting objects: 100% (925/925), done.
remote: Compressing objects: 100% (865/865), done.
remote: Total 925 (delta 82), reused 543 (delta 46), pack-reused 0
Receiving objects: 100% (925/925), 44.23 MiB | 22.20 MiB/s, done.
Resolving deltas: 100% (82/82), done.
ERROR: Could not open requirements file: [Errno 2] No such file or directory: './requirements.txt'
ERROR: Could not open requirements file: [Errno 2] No such file or directory: './habitat_baselines/**/requirements.txt'
python: can't open file 'setup.py': [Errno 2] No such file or directory
An error occured during the installation of Habitat-sim or Habitat-Lab.
Steps to Reproduce
Executing the script in colab is sufficient.

!curl -L https://raw.githubusercontent.com/facebookresearch/habitat-sim/master/examples/colab_utils/colab_install.sh | NIGHTLY=false bash -s
I have attached all the messages from the execution of the script. The error is at the very end of the long attached file "install_error.pdf", the last few lines.
install_error.pdf

Thanks @srkiyengar. The file was moved in lab. The above PR should fix this.


The getIsStancePhase logic on devel is broken

We noticed that while testing https://github.com/robotology/walking-controllers/pull/65, the robot was not able to walk anymore. When substituting https://github.com/robotology/walking-controllers/blob/2d0a4a5e0c851b05c001b15b17abadf2aea257fe/src/WalkingModule/src/Module.cpp#L667 with
double threshold = 0.001;
bool stancePhase = iDynTree::toEigen(m_DCMVelocityDesired.front()).norm() < threshold;
m_walkingZMPController->setPhase(stancePhase);

we managed to restore the expected performances.
cc @GiulioRomualdi

While looking at the code, the line https://github.com/robotology/walking-controllers/blob/2d0a4a5e0c851b05c001b15b17abadf2aea257fe/src/TrajectoryPlanner/src/TrajectoryGenerator.cpp#L669 is suspicious.
The Clang static analyzer is showing the following warning:
TrajectoryGenerator.cpp:669: warning: multiple unsequenced modifications to 'stancePhaseDelayCounter'

Indeed, its behavior is probably undefined https://stackoverflow.com/questions/47507558/multiple-unsequenced-modifications-to-a-a-a.
This may be coherent with the fact that the robot seems to never exit the stance phase. A possible fix is
stancePhaseDelayCounter = stancePhaseDelayCounter == 0 ? 0 : stancePhaseDelayCounter - 1;

Unfortunately, the patch proposed in https://github.com/robotology/walking-controllers/issues/66#issuecomment-683747596 does not fix the problem.

I've probably found the bug. m_isStancePhase is not advanced like the others. This means that we are always in the stance phase even if the robot is walking. I open a PR for fixing this. If @S-Dafarra and @prashanthr05 are going to test the something on the robot I would give it a try.

I've probably found the bug. m_isStancePhase is not advanced like the others. This means that we are always in the stance phase even if the robot is walking. I open a PR for fixing this. If @S-Dafarra and @prashanthr05 are going to test something on the robot I would give it a try.

I can give it a try!

That's the PR: https://github.com/robotology/walking-controllers/pull/68

#68 fixes the problem. We can close the issue


Implement migration for Pre-image for v1.2.0

Description
As part of the upgrade to v1.2.0, a lazy migration needs to be implemented. This is necessary because Pre-image now uses Considerations and no longer holds deposits directly.
Alternative: Remove all preimages.


Implementation for SDL2

I have seen in the examples that the implementation can be done with winit's window, but im a common user of sdl2 and im not sure if is there a way of using it with the sdl2 binding for Rust.

Hello!
Octotablet is generic over windowing APIs through the use of the raw-window-handle traits - which sdl2 does implement. Unfortunately, it is using version 0.5.0 of raw-window-handle while octotablet uses v0.6.0 due to it's stronger lifetime guarantees.
There are a few solutions here, we could make a PR to sdl2 to bump the version, or I could implement more versions of raw-window-handle in octotablet (with an unsafe API due to eroded safety guarantees of older versions!),
In the meantime, this is possible to implement in client code, making a thin wrapper type that that implements the newer raw-window-handle traits by deferring to the older version of the traits used by sdl2, and passing that wrapper type to octotablet::Builder::build_raw() - an unsafe function, as it would then be up to you to guarantee that the octotablet instance doesn't outlive your window.

Do you know how to access to the raw window handle traits in sdl2? i since the reply i have been searching for them to make some tests with the build_raw() and sadly i cant find info about it to use

Support for it in sdl2 seems to be under the feature "raw-window-handle," so add
sdl2 = { version ="0.36.0", features = ["raw-window-handle"] }

to your Cargo.toml :3
That feature flag doesn't seem to be documented anywhere, but it is visible under the required features for the wgpu example of the sdl2 project. Weird!

Thanks, i surrendered to the idea since i found some "use of raw-window-handle" in some places, i didn't found info about how to work with it, i tested using winit and found that in Huion tablets the pressure its not working.
Even though, nice job, im looking forward to see the updates of this project. :D

Hello, I have made a PR with demo code for SDL2, which you can view here!

i tested using winit and found that in Huion tablets the pressure its not working.

Oh my! Would you mind opening a new issue for that with some details on your system?
E.g., OS, tablet model, driver version, or some output from the eframe-viewer octotablet example. Every existing octotablet platform supports styluses with pressure sensitivity so this is probably a bug if octotablet is not properly reporting it.
If you're on windows, the Huion tablet driver has a checkbox for "Windows Ink", the API that octotablet relies on for windows, does that affect anything?

I didn't knew about the existence of the "windows ink api selector" on the huion drivers, i will test that and based on the output i will open the new issue.