Using another cloud service other than S3

Is there a way for us to use another cloud service (ie: Rackspace) other than Amazon S3?
Chad

cc @knewter

See #817


Updated tag

I'm closing as their are conflicts, the PR shows 11,800 files having changed, and I think the tag syntax for ABAP Environment is wrong.


Automatically find the path between tables

Split from #987
As user I expect that postgrest is able to infer the shortest path between two tables using foreign key relations via the catalogue. At this moment the user would need to mention the joins manually.
create table one(oneid text not null, primary key(oneid));
create table two(twoid text not null, primary key(twoid), oneid text references one(oneid));
create table three(threeid text not null, primary key(threeid), twoid text references two(twoid));
grant select, references on one to testuser;
grant select, references on two to testuser;
grant select, references on three to testuser;

curl -X GET "http://localhost/one?select=oneid,two(twoid)" -H "accept: application/json" ; echo
[]
curl -X GET "http://localhost:3000/two?select=twoid,one(oneid)" -H "accept: application/json" ; echo
[]
curl -X GET "http://localhost:3000/one?select=oneid,three(threeid)" -H "accept: application/json" ; echo
{"message":"Could not find foreign keys between these entities, No relation found between one and three"}

Currently it is required to explictly add:
http://localhost/one?select=oneid,two(twoid,three(threeid))

what it the usecase for this (specific example)?
provide also a sample output shape
can you write manually a query that returns this type of response?

@ruslantalpa would the following answer your question?
The use case would be to completely ignore the table schema. And trust that inference is enough to build the query.
SELECT
    tc.table_name, kcu.column_name,
    ccu.table_name AS foreign_table_name,
    ccu.column_name AS foreign_column_name
FROM
    information_schema.table_constraints AS tc
    JOIN information_schema.key_column_usage
        AS kcu ON tc.constraint_name = kcu.constraint_name
    JOIN information_schema.constraint_column_usage
        AS ccu ON ccu.constraint_name = tc.constraint_name
WHERE constraint_type = 'FOREIGN KEY';

      table_name       |        column_name         |  foreign_table_name   | foreign_column_name
-----------------------+----------------------------+-----------------------+---------------------
 two                   | oneid                      | one                   | oneid
 three                 | twoid                      | two                   | twoid

This creates the path:
two   -> oneid -> one
three -> twoid -> two

Inference will give:
one <- oneid <- two
two <- twoid <- three

Naively permutate over all results, but ignore same start and end points.
two   -> one one -> two (invalid)
three -> two two -> one
one   <- two two -> one (invalid)
one   <- two two <- three

In a more advanced example to infer relations using multiple tables resolving in the table above.
select * from one join two on (one.twoid = two.id) join three (three.twoid = two.id);

what it the usecase for this (specific example)?

i was asking for a specific example, not theoretical things like "ignore schema".
something like "i want to make a call, and get this data, in this shape because ... and i can not use the current interface because ..."
your reply is more in the sense "i don't like the current url format"
in a reasonably large schema (even from 10+) tables start being related in different ways and there are multiple paths between two poins so "shortest" path becomes very ambiguous and its a recipe for multiple bugs (you expect one path, and another one is used).
it's the same thing with using * in calls instead of listing all columns.

can you write manually a query that returns this type of response?

the query you provided is very far from the the types of queries postgrest generates although this is the last thing to discuss here, the more important question here is the usecase.

Let's go for real life examples then. Consider the schema below, which is basically NeTEx / Transmodel.
Given that I want to show all DestinationDisplays available for a single Line. PostgREST does not allow me to filter on embedded attributes. The query would become:
/line?publiccode=eq.1&select=route(id,servicejourneypattern(id,destinationdisplay(*)))

But ideally I would like to write:
/line?publiccode=eq.1&select=destinationdisplay(*)

Or even better:
/destinationdisplay?line.publiccode=eq.1

Similar for getting the route of a ServiceJourney.
/servicejourney?id=in.1&select=*,servicejourneypattern(id,route(id,pointonroute(order_,routepoint(*))))

Ideally I would like to write:
/servicejourney?id=in.1&select=*,routepoint(*))

create table DestinationDisplay (id text not null, primary key(id), Name text not null, ShortName text not null);

create table Line (id text not null, primary key(id), Name text, TransportMode text, PublicCode text, Monitored boolean, VetagLineNumber text, LinePlanningNumber text);

create table Route (id text not null, primary key (id), linerefid text, foreign key(linerefid) references Line(id));

create table RoutePoint (id text not null, primary key (id), x integer, y integer);

create table PointOnRoute (id text not null, order_ integer not null, primary key (id, order_), foreign key(id) references Route(id), routepointrefid text, foreign key (routepointrefid) references RoutePoint(id));

create table ServiceJourneyPattern (id text not null, primary key(id), Name text, RouteRefId text, foreign key (routerefid) references route(id), destinationdisplayrefid text, foreign key (destinationdisplayrefid) references DestinationDisplay (id));

create table ServiceJourney (id text not null, primary key(id), DepartureTime time not null, DepartureDayOffset integer, ServiceJourneyPatternRefId text not null, foreign key (ServiceJourneyPatternRefId) references ServiceJourneyPattern(id));

Thanks for providing schema details. I created the db locally and pointed postgrest at it. Confirmed your request /line?publiccode=eq.1&select=route(id,servicejourneypattern(id,destinationdisplay(*))) completes without an error, although it returned no results because I haven't loaded any data inside.
I must admit that inferring the foreign-key hops between distant tables seems like asking for trouble. What if you have more than one way to connect the tables, such as when there is a diamond where A refers to B and C, and both of those refer to D? I'm thinking that asking to embed D inside A might return different results depending on the route chosen.
Also the inference would make it harder to tell why urls break if the schema changes. If your url explicitly lists the path from one table to the other then severing a link should give a specific error message about what went wrong. Whereas with inference the error message would say only that no path was detected.

If you are interested I could obviously you with a PostgreSQL dump. If you would consider "asking-for-trouble" problematic because there might eventually exist a use-case that is ambiguous, then what about returning the result as a HTTP redirect as a form of "advanced query builder"?

You're saying if there were more than one route for the shortcut the server would return HTTP 300 Multiple Choices with perhaps multiple Location headers for the options?

Actually I didn't even know that was possible :) But my suggestion would be if you feed the system a query where a path does exist and it is unique it would do a HTTP 302 with the full query that would be required to get the result. If you say HTTP 300 might facilitate the ambiguous case, that might indeed be a very clear way to give the user an informed choice.

I think this HTTP interface we've discussed makes sense: a simple redirect when the path is unique, or a disambiguation when it isn't. Now the amount of work it might take in the code could be pretty substantial and possibly difficult to get right. I'm personally not keen to implement it myself, but would consider reviewing a PR if it looked like it didn't make the code way more complex.
At least as it stands you aren't prevented from getting the results you need, you just have to construct an explicit path.

FYI, multiple Location headers in a 300 Multiple Choices response isn't RFC 7231 compliant, because section 6.4.1 explicitly states that only one such header may be provided:

If the server has a preferred choice, the server SHOULD generate a Location header field containing a preferred choice's URI reference. The user agent MAY use the Location field value for automatic redirection.

To provide multiple choices, the server should define a content type (such as application/vnd.postgrest.route-choices+json) that represents a list of links for the client to choose. This lets you include arbitrary metadata about those links in the response, so postgrest could tell clients details about the different foreign key relationships for each route.

@begriffs thanks, then I'll put it on my never ending todo list :-)

even if one could infer a path between two tables, the shape of the response would still include all the intermediate tables, it's just how postgrest works and this is unlikely to change.
in this case, there will be a disconnect between the url and the shape of the response so ppl will start complaining that it's a bug.
in short, it's just not worth it, it a few keystrokes that you write once (when you define the call url in your code).

I am happy to agree to disagree.


Microsoft.Cdn/profiles/secrets works with FrontDoor profile but not CDN

Bicep version
0.27.1
Describe the bug
Deploying a Microsoft.Cdn/profiles/secrets@2024-02-01 resource against a Microsoft.Cdn/profiles@2024-02-01 with SKU Standard_AzureFrontDoor (or Premium_AzureFrontDoor) works, but fails with "That action isn't valid on this profile" when the SKU is Standard_Microsoft.
To Reproduce
Assuming a Key Vault has been previously created, that it contains a certificate, and that the FrontDoor/CDN application has been granted access to it:
param profileName string
param keyVaultName string
param keyVaultSecretName string

resource profile 'Microsoft.Cdn/profiles@2024-02-01' = {
  name: profileName
  location: 'global'
  sku: { name: 'Standard_Microsoft' }
}

resource keyVault 'Microsoft.KeyVault/vaults@2023-07-01' existing = {
  name: keyVaultName

  resource secret 'secrets' existing = {
    name: keyVaultSecretName
  }
}

resource profileSecret 'Microsoft.Cdn/profiles/secrets@2024-02-01' = {
  parent: profile
  name: '${keyVaultName}-${keyVaultSecretName}-latest'
  properties: {
    parameters: {
      secretSource: {
        id: keyVault::secret.id
      }
      useLatestVersion: true
      type: 'CustomerCertificate'
    }
  }
}

Additional context
This was reported over 2 years ago under #5567 but the "solution" is a workaround at best and not an actual solution.

This looks to be an issue with the Microsoft.Cdn RP team. I would suggest opening up a support ticket with them if you would like this issue to be resolved sooner.


Push a new version of billziss/xgo-cgofuse?

I tried cross-compiling using the billziss/xgo-cgofuse Docker image, but it fails due to too old go version. I then tried using the Dockerfile in the repo instead, and built the image locally - that worked. I think all that is missing is a new version of billziss/xgo-cgofuse pushed to the Docker registry.

Im having the same problem

You can build yourself with the Dockerfile in source code.

The xgo-cgofuse image is now regularly built using DockerHub.
https://hub.docker.com/r/billziss/xgo-cgofuse/builds

I note that the base xgo has had a new release but docker hub hasn't rebuild xgo-cgofuse...

i can kick start this manually, but thought that this was the benefit of Docker’s infra?

I can kick start this manually, but thought that this was the benefit of Docker’s infra?

Yes me too!

I manually triggered a new build.
But I seem to recall that there was a standing bug in the Docker infrastructure regarding this? I think we had this discussion somewhere else (perhaps in an rclone issue).

I manually triggered a new build.

Thank you :-)

But I seem to recall that there was a standing bug in the Docker infrastructure regarding this? I think we had this discussion somewhere else (perhaps in an rclone issue).

Hmm, yes I think I remember reading this somewhere...


No keyboard events on REAPER/Linux (VST2)

