Exception in ASGI application when using requests post

I have implemented oauth2 flow with Strava API some time ago and it is up and running at http://velometria.com/strava-oauth/authorize
If I deploy this app now however, I get this error:
strava-oauth    | DEBUG: Requesting: https://www.strava.com/oauth/authorize?client_id=XXXX&response_type=code&redirect_uri=http%3A%2F%2Fdev.velometria.com%2Fauthorization_successful&scope=read%2Cprofile%3Aread_all%2Cactivity%3Aread&state=https%3A%2F%2Fgithub.com%2Fsladkovm%2Fstrava-oauth&approval_prompt=force
strava-oauth    | INFO: ('<IP_ADDRESS>', 52408) - "GET /authorize HTTP/1.1" 301
strava-oauth    | DEBUG: Exchaning code for token with {'client_id': 'XXXX', 'client_secret': 'XXXX', 'code': 'XXXX', 'grant_type': 'authorization_code'}
strava-oauth    | INFO: ('<IP_ADDRESS>', 52430) - "GET /authorization_successful HTTP/1.1" 500
strava-oauth    | ERROR: Exception in ASGI application
strava-oauth    | Traceback (most recent call last):
strava-oauth    |   File "/usr/local/lib/python3.6/site-packages/uvicorn/protocols/http/httptools_impl.py", line 368, in run_asgi
strava-oauth    |     result = await app(self.scope, self.receive, self.send)
strava-oauth    |   File "/usr/local/lib/python3.6/site-packages/uvicorn/middleware/asgi2.py", line 7, in __call__
strava-oauth    |     await instance(receive, send)
strava-oauth    |   File "/usr/local/lib/python3.6/site-packages/starlette/middleware/errors.py", line 125, in asgi
strava-oauth    |     raise exc from None
strava-oauth    |   File "/usr/local/lib/python3.6/site-packages/starlette/middleware/errors.py", line 103, in asgi
strava-oauth    |     await asgi(receive, _send)
strava-oauth    |   File "/usr/local/lib/python3.6/site-packages/starlette/middleware/gzip.py", line 33, in __call__
strava-oauth    |     await self.inner(receive, self.send_with_gzip)
strava-oauth    |   File "/usr/local/lib/python3.6/site-packages/responder/api.py", line 264, in asgi
strava-oauth    |     req, scope=scope, send=send, receive=receive
strava-oauth    |   File "/usr/local/lib/python3.6/site-packages/responder/api.py", line 353, in _dispatch_request
strava-oauth    |     await self._execute_route(route=route, req=req, resp=resp, **options)
strava-oauth    |   File "/usr/local/lib/python3.6/site-packages/responder/api.py", line 376, in _execute_route
strava-oauth    |     await r
strava-oauth    |   File "/usr/local/lib/python3.6/site-packages/responder/background.py", line 44, in __call__
strava-oauth    |     return await run_in_threadpool(func, *args, **kwargs)
strava-oauth    |   File "/usr/local/lib/python3.6/site-packages/starlette/concurrency.py", line 24, in run_in_threadpool
strava-oauth    |     return await loop.run_in_executor(None, func, *args)
strava-oauth    |   File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
strava-oauth    |     result = self.fn(*self.args, **self.kwargs)
strava-oauth    |   File "api.py", line 59, in authorization_successful
strava-oauth    |     r = requests.post("https://www.strava.com/oauth/token", params)
strava-oauth    |   File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 116, in post
strava-oauth    |     return request('post', url, data=data, json=json, **kwargs)
strava-oauth    |   File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 60, in request
strava-oauth    |     return session.request(method=method, url=url, **kwargs)
strava-oauth    |   File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 533, in request
strava-oauth    |     resp = self.send(prep, **send_kwargs)
strava-oauth    |   File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 646, in send
strava-oauth    |     r = adapter.send(request, **kwargs)
strava-oauth    |   File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 516, in send
strava-oauth    |     raise ConnectionError(e, request=request)
strava-oauth    | requests.exceptions.ConnectionError: HTTPSConnectionPool(host='www.strava.com', port=443): Max retries exceeded with url: /oauth/token (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7ff501667a58>: Failed to establish a new connection: [Errno -2] Name or service not known',))

The authorization_succesfull route is implemented like this:
@api.route("/authorization_successful")
def authorization_successful(req, resp):
    """Exchange code for a user token"""
    params = {
        "client_id": os.getenv('STRAVA_CLIENT_ID'),
        "client_secret": os.getenv('STRAVA_CLIENT_SECRET'),
        "code": req.params.get('code'),
        "grant_type": "authorization_code"
    }
    logger.debug(f"Exchaning code for token with {params}")
    r = requests.post("https://www.strava.com/oauth/token", params)
    resp.text = r.text

The most surprising that the app deployed few month ago is still app and running. Some issues with new versions of requests, responder?

Update:

If I don't execute the requests.post(), but rather return some resp.text - the route executes well.
Rolling back to requests==2.21.0 does not help

Something with https?


Testing environment times out when waiting for the catalog to be ready

I tried using DOCKER_HOST with an AWS EC2 VM and the testing environment timed out on the following line.
https://github.com/irods/irods_testing_environment/blob/107bd31412f9c00219bf2e1ffbd60dbe6a63d171/irods_testing_environment/database_setup.py#L405
The testing environment could not reach the remote container because the IP of the remote container is not reachable.

we think the fix will be to ping/reach the database container from the catalog provider instead... perhaps via docker exec.

Trying this again now, it seems that the IP address is coming back empty for some reason when running on a remote daemon, even though the container information can be retrieved. Will reopen this.

I observed the catalog service going down shortly after it was created. docker logs on the container showed the following message:
2023-05-04 19:10:46+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.42-1.el7 started.
2023-05-04 19:10:55+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
        command was: mysqld --transaction-isolation=READ-COMMITTED --collation-server=latin1_general_cs --verbose --help --log-bin-index=/tmp/tmp.DC79VpO70j

We may need to change the command defined in the service for the mysql-5.7 projects.

Running on my local machine, I found that the logs were much happier...
2023-05-04 19:17:35+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.30-1debian10 started.
2023-05-04 19:17:35+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2023-05-04 19:17:35+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.30-1debian10 started.
2023-05-04 19:17:35+00:00 [Note] [Entrypoint]: Initializing database files
...

Notice that the version is 5.7.30 instead of 5.7.42, and it says debian10 instead of el7. I tried using 5.7.30 instead and the same problem occurs, so I'm not really sure what's going on.
I haven't been able to locate any other logs as of yet

I definitely see more success running mysql against my local docker daemon so I think our experiences are identical.
What you've shown may be important for stabilizing testing with mysql.
Did you check to see if there were later versions of mysql 5.7?


use the data

Hi, author, if I wanted to use the results from the ZEST tests (successful and failed), how would I open the files corpus/ ID_000000 and Failures/ID_000000 and extract the contents?

Hello.
Assuming that you have run a test with a generator, the files themselves do not contain any human-readable data. The files contain binary data that helps you run your generators. You can run mvn jqf:repro to reproduce the test executions corresponding to the generator choices saved in those files. Be sure to read the documentation of various options that repro supports.

See also #88.

Hello.
Assuming that you have run a test with a generator, the files themselves do not contain any human-readable data. The files contain binary data that helps you run your generators. You can run mvn jqf:repro to reproduce the test executions corresponding to the generator choices saved in those files. Be sure to read the documentation of various options that repro supports.

thank you very much.your information is very useful to me!


fix build on fedora 21

add missing ifdef in euroliteusbdmxpro.cpp
reorder package detection in dmxusb plugin
Will merge right after travis' green light.

@plugz in Travis we trust :smile:


Extension Rejection - Unknown how to resolve

We’ve recently tried to submit our Extension for approval with Edge but it got rejected and I’d like to understand how I can provide the input that is being requested.
The report details I received as reason for rejection as as follows:
1.1.5 Distinct Function & Value; Accurate Representation
The store listing for the extension is not informative of the extension’s features and functionality.
1.3 Product is Testable
Unfortunately, we can't test the extension because its primary functionality is unclear. Please provide more information or steps to test in the Submission Options > Notes for Certification field when the extension is resubmitted.
What I don’t understand is where I’m actually supposed to provide the additional information Microsoft is requesting. Where is Submission Options > Notes for Certification?
I don’t see that going through any of the steps for submitting the extension for review.

Hey @jackiesweet, to assist you further, could you please provide your seller ID? This will help us verify your account and provide more accurate support.
Looking forward to your response!

@ManikanthMSFT Where is the seller id? I followed this: https://learn.microsoft.com/en-us/microsoft-edge/extensions-chromium/publish/manage-settings and I do not have a developer settings menu option. The store ID is 0RDCKBVR5K93

@jackiesweet, thank you for providing us with the store ID. We will investigate the issue and will get back to you with an update.

@ManikanthMSFT  just wanted to follow up on the status of this

Hi @jackiesweet,
Regarding your certification results.
1.1.5 There should be distinct and informative details about your extension and its functionality in the listing (metadata) for your extension.

Please provide more informative details about your extensions functionality.

1.3 Your extension must be fully testable, and all the steps required for testing the product must be provided at the time of submission.
Please follow the guidelines here https://learn.microsoft.com/en-us/microsoft-edge/extensions-chromium/publish/publish-extension#step-6-complete-your-submission
to complete and submit your extension

@bhuvanapriyap this doesn't answer my original question. how can i find the notes for certification page? i can't find it anywhere


fix(windows-installer): add new cleanup script on install

Issue #, if available:
Description of changes:

Add new script that runs upon installation to cleanup any dangling Finch VM

This is needed because earlier versions of Finch's Windows installer don't clean up properly on uninstall / reinstall
Even with this change, user's will be prompted to stop limactl on reinstall if Finch is running. Regardless of which action they choose, the install script will cleanup any dangling VMs.

Testing done:

Tested locally

[x] I've reviewed the guidance in CONTRIBUTING.md

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

Overriding as regular CI tests don't validate Windows installers.


Treat inputs the same

When having an umbrella project then steamroll doesn't find the local rebar.config with the ?DEFAULT_INPUTS.
Documentation now states which parameters the ?DEFAULT_INPUTS is valid for.
I refactored the code to permit multiple flags for input files as well as added a --app flag for when you only want to format one app.
This is now possible:
rebar3 steamroll -f rebar.config -f src/steamroller_algebra.erl -d test/
===> Steamrolling file: rebar.config
===> Steamrolling file: src/steamroller_algebra.erl
===> Steamrolling file: test/steamroller_algebra_test.erl
===> Steamrolling file: test/steamroller_ast_test.erl
===> Steamrolling file: test/steamroller_formatter_test.erl

@sebastiw Thanks a lot for this!
Could you explain the use case a little bit more?
The -f and -d options weren't designed for production use. Instead you should just run rebar3 steamroll and let steamroller get its configuration from your rebar.config.
If steamroller can't currently find the rebar.confg for each app then I think the right thing to do is to fix it so that we use each app's rebar.config correctly. Keen to hear your thoughts!

The -f and -d options weren't designed for production use.

OK, should they be removed? I think they are quite helpful, but it is confusing and took me a while to figure out why inputs and the -d flag give different results.

Instead you should just run rebar3 steamroll and let steamroller get its configuration from your rebar.config

This is where it gets tricky:
Should each app maintain it's own steamroller config? Yes
Is it the same for umbrella projects? I guess yes.
How about if they don't care, should the parent config be used? Maybe, or just exclude the app
What about excluding generated code?
What about when an app has code that can't or shouldn't be formatted. I.e. when epp crashes (steamroller dies in this case).
The current approach is to read in the steamroller config from the parent, and only apply it to the childs.

This PR does a couple of things.

Add documentation in the help text for the -d and -f flags that does not use the input parameter.
Add a --app flag for formatting one specific application.
Default also format current directory, not only child applications.
Allow use of multiple -f and -d flags
Aligning the code flow: First get all files, then run the same formatting flow on them. This makes it easier to add other flags in the future (how about an --exclude flag?) and allows for easier debugging.

Lots of great points here.

OK, should they be removed?

Nope, they're useful for development. For example, if a file is causing steamroller to crash we can repeatedly run steamroller on that file as we hunt for the cause. But that's the intended limit of the usage. That should probably be clearer in the help text.
I don't think we need to worry too much about this. Code style should be consistent within projects and Steamroller is deliberately designed to prevent people having to worry about configuring it much.
I think the solution here is probably to:

Use the child config if it's available
Otherwise fall back to the parent config
Otherwise fall back to the default config

If you don't want to use Steamroller on a particular app for whatever reason you could always put {inputs, []} in your steamroller config.
Excluding generated code has come up in the past with people trying to run rebar3 steamroll --check on their CI. The solution so far has been to run the formatting check before compilation so the generated code isn't checked. Does that help with your particular situation?
Could you open an issue with an example code snippet which is making steamroller crash? That's a bug and should be fixed.

That should probably be clearer in the help text.

I agree, that could be more clearer

I think the solution here is probably to:

Use the child config if it's available
Otherwise fall back to the parent config
Otherwise fall back to the default config

Sounds good

If you don't want to use Steamroller on a particular app for whatever reason you could always put {inputs, []} in your steamroller config.

true, but how about deps other you don't have full control over? Might not be a real problem so let's not worry to much I think.

The solution so far has been to run the formatting check before compilation so the generated code isn't checked.

would that be to do a mandatory clean before every compilation? that sound insane IMO.
Is there an easier way to do it?

Could you open an issue with an example code snippet which is making steamroller crash? That's a bug and should be fixed.

When checking my notes I don't have any example of this. :1st_place_medal:
I tried a couple of other formatters which used otp libraries which do have bugs in them in some edge cases.
Only problem I found with steamroller is that it is very slow, even with -J option..

Lets get this merged.
One thing this PR does which I don't like is when we format a directory we now format all the files in "build" and other directories which start with "". I'll make it so we ignore these again in a later update by adding an exclude option.

would that be to do a mandatory clean before every compilation? that sound insane IMO.
Is there an easier way to do it?

No, I don't mean a mandatory clean before every compilation because that's insane ;) I mean when you use steamroller as part of CI you can run the formatting check first, before compiling, and that way all generated code is ignored (because it's not generated yet). When developing locally I don't really see a reason to ignore generated files. Is formatting speed the issue? Either way, the exclude option will fix that.
Performance needs to be looked at!

Ah then I get it, good point!
About benchmark, when testing I got it to complete after around 3.5 minutes (repeated calls) on my Dell XPS 13 laptop on a not very large code base. I tested with increasing number of workers (with --J) but it took around the same time or even a bit longer.
I'll look into it if I get some time.

Sorry @sebastiw I'm going to have to revert this. It looks like the addition of "." means that we're formatting all the files twice! If you're using your branch for benchmarking that'll be a significant contributor to the poor performance.
I'm planning to strip as much complexity as possible from the interface over the coming days - including removing the -f and -d options. I suggest you try to get things to work as well as you can using the inputs config setting & re-assess the situation when the next version is released!

No, benchmarked with hex.pm version from late May.

@sebastiw https://github.com/old-reliable/steamroller/pull/25 should fix the performance issues. Specifically https://github.com/old-reliable/steamroller/pull/25/commits/336b918ceb0935b73a17859243e6cdef3d6053e1 .
Tested with otp/lib/kernel/test/socket_SUITE.erl, a 45k line file, on my machine gives a speedup from 150s to 2.7s - approx 55x. Will release a new version shortly.

Greatly appreciated. Yes that looks like you scaled away some time!


Add SNX to the bridge

Hi there, thanks for your interest in Avalanche. We have recently updated the review process for tokens on the Avalanche Bridge. I'm closing all of the pending PRs in this repo now, and someone from our business development team should reach out to you soon if they have not already.


Issue with 32bpp on ubuntu Simulator

using above picture I created the C array with true color and try using lvgl on pc simulator (32bpp) , It is showing as below. Could you please help me on this ?

Please check what happens if you create a button. It should have bluish color.

I close this issue because there was no activity here for a while .
If you have remarks about this topic feel free to comment here and reopen the issue.


Adds integration tests for the Async Firstore module

Adds integration tests for the async Firstore module.
Related to https://github.com/firebase/firebase-admin-python/issues/104

Added staging label to trigger integration tests


Add template

I've made some changes to make this into a project.
I renamed the project to include a common name (MyCloudService) and to also include a .. Having a . is important for getting the replacements correct.
Some things you likley want to update before shipping:

Fill in NuGet metadata in file at CloudService.TemplatePack/template/templatepack.CloudService.TemplatePack.proj
Fill in VS Extension metadata at CloudService.TemplatePack/source.extension.vsixmanifest

I noticed after project create that the initial build fails, but further builds work. This is the same experience I had when I clone this repo for the first time. Not sure what's causing that.
When you are ready you should publish the following:

nuget package to nuget.org
.vsix file to the VS marketplace

If you have questions let me know

@sayedihashimi Thank you for this!
The clean build scenario should be fixed now; I added a build dependency between the WebRole and the Website to ensure they're not built in parallel...I think that was the issue.
Couple of questions since I'm not overly familiar with creating templates:

What should the NuGet be named? Right now it's creating it with packageId templatepack.CloudService.TemplatePack
What's the best way to test this?
How do the VSIX and NuGet package relate?

What should the NuGet be named? Right now it's creating it with packageId templatepack.CloudService.TemplatePack

The name is derived from the PackageId property and if that is not set the file name is used. In your case I think it's better to add a new property PackageId. The name of the file must be in the format template.*.proj
FYI see NuGet csproj ref at https://docs.microsoft.com/en-us/dotnet/core/tools/csproj#nuget-metadata-properties for more properties you may want to se.

What's the best way to test this?

Initially you can start with dotnet new --install <path-to-root-folder>. After you get that working you should uninstall it with dotnet new --install <full-path-to-root-folder>. Run a build and then do dotnet new --install <nuget-pkg-path> to test the template coming out of the .nupkg file.

How do the VSIX and NuGet package relate?
The .nupkg contains the template content. The .nupkg is embedded in the .vsix. When you release you should do the following:

Update version number in .nupkg
Update version number of vsix
Publish .nupkg to nuget.org (or whatever nuget repo you are going to)
Publish .vsix to VS marketplace (or wherever you are sharing that file)

Is there an easy way to specify the output path of the NuGet and VSIX (suppose I wanted it in an ..\artifacts directory)?

These files are going into the output folder. If you want them somewhere else I'd recommend you copy the file to the final location after the build has completed with a custom target. If that doesn't work for you let me know why.

BTW you should take a look at the Content folder in the .nupkg. If extra files are being included in the content you can exclude them by updating the template.*.proj file by adding additional ExcludeFromPackage  elements. If you have questions let me know.

Hi @onovotny any questions on this? I just wanted to double check that you have everything that you need here.

Thanks, I think so, just haven't had time to test.
Is there an example of one of the NuPkg's on NuGet.org and in the Gallery that I can compare?

Thanks!

@sayedihashimi I added some auto versioning so the nuget and vsixmanifest get auto-incremented automatically and stay in sync.
This appears to all work, but I'd appreciate if you can give the final artifacts a glance and confirm?
https://ci.appveyor.com/project/onovotny/aspnetcorecloudservice/build/1.0.8/artifacts


Add spring-boot-configuration-processor

Auto-generate the META-INF/spring-configuration-metadata.json
which will improve the DX when looking for the properties available
via ConfigurationProperties.

Hello, @lhotari I understand this is small change, however can share the plans for the 0.2.1 release, maybe this commit can end up there? That would be much appreciated.


fix: update API response schema for Datasets

Apparently there exists some data corruption in deployed envs. Allow processing status
entity to be null in response for flexibility. Handle key error.

#TICKET_NUMBER

Reviewers
Functional:
@Bento007
Readability:
@nayib-jose-gloria
Changes
A number of small tweaks need to be made to make sure the API response schema matches up with the db schema and with the data that actually exist in the deployed environments.

make ontology_elements nullable
allow for/handle null 'processing status' (corrupted data, but allow nonetheless)
repackage entities as array when they are expected to be but are not (inconsistent handling of old data)
Only include .h5ad and .rds for returns for dataset assets

QA steps (optional)
Notes for Reviewer

Do any tests need to be added or updated to verify the new behaviors?

@Bento007 going to add a CXG asset to the test data to make sure it gets filtered out.


[1.13] Support large uploads and processing times for services via AR

High-level description
Backport #5376 to 1.13
Support large uploads and long processing times for services accessed through Admin Router's /service endpoint. This supports package upload, required for package registries launched using Marathon.
This has been tested manually using the 10GB beta-mesosphere-jupyter-service-1.3.0-0.35.4-beta.dcos package.
There is a separate issue DCOS-51222 for creation of an integration test. I consider this separation to be appropriate in this case, as there are non-trivial problems to be overcome for the test (time and bandwidth usage).
Corresponding DC/OS tickets (obligatory)
These DC/OS JIRA ticket(s) must be updated (ideally closed) in the moment this PR lands:

DCOS-52768 COPS-4651 repo 413 Entity too large / 504 timeout

Related tickets (optional)
Other tickets related to this change:

COPS-4651 413 Entity Too Large error when trying to add any packages where the .dcos bundled file is over 1 GB

Checklist for all PRs

[x] Added a comprehensible changelog entry to CHANGES.md or explain why this is not a user-facing change:
[ ] Included a test which will fail if code is reverted but test is not. If there is no test please explain here: Manually tested. Testing requires a large (10GB) download/upload, which takes significant time and bandwidth.
[x] Read the DC/OS contributing guidelines
[x] Followed relevant code rules Rules for Packages and Systemd

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

[ ] Change log from the last version integrated (this should be a link to commits for easy verification and review): example
[ ] Test Results: [link to CI job test results for component]
[ ] Code Coverage (if available): [link to code coverage report]

PLEASE FILL IN THE TEMPLATE ABOVE / DO NOT REMOVE ANY SECTIONS ABOVE THIS LINE
Instructions and review process
What is the review process and when will my changes land?
All PRs require 2 approvals using GitHub's pull request reviews.
Reviewers should be:

Developers who understand the code being modified.
Developers responsible for code that interacts with or depends on the code being modified.

It is best to proactively ask for 2 reviews by @mentioning the candidate reviewers in the PR comments area. The responsibility is on the developer submitting the PR to follow-up with reviewers and make sure a PR is reviewed in a timely manner. Once a PR has 2 ship-it's, no red reviews, and all tests are green it will be included in the next train.

The conflict in CHANGES.md will probably be fine as of the union merge strategy that Mergebot applies for CHANGES.md, but to be sure this PR should probably be rebased onto the current head of the 1.13 branch.

@mesosphere-mergebot label Ready For Review


Minor additions to import section

Wanted to use common module source for a new module I was working on but couldn't with the current setup. Rearranged the import to go first, then added comments to append custom script. This allows a user to import, say, PowerView, then expose those functions to their custom script. Also, I saw in a few commit messages that you were slowly PEP8ing things, so I did a bit of that too.

I'm going to close this and resubmit for the new 2.0 templates once the dust has settled.


Reminder alerts are brought over but they shouldn't be

If the original event has a reminder, this is unfortunately copied over to the new event. Which is unwanted since it will just be a duplicate alert to the one for the original event already on your calendar. Or maybe it is not copying but doing something according to the default alert policy for events in the new calendar. In either case, it should clean the event of alerts before creating. I found this app useful for doing a mass edit to clear the alerts afterwards.

Thanks for the issue.

maybe it is not copying but doing something according to the default alert policy for events in the new calendar.

I think this is what's going on; because the script does not copy the original event, instead it creates a new event using the original events start and end date.
Handily, the Google App Script API provides a removeAllReminders method that we can use to delete the notifications. I committed f988d9367dc86ec35c1d1533e15e7719c71cbdf1 to do this.
However, it will only affect newly created events. If you want to apply this to existing events, you have to delete them; so the script will recreate them without notifications. I implemented a small workaround to do that, and documented that on the README (04fa81eed6f34196aba16d9ad4bf8593277ac3d9).

I'm closing the issue, but let me know if it does not work for you!


Fix for API Key Expired date doesn't shows right at the first time when login as standard userAdd

Addresses #4863

@richard-cox I had a look at doing this - the problem is that the response from the save contains the token - which we display on screen after creation. If I request the key after save in the model, we get the correct expiry date, but the token secret is not returned, so we can not display it on screen for the user.
I've updated instead to fetch the new key again after creation, in the create key view - this ensures we can access the token from the model save and then get the token again.


vscode starts extremely slow...

:warning: We have copied additional data to your clipboard. Make sure to paste here. :warning:
:warning: Make sure to attach these files from your home-directory: :warning:
-/C:/Users/xuc/prof-3m8jnFOV.main.cpuprofile.txt
-/C:/Users/xuc/prof-3m8jnFOV.renderer.cpuprofile.txt
prof-3m8jnFOV.main.cpuprofile.txt
prof-3m8jnFOV.renderer.cpuprofile.txt

Can you try this with VS Code Insiders?


snake_case doesn't support numbers in names

Snake_case doesn't seem to support numbers in names. See below for example:

because I think he should be team1_id, or you can add it to the ignore list, or you can use regular expressions

👍 For anyone else viewing this who is okay with numbers in their snake_case this pattern should work:
{
      "type" : "pattern",
      "param": "^(?:[a-z0-9]+_)*[a-z0-9]+$"
}


ci: run e2e tests

It adds a stage to run the e2e teste

:broken_heart: Build Failed

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

Expand to view the summary

Build stats

Build Cause: [Pull request #148 opened]

Start Time: 2020-11-25T11:53:47.857+0000

Duration: 7 min 1 sec

Test stats :test_tube:

Test
Results

Failed
0

Passed
45

Skipped
0

Total
45

Steps errors
Expand to view the steps failures

run e2e tests

Took 0 min 7 sec . View more details on here
Description: npm run test

Log output
Expand to view the last 100 lines of log output

[2020-11-25T12:00:03.776Z] Tests:       45 passed, 45 total
[2020-11-25T12:00:03.776Z] Snapshots:   2 passed, 2 total
[2020-11-25T12:00:03.776Z] Time:        27.158 s
[2020-11-25T12:00:03.776Z] Ran all test suites.
[2020-11-25T12:00:03.861Z] $ docker stop --time=1 88e6ba6d47c0ce70d092afd12edae2b2ff011be6c0d0eb875bd40f69a9c00832
[2020-11-25T12:00:05.243Z] $ docker rm -f 88e6ba6d47c0ce70d092afd12edae2b2ff011be6c0d0eb875bd40f69a9c00832
[2020-11-25T12:00:06.234Z] Post stage
[2020-11-25T12:00:06.258Z] Recording test results
[2020-11-25T12:00:07.404Z] Running in /var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-148/src/github.com/elastic/synthetics
[2020-11-25T12:00:19.339Z] + docker inspect -f . docker.elastic.co/observability-ci/node-cypress:latest
[2020-11-25T12:00:19.339Z] .
[2020-11-25T12:00:19.445Z] apm-ci-immutable-ubuntu-1804-1606305244180446453 does not seem to be running inside a container
[2020-11-25T12:00:19.483Z] $ docker run -t -d -u 1154:1155 --security-opt seccomp=/var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-148/src/github.com/elastic/synthetics/.ci/seccomp_profile.json -w /var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-148 -v /var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-148:/var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-148:rw,z -v /var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-148@tmp:/var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-148@tmp:rw,z -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** docker.elastic.co/observability-ci/node-cypress:latest cat
[2020-11-25T12:00:20.819Z] $ docker top 78e70026a896489798fc3dc592f1e774e245978fc5aa75e0bd6dc90eb83a9e8d -eo pid,comm
[2020-11-25T12:00:20.978Z] Running in /var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-148/src/github.com/elastic/synthetics
[2020-11-25T12:00:21.289Z] + npm i
[2020-11-25T12:00:26.579Z] npm WARN prepublish-on-install As of npm@5, `prepublish` scripts are deprecated.
[2020-11-25T12:00:26.579Z] npm WARN prepublish-on-install Use `prepare` for build steps and `prepublishOnly` for upload-only.
[2020-11-25T12:00:26.579Z] npm WARN prepublish-on-install See the deprecation note in `npm help scripts` for more information.
[2020-11-25T12:00:26.579Z]
[2020-11-25T12:00:26.579Z] ><EMAIL_ADDRESS>prepublish /var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-148/src/github.com/elastic/synthetics
[2020-11-25T12:00:26.579Z] > npm run clean && npm run build
[2020-11-25T12:00:26.579Z]
[2020-11-25T12:00:26.839Z]
[2020-11-25T12:00:26.840Z] ><EMAIL_ADDRESS>clean /var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-148/src/github.com/elastic/synthetics
[2020-11-25T12:00:26.840Z] > rm -rf dist
[2020-11-25T12:00:26.840Z]
[2020-11-25T12:00:27.099Z]
[2020-11-25T12:00:27.099Z] ><EMAIL_ADDRESS>build /var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-148/src/github.com/elastic/synthetics
[2020-11-25T12:00:27.099Z] > tsc
[2020-11-25T12:00:27.099Z]
[2020-11-25T12:00:37.095Z] npm WARN<EMAIL_ADDRESS>No repository field.
[2020-11-25T12:00:37.095Z] npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/fsevents):
[2020-11-25T12:00:37.095Z] npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
[2020-11-25T12:00:37.095Z]
[2020-11-25T12:00:37.095Z] audited 751 packages in 14.764s
[2020-11-25T12:00:37.095Z]
[2020-11-25T12:00:37.095Z] 43 packages are looking for funding
[2020-11-25T12:00:37.095Z]   run `npm fund` for details
[2020-11-25T12:00:37.095Z]
[2020-11-25T12:00:37.095Z] found 0 vulnerabilities
[2020-11-25T12:00:37.095Z]
[2020-11-25T12:00:37.114Z] Running in /var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-148/src/github.com/elastic/synthetics/__tests__/e2e
[2020-11-25T12:00:37.435Z] + npm run test
[2020-11-25T12:00:37.695Z]
[2020-11-25T12:00:37.695Z] > e2e-synthetics@ test /var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-148/src/github.com/elastic/synthetics/__tests__/e2e
[2020-11-25T12:00:37.696Z] > npm i && npm run setup &&  bash scripts/test.sh
[2020-11-25T12:00:37.696Z]
[2020-11-25T12:00:40.997Z] added 3 packages from 4 contributors and audited 60 packages in 2.896s
[2020-11-25T12:00:44.297Z]
[2020-11-25T12:00:44.297Z] 43 packages are looking for funding
[2020-11-25T12:00:44.297Z]   run `npm fund` for details
[2020-11-25T12:00:44.297Z]
[2020-11-25T12:00:44.297Z] found 0 vulnerabilities
[2020-11-25T12:00:44.297Z]
[2020-11-25T12:00:44.297Z]
[2020-11-25T12:00:44.297Z] > e2e-synthetics@ setup /var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-148/src/github.com/elastic/synthetics/__tests__/e2e
[2020-11-25T12:00:44.297Z] > bash scripts/setup.sh
[2020-11-25T12:00:44.297Z]
[2020-11-25T12:00:44.297Z] npm ERR! code ELIFECYCLE
[2020-11-25T12:00:44.297Z] npm ERR! syscall spawn
[2020-11-25T12:00:44.297Z] npm ERR! file sh
[2020-11-25T12:00:44.297Z] npm ERR! errno ENOENT
[2020-11-25T12:00:44.297Z] npm ERR! e2e-synthetics@ setup: `bash scripts/setup.sh`
[2020-11-25T12:00:44.297Z] npm ERR! spawn ENOENT
[2020-11-25T12:00:44.297Z] npm ERR!
[2020-11-25T12:00:44.297Z] npm ERR! Failed at the e2e-synthetics@ setup script.
[2020-11-25T12:00:44.297Z] npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
[2020-11-25T12:00:44.297Z]
[2020-11-25T12:00:44.297Z] npm ERR!  Exit status 1
[2020-11-25T12:00:44.297Z] npm ERR!
[2020-11-25T12:00:44.297Z] npm ERR! Failed at the e2e-synthetics@ test script.
[2020-11-25T12:00:44.297Z] npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
[2020-11-25T12:00:44.297Z]
[2020-11-25T12:00:44.297Z] npm ERR! A complete log of this run can be found in:
[2020-11-25T12:00:44.297Z] npm ERR!     /var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-148/.npm/_logs/2020-11-25T12_00_44_082Z-debug.log
[2020-11-25T12:00:44.431Z] $ docker stop --time=1 78e70026a896489798fc3dc592f1e774e245978fc5aa75e0bd6dc90eb83a9e8d
[2020-11-25T12:00:45.807Z] $ docker rm -f 78e70026a896489798fc3dc592f1e774e245978fc5aa75e0bd6dc90eb83a9e8d
[2020-11-25T12:00:46.899Z] Stage "Publish Docker image" skipped due to earlier failure(s)
[2020-11-25T12:00:46.984Z] Stage "Matrix - STACK_VERSION = '8.0.0-synthetics'" skipped due to earlier failure(s)
[2020-11-25T12:00:46.990Z] Stage "Matrix - STACK_VERSION = '7.10.0-synthetics'" skipped due to earlier failure(s)
[2020-11-25T12:00:47.043Z] Stage "Matrix - STACK_VERSION = '8.0.0-synthetics'" skipped due to earlier failure(s)
[2020-11-25T12:00:47.052Z] Stage "Matrix - STACK_VERSION = '7.10.0-synthetics'" skipped due to earlier failure(s)
[2020-11-25T12:00:47.158Z] Stage "Matrix - STACK_VERSION = '8.0.0-synthetics'" skipped due to earlier failure(s)
[2020-11-25T12:00:47.166Z] Stage "Matrix - STACK_VERSION = '7.10.0-synthetics'" skipped due to earlier failure(s)
[2020-11-25T12:00:47.269Z] Stage "Matrix - STACK_VERSION = '8.0.0-synthetics'" skipped due to earlier failure(s)
[2020-11-25T12:00:47.278Z] Stage "Matrix - STACK_VERSION = '7.10.0-synthetics'" skipped due to earlier failure(s)
[2020-11-25T12:00:47.409Z] Failed in branch Matrix - STACK_VERSION = '8.0.0-synthetics'
[2020-11-25T12:00:47.417Z] Failed in branch Matrix - STACK_VERSION = '7.10.0-synthetics'
[2020-11-25T12:00:47.859Z] Running on Jenkins in /var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-148
[2020-11-25T12:00:47.952Z] [INFO] getVaultSecret: Getting secrets
[2020-11-25T12:00:48.125Z] Masking supported pattern matches of $VAULT_ADDR or $VAULT_ROLE_ID or $VAULT_SECRET_ID
[2020-11-25T12:00:48.914Z] + chmod 755 generate-build-data.sh
[2020-11-25T12:00:48.914Z] + ./generate-build-data.sh https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-rum/elastic-synthetics/PR-148/ https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-rum/elastic-synthetics/PR-148/runs/1 FAILURE 420788
[2020-11-25T12:00:49.164Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-rum/elastic-synthetics/PR-148/runs/1/steps/?limit=10000 -o steps-info.json

I have to workaround this
Exiting: error loading config file: config file ("heartbeat.yml") must be owned by the user identifier (uid=1000) or root

I have no Idea what is this new error about
Exiting: exit status 243

after enabling --environment container I have more data
synthetics       | 2020-11-25T19:30:10.914Z	INFO	instance/beat.go:645	Home path: [/usr/share/heartbeat] Config path: [/usr/share/heartbeat] Data path: [/usr/share/heartbeat/data] Logs path: [/usr/share/heartbeat/logs]
synthetics       | 2020-11-25T19:30:10.920Z	INFO	instance/beat.go:653	Beat ID: e59132b6-1696-48f4-ab04-0e54aa436595
synthetics       | 2020-11-25T19:30:10.920Z	INFO	[beat]	instance/beat.go:981	Beat info	{"system_info": {"beat": {"path": {"config": "/usr/share/heartbeat", "data": "/usr/share/heartbeat/data", "home": "/usr/share/heartbeat", "logs": "/usr/share/heartbeat/logs"}, "type": "heartbeat", "uuid": "e59132b6-1696-48f4-ab04-0e54aa436595"}}}
synthetics       | 2020-11-25T19:30:10.920Z	INFO	[beat]	instance/beat.go:990	Build info	{"system_info": {"build": {"commit": "a0f845abd970614e624588ff46bda0095fbed814", "libbeat": "7.10.0", "time": "2020-11-05T23:07:08.000Z", "version": "7.10.0"}}}
synthetics       | 2020-11-25T19:30:10.921Z	INFO	[beat]	instance/beat.go:993	Go runtime info	{"system_info": {"go": {"os":"linux","arch":"amd64","max_procs":4,"version":"go1.14.7"}}}
synthetics       | 2020-11-25T19:30:10.922Z	INFO	[beat]	instance/beat.go:997	Host info	{"system_info": {"host": {"architecture":"x86_64","boot_time":"2020-11-25T18:29:21Z","containerized":true,"name":"310f7a894acb","ip":["<IP_ADDRESS>/8","<IP_ADDRESS>/16"],"kernel_version":"5.4.0-1029-gcp","mac":["02:42:ac:17:00:03"],"os":{"family":"redhat","platform":"centos","name":"CentOS Linux","version":"7 (Core)","major":7,"minor":8,"patch":2003,"codename":"Core"},"timezone":"UTC","timezone_offset_sec":0,"id":"42ce656e21e705a9f1fe331a4a1a6a9a"}}}
synthetics       | 2020-11-25T19:30:10.922Z	INFO	[beat]	instance/beat.go:1026	Process info	{"system_info": {"process": {"capabilities": {"inheritable":["chown","dac_override","fowner","fsetid","kill","setgid","setuid","setpcap","net_bind_service","net_raw","sys_chroot","mknod","audit_write","setfcap"],"permitted":["net_raw"],"effective":["net_raw"],"bounding":["chown","dac_override","fowner","fsetid","kill","setgid","setuid","setpcap","net_bind_service","net_raw","sys_chroot","mknod","audit_write","setfcap"],"ambient":null}, "cwd": "/usr/share/heartbeat", "exe": "/usr/share/heartbeat/heartbeat", "name": "heartbeat", "pid": 7, "ppid": 1, "seccomp": {"mode":"filter","no_new_privs":false}, "start_time": "2020-11-25T19:30:09.970Z"}}}
synthetics       | 2020-11-25T19:30:10.922Z	INFO	instance/beat.go:299	Setup Beat: heartbeat; Version: 7.10.0
synthetics       | 2020-11-25T19:30:10.922Z	INFO	[index-management]	idxmgmt/std.go:184	Set output.elasticsearch.index to 'heartbeat-7.10.0' as ILM is enabled.
synthetics       | 2020-11-25T19:30:10.923Z	INFO	eslegclient/connection.go:99	elasticsearch url: http://elasticsearch:9200
synthetics       | 2020-11-25T19:30:10.923Z	INFO	[publisher]	pipeline/module.go:113	Beat name: 310f7a894acb
synthetics       | 2020-11-25T19:30:10.923Z	INFO	instance/beat.go:455	heartbeat start running.
synthetics       | 2020-11-25T19:30:10.924Z	INFO	beater/heartbeat.go:83	Please note, this is an experimental, unsupported version of heartbeat for the purpose of demonstrating synthetic journeys!
synthetics       | 2020-11-25T19:30:10.924Z	INFO	beater/heartbeat.go:84	heartbeat is running! Hit CTRL-C to stop it.
synthetics       | 2020-11-25T19:30:10.923Z	INFO	[monitoring]	log/log.go:118	Starting metrics logging every 30s
synthetics       | 2020-11-25T19:30:10.924Z	INFO	monitors/factory.go:108	Client connection with: beat.ClientConfig{PublishMode:0x0, Processing:beat.ProcessingConfig{EventMetadata:common.EventMetadata{Fields:null, FieldsUnderRoot:false, Tags:[]string(nil)}, Meta:null, Fields:null, DynamicFields:(*common.MapStrPointer)(nil), Processor:beat.ProcessorList(nil), KeepNull:false, DisableHost:false, Private:interface {}(nil)}, CloseRef:beat.CloseRef(nil), WaitClose:0, ACKHandler:beat.ACKer(nil), Events:beat.ClientEventer(nil)}
synthetics       | 2020-11-25T19:30:10.925Z	WARN	beater/heartbeat.go:183	Listing suite%!(EXTRA string=/opt/elastic-synthetics/examples/todos)
synthetics       | 2020-11-25T19:30:10.925Z	INFO	synthexec/synthexec.go:322	Running /usr/share/heartbeat/.node/node/bin/npm install in /opt/elastic-synthetics/examples/todos
synthetics       | 2020-11-25T19:30:10.930Z	INFO	synthexec/synthexec.go:174	Running command: /usr/share/heartbeat/.node/node/bin/elastic-synthetics --inline --screenshots --json --network --outfd 3 in directory: ''
synthetics       | 2020-11-25T19:30:10.934Z	INFO	cfgfile/reload.go:164	Config reloader started
synthetics       | 2020-11-25T19:30:10.935Z	INFO	cfgfile/reload.go:224	Loading of config files completed.
synthetics       | 2020-11-25T19:30:11.945Z	INFO	[publisher_pipeline_output]	pipeline/output.go:143	Connecting to backoff(elasticsearch(http://elasticsearch:9200))
synthetics       | 2020-11-25T19:30:11.945Z	INFO	[publisher]	pipeline/retry.go:219	retryer: send unwait signal to consumer
synthetics       | 2020-11-25T19:30:11.946Z	INFO	[publisher]	pipeline/retry.go:223	  done
synthetics       | 2020-11-25T19:30:13.246Z	ERROR	[publisher_pipeline_output]	pipeline/output.go:154	Failed to connect to backoff(elasticsearch(http://elasticsearch:9200)): Get "http://elasticsearch:9200": dial tcp <IP_ADDRESS>:9200: connect: connection refused
synthetics       | 2020-11-25T19:30:13.247Z	INFO	[publisher_pipeline_output]	pipeline/output.go:145	Attempting to reconnect to backoff(elasticsearch(http://elasticsearch:9200)) with 1 reconnect attempt(s)
synthetics       | 2020-11-25T19:30:13.248Z	INFO	[publisher]	pipeline/retry.go:219	retryer: send unwait signal to consumer
synthetics       | 2020-11-25T19:30:13.252Z	INFO	[publisher]	pipeline/retry.go:223	  done
synthetics       | 2020-11-25T19:30:16.916Z	ERROR	[publisher_pipeline_output]	pipeline/output.go:154	Failed to connect to backoff(elasticsearch(http://elasticsearch:9200)): Get "http://elasticsearch:9200": dial tcp <IP_ADDRESS>:9200: connect: connection refused
synthetics       | 2020-11-25T19:30:16.916Z	INFO	[publisher_pipeline_output]	pipeline/output.go:145	Attempting to reconnect to backoff(elasticsearch(http://elasticsearch:9200)) with 2 reconnect attempt(s)
synthetics       | 2020-11-25T19:30:16.917Z	INFO	[publisher]	pipeline/retry.go:219	retryer: send unwait signal to consumer
synthetics       | 2020-11-25T19:30:16.917Z	INFO	[publisher]	pipeline/retry.go:223	  done
synthetics       | 2020-11-25T19:30:19.232Z	INFO	synthexec/synthexec.go:324	Ran /usr/share/heartbeat/.node/node/bin/npm install got npm WARN checkPermissions Missing write access to /opt/elastic-synthetics/examples/todos
synthetics       | npm ERR! code EACCES
synthetics       | npm ERR! syscall access
synthetics       | npm ERR! path /opt/elastic-synthetics/examples/todos
synthetics       | npm ERR! errno -13
synthetics       | npm ERR! Error: EACCES: permission denied, access '/opt/elastic-synthetics/examples/todos'
synthetics       | npm ERR!  [Error: EACCES: permission denied, access '/opt/elastic-synthetics/examples/todos'] {
synthetics       | npm ERR!   errno: -13,
synthetics       | npm ERR!   code: 'EACCES',
synthetics       | npm ERR!   syscall: 'access',
synthetics       | npm ERR!   path: '/opt/elastic-synthetics/examples/todos'
synthetics       | npm ERR! }
synthetics       | npm ERR!
synthetics       | npm ERR! The operation was rejected by your operating system.
synthetics       | npm ERR! It is likely you do not have the permissions to access this file as the current user
synthetics       | npm ERR!
synthetics       | npm ERR! If you believe this might be a permissions issue, please double-check the
synthetics       | npm ERR! permissions of the file and its containing directories, or try running
synthetics       | npm ERR! the command again as root/Administrator.
synthetics       |
synthetics       | npm ERR! A complete log of this run can be found in:
synthetics       | npm ERR!     /usr/share/heartbeat/.npm/_logs/2020-11-25T19_30_19_137Z-debug.log
synthetics       |
synthetics       | 2020-11-25T19:30:19.232Z	INFO	cfgfile/reload.go:227	Dynamic config reloader stopped
synthetics       | 2020-11-25T19:30:19.241Z	INFO	[monitoring]	log/log.go:153	Total non-zero metrics	{"monitoring": {"metrics": {"beat":{"cgroup":{"cpu":{"id":"310f7a894acb3bd4934d572160a38059bc2749c96726b48c6f307670b9293b12"},"cpuacct":{"id":"310f7a894acb3bd4934d572160a38059bc2749c96726b48c6f307670b9293b12"},"memory":{"id":"310f7a894acb3bd4934d572160a38059bc2749c96726b48c6f307670b9293b12"}},"cpu":{"system":{"ticks":20,"time":{"ms":25}},"total":{"ticks":90,"time":{"ms":100},"value":90},"user":{"ticks":70,"time":{"ms":75}}},"handles":{"limit":{"hard":1048576,"soft":1048576},"open":12},"info":{"ephemeral_id":"4fa55a26-d0cd-4a05-bd76-1284c326bdfd","uptime":{"ms":8367}},"memstats":{"gc_next":19567392,"memory_alloc":10522728,"memory_total":16995504,"rss":48386048},"runtime":{"goroutines":17}},"heartbeat":{"browser":{"endpoint_starts":1,"monitor_starts":1},"scheduler":{"jobs":{"active":1},"tasks":{"active":1}}},"libbeat":{"config":{"module":{"running":0},"reloads":1,"scans":1},"output":{"type":"elasticsearch"},"pipeline":{"clients":1,"events":{"active":2,"published":2,"retry":2,"total":2}}},"system":{"cpu":{"cores":4},"load":{"1":5.29,"15":5.27,"5":5.74,"norm":{"1":1.3225,"15":1.3175,"5":1.435}}}}}}
synthetics       | 2020-11-25T19:30:19.242Z	INFO	[monitoring]	log/log.go:154	Uptime: 8.373217134s
synthetics       | 2020-11-25T19:30:19.243Z	INFO	[monitoring]	log/log.go:131	Stopping metrics logging.
synthetics       | 2020-11-25T19:30:19.244Z	INFO	instance/beat.go:461	heartbeat stopped.
synthetics       | 2020-11-25T19:30:19.245Z	ERROR	instance/beat.go:956	Exiting: exit status 243
synthetics       | Exiting: exit status 243
synthetics exited with code 1

it was tough but it works now

Awesome and quick work !!

I will grab the logs of the containers for debugging issues in a followup PR


Fix string interpolation / some logging

@quantumagi I've reverted the sync manager code. This PR now only relates to interpolation. Can you recheck please?

@quantumagi I've reverted the sync manager code. This PR now only relates to interpolation. Can you recheck please?


Comments sorting options don't fit the line in some languages

Czech language

English for comparison
Expected behavior
Comments sorting options don't overflow.
Actual behavior
With some languages, the sort options may overflow because the words are too long.
Steps to reproduce

Set Czech language. (It may occur with others too.)
Open a post on a mobile.
See comments.

Browser: Brave
Operating system: Android 7.1.2

I think its better to use dropdown for sorting in mobile @Sekhmet

This is how I have done it in PR:

You can test it there: https://busy-master-pr-1459.herokuapp.com/@adsactly/adsactly-spotlight-on-cryptocoins-komodo-kmd-9th-feature-private-coins
Is it okay?


Add tagName matcher

Adds a tagName matcher.
/cc @vesln
Note: I'll have to rebase once #3 is merged in.

:+1:

👍


Thanks! :heart:


Default mapentity settings

Codecov Report

Merging #220 (44d0a2b) into master (ab91609) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #220   +/-   ##
=======================================
  Coverage   89.19%   89.19%
=======================================
  Files          27       27
  Lines        2129     2129
=======================================
  Hits         1899     1899
  Misses        230      230

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 ab91609...44d0a2b. Read the comment docs.


Laravel 5.4 Support: Update ClosureTableServiceProvider.php

Use supported $app->singleton() method, rather than deprecated $app->share() method, which was removed in Laravel 5.4.

Closing as duplicate. Thank you @ryzr for your effort!


Where to put new font

Hi, i love your work. and start to see if i can use it for my project.
Got it working with a ESP32-CAM + 3.5" display (ILI9488) 320x480.
I can not figure out how to use a bigger font.
I got several .zi fonts and fontawesome.
i try uploading them via the GUI, but never gave me a hint on where to find them or how to use them
Please help.

Hello,
Thanks for trying out hasp-lvgl. Good to hear you got it working on the ESP-CAM.
Which branch/version of hasp-lvgl did you flash to the ESP?
When uploading a file on the HASP Configuration page, it is saved on the internal filesystem of the ESP.
You should then see the available .zi fonts in the drop-down list "Default Font". You can select a font to make it the default font.
The font support is currently rather basic. Is your goal to make the default font bigger or mix several font&sizes on the layout?

See details of version below.
When uploading font from gui, i see in debug (serial) the upload is okay.
but in gui the default font option remains empty.
Also after reset, the font is still empty.
-=-
HASP Version: 0.2.1014
Build DateTime: Oct 25 2020 10:07:50 CET
Uptime: 8s
Free Memory: 164.08KB
Memory Fragmentation: 32
LVGL Memory: 20.00KB
LVGL Free: 11.88KB
LVGL Fragmentation: 1
LCD Active Page: 0
MQTT Status: Connected
MQTT ClientID: plate01-5caf40
MCU Model: 2core ESP32 rev1
CPU Frequency: 240MHz
Flash Chip Size: 4.00MB
Program Size: 1.31MB
Free Program Space: 3.00MB
Core version: v3.2.3-14-gd3e562907

I found a hint.
from the serial log i see.
      _____ _____ _____ _____
      |  |  |  _  |   __|  _  |
      |     |     |__   |   __|
      |__|__|__|__|_____|__|
    Home Automation Switch Plate
    Open Hardware edition v0.2.1014

[               1.586][113792/268184 57][    0/    0  0]FILE: [SUCCESS] SPI flash FS mounted
[               1.588][113792/268184 57][    0/    0  0]FILE: Listing files on the internal flash:
[               1.618][113792/268184 57][    0/    0  0]CONF: Loading /config.json
...
[               2.881][113792/185100 38][12152/12164  1]HASP: File /pages.jsonl loaded
This indicate the it did not find ANY file ?
but later if loads the pages file okay. ?

Strange. The contents of the SPIFFS partition is indeed listed at boot-time. So an empty list there indicates no files are present.
The pages.json file is optional and if it is not there it is just ignored. But on my ESP32 it shows up as a failure.
FILE: Listing files on the internal flash:
FILE:    * /Lato16.zi  (3770 bytes)
FILE:    * /Poppins20.zi  (2683 bytes)
FILE:    * /config.json  (538 bytes)
CONF: Loading /config.json
...
Opening pages.json from FS failed 3
Reading pages.json from FS failed 11
Closing pages.json on FS failed 11
FONT: Loaded V5 Font File: /Poppins20.zi containing 95 characters
HASP: Custom theme loaded
HASP: Non existing file /pages.jsonl
HASP: Changing page to 0

I haven't tested on the ESP32-CAM, maybe the flash partitions are different. Looking at your Information page above, I notice the free program space is 3 MB. It seems to me that the whole 4MB flash is partitioned for Firmware only and no SPIFFS partition is configured.
I have:
Flash Chip Size: 4.00MB
Program Size: 1.26MB
Free Program Space: 1.37MB

Which is 2x partitions of 1.37MB for programs (primary and ota) with the remainder of 1.26 MB for SPIFFS.
Do you see the SPI flash being mounted on the first log line?
           _____ _____ _____ _____
          |  |  |  _  |   __|  _  |
          |     |     |__   |   __|
          |__|__|__|__|_____|__|
        Home Automation Switch Plate
        Open Hardware edition v0.2.1014

FILE: [SUCCESS] SPI flash FS mounted

Do you have a line like this in the board.ini?
board_build.partitions = esp32_partition_app1300k_spiffs1216k.csv ; default.csv

full start log.
[               1.555][113792/268328 57][    0/    0  0]Serial started at 115200 baud
       _____ _____ _____ _____
      |  |  |  _  |   __|  _  |
      |     |     |__   |   __|
      |__|__|__|__|_____|__|
    Home Automation Switch Plate
    Open Hardware edition v0.2.1014

[               1.588][113792/268328 57][    0/    0  0]FILE: [SUCCESS] SPI flash FS mounted
[               1.590][113792/268328 57][    0/    0  0]FILE: Listing files on the internal flash:
[               1.620][113792/268328 57][    0/    0  0]CONF: Loading /config.json
[               1.622][113792/267752 57][    0/    0  0]CONF: {"wifi":{"ssid":"","pass":""},"mqtt":{"name":"plate01","group":"plates","host":"<IP_ADDRESS>","port":1883,"user":"","pass":""},"telnet":{"enable":1},"mdns":{"enable":1},"http":{"enable":true,"port":80,"user":"","pass":""},"debug":{"teleperiod":300,"baud":11520,"host":"","port":514,"proto":0,"log":0},"gui":{"tickperiod":50,"idle1":60,"idle2":120,"bcklpin":-1,"rotation":2,"pointer":false,"calibration":[264,3520,305,3574,2]},"hasp":{"startpage":0,"startdim":80,"theme":4,"hue":106,"font":"","pages":"/pages.jsonl"}}
[               1.675][113792/267752 57][    0/    0  0]CONF: [SUCCESS] Loaded /config.json
[               1.685][113792/268432 57][    0/    0  0]Loading debug settings
[               1.695][113792/267956 57][    0/    0  0]CONF: {"teleperiod":300,"baud":11520,"host":"","port":514,"proto":0,"log":0}
[               1.709][113792/268432 57][    0/    0  0]Loading GUI settings
[               1.718][113792/267956 57][    0/    0  0]CONF: {"tickperiod":50,"idle1":60,"idle2":120,"bcklpin":-1,"rotation":2,"pointer":false,"calibration":[264,3520,305,3574,2]}
[               1.736][113792/268432 57][    0/    0  0]CONF:    * guiTickPeriod set
[               1.746][113792/268432 57][    0/    0  0]calData set [264, 3520, 305, 3574, 2]
[               1.757][113792/268432 57][    0/    0  0]Loading HASP settings
[               1.766][113792/267956 57][    0/    0  0]CONF: {"startpage":0,"startdim":80,"theme":4,"hue":106,"font":"","pages":"/pages.jsonl"}
[               1.782][113792/268432 57][    0/    0  0]CONF:    * haspStartDim set
[               1.792][113792/268432 57][    0/    0  0]CONF:    * haspThemeId set
[               1.801][113792/268432 57][    0/    0  0]CONF:    * haspThemeHue set
[               1.811][113792/268432 57][    0/    0  0]Loading WiFi settings
[               1.821][113792/267956 57][    0/    0  0]CONF: {"ssid":"","pass":""}
[               1.832][113792/268432 57][    0/    0  0]Loading MQTT settings
[               1.841][113792/267956 57][    0/    0  0]CONF: {"name":"plate01","group":"plates","host":"<IP_ADDRESS>","port":1883,"user":"esp","pass":""}
[               1.858][113792/268432 57][    0/    0  0]Loading MDNS settings
[               1.867][113792/267956 57][    0/    0  0]CONF: {"enable":1}
[               1.876][113792/268432 57][    0/    0  0]Loading HTTP settings
[               1.886][113792/267956 57][    0/    0  0]CONF: {"enable":true,"port":80,"user":"","pass":""}
[               1.898][113792/268432 57][    0/    0  0]User configuration loaded
[               1.999][113792/219052 48][    0/    0  0]WIFI: Connecting to : ********
[               2.212][113792/217764 47][    0/    0  0]WIFI: Connected to SSID ********. Requesting IP...
[               2.225][113792/217916 47][    0/    0  0]WIFI: Received IP address <IP_ADDRESS>
[               2.226][113792/218132 47][    0/    0  0]WIFI: Connected = yes
[               2.360][113792/185156 38][17400/18000  4]TFT: TFT_eSPI   : v2.2.11
[               2.361][113792/185156 38][17400/18000  4]TFT: Processor  : STM32
[               2.368][113792/185156 38][17400/18000  4]TFT: CPU freq.  : 240 MHz
[               2.378][113792/185156 38][17400/18000  4]TFT: Transactns : Yes
[               2.387][113792/185156 38][17400/18000  4]TFT: Interface  : SPI
[               2.397][113792/185156 38][17400/18000  4]TFT: Driver     : ILI9488
[               2.407][113792/185156 38][17400/18000  4]TFT: Resolution : 320x480
[               2.416][113792/185156 38][17400/18000  4]TFT: MOSI       : D13 (GPIO 13)
[               2.427][113792/185156 38][17400/18000  4]TFT: MISO       : D12 (GPIO 12)
[               2.437][113792/185156 38][17400/18000  4]TFT: SCLK       : D14 (GPIO 14)
[               2.447][113792/185156 38][17400/18000  4]TFT: TFT_CS     : D15 (GPIO 15)
[               2.457][113792/185156 38][17400/18000  4]TFT: TFT_DC     : D00 (GPIO 00)
[               2.468][113792/185156 38][17400/18000  4]TFT: TOUCH_CS   : D02 (GPIO 02)
[               2.478][113792/185156 38][17400/18000  4]TFT: Display SPI freq. : 27.0 MHz
[               2.488][113792/185156 38][17400/18000  4]TFT: Touch SPI freq.   : 2.5 MHz
[               2.498][113792/185156 38][17400/18000  4]TFT: DMA        : DISABELD
[               2.508][113792/185156 38][17400/18000  4]LVGL: Version  : 7.7.1
[               2.518][113792/185156 38][17400/18000  4]LVGL: Rotation : 2
[               2.527][113792/185156 38][17400/18000  4]LVGL: MEM size : 20480
[               2.536][113792/185156 38][17400/18000  4]LVGL: VFB size : 32768
[               2.546][113792/185156 38][17400/18000  4]LVGL: Registering lvgl logging handler
[               2.559][113792/185108 38][17112/17152  1]Opening pages.json from FS failed 3
[               2.567][113792/185108 38][17112/17152  1]Reading pages.json from FS failed 11
[               2.578][113792/185108 38][17112/17152  1]Closing pages.json on FS failed 11
[               2.589][113792/185108 38][17048/17076  1]HASP: Failed to set font to
[               2.605][113792/185108 38][16744/17040  2]HASP: Custom theme loaded
[               2.617][113792/185108 38][15688/15832  1]HASP: Loading file /pages.jsonl
[               2.619][113792/184456 38][15688/15832  1]DISPATCH: jsonl
[               2.633][113792/184312 38][15600/15704  1]HASP: Unknown property align
[               2.637][113792/184312 38][15600/15704  1]ATTR: align (34213)took 4 millis
[               2.648][113792/184312 38][15600/15704  1]HASP: Unknown property padh
[               2.658][113792/184312 38][15600/15704  1]ATTR: padh (19573)took 10 millis
[               2.668][113792/184312 38][15600/15704  1]HASP:     * p[0].b[1] = lv_label
[               2.684][113792/184264 38][15424/15472  1]HASP:     * p[0].b[2] = lv_btn
[               2.694][113792/184284 38][15224/15248  1]HASP:     * p[0].b[3] = lv_btn
[               2.704][113792/184284 38][15004/15012  1]HASP:     * p[0].b[4] = lv_btn
[               2.714][113792/184284 38][14768/14772  1]HASP:     * p[0].b[5] = lv_btn
[               2.723][113792/184312 38][14508/14552  1]HASP:     * p[1].b[1] = lv_slider
[               2.733][113792/184312 38][14332/14352  1]HASP:     * p[1].b[3] = lv_gauge
[               2.742][113792/184312 38][14180/14188  1]HASP:     * p[1].b[4] = lv_bar
[               2.752][113792/184312 38][14064/14064  0]HASP:     * p[1].b[5] = lv_linemeter
[               2.762][113792/184312 38][14064/14064  0]HASP: Parent ID p[1].b[5] found
[               2.773][113792/184312 38][13932/13936  1]HASP:     * p[1].b[10] = lv_label
[               2.785][113792/184312 38][13792/13792  0]HASP:     * p[2].b[1] = lv_cpicker
[               2.796][113792/184312 38][13644/13644  0]HASP:     * p[2].b[2] = lv_cpicker
[               2.807][113792/184264 38][13444/13444  0]MQTT: Not connected
[               2.811][113792/184264 38][13444/13444  0]HASP:     * p[3].b[1] = lv_dropdown
[               2.840][113792/184248 38][12916/12956  1]MQTT: Not connected
[               2.842][113792/184248 38][12916/12956  1]HASP:     * p[3].b[2] = lv_roller
[               2.857][113792/184312 38][12676/12688  1]HASP:     * p[254].b[40] = lv_btn
[               2.866][113792/184312 38][12404/12420  1]HASP:     * p[254].b[50] = lv_btn
[               2.876][113792/184312 38][12152/12164  1]HASP:     * p[254].b[60] = lv_btn
[               2.880][113792/185108 38][12152/12164  1]HASP: File /pages.jsonl loaded
[               2.890][113792/185108 38][12152/12164  1]HASP: Changing page to 0
[               2.900][113792/185108 38][12152/12164  1]MDNS: Setup Complete
[               2.909][113792/185104 38][12152/12164  1]OTA: http://<IP_ADDRESS>
[               2.923][113792/177152 35][12152/12164  1]OTA: Over the Air firmware update ready
[               2.929][113792/177152 35][12152/12164  1]MQTT: Setup Complete
[               2.940][113792/174780 34][12152/12164  1]HTTP: Setup Complete
[               2.949][113792/174128 34][12152/12164  1]HTTP: Server started @ http://<IP_ADDRESS>
[               3.094][113792/174160 34][11828/11840  1]lv_draw_letter: glyph dsc. not found
[               3.547][113792/173924 34][12152/12164  1]plate_5caf40
[               3.566][113792/171848 33][12152/12164  1]MQTT: [SUCCESS] Connected to broker <IP_ADDRESS> as clientID plate_5caf40
[               3.571][113792/170032 33][12152/12164  1]MQTT:    * Subscribed to hasp/plates/command/#
[               3.583][113792/168284 32][12152/12164  1]MQTT:    * Subscribed to hasp/plate01/command/#
[               3.594][113792/166536 31][12152/12164  1]MQTT:    * Subscribed to hasp/plates/config/#
[               3.605][113792/164788 30][12152/12164  1]MQTT:    * Subscribed to hasp/plate01/config/#
[               3.617][113792/163040 30][12152/12164  1]MQTT:    * Subscribed to hasp/plate01/light/#
[               3.628][113792/161288 29][12152/12164  1]MQTT:    * Subscribed to hasp/plate01/brightness/#
[               3.640][113792/159548 28][12152/12164  1]MQTT:    * Subscribed to hasp/plate01/status
[               3.652][113792/157800 27][12152/12164  1]MQTT: binary_sensor state: [hasp/plate01/status] : OFF
[               3.663][113792/157856 27][12152/12164  1]PAGE: 0
[               3.671][113792/157856 27][12152/12164  1]HASP: Changing page to 0
[               3.683][113792/155560 26][12152/12164  1]MQTT PUB: hasp/plate01/state/page = 0

Do you have a line like this in the board.ini?
board_build.partitions = esp32_partition_app1300k_spiffs1216k.csv ; default.csv
-=-
No that was NOT there. I added it, re-build and flashed.
Now it is working.
I uploaded font.zi and it appeared.
Strang that i was able to upload my own pages.jsonl file, and that works fine.
Case close.

[               1.588][113792/268272 57][    0/    0  0]FILE: [SUCCESS] SPI flash FS mounted
[               1.590][113792/268272 57][    0/    0  0]FILE: Listing files on the internal flash:
[               1.726][113792/267524 57][    0/    0  0]FILE:    * /pages.jsonl  (1720 bytes)
[               1.728][113792/267084 57][    0/    0  0]FILE:    * /arial24.zi  (3454 bytes)
[               1.737][113792/267076 57][    0/    0  0]FILE:    * /config.json  (511 bytes)
[               1.760][113792/267072 57][    0/    0  0]FILE:    * /fontawesome24.zi  (120285 bytes)
[               1.795][113792/267824 57][    0/    0  0]CONF: Loading /config.json

Thanks for the feedback! That is an edge-case that I haven't tested, so live and learn :)

We have moved the documentation into a separate github pages repository.
The documentation link is https://fvanroie.github.io/hasp-docs/
Feel free to check it out and let us know if anything is missing.

We have moved the documentation into a separate github pages repository.
The documentation link is https://fvanroie.github.io/hasp-docs/
Feel free to check it out and let us know if anything is missing.


Broken markdown

On this page:
http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-vi-profile-page-and-avatars
To show avatars for the posts we just need to make a small change in our template (file `app/templates/user.html'):

Dunno is where separate repo for blog so posting this here.

Thanks, just made the correction.


Fix BackendDict instantiation service names

This PR updates certain BackendDict initialisations so that they use proper Botocore service name.
Earlier, these services used ec2 or lambda since boto3.Session().get_available_regions(...) used to return an empty list.
There are still a few instantiations remaining that were not updated for the above reason, these are:

redshiftdata should use redshift-data
apigatewaymanagementapi should use apigatewaymanagementapi
bedrockagent
ec2instanceconnect should use ec2-instance-connect

Hi @viren-nadkarni!

boto3.Session().get_available_regions(...) used to return an empty list

Do you know from which version of boto3 this changed? If this only happened in a recent version, then people that are stuck on an older version of boto3 will suddenly have an empty region-list, so they will no longer be able to use Moto - and that worries me a bit.
What is the effect (on LS) of changing these names?

@bblommers This has been out in Boto for quite a while. We made this change in LocalStack in July 2023, see https://github.com/localstack/moto/pull/68
Also related https://github.com/getmoto/moto/pull/6446

For the new iot-data change, I tested Boto3 1.28.0 (7 July 2023). It was working with that release:
...
Successfully installed boto3-1.28.0 botocore-1.31.85 jmespath-1.0.1 python-dateutil-2.9.0.post0 s3transfer-0.6.2 six-1.16.0 urllib3-2.0.7

$ py
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import boto3
>>> boto3.session.Session().get_available_regions('iot-data')
['ap-east-1', 'ap-northeast-1', 'ap-northeast-2', 'ap-south-1', 'ap-southeast-1', 'ap-southeast-2', 'ca-central-1', 'eu-central-1', 'eu-north-1', 'eu-west-1', 'eu-west-2', 'eu-west-3', 'me-central-1', 'me-south-1', 'sa-east-1', 'us-east-1', 'us-east-2', 'us-west-1', 'us-west-2']


supply plugin to notify maintainer

What type of PR is this?
What this PR does / why we need it:

Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

do something... begin
| %T {"notify_user_obj":[],"title":"查询prometheus出错","content":"【内部处理错误】当前标题: 查询prometheus出错\n【内部处理错误】当前异常: server_error: server error: 503\n【内部处理错误】发送时间: 2022/07/21 - 22:46:11"}
  | do something... end


[d3d9] Change correctness factor to 0.5f

Been doing a lot of testing of this issue to figure out what is up and down.
The original issue the current code fixed is actually a game bug that also happens with the version of the FF13Fix addon used back then (1.4.6). On Windows with native d3d9 amd drivers this issue can be observed when running the game with a 2560 x 1440 resolution.
This was then later fixed in the addon and so if you download the latest version of FF13Fix it will look correct both with the native driver and dxvk with a 0.5f correctness factor. https://github.com/rebtd7/FF13Fix/releases

Fixed misaligned screen effects (proper fix for the 1440p resolution)

Fixing the game bug back then in dxvk sadly introduced issues in other games like https://github.com/doitsujin/dxvk/issues/3708, https://github.com/doitsujin/dxvk/issues/3818 and https://github.com/doitsujin/dxvk/issues/4425.
I have tested on radv, amdvlk open , amd pro, nvk and Nvidia prop that a correctness factor of specifically 0.5f fixes those issues. FFXIV will behave like on Windows and the addon can still be used to fix the 1440p bug.
(amdvlk and amd pro didn't want to work with gamescope when faking 1440p)

Fixes #3708
Fixes #3818
Fixes #4425
Closes #4461

Some of the issues linked were not correct at first, whoops. Should be now.
Also adding https://github.com/doitsujin/dxvk/issues/4461 as this seems to reduce to the issue back to native levels so it isn't worse with dxvk.

Could you please check 2048x864?
It's 2560x1080 variant.
Many, many, mAnY bugs here and there with 21:9 (~) resolution.
(~ because it's 2.37037037037 not 2.33333333333)

What more specifically do you want me to recheck? The only one i had to fake my resolution for is FF XIII (my monitor is 1080p not 1440p) since we didn't have the apitrace at hand anymore so i had to check the game itself.

Just to make sure it's ok not just for 1080p or 720, 1440 ...
There is smaller variant for 21:9 (~) 1536x648.
Whatever gamescope or wine virtual desktop.

I checked GTA 4, Final Fantasy XIII and Train Simulator with radv and Nvidias driver at 2048x864 and didn't notice any issues. UNDER NIGHT IN-BIRTH II only supports a pre set standard list of resolutions it seems.
Also note that i gather in the Train Simulator issue that they use some third party payed for weather pack which i don't have so just checked the vanilla game. I can't replay apitraces back at arbitrary resolutions as in windowed mode they will be at the size they were captured and trying to run them in fullscreen mode causes a crash in apitrace.

I checked GTA 4, Final Fantasy XIII and Train Simulator with radv and Nvidias driver at 2048x864 and didn't notice any issues. UNDER NIGHT IN-BIRTH II only supports a pre set standard list of resolutions it seems.

thanks


Transfer speed gradually decreases when sending large amount of files.

Describe the bug
My english isn't sharpy so I apologize for any grammatical mistakes.
When transferring thousands of files from Android to Windows, (in my case, a folder with 7000 image files, which contains less than 1gb of data.) Localsend gradually decreases it's transfer speed. For example: After successfully transferring 100 files, transfer speed would be around 1mb/s. After 500 files, the speed drops to 600kb/s. After 1000 files, it'll be 80kb/s, and so on.
However, if I compact everything to a .zip file with 0 compression before I send it, I get a steady speed of 4mb/s on 2.4ghz wifi. It doesn't slows down, meaning that the issue is related to the quantity of files, and not the size of them.
In short: Many single files = Gradually decreases transfer speed. | One single = Maintains the same speed until it's concluded.
Encryption is disabled. Both Desktop and Mobile are running Localsend 1.15.3 (latest).
To reproduce
Send thousands of files from Android to Desktop and see the speed slowing down.
Send the same files but inside a .zip file and transfer speed would be the same until the end.
Expected behavior
Sending multiple files one by one should maintain the same average speed, just like when sending a single large file.
Screenshots
No response
Desktop (please complete the following information)

OS: Windows 11
Version: 1.15.3

Smartphone (please complete the following information)

Device: LgK40S
OS: Android 10
Version: 1.15.3

Additional context
No response

Screenshots:
Single file

Multiple files

Additionally, the same doesn't seems to happen when sending multiple files with a higher size. I tested with 600 video files that size is in the range of 1mb to 60mb. Speed starts at 5.8mb/s and in just a few seconds drops to 5.2mb/s, but keeping around that until the end.

Do you see the same bug if you send from Android to another Android/iOS/macOS/Linux?
I want to make sure that Windows is not the problem here

Tested on Galaxy J7 2016, which is Android 8.1, 2gb ram and 32bits. The same issue happens, but way faster than from my main Android to Desktop. Since this device is really old, I don't think this was a good test.
Additionally: This slowdown happens no matter if I'm using normal wifi (router) or hotspot.

Tested on Galaxy J7 2016, which is Android 8.1, 2gb ram and 32bits. The same issue happens, but the speed drops way faster than from my main Android to Desktop. Since this device is really old, I don't think this was a good test.
Additionally: This slowdown happens no matter if I'm using normal wifi (router) or hotspot.

Tested on Galaxy J7 2016, which is Android 8.1, 2gb ram and 32bits. The same issue happens, but the speed drops way faster than from my main Android to Desktop, both with encryption enabled and disabled. Since this device is really old, I don't think this was a good test.
Additionally: This slowdown happens no matter if I'm using normal wifi (router) or hotspot.

@Trackerlist can you checkout the latest version 1.15.4?

Tested on from Android to Windows and Android to Linux. Using hotspot 2.4ghz. Speeds won't gradually decreases anymore. Transfer speed are steady now, meaning the issue was fixed!

I've also noticed two things that might be good to know:
Localsend cannot transfer more than two files per second, meaning that transfer speed will slowdown depending of the file size. For example: If I send files with 2mb each one, the speed will be 4mb/s. If i send files with 10kb each, the speed will adapt to 20kb/s. It can't send more than 2 files per second.
When turning off Android's screen and waiting for about 5 minutes, Localsend stops sending files and just unfreezes when the screen is on again, meaning the device cannot be on stand-by for too long. When setting Auto Screen Off to Never, this no longer happens.

Localsend finished transferring successfully!

Before, I faced some weird bug that freezed the transfer. Both desktop and android apps were working normaly, but it seems they lost connection somehow and stopped sending and receiving files.
I could see this same information on both android and desktop. After I cancel the transfer on desktop, android didn't auto-canceled like always do, reinforcing that it may be caused by a loss of connection, but I don't know what caused it:

After I retried again, everything just works. Thank you for this amazing app!


[image_picker] Run CocoaPods iOS tests in RunnerUITests target

pod lib lint has been used to run iOS unit tests and the static analyzer.  Unfortunately due to Flutter not supporting ARM iOS simulators and the fact that we can't tell the pod command to skip analyzing on that architecture, this has prevented the plugins CI from migrating to Xcode 12 and is blocking Flutter from increasing the Xcode minimum version to 12.
Now that we have a full-fledged xctest_command we can migrate some of the value we were getting from pod lib lint.
Migrate image_picker package to run all the unit tests as part of the RunnerUITests target.  Remove the old image_picker_exampleTests in favor of RunnerUITests.
Also swap VALID_ARCHS to the Xcode 12 EXCLUDED_ARCHS generated by the Flutter template as of flutter/flutter#64504

I remember these are unit tests, should we create a separate target for unit tests?
I didn't know you can combine unit tests and ui tests in a same target.

You can run whatever you want in the UI tests as long as the symbols are available.  The Runner app symbols aren't available, but the UI tests are linking directly on the plugin framework, and it can test those.
It worked:
https://cirrus-ci.com/task/5631298589949952?command=build#L1930

LGTM, maybe we should rename the target to RunnerTest in the future which would be more accurate.

Sure, we can use whatever test target name we want once https://github.com/flutter/plugins/pull/3667 merges.


Allow Tasks in Pipelines to express a dependency on workspaces 'from' previous Tasks

Feature request
In features like conditions we distinguish between different kinds of dependencies:

ordering (runAfter)
resource dependencies (when a Task relies on a result or a PipelineResource from another Task).

Depending on a workspace that has been acted on by a previous Task is a case of (2) but since workspaces do not have a "from" or similar syntax we have no way of expressing (2) and it will always look like (1).
The syntax for this could look like this:
  tasks:
    - name: task1
      taskRef:
        name: write-to-workspace
      workspaces:
        - name: output
          workspace: pipeline-ws1
    - name: task2
      taskRef:
        name: read-from-workspace
      workspaces:
        - name: src
          workspace: $(tasks.task1.workspaces.output)

Or we could use a from syntax like we do with PipelineResources:
  tasks:
    - name: task1
      taskRef:
        name: write-to-workspace
      workspaces:
        - name: output
          workspace: pipeline-ws1
    - name: task2
      taskRef:
        name: read-from-workspace
      workspaces:
        - name: src
           from: $(tasks.task1.workspaces.output)

Probably we'd want to use the first syntax to be consistent with the syntax for results. I prefer from because it's slightly more explicit but that's probably a discussion for another issue!
Use case
Any Pipeline where you want one Task to act on a workspace and another to do something with it. Some examples:

TaskA clones from git to a workspace, TaskB builds the cloned code
TaskA builds a binary - but conditionally, only if the files the binary builds from have changed. TaskB runs a test with that binary, but should not run if TaskA was skipped

I agree from might make more sense. In the first syntax snippet the user could reasonably assume that only the name of the workspace will be interpolated. But they'd be wrong - the name of the workspace will be injected and there's an implicit runAfter added to the pipelinetask. from gives a clearer signal, at least to me, that there's something else going on over just the string interpolation.
In fact, thinking about it some more I'm not totally convinced that this needs to be a variable. It isn't quite right to think of it as interpolation. Maybe it should just be a dot-notation without the $(...)?  from: tasks.task1.workspaces.output. The reason being: what does it mean to interpolate a different variable into from? Like $(tasks.task1.results.foo)? I don't think that would work because Tekton would have to resolve that workspace name halfway through pipeline execution. I'm not sure that any other variable interpolation can be supported in the from field so I'm not sure we should make it "look" like regular variable interpolation. wdyt?

/assign

I prefer the from option as well, and agree with @sbwsg that it shouldn't be a variable but I think we don't even need the dot-notation in from. I explored some alternatives and found that we can solve this using from that references the pipelinetask that we expect to operate on that workspace before the current pipelinetask -- the syntax would look like:
tasks:
    - name: task1
      taskRef:
        name: write-to-workspace
      workspaces:
        - name: output
          workspace: pipeline-ws1
    - name: task2
      taskRef:
        name: read-from-workspace
      workspaces:
        - name: src
          workspace: pipeline-ws1
          from: task1

I implemented a poc for this design in https://github.com/tektoncd/pipeline/commit/47d216c58a87b8c9a571cb9a380a7fcd6157a999 -- the example in the poc is a modification of this example (removed the runAfter and used from instead)
@sbwsg @bobcatfish please let me know what you think before i write up a tep on this

      workspaces:
        - name: src
          workspace: pipeline-ws1
          from: task1

I think this approach makes sense. It simplifies the field to its core purpose of specifying the resource dependency without any of the variable-looking stuff.  lgtm!

I also prefer from but I'd like to introduce a couple other thoughts in case they change your opinion @jerop @sbwsg :

We chose not to use from with results <-- slightly different because in that case we NEED variable interpolation and here we don't
The only other place we have from is with pipelineresources - https://github.com/tektoncd/pipeline/blob/master/docs/pipelines.md#using-the-from-parameter - if we remove pipelineresources then we'd be keeping this "from" syntax ONLY for this workspace feature (maybe thats ok?)

I'm also wondering if we might end up with any potential ambiguity e.g. in the examples above:
      workspaces:
        - name: src
           from: $(tasks.task1.workspaces.output) # note that this is explicitly saying WHICH resource ('output') FROM task1

vs
      workspaces:
        - name: src
          workspace: pipeline-ws1
          from: task1 # this is saying 'pipeline-ws1' from task1, but 'pipeline-ws1' could be bound to multiple workspaces

This might not actually be a problem: i think with pipelineresources it would be because we have an "automagic" volume that we create to share data between pipelineresources when "from" is used, so we need to know exactly which pipelineresource to get the data "from" - with this workspace from feature we aren't (yet???) adding any of this kind of optimization so maybe we don't need that level of detail?
Whether or not this is an issue probably depends on:

Do we see it being useful to have more info (e.g. the exactly workspace binding)
Do we know of any other features we want to add around this (I don't think so?)

I'm trying to come up with use-cases that could lean on a precise mapping from one pipeline task's workspace to another's but I'm struggling to think of any.  The edge in the DAG between the two tasks remains the same regardless of which of the two tasks' WorkspacePipelineTaskBindings are connected by their intent.

Ooooo yeah this ol' chestnut - I'm going to tentatively add this to the 2021 roadmap draft
/remove-lifecycle stale

/remove-lifecycle stale
actively working on this issue in TEP-0063: Workspace Dependencies


Financial Assistance Request Approval Email raises ValueError: Cannot query "program-v1:MITx+DEDP | DEDP": Must be "Course" instance.

Steps to Reproduce

Submit financial assistance request for a course that belongs to a program i.e. DEDP.
Visit flexible prices in the staff dashboard and approve the request.
An exception will be raised: ValueError: Cannot query "program-v1:MITx+DEDP | DEDP": Must be "Course" instance.

Expected Behavior

Financial assistance request approval email is sent to the user.

Actual Behavior

Raises: ValueError: Cannot query "program-v1:MITx+DEDP | DEDP": Must be "Course" instance.

Stacktrace

File "/app/flexiblepricing/tasks.py", line 50, in notify_flexible_price_status_change_email
celery_1    |     Sends email notifications when the flexible price status changes.
celery_1    |   File "/app/flexiblepricing/mail_api.py", line 41, in generate_flexible_price_email
celery_1    |     courserun = CourseRun.objects.filter(
celery_1    |   File "/usr/local/lib/python3.9/site-packages/django/db/models/manager.py", line 85, in manager_method
celery_1    |     return getattr(self.get_queryset(), name)(*args, **kwargs)
celery_1    |   File "/usr/local/lib/python3.9/site-packages/django/db/models/query.py", line 941, in filter
celery_1    |     return self._filter_or_exclude(False, args, kwargs)
celery_1    |   File "/usr/local/lib/python3.9/site-packages/django/db/models/query.py", line 961, in _filter_or_exclude
celery_1    |     clone._filter_or_exclude_inplace(negate, args, kwargs)
celery_1    |   File "/usr/local/lib/python3.9/site-packages/django/db/models/query.py", line 968, in _filter_or_exclude_inplace
celery_1    |     self._query.add_q(Q(*args, **kwargs))
celery_1    |   File "/usr/local/lib/python3.9/site-packages/django/db/models/sql/query.py", line 1416, in add_q
celery_1    |     clause, _ = self._add_q(q_object, self.used_aliases)
celery_1    |   File "/usr/local/lib/python3.9/site-packages/django/db/models/sql/query.py", line 1435, in _add_q
celery_1    |     child_clause, needed_inner = self.build_filter(
celery_1    |   File "/usr/local/lib/python3.9/site-packages/django/db/models/sql/query.py", line 1343, in build_filter
celery_1    |     self.check_related_objects(join_info.final_field, value, join_info.opts)
celery_1    |   File "/usr/local/lib/python3.9/site-packages/django/db/models/sql/query.py", line 1170, in check_related_objects
celery_1    |     self.check_query_object_type(value, opts, field)
celery_1    |   File "/usr/local/lib/python3.9/site-packages/django/db/models/sql/query.py", line 1151, in check_query_object_type
celery_1    |     raise ValueError(
celery_1    | ValueError: Cannot query "program-v1:MITx+DEDP | DEDP": Must be "Course" instance.

Screenshot or Screencast

The issue is with the below code snippet. For the program courses, we add financial assistance requests for the program and when a request is approved we are trying to find CourseRun using courseware_object but courseware_object is a Program. So, we cannot match a Program type with a Course type.
if flexible_price.status == FlexiblePriceStatus.APPROVED:
    courserun = CourseRun.objects.filter(
        course=flexible_price.courseware_object
    ).first()
    product = Product.objects.get(object_id=courserun.id, is_active=True)
    price = DiscountType.get_discounted_price(
        [flexible_price.tier.discount], product
    )
    message = FLEXIBLE_PRICE_EMAIL_APPROVAL_MESSAGE.format(
        program_name=flexible_price.courseware_object.title, price=price
    )
    subject = FLEXIBLE_PRICE_EMAIL_APPROVAL_SUBJECT.format(
        program_name=flexible_price.courseware_object.title
    )

I've got this updated locally to pull the discount amount, which does resolve the issue. I do need some text for the message, though. @pdpinch can you provide this?
The current text is this:
After reviewing your income documentation, the ${program_name} MITxOnline team has determined
that your personalized course price is ${price}.

You can pay for MITxOnline courses through the MITxOnline portal
(https://MITxOnline.mit.edu/dashboard). All coursework will be conducted on mitxonline.mit.edu

(where price is the product price and program_name is the name of the title of the courseware object). My temp fix now has this for updated text:
After reviewing your income documentation, the ${program_name} MITxOnline team has determined
that your personalized course discount is ${discount}.

You can pay for MITxOnline courses through the MITxOnline portal
(https://MITxOnline.mit.edu/dashboard). All coursework will be conducted on mitxonline.mit.edu

Further, discount is either xx% off, $xx off, or $xx fixed price (depending on the discount type). All of that can be changed.

It would have easier to comment on a PR, but here's what I think it should say:
After reviewing your income documentation, the ${program_name or course name} team has award you financial
assistance in the amount of ${discount}.

You can pay for MITx Online courses through the MITx Online portal
(https://MITxOnline.mit.edu/dashboard). All coursework will be conducted on mitxonline.mit.edu

Where ${discount} is one of xx% off, $xx off or a fixed price of $xx


HAWQ-1443. Implement Ranger lookup for HAWQ with Kerberos enabled.

This PR implements the HAWQ client in ranger to lookup HAWQ resource in kerberos environment.
With Kerberos authentication, the jdbc URL looks like:  jdbc:postgresql://host:port/db?kerberosServerName=HawqKerberosServiceName&jaasApplicationName=pgjdbc&user=LookupPricipal
With Simple authentication,  the jdbc URL just looks like:  jdbc:postgresql://host:port/db and with user name and password as parameter.
In Kerberos env, we also do kinit with principal name and principal password. Keytab file is not supported yet.
Signed-off-by: xiang sheng<EMAIL_ADDRESS>

+1


Process Hangs on Windows Machines.

When I try to bundle routes (testing with systemjs-seed project) the bundler hangs and the node process is pegging the CPU. On my mac the bundler processes fine and fairly quickly.
The output I get on a windows machine when it hangs is:
[13:54:51] Running as: development
[13:54:57] Using gulpfile C:\code\js\systemjs-seed\gulpfile.js
[13:54:57] Starting 'routeBundler'...
tracing source files...
generating bundles...
building...
building bundles...
building routes...
building app...

To replicate:

clone project: https://github.com/lookfirst/systemjs-seed
run npm install
run jspm install
run gulp recompile
run gulp routerBundler

I have verified that the issue exists with node 0.10.x and 0.12.x. It looks almost like the process is getting stuck in an infinite loop on windows machines.
My Windows config is:

Windows 7 pro 64bit
Intel Core i5-2320 @ 3.00Ghz

JavaScript... Write once, run almost anywhere! :wink:

I'm working today on upgrading to latest of this project...

I found out what is causing the issue on windows. Turns out that builder is writing the files from npm, github, etc into the 'dest' folder, prefixing them with the repo:packagename ex<EMAIL_ADDRESS>In windows ':' is not a valid character in a file or directory name.
As a side note; shouldn't all of the referenced files be bundled?

@cliechty thank you for catching that!
Those files are currently bundled, but also built separately (which is unnecessary). I'll push a fix for this today.

@cliechty don't use windows ;)

Oh yea, I noticed all those folders getting created in my dest folder. Would be nice to not have those. =)
:+1: on not using windows!

Unfortunately those who pay my salary force me to use windows. :frowning:

I think I'd bring my own computer to work then. ;-)

I pushed a fix. Please upgrade your project to use 1.1.1

I have confirmed the issue is fixed. Thanks for the quick turnaround. This project looks like it will really help my teams project in the near future.