Event Accepted before event progress with "Ringing"

Hello,
I was using sip.js 0.6.3 with Asterisk 13.5 and had no issues. Since the Asterisk 13.6 version, the progress event with the reason_phrase "Ringing" is not triggered anymore. And I receive an accepted event before the call is answered. I tried the sip.js 0.7.2 but didn't fix my issue.
Did I miss something in the release notes or this is an actual issue?
Regards.

Hi,
A progress event will be sent any time a 1xx level response is received (except for a 100 Trying).  Can you confirm that your Asterisk server is still sending a 180 Ringing before it sends a 200 OK?

Yes my Asterisk server send the 180 Ringing when I enable the sip debug.

Can you ensure that you have traceSip: true set on your SIP.js UA, and post your JavaScript logs here in a gist?

You can find the log there: https://gist.github.com/fwi-odoo/3cd4ccc58c36d46e182d

I do not see a 180 Ringing sent from Asterisk in your sip trace. This is what you should see if Asterisk is sending a 180.
Mon Nov 23 2015 09:17:34 GMT-0500 (EST) | sip.transport | received WebSocket text message:

SIP/2.0 180 Ringing
Via: SIP/2.0/WSS u85335spskmp.invalid;branch=z9hG4bK3602066
Record-Route: <sip:some_ip_addresss;lr;ftag=pbsdv6q493;did=df8.e38056e4>
Record-Route: <sip:some_ip_addresss;lr;ftag=pbsdv6q493;did=df8.c7da2d07>
Record-Route: <sip:some_ip_addresss5060;transport=udp;lr;ovid=28ea64c3>
Record-Route: <sip:e1618945b4@some_ip_addresss:443;transport=wss;lr;ovid=28ea64c3>
From: "test" <sip:test@test.onsip.com>;tag=pbsdv6q493
To: <sip:test1@test.onsip.com>;tag=3aKy3F49SaKKr
Call-ID: mlpuefju1stfjhhgs5l5
CSeq: 4434 INVITE
Contact: <sip:contact@some_ip_addresss;gr>
Accept: application/sdp
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, PRACK, NOTIFY
Supported: precondition, 100rel, timer, path, replaces
Content-Length: 0

In my Asterisk, I can see:
<--- SIP read from UDP:<IP_ADDRESS>:37665 --->
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP <IP_ADDRESS>:5060;rport=5060;received=<IP_ADDRESS>;branch=z9hG4bK5eb7e504
Call-ID: 4c4a5cd7651c190e51fd2a2449208b0b@<IP_ADDRESS>:5060
From: sip:1060@<IP_ADDRESS>;tag=as4ba4329b
To: sip:1061@<IP_ADDRESS>;tag=1de5f415-7489-48bc-af71-9814f28a61b9
CSeq: 102 INVITE
Allow: PRACK, SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, OPTIONS, MESSAGE, PUBLISH
Contact: sip:1061@<IP_ADDRESS>:5062
Content-Length: 0

It looks like that 180 is coming from the callee (1061 - VoIP Phone). Asterisk is receiving it, but it is not sending a 180 to caller (1060 - SIP.js).


Show failed parameter node lookups

When attempting to match a JSON path for initial setup, it would be
helpful to know where the path failed. This change logs the failed
parameter node. For example, if you are trying to match path "a.b.d.e",
but you failed to include the "c" node, webhook will log an error
"parameter node not found: d.e" to assist in troubleshooting.

I crafted this PR rather quickly, so it may need some fine tuning.  I was setting up a new webhook instance today that was validating several values, and I couldn't figure out why it wasn't passing.  Turned out to be a missing node in one of the payload paths that I was overlooking.  This PR helped me find the oversight.

@adnanh,
Looking at this now, I think I put too much change into a single commit.  Would it help to break this PR into smaller commits?

@moorereason Nah, looks good to me!


Exclude unwanted attributes of user for user listing

Describe the issue:

Open network tab
Go to users section
/scim2/Users API call is invoked with domain param and pagination params
Therefore, user's assigned groups, user asisgned roles also returned. Those details are not required to populate the user listing view. Returning all users' assigned groups and roles is also resource intensive.

https://github.com/wso2/product-is/assets/25483865/c10220af-8fc7-43dc-9f8f-0c1d2a22fda2
Exclude roles and groups when listing users
eg: /scim2/Users?domain=PRIMARY&count=10&excludedAttributes=roles,groups

Verified in the latest build.


sum(rowsize) in apply_ragged

Hi,
Thanks for this very useful library.
I am using version 0.28.0 of clouddrift, and version 2023.12.0 of xarray. Version 3.9.6 of Python on macOS Sonoma 12.4.
I wanted to apply a function over all the trajectories from the gdp1h dataset and I found a strong bottleneck in the apply_ragged function. The sanitary check for rowsize calls sum(rowsize). I understand that it allows to handle rowsize of type list, but if rowsize is a xr.DataArray (or a np.ndarray) it is considerably slower than calling rowsize.sum(). On my MacBook, gdp1h.rowsize.sum() takes less than a second, while sum(gdp1h.rowsize) does not return after 10 minutes.
One can reproduce this behavior with:
import clouddrift as cd

gdp1h = cd.datasets.gdp1h()
sum(gdp1h.rowsize)  # takes forever
gdp1h.rowsize.sum()  # takes less than a second

Interestingly, calling gdp1h.rowsize.sum() before sum(gdp1h.rowsize) allows to get a result in a few seconds (with my laptop). Therefore, an easy workaround is to call gdp1h.rowsize.sum() before calling apply_ragged with gdp1h.rowsize as argument.
Fixing it should be easy by casting rowsize to a np.ndarray if it is a list (or a tuple):
    if type(rowsize) in [list, tuple]:  # or if type(rowsize) == list:
        rowsize = np.array(rowsize)

And then replacing
    for arr in arrays:
        if not sum(rowsize) == arr.shape[axis]:

with:
    for arr in arrays:
        if not rowsize.sum() == arr.shape[axis]:

If you guys agree on the fix, I can fork, fix it in a branch, and open a pull request.
Vadim

Yes, it looks like I can reproduce the behavior you describe. Thank you for identifying this issue and be willing to contribute. Please go ahead and submit a pull request!

Will do in the afternoon. Using np.sum(rowsize) is actually even simpler than rowsize.sum() as it does not required explicit casting beforehand.

Thanks, Vadim. I can't seem to reproduce this, albeit I'm not on a Mac but Ubuntu.
In [1]: from clouddrift.datasets import gdp1h

In [2]: ds = gdp1h()

In [3]: sum(ds.rowsize)  # initial download of remote data
Out[3]:
<xarray.DataArray 'rowsize' ()>
array(197214787)

In [4]: %timeit sum(ds.rowsize)
61.6 µs ± 137 ns per loop (mean ± std. dev. of 7 runs, 10,000 loops each)

In [5]: %timeit np.sum(ds.rowsize)
61.2 µs ± 125 ns per loop (mean ± std. dev. of 7 runs, 10,000 loops each)

In [6]: %timeit ds.rowsize.sum()
57.5 µs ± 247 ns per loop (mean ± std. dev. of 7 runs, 10,000 loops each)

In the reproducer that you posted:
import clouddrift as cd

gdp1h = cd.datasets.gdp1h()
sum(gdp1h.rowsize)  # takes forever
gdp1h.rowsize.sum()  # takes less than a second

the line sum(gdp1h.rowsize)  # takes forever will spend time downloading remote data through the network, whereas the line gdp1h.rowsize.sum() will simply run a sum in local data.
Can you please run the test with the snippet that first downloads the data and then times the two functions on local data?
Either way, it's probably harmless to apply your PR to replace sum with np.sum since np.sum appears to be as efficient on my end, but I'd like us to first understand whether this is a real issue on macOS, or a false positive.

Hi Milan,
The thing is that sum(gdp1h.rowsize) (with my system versions) litteraly takes more than 10 minutes to complete if the data has not been downloaded first. So, when running your snippet, the third call hangs.
To summarize, here are the results of the two snippets versions:
In   [1]: from clouddrift.datasets import gdp1h
       ...: import numpy as np

In   [2]: ds = gdp1h()

In   [3]: sum(ds.rowsize)  # hangs for minutes (at least)

In   [1]: from clouddrift.datasets import gdp1h
       ...: import numpy as np

In   [2]: ds = gdp1h()

In   [3]: np.sum(ds.rowsize)  # less than a second
Out[3]:
<xarray.DataArray 'rowsize' ()>
array(197214787)

In   [4]: %timeit sum(ds.rowsize)
2.1 s ± 17 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

In   [5]: %timeit np.sum(ds.rowsize)
62.9 µs ± 1.01 µs per loop (mean ± std. dev. of 7 runs, 10,000 loops each)

In   [6]: %timeit ds.rowsize.sum()
60.5 µs ± 87 ns per loop (mean ± std. dev. of 7 runs, 10,000 loops each)

OK, thanks for confirming that. I can see that your In [4] cell is unreasonably slow. I'll mark your PR as good to go forward.


Add root dependencies

Added root dependencies so a npm install in the root directory will install all packages needed to run truffle compile

@Osamah - just saw this! thank you for adding in these updates. approved and will merge! ✅


Pax.openDrawer is not a function

I just follow the instructions  but getting error
Pax.openDrawer is not a function

Could you please provide the source code on how you used this function ?
I'm currently using it on a project this way and it works fine.
const handleOpenDrawer = async () => {
    await Pax.openDrawer();
}

<TouchableOpacity style={styles.btnConfirmOpenDrawer} onPress={handleOpenDrawer}>
              <Text style={styles.btnConfirmOpenDrawerText}>Open</Text>
</TouchableOpacity>


✨ Add headers to result object to support results from bulk export

The when GETting FHIR Bulk export, the status and final output of the asynchronous call is returned by way 'Content-Location' in the response header. This provides the necessary headers under the key, "response_headers", in the result object that is returned.

Was the absence of the trailing comma causing the linter to fail it?

Yeah. No worries. Fixed now.

Thanks!


[GLUTEN-7514][VL] Reorganize Dockerfiles and document how to build gluten in docker

What changes were proposed in this pull request?

Place some Dockerfiles under dev/docker.
Remove unnecessary docs like docker_centos7.md with some outdated content. User can just refer to velox_weekly.yml to install required tools for centos-7/8/9 and ubuntu-20.04/22.04.
Add a document about how to build gluten in docker.

Related discussion: https://github.com/apache/incubator-gluten/pull/7511#issuecomment-2409722535
Fix #7514

@zhztheplayer, do you have any comment?

@zhztheplayer, do you have any comment?

Direction of the change will look helpful to me. And I suggest to have the makefile tested locally before landing, as you can see all the images are using the same tag and they might override each other when building then all. I doubt we didn't test the file well before.

@zhztheplayer, just fixed Makefile and did some local tests. Could you take a look again?


Write readme with usage

It should at minimum have following sections:

[x]  Description what the tool does
[x]  Installation
[x]  Usage
[x]  Contribute
[x]  License
[ ]  Fix the description to correctly explain intended use

This is a good example https://github.com/rsksmart/rif-storage-js
Refs rsksmart/rif-communications-node#4