The VST2 callback for plugin keyboard events just never gets called, here:
https://github.com/DISTRHO/DPF/blob/8401d865cd9fce9edbeb9c653420bc0f8a39358c/distrho/src/DistrhoPluginVST.cpp#L663
Not sure where to further look

ReaTune VST2 has some text input boxes and it works (maybe not a good quality example)

Made sure e9563d1 is present anyways the code in there depends on this.

On REAPER/Mac callback fires but only after toggling the UI by clicking this button twice:

Insert plugin. No effEditKeyDown.
Hide custom UI
Show custom UI
Keyboard works

The trick does not have any effect on Linux

I noticed this too, mostly an issue on macOS where we cannot make the plugin UI receive proper keyboard focus.
I tried several things yesterday, but could find out exactly what is wrong.
If you want something to try, check with the standalone/jack executable.
At this point it won't receive keyboard focus no matter what we do. My guess is that fixing this keyboard focus on the standalone will result on it working for the lv2/vst2 plugin side too.

JUCE has a flag for plugins to indicate they want keyboard focus, might be worth investigating what it does.

Saw some old lengthy discussion about keyboard input in both REAPER and JUCE forums; it clearly seems a hard nut to crack and not particular to DPF. This needs digging deep in code as suggested.
Started by trying to determine what is the expected behavior.
I realized REAPER won't move focus to the plugin right after instantiating it.  When for example "ReaCast" is added, the focus is retained in the list to the left and pressing keys results in beep.

Clicking on an text input field moves focus as expected:

Getting beeps for keystrokes right after adding a DPF plugin is actually fine.
The issue is that currently it does not seem possible for the user to request focus on a PuglWrapperView. Adding a line in mac.m does the job:
- (void)mouseDown:(NSEvent*)event
{
  [self.window makeFirstResponder:self];  // <--
  const NSPoint         wloc = [self eventLocation:event];
  const NSPoint         rloc = [NSEvent mouseLocation];
  ...

Basically we tell that view to become the first responder when the user clicks on it. Now after clicking on the plugin view, effEditKeyDown events start to trigger normally when pressing keys and the beep is gone.
Wild assumption: REAPER will not offer VST2 key events to the plugin unless its view of any of its subviews is the first responder, aka Mac keyboard focus.
Pugl view actually asks to become first responder on instantiation but then REAPER takes the focus back. I first discovered that by stitching a NSTextView to the native view and calling makeFirstResponder: during init (no effect) and calling it 0.5s later (works -- input gets focused). It is not crazy to think this is by design to prevent plugins from stealing focus when inserting them.
It is probably cleaner to patch this within DPF at Window::PrivateData::onPuglMouse()
void Window::PrivateData::onPuglMouse(const Widget::MouseEvent& ev)
{
    DGL_DBGp("onPuglMouse : %i %i %f %f\n", ev.button, ev.press, ev.pos.getX(), ev.pos.getY());

    if (ev.press) {
        focus();
    }
    ...

A last solution is to not change anything and leave it up to the plugin developer. They should remember that 1) catching keystrokes is not possible unless DGL::Window::focus() is called first [ which in turn calls puglGrabFocus() and lastly makeFirstResponder: ] and 2) asking for focus on init does not work because REAPER will take focus back when adding the plugin.
Regarding Linux still no idea.

Is that also the case for standalones? What about LV2?
I find it weird that Linux has similar behaviour, I expect focus to be given to the plugin window without issues.
On Linux, other hosts do not have such quirks, correct?
In any case, this is a good find.
Maybe worth trying to give the UI focus on the pugl "window appeared on screen" event.

It actually seems it is just REAPER regardless the platform and this is by design. My bet after the NSTextView experiment is that REAPER reclaims focus right after plugin initialization so the focus is not removed from the shiny plugin list on the left. The real answer comes by sniffing events on every platform but that takes more time so for now it is an assumption.
So far other hosts have not exhibited this behavior on any platform. I regularly test stuff on Carla, Bitwig, REAPER and Live on the three OSes.
To me DPF is correctly doing its job and REAPER the "offender". If we requested focus on a "window appeared on screen" event, then we are kind of trying to win a focus stealing race :)  [ 1) plugin init 2) host reclaims 3) plugin reclaims ]. Shouldn't the focus be moved only by explicit user request?. It is the "keyboard focus" after all. Plugins implementing knobs and sliders and no key shortcuts don't need it, in such cases it seems better to let the host decide  (in the case of REAPER, to keep the list of inserts focused). Then if the plugin needs keystrokes, whether for global shortcuts (rare) or text boxes, it can call focus() when needed. In the case of a text box, focus() would be naturally called when the text box is clicked.
Now the "window appeared on screen" event is mentioned, that is not exposed in DGL right? I recall searching for something like that in the past for an unrelated task.
I will prepare a test modifying d_parameters to print onKeyboard() events, with and without the proposed patch, VST2/LV2, all platforms, all hosts. So we get a conclusive answer on the focus thing, independently on how to gain it. Need a little time.

Now the "window appeared on screen" event is mentioned, that is not exposed in DGL right? I recall searching for something like that in the past for an unrelated task.

Correct, the event is in each separate file in pugl.
I mainly ask if this would fix anything because right now DPF standalones on macOS do not automatically get focused on start, which is very annoying.
I actually can't give them keyboard focus when running from CLI.
Will try with your idea later on.

I will prepare a test modifying d_parameters to print onKeyboard() events, with and without the proposed patch, VST2/LV2, all platforms, all hosts. So we get a conclusive answer on the focus thing, independently on how to gain it. Need a little time.

No need for this, if you clone and place imgui on the same directory as DPF, you can build the ImguiSimpleGain example plugin, which includes a tiny text editor field.
(for now build is manual, and only through makefile, but it is possible to make it work)

I mainly ask if this would fix anything because right now DPF standalones on macOS do not automatically get focused on start, which is very annoying.
I actually can't give them keyboard focus when running from CLI.

This is a macOS specific issue and (I think) comes from the fact that the standalone version is lacking some details to be a "real" Cocoa app. For example I see no NSApplicationMain() call or app bundle .plist defined. A quick fix involves adding a line to pugl:
PuglWorldInternals*
puglInitWorldInternals(PuglWorldType type, PuglWorldFlags PUGL_UNUSED(flags))
{
  PuglWorldInternals* impl =
    (PuglWorldInternals*)calloc(1, sizeof(PuglWorldInternals));

  impl->app = [NSApplication sharedApplication];

  if (type == PUGL_PROGRAM) {
    [impl->app setActivationPolicy:NSApplicationActivationPolicyRegular];  // <-- this is new
    impl->autoreleasePool = [NSAutoreleasePool new];
  }

  return impl;
}

Note some details still don't work completely well, like the menu bar not being focusable at first or Cmd+Q not working for quitting the app. Probably the real solution is to provide app bundles for the standalone, just like it is done for MacVST, and define some little metadata there.

if you clone and place imgui on the same directory as DPF, you can build the ImguiSimpleGain example plugin, which includes a tiny text editor field.
(for now build is manual, and only through makefile, but it is possible to make it work)

That's great, will have a look at it.

