Identity Server integration

I have configured a separate instance hosted at http://localhost:5000 for identity server.
Question#1: Can I make the Gateway Api a client for IS4(identity server 4). If yes, please help me with the settings given I have following client created in the identity server:
ClientId = "mvc",
AllowedGrantTypes = GrantTypes.Implicit,
RequireConsent = false,
EnableLocalLogin = false,
RedirectUris = { "http://localhost:5002/signin-oidc" },
PostLogoutRedirectUris = { "http://localhost:5002/signout-callback-oidc" },
AllowedScopes =
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile
}
Question#2: If I can make Gateway Api a client for IS4, do I need to make any changes with the routes to take that into consideration.

@amituna please read auth docs to see what how Ocelot currently integrates with identity server. It is very basic integration at the moment and it is not really a client of IdentityServer!
Hope that helps...happy to discuss any improvements we could make!

Please let me start from the very beginning, let me explain what I have done and please review it and tell me what I am missing. I am using implicit flow and Windows Authentication in Identity Server 4.
Startup looks like following:
public async void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
app.UseCookieAuthentication(new CookieAuthenticationOptions{
AuthenticationScheme = "idsrv.external"
});
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions{
AuthenticationScheme = "oidc",
SignInScheme = "idsrv.external",
Authority = "http://localhost:5000",
RequireHttpsMetadata = false,
ClientId = "mvc",
SaveTokens = true,
});
await app.UseOcelot();
app.UseMvc();
}
My configuration route looks like following:
{
"DownstreamPathTemplate": "/api/HomeGateway/ActionItemsApi/GetActionItems",
"DownstreamScheme": "http",
"DownstreamPort": 64000,
"DownstreamHost": "localhost",
"UpstreamPathTemplate": "/home/actionitems/view",
"UpstreamHttpMethod": "Get",
"AuthenticationOptions": {
"Provider": "IdentityServer",
"ProviderRootUrl": "http://localhost:5000",
"AllowedScopes": [
"openid",
"profile"
],
},
"RequestIdKey": "OcRequestId"
}
When I try to request "http://localhost:8800/home/actionitems/view", I get 401. following is the error log:
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost:8800/home/actionitems/view
dbug: Ocelot.Errors.Middleware.ExceptionHandlerMiddleware[0]
ocelot pipeline started : OcelotRequestId - not set
dbug: Ocelot.Errors.Middleware.ExceptionHandlerMiddleware[0]
calling next middleware : OcelotRequestId - not set
dbug: Ocelot.Request.Middleware.DownstreamRequestInitialiserMiddleware[0]
started calling request builder middleware : OcelotRequestId - not set
dbug: Ocelot.Request.Middleware.DownstreamRequestInitialiserMiddleware[0]
calling next middleware : OcelotRequestId - not set
dbug: Ocelot.DownstreamRouteFinder.Middleware.DownstreamRouteFinderMiddleware[0]
upstream url path is /home/actionitems/view/ : OcelotRequestId - not set
dbug: Ocelot.DownstreamRouteFinder.Middleware.DownstreamRouteFinderMiddleware[0]
downstream template is Ocelot.Values.PathTemplate : OcelotRequestId - not set
dbug: Ocelot.RateLimit.Middleware.ClientRateLimitMiddleware[0]
EndpointRateLimiting is not enabled for Ocelot.Values.PathTemplate : Ocelo
tRequestId - not set
dbug: Ocelot.Authentication.Middleware.AuthenticationMiddleware[0]
/home/actionitems/view is an authenticated route. AuthenticationMiddleware
checking if client is authenticated : OcelotRequestId - not set
info: IdentityServer4.AccessTokenValidation.Infrastructure.NopAuthenticationMidd
leware[7]
Bearer was not authenticated. Failure message: No token found.
dbug: IdentityModel.AspNetCore.ScopeValidation.ScopeValidationMiddleware[0]
Skipping scope validation because user is anonymous
fail: Ocelot.Authentication.Middleware.AuthenticationMiddleware[0]
Client has NOT been authenticated for /home/actionitems/view and pipeline
error set. Error Code: UnauthenticatedError Message: Request for authenticated r
oute /home/actionitems/view by  was unauthenticated : OcelotRequestId - not set
dbug: Ocelot.Request.Middleware.DownstreamRequestInitialiserMiddleware[0]
succesfully called next middleware : OcelotRequestId - not set
fail: Ocelot.Responder.Middleware.ResponderMiddleware[0]
1 pipeline errors found in ResponderMiddleware. Setting error response sta
tus code : OcelotRequestId - not set
dbug: Ocelot.Errors.Middleware.ExceptionHandlerMiddleware[0]
succesfully called middleware : OcelotRequestId - not set
dbug: Ocelot.Errors.Middleware.ExceptionHandlerMiddleware[0]
ocelot pipeline finished : OcelotRequestId - not set
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 679.0673ms 401

I am not sure if it helps, but I do not see any traffic where web api gateway, tries to communicate with IS4.

Hi @amituna,
I havent had a chance to look at this yet but will get round to it soon!

@amituna did you ever get this working?

http://ocelot.readthedocs.io/en/latest/features/authentication.html#identity-server-bearer-tokens


fix: add fix for quickstarts containing chart folders

so that we treat the charts folder if it contains Charts.yaml like a
build pack and do the helm rename thing we need to for helm

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign jstrachan
You can assign the PR to them by writing /assign @jstrachan in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/approve

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jstrachan
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [jstrachan]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Heater

See comments at https://github.com/mck1117/wideband/pull/140

@mck1117 @dron0gus can you guys coordinate a plan to move this area forward? seems to be holding the rest of incremental merge process


Microsoft Bot, How to ask user if wants to save the result and how to save it

Hi, i'm creating bot which will respond to questions and gets the answer from bing search API, and after the shown results i want to ask the user if the result is accurate, if it is to save the result, if not to show another result. I tried with prompt dialog but there i can't pass the result from search.