fixed in https://github.com/rsksmart/rif-communications-js/commit/484cbe4f364aaf3a04b8aadfdeefab3345f6abde


fix: unable to have more than one fargate profile

PR o'clock
Description
Resolves issue #1245
local.fargate_profiles_expanded is always empty when local.create_eks is false so the ternary operator here can be omitted.
local.create_eks is defined as var.create_eks && length(var.fargate_profiles) > 0
local.fargate_profiles_expanded is defined as { for k, v in var.fargate_profiles : k => merge(     v,     { tags = merge(var.tags, lookup(v, "tags", {})) },   ) if var.create_eks }
If var.create_eks is false, then local.fargate_profiles_expanded will have all entries filtered out by the conditional in the for expression.
If var.fargate_profiles is length 0, then local.fargate_profiles_expanded will have no entries to iterate over in the for expression.
Checklist

[x] Add semantics prefix to your PR or Commits (at least one of your commit groups)
[x] README.md has been updated after any changes to variables and outputs. See https://github.com/terraform-aws-modules/terraform-aws-eks/#doc-generation

local.fargate_profiles_expanded:
https://github.com/terraform-aws-modules/terraform-aws-eks/blob/85ca4ca93d519fb4e2799c510a3323ef4116d7d7/modules/fargate/locals.tf#L6-L9

Fixed in #1583 (9885ac0)

v17.19.0 has been just released with this fix.


Live Server auto refresh didn't work on WSL2