FYI here are some test results after patching ImGuiUI.cpp to grab focus on click. They are consistent with previous findings, and somewhat surprising on Windows.
bool ImGuiUI::onMouse(const MouseEvent& event)
{
    if (event.press) {
        getWindow().focus();
    }
...

Result types:
A. Text input works without patch
B. Text input works only after applying patch
X. Could not test due to UI not properly showing  (known LV2 issue #294)
Linux:  REAPER/VST (B) — REAPER/LV2 (X) —  Carla.git/VST (A) — Carla.git/LV2 (A) — Bitwig/VST (A)
Mac:  REAPER/VST (B) — Live/VST (A)  —  Carla.kx/VST (B **)  — Carla.kx/LV2  (X)
Windows   REAPER/VST (A)  — Live/VST (A)  — Carla.kx/VST (B)
** View flickers, UI feels a bit unresponsive
Is the test below what you propose? I could not get it working on REAPER/Mac, PUGL_MAP just never fires.
WindowPrivateData.cpp
    ///< View made visible, a #PuglEventMap
    case PUGL_MAP:
        puglGrabFocus(view);    // <-- new line
        break;

These are the first pugl events when adding a plugin:
pugl event: Focus in 0      ★
pugl event: Focus out 0     ★
pugl event: Create
pugl event: Destroy
pugl event: Create
pugl event: Configure    0.0    0.0  600.0  400.0
pugl event: Expose       0.0    0.0  600.0  400.0
pugl event: Expose       0.0    0.0  600.0  400.0
pugl event: Expose       0.0    0.0  600.0  400.0
pugl event: Expose       0.0    0.0  600.0  400.0

Coming back to this, did anything change that made this behave better?
We now have the VST2 key up/down events handled on plugin side, so maybe that is all we need?
Carla from latest git should also send these values if using windows or macOS (or linux it gives the plugin UI focus, so that is not needed)

Well I moved away from DGL/Pugl but even for ExternalWindow some brute force is needed to have the plugin window keep the keyboard focus for itself. This is true for REAPER and Bitwig Studio but not for Carla. I think you mentioned some hosts go to great extents to keep focus for themselves and my own observation goes on par with that.
So I opted to bypass the host and fix this at the windowing system level. For the GTK based webview the workaround consisted in calling gdk_seat_grab()/gdk_seat_ungrab with GDK_SEAT_CAPABILITY_KEYBOARD when the keyboard is needed.

Alright, it makes sense.
Since this ticket was created by you, I will leave at your discretion when to close it.

Sure, will close it now. Unfortunately there is not much more I can contribute to DPF in this area.


Lenient peer dependency on underscore.

~1.6.0 rejects underscore v1.7.0. Peer dependencies need to be lenient, otherwise this needs to be a f'real dependency, as I understand it.
Updated to 1.x to allow future versions <2.0.0.

Upon reflection, changed to >= 1.6.0 < 2 to ensure users have at least v1.6.x, as was previously stated.

Thanks a ton for putting this together. :+1:
I reverted the 'main' update that you made due to some issues that we were experiencing in gulp/grunt builds, but we'll be looking to put that in once we have a little more testing around it.

No problem. Sorry about that last commit--didn't mean for it to make it into the PR, just some goofing I was doing to try to get Browserify to take. Should've branched first, heh.

On Jan 26, 2015, at 20:28, Joel Lanciaux<EMAIL_ADDRESS>wrote:
Thanks a ton for putting this together.
I reverted the 'main' update that you made due to some issues that we were experiencing in gulp/grunt builds, but we'll be looking to put that in once we have a little more testing around it.
—
Reply to this email directly or view it on GitHub.


remove strncpy/strncat Banned API

Why is the title "remove strncpy/strncat Banned API" when you are adding strncpy and strncat?  Do you mean "remove strcpy/strcat Banned API"?

Why is the title "remove strncpy/strncat Banned API" when you are adding strncpy and strncat?  Do you mean "remove strcpy/strcat Banned API"?


a caching label store

It turns out label lookup can be pretty slow on NFS, so we're looking into ways to resolve this. One strategy we're exploring is having a central label store server which is used for label lookups, rather than a shared filesystem.
If we can just assume that every instance in a store cluster is using the same label server, there's actually no need to go to disk for every label read. We can just keep them cached in memory. Furthermore, writes don't have to ensure exclusive access as this is already guaranteed by the setup.
To facilitate this, this pull request introduces a caching directory label store. It is currently not used anywhere by this library, but can be used by dependencies.
There's actually some potential of also using it for cases where people deploy just a single terminusdb instance instead of a cluster, but I'll leave that for another PR.
Considering how standalone this code is, at some point it might be worth moving it to its own crate though. But again, that's not for this PR but for a PR  that splits out the existing monolithic store into multiple crates.

Note that this implementation could be somewhat smarter. In particular, it uses a single hashmap with a global readwrite lock which means every label write will block any concurrent reads, even for other labels. That is probably not great.
Alternative strategies here are using a DashMap instead (which, if I understand correctly, splits the map into shards which are locked individually on modification), and/or using rwlocks directly on the stored  labels.
Again, I think it can wait for another PR.


EventGrid: Update index.json to reflect latest version.

EventGrid: Updated index.json to reflect latest version.
This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

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

If this PR is for a new extension or change to an existing extension, use the following to try out the changes in this PR:
docker run -it microsoft/azure-cli:latest
export EXT=<NAME>
pip install --upgrade --target ~/.azure/cliextensions/$EXT "git+https://github.com/kalyanaj/azure-cli-extensions.git@master#subdirectory=src/$EXT&egg=$EXT"

@tjprescott , @williexu: Need your help with this sometime today if possible to review/merge, the only remaining issue is one CI issue which appears to be a false positive. We are looking to release this version out today if possible.

@kalyanaj

--ids parameter is meant to be used for the resource indicated by the command-group. ex:
For the command, az eventgrid topic delete, the --ids parameter can be used to specify multiple topics(the command-group resource) ids. In az eventgrid topic key list the presence of --ids to refer to the topic can be confusing because it is not the rightmost "resource" indicated by the command-group. Similarly, --name should ideally be renamed to --topic.
In addition, for az eventgrid topic key list, what would be the reason for a user to specify multiple ids as the parameter implies? If multiple ids were provided, would you expect all the keys for each topic to be combined and then returned? Again, confusing, hence the rule.

The way to accept ONE id, which i believe is the intention, is to combine the functionality of --topic to accept both the topic name and topic resource id.

Thanks for the info, that makes sense. What's the best way for me to remove the --ids parameter for these cases?  Taking the example of "domain key list", I have the following in commands.py and I didn't quite get how I can disable support for the --ids parameter?
with self.command_group('eventgrid domain', domains_mgmt_util, client_factory=domains_factory) as g:
    g.command('key list', 'list_shared_access_keys')

This is done in the _params.py file. The following line: https://github.com/Azure/azure-cli-extensions/blob/master/src/eventgrid/azext_eventgrid/_params.py#L66
Adds the --ids parameter for all commands under that group. To disable it for the specific command, specify id_part=None

Thanks @williexu for the information, I have made the changes to remove the --ids parameter from these commands.


Readonly input-color-swatches

Which exact UI Library version are you using? For example: 1.0.1 - don't just write v1.
1.9.0
Bug summary
The input-color-swatches is missing a readonly mode.
Specifics
No response
Steps to reproduce
When the readonly attribute is set on the element nothing happens.
Expected result / actual result
When the input is set to readonly it should not be possible to update the value. It should be possible to interact with the input to read the value.
Storybook should have a story to showcase the readonly mode.

This one should be simplify enough to implement, when the following PR has been reviewed/merged:
uui-color-swatch: https://github.com/umbraco/Umbraco.UI/pull/916


README improvements

I saw a typo while referring to this, so I went ahead and made a grammar-pass over it. :rocket:

Thanks - I'm amazed that I read over some of those "typos".


Enhance release notes

add more information about backup/export files
make language more consistent in places

Marked urgent per proposed process.

Merging because urgent / doc only.


bluetooth: host: Save id when allocating CCC cfg slot

Make sure that along with address identity is saved too.
Signed-off-by: Pawel Dunaj<EMAIL_ADDRESS>Fixes: #15508

Is this something you'd want backported to the 1.14 branch?

Is this something you'd want backported to the 1.14 branch?

Hi @jhedberg , from our point of view this is not important. We use the current master.

Hi @Vudentz , @carlescufi , could we merge this and do the upmerge to ncs?


Added CMake files and instructions.

This adds cmake support so that hemi can be installed using cmake, and downstream packages can use find_package(Hemi).

I have been using spack, but I will look into CPM.
On Mon, Mar 28, 2022, 10:25 PM Mark Harris @.***> wrote:

@.**** commented on this pull request.
Thanks for the great contribution! Just one question.
In README.md
https://github.com/harrism/hemi/pull/33#discussion_r836998048:

@@ -49,6 +49,27 @@ Once you clone Hemi from Github, you need to sync its submodules in order to use

Hemi is a header-only library, so there is no further installation required. Simply include the hemi headers for the features you need. See the examples for demonstration.
+### Optional CMake Installation
+
+If you would like to use cmake to manage the installation
+of this code, you can install with:
+

mkdir build && cd build

I suspect this would work without local installation using CPM. Are you
familiar with CPM (CPMAddPackage())? If so, perhaps test out whether this
works and provide an example.
—
Reply to this email directly, view it on GitHub
https://github.com/harrism/hemi/pull/33#pullrequestreview-923947521, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AARDW54IXZNMG25BESL7MKLVCJS2NANCNFSM5RZJXP3Q
.
You are receiving this because you authored the thread.Message ID:
@.***>

Spack examples welcome too!

So, getting it to work with CPM required working out some namespace issues.
The Hemi::hemi target was placed inside Config.cmake.in so that it could check for CMAKE_CUDA_ARCHITECTURES when the downstream package was configured.
However, CPM uses FetchContent_MakeAvailable.  This has the effect of including CMakeLists.txt from subdirectories, rather than installing them.
 But the catch is that Hemi.cmake has to be included manually by dependencies with CPM, and target namespaces don't work.  So I changed the targets to be named Hemi, HemiCPU, and HemiCUDA.
Note also you'll need a new tag - which I'm calling v2.0.1.

I tried to build one of the examples and it failed because it couldn't find CPM. In my projects I add the following so that CPM doesn't need to be installed:
# ---- Get CPM ----

set(CPM_DOWNLOAD_VERSION 0.34.0)

if(CPM_SOURCE_CACHE)
  set(CPM_DOWNLOAD_LOCATION "${CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
elseif(DEFINED ENV{CPM_SOURCE_CACHE})
  set(CPM_DOWNLOAD_LOCATION "$ENV{CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
else()
  set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
endif()

if(NOT (EXISTS ${CPM_DOWNLOAD_LOCATION}))
  message(STATUS "Downloading CPM.cmake to ${CPM_DOWNLOAD_LOCATION}")
  file(DOWNLOAD
       https://github.com/TheLartians/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake
       ${CPM_DOWNLOAD_LOCATION}
  )
endif()

include(${CPM_DOWNLOAD_LOCATION})

Open to suggestions of something simpler -- having this in every example would be a bit ugly.

CPM's installation instructions say to include(cmake/CPM.cmake) - which assumes you're following CPM's regular install path (copying CPM.cmake from their repo).
All their examples assume the package is structured that way.

Yes. My request was to provide an example in the docs of using Hemi via CPM, not to make all Hemi examples depend on CPM being installed. Since Hemi is not something I actively use or maintain anymore, I think adding to its dependencies will increase the maintenance burden.

I added your download code to examples/blackscholes/CMakeLists.txt.  All of the examples still contain their Makefile instructions.  What's added in this PR are two CMakeLists.txt configurations that provide optional alternatives to the Makefiles.  The one in blackscholes uses CPM, and the one in simple uses a traditional cmake-installed hemi.  The README points to both as full CMakeLists examples rather than containing all that code.

I don't think the examples should re-download hemi. Currently the Blackscholes example in this PR fails with the below. Why would the examples download and install hemi, if they are part of hemi. They should just use the hemi in the parent directory.
[ 22%] Performing download step (git clone) for 'hemi-populate'
Cloning into 'hemi-src'...
fatal: invalid reference: v2.0.1
CMake Error at hemi-subbuild/hemi-populate-prefix/tmp/hemi-populate-gitclone.cmake:49 (message):
  Failed to checkout tag: 'v2.0.1'

CMakeFiles/hemi-populate.dir/build.make:101: recipe for target 'hemi-populate-prefix/src/hemi-populate-stamp/hemi-populate-download' failed
make[2]: *** [hemi-populate-prefix/src/hemi-populate-stamp/hemi-populate-download] Error 1
CMakeFiles/Makefile2:82: recipe for target 'CMakeFiles/hemi-populate.dir/all' failed
make[1]: *** [CMakeFiles/hemi-populate.dir/all] Error 2
Makefile:90: recipe for target 'all' failed
make: *** [all] Error 2

CMake Error at /home/nfs/mharris/anaconda3/envs/gitdev/share/cmake-3.23/Modules/FetchContent.cmake:1088 (message):
  Build step for hemi failed: 2
Call Stack (most recent call first):
  /home/nfs/mharris/anaconda3/envs/gitdev/share/cmake-3.23/Modules/FetchContent.cmake:1217:EVAL:2 (__FetchContent_directPopulate)
  /home/nfs/mharris/anaconda3/envs/gitdev/share/cmake-3.23/Modules/FetchContent.cmake:1217 (cmake_language)
  build/cmake/CPM_0.34.0.cmake:850 (FetchContent_Populate)
  build/cmake/CPM_0.34.0.cmake:670 (cpm_fetch_package)
  CMakeLists.txt:31 (CPMAddPackage)

-- Configuring incomplete, errors occurred!
See also "/home/nfs/mharris/github/hemi/examples/blackscholes/build/CMakeFiles/CMakeOutput.log".

That example demonstrated CPM. But CPM won't work correctly unless you
provide a tag for hemi's source tree at a revision that includes
CMakeLists.txt. So you'd need a v2.0.1 tag including the results of this PR
to test the PR.
On Tue, Apr 26, 2022, 7:10 PM Mark Harris @.***> wrote:

I don't think the examples should re-download hemi. Currently the
Blackscholes example in this PR fails with the below. Why would the
examples download and install hemi, if they are part of hemi. They should
just use the hemi in the parent directory.
[ 22%] Performing download step (git clone) for 'hemi-populate'
Cloning into 'hemi-src'...
fatal: invalid reference: v2.0.1
CMake Error at hemi-subbuild/hemi-populate-prefix/tmp/hemi-populate-gitclone.cmake:49 (message):
Failed to checkout tag: 'v2.0.1'
CMakeFiles/hemi-populate.dir/build.make:101: recipe for target 'hemi-populate-prefix/src/hemi-populate-stamp/hemi-populate-download' failed
make[2]: *** [hemi-populate-prefix/src/hemi-populate-stamp/hemi-populate-download] Error 1
CMakeFiles/Makefile2:82: recipe for target 'CMakeFiles/hemi-populate.dir/all' failed
make[1]: *** [CMakeFiles/hemi-populate.dir/all] Error 2
Makefile:90: recipe for target 'all' failed
make: *** [all] Error 2
CMake Error at /home/nfs/mharris/anaconda3/envs/gitdev/share/cmake-3.23/Modules/FetchContent.cmake:1088 (message):
Build step for hemi failed: 2
Call Stack (most recent call first):
/home/nfs/mharris/anaconda3/envs/gitdev/share/cmake-3.23/Modules/FetchContent.cmake:1217:EVAL:2 (__FetchContent_directPopulate)
/home/nfs/mharris/anaconda3/envs/gitdev/share/cmake-3.23/Modules/FetchContent.cmake:1217 (cmake_language)
build/cmake/CPM_0.34.0.cmake:850 (FetchContent_Populate)
build/cmake/CPM_0.34.0.cmake:670 (cpm_fetch_package)
CMakeLists.txt:31 (CPMAddPackage)
-- Configuring incomplete, errors occurred!
See also "/home/nfs/mharris/github/hemi/examples/blackscholes/build/CMakeFiles/CMakeOutput.log".
—
Reply to this email directly, view it on GitHub
https://github.com/harrism/hemi/pull/33#issuecomment-1110333098, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AARDW54DZOAQZTNNF6OGTC3VHBZWXANCNFSM5RZJXP3Q
.
You are receiving this because you authored the thread.Message ID:
@.***>

Why would the examples download and install hemi, if they are part of hemi.

I still have this question.

Well, it's an example use of the library. Users wanting the CPM path will
be downloading hemi this way, and will want an example that does that.
There are more general, and esoteric justifications as well, for example
http://www.madore.org/~david/computers/quine.html
On Tue, Apr 26, 2022, 8:14 PM Mark Harris @.***> wrote:

Why would the examples download and install hemi, if they are part of hemi.
I still have this question.
—
Reply to this email directly, view it on GitHub
https://github.com/harrism/hemi/pull/33#issuecomment-1110367847, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AARDW52BOOO7DI4V3W5DZO3VHCBHLANCNFSM5RZJXP3Q
.
You are receiving this because you authored the thread.Message ID:
@.***>


Add missing additions from Frontier Merge

Description
This PR does three things:

updates the PR template to reflect the recent Frontier merge
adds missing toolchain code for --omni and --roc options
adds documentation for profiling on AMD hardware

Type of change

[x] Something else

Scope

[x] This PR comprises a set of related changes with a common goal

How Has This Been Tested?

[x] Run with --roc on Frontier
[x] run with --omni on Frontier

thanks @wilfonba -- i missed this!


[iOS] iPad export doesn't fill screen on some models

Tested versions
-4.2.1.stable
System information
iPadOS 17.4.1, iPad Pro 11" (2022)
Issue description
When running a Godot project on a device such as the iPad Pro 11", the game window does not fill the screen. I don't believe this happened on earlier versions of Godot 4.x but I'm not sure when the change would have happened, and I can't get exporting to work on versions prior to 4.2 to work anymore.
I believe this has something to do with some kind of compatibility flag, because the Steam Mobile app had this behavior on the iPad Pro 11" for years due to its slightly different aspect ratio to other models.

Steps to reproduce
Create a project, then export onto an iPad Pro 11".
Minimal reproduction project (MRP)
N/A

This should be fixed by https://github.com/godotengine/godot/pull/86312 (in 4.3), enabling storyboard launchscreen in the export settings should fix it for older versions as well.


Chapter 9 - Compile errors

Did a clean git clone, with no edits/changes

It failed because tsc version globally installed on your machine is different from the one we use in the repo. And the latest TypeScript version is incompatible with the @types/node that we use. If you run npx tsc (which runs project-local tsc) it completes successfully.
I've upgraded all of the packages to the latest version, so it should work fine now with TypeScript 3.6 as well.


VSCODE at full screen - no way to exit without rebooting

Issue Type: Bug
I don't know what I did to cause this, but VSCODE was in full screen with no way to reduce the window size or access the toolbar (win10).
....later...I thought I would have to reboot, but opening "similar issues" got me out to a functioning win system so I am likely going to have to kill the VSCODE process and restart.


weak field

Some of the references are reviews.
In that case I added the bibtex to multiple subtopics, if it covers them

Thanks, @fuhok85, for sorting the refs! I squashed your two commits into one, rebased from master, and edited the commit message to be more descriptive. See eca8aa2 for the final commit.

Thanks Leo,
and sorry for the name-misundesranding..
I should have told you about the Chinese nickname :)
Write me for any other duty!
Cheers
A

On 25 Nov 2017, at 19:31, Leo C. Stein<EMAIL_ADDRESS>wrote:
Thanks, @fuhok85 https://github.com/fuhok85, for sorting the refs! I squashed your two commits into one, rebased from master, and edited the commit message to be more descriptive. See eca8aa2 https://github.com/duetosymmetry/testing-gr-tables/commit/eca8aa2e769e45c94f010fee2205b769017cc142 for the final commit.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/duetosymmetry/testing-gr-tables/pull/17#issuecomment-346960954, or mute the thread https://github.com/notifications/unsubscribe-auth/AgR0_pD4gNzAxb_a1chwjZYB2MfU9anpks5s6Gr2gaJpZM4Qmonk.


Click select feature update

This update adds:
-Storing of clicked car index and it shows up as selected by default in the order page

Click select feature update #10 adds:
-Storing of clicked car index and it shows up as selected by default in the order page


chore: release main

:robot: I have created a release beep boop
dev-dependencies-common: 2.0.2
2.0.2 (2023-12-12)
Bug Fixes

bump common non-breaking dev dependencies (c49c26b)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/aversini/dev-dependencies/releases/tag/dev-dependencies-common-v2.0.2 :sunflower:


Add TypeNode#docs method

It would be nice to be able to extract docs related to a node just like TypeNode#annotation does with annotations:
# It's the `Foo` class
class Foo
  # It's the `@bar` variable
  @bar : String

  # It's the `#foo` method
  def foo
  end
end

{% pp Foo.docs %}
{% for ivar in Foo.instance_vars %}
  {% pp ivar.docs %}
{% end %}
{% for method in Foo.methods %}
  {% pp method.docs %}
{% end %}

"It's the `Foo` class"
"It's the `@bar` variable"
"It's the `#foo` method"

A possible (and actual) use-case is generating REST API docs with ease:
# Return user by its ID
class Users::Get < Action
  # The User's ID
  @id : Int32
end

crystal src/generate-docs

{
  "actions": [
    {
      "Users::Get": {
        "description": "Return user by its ID",
        "params": {
          "id": {
            "type": "Int32"
          }
        }
      }
    }
  ]
}

Of course, it could be achieved with annotations, but .docs methods will make code documentation serve multiple purposes. I'm sure that there are tons of other use-cases where extracting the docs could be useful.

What's the use case for having a #docs methods available in Crystal code?
The example usage of crystal src/generate-docs can probably already be implemented with crystal docs.

@straight-shoota, here you go:
A possible (and actual) use-case is generating REST API docs with ease:
# Return user by its ID
class Users::Get < Action
  # The User's ID
  @id : Int32
end

crystal src/generate-docs

{
  "actions": [
    {
      "Users::Get": {
        "description": "Return user by its ID",
        "params": {
          "id": {
            "type": "Int32"
          }
        }
      }
    }
  ]
}

That JSON could be served in a handler, say Handlers::APISchema.

But the schema doesn't change at runtime. You can easily embed it at compile time (simplified: {{ run `crystal docs --format json` }}).

Plus it would be not an "easy embedding" if I want to extract REST Actions docs explicitly, because macros don't have that much tools to work with JSON strings. It would be easier to actually put docs one-by-one into JSON instead.

The --format option is available in master and will be included in 0.27.1.

@straight-shoota still requires to dive into the JSON in macros, which ain't easy at all.

@vladfaust you could write a helper script for that, use jq or other means.

@Sija true. Still, calling crystal docs will build docs for the whole program, while what I want is certain namespace. It would be much slower than extracting docs for a limited set of types. And it's a common scenario to require these generated docs in development, i.e. to have fresh REST API schema on every development server start.

Also had a plan to use this to auto fill out the description field of OAS 3.0 Schema Object to the docs applied to an ivar/property.  Would also allow for setting the title to like the first line/sentence etc.

Note that for performance reasons documentation on top of AST nodes is not stored unless the compiler operates on doc mode. That means docs can't be available using reflection, unless we are willing to increase the memory occupied at runtime... (for me it's a "no").

Fair enough, I'll go to plan B then.


Bad animation when open & close settings

Description: white glitch on top. see title and video for more visual.

Note that the opposite happens with the light theme, a black bar appears at the top.

@yoshiask @ryadhiprasetya Does this occur when your app theme preference matches the system theme set in Windows Settings?

in my situation, have same white glitch on windows default, dark, and white theme.

Good point, my system theme is Dark. It's still a bit jarring though, since pretty much all of the backgrounds in Files are gray (not black).

@ryadhiprasetya This is a system issue, can you open an issue on the WinUI repo?

@ryadhiprasetya This is a system issue, can you open an issue on the WinUI repo?

done #5071

Can we just turn off the animation. even the color is fix, animation itself is worst, not smooth

Can we just turn off the animation. even the color is fix, animation itself is worst, not smooth

Yes, there is a system setting to turn off animations.

@yaichenbaum  I didn't see if you set RequestedTheme on your root frame. Mey be this is the problem?

found this strange behaviour. may be related

This issue is no longer relevant with #5077.


Special buttons: Please look at the guidelines.

http://www.google.com/design/spec/components/buttons.html#buttons-usage
or here: http://material-design.storage.googleapis.com/publish/v_2/material_ext_publish/0Bx4BSt6jniD7OU9vRGtPQkhwMHM/components_buttons_usage5.png
Maybe you decide to make also the button background color customizable. :-)

@Rainer-Lang oh i see ;).