You can use the bot data bags (user, conversation, or per-user in conversation to store state), or better yet, store the search result in the dialog data (Node) or instance members of the dialog class (C#) for the dialog that calls the prompt dialog.


[staging & production] Search bar occluded with certain screen sizes

Steps

Go to either staging or production
Log out of whichever site you are on
Press the magnifying glass to open the search bar
Resize the screen to be at a width between 768 and 991 pixels

Expected
I expect that no matter what the screen size, the green search bar should be visible.
Actual
Between these screen widths, the navbar obscures the search bar:

Tagging @caneruguz here for input.

Yes the expectation is correct. This size issue happens between certain intervals which is a small amount of possible size but it needs to be addressed.  @HarryRybacki might have suggestions or fixes for this, if not I can take a look as well.

@lbanner I chatted with @caneruguz about this. It'll be a quick fix if he's assigned to it. Otherwise I'll get to it when I have a few hours to learn up on this stuff and hack it it for a bit.

The fix by @caneruguz has been merged and deployed. Checked on production. This problem doesn't exist anymore.

:+1: Thanks all.


Suggestion: Remove the heavy water filter from the pump and move it to another processing machine

It would be nice if we could process water into heavy water inline rather than only being able to do it at the original water intake.
This will avoid strange issues like the pump once in awhile getting ahead of Minecraft's replenishment code causing stoppages to the heavy water processing line (assuming water is sourced another way).

The issue you described is fixed in v9.


$ is not defined, jQuery is not defined in console tab in front end ????

I Fixed thanks you

Please send the pull request.
On Wed 4 Jul, 2018, 8:20 AM nguyenkhoi2806<EMAIL_ADDRESS>wrote:

I Fixed thanks you
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/viralsolani/laravel-adminpanel/issues/243#issuecomment-402347787,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABspyBgbNmNetKv5dTe8jia0Uh2pWMD9ks5uDC1egaJpZM4U-M4j
.

@vrkansagara Can you please look into this?

@viralsolani I am looking into this matter.

@nguyenkhoi2806  Can you share us your app.blade.php layout file. It's look like that jquery not loaded with dome load.
You have to make sure that jQuery is loaded before any jquery function execute.


Version 0.3.5

Codecov Report

Merging #1551 (8c52c24) into main (480ee04) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main    #1551   +/-   ##
=======================================
  Coverage   82.75%   82.75%
=======================================
  Files          68       68
  Lines        5580     5580
=======================================
  Hits         4618     4618
  Misses        962      962

Impacted Files
Coverage Δ

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

Continue to review full report at Codecov.

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


Assertion fails in frame right-indexing by column name

This little test (adapted from createFrame_1.daphne):
c1 = fill(123, 5, 1);
c2 = seq(100.5, 140.5, 10.0);
c3 = seq(-4, 4, 2);

f = createFrame(c1, c2, c3, "a", "b", "c");
print(f[,"a"]);

fails with:
/tmp/daphne/bin/daphne -config /tmp/daphne/UserConfig.json test/api/cli/operations/createFrame_1.daphne
daphne: /usr/local/include/mlir/IR/StorageUniquerSupport.h:173: static ConcreteT mlir::detail::StorageUserBase<ConcreteT, BaseT, StorageT, UniquerT, Traits>::get(mlir::MLIRContext*, Args ...) [with Args = {std::vector<mlir::Type, std::allocator<mlir::Type> >, long int, long int, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*}; ConcreteT = mlir::daphne::FrameType; BaseT = mlir::Type; StorageT = mlir::daphne::detail::FrameTypeStorage; UniquerT = mlir::detail::TypeUniquer; Traits = {}]: Assertion `succeeded(ConcreteT::verify(getDefaultDiagnosticEmitFn(ctx), args...))' failed.

Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)

If "a" is changed to 0 the script runs just fine.
The issue surfaced now that I tried to run the test suite in debug mode (where the right_indexing_success_3.daphne test fails)

Thanks for reporting. I can comfirm this bug. It happens in Frame::verify() (src/ir/daphneir/DaphneDialect.cpp), because one of the constraints we defined for a FrameType is violated. The root cause is an erroneously inferred return type in the DaphneDSL parser (there is a mistake in DaphneDSLVisitor::applyRightIndexing() (src/parser/daphnedsl/DaphneDSLVisitor.cpp).
I will commit a fix tomorrow.

Short update: I'm working on it and am essentially done (fixing this bug revealed a few other "little" problems). Hope to finish it tomorrow.


Disable blending before blitting to framebuffer from WebXR

This fixes a rendering bug with WebXR "immersive-ar" sessions on Meta Quest 2.
This bug only affects Godot 3.x - it isn't present on Godot 4.x (XR rendering is done very differently on 4.x)
Fixes #75581

Looks great! Thanks!


Improve owner/maintainer documentation

Hi, simple fix, only had to move some lines around/add text. Thanks!

Ok, I edited the text a little. Replaced all may's with can's. Also, while reading closely I thought it to be preferable to reorder the order of ideas. Do you think it looks good?
One thing I am wondering is if I ought to delete the reference to Owns a package b/c maintainer has no reference to what he does. So perhaps I ought to write Helps maintain a package. or delete Owns a package?

@jMuzsik I think deleting the "Owns a package" is fine, it's a bit redundant anyways 🙂

Thanks @jMuzsik!


Panic stacktrace is not detailed on some platforms

Report
On Windows and Android, there are not enough frames showing up in the stacktrace. Most of the frames are missing because they cannot be resolved.
On macOS and iOS, the code filenames are not visible because frames in that Rust code don't include the filename information. It would be great to enable filepath information.
Things that don't make any difference:

Using the default panic hook of Rust without set_hook
RUST_BACKTRACE=1 /RUST_BACKTRACE=full environment variables

Windows, Android:

macOS, iOS:

Ubuntu:

web: Not handled by RIF. Handled by wasm_bindgen.
This is the panic handler code. We replace the native panic hook with the std::panic::set_hook function, sending the panic info to Flutter to print it in the CLI(Only in debug mode, of course) with our debug_print! macro.
https://github.com/cunarist/rust-in-flutter/blob/8869298306ec585d9cfb37503fcbf7a3d2ef583a/example/native/hub/src/bridge/api.rs#L166-L198
On Android, if you disable the resolve step by commenting it out, many more unnamed frames appear in the stacktrace, which seem to derive from our Rust code.
https://github.com/cunarist/rust-in-flutter/blob/8869298306ec585d9cfb37503fcbf7a3d2ef583a/example/native/hub/src/bridge/api.rs#L192
This issue can be related to cargokit or missing .pdb files after compilation, but we do need deeper anaylsis.
Steps to Reproduce
Just use panic! anywhere in the Rust code.
System Information
I'm testing on multiple platforms, but they all pass these checks.
rustc --version
protoc --version
flutter doctor

Also, it will be good to print panics on the web in the CLI too.

Closing as it's not very useful in async apps


Improve the installation and setup process:

Update CEO README
Exclude template/freemarker from being copied in build.gradle and pom.xml
Create a default data SQL script for CEO (port src/main/resources/scripts/data_migration.py to node and add as a script in package.json)

This will be taken care of during the backend rewrite


ARM64 version

Hi,
First of all, thank you for this tremendously useful tool! It has been part of my troubleshooting toolchain for quite some time 😊
Since Fusion++ is now published self-contained, I wanted to ask if it would be possible to publish an ARM64 package as well. Windows ARM64 is beginning to take off, and the company I work at is now getting first bug reports from customers on ARM64. It would've been great if Fusion++ was available natively on that platform.
Thank you!

Thanks for the feedback.
You mean analysing .NET Framework (not .NET Core, 5+) apps on ARM64?

Hi, no I mean publishing Fusion++ itself as an ARM64 app. Right now it's an x64 self-contained archive (Fusion++.1.5.zip), would be great to have an ARM64 archive as well.

Could be done but I guess it would not make a big difference out there. Fusion logging is not supported with .NET Core and .NET 5+. I guess classic .NET Framework is not heavily used on ARM64 though it's possible with .NET Framework 4.8.1.
That being said, I think you'd mostly analyse dumps from other machines on your ARM64 machine.
Would be awesome to get a pull-request for this.

Closed because of inactivity. Feel free to re-open.


Calculate screen_view duration

Is your feature request related to a problem? Please describe.
Have you considered adding screen or session  pings to allow calculate user timespent on certain pages / during whole session?
Describe the solution you'd like
Some solution similar to existing in JS tracker – sending standard event each 5/10 seconds

Reference to same issue on iOS: https://github.com/snowplow/snowplow-objc-tracker/issues/670

This has been implemented in #654 and released in version 6.0.0!


⚠ edjufy Platform Login has degraded performance

In 0ad1dad, edjufy Platform Login ($EDJUFY_BACKEND_AUTH_URL) experienced degraded performance:

HTTP code: 200
Response time: 1323 ms

Resolved: edjufy Platform Login performance has improved in 37f09f3 after 7 minutes.


Autocomplete endpoint

Hello,
I tried to handle the /autocomplete endpoint, but it seems incomptible atm with your bundle, do you know if there's some hardcoded parameters in EA ?

@Geolim4 Ccould you confirm: it about this autocomplete feature, right? Or something completely else that I'm unaware of?

@Geolim4 Ccould you confirm: it about this autocomplete feature, right? Or something completely else that I'm unaware of?

Indeed, its a part of its own controller crud action :D

@Geolim4 I think I have an answer for you, but probably not exactly what you're looking for.
I don't think there's a way to completely shorten the autocomplete URL. You can add the autocomplete action to the target controller, but some paramaters sent there will still have to be in query.
i.e. AuthorController if you're looking at the list of authors for your Post - add #[PrettyRoutesController(customActions: ['autocomplete'])] as a class Attribute.
The example above, used in EasyAdmin Demo App, shortened this:
http://ea-demo.loc/en/easyadmin?autocompleteContext%5BcrudControllerFqcn%5D=App%5CController%5CEasyAdmin%5CPostCrudController&autocompleteContext%5BpropertyName%5D=author&autocompleteContext%5BoriginatingPage%5D=edit&crudAction=autocomplete&crudControllerFqcn=App%5CController%5CEasyAdmin%5CUserCrudController&page=1&query=
to this:
http://ea-demo.loc/user_crud/autocomplete?autocompleteContext%5BcrudControllerFqcn%5D=App%5CController%5CEasyAdmin%5CPostCrudController&autocompleteContext%5BpropertyName%5D=author&autocompleteContext%5BoriginatingPage%5D=edit&page=1&query=
There is a difference but some params have to be passed via query:

autocompleteContext[crudControllerFqcn]: App\Controller\EasyAdmin\PostCrudController
autocompleteContext[propertyName]: author
autocompleteContext[originatingPage]: edit
page: 1
query:

I will move the default actions list to configuration, so that everyone could set them by themselves, and I'll add autocomplete to the list of default defaults (I know... but naming is hard). But that will be in couple of days, unfortunately. In the meantime, I'll have to leave you with the solution of adding an Attribute to some of your classes.

@Geolim4 The issue you've raised is addressed in release v2.6.0.

Hello @marcin-jozwikowski that's a great news !
I'll test that tomorrow !

Working as expected, thanks for the improvement buddy, can be closed 🫶


set owner/group/mode of the exported directory

replace ensure_resource again with if ! defined(File[$name])
ensure_resource creates duplicate resources when the resource is already
declared but has different attributes. With this commit, it will not create
duplicate resource when it is already declared

Thanks, looks good!


Pass options file and options via command line

What I would like to do is this.
pug -O global.json -O '{"foo": "bar"}' example.pug

And have the pug template reconcile the two. Priority would be overwritten from left to right. Meaning the last options passed would be considered the final options and would override any that came before.

Have you thought of reconciliation through js instead of json?


fix(VtkView): Mount views when they are created

Views were not being mounted, since VtkView was being created before the
views were ready.
Should fix #329

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Can't run the project with the latest verison

error ./node_modules/@mizuwallet-sdk/aptos-wallet-adapter/dist/index.js:5:0
Module not found: Can't resolve '@mizuwallet-sdk/core'

I'm also getting this error

Any fixes found?

I had to navigate into the @mizuwallet-sdk/aptos-wallet-adapter and run npm install. Now it is resolving @lionel201

Adding '@mizuwallet-sdk/core' to your project's dependencies fixed the issue for me


Show special alert for FORBIDDEN graphQL errors

Fixes #2165

Hey @rnystrom not sure what was changed here; I know you had another pr for adding a token.
What was changed here?
More importantly, the alert is obscured by keyboard now when posting in a comment in those problem repos (was resting pre-PAT add)

100% something changed for it but can you please link me where you would like me to create issue ticket.


Count Controller unit tests - avoid dupe body

body element used but already appending to document.body

Minor typo I found while reviewing another PR - will merge in once CI is happy.


Travis CI is suddenly failing on a unit test

From the logs:
Failures:
1) api getDocument creates pdf doc from URL
  Message:
    Expected false to equal true.
  Stack:
    Error: Expected false to equal true.
        at <Jasmine>
        at /home/travis/build/mozilla/pdf.js/build/lib/test/unit/api_spec.js:80:52
        at process._tickCallback (internal/process/next_tick.js:68:7)

This is strange because all checks were green when we merged the pull requests...

Unfortunately there is also a passing build with v10.8.0, namely https://travis-ci.org/mozilla/pdf.js/builds/411182663. Only that one succeeded, the other ones failed.

I removed all caches on Travis CI, but that also did not resolve the issue.


Added with_fixed_resolution option to WindowCreationOptions

This is a draft to address #86. I am sure there is a better way, but this is a basic example of what I'm trying to do.

I updated the window creation option to instead be with_fixed_resolution to more accurately capture the intent. I also added a set_resolution function on Graphics2D that can be used to dynamically set the resolution during on_draw.

Thanks for submitting this, and sorry for the big delay in looking at it -- I'm aiming to review this soon.

No worries! I'm not really sure it's in any state for a review. I made some pretty hacky changes because I'm not sure I really understand the architecture. Consider it a very rough draft and I'm open to suggestions.

Do you think a possible 2.0 API would affect this?

@QuantumBadger, I've been using this for a bit and I haven't run into any issues. Would it be possible for you to take a look and see if there is anything I should address?

Sorry for the delay, I've been quite busy over the last few weeks. Thank you again for doing this!
It seems pretty reasonable, however I think it would be more useful if:

The aspect ratio was maintained (e.g. centering the image and adding black bars at the edge of the screen)
Text was drawn at high quality, or at least was consistent with shapes -- currently shapes are drawn at full resolution, whereas text is rendered at the low resolution and then drawn with nearest neighbor scaling (which looks pretty bad).

The fixed_resolution naming could be a bit misleading as the resolution changes with the window size, and the viewport is the thing that gets scaled (hence why circles/etc are drawn with high quality).
There are a couple of alternatives to this approach:

To draw everything at a low resolution and scale up, it's possible to draw to a texture, and then render that texture to the screen (scaled up).
To draw everything at a high resolution, it may be best to scale everything on the API side rather than the OpenGL side, e.g. by scaling up all the coordinates passed in by the user. However text still presents a problem here as the size is needed at the layout step, rather than the draw step, so we'd need to add a second text scale to RenderQueueItem.

It would make sense to implement this as a sort of "wrapper" for the API if possible, to eliminate any overhead for most users. I.e. you'd have a struct like ScaledGraphics2D, which has a reference to a Graphics2D internally, and scales the user's coordinates before passing them to Graphics2D.

Hopefully all that makes sense! I'm happy to answer any questions and clarify more if needed.

No worries about any delay! I've been swamped by my day job, so I'm moving pretty slow on this, too. I appreciate your help!
Taking a step back, I think if I explain my use case, it might help understand my (admittedly poor) naming for the feature. I'm trying to provide a Javascript API for digital signage "applications," which provides simplified drawing commands run every frame. The end result is something like this work-in-progress example:
https://github.com/superlou/signrs/tree/main/examples/app2
https://github.com/superlou/signrs/assets/709695/9efa7d1f-9efe-4683-b5d3-db6a524a9ad2
In the applications, it is more like a game viewport than a resizable desktop application viewport, where designing at a lower resolution is for performance. My goal is to be able to run that example application above at 60 FPS on a Raspberry Pi 3 (as well as cross-platform on desktops).
The application is run full-screen all the time when in normal use; however, when developing the custom Javascript applications on a desktop, it's convenient to have them scaled down. I think scaling with black bars might be ok, but in production, it would often be better to have some minor stretching than show black bars (though maybe that should be configurable).
I didn't realize the hack I had done was still drawing shapes at full resolution. I had expected the text to be lower quality since I thought I was doing something like your first approach: drawing at lower resolution and scaling up. That's why I thought I was drawing at a fixed (maybe virtual?) resolution that was then scaled up to the window's resolution.
So, I like the idea of a flag to decide if the aspect ratio is maintained, and I think I'm looking to draw at low resolution and scale up. That said, if that isn't actually a performance improvement, then I'm going down the wrong path.

Sorry to bump this, but any thoughts on this use case and if there was a better path I should explore in this PR? I tried a Raspberry Pi 4 hoping that would make this a non-issue, but text rendering is still my bottleneck.

Rendering to a low-res texture and scaling up is one alternative as mentioned above, although the GPU is still going to be working hard to fill all 1920x1080 pixels every frame.
Just some thoughts:

Is it possible to turn down the Raspberry Pi's display resolution to e.g. 720p?
I assume that multisampling is set to 1 as you mentioned in #83.
Are you building your app in release mode (--release) or the default debug mode? This can have a big impact on text rendering performance
The scrolling text on the bottom should be restricted to integer positions for performance. If the decimal component of the position changes, then the text needs to be regenerated. If this is kept the same (which is easiest to ensure by just rounding to the nearest int), then Speedy2D caches each character as an image for fast drawing.

Is it possible to turn down the Raspberry Pi's display resolution to e.g. 720p?

 I should've thought of that a long time ago. Drawing to a low-res texture and scaling up still sounds like a feature I want so that when I'm developing on a PC, I can resize the window, but I am going to try changing the Raspberry Pi resolution as soon as I get back from work travel.
Is drawing to a low-res texture and scaling something that has to be done with a custom context, or is that something that can be done with the built-in window handler?

I assume that multisampling is set to 1 as you mentioned in
https://github.com/QuantumBadger/Speedy2D/issues/83.
Are you building your app in release mode (--release) or the default debug mode? This can have a big impact on text rendering performance

Yes for both of these. Running in release is definitely a huge difference vs. debug.

The scrolling text on the bottom should be restricted to integer positions for performance. If the decimal component of the position changes, then the text needs to be regenerated. If this is kept the same (which is easiest to ensure by just rounding to the nearest int), then Speedy2D caches each character as an image for fast drawing.

I didn't realize that (and I see it now looking at the documentation). I added it to my app and will try it ASAP on the RPi. On a tangent, if round returns a Vector2D that still has elements of f32, how can you tell that the positions are exactly integers given floating point quantization?

Is drawing to a low-res texture and scaling something that has to be done with a custom context, or is that something that can be done with the built-in window handler?

Drawing to textures is currently unsupported, but it would be great to add this as a feature!

how can you tell that the positions are exactly integers given floating point quantization?

Integers up to 2^23 can be represented exactly as floats, by making use of the 23 bits in the mantissa, so simply calling round() should be fine.
For the purposes of caching, Speedy2D uses buckets of 0.1 x 0.1 pixels, giving 100 (10 * 10) possible subpixel positions for each glyph -- so we still cache for non-integer values, but you're just less likely to have a cache hit.

Drawing to textures is currently unsupported, but it would be great to add this as a feature!

Do you think this should be exposed as a stateful Graphics2D feature like .set_clip, where you set the current texture to draw to, and subsequent commands draw to the texture? Or would you create a texture that implements most of the methods of Graphics2D?
I think either one would be enough to then let the user draw the texture, scaled to the screen with the normal graphics context. Either approach may be more flexible than how I initially envisioned this PR, where it was a configuration of the window.

I finally got a chance to try running with the rounded text positions, and that definitely seems to help. It's nearly 60 fps now, but still dips down for text heavy draws. Changing the raspberry pi resolution to 1280x720 definitely makes it hold 60 fps, though I guess that's counting on the TV to do the scaling? Do you have any thoughts on how a Texture2D API would look?

Glad it's improved now! Yes the TV would do the scaling in that case.

Do you have any thoughts on how a Texture2D API would look?

Ideally something like this, inside Graphics2D:
pub fn draw_to_image(
    &mut self,
    image: &ImageHandle,
    operations: FnOnce(&mut Graphics2D)
)

So to draw a rectangle to an image, you'd call it as follows (in on_draw()):
graphics.draw_to_image(&image, |graphics| {
    graphics.draw_rectangle(...);
});

The operations done in the closure would apply to the image, rather than the main window.


Added jtreg-buffer external suite

This PR is adding our buffer of not-yet-if-ever upstreamed jtreg tests, as another external testsuite.
It do pass locally, however in grinder it fails https://ci.adoptium.net/view/Test_grinder/job/Grinder/9229/console Error: cannot find the following tests: jtreg-buffer (note: group target such as sanity is not accepted inside testList)  So i guess there is somwehre some another protection.
Except that issue,  for which I do not have cure, few questions

external tests do not run with podman-docker docekr wrapper. The traces are quite cryptic, is this already tracked?

Is there generic/general opinion on moving to root-less container engine (thus podman)?

on grinder jobs, the external tests run as root? I had not found a trace of change of user in logs, so am wondering

local root-less run proiperly failed for me

is there any way how to copy any testsuite results from container to host?
the tap file is correctly on host, but the suite itself is generating jtrfiles and jtr.xml which I would llike to be able to archive on demand if there occure issues.

@sophia-guo  maybe you can provide feedback please?

@judovana You should run a spell and grammar checker over the comments

PRs to add new tests or features should have an issue that they relate to, as that is what we typically do at the project to socialize new features.
I have created this issue, where it would say what the new tests do, why they should be added into a certain level, etc (noting we have the habit of adding new tests into the dev level to monitor how they run before 'graduating' tests into other levels).

https://ci.adoptium.net/view/Test_grinder/job/Grinder/9354 to fix the TARGET which needs to match the name in the playlist.xml file (not the name of the directory)
Also will want to address the criteria/questions listed in #5195 ahead of bringing in new tests.  We will add this to the contributing new tests documentation going forward, so future contributors have awareness.

@karianna  thanx alot for eyball! All should be done as you requested. Need to try that maven in grinder now.
@smlambert  Thanx! I will fix grinder job, and will answer  the issue you created.
Can you please answer the remaining questions?

external tests do not run with podman-docker docekr wrapper. The traces are quite cryptic, is this already tracked?
    Is there generic/general opinion on moving to root-less container engine (thus podman)?

In meantime I had found that no, and created https://github.com/adoptium/aqa-tests/issues/5196 hth

on grinder jobs, the external tests run as root? I had not found a trace of change of user in logs, so am wondering

please?

    local root-less run properly failed for me
is there any way how to copy any testsuite results from container to host?

big please.

the tap file is correctly on host, but the suite itself is generating jtrfiles and jtr.xml which I would like to be able to archive on demand if there occurs issues.

https://ci.adoptium.net/view/Test_grinder/job/Grinder/9354 to fix the TARGET which needs to match the name in the playlist.xml file (not the name of the directory)

https://ci.adoptium.net/view/Test_grinder/job/Grinder/9360/

Also will want to address the criteria/questions listed in #5195 ahead of bringing in new tests. We will add this to the contributing new tests documentation going forward, so future contributors have awareness.

On it. TYVM!

https://ci.adoptium.net/view/Test_grinder/job/Grinder/9363/

https://ci.adoptium.net/view/Test_grinder/job/Grinder/9363/

ok, so maven version is mandatory. The run now correctly passed.  I'm not sure why... I left the target and bulild-list as in original one.. Well Maybe not... Probably harsh morning. Glad it is green.

on grinder jobs, the external tests run as root? I had not found a trace of change of user in logs

External tests are running inside container as root, which can be updated to create and use unprivileged user if root acess is not required by external tests.

Before we go too far with this PR, I think it would be good to think about these jtreg tests as possible ones to add into the openjdk group, given the intent was to eventually upstream them to that project (based on answers in https://github.com/adoptium/aqa-tests/issues/5195).  I do not see a need to run them as part of the external group, they could go into dev.openjdk

is there any way how to copy any testsuite results from container to host?

To make testsuite results available it have to be copy to specific directory. In test.sh you can copy the testresult to /testResults , update test.properties with test_results="testResults" and update command in playlist.xml specify --reportsrc .  Similar to openliberty-mp-tck

I agree with Shelley.  dev.openjdk might be a better category to go based on https://github.com/adoptium/aqa-tests/issues/5195#issuecomment-2036381675

is there any way how to copy any testsuite results from container to host?

To make testsuite results available it have to be copied to specific directory. In test.sh you can copy the test result to /testResults , update test.properties with test_results="testResults" and update command in playlist.xml specify --reportsrc . Similar to openliberty-mp-tck
This way all *.xml files are visible to junit plugin. Also check both ARCHIVE_TEST_RESULTS and KEEP_REPORTDIR will keep the results even when the tests pass.

Thanx a lot!
as test_results="testResults" is property, can it have any value, or is it jsut testResults waht is allowed?  Also, what is it relative to?

Before we go too far with this PR, I think it would be good to think about these jtreg tests as possible ones to add into the openjdk group, given the intent was to eventually upstream them to that project (based on answers in #5195). I do not see a need to run them as part of the external group, they could go into dev.openjdk

Cool! Thanx!
I willexperiment a bit  with test_results="testResults" then close this one and do a new into dev.openjdk


Editor for the Nintendont app

Embed a settings editor for the Nintendont app.
Check the possibility of using the Nicoe software (Nintendont Configuration Editor) available at: https://github.com/libertyernie/Nicoe

It is not necessary at the moment. Should be released in some future version (v3.0 ???) ... probably as plugin.


don't require double quotes around numbers in unit testing yml

Is this a new bug in dbt-snowflake?

[X] I believe this is a new bug in dbt-snowflake
[X] I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior
This unit test results in a SQL compilation error:
unit_tests:
  - name: test_valid_email_address # this is the unique name of the test
    description: my favorite unit test
    model: dim_wizards # name of the model I'm unit testing
    given: # the mock data for your inputs
      - input: ref('stg_wizards')
        rows:
          - {WIZARD_ID: 1, EMAIL<EMAIL_ADDRESS>    EMAIL_TOP_LEVEL_DOMAIN: example.com}
          - {WIZARD_ID: 2, EMAIL<EMAIL_ADDRESS>    EMAIL_TOP_LEVEL_DOMAIN: unknown.com}
          - {WIZARD_ID: 3, EMAIL: badgmail.com,         EMAIL_TOP_LEVEL_DOMAIN: gmail.com}
          - {WIZARD_ID: 4, EMAIL: missingdot@gmailcom,  EMAIL_TOP_LEVEL_DOMAIN: gmail.com}
      - input: ref('top_level_email_domains')
        rows:
          - {TLD: example.com}
          - {TLD: gmail.com}
      - input: ref('stg_worlds')
        rows: []
    expect: # the expected output given the inputs above
      rows:
        - {WIZARD_ID: 1, IS_VALID_EMAIL_ADDRESS: true}
        - {WIZARD_ID: 2, IS_VALID_EMAIL_ADDRESS: false}
        - {WIZARD_ID: 3, IS_VALID_EMAIL_ADDRESS: false}
        - {WIZARD_ID: 4, IS_VALID_EMAIL_ADDRESS: false}

22:48:20 Using snowflake connection "unit_test.coalesce_ci_demo_2023.dim_wizards.test_valid_email_address"
22:48:20 On unit_test.coalesce_ci_demo_2023.dim_wizards.test_valid_email_address: create or replace temporary table DEVELOPMENT.dbt_ggoheen.test_valid_email_address__dbt_tmp
         as
        (select * from (
        with  __dbt__cte__stg_wizards as (

-- Fixture for stg_wizards
select
    try_cast(1 as NUMBER)
 AS WIZARD_ID, try_cast(null as VARCHAR) AS WIZARD_NAME,
<EMAIL_ADDRESS>as VARCHAR)
 AS EMAIL,
    try_cast('example.com' as VARCHAR)
 AS EMAIL_TOP_LEVEL_DOMAIN, try_cast(null as VARCHAR) AS PHONE_NUMBER, try_cast(null as NUMBER) AS WORLD_ID
union all
select
    try_cast(2 as NUMBER)
 AS WIZARD_ID, try_cast(null as VARCHAR) AS WIZARD_NAME,
<EMAIL_ADDRESS>as VARCHAR)
 AS EMAIL,
    try_cast('unknown.com' as VARCHAR)
 AS EMAIL_TOP_LEVEL_DOMAIN, try_cast(null as VARCHAR) AS PHONE_NUMBER, try_cast(null as NUMBER) AS WORLD_ID
union all
select
    try_cast(3 as NUMBER)
 AS WIZARD_ID, try_cast(null as VARCHAR) AS WIZARD_NAME,
    try_cast('badgmail.com' as VARCHAR)
 AS EMAIL,
    try_cast('gmail.com' as VARCHAR)
 AS EMAIL_TOP_LEVEL_DOMAIN, try_cast(null as VARCHAR) AS PHONE_NUMBER, try_cast(null as NUMBER) AS WORLD_ID
union all
select
    try_cast(4 as NUMBER)
 AS WIZARD_ID, try_cast(null as VARCHAR) AS WIZARD_NAME,
    try_cast('missingdot@gmailcom' as VARCHAR)
 AS EMAIL,
    try_cast('gmail.com' as VARCHAR)
 AS EMAIL_TOP_LEVEL_DOMAIN, try_cast(null as VARCHAR) AS PHONE_NUMBER, try_cast(null as NUMBER) AS WORLD_ID
),  __dbt__cte__stg_worlds as (

-- Fixture for stg_worlds
select try_cast(null as NUMBER) AS WORLD_ID, try_cast(null as VARCHAR) AS WORLD_NAME
    limit 0
),  __dbt__cte__top_level_email_domains as (

-- Fixture for top_level_email_domains
select
    try_cast('example.com' as VARCHAR)
 AS TLD
union all
select
    try_cast('gmail.com' as VARCHAR)
 AS TLD
), wizards as (

    select * from __dbt__cte__stg_wizards

),

worlds as (

    select * from __dbt__cte__stg_worlds

),

accepted_email_domains as (

    select * from __dbt__cte__top_level_email_domains

),

check_valid_emails as (

    select
        wizards.wizard_id,
        wizards.wizard_name,
        wizards.email,
        wizards.phone_number,
        wizards.world_id,

		coalesce (regexp_like(
            wizards.email, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$'
        )
        = true
        and accepted_email_domains.tld is not null,
        false) as is_valid_email_address

    from wizards
    left join accepted_email_domains
        on wizards.email_top_level_domain = lower(accepted_email_domains.tld)

)

select
    check_valid_emails.wizard_id,
    check_valid_emails.wizard_name,
    check_valid_emails.email,
    check_valid_emails.is_valid_email_address,
    check_valid_emails.phone_number,
    worlds.world_name
from check_valid_emails
left join worlds
    on check_valid_emails.world_id = worlds.world_id
    ) as __dbt_sbq
    where false
    limit 0

        );
22:48:20 Snowflake adapter: Snowflake query id: 01b1efd8-0804-0b33-000d-37832a1438f6
22:48:20 Snowflake adapter: Snowflake error: 001065 (22023): SQL compilation error:
Function TRY_CAST cannot be used with arguments of types NUMBER(1,0) and NUMBER(38,0)
22:48:20 Timing info for unit_test.coalesce_ci_demo_2023.dim_wizards.test_valid_email_address (execute): 22:48:19.451516 => 22:48:20.639856
22:48:20 On unit_test.coalesce_ci_demo_2023.dim_wizards.test_valid_email_address: Close
22:48:20 Runtime Error in unit_test test_valid_email_address (models/marts/unit_tests.yml)
  During unit test execution of dim_wizards::test_valid_email_address, dbt could not build the 'actual' result for comparison against 'expected' given the unit test definition:
   Database Error
    001065 (22023): SQL compilation error:
    Function TRY_CAST cannot be used with arguments of types NUMBER(1,0) and NUMBER(38,0)
22:48:20 1 of 1 ERROR dim_wizards::test_valid_email_address ............................. [ERROR in 1.35s]
22:48:20 Finished running node unit_test.coalesce_ci_demo_2023.dim_wizards.test_valid_email_address

That's because this doesn’t work in snowflake: select try_cast(1 as NUMBER);
But this does: select try_cast('1' as NUMBER);
So does this, but gross: select try_cast(to_numeric(1) as NUMBER) as my_col;
If I update my unit test definition to wrap all of the numbers in double quotes, then this error goes away.
Expected Behavior
I should be able to have numbers in my unit test definition without wrapping them in quotes.
Environment
No response
Additional Context
No response

select try_cast(1 as NUMBER); works on BQ and postgres

@MichelleArk was this fixed as part of your adapter work?

This change was pulled into https://github.com/dbt-labs/dbt-snowflake/pull/896 here.


DEMO MODE: Add a mode that only shows commit message inside the commit node

Sometimes I create repositories simply for educational purposes. I'd love to use SeeGit to create diagrams such as the one here that I created for a blog post.

So this could be a simple checkbox such that when clicked, the commit box only shows the commit message. Thus I could create commits with simple messages like "A", "B", "C" and get something that looks pretty close to the diagram.

Hello, is anybody working on this?

@aabuderi nope.


Ikea bulbs

I have several Ikea lightbulbs, about 1month ago it stopped working so i can´t see the power of them.
i have deleted them in the integrations and restarted Home Assistant several times, but it is not working.
Home Assistant and Powercalc is updated to the latest version.
I have activated debug logging and here is what it says:
"2022-11-26 22:33:34.623 DEBUG (MainThread) [custom_components.powercalc.power_profile.model_discovery] light.paere1_spisestue: Auto discovered model (manufacturer=IKEA of Sweden, model=TRADFRI LED bulb E27 1000 lumen, dimmable, opal white (LED1623G12))
2022-11-26 22:33:34.624 DEBUG (MainThread) [custom_components.powercalc] light.paere1_spisestue: Already setup with discovery, skipping new discovery"
But i have deleted it in the integrations and in the developer statistics page of Home Assistant
Where can i delete it so it will be autodiscovered again?
I have several virtual sensors and they work fine.
I use Zigbe2mqtt if that is important.

Strange. Than it must be still in the config entries (these are all the items in the integration tab from powercalc), because that is what powercalc checks.
Could you check config/.storage/core.config_entries file, and search for light.paere1_spisestue there?

Hello
No, light.paere1_spisestue is not in the config/.storage/core.config_entries ?

Hmm, but spelled like this is in the file: light.pære1_spisestue  ?

I did have a look in the code, and I am not checking by entity_id but by unique_id.
When a config entry with same unique_id already exists in the config entries it will not be discovered.
So light.pære1_spisestue would definitely be the one. This one must also be visible in the GUI listing:

In the GUI i have deleted it yesterday, i have just checked and it is gone.
I have removed the light.pære1_spisestue from the file: config/.storage/core.config_entries
and now it shows up as discovered :)

I'm not sure if it's the same issue, but Ikea LED bulbs also stopped working. Not sure when
They are correctly detected. I removed one in the GUI, rebooted HA, and it is detected again by powercalc
It is present in the config/.storage/core.config_entries
      {
        "entry_id": "814bdbfff11a938b9f5e5ae05a297244",
        "version": 1,
        "domain": "powercalc",
        "title": "Ampoule Ext. Porte Salon",
        "data": {
          "unique_id": "0x84ba20fffe55264c_light_zigbee2mqtt",
          "name": "Ampoule Ext. Porte Salon",
          "entity_id": "light.ampoule_ext_porte_salon",
          "manufacturer": "ikea",
          "model": "LED2003G10",
          "sensor_type": "virtual_power"
        },

Yet, it reports no power change whether I turn the light bulb on or off. Always at 0,17W
I also have Philips Hue bulbs, and powercalc reports power changes when I turn them on or off.
I also have a E14 Ikea bulb (TRADFRI LED bulb E12/E14 450/470 lumen, wireless dimmable white spectrum/chandelier opal white (LED1949C5)), and for this one, Powercalc also reports power changes
So it might be limited to Ikea E27 bulbs? If I can include more info somewhere, let me know

@HermesHonshappo, your entity id light.ampoule_ext_porte_salon is the correct one?
When it is you should check the logs for errors. When no errors appear you can enable debug logging and you should at least see new debug logs appear when you toggle the light on or off.

@HermesHonshappo, your entity id light.ampoule_ext_porte_salon is the correct one? When it is you should check the logs for errors. When no errors appear you can enable debug logging and you should at least see new debug logs appear when you toggle the light on or off.
Yes, the entity is the correct one, since I use it for automations, dashboard, etc.
Is there a syntax I could add to configuration.yaml to turn on debug logging only for powercalc?
Here's the relevant sections from my config file so far:

# 2022-05-17 - ERA - Try to send logs to disk
#
logger:
  default: error
  logs:
    db21ed7f_enedisgateway2mqtt: notset
    enedisgateway2mqtt: notset
system_log:
  max_entries: 500
#
# 2022-10-07 - ERA - Powercalc
#
powercalc:

It's in the final section of the readme.

Here's what I find in the logs
2022-12-01 17:33:58.656 DEBUG (MainThread) [custom_components.powercalc.strategy.lut] light.lumiere_bureau_eric: Looking up power usage for bri:229 mired:370
2022-12-01 17:33:58.658 DEBUG (MainThread) [custom_components.powercalc.strategy.lut] light.lumiere_bureau_eric: Calculated power:6.3840000000000003410605131648480892181396484375
2022-12-01 17:33:58.658 DEBUG (MainThread) [custom_components.powercalc.sensors.power] light.lumiere_bureau_eric: State changed to "on". Power:6.38
2022-12-01 17:34:06.648 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/powercalc/sensors/power.py", line 341, in appliance_state_listener
await self._update_power_sensor(self._source_entity.entity_id, new_state)
File "/config/custom_components/powercalc/sensors/power.py", line 417, in _update_power_sensor
self._power = await self.calculate_power(state)
File "/config/custom_components/powercalc/sensors/power.py", line 467, in calculate_power
power = await self._power_calculator.calculate(entity_state)
File "/config/custom_components/powercalc/strategy/lut.py", line 144, in calculate
light_setting.color_temp = attrs[ATTR_COLOR_TEMP]
KeyError: 'color_temp'
2022-12-01 17:34:13.104 DEBUG (MainThread) [custom_components.powercalc.sensors.power] light.ampoule_ext_porte_salon: State changed to "off". Power:0.17
2022-12-01 17:35:18.119 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/powercalc/sensors/power.py", line 341, in appliance_state_listener
await self._update_power_sensor(self._source_entity.entity_id, new_state)
File "/config/custom_components/powercalc/sensors/power.py", line 417, in _update_power_sensor
self._power = await self.calculate_power(state)
File "/config/custom_components/powercalc/sensors/power.py", line 467, in calculate_power
power = await self._power_calculator.calculate(entity_state)
File "/config/custom_components/powercalc/strategy/lut.py", line 144, in calculate
light_setting.color_temp = attrs[ATTR_COLOR_TEMP]
KeyError: 'color_temp'

I remember there was an update to Zigbee2MQTT a few weeks ago to have the color temp config switched to Kelvin values. Could it be linked, since I notice in the logs that it mentions color temp?

I don't use Z2M myself so I don't know.
But when the color_mode is color_temp in HA than there MUST also be an attribute color_temp having the color temp value in either mireds (or new kelvin). Otherwise powercalc fails to calculate because it needs this information to lookup the power value by the selected color temp. I can handle this error cleaner, but this should never happen in the first place.
HA also uses this information to display the correct selected color temperature in the GUI.


Switch the license to CC0

The current license of the project is "do what you want to". While we really get the message, unfortunately, it means little from the legal point of view. I suggest to switch to https://creativecommons.org/share-your-work/public-domain/cc0/ It is still "do what you want to" but the lawyers get the message too.

I'd like that as well. +1

It's just a list, what legal problems are you running into? 😆

@eXpl0it3r since the current license is legally equivalent to proprietary, one of the authors can demand the removal of all his contributions. If his claim is not fulfilled, it is possible to complain to GitHub hq for copyright infringement and eventually delete the project completely. And yep, it happened before.

First of all I'd argue that a link and a very short description can really be declared as "work" as such copyright on it is probably not holding, then again IANAL.
Second, what's the problem if someone wants their commits removed? Just comply and then submit the links yourself. Nobody holds copyrights on links.
And for the completeness sake, I think it's important to note, that CC0 and things like Unlicense only work, because they explicitly remove the copyright from the work. Generally what you actually need to "protect" against copyright claims is something called a Copyright Assignment Policy or similar.
At the end of the day, whether it's one or the other has zero impact. But I guess we both don't have anything better to do right now. 🤔 😄

You are talking about Contributor License Agreement. Sure, in some countries it is required, and in some countries an implicit agreement holds and all contributions are licensed under the current license automatically. This is my knowledge from the Linux Foundation guys, and they advised (unofficially of course) to not even try to play this game :)

Can we actually try this before I add CC0?
Add a link from one of the open issues with 'help-wanted' label and I'll merge it. Then ask me to remove your "work" and I'll refuse. Let's see what happens when you complain to GitHub.


refactor!: refactor drag and drop events

ref: tauri-apps/tauri#8156

cc @wusyong @pewsheen can any of you test this on macOS using the simple.rs example? the expected results should be:
DragEnter: <position> <paths>
DragOver: <position>
... multiple DragOver events
DragOver: <position>
DragLeave or DragDrop: <position> <paths>

It looks good on macOS


Changes for 1.0.2 release.

Just administrative changes for a new release.
ping @somexpert

:thumbsup:


ArrayHelper::getValue

Hi there! I wanted to propose, as an alternative, to make the third parameter (default) of this function a callback. This would be useful if the default value is necessary, for example, to be obtained from the database or in some other difficult way. I do not suggest changing the API. I want the function to support this parameter with both value and callback. If a calback is transmitted, it will be called to get the value, otherwise it will be used as a value.

Closing since it's PHP 7.4 and https://github.com/yiisoft/arrays/issues/11#issuecomment-455559895 is good.


⚠ Bofrost.de has degraded performance

In b14367f, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 996 ms

Resolved: Bofrost.de performance has improved in b4ea828.


Create CI/CD Pipeline to ensure helpers are tested

Create a basic CI/CD pipeline to lint, unit test, and potentially deploy to PSGallery
Acceptance Criteria:

[ ] PR/CI Pipeline (Github Actions) to lint (and unit test if existing) open pull requests to the repository
[ ] CD Pipeline (Github Action) to deploy to PSGallery (stretch? separate out into different issue?)

May be a duplicate of #83 #85 and #84

Yup, makes sense. Just adding further comments/descriptions to Issues so that we can decide how to parent, mark as dup, and/ or break them down during tomorrow's sessions.


Add brew update -f option and improve help string format

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.
[ ] Have you successfully run brew style with your changes locally?
[ ] Have you successfully run brew tests with your changes locally?

This change adds brew update -f as an alias for brew update --force and improves the help string format to include both long and short options. This format improves readability by making the help output consistent with ruby-based commands that use OptionParser.
Also documents existing common options that weren't listed in the brew update help string but should have been (--verbose, --debug, and --help).
I did not document the options --preinstall and --simulate-from-current-branch because they seem internal or developer-use only and I'm honestly not sure how to describe them.

@mtmiller Any news here? Thanks!

Apologies for the delay, getting back to this now!

I see there's a merge conflict now, I'm happy to rebase and rewrite these commits to make this read better anyway, just let me know.

I see there's a merge conflict now, I'm happy to rebase and rewrite these commits to make this read better anyway, just let me know.

@mtmiller Yep, rebase would be great and code's looking good enough I'm happy to merge when this is ✅.

@MikeMcQuaid This should be good now, thanks for all your patience and feedback.

Great work here @mtmiller! Thanks again for your contribution!


Tutorial Page ai-core-and-LP-provisioning-GA.md Issue. PROD

Tutorial issue found: https://github.com/sap-tutorials/Tutorials/blob/master/tutorials/ai-core-and-LP-provisioning-GA/ai-core-and-LP-provisioning-GA.md contains invalid tags. Even though your tutorial was created, the invalid tags listed below were disregarded. Please double-check the following tags:

topic>provisioning

Affected server: PROD

@helenaaaaaaaaaa please update/remove the faulty tag.
@jmmargo Although it is stated otherwise above, the tutorial was not created. It is not visible in Tutorial Navigator.

Thankyou both,
I have updated the tag.
Would it be possible for the new tutorial to be added to the group Create Your First Machine Learning Project using SAP AI Core | Tutorials for SAP Developershttps://developers.sap.com/group.ai-core-get-started-basics.html?
It should now be the first tutorial in this group.
H

From: Michael Czadankiewicz @.>
Sent: Tuesday, November 15, 2022 8:15 AM
To: sap-tutorials/Tutorials @.>
Cc: Vernon, Helen (external - Project) @.>; Mention @.>
Subject: Re: [sap-tutorials/Tutorials] Tutorial Page ai-core-and-LP-provisioning-GA.md Issue. PROD (Issue #20419)
@helenaaaaaaaaaahttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fhelenaaaaaaaaaa&data=05|01|helen.vernon%40sap.com|1f674d71b48443be890208dac6d926e7|42f7676cf455423c82f6dc2d99791af7|0|0|638040933213074658|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=0a8tdE8A%2BXoQi8n3WKfDXO7v85DzQibYMKWya1ASbjU%3D&reserved=0 please update/remove the faulty tag.
@jmmargohttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjmmargo&data=05|01|helen.vernon%40sap.com|1f674d71b48443be890208dac6d926e7|42f7676cf455423c82f6dc2d99791af7|0|0|638040933213074658|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=FiaNQW7NgVmYoh6B%2BGvMkGM3OiHShbzQyoWyE0Fvxbs%3D&reserved=0 Although it is stated otherwise above, the tutorial was not created. It is not visible in Tutorial Navigator.
—
Reply to this email directly, view it on GitHubhttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fsap-tutorials%2FTutorials%2Fissues%2F20419%23issuecomment-1314874912&data=05|01|helen.vernon%40sap.com|1f674d71b48443be890208dac6d926e7|42f7676cf455423c82f6dc2d99791af7|0|0|638040933213074658|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=hkf679nU%2BeOgyAurCK31e7TxgrAg4KfmLW0yUP%2Bkbx0%3D&reserved=0, or unsubscribehttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAXSQYTZUWMYSH2JKKRCQNPLWIM2ALANCNFSM6AAAAAAR75DB6I&data=05|01|helen.vernon%40sap.com|1f674d71b48443be890208dac6d926e7|42f7676cf455423c82f6dc2d99791af7|0|0|638040933213074658|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=B%2FoNvPMn93Q0ZbgpQlRgvN%2BUuvy6K4cto%2BEewCQimBI%3D&reserved=0.
You are receiving this because you were mentioned.Message ID: @.***>

@helenaaaaaaaaaa I have sent you an email.
There is also another issue with this tutorial, which was just reported. File names must not have upper case letters. Please change them to lower case.

Tutorial has been added to the group and the group has been republished.


SDK module versioning

So we're getting to a point where I think it becomes important to decide what we are going to do about SDK versioning. Right now we just follow the Ceylon distribution versioning, but we're already running into situations where this is not such a good idea. See for example this discussion on the mailing list: https://groups.google.com/d/msg/ceylon-dev/dYOr7Y0wu9M/6a_Sjg-FCAAJ
The big advantage of the current system is that it's easy, it's easy to maintain and it's easy to use.
The big disadvantage is that the version number progression in no way relates to the progression of the separate modules (in fact there might be no progress at all).
We need to come up with some ideas and decide what to do.

On the mailing list @jvasileff said:

In theory I really like the idea of sdk module versions being fully independent, but in practice this will make it much more difficult to add or upgrade dependencies. This can already be time consuming since versions must be listed in each module.ceylon, and would be much more so without being able to search&replace, and if you have to use Herd to determine the correct version for each dependency. Autocomplete in the IDE helps in some cases, but is not a general solution.

True, but isn't that true for very other module out there that is not part of the SDK?
And to me it might make things easier but it doesn't make it right
What do you want to do? Really call this completely rewritten module ceylon.html/1.2.3? Or worse, if you don't want to wait for Ceylon 1.2.3 you'll need to call it <IP_ADDRESS> !
Or we put the version number in the name: ceylon.html5/1.2.2 ... ok, that's weird. So how is a user going to decide now? Should they use ceylon.html or ceylon.html5? Make ceylon.html deprecated? So what happens with the next rewrite ceylon.html6?
It also means that the number gives no indication whatsoever to it's "maturity", everything is just 1.2.2, even when some modules have seen an enormous amount of work while others haven't been updated since the day they were added. It's paints a completely incorrect picture.
I say we bite the bullet, allow SDK modules to have individual versions and have the them evolve on their own.

The other end of the spectrum: every module is released independently of each other, not simultaneously, and with independent version numbers. (In particular, we would stop releasing new versions of modules that had no changes whatsoever – unless we continue breaking binary compatibility regularly.) “The Ceylon SDK” would then mean little more than a collection of modules that share a repository, the ceylon. prefix (though not exclusively – see formatter, AST, converter, Casey’s parser, …), and “sponsoring” (ditto – formatter and converter ship with the IDE).
Big disadvantage: it’s no longer obvious what the most recent version of any given SDK module is. But with some tooling (IDE, Herd, ceylon-sdk README) I think this should be fine.

Btw, input needed from all involved: @gavinking @FroMage @tombentley @chochos @davidfestal @thradec etc

why not simply a fourth number? ceylon.collection/<IP_ADDRESS>, then <IP_ADDRESS>, <IP_ADDRESS>, etc. All those versions belong with Ceylon 1.2.1. We reset them with each Ceylon release: <IP_ADDRESS> but then any module can have a new release after that, <IP_ADDRESS>, <IP_ADDRESS>, etc.

As a user of frameworks/libs my opinion is that its more natural to expect a 2.0.0 version because its the most common case for libraries upgrades. I dont care about the compiler version that was used, really, I am from java world and since version 1.5 i dont care about that.. Will be a big surprise if I have to look for libraries and worry about that.. i know that some times is necessary to break binary compatibility, but its not the common case... so, i dont believe we should make those patterns based on compiler versions.. this way we are saying that break compatibility IS the common case and everyone should worry about that.

why not simply a fourth number?

Because for a user the difference between a <IP_ADDRESS> and a <IP_ADDRESS> is normally completely unimportant, a super minor relase, probably some uninteresting typo in an error message or something. Not a complete f-ing rewrite where you have to port your application to an entirely new API !
Like I said, it gives users a completely wrong idea about what versions mean. Modules that never change forcibly get new versions all the time. And modules that get completely rewritten have the same version as all the others, in no way showing all the progress that has been made on them.

Agree with @quintesse , +1

May I add a couple words?
Some tool which checks compatibility and suggests the best suit versions may be usefull.
For example, in your project you use compiler 1.2.1 and ceylon.collection module, the tool looks all available versions and suggests the latest one which compatible with 1.2.1 compiler. Lets it is ceylon.collection 1.2.3. But you use, say, ceylon.json which is only 1.2.2 compatible with 1.2.1 compiler and is not compatible with ceylon.collection 1.2.3, so the tool must sugget ceylon.collection 1.2.2. Sorry for messy.
I think with such tool it is doesn't matter exact module versionning system and it must be easy to upgrade to new modules / compiler versions.

I personally think completely independent version numbers would be hell. I prefer the scheme proposed by @chochos which is essentially what we've been doing until now.
If necessary, we could have a two-part version number of form <platform-version>-module-version, for example, 1.2.1-2.1.

If necessary, we could have a two-part version number of form -module-version, for example, 1.2.1-2.1.

What advantage would that have and how would it be less of a "hell"?
And you didn't address anything I mentioned, for example about our versions not being related to actual code change. SDK version numbers would basically have no meaning at all. People could upgrade to what they think is just a minor update only to find out that nothing compiles anymore.

Like I said, it gives users a completely wrong idea about what versions mean.

Well, what do versions mean? I know we kinda want more more "minor changes" to correlate to increments of more minor parts of a dotted decimal version number, but at what point does a minor change necessitate incrementing a more major part of a version number. It's all very wishy washy. And in the absence of tooling to support whatever rules you propose it's not going to work anyway because people make dumb mistakes. So you can never infer from comparing two version numbers how the changes will impact you. That's what release notes are for.
So sure, it would be surprising that ceylon.html/1.2.2 is not source compatible to 1.2.1, but so long as I can use ceylon.html/1.2.1 with ceylon.collection/1.2.2 and upgrade my dependency on ceylon.html in my own good time, I don't think it's a big deal.

I don't think it's a big deal.

Ok, I'm not going to discuss this any further. We'll just go with <IP_ADDRESS> then. But I'm sure people are going to take us to task over this at some point. I think it's a big mistake.

If necessary, we could have a two-part version number of form -module-version, for example, 1.2.1-2.1.

Wasn't that sort of thing a problem for OSGi?

yes, exactly, it's incompatible with the OSGI support :
https://github.com/ceylon/ceylon/issues/6006
2016-03-02 13:28 GMT+01:00 Tom Bentley<EMAIL_ADDRESS>
If necessary, we could have a two-part version number of form
-module-version, for example, 1.2.1-2.1.
Wasn't that sort of thing a problem for OSGi?
—
Reply to this email directly or view it on GitHub
https://github.com/ceylon/ceylon-sdk/issues/520#issuecomment-191220896.

Well, what do versions mean? […] It's all very wishy washy. […] So you can never infer from comparing two version numbers how the changes will impact you.

@tombentley perhaps I’m missing something, but aren’t you essentially asking for SemVer?

What advantage would that have and how would it be less of a "hell"?

Well the point is that it should at least partially satisfy folks who are attached to this "semantic versioning" stuff. As you guys know, I'm not, and I think "semantic versioning" is mainly an emotional security blanket. OTOH, it's clear that we have two notions of "what version of the SDK module do I have here":

what version of the "platform" is it for (i.e. what other platform module versions is it compatible with)?
what is it's own API version?

And those two numbers just aren't going to align going forward. We already have modules which are basically in maintenance mode, along with others whose APIs change quite often.
So, if the version number is supposed to be at all meaningful (semantic), then there just has to be two of them.

yes, exactly, it's incompatible with the OSGI support :

That's rubbish. The OSGi module descriptor transpiler can easily chop off one of the versions.

@tombentley perhaps I’m missing something, but aren’t you essentially asking for SemVer?

SemVer is a cargo cult. It solves no interesting issues in software engineering.

Not really @lucaswerkmeister. I'm saying that while that seems attractive I'm not sure it really works very well in practice because it can be hard for people to reason correctly about what is a compatible change etc. Is that source or binary compatibility, for example? If it's BC then how doe that work in a language with multiple backends with their own evolving BC provisions? Is it's source compatibility then is something as "trivial" at adding/removing an annotation compatible? I guess it depends on the annotation. Presumably changing doc is OK?
While it's a nice statement of what we might like to be true, SemVer doesn't really give us much help in making it true.

Note that my proposal assumes that the SDK release cycle remains coupled to the compiler release cycle. If that's not going to be the case in future, then the first version number isn't a ceylon version number, it's an SDK platform version number.
My proposal solves the following problems:

It indicates which version of the SDK platform a module is compatible with.
It indicates which versions of an individual module are "approximately" compatible in terms of external API. Where "approximately" means: have essentially the same API.
It allows new releases of a module in between releases of the SDK platform.

I don't see how one can satisfy those three requirements via any other versioning scheme.

The OSGi module descriptor transpiler can easily chop off one of the versions.
@gavinking : could you precise a bit what you mean here ? I don't see very well what you mean regarding the existing OSGI support implementation

@davidfestal currently, we generate a manifest that looks like this:
Manifest-Version: 1.0
Bundle-SymbolicName: interop
Export-Package: interop;version=1.0.0
Bundle-Version: 1.0.0.v20160302-1224
Require-Bundle: ceylon.language;bundle-version=1.2.2;visibility:=reexp
 ort,com.redhat.ceylon.dist;bundle-version=1.2.2;visibility:=reexport
Bundle-ManifestVersion: 2
Bundle-ActivationPolicy: lazy;exclude:="*"
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version>=1.7))
 "

We code which generates this manifest can easily strip of the bit of the version before the -, in both Bundle-Version and Require-Bundle.

The name of the .car is irrelevant, since for OSGi we have to rename it anyway.

Ah, OK, I see what you mean now. But do we still consider that the module version (without the platform version) is unique. That means the platform version in only informative. That there will only be one xxxx-2.1 version of a SDK module ?
Or would it become possible to have both 1.2.0-2.1 and 1.2.1-2.1 ? Such a case would lead to problems IMO.

do we still consider that the module version (without the platform version) is unique.

Yes.

That means the platform version in only informative.

Right.

Such a case would lead to problems IMO.

Sure, but I don't see how that could arise.
Alternatively, you could just replace the - with a ..

Alternatively, you could just replace the - with a ..

This would only make it more difficult to separate both parts.

@davidfestal I mean "you" as in your MANIFEST.MF generator.

well, not really I think, because OSGI versions are ordered (lexical order), and changing the platform version number would disturb the ordering of true SDK versions, which would lead to problems for automatic update and provisioning.

Hrm, in fact, one might argue that instead of 1.2.2-1.1, the version number should be of form 1.2-1.1.2.
That is, if we assume that we have BC between minor releases of the compiler/platform, then the .2 bit belongs to the build of the module, not to the build of the compiler/platform. Interesting.

because OSGI versions are ordered (lexical order), and changing the platform version number would disturb the ordering of true SDK versions

I know that. But assuming that module version to platform version is a many-to-one association, there's no problem, AFAICT.

ah, OK, that might work if a n+1 SDK version is always associated to a platform version that is greater or equal to the platform version of the n SDK version

I understand the reasons behind it, but as a user, I would be really
annoyed with versions composed from *5 *numbers.
2016-03-02 14:35 GMT+01:00 David Festal<EMAIL_ADDRESS>
ah, OK, that might work if a n+1 SDK version is always associated to a
platform version that is greater or equal to the platform version of the n
SDK version
—
Reply to this email directly or view it on GitHub
https://github.com/ceylon/ceylon-sdk/issues/520#issuecomment-191239856.

That's what I'm assuming. I'm assuming we're not backporting module API changes to previous revisions of the platform. Perhaps that's an invalid assumption, but it seems likely to me.

I understand the reasons behind it, but as a user, I would be really
annoyed with versions composed from *5 *numbers.

Autocompletion.

I understand the reasons behind it, but as a user, I would be really
annoyed with versions composed from *5 *numbers.
Autocompletion.

autocompletation doesn't help, when you have to figure out, why it stopped
working and have to track complex dependency graph with many nodes

I propose we copy the wildly successful version schemes for Android/Google (Guava), since they're so successful:

Only talk about SDK releases via code names such as candies (https://en.wikipedia.org/wiki/Android_version_history)
But actually also have a X.Y and X.Y.Z versions that corresponds to those release names if someone asks. Bump the minor revision "every so often" based on "because" (currently at 6.0.1)
Since that's not good enough to define an API version that's a single X number (currently at 23)
And because that's not quite confusing enough, also have some jars use the API version with minor specifiers (current 23.1.1)
Alternately, do like Guava and start with r0X then move on to X once X>=10 and fuck minor versions: http://mvnrepository.com/artifact/com.google.guava/guava

Joking aside, I think the bigger question is: do we want all modules in the SDK to have their own version, or increase separately. Considering that separate increment is only possible by groups, since bumping one version of a module requires bumping the version of all modules that import it too, transitively, due to a current compiler limitation that prevents the same module from being visible twice to the compiler with different versions.


Upgrade rubocop

Codecov Report

Merging #108 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #108      +/-   ##
==========================================
+ Coverage   99.44%   99.44%   +<.01%
==========================================
  Files          19       19
  Lines        1807     1809       +2
==========================================
+ Hits         1797     1799       +2
  Misses         10       10

Impacted Files
Coverage Δ

spec/google/gax/settings_spec.rb
100% <ø> (ø)
:arrow_up:

spec/google/gax/bundling_spec.rb
99.69% <100%> (ø)
:arrow_up:

spec/google/gax/operation_spec.rb
100% <100%> (ø)
:arrow_up:

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 7536fd7...2adfacb. Read the comment docs.


Recommendations for hardware size and shard count

Fixes #454

Included a commit which fixes #453 since this PR already added a sizing section.

This PR updates the FAQ entry about changing shard count. It essentially leaves the question unanswered and talks about good shard counts for new tables. I could also incorporate content from https://github.com/citusdata/citus_docs/pull/450 about citus.shard_count.

Do we modify this FAQ in any way?: https://docs.citusdata.com/en/v7.0/faq/faq.html#how-do-i-choose-the-shard-count-when-i-hash-partition-my-data? Maybe we add a brief blurb and point it to this new section?

Also, let's incorporate the change from #450 here, as it probably makes sense to give a more pointed answer there.

Addressed the comments so far, and awaiting feedback from @samay-sharma or @saicitus


Changed calculation of x position in grid view to avoid position jitter

I noticed some jitter when scaling items in grid layout. This is due to the x position being calculated accumulatively from the left edge of the view. I changed that to use the center of a column as the reference point for the x position.

Hi, thanks for your pull request! Sorry for missing this when it came through last week. :star2:
I'm not exactly sure what's up with the diff. Is there any way you could rebase this based on the current master?

Actually I found an issue with my original positioning code for the grid layout. It's actually incompatible with the even padding option. In my fork, I marked itemPaddingEnabled as deprecated and removed support for that. I think for this type of behavior a flow layout would be the better solution. I also fixed the calculation of adjacent cells to account for vertical spacing and I completely reimplemented multiple selection with an option to turn it off. The problem was that it was not working with shift and option keys and the use of arrow keys was inconsistent with system behavior. So, I don't know if you also want these changes or not. I think only merging the original commit is not good for the reason above.


Feature Request / Enhancement - Colorize Behavior with no results found

We're making awesome use of the Colorize functionality to show how many instances of our application are running ('Process count per process group' metric), however when no instances are running, we get a "No data" result and by extension, the colorization does not work.
Is it possible to add an additional behavior for when no results are returned? In my case I would like to see red here, however I can imagine other scenarios where no results are a good thing.

Yep that one makes sense. I've added this now. You can specify nan=orange and a CSS color. I've pushed the change to Github, so you can see it live by clicking the Gem icon and changing Library Location to Github. It'll be included in the next Chromestore version.

Big thank you! This is going to be a big quality of life bump for my L1 engineers.:D


Improvement to support multiple generics class parameters

VRaptor is not able to support multiple generics class parameters.
Currently VRaptor resolves all generics parameter as the first parameter in generic array.
This pull request makes VRaptor able to support multiple generics class parameters.

I didn't test yet, but your PR looks great @francofabio. I've added some comments

:shipit:

Sounds like good, but I want to do some tests in a large app I have before merge. May I?

sure, let us know how the tests went

ok! I'll release vr 4.2 RC3 tomorrow, without this PR for now :)

Works fine. I think this changes are ready to merge.

great! thank you again, @francofabio!

Ok! thanks.


Cleanup 7.1.0 changelog

Removing duplicate entries, separate new features as such, order by features>fixes>rest

I've merged and deleted the changelog branch @ronjouch


Fix dep info showing up with a build script

Cargo would erroneously bail out early and accidentally forget to emit a
dep info file if any dependency used a build script, so this fixes that!

r? @matklad
(rust_highfive has picked a reviewer for you, use r? to override)

cc @nirbheek

This is also small and relatively seriously enough that I think I'll backport this when landed

@matklad updated!

@bors r+
+1 to backporting this.
Did the original version manage to get through the tests? If so, we could add a test case here :)

:pushpin: Commit 9e4f4d1 has been approved by matklad

:hourglass: Testing commit 9e4f4d151a526d61741ed69fe5ef14715e7b9ab8 with merge a3ad53d249f733cd22e33c02ef9b18865156cdf4...

@matklad ah yeah I think this just never worked with build scripts (by accident!), but I updated a test in this PR which exercises this behavior

And what about the original version of this PR, where rerun-if-changed was ignored? Did it fail some tests?

Nah I don't think it matters where that code went, it just felt more future-proof to leave it on the outside. I don't think it needs to, for today, go on the outside for correctness.

@bors: retry

:hourglass: Testing commit 9e4f4d151a526d61741ed69fe5ef14715e7b9ab8 with merge de48f758505f229462d7a5f43865a6dc37c4bbab...

:sunny: Test successful - status-appveyor, status-travis
Approved by: matklad
Pushing de48f758505f229462d7a5f43865a6dc37c4bbab to master...


Aes cover

I added functional coverage to make sure we see both back 2 back transactions on the TL -UL if, which lead me to find that my back 2 back test no longer did back to back.
I updated the behavior which resulted in a few bugs that are now fixed.

@weicaiyang @rswarbrick I removed the coverpoint.
can you  guys approve if you don't have additional comments?


ENSCORESW-2827: minimal test on xref config validity

Requirements

Filling out the template is required. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion;
Review the contributing guidelines for this repository; remember in particular:

do not modify code without testing for regression
provide simple unit tests to test the changes
if you change the schema you must patch the test databases as well, see Updating the schema
the PR must not fail unit testing

Description
Using one or more sentences, describe in detail the proposed changes.
The xref_config.ini file is large and messy. Additionally, a small change in the configuration can have dire consequences on the results of the xref pipeline update.
This change aims to provide a basic test on the syntax of the configuration and that there is available configuration for any source mentioned.
Use case
Describe the problem. Please provide an example representing the motivation behind the need for having these changes in place.
If a source is removed but is referenced somewhere else in the configuration file, the generation of the metadata sql file is interrupted. This is not captured within the eHive pipeline but will cause downstream consequences, in particular missing data and species.
Benefits
If applicable, describe the advantages the changes will have.
Avoid breaking the xref pipeline for a misformatted configuration.
Possible Drawbacks
If applicable, describe any possible undesirable consequence of the changes.
Testing
Have you added/modified unit tests to test the changes?
This is a new test unit
If so, do the tests pass/fail?
The test passes
Have you run the entire test suite and no regression was detected?
Yes

Coverage increased (+0.02%) to 82.343% when pulling f50a8b8c54950b20f4b1354397179f7dc7ba3907 on feature/xref_test into 7b3a74cea257a5dafec63774098a8a067c0bf15c on master.


Update NGINX SKU to standard_Monthly

Use user-friendly SKU name "standard_Monthly"
instead of the alphanumeric suffixed SKU.
Internal ticket: https://github.com/nginxinc/nalb-shared/issues/1209

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

General Guidelines

[ ] Have you run azdev style <YOUR_EXT> locally? (pip install azdev required)
[ ] Have you run python scripts/ci/test_index.py -q locally? (pip install wheel==0.30.0 required)
[ ] My extension version conforms to the Extension version schema

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify src/index.json.

Thank you for your contribution! We will review the pull request and get back to you soon.

@jamesfan1 @AllyW

@microsoft-github-policy-service agree company="F5 Inc."


Mind Altar has rouge collision tile.

There is a collision tile where there shouldn't be one causing unnecessary walking.  "who crafts mind runes?" well i am for right now lol.
I assume this is where i report this too.

Yes, this is where you report issues like this. Looks like Jagex has actually mapped down an invisible wall there that is messing up my collision map. I might have to add an exception for that single tile.


Next app remounts on navigating between pages with serverSideTranslations to w/o it and vice versa

Bug Description
When we navigate between page with serverSideTranslations to page without serverSideTranslations or vice versa, whole next app remounts.
Occurs in next-i18next version
10.5.0
Steps to reproduce
https://github.com/vc-vishal/next-i18next-localization
Expected behaviour
If possible then app should not remount in this case.
OS

Browser: Crome Version 100.0.4896.60 (64-bit)

Additional context
In my app, I have to play music in 4-5 pages. But after language selection whole app remounts and music start from begin.
Please let me know if any mistake found in demo or in my understanding.

Can you debug why exactly that is occurring? It's most likely this ternary, right?
Can you put your music functionality in a HOC itself, that wraps appWithTranslation?

@isaachinman  hello
if we change language via next/router also cause remount. Is it intentional ?

@aNyMoRe0505 Yes, you can see the logic here.

@isaachinman If I put music functionality in HOC (i.e. MyApp) then also my problem will not solve.
The problem is language change remounts the whole app. That will restarts the music from begin. And my requirement is to continue play music between some pages.

Can you debug why exactly that is occurring? It's most likely this ternary, right?
Can you put your music functionality in a HOC itself, that wraps appWithTranslation?

@isaachinman If I put music functionality in HOC (i.e. MyApp) then also my problem will not solve.
The problem is language change remounts the whole app. That will restarts the music from begin. And my requirement is to continue play music between some pages.

@vc-vishal Yes, appWithTranslation remounts on language change. My suggestion for a HOC was to put it one level above appWithTranslation.

@isaachinman I got your point but I've already wrapped _app.js app component with appWithTranslation. I have not any levels above that.
If you have any solution regarding this then tell me.

@vc-vishal Yes, appWithTranslation remounts on language change. My suggestion for a HOC was to put it one level above appWithTranslation.

@isaachinman, why is this the case? I think in order to finally close this issue (I consider it a successor of #1075 and #1710), something about this should at least be added to README if there's really no way around this issue.
Issue summary and the current state
As a user, with the current state of documentation, I expect to be able to wrap the whole next.js app with appWithTranslation and be done with changes in _app.tsx, keeping all of the staying app's functionality while enjoying the benefits of the localization context. However, as we see, the app remounts on language change, losing its state (e.g. in context providers). Also, the solution is non-trivial.
Suggestions for improvement
If this is a feature:

README adjustments - mention this feature and add an example code snippet (e.g. as in my previous comment)
what about a new helper for this scenario? Currently, what I meant by the solution being "non-trivial", is the need for splitting the single App component definition, creating the App, TranslatedApp, and EnhancedApp components (using my naming above). Maybe we could export such TranslatedApp from the package? Potentially giving it an optional wrapper prop to take a HOC to wrap the <Component {...pageProps} /> JSX (I don't use this above, but I can imagine a use case where you have some top-level HOCs that depend on the localization context). Then again, the documentation would probably be enough.

If not really, I hope we can find another solution.
In any way, I'd like to understand more about this. Is there some technical issue why the app remount is the only way and there's no way to let React reconciliation know the components are still the same and shouldn't remount (losing state)?

By the way, I also created a reproducible example with a single page: https://github.com/rtrembecky/next-i18next-app-remount-repro
Here is a preview:
https://user-images.githubusercontent.com/6044119/166961043-f76a66e0-082e-4453-b041-397bd20942ab.mp4

@vc-vishal the suggested solution is this structure:
const App: FC<AppProps> = ({ Component, pageProps }) => <Component {...pageProps} />

// doesn't wrap whole app because it causes remounts on route change - probably a bug: https://github.com/isaachinman/next-i18next/issues/1075
const TranslatedApp = appWithTranslation(App)

const EnhancedApp: FC<AppProps> = (props) => {
  return (
    <MusicFunctionalityProvider>
      <TranslatedApp {...props} />
    </MusicFunctionalityProvider>
  )
}

export default EnhancedApp

it works in my app to avoid resetting the context in providers wrapping the app. if you can lift the state up to such MusicFunctionalityProvider, you won't lose it on locale change or navigation.

@rtrembecky  That worked for me. Thank you for your solution and demo. ❤

@rtrembecky  That worked for me. Thank you for your solution and demo. ❤

@vc-vishal You're welcome 🙂 I hope more people will find it helpful.

As per https://github.com/isaachinman/next-i18next/discussions/1796, it may be worthwhile for anyone interested in this issue to experiment with removing this line:
https://github.com/isaachinman/next-i18next/blob/33a184e609daabe6c15a0cfbc879120b3e44f0ee/src/appWithTranslation.tsx#L79
Historically it was needed to force rerenders on locale change, but it may no longer be necessary.


Ability to define if items are consumed when combined

In LZ, hairkeeper is consumed when combined with the poster. It's fine, but it should be definable if items are consumed when used on each other.
Should be defined in the interactions once #17 comes around, but could be implemented before that too.

Possible in #17 - just use inventory_remove if you like, and don't use if you don't.


Add support for iterables in Promise.all

@vkurchatkin thanks for this! One immediate comment, then I'll defer to @samwgoldman who built the original Promise.all/TupleMapT functionality for a deeper look. :)

@facebook-github-bot import

Thanks for importing.If you are an FB employee go to Phabricator to review internal test results.


Custom data

Adds custom data file by default
Closes https://github.com/zurb/foundation-emails/pull/493 as the documentation update isn't necessary if this is merged
develop was out of date with master so that is part of this as well. If that's not how this should be handled, let me know.

Thanks for the example

Thanks for the PR! There seems to be some extra files here. Can you rebase or branch of of develop to resubmit for merge?

@rafibomb is that better?

I am doing exactly the same thing for my project and planning to make a pull request. But I just gave it up after seeing this.
Just one comment. I think adding .gitkeep file inside data folder is good enough. data.yml is not necessary because the data files should be created by developer.

I think it is good to have the documentation in the file as it is in the project and always available as a reference. The docs are always changing and not bound to specific releases or may be too new in some cases (think about maintaining an old panini / foundation-emails-template project in the future).

See https://github.com/zurb/foundation-emails/commit/fb3fbea46d0a47898df1cd18031a82293e59fff6


add placeids for indonesia cities and provinces

to get the placeids:
I copied the the Indonesia rows to a sheet
and then ran a plx query to get the place_ids for those keys
Issue #442

Wow this is great! Thanks @dhan16!


new update is breaking node_modules installation

Error

<EMAIL_ADDRESS>postinstall /codebuild/output/src114063831/src/github.com/totalcloud/webapp-engine/node_modules/mediaquery-text
patch-package

patch-package 6.2.0
Applying patches...
Error: Patch file found for package cssom which is not present at node_modules/cssom
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>postinstall: patch-package
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-10-10T05_54_09_800Z-debug.log
dependency tree
inline-css > extract-css > style-data > mediaquery-text
env
aws codebuild ubuntu bionic latest , node v10.16.3 (with npm 6.9.0)

We also have this problem with v10.16.3 (and later/earlier versions). Problem occurs on linux and windows systems.
This module is a nested dependency from modules we're using. Our workaround was to add the older version "mediaquery-text": "1.0.7", to package .json.
But this is only a bad workaround.

Same issue here
	[Step 2/8] Error message is logged
[10:56:27]	[npm install] npm ERR! errno 1
[10:56:27]	[npm install] npm ERR<EMAIL_ADDRESS>postinstall: `patch-package`
[10:56:27]	[npm install] npm ERR! Exit status 1
[10:56:27]	[npm install] npm ERR!
[10:56:27]	[npm install] npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script.
[10:56:27]	[npm install] npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
[10:56:27]	[npm install]
[10:56:27]	[npm install] npm ERR!


hide all clozes at first with multiple clozes?

Hi,
I have multiline content where there are multiple clozes hidden with **.
je mang**e**
tu mang**es**
il/elle mang**e**
nous mang**eons**
vous mang**ez**
ils/elles mang**ent**

But when first open cards, only the first cloze is hidden. Can I hide all clozes at first?

Hey @jesvtb, this is currently not supported. Adding to project backlog

First off, great plug-in, thank you! I take notes like the following screenshot and it would be great if the plug-in could ignore any additional bullet points and only show the single bullet with the clozes. Currently, it is showing all the bullet points at the same time.

Hi @jesvtb
So there would be a single card with all clozes hidden.

Can I hide all clozes at first?

Curious about the "at first?".
Do you mean that you want to see this "all clozes hidden" card:

followed by the existing functionality (multiple cards each with a single cloze hidden), or
instead of current functionality

Cheers
Ronny

I have a similar thing. I have some definition cards which work by including the keywords but clozing everything else

It would be nice if there was a way to mark that all of these are part of the same "group" of clozes


api: add 'file_id' into 'dumps()' method

Closes #68

Signed-off-by: Jan Okraska<EMAIL_ADDRESS>

Do you think we should add a link to the file itself by default too?
I always find myself either building the link on the interface or extending the dumps.
Don't have a string opinion about it though.

In Zenodo it doesn't seem like it's affecting us since we are using:
https://github.com/zenodo/zenodo/blob/c50af9c590135a14e6359630d42c37a507f970d6/zenodo/modules/deposit/api.py#L79
https://github.com/zenodo/zenodo/blob/c50af9c590135a14e6359630d42c37a507f970d6/zenodo/modules/records/api.py#L134
In which we are replacing the added key:
https://github.com/zenodo/zenodo/blob/c50af9c590135a14e6359630d42c37a507f970d6/zenodo/modules/records/api.py#L43
So when dumping a record or deposit the value should remain the same.

Do you think we should add a link to the file itself by default too?
I always find myself either building the link on the interface or extending the dumps.
Don't have a string opinion about it though.

I think it is a good idea, but I guess it should be added by the REST layer, not the api, no?

@Glignos @okraskaj
The issue is that it is also affecting Invenio-Deposit, it is a dependency of it.
https://github.com/inveniosoftware/invenio-deposit/blob/master/invenio_deposit/api.py#L280
In both Zenodo and CDS Videos we call super, so internally we need to ensure that nothing breaks in deposit.

https://github.com/zenodo/zenodo/blob/master/zenodo/modules/records/api.py#L48
https://github.com/CERNDocumentServer/cds-videos/blob/cdslabs/cds/modules/deposit/api.py#L262

In CDS Videos, we completely override everything:
https://github.com/CERNDocumentServer/cds-videos/blob/cdslabs/cds/modules/records/api.py#L122
I guess the safest thing is to test it on the instance, I will try to find some time tomorrow.

We have tested deposit/records-files in CDS Videos and everything works find.


Update version of Kubernetes Client

Fixes https://github.com/dotnet/tye/issues/351.
I verified locally that having two kubeconfig files listed in the environment variable does not throw and returns an expected result.

@mkArtakMSFT I think we need to regenerate third party notices as the latest kubeclient package took a dependency on another 3rd party package.

There's another workaround we can undo here as well. Look at all the places we create a Kubernetes client