Live server is not auto refreshing
I am still learning basic web development using html, css, and javascript. So the code i run is just the basic code (like just using basic html and css). But this Live Server (Ritwick Dey) is the famous one, 2 month ago the auto refresh still works when i using remote WSL2. But for 2 month i am using live preview by microsoft, when i am touched with Live Server (Ritwick Dey) for other needs, the auto start won't work. I've searching on google, but still not work. But i found other method to use Live Server (Five Server), and the auto refresh work on that live server (but can't catch css update). So temporary for now i am using live preview (microsoft) with chrome or live server (five server).
example html and css that i run
file name : css-fancy-button-effect.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <link rel="stylesheet" href="css-fancy-button-effect.css">
    <title>Document</title>
</head>
<body>
    <button>Hover Me !</button>
</body>
</html>

file name : css-fancy-button-effect.css
body{
    font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100vh;
    background-color: #151b29;

}

button{
    background: none;
    color: #ffa260;
    border: 2px solid;
    padding: 1em 2em;
    font-size: 1em;
    transition: all 0.2s;
}
button:hover{
    border-color: #f1ff5c;
    color: #ffffff;
    box-shadow: 0 0.5em 0.5em -0.4em #f1ff5c;
    transform: translateY(-0.25em);
    cursor: pointer;
}

Current behavior

This live server cannot auto refresh when using remote WSL2 , when i switch to windows it is perfectly fine.
I am also already try another same tools :

Live server (Five server) : it is work and the auto refresh works too when using remote WSL2 but the cannot update if i make change in css file
Live preview by Microsoft : it is work (html and css) and the auto refresh works too when using remote WSL2 even i am using external browser, in this case i am using chrome (by default live preview using built in browser in vscode).

Expected behavior

This live server should be work even on WSL2 like other.

Environment
Browser:

- [ ] Chrome (desktop) Version 98.0.4758.102 (Official Build) (64-bit)
- [ ] Firefox version XX
- [ ] Safari (desktop) version XX
- [ ] IE version XX
- [ ] Edge version XX

For Tooling issues:

- Live Server: v5.7.4
- Platform:  Windows 10 Home Single Language Version 202H
- Visual Studio Code: 1.64.2
- Ubuntu 20.04 (WSL2)

Others

Ah i fixed it, it is just the directory haven't specific yet , example :
i have the code here : ~/project-1/section-1/index.html
if i opened here in vscode from here (code .) : ~/project-1  , it will not auto refresh
so i should move to more specific : ~/project-1/section-1

Ah i fixed it, it is just the directory haven't specific yet , example : i have the code here : ~/project-1/section-1/index.html if i opened here in vscode from here (code .) : ~/project-1 , it will not auto refresh so i should move to more specific : ~/project-1/section-1

Hi...I'm facing the same issue....I'm new to coding and don't really understand how you did fix it. Could you please be more specific? Thank you very much.


Investigate impact of using hypermedia rather than strict API service specifications

The current Libero API spec has a concept of services (https://docs.google.com/document/d/1JhVpW8dxAuJqnk2YsQa76yxdIV_BlOd1QIi02fIu9mo/edit#heading=h.ule1npii5d5y) that is quite rigid (this is based on the structure of the current eLife API).
Linked data (JSON-LD) was investigated and rejected for its complexity, but the basics of hypermedia might still be beneficial in terms of flexibility and longevity.

Created https://github.com/elifesciences/libero-html-hypermedia-experiment. Needs more thought, but initial feeling is that, despite some promising features, this would be a step too far to actually adopt.

Other option I want to look at is Hydra. I did investigate JSON-LD early in the process, but that was more in regards to representing everything that way (and the document parts really don't work).

Hydra has turned out to be quite frustrating. It appears to be great (and the right answer), but the documentation and tooling is pretty much non-existant. As far as I can tell, it's not used that much either (probably for those reasons).
JSON-LD is sound (as is Schema.org). Might be able to use that though; might mean custom hypermedia (or not at all).

First point: is the ship for HTML 5 APIs sailed? I've worked with Link headers some time in the past, but never encountered a production API based on HTML responses.
I've seen recent efforts in this direction going for:

JSON:API though HTTP/2 may make some parts of it obsolete
more on the bleeding edge JSON Hyperschema, trying to extend JSON Schema with links.

Common example of where hypermedia shines:

complex state machines on the server side: we have flags enabling/disabling parts of a document but I can't think of many actions that are available, given it's a read-heavy API?
multiple clients not wanting to replicate logic: but we are only planning one client being in use over the API at a time in any specific distribution of Libero?
related to the previous one: clients with needs for backward compatibility and public API evolution. Possibly of interest for backward compatibility, less for deployed clients e.g. a smartphone application that can't be modified and need to remain compatible.

is the ship for HTML 5 APIs sailed?

No. I quite like it, given it's a very well-known and stable technology (and can still make use of Schema.org vocabularies through microdata/RDFa Lite). Only real obvious problem is the lack of other HTTP methods in forms (eg no native DELETE), but a _method input is pretty standard.

I've seen recent efforts in this direction going for:

JSON:API though HTTP/2 may make some parts of it obsolete
more on the bleeding edge JSON Hyperschema, trying to extend JSON Schema with links.

Common example of where hypermedia shines:

complex state machines on the server side: we have flags enabling/disabling parts of a document but I can't think of many actions that are available, given it's a read-heavy API?

Mostly CRUD, but articles may have a bit more state (approval, publication).

multiple clients not wanting to replicate logic: but we are only planning one client being in use over the API at a time in any specific distribution of Libero?

Multiple services reading it, so definitely multiple clients.
We have been working on the idea that the API would normally be internal rather than public, but having a public API would be a good selling point. (Especially if it uses hypermedia/linked data) /cc @BlueReZZ

related to the previous one: clients with needs for backward compatibility and public API evolution. Possibly of interest for backward compatibility, less for deployed clients e.g. a smartphone application that can't be modified and need to remain compatible.

Easier to do when you have control of the clients, but change does need to be controlled still (even if the window between the API changing and the client being updated is small).

Multiple services reading it, so definitely multiple clients.

Yes, I was probably thinking in terms of backends (plenty) vs. more disparate, external stuff like data pipelines/warehouses, smartphone applications, etc.

Found that the in-GMail actions for emails are done through a actionHandler property on Schema.org actions. However, this isn't official. Searching for it suggests it was discussed when actions were originally proposed, but then disappeared. Will ask about it.
This might replace one of the main cases for using Hydra, and looks like it could be mapped to HTML forms. But might also be too limiting, will have an investigation.

Added a new branch (https://github.com/elifesciences/libero-html-hypermedia-experiment/tree/rdfa) using RDFa, Schema.org and Gmail's action handler syntax. Works quite nicely, don't need to know about the HTML at all. Bit concerned about the quality of the PHP library though.

Mind’s wondering a bit: wonder if we should actually be converting JATS or whatever to Schema.org/HTML. Could be done by a content store or a separate service. Means it’s easier to consume by Search, Browser or whatever, but can still be extended when needed.
Not entirely sure what body content would look like, there are vocabularies for it, but that’s a little crazy. Probably purely HTML (but has to be some convention on the things that HTML doesn’t natively cover). Makes things like IIIF pretty slick though since that’s already linked data...

While I go through the code, pointing out there are several layers to this:

an XML API using multiple namespaces and custom schemas vs. an hypermedia API linking together various resources
inside the second scenario, the possible formats for an hypermedia API from HAL (serialized in XML or JSON) to HTML

@thewilkybarkid I pulled down your hypermedia experiment, using HTML is an interesting idea, although from an API consumer standpoint, implementing an HTML to JSON-like structure and then back to HTML (for a browser), could be quite challenging and may not scale well.
If I understand correctly, this format for hypermedia is as you say @giorgiosironi for linking together various resources in a standard way so multiple services returning responses can be understood uniformly, allowing clients to implement individual features of a response, opposed to implementing each response individually, with the idea being after a certain point clients will understand completely new responses without having to re-implement.
Leaning on something like Schema.org or other similar vocabulary for linked data makes sense, with well defined terms to build up the semantics of the API.
Have you considered straight up RDF, pulling in Schema.org and building up a schema. This would allow for both an XML API but also would not be closing the door on JSON-LD, which could be still implemented as a serialisation. Could even use some terms from Hydra vocab, but keep a custom, more rigid subset to begin with.
I understand that there might be complex use-cases, but I think HTML will run into similar problems. There's no conditionality in HTML, so you could not have a form where either one field can be populated or the other. It also doesn't have inherent linking. So you can't assign an input type to be a document that implements X schema (at least I don't think so with RDFa), and you may end up with more <meta /> tags than semantic HTML.
Also, if you did use RDF as the base, you could quite easily build new serialisations (RDFa, Hyperschema, JSON-LD, GraphQL/Relay) based on the underlying triples.

There appears to be many options. I always find to help make a decision it's useful to further define the problem.
What are the issues with the current API spec? What makes it rigid? (I realise these might be obvious but collecting a list of issues might prove beneficial or provide a specification when choosing a replacement).

We've agreed that this will become an RFC, hopefully reasonably soon.
Ignoring possible formats for now, just thinking about hypermedia generally (ideally combined with using existing ontologies/vocabularies).
Main problems that I can currently see:

A lot of the specs have to mostly be SHOULD or MAY (to allow for different implementations, eg a read-only version). This is hard to write reusable clients etc as there's no way to know what's possible without configuration.
Most of the expected API is pretty straightforward (basic CRUD), but it seems that some areas need something more than what eLife had (eg an approval/publication workflow). Again this means having to use configuration, and is complicated to extend.
Actions (eg publish) are currently due to just be a PUT (maybe PATCH if supported) that updates the item.
It's XML focused, so won't support blog posts in Markdown etc.
Not being able to have a canonical representation of documents and their metadata complicated matters downstream (eg Browser, Search having to understand JATS as well as other possibly other formats).
A lot of existing specs are used, but there are still areas where new things are having to be invented (eg content API spec, XML schemas).

This is an ugly (probably incomplete, possible wrong) braindump, but tried to imagine how the article creation and asset handling flow that's currently being developed would work (through the eyes of services interacting with the API), based on Schema.org types (which would be subclasses, ignoring for now), without thinking of the actual hypermedia format (think this could work natively with Hydra and HTML?).

JATS Ingestor goes to the EntryPoint.
JATS Ingestor finds the FindAction for articles (ScholarlyArticle).
JATS Ingestor performs the FindAction with no result.
JATS Ingestor finds the CreateAction for a ScholarlyArticle.
JATS Ingestor performs the CreateAction (which contains little information, maybe even just a title?)
JATS Ingestor finds the CreateAction for a ImageObject (or some other media type).
JATS Ingestor performs the CreateAction (which contains some information and the original format, eg TIFF, as an encoding) for each asset.

Image Converter follows the ImageObject link (present in the event) and finds current format.
Image Converter downloads the current format.
Image Converter converts to whatever formats/sizes are needed.
Image Converter finds the UpdateAction for adding a new encoding to the ImageObject.
Image Converter performs the UpdateAction to add each new encoding.

JATS Ingestor updates the JATS XML locally so assets reference the hosted assets.
JATS Ingestor finds the UpdateAction for adding a new encoding to the ScholarlyArticle.
JATS Ingestor performs the UpdateAction to add the JATS XML as an MediaObject encoding.

JATS Converter follows the JATS MediaObject link (present in the event).
JATS Converter downloads the JATS.
JATS Converter finds various actions for information attached to the ScholarlyArticle (eg updating the title, adding authors, citations, adding a HTML-based version of the main content which has links to the various assets).
JATS Converter performs the various actions.

Somehow processing is recognised as complete, and the status of the ScholarlyArticle is set to 'ready for review/preview'

Browser can now access it through the API and read the HTML-based content.
Dashboard can now see actions that can be performed.

Initial thoughts:

Definitely more moving parts, with chances to go wrong.
Not having to read a variety formats like JATS in Browser, Search etc would make these services a lot simpler.
Chatty API, but don't think that in itself is a problem.
Adds a lot of flexibility; gives more chance of applications being used out of the box (custom tasks are replaced with separate services).
Fine-grained actions rather than generic PUT/PATCH operations feels a lot nicer (and access can be controlled tightly).
Choreography has the problem of knowing when things are finished (maybe its actually a question of validation, eg constraints like each image must have a JPEG encoding?).
An implementation detail, but not sure if the JATS Ingestor or JATS Converter should create the MediaObjects (if the latter, needs to be able to access them).

Was just trying to find out more about the actionHandler property on Schema.org actions, and discovered that https://schema.org/Action doesn't quite give the full picture on what is possible, it's hidden away inside https://www.w3.org/wiki/images/1/10/PotentialActionsApril11.pdf (specifically part 4). Refs https://github.com/schemaorg/schemaorg/issues/1627.
This might well make Hydra unnecessary, will experiment.

Pushed new experiment: https://github.com/elifesciences/libero-html-hypermedia-experiment/tree/schema.org
This is using the final Schema.org types, and has switched to JSON-LD (probably more realistic).
Seems to work (using Action with a target that's either a URI or an EntryPoint). Have only tried pretty simple examples though.
Immediate thoughts are:

Going to need good tooling to make this a lot easier. (Which doesn't exist AFAIK.)
Performance is a little concerning due to multiple requests and JSON-LD context resolution.

Closing this. Next up is discussing it.


When placing a block which is flipped and rotated, it is being placed wrongly.

The block gets placed at a location where the user did not click.
The move would not be possible if the user had made it.
It is likely that the bug comes from the backend. But we can check that by logging/checking the REST calls.

The client can either rotate the block first and then flip or the other way around. The server does not know which one happened first.

This now works with commits https://github.com/sopra-fs23-group-40/Client/commit/6b4f63c53ee453a42efbec47acf533a364e01831 and https://github.com/sopra-fs23-group-40/Client/commit/51955c4399cd8452bd386a3f3bb6f5ef3befde1f.


Change install path in Manual documentation

I just ran the latest installer from https://github.com/microsoft/dev-proxy/releases/tag/v0.23.0. It installed by default into %LOCALAPPDATA%\Programs\Dev Proxy. This updates the documentation to match the default location of the Windows Installer.

@garrytrinder
Can you review the proposed changes?
Important: When the changes are ready for publication, adding a #sign-off comment is the best way to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

Thanks for the PR @bgrainger 👍
The manual section provides instructions for people to follow who are not using the installer to install Dev Proxy.
The instructions state that we assume that you download the ZIP file and extract the contents to a folder called devproxy in your home directory.

Download the latest release and extract the files into a folder. For this tutorial, we assume you extract the files into a folder named devproxy located in your home directory.

Therefore the location stated in step 5 is correct.

Enter %USERPROFILE%\devproxy into the new row and select OK.


Discrete initialisation

@PierreMartinon pass discretised values (= vector of vectors / matrix) for state and control. By default for a uniform time grid but possibly a non uniform one (see also this issue) time grid

Closing in favour of https://github.com/control-toolbox/CTBase.jl/pull/175


[Bug]: The scroll bar should be displayed on configuration page when there are more than 2 custom environments

Is there an existing issue for this?

[X] I have searched the existing issues

Description
The scroll bar should be displayed on configuration page when there are more than 2 custom environments

Steps To Reproduce

go to https://ee-2209.dp.appsmith.com/
2.login with admin emails
3.go to datasources
add the datsurces with 2 to 3 custom env
now go to configuration page
we cant see the data of more than 2 custom env as there is a missing scroll bar

Public Sample App
No response
Environment
Deploy Preview
Issue video log
No response
Version
v1.9.43

Tested in Latest dp - has been fixed.

Is reproducible on promotion DP

Tested on the promo dp - works fine now.


Server-to-server scalable architecture

Hi I am trying to implement a real time service.
I will use server-to-server communication with aws autoscaling + loadbalancer.
So the most commonly used
I am going to synchronize messages between servers with multiple worker and pubsub, but I want to simplify it a bit.
uWebsocket.js recently supported pubsub, but I know it needs a client for server-to-server synchronization (though I'm not sure if I'm wrong)
Currently, it is used as pubsub embedded in other key value db.
To simplify this architecture further, I want to use uws as a broker (not mq), and npm ws seems to be the most suitable for clients.
In short
[  uws pubsub broker  ]
messsage sync with pubsub

[ uws / ws ] [ uws / ws ] [ ... ] [ ... ]
I'm not sure yet
Whether to use npm ws or red ... (key value db)
 Is there a better solution within uWebsocket?

You can use Redis pub/sub between servers and then uWS pub/sub as the browser-facing pub/sub. Don't overuse Redis though, I've seen companies with this set-up where they had 1-to-1 subscription (one Redis subscription for every browser client). That's my two cents.


feat: should be able to chain

ProjenStruct should superclass Struct enough that ProjenStruct.mixin() can receive a ProjenStruct as a param.

Good idea! It works the other way around already. Should be easy.


Update with latest libkqueue changes

Update the libkqueue git sub-module to include the latest fixes.

Made obsolete by #79?

Yes, please close.


Add back ranking trend chart Python code.

The file is src/test_app.py.  For some reason the changes were not committed properly.  I suggest that you approve this PR, and manually copy the part of the useful code to the app.py or wherever appropriate.

We decided that this feature would be too difficult to implement given our app's current bugs with the weight sliders, we will revisit this feature in the future.


can't add phone in international format

I have tried to add company phone number in international format (like that +7 (925) 832-82-22
And I can't

Oh yeah, I haven't thought of that
In Denmark we only use 8 digits, so that's why it's restricted to that
I'll fix it later today

Yes, inside the country we have different types of phone numbers, like this:
8 800-200-55-55 (for bill free numbers)
8 (495) 234-12-12 (for city phones)
and +7 (925) 234-12-12 (for cellular phones)
Please take notice that phone numbers have brackets and dash symbols. And also have spaces.
I have another request for new feature...
Company often have more than one phone number.
They have two or three....
Also in the past year they have viber, telegram  and whatsapp numbers on the company site.
Could you add this fields in your extension?
I think your extension very useful and necessary for every site.
Thank for your effort!

and please add Russian social networks:
vk.com (vkontakte)
and ok.ru (odnoklassniki)


Considering existing indentation while spliting tags into multiple row

Currently
 jsxformat.format('\t

some test

')

is resulting in
'\t
\n
\nsome test\n
\n
'

But I think it should be
 '\t
\n\t\t
\n\t\t\tsome test\n\t\t
\n\t
'

Hi!
This lib is currently only used with "atom-react" (react support for atom ide) http://orktes.github.io/atom-react/. Indentation support is implemented in the plugin+ide side as it is also needed for other than just the reformatting feature. Although it shouldn't be that hard to implement it for this package as well.

I thought of using this library in https://github.com/akiran/gulp-jsxformat
which formats jsx files with gulp.
But couldn't use because of this issue.


Infinite pending request (Chrome)

Hi, I found an issue with some infinite pending request on Chrome. This seems related to the HTML5 video elements has it happens on MediaElement, but also any other HTML5 video player I can found out there (video-js, etc)
I explained the bug more clearly over StackOverflow: http://stackoverflow.com/questions/16137381/html5-video-element-request-stay-pending-forever-on-chrome

@SBoudrias Is this still an issue?

3 year after, I don't know sorry :P
Haven't been working on video for a while.

@SBoudrias Thanks for the quick response. I'll close this issue and we can reopen it if it appears in the future


Question: How can I load and display several Seek-Thermal Camera at the same time?

Dear, SeekThermal Team,
First of all, I sincerely thank you for providing a great source code.
I'm asking you a question because there are some difficulties in my current project.

I want to connect several Seek Thermal Cameras (S304SP - more than two) to my computer and display and transmit them at the same time. Currently, video display and transmission (using an rtsp server) for one camera is possible, but only one recognition is possible even if 2 or more cameras are connected.
How can I 2 cameras be recognized and display and transmitted?
I'm modifying the code based on "seekcamera-opencv.py". I want to print and transmit more than one screens based on OpenCV-Python.

Once again, thank you for providing a good code, and I would appreciate it if you could answer.
Thanks a lot!

I solved the problem by referring to #10.
So, I closed this question.
Thanks a lot.

hello,  I have same question, and I can connect two camera but I don't know how to read the corresponding camera picture separately...


public/vendor + public/themes

Hello :)
Wondering if there a reason the folders above are not on Github but with composer install they are?
Thank You

@iSparkyZA Yes they are not on github as we they are created when you run vendor publish.
As it will create duplicate copies of assets and thus increase the download size of the repo.

Thank You for taking the time to answer - have a super day.


Kasparov-1 + Kasparov-2 VMWare Provider Refresh Issue

Hi,
I'm facing a problem with VMWare provider refresh on Kasparov-1 appliance version.
During provisioning, vm nics does not been retrieved in ManageIQ because of provider refresh issue
Here are the logs, anyone can help meregarding those errors ?
ERROR -- : MIQ(ManageIQ::Providers::Vmware::InfraManager::Inventory::Collector#vim_collector) EMS: [xxx], id: [x] Refresh failed
ERROR -- : [NoMethodError]: undefined method []' for nil:NilClass  Method:[block (2 levels) in <class:LogProxy>] ERROR -- : /opt/manageiq/manageiq-gemset/bundler/gems/manageiq-providers-vmware-eb218a96aad1/app/models/manageiq/providers/vmware/infra_manager/inventory/collector.rb:336:in block (2 levels) in collect_cis_taggings'
ERROR -- : MIQ(ManageIQ::Providers::Vmware::InfraManager::Inventory::Collector#vim_collector) EMS: [xxx], id: [x] Refresh failed
ERROR -- : [ActiveRecord::ConnectionTimeoutError]: could not obtain a connection from the pool within 5.000 seconds (waited 6.132 seconds); all pooled connections were in use  Method:[block (2 levels) in class:LogProxy]
ERROR -- : /opt/manageiq/manageiq-gemset/gems/activerecord-5.2.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:201:in block in wait_poll' ERROR -- : Q-task_id([r11108_miq_provision_11890]) MIQ(MiqQueue#deliver) Message id: [56286834], Error: [could not obtain a connection from the pool within 5.000 seconds (waited 5.028 seconds); all pooled connections were in use] ERROR -- : Q-task_id([r11108_miq_provision_11890]) [ActiveRecord::ConnectionTimeoutError]: could not obtain a connection from the pool within 5.000 seconds (waited 5.028 seconds); all pooled connections were in use  Method:[block (2 levels) in <class:LogProxy>] [----] E, [2022-11-15T17:12:33.497552 #954075:2ae7c9b0d96c] ERROR -- : Q-task_id([r11108_miq_provision_11890]) /opt/manageiq/manageiq-gemset/gems/activerecord-5.2.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:201:in block in wait_poll'
ERROR -- : MIQ(ManageIQ::Providers::Vmware::InfraManager::RefreshWorker::Runner) ID [xxx] PID [xxxxx] GUID [xxxxxxxxxxxxxx] Error in before_exit: could not obtain a connection from the pool within 5.000 seconds (waited 5.028 seconds); all pooled connections were in use

@Fryguy , can someone have a look on this issue please ?

Hi
also errors like these:
ERROR -- : MIQ(ManageIQ::Providers::Vmware::InfraManager::Inventory::Collector#vim_collector) EMS: [my vcenter], id: [9] Refresh failed
...
ERROR -- : [NoMethodError]: undefined method delete_at' for #<RbVmomi::VIM::Datastore:0x000055868f793ea0>  Method:[block (2 levels) in <class:LogProxy>] [----] E, [2022-11-24T10:54:24.072457 #2824:2ac32e7657fc] ERROR -- : /opt/manageiq/manageiq-gemset/bundler/gems/manageiq-providers-vmware-42e38d3d8685/app/models/manageiq/providers/vmware/infra_manager/inventory/collector/property_collector.rb:89:in process_prop_change'
/opt/manageiq/manageiq-gemset/bundler/gems/manageiq-providers-vmware-42e38d3d8685/app/models/manageiq/providers/vmware/infra_manager/inventory/collector/property_collector.rb:72:in block in process_change_set' /opt/manageiq/manageiq-gemset/bundler/gems/manageiq-providers-vmware-42e38d3d8685/app/models/manageiq/providers/vmware/infra_manager/inventory/collector/property_collector.rb:71:in each'
/opt/manageiq/manageiq-gemset/bundler/gems/manageiq-providers-vmware-42e38d3d8685/app/models/manageiq/providers/vmware/infra_manager/inventory/collector/property_collector.rb:71:in process_change_set' /opt/manageiq/manageiq-gemset/bundler/gems/manageiq-providers-vmware-42e38d3d8685/app/models/manageiq/providers/vmware/infra_manager/inventory/collector.rb:243:in block in process_object_update_modify'
/opt/manageiq/manageiq-gemset/bundler/gems/manageiq-providers-vmware-42e38d3d8685/app/models/manageiq/providers/vmware/infra_manager/inventory/cache.rb:21:in update' /opt/manageiq/manageiq-gemset/bundler/gems/manageiq-providers-vmware-42e38d3d8685/app/models/manageiq/providers/vmware/infra_manager/inventory/collector.rb:242:in process_object_update_modify'
/opt/manageiq/manageiq-gemset/bundler/gems/manageiq-providers-vmware-42e38d3d8685/app/models/manageiq/providers/vmware/infra_manager/inventory/collector.rb:229:in process_object_update' /opt/manageiq/manageiq-gemset/bundler/gems/manageiq-providers-vmware-42e38d3d8685/app/models/manageiq/providers/vmware/infra_manager/inventory/collector.rb:215:in block in process_object_update_set'
/opt/manageiq/manageiq-gemset/bundler/gems/manageiq-providers-vmware-42e38d3d8685/app/models/manageiq/providers/vmware/infra_manager/inventory/collector.rb:214:in map' /opt/manageiq/manageiq-gemset/bundler/gems/manageiq-providers-vmware-42e38d3d8685/app/models/manageiq/providers/vmware/infra_manager/inventory/collector.rb:214:in process_object_update_set'
/opt/manageiq/manageiq-gemset/bundler/gems/manageiq-providers-vmware-42e38d3d8685/app/models/manageiq/providers/vmware/infra_manager/inventory/collector.rb:187:in process_update_set' /opt/manageiq/manageiq-gemset/bundler/gems/manageiq-providers-vmware-42e38d3d8685/app/models/manageiq/providers/vmware/infra_manager/inventory/collector.rb:123:in monitor_updates'
/opt/manageiq/manageiq-gemset/bundler/gems/manageiq-providers-vmware-42e38d3d8685/app/models/manageiq/providers/vmware/infra_manager/inventory/collector.rb:107:in targeted_refresh' /opt/manageiq/manageiq-gemset/bundler/gems/manageiq-providers-vmware-42e38d3d8685/app/models/manageiq/providers/vmware/infra_manager/inventory/collector.rb:62:in vim_collector'
/opt/manageiq/manageiq-gemset/bundler/gems/manageiq-providers-vmware-42e38d3d8685/app/models/manageiq/providers/vmware/infra_manager/inventory/collector.rb:48:in `block in vim_collector_thread'

Hi @agrare , @Fryguy , anyone to have a look on this issue ?
We don't have any perf issue on ManageIQ appliance, VSphere is version 7.0.3 and had not upgrades recently.
Still a lot of message like this
MIQ(ManageIQ::Providers::Vmware::InfraManager::Inventory::Collector#vim_collector) EMS: [xxx], id: [9] Refresh failed
And during provisioning or retirement, every action related to provider is very long (example vm refresh, status from provider during retirement)

Hi @szajac01 sorry I didn't see this originally, [NoMethodError]: undefined method 'delete_at' for #<RbVmomi::VIM::Datastore:0x000055868f793ea0> is a new one to me that is supposed to be an Array not a Datastore object.
Can you turn debug logging on so that we can see the object updates prior to processing this failure?


Add multiple attachments (with zip compression option)

Please send to 5.2, and you muse use camelCase please.


Making PDAF compilation less machine-specific

I have tried to use CMake-generated variables for the library / include paths used in PDAF compilation.
Compilation of eCLM-ParFlow-PDAF works with PDAF branch https://github.com/HPSCTerrSys/pdaf/tree/tsmp-pdaf-patched-dev.
Most notably, I have included a find_package for the MKL.
https://github.com/HPSCTerrSys/eTSMP/blob/d20c2e7c65f0ed2ee93925264209759b4ed7f0c2/cmake/BuildPDAF.cmake#L11-L20
@kvrigor: Would be nice if you could look over this. However, this should be merged after our main PR https://github.com/HPSCTerrSys/eTSMP/pull/9, of course! I started these dev branches for not breaking the build in the main PR like I accidentally did yesterday.

We always strive for generality in our build scripts so this change is in a good direction 😁. Firstly you can rebase this branch with master so we only see the relevant changes in the diffs.
I'm not familiar with the linking mechanisms of MKL. Is MKL_LINK an environment variable that influences MKL linker flags in PDAF?

I am sadly not a big "rebaser", so I did a "merge"... Now the commits are not good, but at least the differences are correct and the commits can then be discarded after a Squashed-Merge of the PR, if you are fine with that!?

I am not 100% sure about MKL_LINK. It was generated by the find_package (found it in the CMakeCache.txt
https://github.com/HPSCTerrSys/eTSMP/blob/8264768d911df67f85c58e4650a7116040bb2387/cmake/BuildPDAF.cmake#L13
I just tried around with it, if I could get the MKL-variables used later to contain static libraries and found out that it takes the additional unset command. This is all knowledge built up today, no deeper insights.

I am sadly not a big "rebaser", so I did a "merge"... Now the commits are not good, but at least the differences are correct and the commits can then be discarded after a Squashed-Merge of the PR, if you are fine with that!?

Sure! Branch commits doesn't really bother me--more importantly, we should only see the changed files in the PR.
Other than that, the changes LGTM! I'll leave it up to you to squash-merge the PR 😉 . Let's try to follow this commit style for merge commits (e.g. see last 3 commits):
Summary of PR (#PR_NUMBER)

<optional commit message>

Perfect, when I get the time to clean things up, I will do the squash merge.
Regarding commit-style, I completely agree. Actually I particularly liked the style of https://github.com/HPSCTerrSys/eTSMP/commit/fd501af8bd34e27b474ee56b99b9aec91fd04361 with the key commits. If you used some automation for that I would be very interested! Especially the single commits being there as links is very convenient.

@kvrigor  I am currently not authorized to merge the PR. Can you give me the permission?

@jjokella please retry


Incompatibility with compression-webpack-plugin in webpack 5

Library Affected:
workbox-webpack-plugin
Browser & Platform:
## System:
 - OS: Linux 4.15 Linux Mint 19.1 (Tessa)
## Binaries:
 - Node: 10.16.0 - /usr/local/bin/node
 - Yarn: 1.22.5 - /usr/bin/yarn
 - npm: 6.9.0 - /usr/local/bin/npm

BUG: Compression happened before __WB_MANIFEST injection
We use the InjectManifest module. After migrating to WebPack version 5, we noticed that the generated service-worker.js file is compressed by workbox-webpack-plugin before the injection of self.WB__MANIFETS happens. We guess that in the previous version, this file was delivered to this plugin after the injection phase, but in the current version, it is delivered after the file creation phase and before the injection, hence the compressed file Is incomplete.
webpack plugins
{
  plugins: [
    new WorkboxPlugin.InjectManifest({
      swSrc: './src/setup/sw.js',
      swDest: 'service-worker.js',
      exclude: [/\.(gz|br)$/],
    }),
    new CompressionPlugin({
      algorithm: 'gzip',
      minRatio: 0.8,
      test: /\.(js|css|html|svg)$/,
   })
  ]
}

package.json
{
  "webpack": "^5.4.0",
  "compression-webpack-plugin": "^6.1.0",
  "workbox-webpack-plugin": "^6.0.0-alpha.3",
}

Thanks for pointing this out.
After investigating a bit, changing this line in the compression-webpack-plugin's source from compiler.hooks.compilation.tap to compiler.hooks.thisCompilation.tap seems to resolve the issue, without having to change any of the ordering of the stages.
When the compression plugin hooks into compilation instead of thisCompilation, I see that it's compression logic runs twice—once for the child compilation created by InjectManifest (which results in the compression happening prior to the manifest injection), and then again following the manifest injection (which I think is a no-op, since that swDest file was already compressed). If I switch it to thisCompilation, then the compression only happens once, after the manifest injection has taken place.
I'm going to open an issue with the compression-webpack-plugin folks to investigate further, and see if switching to thisCompilation is the right approach for them to take.

Thank you @jeffposnick 🙏🏽

This should be fixed by upgrading to compression-webpack-plugin v6.1.1.

@jeffposnick Do you think we can/should use the alpha releases in production environment to take advantage of webpack v5?

We're still likely to make at least one change between the latest alpha and the final v6 release to account for the ordering in which our plugin runs in relation to others (c.f. https://github.com/webpack/webpack/issues/11822#issuecomment-726184972). So it's possible you'd need to make an adjustment to your webpack configuration to account for that breaking change.
The actual code that Workbox generates in your service worker is unlikely to change between now and the v6.0.0 release, though.

I am reopening this, as @alexander-akait & @sokra have pointed out that the current implementation needs to be remediated.

I will fix it on compression-webpack-plugin side, but maybe you need to change stage here too, I don't look at this deeply

@jeffposnick I fixed it https://github.com/webpack-contrib/compression-webpack-plugin/pull/234, but it is very strange, tests passed on linux and macos, but failed on windows:
console.warn
      'D:acompression-webpack-plugincompression-webpack-plugin
      ode_modulesworkbox-precaching/precacheAndRoute.mjs' is imported by C:\Users\RUNNER~1\AppData\Local\Temp\988e796220541bbd29bb0f442f6e0cc5\service-worker.js, but could not be resolved – treating it as an external dependency

      at Object.defaultOnWarn [as onwarn] (node_modules/rollup/dist/shared/rollup.js:34:42)
      at ModuleLoader.handleResolveId (node_modules/rollup/dist/shared/rollup.js:18435:26)
      at node_modules/rollup/dist/shared/rollup.js:18402:22
          at async Promise.all (index 0)
      at ModuleLoader.fetchStaticDependencies (node_modules/rollup/dist/shared/rollup.js:18400:34)
          at async Promise.all (index 0)
      at ModuleLoader.fetchModule (node_modules/rollup/dist/shared/rollup.js:18377:9)
          at async Promise.all (index 0)

Config:
new InjectManifest({
  swSrc: path.resolve(__dirname, "./fixtures/sw.js"),
}).apply(compiler);

I known it is not related to this problem, but I want to notify you


Test data necessary for python samples added to test package.

What does this PR change?
Test launch script updated to run whole set of existing python binding tests.
Samples' data partially added to opencv-test package in addition to extra test data to provide input necessary for new python tests.

:+1:


How to make animation play based on misses

Describe your problem here.
How can I make it so certain animations play when you have more than a certain number of misses? something similar to nonsense
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
nu

I know you want to do it with misses but it's actually easier to use getAccuracy() for accuracy conditions instead

Yeah, your probably right but how would I make it so an animation will play at a certain curStep when you have a certain accuracy?

function onStepHit()
    if curStep == animStep then
        if getAccuracy() >= 50 then
            triggerEvent('Play Animation', 'highAccur', 'bf') --might need to switch the values (I don't really remember which value is which and I'm not bothering checking
        else
             triggerEvent('Play Animation', 'lowAccur', 'bf') --might need to switch the values (I don't really remember which value is which and I'm not bothering checking
        end
    end
end

thanks homie


lucky_cli & habitat as production dependency

Won't overcomplicate the description, simply; are lucky_cli and habitat required as production level dependencies rather than development_dependencies? If so, why?

hi @jackturnbull afaik habitat is used to configure the application, so is needed even in production, not sure about lucky_cli

Hi, yes, both are non-dev dependencies. habitat to set configuration, and lucky_cli for the tasks, so you are able to run lucky db.reset (see https://github.com/luckyframework/lucky_record/blob/master/tasks.cr).

Thanks for answering @fernandes and @hanneskaeufler 👍 I'll go ahead and close this now.

Perfect thanks for clearing up @hanneskaeufler!


Hide internal properties

The Structurizr DSL library introduced element/relationship identifiers as properties recently. Hide those for the site generation since we are not really interested in presenting them to users.
This works around the property introduced in https://github.com/structurizr/dsl/commit/0eda61d3555c53e7d382061fb0f8142c2eccc55f
The effect without this PR can (currently) be seen here https://avisi-cloud.github.io/structurizr-site-generatr/main/embedding-diagrams-and-images/ and also here https://avisi-cloud.github.io/structurizr-site-generatr/main/internet-banking-system/

The appearance in the exported diagrams is fixed once we have a new release of the exporter library, so we can change this PR to only hide this properties in the software homes.

The PR has been updated to only address the Software System Homes.

Thanks again, @jp7677! 😄


perf: replace solveByElim by DFS in TFAE

This is an alternative to #4154, where rather than replacing the backend of TFAE with the scc tactic we use limited forward reasoning to apply Iff.mp and Iff.mpr to iff hypotheses, and use a manual DFS implementation to find a path through the graph.
(A previous version of this PR used solveByElim, but the implications can have irrelevant structure which confuses apply and hence solve_by_elim as well.) The implementation is now very fast, and takes no measurable time on the test file.

I'm not an expert on meta-programming, but:

I've looked over the code, and it seems to do sensible things
CI is happy, so many practical test cases in mathlib provide evidence that nothing
Other PRs are depending on this

So if something needs to be tweaked, that can be done in a follow-up PR.
Thanks! :tada: :octopus:
bors merge


Default data addition and test bug

Ojs\JournalBundle\Tests\Controller\JournalControllerTest::testCreate
InvalidArgumentException: Input "ojs_journalbundle_journal[country]" cannot take "1" as a value (possible values: ).

similar faults should be in institute and user entities. reason #340


Update byte-buddy, byte-buddy-agent to 1.14.8

About this PR
📦 Updates

net.bytebuddy:byte-buddy
net.bytebuddy:byte-buddy-agent

from 1.14.2 to 1.14.8
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

🔍 Files still referring to the old version number
The following files still refer to the old version number (1.14.2).
You might want to review and update them manually.
website/yarn.lock

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "net.bytebuddy" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "net.bytebuddy" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, old-version-remains, commit-count:1

Superseded by #753.


Exporting a radial graph as a PNG produces the graph with no foreground track color

Description
I am trying to export a radial bar graph and it renders fine in the UI but when I get the dataURI() the image is lacking the foreground track color
Steps to Reproduce

create a radial graph
export it with dataURI()
add it to a jsPDF() page and see it doesn't have color

Expected Behavior
The graph should have the same colors as it is shown in the UI
Actual Behavior
The graph appears "empty" with no color
Screenshots
UI Image:

PDF Image:

Reproduction Link
Here is the code pen. Please click on the 'Download PDF' button to download the PDF and see it is missing color.
https://codepen.io/stanivanov/pen/LYXoVym

I had to disable the animation explicitly in order to render the graph.


Create PermissionRequestObject with Fragment sends Activity.

I noticed my app crashing saying that mFragment was null when I used public PermissionUtil.PermissionRequestObject request(String... permissionNames). Found out why!

Been running this code in a production app since I made the PR and have not had a crash yet. Been working great!

Thank you for the PR.


URL encoding

The URL encoding is not correct.
For example: "c #" should be converted to "c% 23".

I'm sorry ! just like a mistak !


Fragment signature content assist

As an extension to #31, if the fragment implements the new fragment signature syntax, reflect that syntax in the suggestion, maybe even in the result if it's selected.

Doing some spring cleaning of issues, and I'm going to close this one - it's been open for over a decade so highly unlikely we'll get do this 😅


Refactor existing code to propagate context.

Follow up issue for #596
Refactor existing implementations to make sure context is correct created and propagated when switching threads.

webserver
fault tolerance
security
grpc
jersey client
jersey support

The expected stuff to find in the context (to be documented).
This is proper magic and as such we should minimize this and properly document such behavior. Nevertheless this is a much needed magic - we have trouble propagating any information otherwise, as we have no chance to use ThreadLocals that could otherwise be used within a component.
Request context (coming from Web Server or gRPC Server or any other originating component):

io.opentracing.Tracer - the configured tracer (this may be also a no-op tracer if none is configured)
io.opentracing.SpanContext - the span context of the current request

Recommended usage of these:
Tracer tracer = context.get(Tracer.class)
                    .orElseGet(GlobalTracer::get);

Tracer.SpanBuilder spanBuilder = tracer.buildSpan("new-span");
context.get(SpanContext.class).ifPresent(spanBuilder::asChildOf);

Initial implementation for Web server and FT is done in #675

This task is finished - gRPC, FT, Jersey and security all use context propagating executor services or run tasks in context.


import-destructuring-spacing not found

Bug Report

'import-destructuring-spacing' not working after update
tslint 5.0.0
Has been working before update. Other spacing configs also do not work as desired.
Might be duplicated; but no solution found...

tslint console output
Could not find implementations for the following rules specified in the configuration:
    import-destructuring-spacing
Try upgrading TSLint and/or ensuring that you have all necessary custom rules installed.
If TSLint was recently upgraded, you may have old rules configured which need to be cleaned up.

Actual behavior
Missing spaces; but no error... import {Injectable} from '@angular/core';
Expected behavior
Correct formatting... import { Injectable } from '@angular/core';
Or lint error if spaces are missing.

I guess you just upgraded codelyzer to v3.x?
https://github.com/mgechev/codelyzer/issues/262#issuecomment-284799722

Hello, that might be the right direction... Yes, we upgraded to codelyzer 3.0.0-beta.4; the following error/warning seems to confirm your guess...
<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.

There's not much we can do about this. The rule you are missing used to be provided by the 3rd party package codelyzer, which now dropped that rule. tslint currently has no equivalent.
Someone could contribute that functionality to the whitespace rule, though.

the whitespace rule's "check-module" option ought to do this, according to its tests. it might be broken, see https://github.com/palantir/tslint/issues/2401


Add a silent method to get volume for sliding panel

Allow the sliding panel to get the volume without invoking and waking up the osd everytime the sliding panel opens to get the latest volume value

can this be just a field in message.data instead of a new message?

no it will collide with the OSD if it is the same message, It needs to be totally a different message so not to trigger the osd

i dont follow, the handler does the exact same thing except play sound ?
so make the original handler check for message.data.get("listen") and decide to play sound or not, by default no sound played.
the intent for volume control would set this to True to have sound

This isn't anything to do with sound, the osd (on screen display) is a different GUI control that shows up on the screen when you change volume by voice, its the black bar with white dots, the osd is triggered whenever there is "mycroft.volume.get.response", when the user pulls down the sliding panel you do not want the OSD to show up and trigger for that it needs to be a different bus event, that does the same thing, but the OSD never reacts to it because the response is different.

then just add a new event but use the older handler, no need to have exact same code under a different method name

i would also feel cleaner to change name, silent is not obvious... maybe have one of the message ending with .osdsince thats what this is solving

I have already made the changes needed, removed extra method and renamed it to where its exactly used


Hello ,I seemingly lack file

lacking file include awa2_generator and awa2_final_classifier

Discriminative classifier parameters loaded...
awa2_generator
Traceback (most recent call last):
File "D:/零次学习/Feature-Generating-Networks/main.py", line 105, in
success = train_agent.load_model(model=model_name)
File "D:\零次学习\Feature-Generating-Networks\trainer.py", line 299, in load_model
raise Exception("Trying to load unknown model: %s" % model)
Exception: Trying to load unknown model: awa2_generator
Process finished with exit code 1


Don't destroy codemirror editor if it doesn't exist

closes TryGhost/Ghost#7855

check if codemirror has been initialized before trying to destroy it

note - the codemirror initialization happens inside a scheduleOnce, so I'm fairly certain that if the component is destroyed before the codemirror script finishes loading, then the scheduleOnce won't be called and we won't have to worry about extraneous objects.

Coverage increased (+0.006%) to 75.265% when pulling 807481a52ba2cd0e1706c2d8d58af4be8e27d17c on acburdine:cm-fix into<PHONE_NUMBER>b55e29a1aab0d8ef4cfc576073c9e4 on TryGhost:master.

Coverage increased (+0.006%) to 75.265% when pulling 2dfd24758d41d76c4f99bd16cea5068c4fcade9f on acburdine:cm-fix into<PHONE_NUMBER>b55e29a1aab0d8ef4cfc576073c9e4 on TryGhost:master.


Choppy input audio -disregard, I think I found the problem.

So, I am reading in audio samples at 48000 samples/second, and I am reading in 50ms of audio at a time.  Meanwhile I am changing the radio's frequency 10 times per second listening for MIL-STD-188-110B ALE signal, and when found, stop scanning.  The problem I have, it seems, is that NAudio is not giving me 50ms of audio every 50ms, but instead it has delays and then catchup.  There is no transmitting going on during these tests, just listening.
Is it fair to assume that each event will occur when one buffer has been filled with 50ms of audio samples ???  I am seeing 49 to 51ms most of the time, but not always.
My application has some threads with higher priority than others.  What is the priority of the waveSource.DataAvailable event?  Can I make it high priority?
waveSource.BufferMilliseconds = 50;
waveSource.NumberOfBuffers = 200;        // buffers = 10 seconds worth;
waveSource.DeviceNumber = RadioInput_i;    // device number
waveSource.DataAvailable += new EventHandler(IncomingAudioSample);
waveSource.StartRecording();
DateTime LastTime = DateTime.Now;
public void IncomingAudioSample(object sender, WaveInEventArgs e)
{
DateTime CurrentTime = DateTime.Now;
int DeltaMS = (int)(CurrentTime - LastTime).TotalMilliseconds;
Console.WriteLine(DeltaMS + " " + e.BytesRecorded);
LastTime = CurrentTime;
        if (GOING_TO_TRANSMIT)
        {       // There is a feedback problem when reading and writing at the same time.
                // DO NOT READ audio if we are Going to Transmit
                //   or are currently Transmitting
                // *** just ignore this data ***
        }
        else
        { // NOT TRANSMITTING - so proceed.
            if (ContinueReadingFromRadio)
            {
                int numBytesRead = e.BytesRecorded;
                int numSamples = numBytesRead / 2;  // Assuming 2 bytes per MONO audio sample
                short[] samples = new short[numSamples];
                Array.Clear(samples, 0, samples.Length);
                int Channels = 2;
                try
                {
                    Channels = waveSource.WaveFormat.Channels;
                }
                catch (Exception ex)
                {
                    HowardUtils.logError("AUDIO related ERROR", true);
                    Console.WriteLine(ex);
                }
                if (Channels == 1)
                { // Mono
                    numSamples = numBytesRead / 2;  // Assuming 2 bytes per MONO audio sample
                    samples = new short[numSamples];
                    for (int i = 0; i < numBytesRead / 2; i++)
                    {
                        if (!ContinueReadingFromRadio) break;
                        // This is little-endian signed 16 bit audio samples.
                        int LSB = e.Buffer[2 * i + 0] & 0x000000FF;
                        int MSB = e.Buffer[2 * i + 1] & 0x000000FF;
                        int sample = ((MSB << 8) | LSB) & 0x0000FFFF;
                        samples[i] = (short)sample;
                    }//end for
                }
                else
                { // else it is stereo
                    numSamples = numBytesRead / 4;  // Assuming 4 bytes per resulting Right/Left sample.
                    samples = new short[numSamples];
                    String InputRL = Global.Settings.GetDigitalMode_SoundcardInputRL();
                    for (int i = 0; i < numBytesRead / 4; i++)
                    {
                        if (!ContinueReadingFromRadio) break;
                        // combine stereo into Mono
                        int HI = 1;   // switch values to change endian-ness
                        int LO = 0;  // little endian HI=1,LO=0  Big endian HI=0,LO=1
                        int left = (e.Buffer[i * 4 + HI] << 8) | (e.Buffer[i * 4 + LO] & 0xff);
                        int right = (e.Buffer[i * 4 + 2 + HI] << 8) | (e.Buffer[i * 4 + 2 + LO] & 0xff);
                        int avg = (left + right) / 2;
                        //Console.WriteLine("InputRL='" + InputRL + "'");
                        if (InputRL.Equals("Stereo"))
                        {    // It may be a bad idea to combine the Right and Left channels.
                            //  The incoming audio will be weak by being mixed and averaged with a
                            // (hopefully) silent channel.
                            //Console.WriteLine("AVG BOTH CHANNELs");
                            samples[i] = (short)avg;
                        }
                        else if (InputRL.Equals("Right"))
                        {
                            //Console.WriteLine("RIGHT CHANNEL");
                            samples[i] = (short)right;
                        }
                        else // Default to "Left"
                        {
                            //Console.WriteLine("LEFT CHANNEL");
                            samples[i] = (short)left;
                        }
                    } // end for
                } // end if mono or stereo.
                if (ContinueReadingFromRadio)
                {
                    if (MyRXQueue.isFull())
                    {
                        if (Global.DEBUG_DIGITALMODE) Console.WriteLine("DigitalModeAudio: IncomingAudioSample: QUEUE is full - overrun");
                    }
                    else
                    {
                        MyRXQueue.addSamples(samples);
                    }
                    if (Global.ALEWindow != null && MyALE != null)
                    {
                        MyALE.StoreInputAudio(samples);
                    }
                }
                if (Global.DEBUG_DIGITALMODE) Console.WriteLine("DigitalModeAudio: IncomingAudioSample: added samples to Queue, Queue Size = " + MyRXQueue.getQueueSize());
            } // end if Queue is full.
        } // end if transmitting
    } // end of public void IncomingAudioSample(object sender, WaveInEventArgs e)

Disregard, I think I found the problem.


iOS App Randomly Crashing with Memory Leak During Large Data Load, Navigation, and Save Operations

Our .NET MAUI iOS application crashes randomly when handling large collections of data, saving data, and performing navigation actions. The issue persists even with .NET 9 preview, where memory usage spikes, leading to out-of-memory (OOM) errors and suspected memory leaks.
Steps to Reproduce:
Load a large collection of data into a ListView or CollectionView(also tried with Syncfusion SFListview).
Navigate between pages while keeping the large data collection in memory.
Save data or perform operations on the collection.
After repeated navigation or data operations, observe increased memory usage, leading to eventual app crashes.
Expected Behaviour:
The app should handle large data sets, navigation, and data-saving operations without causing memory issues or crashes.
Actual Behaviour:
Random app crashes occur during data load, save, or navigation.
Memory usage increases consistently without being released, eventually causing OOM errors.
Environment:
.NET MAUI Version: .NET 9 Preview
IDE: Visual Studio 2022 for Mac (or Windows, specify if applicable)
Device/Simulator: iOS 16+ (specify device model if on physical device)

I don't think this is the right repository for that. This is just for hosting .NET MAUI samples, not the actual .NET MAUI SDK product. you probably want to report something on https://github.com/dotnet/maui
Thanks!


[nrf-ble-driver] Remove possible conflicting files

Describe the pull request

What does your PR fix?
This port installed its license file to a possible conflicting location:

nrf-ble-driver:x64-linux:/share/LICENSE
nrf-ble-driver:x64-linux:/share/nrf-ble-driver/copyright

I also removed this port from CI baseline.

Thank you!


Bump Webpack version

Webpack 3.0.0 was officially released several days ago [1]. It improves speed significantly.
I've been working locally (and deploying to staging) with no further hassle rather than fixing source-map-support version to 0.4.3.
[1] https://medium.com/webpack/webpack-3-official-release-15fd2dd8f07b

Nice @CartoDB/frontend !

I can't find any problems on staging, it's on ded03 in case anyone wants to poke at it.
👍

If you don't find any major problem, go ahead man!

We can move it to deploy, but maybe not deploy it today?

We can move it to deploy, but maybe not deploy it today?

Yep, let's do it on Monday.


When will the Copilot Studio icon be available?

Please update here so that all of us can change everything.......again.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 2e1e3e9c-4177-7991-9e9a-861baf21cbd2
Version Independent ID: 51970c35-5399-e9b2-ac1b-250032f2840d
Content: Microsoft Power Platform icons - Power Platform
Content Source: power-platform/guidance/icons.md
Service: power-platform
Sub-service: guidance
GitHub Login: @KumarVivek
Microsoft Alias: kvivek

Thanks for your comment, @Ireantum. This issue has been assigned to the doc author for review.


Add Dockerfile

Allows studio to be run in a docker container without having to install nix locally.
This supports execution in VNC mode. X11 mode should also work if the socket can be exposed inside the docker container in a way that pharo can find.

Great stuff! Merged 👍


[Bug Report] el-steps dynamic rendering el-step

Element UI version
2.6.1
OS/Browsers version
macos10.14.3  chrome 73.0
Vue version
2.6.9
Reproduction Link
https://jsfiddle.net/c745tbos/
Steps to reproduce

设置默认items是[]
设置定时器模拟从服务端取数据，重新设置item
重新渲染后发现顶部的序号顺序错误，最后一个el-step的样式错误，没有自动与右边界对齐

What is Expected?
items动态变化后，el-steps的序号正确，样式正常
What is actually happening?
items动态变化后，el-steps的序号错误，最后一个el-step的样式异常

I think this one make sense and can fix your issue..  https://jsfiddle.net/9h81t53p/

@lucyhao yes, this way can work normal.  your way is Full update items.
But i want to know if el-steps component should solve  Partial update el-step problem.
you can understand what i mean

maybe not in this version. I saw the sources.. I don't think it has implemented this feature. Seems this isn't any code to detect the 's real pos.

Because there are ways to solve this problem， just close this issue

I think this one make sense and can fix your issue.. https://jsfiddle.net/9h81t53p/

use index, step's sequence is right


Integrate data load for ephemeral oracle with docker compose

Integrate the script with docker compose allowing for a single docker compose command to

create the container that will run Oracle
run the migrations that will create the necessary structures in oracle
run the script created in #7

[ ] docker compose is created that can create the local oracle database with all the data from either test or prod, loaded from object store.
[ ] documentation that describes how to create the oracle db.

Start oracle database, run the migrations, perform the data load:
docker compose up oracle-data-load
Documentation for this feature: docs/data_load.md


Support for xsd:anyURI as data property in TBoxGenerator

It would be great if the TBoxGenerator can support xsd:anyURI as a data property, at the moment, it adds xsd:string instead.

As pointed out by @msff2, this is actually supported but one needs to use any URI or any uri in the TBox CSV (note the space). Therefore, closing this issue.
For more details, please see https://github.com/cambridge-cares/TheWorldAvatar/tree/main/JPS_BASE_LIB/src/main/java/uk/ac/cam/cares/jps/base/converter


FilterHandlerTest refactor (preparation for #518)

Type of change
Select the type of your PR

Enhancement / new feature

Description
I decided that I wanted to refactor the FilterHandlerTests related to the #sendRequest API before working on
#518 itself.
Motivations:

I didn't like the way the sendRequest test had to create its own future to associate with the internal response rather than use the real internal request future.  This was difficult to reason about.  The change employs channel adaptors to wire the future from the request to the response.
The tests that test out-of-band request/response flow through other filters seemed a bit magical.  Tests are best when the test code follows the production usage patterns.  So now I have a filter making an out-of-band request and another filter in the chain actually doing the interception.

Additional Context
Why are you making this pull request?
Checklist
Please go through this checklist and make sure all applicable tasks have been done

[x] Write tests
[x] Make sure all tests pass
[ ] Review performance test results. Ensure that any degradations to performance numbers are understood and justified.
[ ] Make sure all Sonar-Lint warnings are addressed or are justifiably ignored.
[ ] Update documentation
[ ] Reference relevant issue(s) and close them after merging
[ ] For user facing changes, update CHANGELOG.md (remember to include changes affecting the API of the test artefacts too).

LGTM.
I really appreciate the extra effort in splitting this out @k-wall .
However I do want to touch on a couple of things from the justification

The tests that test out-of-band request/response flow through other filters seemed a bit magical. Tests are best when the test code follows the production usage patterns. So now I have a filter making an out-of-band request and another filter in the chain actually doing the interception.

Does keeping it in the filter chain help or hinder demonstrating it is really out of band? As I think thats one of the important properties to demonstrate. To be clear I think these changes improve readability in general but I want to make sure we don't lose that dimension entirely.

Tests are best when the test code follows the production usage patterns

HMMM. I'm not sure I agree. I think that risks overly tight coupling between the tests and the production code. To me the tests should tread the unit as a largely black box and deal in terms of its external contract. I'm not puritanical about that, as it can be quite awkward to get everything into the desired state for a particular case but I err to black box. And thus lots of small units 😉
What I think your saying is tests work best when they work like real world code, which I think we agree on 👍 However I still want to give voice to one risk with that which is as developers we tend to test the things we want the code to do (or not do) and are not so good at supplying the downright crazy stuff good QE engineers throw at code. So I think the tests should reserve the right to make odd ball requests etc that are not "production" like

I think we are on the same page.    I'm trying to make the point that tests should strive to be written against the contract (i.e. public API).  I agree that the are cases where you tests will want to break the abstraction, and do something specific to implementation, to exercise an interesting/awkward case.
In the case of testOtherFiltersInChainCanFilterOutOfBandRequest, our code was creating creating two filters (recipientFilter and filterUnderTest) but only added one (filterUnderTest) to the chain (surprising).  The test code itself then created an InternalRequest  (but that's the responsibility of the FilterHandler) crafting the InternalRequest in such a way that it appear that recipientFilter was the source (so we weren't really checking that FilterHandler actually did this properly).   That's what I meant by a bit magical.  It also took me a while to grok what the test was/wasn't testing.
I can see why this test was originally written this way (it was built on the abilities of the FilterHarness).  I'm not criticizing that decision and I hope my comments didn't come across as rude.
I wanted to firm up the foundations to give me confidence to change the code.

think we are on the same page. I'm trying to make the point that tests should strive to be written against the contract (i.e. public API). I agree that the are cases where you tests will want to break the abstraction, and do something specific to implementation, to exercise an interesting/awkward case.

Yes we are on the same page. Written in terms on the Public API contract was what I was trying to say (but bumbling around) as well.


[fix][broker] Fix cursor should use latest ledger config

Motivation
When the ledger opens a cursor,  the cursor uses a field to hold a managed ledger configuration. Once the managed ledger configuration is renewed(The managed ledger configuration will be renewed when the namespace/topic policies change) in the managed ledger, the cursor cannot use the latest ledger config.
This will break the ledger feature like autoSkipNonRecoverableData.
Modifications

Remove the config parameter in the  constructor of ManagedCursorImpl and NonDurableCursorImpl
Use cursor.getConfig instead of cursor.config, which method always gets the managed ledger config for managed ldeger.

Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

a test needs updating:
BrokerBkEnsemblesTests.testSkipCorruptDataLedger:213 » NoSuchField config

This lead to too many changes, can we just update Cursor#config when the config changed?

This lead to too many changes, can we just update Cursor#config when the config changed?

Sounds like a good idea, but we need to add a new method to cursor interface.

This lead to too many changes, can we just update Cursor#config when the config changed?

Sounds like a good idea, but we need to add a new method to cursor interface.

Yes, but I believe it's a better way

@lhotari Do you have any suggestions?

Codecov Report
Attention: Patch coverage is 87.50000% with 5 lines in your changes are missing coverage. Please review.

Project coverage is 72.68%. Comparing base (bbc6224) to head (ab02f3a).
Report is 224 commits behind head on master.

Additional details and impacted files

@@             Coverage Diff              @@
##             master   #22644      +/-   ##
============================================
- Coverage     73.57%   72.68%   -0.89%
+ Complexity    32624    32324     -300
============================================
  Files          1877     1887      +10
  Lines        139502   141018    +1516
  Branches      15299    15480     +181
============================================
- Hits         102638   102504     -134
- Misses        28908    30648    +1740
+ Partials       7956     7866      -90

Flag
Coverage Δ

inttests
27.32% <52.50%> (+2.74%)
:arrow_up:

systests
24.58% <35.00%> (+0.25%)
:arrow_up:

unittests
71.46% <87.50%> (-1.39%)
:arrow_down:

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

Files
Coverage Δ

...okkeeper/mledger/impl/ManagedCursorMXBeanImpl.java
93.93% <100.00%> (+0.18%)
:arrow_up:

...che/bookkeeper/mledger/impl/ManagedLedgerImpl.java
80.92% <100.00%> (+0.26%)
:arrow_up:

.../bookkeeper/mledger/impl/NonDurableCursorImpl.java
81.25% <100.00%> (ø)

...pache/bookkeeper/mledger/impl/RangeSetWrapper.java
94.33% <100.00%> (ø)

...he/bookkeeper/mledger/impl/ReadOnlyCursorImpl.java
95.00% <100.00%> (ø)

...rg/apache/bookkeeper/mledger/impl/OpReadEntry.java
84.31% <0.00%> (ø)

...keeper/mledger/impl/ReadOnlyManagedLedgerImpl.java
56.16% <0.00%> (+2.54%)
:arrow_up:

...che/bookkeeper/mledger/impl/ManagedCursorImpl.java
80.03% <89.65%> (+0.73%)
:arrow_up:

... and 342 files with indirect coverage changes


Fix Disable for the developer to import fast json in fe

Proposed changes
In the pull request #15511 , I use the fastjson to parse the json text.
But now the fastjson is not recommend to be used in doris.

Canel is depend on fastjon, so we don't use it in code but still package it in lib.

Problem summary
Add an import header check for fastjson to disable import fast json in fe for the doris developer.
And use gson instead of fastjson in mysql load.
Checklist(Required)

Does it affect the original behavior:

[ ] Yes
[x] No
[ ] I don't know

Has unit tests been added:

[ ] Yes
[x] No
[ ] No Need

Has document been added or modified:

[ ] Yes
[x] No
[ ] No Need

Does it need to update dependencies:

[ ] Yes
[x] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[x] No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 35.01 seconds
load time: 495 seconds
storage size:<PHONE_NUMBER>6 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230130065338_clickbench_pr_86867.html

@stalary can you help review and merge it?


Bump SVD submodule and regenerate PACs

This issue originates from https://github.com/posborne/cmsis-svd/issues/153.

After a chat with Microchip it was pointed out that http://packs.download.atmel.com/ is outdated. The up-to-date pack repository is https://packs.download.microchip.com/, where much more recent SVD files for the SAM{E,V,S}7X chips can be found: the latest version for the SAME70 is 4.8.125 (from 2022), versus 2.4.166 (from 2019) mirrored in this repo.
An SVD issue regarding USART-SPI clock sources has also been filed recently; a bug-fix release is expected soon.

Work items:

[x] PR new SVDs to cmsis-svd
[ ] Update PAC crates code
[ ] Update all references about sources of SVDs used to generate PACs
[ ] Publish PAC crates

I'm still waiting for the merge of the PR in the upstream 😞


Review two way binding behaviour

Currently, if a control property is bound to a view model property, the property getter is called, then the setter is called with the value which was returned from the getter and then the getter is called again.
On WPF, the setter is only called if the control property was changed.
I have a method which is called by the view model property setter, and I want to call the method only if the control property changed.
Example
There's a TextBox and the Text property is bound to a property in the view model, called MyProperty.
In Avalonia, the getter of MyProperty is called, which returns "", then the setter is called with value "", and then the getter is called again. After that, the setter is called when the property changes.
In WPF, the getter of MyProperty is called, and the setter is called only if the control property changes.

This might be fixed as a side effect of #856. I'll verify when I've got some free time.


CI for Schedulers

Linking to @jhamman's comment, one of the challenges here is setting up CI for Dask. There has been some already towards using SGE (particularly at dask-drmaa) for testing. Configuring other schedulers (e.g. SLURM, PBS, LSF, etc.) is possible, but can be a bit tricky. Docker helps with this, but it requires a fair bit of configuration to get right.
One resource that might be useful are these Docker images, which include SLURM and TORQUE (similar to PBS). That said, I'm not sure what license applies to these. Also they may not work out of the box (as was my experience with using their Grid Engine some time back). That said, they should at least provide useful insights on how to get working Docker images for these different cases. For simplicity, would propose building and hosting images for respective schedulers so that CI can just download them.

This repo has an example using SLURM: https://github.com/Snakemake-Profiles/slurm

I can take a look for SLURM (can you assign this issue to me?)

To be honest I rarely use github assignment.  It looks like this is difficult to do without having you as part of the organization (which is currently somewhat challenging).  We might have to go with informal assignment for the time being.
Regardless, thank you for stepping up!

Grid Engine should basically be just copying over what dask-drmaa already has. Maybe that is the best place to start and then we can extend from there. Is Travis CI enabled here?

Nope.  Nothing yet.

Would you be willing to do that? I could copy over the testing code. Just don't think I have permissions to add CI is all.

Do you know how I can give you that permission?

Think I need to have admin on the repo as it requires the ability to add webhooks. Not sure if there is anything more granular. Honestly don't know if I'd need admin for anything else. Leave it up to you whether to grant it or not.

OK, you have admin rights.  I guess the difference here is the owner/member of the org distinction?  Further reason to push on https://github.com/dask/dask/issues/3223

@jhamman @jedwards4b you two also now have rights on this repository

Thanks.
Agree that we need to figure out org rights. Will try to make next meeting so we can discuss more.
Enabled Travis CI, but told it to skip until there is a .travis.yml file.

Grid Engine should basically be just copying over what dask-drmaa already has. Maybe that is the best place to start and then we can extend from there. Is Travis CI enabled here?

You know, the funny thing is that if we got a testing system for GE then that might be enough motivation to implement an SGECluster here just to get the test coverage.  It's rare that one builds source to capture testing, but in this case the ratio of difficulty in writing testing code and source code is so great that it makes sense :)
Testament to @jedwards4b 's refactor of JobQueueCluster I guess :)

I have a fair bit of SGE experience, and a cluster that I could test this on apart from travis. I'd be happy to contribute the SGECluster. I'll open a separate issue.

Note that SGE was the model system for https://github.com/dask/dask-drmaa ,
the other library that is most like this repo.
Historically I worked on dask-drmaa a year or so ago.  Folks like
@jakirkham picked it up and have evolved it since then.  When I then
prototyped the PBSCluster for Pangeo I based it somewhat off of the design
of dask-drmaa.  As a result the two libraries have an interesting shared
history.
On Thu, Mar 1, 2018 at 9:14 PM, Joe Hamman<EMAIL_ADDRESS>wrote:

I have a fair bit of SGE experience, and a cluster that I could test this
on apart from travis. I'd be happy to contribute the SGECluster. I'll
open a separate issue.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask-jobqueue/issues/2#issuecomment-369797639,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AASszH8GqmRjB52i7QSZLAM2HhDKxNgDks5taKsFgaJpZM4SZIoH
.

In particular, we have a docker-compose setup for SGE that works well on
travis-ci.  If I recall correctly this was designed by @quasiben
On Thu, Mar 1, 2018 at 9:19 PM, Matthew Rocklin<EMAIL_ADDRESS>wrote:

Note that SGE was the model system for https://github.com/dask/dask-drmaa
, the other library that is most like this repo.
Historically I worked on dask-drmaa a year or so ago.  Folks like
@jakirkham picked it up and have evolved it since then.  When I then
prototyped the PBSCluster for Pangeo I based it somewhat off of the design
of dask-drmaa.  As a result the two libraries have an interesting shared
history.
On Thu, Mar 1, 2018 at 9:14 PM, Joe Hamman<EMAIL_ADDRESS>wrote:

I have a fair bit of SGE experience, and a cluster that I could test this
on apart from travis. I'd be happy to contribute the SGECluster. I'll
open a separate issue.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask-jobqueue/issues/2#issuecomment-369797639,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AASszH8GqmRjB52i7QSZLAM2HhDKxNgDks5taKsFgaJpZM4SZIoH
.

Can non member of the org see what's happening on travis-ci for any dask repository?
Shall we fork the repository if we want to test/check the CI build?

Yes, those links are public https://travis-ci.org/dask/dask
On Sun, Mar 4, 2018 at 9:32 AM, Guillaume EB<EMAIL_ADDRESS>wrote:

Can non member of the org see what's happening on travis-ci for any dask
repository?
Shall we fork the repository if we want to test/check the CI build?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask-jobqueue/issues/2#issuecomment-370233651,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AASszLzmvhD1EZ4iBsFNArOoaRYJuvFbks5ta_sPgaJpZM4SZIoH
.

How do you feel about using docker-hub provided images, such as https://hub.docker.com/r/pbspro/pbspro? Do we want to control the entire build cycle or not?
To go more into detail, this one depends on a build image with no Dockerfile provided (https://hub.docker.com/r/pbspro/pbsbase/), how do you feel about that too?
And lastly, I believe we want a minimaly representative test cluster, so with one master and two slaves such as what is done for dask/dask-drmaa, and not a one node master/slave cluster?

Ran across this dockerized slurm cluster today: https://github.com/giovtorres/slurm-docker-cluster

I propose to close this issue by opening more specific ones, e.g. one for PBS and one for SLURM. We already have basic CI with unit tests and for SGE.
Are you OK with this?

I think this issue can be closed with ##23, #27, #41 and #42.


Remove deprecated StandardParameter

@jenshnielsen great catch! did it now, also added changelog entry.

ripgrep is your friend :)

thanks :) i usually use the find-everywhere thingy in pycharm, but this time thought doing a PR from github will work ok, i was wrong))


Question about visualising differential optimizer in a computational graph

Hi,
I was trying to put a DifferentiableAdam in a graph in tensorboard for debugging purposes, but it fails with
Cannot insert a Tensor that requires grad as a constant. Consider making it a parameter or input, or detaching the gradient
pointing to one of the variables inside the optimizer (exp_avg).
Do you think this would be possible?
Below is a minimal example I came up with:

assume we don't know the formula for a vertex of a parabola
the goal is to find (a, b, c) for a parabola with specific properties (e.g. with vertex at y=11)
outer loop optimizes parameters a, b, c for the parabola with some restrictions
inner loop is finding the vertex of a parabola, using the differential optimizer

import torch
import higher
from torch.utils.tensorboard import SummaryWriter

def transform_a(init_a):
    # limits a to range (0.1, inf) to make sure a > 0
    return torch.exp(init_a) + 0.1

def transform_b(init_b):
    # limits b to range (-1, 1)
    return 2 / (torch.exp(init_b) + 1) - 1

def transform_c(init_c):
    # limits c to range (0, inf)
    return torch.exp(init_c)

def true_vertex(abc):
    # Compute the (x, y) coordinates of parabola with coefficients a, b, c
    a = abc[0]
    b = abc[1]
    c = abc[2]
    x = -b / (2 * a)
    y = a * x ** 2 + b * x + c
    return x.detach().numpy().item(0), y.detach().numpy().item(0)

def parabola_value_at_x(x, abc):
    y = abc[0] * x * x + abc[1] * x + abc[2]
    return y

def meta_loss_fn(found_vertex):
    x, y = found_vertex
    # Minimize (y-11)^2, in order to find a parabola with vertex at 11
    loss = (y-11)*(y-11)
    return loss

class ParabolaVertexFinder(torch.nn.Module):
    def __init__(self):
        super(ParabolaVertexFinder, self).__init__()
        self.offset = torch.nn.Parameter(torch.tensor(0, requires_grad=True, dtype=torch.float32))
        self.params_list = [self.offset]
        self.params = [{'params': self.params_list}]
        self.optimizer = torch.optim.Adam(self.params, lr=3e-2)
        self.diff_opt = higher.optim.DifferentiableAdam(self.optimizer, self.params_list)

    def inner_loss(self, x, abc):
        # Simply return the value of parabola at x since we want to find the vertex and a > 0
        # therefore lowest value of parabola = vertex
        return parabola_value_at_x(x, abc)

    def step(self, x, abc):
        loss = self.inner_loss(x + self.offset, abc)
        new_params = self.diff_opt.step(loss, self.params_list)
        self.offset.data = new_params[0]
        return self.offset

    def forward(self, x, abc):
        STEPS = 10
        for _ in range(STEPS):
            offset = self.step(x, abc)
        return offset

def main(write_graph=False):
    initial_abc = torch.tensor([1, 2, 3], dtype=torch.float32, requires_grad=True)
    META_STEPS = 100
    meta_params = [{'params': [initial_abc]}]
    meta_opt = torch.optim.Adam(meta_params, lr=0.1)
    for i in range(META_STEPS):
        meta_opt.zero_grad()
        model = ParabolaVertexFinder()
        # Transform the initial values with nonlinearities to limit their ranges
        abc = (transform_a(initial_abc[0]), transform_b(initial_abc[1]), transform_c(initial_abc[2]))
        input_x = torch.randn(size=(1,), dtype=torch.float32)

        found_x = input_x + model.forward(input_x, abc)
        found_y = parabola_value_at_x(found_x.detach(), abc)
        if (i + 1) % 10 == 0:
            print(f"--- Outer optimization step {i} ---")
            print("Ground truth: %.3f, %.3f" % true_vertex(abc))
            print("Found:        %.3f, %.3f" % (found_x.detach().numpy().item(0), found_y.detach().numpy().item(0)))

        meta_loss = meta_loss_fn((found_x, found_y))
        meta_loss.backward()
        meta_opt.step()
    if write_graph:
        model = ParabolaVertexFinder()
        abc = (transform_a(initial_abc[0]), transform_b(initial_abc[1]), transform_c(initial_abc[2]))
        dummy_input = torch.tensor(5, dtype=torch.float32)
        with SummaryWriter(log_dir='output') as w:
            w.add_graph(model, (dummy_input, abc))
            w.flush()
    abc = (transform_a(initial_abc[0]), transform_b(initial_abc[1]), transform_c(initial_abc[2]))
    print(f"Parabola coefficients found: {abc}")

main(write_graph=True)

There are two separate issues here:

You are trying to figure out why tensorboard is barfing when you try to add your model.
You are trying to figure out why you are not seeing gradients defined for your chosen meta-variable.

I'm happy to help a bit here, but your code is quite complex and I am spread a bit thin. Let's focus on 1 for the moment:
Run your code with python -m pdb ... and try to step up the stack trace during post mortem until you can identify which tensor it is complaining about. If it isn't part of self.diff_opt, I would suggest the error is not to do with higher.
If you are unfamiliar with pdb, there's a good guide in the docs: https://docs.python.org/3/library/pdb.html

Thanks for getting back to me!
From what I understand, it complains about the state dict of the self.diff_opt:
File "parabola.py", line 66, in forward
    offset = self.step(x, abc)
  File "parabola.py", line 59, in step
    new_params = self.diff_opt.step(loss, self.params_list)
  File "[...]/python3.6/site-packages/higher/optim.py", line 249, in step
    self._update(grouped_grads)
  File "[...]/python3.6/site-packages/higher/optim.py", line 345, in _update
    state['exp_avg'] = exp_avg = (exp_avg * beta1) + (1 - beta1) * g
RuntimeError: Cannot insert a Tensor that requires grad as a constant. Consider making it a parameter or input, or detaching the gradient
```
I wanted to note that I'm not monkeypatching any Module, simply consider the DifferentiableOptimizer sort of as a "recursive layer" within another one - do you think this might be the problem?

Sorry this fell through the cracks. I'll take a look ASAP.


Allow to pass _preCollection options

#585

@Gariest please leave a comment and mention me after you will push requested changes.
So I won't miss it, and merge your awesome PR  😉

@dr-dimitru Done. Sorry for letting you waiting. Cheers.

LGTM!
Thank you @Gariest

@Gariest thank you for contribution, published as v1.9.9.
Let me know how it works on your end.