Updated Traffic Router version to 2.3.0.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/incubator-trafficcontrol-PR/1230/
Test PASSed.


JobsDSL: better graph building algorithm for flows

improved text to graph creation for flows
improved DSL creation from graph
Fixed tokenizer problem when whitespace not supplied

In Graph.java we can merge the the if statements on line 190 and 194 into a single if statement.

LGTM, Squashed, Rebased, Merged


buildbot: 0.9.4 -> 0.9.5

adds distro dependency
buildbot nodaemon in service module
module test fixup
tested on darwin
tested on nixos

@copumpkin This is now working calling twisted directly in module, but daemon standalone mode still has the PYTHONPATH inheritance issue.  (should be fixed globally in makeWrapper?)

@Mic92 @FRidh @copumpkin ready_for_review

@FRidh @Mic92 @copumpkin updated to remove the now merged distro commit. ready_for_review

@copumpkin this PR fixes the buildbot module, which is currently broken. could we go ahead with merge?

@nand0p sorry, will review later today, but in general it looks good except for the big list o' python paths. I guess we could merge for now and make a follow-up commit that fixes those?

@copumpkin yup, i can certainly do another PR to better fix this, as buildbot-0.9.6 just came out.  Note that the big list of python paths in the module (the systemd unit environment), is due to calling twistd natively in ExecStart, and so im not sure exactly how else to let twisted know about these paths.

@copumpkin do we want to go ahead with merge, so as to have a working module?  I will follow-up in another PR as noted.


Feature/threads

Description
Adds thread support to Nyxx. Linked to issue #120
Type of change

[x] New feature (non-breaking change which adds functionality)

Checklist:

[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works

Closed, implementation flawed re-thinking.


Please add Baikal State University

Add Baikal State University.

@SharpNesla Pull request merged. Thank you!


sdk: evict hard_forks

Problem
Moving toward evicting rent_collector from the SDK, hard_forks stands in the way.
https://github.com/anza-xyz/agave/pull/3932
Summary of Changes
Extract it into solana-hard-forks standalone crate.

Note CI is broken on master.

I hesitated about whether we should use the Slot type from solana_clock for better clarity.
It's such a tiny type that it seems silly to add the dependency for a type alias, and the API is clear enough that they're slots, so I lean towards your approach.

Yeah I feel like the dependency for just a type alias is silly, too. I noticed we've moved to u64 in other crates that got split out, so I think that's fine to do here as well.

Will this end up being used anywhere that the solana-genesis-config crate is not used? If not we could just put them in the same crate #3860
No strong feelings though, I consider crates cheap

Will this end up being used anywhere that the solana-genesis-config crate is not used? If not we could just put them in the same crate #3860
No strong feelings though, I consider crates cheap

There are a few places it's used without genesis_config, but putting them in the same crate wouldn't break those callsites (esp. if we do the proper re-exporting in SDK). I just felt like they made sense separate from each other, given they aren't too tightly coupled concepts.

According to the failing test, looks like a frozen-abi digest needs to be updated:
thread 'bank::serde_snapshot::tests::test_bank_serialize::BankAbiTestWrapper_frozen_abi::test_abi_digest' panicked at runtime/src/bank/serde_snapshot.rs:573:13:
assertion `left == right` failed: Possibly ABI changed? Confirm the diff by rerunning before and after this test failed with SOLANA_ABI_DUMP_DIR!
  left: "2bWtYJSWVVvCEnBw6W2PsYZaR7RVs2V7CthFcHArdbUR"
 right: "9NABbrKjv1mmcPAmvtav1tVq4cJ7tTwKpHbYj6RDp3hi"
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
test bank::serde_snapshot::tests::test_bank_serialize::BankAbiTestWrapper_frozen_abi::test_abi_digest ... FAILED

According to the failing test, looks like a frozen-abi digest needs to be updated:

Sorry, I didn't see this was failing after I committed your suggestion. Will fix.


MessagePassing.propagate issue

Traceback (most recent call last):
File "/data1/supersmpl/dy/ReCurrence/HOOD/demo.py", line 114, in
trajectories_dict = runner.valid_rollout(sequence,  bare=True)                                                                                "amax" 15:09 23-9月-24
File "/data1/ReCurrence/HOOD/runners/postcvpr.py", line 114, in valid_rollout
trajectory, obstacle_trajectory, metrics_dict = self._rollout(sequence, n_samples,
File "/data1/ReCurrence/HOOD/runners/postcvpr.py", line 149, in _rollout
state = self.model(state, is_training=False)
File "/data1/.conda/envs/hood/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl
return forward_call(*input, **kwargs)
File "/data1/ReCurrence/HOOD/models/postcvpr.py", line 488, in forward
sample = self._learned_model(sample)
File "/data1.conda/envs/hood/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl
return forward_call(*input, **kwargs)
File "/data1/ReCurrence/HOOD/models/core/postcvpr.py", line 410, in forward
sample = self._process(sample)
File "/data1/ReCurrence/HOOD/models/core/postcvpr.py", line 400, in _process
sample = processing_block(sample)
File "/data1/.conda/envs/hood/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl
return forward_call(*input, **kwargs)
File "/data1/ReCurrence/HOOD/models/core/base.py", line 26, in forward
sample = self.propagate(sample)
File "/data1/.cache/pyg/message_passing/models.core.postcvpr_GraphNetBlock_propagate.py", line 142, in propagate
mutable_size = self._check_input(edge_index, size)
File "/data1/.conda/envs/hood/lib/python3.9/site-packages/torch_geometric/nn/conv/message_passing.py", line 277, in _check_input
raise ValueError(
ValueError: MessagePassing.propagate only supports integer tensors of shape [2, num_messages], torch_sparse.SparseTensor or torch.sparse.Tensor for argument edge_index.

I tried different versions of torch_geometric but the problem wasn't resolved.


Add Trino-TiDB-Connector readme

impl https://github.com/tidb-incubator/TiBigData/issues/116

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

/run-all-tests

/run-all-tests


Make JDTEngine engine load more trees

It would be helpful if the JDTEngine could load more than one rule.
A parameter rule could be added to the method decide() to choose which tree to use to validate the payload.

Thank you for your suggestion.
I would propose to implement the feature optionally, leaving the freedom to load the entire folder in memory or not.
what do you think about?

Sure, I agree


Support 'format_source' option in GTCpp and CUDA backends

Description
This PR modifies the GTCpp and CUDA backends to check whether the format_source backend option is True before applying clang-format to the generated code.
Before submitting this PR, please make sure:

[x] The code builds cleanly without new errors or warnings
[x] The code passes all the existing tests

It looks good.

This PR modifies the GTCpp and CUDA backends to check whether the format_source backend option is True before applying clang-format to the generated code.


OneSignalPushAdapter Says Push Was Sent to X Devices But Non Of My Devices Gets the Push

We are using the Push Massaging through a Cloud Code.
Found Several examples online..
According to this part of the wiki, we need to add OneSignalPushAdapter (or any other adapter) to send push notifications successfully.
The OneSignalPushAdapter  logs say It sent the push notifications to 1,5,9,15 devices, according to our specifications, but non of our devices just don't get any push message...
No Error, No Failure, nothing...
This is our server code:
// Example express application adding the parse-server module to expose Parse
// compatible API routes.
var express = require('express');
var ParseServer = require('parse-server').ParseServer;

var databaseUri = process.env.DATABASE_URI || process.env.MONGOLAB_URI;

if (!databaseUri) {
  console.log('DATABASE_URI not specified, falling back to localhost.');
}

//Mailgun - reset password
var SimpleMailgunAdapter = require('parse-server/lib/Adapters/Email/SimpleMailgunAdapter');
var simpleMailgunAdapter = new SimpleMailgunAdapter({
  apiKey: process.env.MAILGUN_KEY,
  domain: process.env.DOMAIN,
  fromAddress: process.env.MAILGUN_FROM_ADDRESS
});
//Push Adapter
var OneSignalPushAdapter = require('parse-server/lib/Adapters/Push/OneSignalPushAdapter');
var oneSignalPushAdapter = new OneSignalPushAdapter({
  oneSignalAppId:process.env.ONE_SIGNAL_APP_ID,
  oneSignalApiKey:process.env.ONE_SIGNAL_REST_API_KEY
});
//Server Part
var api = new ParseServer({
  databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
  cloud: __dirname + '/cloud/main.js',
  appId: process.env.APP_ID || 'myAppId',
  appName: 'Medidate',
  masterKey: process.env.MASTER_KEY || '', //Add your master key here. Keep it secret!
  serverURL: process.env.SERVER_URL || 'http://localhost:1337',  // Don't forget to change to https if needed
  publicServerURL: process.env.PUBLIC_SERVER_URL,
  emailAdapter: simpleMailgunAdapter,
  push: {
     adapter: oneSignalPushAdapter
  },
  // push: pushConfig,
  // push: {
	// android: {
	// 	senderId: process.env.GCM_SENDER_ID, // The Sender ID of GCM
	// 	apiKey: process.env.GCM_API_KEY // The Server API Key of GCM
	// 	}
	// 	,
	// ios: {
	// 	pdx: __dirname + '/ios_push/Medidate_prod_p12_new.p12', // the path and filename to the .p12 file you exported earlier.
	// 	bundleId: process.env.IOS_PUSH_BUNDLEID, // The bundle identifier associated with your app
	// 	production: true
	// 	}
	// }
  // ,
  // customPages: {
  //   invalidLink: process.env.SERVER_URL + 'invalid_link.html',
  //   verifyEmailSuccess: process.env.SERVER_URL + 'verify_email_success.html',
  //   choosePassword: process.env.SERVER_URL + 'views/choose_password',
  //   passwordResetSuccess: process.env.SERVER_URL + 'password_reset_success.html'
  // }
});
// Client-keys like the javascript key or the .NET key are not necessary with parse-server
// If you wish you require them, you can set them as options in the initialization above:
// javascriptKey, restAPIKey, dotNetKey, clientKey

var app = express();

// Serve the Parse API on the /parse URL prefix
var mountPath = process.env.PARSE_MOUNT || '/parse';
app.use(mountPath, api);

// Parse Server plays nicely with the rest of your web routes
app.get('/', function(req, res) {
  res.status(200).send('I dream of being a web site.');
});

var port = process.env.PORT || 1337;
app.listen(port, function() {
    console.log('parse-server-example running on port ' + port + '.');
});

As you can see, we have also tried a different approach, to use the regular push configurations (commented) but we can't figure out what should we do with this JAVA code(Android client side) part in many of the GCM tutorials online:
// Make a call to Instance API
InstanceID instanceID = InstanceID.getInstance(this);
        String senderId = getResources().getString(R.string.gcm_defaultSenderId);
        try {
            // request token that will be used by the server to send push notifications
            String token = instanceID.getToken(senderId, GoogleCloudMessaging.INSTANCE_ID_SCOPE);
            Log.d(TAG, "GCM Registration Token: " + token);

            // pass along this data
            sendRegistrationToServer(token);
        } catch (IOException e) {
            e.printStackTrace();
        }

We can't figure out how to use this token in our parse server...
In this alternative we get the notorious "MismatchSenderId" (we triple checked our server key and project id/sender id)
And we think it might be related to the JAVA code snippet above.
Are we missing any configuration in any of the Cloud Push alternatives?
Do we need to implement OneSignal SDK in our client side?
P.S
We don't get any errors in the Cloud Code push function part...
Thanks in advance.

@432player (I help work on OneSignal). This sounds like it might be an issue with your OneSignal configuration, and not with ParsePlatform or the OneSignalPushAdapter. Please get in touch with us at<EMAIL_ADDRESS>

I'll close hoping @gdeglin gets you up and running with one signal!

Please post here for us with the same issue

Same problem here, any solution?

I don't really remember what the problem was for this exact issue.
But what we had to do ourselves was once we got the token from onesignal on registry we needed to save it to the installation ourselves because Parse and OneSignle didn't create matching tokens and that's why the device was registered but didn't get any pushes.
Hope that hint helps.
Hint number 2, you can't save the token to your installation, only through a cloudcode method :)
Hope that helps

@432player you right, the problem is that for Android OneSignal adapter need OneSignal sdk installed.


fix the priority handling

@amaltaro, please review. If it looks OK I will add to WMAgent branch patch

It seems to be working fine. However, I think we should have a protection for IOBound jobs such that we don't oversubscribe a site with them. In other words, we should not over-submit IOBound jobs.
How about we create a variable in the init method:
self.ioboundTypes = ('LogCollect', 'Merge', 'Cleanup', 'Harvesting')
and then add a if jobType in self.ioboundTypes or ...  to this line:
https://github.com/ticoann/WMCore/blob/a1ae58d4df872c32d5e892564be47d0d2222bcd9/src/python/WMComponent/JobSubmitter/JobSubmitterPoller.py#L558
?

If you do so, also update the L340 with the var name instead of that tuple, please.

So for IOBound Jobs you don't want to put higher priority jobs submitted over the threshold?

Thanks Alan for review, I updated the code as you suggested.

I think it's safer for sites, otherwise we might have way too much of them pending/running in a site and cause storage issues. They anyways have the highest possible priority 50 million or so, so they are always the first one to get submitted.

And getting back to the lines we have had a previous discussion:
https://github.com/ticoann/WMCore/blob/87d9830479bac105a91979ea101d2ccaf0102993/src/python/WMComponent/JobSubmitter/JobSubmitterPoller.py#L570
it's oversubmitting jobs based on jobs_pending * (1 + condorFraction) when it's supposed to use slots_pending * condorFraction + max(jobs_pending, slots_pending).
Example of the current situation:
slots_pending are 500 and so is jobs_pending, 20% more will be 600 slots_pending and a max of 600 jobs_pending.
Then a higher prio workflow comes in, it will oversubmit 120 jobs (20% of 600), so 720 now.
Then another higher prio, thus 144 additional jobs and so on.
If we really want to oversubmit based on the condor overflow fraction and the original pending slots, then we need to change it. I think it would be fine to keep it as it is, but in case we hit too many different priorities, we might hit the roof with this over submission.

Hmm, that is weird. I cannot see why it is doing that. I will try to fix it. Thanks Alan

Hi Alan, feel free to fix the problem if you can spot easily. (I couldn't see). If not, do bother now. As you said it shouldn't be a big deal. We can may be fix in next release.

Alan, I was wondering you were just looking at the Processing/Production jobs. Or are some of jobs are newly added IOBound jobs (20 of them)?

test this please

Those were Production (or Processing), I didn't have any merge jobs in the system. It should be a simple change, I just didn't want to run my tests again :P

My explanation above is exactly how you implemented... that's why you couldn't find a problem, there is none :) Sorry for the noise.

Seangchan, maybe run a pylint cleanup. There are tons of lines in the report. I'm fixing the py3 compatibility in a different PR.

I will do py3 compatibility as well. Otherwise there will be conflict


Live DRM on Chrome buffers for an extended period of time on Chrome

Have you read the FAQ and checked for duplicate open issues?
Yes
What version of Shaka Player are you using?
3.0.10
Can you reproduce the issue with our latest release version?
Yes
Can you reproduce the issue with the latest code from master?
Yes
Are you using the demo app or your own custom app?
Demo App
If custom app, can you reproduce the issue using our demo app?
What browser and OS are you using?
Chrome Version 89.0.4389.114, Mac OS 10.15.7 (Can reproduce in other Mac/Chrome versions)
For embedded devices (smart TVs, etc.), what model and firmware version are you using?
What are the manifest and license server URIs?

Sent to<EMAIL_ADDRESS>What configuration are you using?  What is the output of player.getConfiguration()?

None, just using the demo App
What did you do?

Start the playback on Chrome, left it for 5-10 minutes
What did you expect to happen?
The playback happens seamlessly without buffering
What actually happened?

The stream buffers for a long time periodically, sent a video recording on the email.
This DOES NOT happen on other browsers (e.g. Firefox)

@pajong when hls Livestream video(shaka-player history video) is loaded in the demo page it plays the first 10 sec of video and then goes into buffering state for infinite time. This issue occurs in chrome, firefox, edge (all latest versions). I just wanted to confirm that is this issue and your issue same, or should I open a new issue for this.
Thank you.

@surajkumar-sk Thank you for checking the issue. Can you please check why the stream is buffering infinitely after a few seconds?

@pajong I checked the network log for knowing the cause of the error. I think that specific video(shaka-player history) is at fault here. First, the master playlist is fetched, then all the media playlists are fetched from the master playlist. It is live content so media segments should continuously be added at the end of the list of media playlists. But for that video media segments are not being added so the player tries to fetch the next media segment but the URI doesn't exist in the media playlist, the media playlist keeps updating but no new media segments get added so the video just keeps buffering.

Hello @pajong ,
Your manifest looks no longer valid. Could you please confirm that it's still available for testing?

@michellezhuogg

It should be a different issue from the 'shaka-player history' video.
I didn't understand this, like do you mean the issue is not in the video, but it's something else.

Thank you

I think that specific video(shaka-player history) is at fault here.

Looks like our live stream encoder is hung.  I'm looking into it now.

For the sake of record-keeping, the live encoder hung after encoding ~1.43 million segments, which is a runtime of ~66 days.  From timestamps in the files, it appears to have been hung since March 27 without anyone noticing (about 19 days ago).
I tried to reboot it remotely, but something went wrong, and I will have to drive to the lab and power cycle it manually.  It might stay down for another day or so until I can manage that.

it appears to have been hung since March 27 without anyone noticing (about 19 days ago)

😂😂 . The first few seconds play normally, and when the loading starts I usually leave the page because I got the files that I needed from the network log by that time. It's probably the same for anyone else who visited. I noticed it after reading this issue. 😂

@surajkumar-sk, the history live stream is back up and running after the hung machine was rebooted.
@pajong, we can't reproduce the issue with the content you sent us private.  We get back an HTTP 404 error on the manifest.  Can you please double-check that the content is still available?

Hello, @joeyparrish
It looks like the manifest url and the header value are generated dynamically. I sent a follow up email to get the updated url and header value. Please let me know if you need anything else. Thank you!

Got it.  Thanks!

The buffering appears to be because the server isn't responding quickly.  I'm seeing as much as 13 seconds TTFB (time to first byte) on some requests.  At one point in my playback session, a concurrent manifest and segment request were blocked for 13+ seconds.  Later requests were all sub-second.
Can you please look into metrics for your server/CDN to make sure it is healthy?  I don't see anything wrong with Shaka Player with this content.

Hello, @joeyparrish
Thank you so much for looking into the issue.
We just confirmed that the issue does not happen on Shaka v2.5.21, but started happening since v3.0.0 (still happening on the latest version)
Why would the stream not have any issues with the response time in Shaka v2, but have issues in v3? Since the stream plays fine in earlier versions, wouldn't this be a Shaka player issue?

What you're saying makes sense, but I honestly don't know.  I haven't spent any time debugging this issue with v2.5.
I'll put it back into the triage queue.  Whoever picks this up next should compare v2.5 with the master branch, and look to see if network response times are improved.  If all responses are faster in v2.5, we should compare to see if we're making different requests in v3.0, which might be a clue.
My instinct says that if the live edge calculations are different between v2.5 and v3.0, and the server blocks requests for segments that are not yet complete, that could explain the difference.

I am actually free these days and I also read the code for the implementation of HLS in shaka-player. I could compare the two versions and diagnose the issue and find a possible cause. @pajong you could email me the manifest and license server URIs if you don't have an issue with it.
<EMAIL_ADDRESS>

Hello, @surajkumar-sk . I have already sent the manifest to<EMAIL_ADDRESS>Do you still need me to send it to that gmail?

I actually don't work at google on shaka-player . I am a student studying video streaming technology.

@surajkumar-sk Just sent out the information to the gmail - please let me know if you have issues with playing the stream. Thank you!

@pajong I added the video manifest and license Uri and played the video in the latest shaka-player version. I didn't see any kind of lag. The Live content is playing pretty smoothly except for a few ms of buffers in between. The video below shows the streaming video.  I am using windows Chrome version 87.xx.x.
https://user-images.githubusercontent.com/71056993/115932150-368d6e00-a441-11eb-9210-107ce97ecab9.mp4
It worked properly in the current version so I didn't check it with v.2.5.x.
The problem might be a Mac thing or as @joeyparrish said, there might be a problem with the server.
I am unable to reproduce the issue.

Since the Shaka team was able to reproduce and see the issue, I will wait for someone in the Shaka team to pick up and compare with v2. Thanks for looking @surajkumar-sk

Can you test with v4.3.4? Thanks!


Error creating factory partition with static DAC in secure cert partition (CON-749)

We are looking at using the mfg_tool to generate factory partitions for ESP32c6. We are using pre-generated DAC certificates, and ran into some issues with the script. I've made the following changes and now the partitions look to be generated correctly.
We are using the following arguments:
mfg_tool.py -cn x -v 0xFFFF -p 0xFFFF --pai -c pai.pem -cd cd.der --dac-cert dac_cert.pem --dac-key dac_key.pem --dac-in-secure-cert --target esp32c6 --size 0x3000 --vendor-name x --product-name 'x' --hw-ver 1 --hw-ver-str '1' --serial-num<PHONE_NUMBER> --csv factory_extra_schema.csv --mcsv extra_values.csv

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

Thanks @stonehouse . @shubhamdp PTAL

mfg tool already support this feature，Please confirm and close it


Several issues in IE10 / IE11

The imports required for IE support are commented in in polyfills.ts. Basic Angular features do work on IE10 and IE11 (routing, counter etc.). However:

The translations (via ngx-translate) are not showing. They are initially displayed for a short while, but then either disappear or are replaced with their key text (e.g. "HOME_FEATURE_LIST_TITLE").

Similarly, the users in the Rest API page are initially displayed, but then replaced by the "Loading..." placeholder

The navbar link to the Lazy-loaded demo has no effect.

I'm having the same issue with ngx-translate. Namely, your first dot point.


Add option to return hash from all requests

The hash_response_for_requests config will configure GdsApi::Response so that it won't return OpenStruct objects, but will behave like a normal hash. This will prevent nil-errors.
Some background by @tuzz: https://trello.com/c/GHlFpkuw
Related: https://github.com/alphagov/gds-api-adapters/pull/544

There is not a 👍 big enough for this.

👍
Can we phase out the old behaviour too?

https://github.com/alphagov/content-tagger/pull/99 is using this now.


Improve tab navigation in main UI.

Related to #5024 -- currently, Tab and Shift+Tabbing through the UI sometimes focuses the user on unexpected/not visible areas, and certain elements are not accessible in the tab flow (#6234).
It would be good to figure out what the desired navigation order/priorities are.

@zulipbot label "accessibility"

Hello @zulip/server-misc members, this issue was labeled with the area: accessibility label, so you may want to check it out!


Icons: add new health and destination icons

Alaska Airlines Pull Request
Resolves: #82
Summary:
This PR adds new icons per design request.
Type of change:

[ ] New capability
[ ] Revision of an existing capability
[ ] Infrastructure change (automation, etc.)
[x] New icon content

Checklist:

[x] My update follows the CONTRIBUTING guidelines of this project
[x] I have performed a self-review of my own update

By submitting this Pull Request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Pull Requests will be evaluated by their quality of update and whether it is consistent with the goals and values of this project. Any submission is to be considered a conversation between the submitter and the maintainers of this project and may require changes to your submission.
Thank you for your submission!
-- Auro Design System Team

Missing content request back to the designer.

This PR is ready to merge when approved.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


feat: support to change what to show as display name

The goal was to display the "First and last name" as display name instead of the username. Now this parameter is configurable. We can choose any of these:

Username
Nickname
First and last name

In case any of these values is empty, we will use the username as a fallback.

Little details...if the plugin is "opened" and the user changes the Nickname e.g. it is not reflected until you reopen the plugin. Is it possible to request the actual data ad-hoc ?


Common Criteria Gap - FAU_STG_EXT.1 External Audit Trail Storage

Describe the issue:
To be eligible to be granted the Common Criteria Certification as per the certification requirement FAU_STG_EXT.1 External Audit Trail Storage  the following should be facilitated by the identity server.

The evaluator shall also make the connection to the external audit storage unavailable, perform audited events on the TOE, re-establish the connection, and observe that the external audit trail storage is synchronized with the local storage. Similar to the testing for FAU_GEN.1, this testing can be done in conjunction with the exercise of other functionality. Finally, since the requirement specifically calls for the audit records to be transmitted over the trusted channel established by FTP_ITC.1, verification of that requirement is sufficient to demonstrate this part of this one.

Current behaviour:
The current implementation uses an in-memory queue to buffer logs, resulting in the potential loss of log batches if the queue limit is reached. Furthermore, the existing design does not adequately handle remote server failures, which is inconsistent with the above mentioned standards.
Expected behaviour:
The implementation should ensure the synchronisation of the locally stored logs with the remote server logs in the event of a remote server failure and subsequent recovery

Related issues:

https://github.com/wso2/product-is/issues/16697

Update Summary - 3rd of Oct 2023
Completed flows / Current progress:

Research for a possible solution using log4j2 for the requirement. ✅
Draft implementation. ✅

Details
Findings of the research

Implement an appender for log4j2

Appender uses a queue to buffer the logs before sending them to the server.
Periodically send the logs to the server from the queue.
In case of a server failure the queue will be kept and the retry mechanism will be triggered with the defined time period.
In case of a long failure in the server the memory usage of the queue and the frequency of the logs being generated will be considered to consider storing the logs in a temporary file which will then be sent to the server when available.
The upload speed of the logs to the server has to be faster than the frequency of the logs being generated. ( This is to ensure that the queued logs in the failure period will be dequeued eventually. )
Appender Choice :
An asynchronous appender needs to be used to be not blocking. (eg: AsyncAppender )
The AsyncAppenders by default uses ArrayBlockingQueue for buffering. However this is prone to deadlocks when used in multi threaded environments.
Performance of AsyncAppenders
https://logging.apache.org/log4j/2.x/performance.html#asyncLogging
Therefore in that case the use of lock-free Async Loggers
https://logging.apache.org/log4j/2.x/manual/async.html
In case the logging rate cannot be handled by the queue log4j2.AsyncQueueFullPolicy can be used to configure to handle the filtering process for the logs to be preserved.

Improve the current implementation of SecuredHttpAppender with a file based queue.

Use a file based queue in place of the current on memory queue for the log events.
Change implementation to not drop any logs.
Improve the log publishing implementation with a fallback mechanism to deal with the remote server failures.
Implement a cleaning mechanism to remove the expired local temporary log files.

Draft implementation description.

The draft implementation[2] enhances the existing SecuredHttpAppender implementation to use a memory mapped file based queue.
Chronicle-Queue is used to implement the local file based queue.

This is a persisted low-latency messaging framework for high performance applications

No logs will be dropped.
Local server restarts does not result in loss of the log queue.
Failure to push to the remote server withheld the log entries in the local files until the log publish attempt is a success.

TODO

Finalise the discussion on the solution architecture.
Complete the implementation.

[1] https://github.com/OpenHFT/Chronicle-Queue
[2] https://github.com/wso2/carbon-commons/pull/477

Update Summary - 16th of Oct 2023
Completed flows / Current progress:

Finalise the discussion on the solution architecture. ✅
Take permission from the security team to introduce chronicle-queue dependency to the product. ✅
Analyse the disk usage and decide on how to impose limitations while adhering to certificate guidelines. ✅
Complete the implementation. 🚧

Details
Finalise the discussion on the solution architecture.

Implementation is to be done using chronicle-queue
Other options considered :

Option : Using a message broke such as Kafka.
Exclusion Reasons :
- Heavy weight
- If used the broker server has to be shipped with the product itself to be compliant with the guidelines.

Permission taken from the security team to introduce the dependency to the product.
  - A transitive dependency vulnerability was found which would not affect the runtime since it is a test dependency.

Analyse the disk usage and decide on how to impose limitations while adhering to certificate guidelines.
  - The file size of the chronicle queue file is determined by the block size and the amount of messages stored.
  - The cycle time can be defined in order to create new files for the queue.
  - Limiting the disk usage :
        - Files are to be deleted as soon as it is consumed by the publisher.
        - The maximum number of messages that will be stored in the queue in case of a remote server failure is defined through a configuration.
        - When considering the limit the file usage should be considered.
        - The average disk usage is 1MB for 1000 messages.

Complete the implementation.

Queue implementation : Completed using chronicle queue
Cleanup process for used queue data files :
- A cleanup process implemented to delete the used data files when the dequeue pointer moves to a new file.
- This uses a meta data file which is used to persist cleaner meta data through server restarts.

TODO

Test the implementation. 🚧
Finalise error handling mechanism. 🚧
Finalise the decision on where to store temporary data files. 🚧
Finalise the decision on how the configurations are added for the disk usages (eg: deployment.toml configuration). 🚧

Update Summary - 31st of Oct 2023
Update

Implementation using chronicle queue was completed
A major concern was raised due to chronicle queue sending analytics data to their google analytics servers.
This was discussed and decided that it could possibly cause a security or privacy concern.
The option to disable the analytics data sharing through java config was considered and dismissed since the library offers no guarantee of allowing deactivation of this feature in the future updates.
As an alternative approach a custom implementation of an memory mapped file queue was decided to be implemented.

Completed flows / Current progress:

Implementation of the custom file queue 🚧

Todo

Test the custom file queue performance.

Update Summary - 31st of Oct 2023
Update

Implementation is complete ✅
Testing complete ✅

Implemented design
High level architecture

Persistent Queue(PQ) is implemented as a queue of queues.
The high level PQ is a queue of sub-level queues(QueueBlocks).
QueueBlocks(QB) is a queue of messages being stored in serialized form.

Disk and Memory Management
Memory Usage

Only the appender block and the tailer block are maintained on memory on runtime.
The new appender and tailer blocks are loaded from disk as being written to or being consumed.
The list of ids of the queue blocks being used are maintained on memory.
The memory usage may differ according to the QB size(configurable).

Disk Usage

The meta data related to the PQ is stored in a json file in the root of the provided directory.
The QB files are stored inside the 'blocks' sub-directory.
The QB files are created and deleted on demand. Therefore the only stored QB files are the ones that are not yet consumed.
Average disk usage : 1MB per 1000 log entries.

QueueBlock File Structure

Implemented using memory mapped files.
Two sections of the file include the meta data block and the messages blocks.
The meta data block includes the first 8 bytes of the file.
Rest of the file is used for message blocks where serialized objects are stored.

Thread Safety
Read operations are allowed for multiple threads.
Write operations are synchronized.
Performance
Performance test done using audit logs generated by Asgardeo.
Enqueue Rate: 13500+ operations per second
Dequeue Rate: 8000+ operations per second
Testing
The implementation is tested for the following scenarios
Start up

[x] 1. When activated through console, the directories and files are created as expected and logs start to get published.
[x] 2. On server startup without the directories already present, the directories and files are created and logs are getting published as expected.

General Case

[x] 3. On remote server failure, logs  get queued to the log files.
[x] 4. On remote server start up, logs are published to the remote server.
[x] 5. A new block is created once the current block is completely used.
[x] 6. Once log entries are dequeued from the queue the consumed files are deleted as consumed.
[x] 7. At least one queue block file is always maintained even when the queue is empty.

Configurations

[x] 8. Values are properly read through the log4j2.properties file.
[x] 9. If the configured batch size is less than the minimum value,  the value should be set to the minimum value. A warning message should be printed.
[x] 13. If the configured max disk usage size is less than the minimum value,  the value should be set to the minimum value. A warning message should be printed.

Event logs

[x] 10. A warning should be printed in the following instances.

[x] Once the remote server is down.
[x] Once the disk usage reaches 50%.
[x] Once the disk usage reaches 90%.
[x] Once the full disk space allocated is used.
[x] Periodic warning about logs being lost each one minute.

[x] 11. An info message printed when remote server is reconnected.
[x] 12. After a restart the correct level of warning messages are printed in case of a failure again.

Closing as completed.


Table - rows are visible behind stickyEnd in RTL in Chrome

Bug, feature request, or proposal:
Bug
What is the expected behavior?
The same behavior in LTR and RTL
What is the current behavior?
The cell data show up behind the end side of stickyEnd

What are the steps to reproduce?
https://stackblitz.com/edit/angular-gmgfau
What is the use-case or motivation for changing an existing behavior?
Not critical in my opinion, but distracting, and should work as in LTR
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Material 6.4.7
Chrome Version 69.0.3497.100
Is there anything else we should know?

@Eddygn were you able to solve this problem?


ITK Source Forge project is a little out of date.

Description
The information on this site is a bit out of date.  A few minutes putting in updated content to redirect to GitHub/discourse would be helpful:
https://sourceforge.net/projects/itk/support
Expected information
Redirect to new pages.
Actual information
Old information is there.

There are some great reviews on SourceForge :-).
I could not find out how to update https://sourceforge.net/projects/itk/support but I did find an option to indicate the project has moved. Now there is a big blue button that links to GitHub:

@thewtex can you add me to ITK on SourceForge?

@dzenanz added. There is nothing left on SourceForge for ITK, though. Long Live GitHub!


Error 503

I'm running bittrex.websockets.subscribe.example without touching anything and I'm getting:
Error Message:  Negotiate Unknown
Exception:  undefined
Error Data:  503

Any idea on what's going on?
Thanks!

Is this a consistent issue or intermittent? The issue is Bittrex has changed to using Cloudflare with strict browser checking - we have attempted to get around it using cloudscraper, which is working for everyone so far but it seems you're still being blocked, or at least that attempt was. The fix is still working for me, consistently, so I'm not sure why it wouldn't work for you specifically.

It isn't working for me also as I stated on the other repo.
The only way I found to work is to comment out the cloudscrapper thing and put the cf and UA directly to signalr file.

@glaucoheitor can you be more specific about what you actually do to make it work for you? Examples will help me greatly - it's very hard for me to fix a problem I can't replicate.

Sure, sorry for not being complete. English isn't my main language so I may struggle sometimes.
I edit the signalR.js file inside clientInterface function.
I add cookie and UA to "headers" object manually and then the code works) after I comment out the cloudscrapper thing.
I tried to put a console.log line after line 147 in your code to make sure it is entering cloudscrape function but when I run my code it doesn't show it.
Thank you mate

I see, thanks for that @glaucoheitor. So that would actually be a different issue than what @bernatfortet is experiencing. The only reason I can think of for you not getting a response from the cloudscraper package is that Cloudflare is asking your bot to complete a captcha test, or your bots IP is banned (in the event your bot is running on a different IP to the one you use yourself). Note from the cloudscraper package:
In general, CloudFlare has 4 types of common anti-bot pages:
    Simple html+javascript page with challenge
    Page which redirects to original site
    Page with recaptcha
    Page with error ( your ip was banned, etc)

**Unfortunatelly there is no solution, if website is protected by captcha.**

So, with that in-mind, perhaps I will make the cloudscraper method optional and provide you the method to attach the US and CF cookie to the settings manually. You should not need to modify signalR directly because it has the option to provide additional headers, which is what we are doing.
I'll make the options available later today and then you can test it and let me know if it suits your needs.

@bernatfortet would you mind adding a console.log to line 148 (inside cloudscraper.get) and checking to see if it gets hit? That would help me determine if you're likely getting the captcha response from Cloudflare too.

I thought that maybe would be captcha or banning issue, but when I run clouscrape all by it self I can get the info. That's the way I get the info to manually add to signalR.

erm, well that makes no sense. So, you run cloudscraper.get('https://bittrex.com/', function(error, response, body) { .. }); in a different script and it works for you?

I run this code and it reply with UA and cookie. I get this data and put manually on signalR
var cloudscraper = require('cloudscraper');
cloudscraper.get('https://bittrex.com/', function(error, response, body) {
    if (error) {
        console.log(error);
    } else {
        var headers = response.socket._httpMessage._header;
        var regexp_user_agent = /User-Agent: (.*?)\r\n/;
        var regexp_cf_clearance = /(cf_clearance=.*?)\r\n/;

        var user_agent = headers.match(regexp_user_agent)[1];
        var cf_clearance = headers.match(regexp_cf_clearance)[1];

        console.log(user_agent, cf_clearance);
    }
});

Well that's just odd. If you put a console.log on line 146 (before cloudscraper) in this package does that get hit? Checking to see if it's even making it to the cloudscraper request at all.

Nope. I doesn't.
Let me add here the code I am using. It's the same I was using from the other repo.
//Bittrex ticker
var websocketsclient = bittrex.websockets.client();

websocketsclient = bittrex.websockets.subscribe(['USDT-BTC'], function(data) {
	if (data.M === 'updateExchangeState') {
		data.A.forEach(function(data_for) {
		//my code
		});
	}
});

websocketsclient.serviceHandlers.disconnected = (websocket) => {
	console.log("bittrex disconnected, reconnecting immediately");
	setImmediate(() => {
		websocketsclient.start();
	});
}

OK, thanks, so now we know the issue isn't cloudscraper - for you at least. Can you tell me what version of node you're using?
Also note, that code in general wont work anymore because connecting to websockets is now asynchronous with the new requirements - please see the new examples in the examples/ folder and new documentation in the README.md.

I see. but I think the way my code is written it should work with the new requirements, right?
I am using version  node: '8.0.0',

@glaucoheitor I just pushed a fix for a small issue which could have been causing the error in the code you provided -- client() expected a callback, but this is now optional. Additionally, can you please run nodejs examples/bittrex.websockets.subscribe.example.js and see if that works for you.

I will do some further testing and make the cloudscraper optional anyway and I'll see if I can make changes that make it work for you

Example Subscribe works but my code no yet. I am pretty sure now it is cause of my own code. But I don't have that much knowledge in node to find it hahaha
Thank you very much for all the help!

@dparlevliet thanks for the hints. After you mentioning cloudscraper I saw that I didn't have the package.
I realized that npm install node.bittrex.api still installs 0.6.6 from n0mad01.
I'll try the "advanced" approach, but it would be awesome if npm's repository could be updated

@bernatfortet I see, thanks for letting me know. Yeah, unfortunately the previous owner hasn't given me access to update the npm repository yet. If he doesn't organise it soon then I will have to rename the package, because that's the only way I can get it on npmjs, but I'm hoping to avoid having to do that.

Hi guys, I also get the same error:
Error Message:  Negotiate Unknown
Exception:  undefined
Error Data:  503

@smhty you will need to manually download and install this package

You mean the "cloudscraper" package?

@dparlevliet i've sent PR to fix the url in the reamde instructions to reflect your repo
https://github.com/dparlevliet/node.bittrex.api/pull/4/files


docs: Add known issue for netkit endpoint route issues

Add known issue documenting problems using endpoint routes with netkit (#35060, #34042, #33875).

Here's my counterproposal: We have a netkit label, and issues with the netkit implementation get tagged with them

I have no strong objection to this, but I worry a bit that issues in that list may get closed after a fix is in place somewhere (e.g. new feature added to the kernel) making users dig for information more on issues they hit. My feeling is that it's probably worth pointing users directly to issues that require an update to their kernel or Cilium version to resolve. We could later add a "fixed in version" note here as well. WDYT?

I don't think the docs are a great way to track known issues unless those known issues are inherent in the design or expected to be long-term problems. We already struggle to maintain the large amount of docs that we have. We have an issue tracker, and we can even use a link that refers to closed issues as well. If it helps, we could clone issues for individual branches/versions to help track the status of those fixes as they flow through to releases.
I empathize with the goal to minimize the burden on users to find out the stability status, but we're also talking about a cutting edge feature. If there's this many issues with the feature, we should be clearly setting expectations with the users in general terms by marking it as beta.

My feeling is that it's probably worth pointing users directly to issues that require an update to their kernel or Cilium version to resolve.

This I do agree with, if there are specific version minimums for the feature to work correctly then that makes sense to describe in the docs.

Alright, sounds fine to me then. I will link to the issue tracker instead then.

marking it as beta

Should we go ahead and make this explicit in the docs then?

This I do agree with, if there are specific kernel version minimums for the feature to work correctly then that makes sense to describe in the docs.

It looks like we already specify a minimum kernel version here, but this may need updating later on.

The beta thing makes sense to me, seems like an oversight. /cc @borkmann if you had a different perspective on it.

The beta thing makes sense to me, seems like an oversight. /cc @borkmann if you had a different perspective on it.

yeah that's fine, maybe we can work towards fixing all known issues until 1.17 is out. :) p.s. the netkit patch will go out this week as start

if there are specific kernel version minimums for the feature to work correctly

Somewhat unrelated to this PR, but I'm generally curious if Cilium drives backports of kernel patches to various distros. Is ensuring fixes get backported to distro-specific kernels generally left up to end users and distros themselves or does Cilium make an effort to request backports? For RHEL 8 and 9 do we expect new features such as netkit to make it into their kernels given that the kernel versions are 4.18 and 5.10 respectively? It seems like RHEL in particular has backported a lot of features into their kernels that aren't necessarily reflected by the version number.

if there are specific kernel version minimums for the feature to work correctly

Somewhat unrelated to this PR, but I'm generally curious if Cilium drives backports of kernel patches to various distros. Is ensuring fixes get backported to distro-specific kernels generally left up to end users and distros themselves or does Cilium make an effort to request backports? For RHEL 8 and 9 do we expect new features such as netkit to make it into their kernels given that the kernel versions are 4.18 and 5.10 respectively? It seems like RHEL in particular has backported a lot of features into their kernels that aren't necessarily reflected by the version number.

In general it is up to the community. For upstream kernel fixes, we ensure that a proper Fixes tag is present such that these patches automatically get picked up by the kernel stable team for affected kernels. Occasionally, we'll also ask stable to pick up kernel patches when something potentially affects Cilium, but we don't really have much visibility in what downstream distros pull from the upstream stable. For the case of netkit, I've opened a launchpad ticket some time ago to make sure all fixes land in 24.04 LTS where I've been told they regularly pull in everything which comes via stable. For RHEL, their customers typically drive the asks for feature backports, it's more fuzzy there. For Amazon Linux as another example, I've seen them actively backporting some of the eBPF relevant patches to upstream stable where they eventually pull from it. tl;dr: It's certainly organic and community driven, and its best to send backports to kernel stable when needed and not there yet so that distros eventually pull these in.

Alright, I went ahead and added a warning that calls this out of as a beta feature and links to the list of netkit-related issues.

/test


Update README.md

"Modified Defaults" "minimum QM level" is no longer 0 by default.

It is still 0. https://github.com/gianni-rosato/svt-av1-psy/blob/e9b37c7b8f579b7501976e8d13a739256a988579/Source/Lib/Globals/enc_settings.c#L1076
Chroma min QM is 8, which is correctly documented. Closing.