Add SonarQube (SonarCloud) analysis

As a HSC maintainer I would like to enable SonarQube analysis (in SonarCloud) in order to further improve quality and in particular security.

Sonar analysis can be found here: https://sonarcloud.io/project/overview?id=aim42_htmlSanityCheck


CDMUtil  runtime version not supported anymore

Azure Function runtime version of CDMUtil (3.1) not supported anymore:
https://learn.microsoft.com/en-us/azure/azure-functions/functions-versions?tabs=v4&pivots=programming-language-csharp#run-the-pre-upgrade-validator

Please fix this as soon as possible!   This utility is critical in our ability to research and consume FnO data.  Also, the download zip file gives error when unzipping - file name is to long.


Allows user to put their API key in the server side

Is it possible?

You can do that by setting the VITE_OPENAI_API_KEY environment variable to your API key on the machine or container that the server is running from.


W-14106012-For sorting dateTimes descending the negative value needs to be creat…

…ed with millis
See https://help.mulesoft.com/s/article/Comparing-dates-using-orderBy
Writer's Quality Checklist
Before merging your PR, did you:

[ ] Run spell checker
[ ] Run link checker to check for broken xrefs
[ ] Check for orphan files
[ ] Perform a local build and do a final visual check of your content, including checking for:

Broken images
Dead links
Correct rendering of partials if they are used in your content
Formatting issues, such as:

Misnumbered ordered lists (steps) or incorrectly nested unordered lists
Messed up tables
Proper indentation
Correct header levels

[ ] Receive final review and signoff from:

Technical SME
Product Manager
Editor or peer reviewer
Reporter, if this content is in response to a reported issue (internal or external feedback)

[ ] If applicable, verify that the software actually got released

@ca-stefan-cordes Thank you for your contributions. We have put it in our queue to evaluate.

Closing this PR as the feedback has been addressed here: https://github.com/mulesoft/docs-dataweave/pull/282


Update to mediapipe facemesh

As it looks the tfjs facemesh model is deprecated, do you know of any idea of how to use this with MediaPipe's facemesh instead?
https://google.github.io/mediapipe/solutions/face_mesh.html
Any guidance would be appreciated, thanks so much

I wouldn't feel confident enough for a PR on this, but to drop some further information, it looks very similar in a lot of ways, but the results from the facemesh library linked above come in like
function onResults(results) {
  const {multiFaceLandmarks} = results;

  // [
  //   ...468 items
  //   { x: 0.4, y: 0.6, z: -0.1 }
  // ]
}

They're all values from 0-1
Atm i am exploring using it by doing
geo.update({
  scaledMesh: multiFaceLandmarks[0].map(vec => Object.values(vec))
})

But its not 100% correct yet, but works without erroring and does create a mesh


Some monster info gets cut off on the left side.

This module has quickly become one of my favorites. However, it seems there is a problem.
Most monsters work wonderfully but some get completely cut off on the left side, hiding their saves and other important information, as in the example below.  I have confirmed it happens with all other modules disabled.

It would be good if we could at least expand the box so we could see the cut off information.
EDIT: Upon some investigation, the two times this is happeneing are both with a Longbow in their inventory (the Erinys above and a Drider).  I added a longbow to another creature as an experiment and it also had information cut off on the left side, when without the longbow it was fine, so it seems like it's something to do with the length of the list of weapon traits, as the more traits a weapon has, the more cut off the left side becomes. Hope that helps.

The option to scroll the page with a mouse would work too

I haven't specifically done anything about this in the newly released v0.8.6 (it slipped my mind 🙄), but it's more useable now at least, since the left section of the creature view will not get pushed away anymore.

I just released v<IP_ADDRESS>. It fixes texts getting too long in general, so it shouldn't happen anymore.

Closing this issue. 😎👌


Add command to print out number of containers

Command is /docker number_of_containers <all | running | stopped>


Enable choosing the fit strategy

What's the issue?
In the past, we observed that sometimes, and under certain conditions, minuit might not find a "valid" minimum for the fit. There are a few different solutions to this issue:

Continue the fit with higher precision
Use a different minimizer routine to begin with
Increase fit precision to begin with

What does this PR add?
In this PR, we enable choosing a fit strategy. For this, we add _fit_strategy attribute to the StatisticalModel class, which is used in the fit() and confidence_interval() method if not specified otherwise.
The _fit_strategy is a dictionary with the following entries:

Entry
Functionality
Options

minimizer_routine (Default: "migrad")
the minimizer routine to use
"migrad", "simplex", or "simplex_migrad" (first run simplex, then migrad)

minuit_strategy (Default: 1)
"strategy" property of Minuit. The higher the number, the more precise the fit but also the slower.
0, 1, or 2

refit_invalid (Default: True)
if True, refit with the simplex_migrad routine and strategy 2 if the optimization does not converge the first time.
True/False

disable_index_fitting (Default: False)
If True, disable the index fitting introduced in #156 even if the model has index parameters.
True/False

max_index_fitting_iter (Default: 10)
Maximum number of iterations for index fitting
any integer

The last two are not new but were direct arguments of the fit method before.
There are a few ways to override the defaults on different levels:

Add fit_strategy with all/some overrides to your running config file and the strategy will be used for every computation of the runner
Initialize the statistical model with custom fit_strategy dict.
For an individual fit or confidence interval computation, pass a custom strategy to the method call. This can for example be used to compare performance and time requirements for different strategies before committing to one of them.

How does the default behavior change?
The only difference in the default behavior is that invalid minima are now refit by default, which was not possible before. So far, the Minuit strategy was not specified and the Minuit default of 1 was used, which is the default also now. Also, the standard minimizer routine remains migrad as before.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>2
Details

32 of 37 (86.49%)  changed or added relevant lines in 2 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.2%) to 92.0%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

alea/model.py
31
36
86.11%

Files with Coverage Reduction
New Missed Lines
%

alea/model.py
1
85.95%

Totals

Change from base Build<PHONE_NUMBER>8:
-0.2%

Covered Lines:
1587

Relevant Lines:
1725

💛  - Coveralls

Looks good. But then you also need to update the OSG submitter.

@dachengx I only modified the submitter base class since all other submitters will parse additional arguments tot the base class or am I missing something? Unfortunately, I can't test this behaviour though.

@dachengx at least on midway this seems to be working fine. Any reason why it shouldn't work for the osg submitter? Maybe also @FaroutYLq can have a guick look 😊

@hammannr I think it should work for OSG, since in principle the new fit_strategy things should just show up in the ticket generator outputs, and collected here. I didn't do test though (and it is nontrivial to test on OSG until this alea is in environment)

After some internal discussions, we decided that the standard behavior should be that the strategy is defined in the config file of the statistical model and that it can be overwritten by values in the runner. I added this functionality now i.e. runner fit strategy > stat. model fit strategy > default fit strategy.


Implement and use fake clients

Coverage decreased (-5.02%) to 90.889% when pulling 993a25826d5f9ca09fcd568eb8ed7da78a82be53 on fake-client-tests into f7070054dd9e5d3c0f66e4e9d31ed8221a337e03 on add-security-raml-and-fake-impl.


Added note to make creating pull request on Nordix optional.

Can one of the admins verify this patch?


[HIGH] [API Reliability] Investigate the minimal data we need to send in the SearchForReports response

Problem
Coming from here
The SearchForReports command is returning lots of data that we probably do not need to show on the Finder page; the OpenReport command would load anything else we need. This is a big payload that is unnecessarily large for the Finder page.
Solution
Let's make sure we send the reports in order to display them on the finder page, and with only as much data, we really need to display them. cc @quinthar

Note for myself, @marcaaron investigated and posted here that the slowest part of the command is actually the query, so looking into ways to reduce how much data the query returns will probably be the most productive.
Some other ways to speed up the command that were mentioned in that thread:

Only returning the actual reports we are going to show the user
We could conceivably have the client pass the reportID at the “bottom” of the current search result to SearchForReports. The order of the reports would need to be stable between the client and server first (not certain if this is the case today). We should be able to re-design it to work this way.

Took some time today breaking down the searchByKeywords query, trying to understand each piece, and theorizing a few ways to reduce what the query is doing. I also ran the chat report generator and generated 1000 reports in my local DB to use for testing.
Something interesting that I found was that this portion of the query contributes pretty significantly to the total query time, something like 30%.
(SELECT GROUP_CONCAT(displayName) FROM
    (
        SELECT JSON_EXTRACT(detailsNVP.value, '$.firstName') || JSON_EXTRACT(detailsNVP.value, '$.lastName') AS displayName FROM sharedReports s
            INNER JOIN nameValuePairs detailsNVP ON detailsNVP.name = 'expensify_personalDetails' AND detailsNVP.accountID = s.accountID
        WHERE s.reportID = r.reportID
        UNION ALL
        SELECT JSON_EXTRACT(detailsNVP.value, '$.firstName') || JSON_EXTRACT(detailsNVP.value, '$.lastName') AS displayName  FROM nameValuePairs detailsNVP
        WHERE detailsNVP.name = 'expensify_personalDetails'
            AND detailsNVP.accountID = r.accountID
            AND r.accountID != 0
    )
) AS participantDisplayNames

I also think something like a getCriticalReportData() that is used in some places instead of getChats() might be helpful?
We can time how long the Report::getChats() part of this command takes by using timestamps and logging the result. I was chatting with @neil-marcellini about this earlier today - but in the context of OpenApp.

this portion of the query contributes pretty significantly to the total query time

Yes, some reports can have a lot of participants in sharedReports so getting their details could be expensive.

looking into ways to reduce how much data the query returns

The query itself returns no data - only reportIDs. Report::getChats() is run after to get the data so that's what this ticket is about reducing (not trying to discourage you from optimizing the query though - anything we can learn there would be great).

Only returning the actual reports we are going to show the user

I'm not sure about this. Haven't observed it myself. If this is happening it means that the frontend is filtering out results that the backend assumes it should be showing. No idea where the difference is with that.

We could conceivably have the client pass the reportID at the “bottom” of the current search result to SearchForReports. The order of the reports would need to be stable between the client and server first (not certain if this is the case today). We should be able to re-design it to work this way.

This would be a larger project I think. It is basically suggesting we implement pagination for LHN searching.

Got it, I'll look into ways to optimize the getChats query specifically for SearchForReports next, thanks for your insight @marcaaron!

The query itself returns no data - only reportIDs. Report::getChats() is run after to get the data so that's what this ticket is about reducing (not trying to discourage you from optimizing the query though - anything we can learn there would be great).

Hmm based on some investigating the logs of some slow requests I feel like there are some cases where the query to search by keywords is way too slow.
At most, the query in getChats will be passed 100 reportIDs, so I feel like it won't get that slow.
Here's a request where the searchForKeywords query took 103 seconds: https://www.expensify.com/_devportal/tools/logSearch/?#query=request_id:("890147f41fedbc5d-ZRH")+AND+timestamp:[2024-06-07T13:22:05.076Z+TO+2024-06-07T15:22:05.076Z]&index=logs_expensify-028822

Anyways I'll redirect my attention at reducing the data sent back first, seems that's the lower hanging fruit here, although the slow queries are definitely alarming.

Have a draft PR up. Does some things that help to drastically reduce the number of lines returned in SearchForReports for each report:

Omits a few keys that aren't used in report options

'lastReadSequenceNumber' => $lastReadSequenceNumber,
'lastVisibleActionLastModified' => $reportSummary['lastVisibleActionLastModified'] ?? $lastVisibleActionCreated,
'oldPolicyName' => (string) ($reportSummary['reportNameValuePairs'][Report::NVP_OLD_POLICY_NAME] ?? ''),
'visibility' => $visibility ?: null,
'hasOutstandingChildRequest' => $reportSummary['hasOutstandingChildRequest'] ?? false,
'hasParentAccess' => $reportSummary['hasParentAccess'] ?? null,
'writeCapability' => $reportSummary['reportNameValuePairs'][Report::NVP_WRITE_CAPABILITY] ?? ChatReport::CAPABILITY_ALL,
'description' => $description,
'isDeletedParentAction' => $reportSummary['isDeletedParentAction'] ?? null,
'fieldList' => count($reportFields) ? Policy_Utils::formatReportFieldsForOnyx($reportFields) : null,
'total' => $reportSummary['total'] ?? 0,
'unheldTotal' => $reportSummary['unheldTotal'] ?? 0,
'currency' => $reportSummary['currency'],
'nonReimbursableTotal' => $reportSummary['nonReimbursableTotal'] ?? 0,
'isCancelledIOU' => (bool) ($reportSummary['isCancelledIOU'] ?? false),

Omit sending back any keys that have falsey values. The front-end already handles setting defaults for these keys, so there's no need to send them back.

^ After some more investigation I found that my approach was wrong.
The real issue with what we're doing in Onyx is we're treating all report types the same. There are many fields (like the "total" or "currency" fields, for example) that don't apply to chat reports at all, but we still send over a field like total: 0, even though it has nothing to do with the report.
I'm going to go through each report type, find the minimal amount of data needed to display it as a search option, and ensure we only send over that data for that specific report type.

Posted some discussion here

After analyzing this response:

Even though we return those reports, all of them are filtered out in the front-end for some reason which makes the huge API response completely useless
Each of the reports returned has a HUGE amount of participants, which also leads to us sending back a huge amount of personal details, all of which are not important to display the reports.

So my next steps are to:

[ ] Figure out why the reports are getting filtered out in the front-end, and either fix it (if its buggy) or apply the same filtering in the back-end so we don't send huge reports. In order to do so I'm going to add some logs at all the places where we filter out report options and have David repeat the request.
[ ] Figure out which reports need the participants/personal details and minimize the amount of participant data we send back from the back-end.

Had some great discussion here and we've landed on yet another new approach:

I update the GetChats mega-query to stop querying participants/personal details for rooms when we are searching for reports. This should reduce the response size greatly and also speed up the performance of SearchForReports
Update the front-end to not include rooms in search when their participants match the search term

This is not too far off to what I've done currently but I will need to make further modifications to my PRs, specifically modifying the getChats query. I've stuck both PRs that are under review back onto draft mode while I iron this out.

More progress with the PRs today! Should be close, just need another review

Just merged the Auth PR

Auth PR was deployed, this is done!


Add dataFormat awareness/filtering to Protocols

Currently we aren't/limiting bucketing using the dataFormat property in protocol object definitions, and should be. Let's add that filter/awareness where needed.

#320 addressed this.


cv2.copyMakeBorder segmentation fault

Expected behavior
ValueError: passed image has wrong shape. Expected to have 3 dimensions, has 4.
Actual behavior
31807 segmentation fault (core dumped)
(neither stack trace nor place of occurred error provided which is very inconvenient to debug)
Steps to reproduce

example code

import cv2
import numpy as np

# Example image.
# May also be an image loaded with opencv-python with np.expand_dims(img, 0) or similar.
img = np.zeros((1, 256, 256, 3), dtype=np.uint8)
cv2.copyMakeBorder(img, 1, 1, 1, 1, cv2.BORDER_CONSTANT, value=[0, 0, 0])

operating system:
Ubuntu 16.04 (64-bit) in Docker 18.09.0.

architecture (e.g. x86):
Intel® Core™ i5-7500 CPU @ 3.40GHz × 4.

opencv-python version:
opencv-python==<IP_ADDRESS>

You can examine the core dump with gdb. There, you should see the C-level stack. There can not be a Python stack because on a segmentation fault, the OS terminates the process, Python has no chance to do anything (nor is it safe to try to do anything tbh).
If you're going to run in under debugger after this though, note that you may need to adjust Docker settings for breakpoints to work.

Thank you for your fast response, @native-api!
Do you confirm it as a bug and if so is it a bug on python or C level? I suppose in case if C code can't work with 4-D tensors there should be a check in python to prevent such cases.

You should open an issue to the upstream repository at https://github.com/opencv/opencv/issues. All code related to OpenCV is implemented in C++. Only Python code in this repository is the __init__.py wrapper which imports the statically built OpenCV binary. It's very likely that this issue cannot be fixed here unless the issue is somehow related to the build process.

@skvark ok, I will. Thanks, closing then.


ServiceNow CMDB support

Is there a plan for adding ServiceNow CMDB support? In absense of ServiceNow CMDB, we are not able to leverage Hygieia Executive Dashboard.

Is it possible to provide some kind of mapping of data model of servicenow and hpsm with respect to CMDB collection to create a collector?


How to make MixPanel Javascript API calls?

I'm probably dense, but I didn't see in the doc/example whether I can use mixpanel javascript functions with Angulartics, i.e. can I use something like the following just as if I was using MixPanel directly:
 <script type="text/javascript">mixpanel.identify("smrdmstrg");  mixpanel.people.set_once({      "$created": new Date(),      "$first_name": "Olivier"  });</script>

Yep, you can call mixpanel directly after it has been loaded on the page. Angulartics-mixpanel is just a wrapper around the core functions.

Related to my initial question, it's not clear to me how you're supposed to create and capture your own Mixpanel (event or people) properties via Angulartics. Is it possible via declarative tracking, or do you need to use the Angulartics API? Examples would be great, because the Angulartics-Mixpanel example only covers the basics.


Merge master to HDDS-2823

Testing master merge

I think this PR is now invalid after PR #1957

This is not needed as PR #1957 takes care of this.


Drop event

I'm trying to create a timeline and use the techniques from the Visjs example merged with your adapter and I'm having difficulty get events to fire at all.
http://visjs.org/examples/timeline/other/drag&drop.html
Could you provide an example for binding a simple event?

Figured it out... I feel dumb right now haha

How you figure it out?


Run time error of Java Temurin 21.0.1 application on macOS Catalina mac mini

Please provide a brief summary of the bug
I created a statistical application https://github.com/G-String-Legacy/GS_MV in Intellij IDEA 2023.1.
It is built with Gradle 8.5 and Temurin openjdk 21.0.1
It works properly within the IDE, and on installed versions on Linux and Windows. I pulled it to Intellij on a mini mac Catalina. It built and compiled properly. But on 'run', I got:
:run FAILED
2023-12-25 09:26:07.194 java[1985:42297] ERROR: macOS version is 10.15, which is below the minimum of 11.0
Did you test with the latest update version?
I used a Temurin  21 download as of today: Dec. 25 2023.
The Intellij scan report is at: https://scans.gradle.com/s/o74prjaxzjsui/console-log/task/:run?anchor=23&page=1

Please provide steps to reproduce where possible
No response
Expected Results
I expected the application to run, as Temurin openjdk 17 had run previously
Actual Results
it does not run, but fails
What Java Version are you using?
openjdk 21.0.1 2023-10-17 LTS OpenJDK Runtime Environment Temurin-21.0.1+12 (build 21.0.1+12-LTS) OpenJDK 64-Bit Server VM Temurin-21.0.1+12 (build 21.0.1+12-LTS, mixed mode, sharing)
What is your operating system and platform?
It runs on Ubuntu and Windows 10, but fails on macOS Catalina. I don't have other mac machines to try it out
How did you install Java?
I used the default mac package installer
Did it work before?
worked with version 17 on mac-mini Catalina, and 21 on Ubuntu and Windows10

Did you test with other Java versions?
see above

Relevant log output
:run FAILED
2023-12-25 09:26:07.194 java[1985:42297] ERROR: macOS version is 10.15, which is below the minimum of 11.0
Exception in thread "main" java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1135)
Caused by: java.lang.RuntimeException: java.lang.ExceptionInInitializerError
	at javafx.graphics@21.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:300)
	at javafx.graphics@21.0.1/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:292)
	at javafx.graphics@21.0.1/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:162)
	at javafx.graphics@21.0.1/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:651)
	at javafx.graphics@21.0.1/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:409)
	at javafx.graphics@21.0.1/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:364)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	... 2 more
Caused by: java.lang.ExceptionInInitializerError
	at javafx.graphics@21.0.1/com.sun.glass.ui.mac.MacPlatformFactory.createApplication(MacPlatformFactory.java:36)
	at javafx.graphics@21.0.1/com.sun.glass.ui.Application.run(Application.java:146)
	at javafx.graphics@21.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:290)
	... 8 more
Caused by: java.lang.RuntimeException: Unsupported macOS version
	at javafx.graphics@21.0.1/com.sun.glass.ui.mac.MacApplication._initIDs(Native Method)
	at javafx.graphics@21.0.1/com.sun.glass.ui.mac.MacApplication.<clinit>(MacApplication.java:55)
	... 11 more

@Papa-26 Java 21+ is not supported on Catalina - you'll need to downgrade to Java 17.0.9 or upgrade your Mac OS X.


MoltenVK was built without full bitcode Error

I'm finding it unusually difficult to build MoltenVK with bitcode for iOS. I noticed that the target MoltenVK-iOS has "Enable Bitcode" set to "Yes", but I still get "MoltenVK was built without full bitcode Error" when archiving my app with MoltenVK.framework. I have to add the user defined setting "BITCODE_GENERATION_MODE" with value "bitcode" on the MoltenVk and MoltenVKShaderConverter projects to build a framework with bitcode. Is this expected or am I missing something? I'm usually building with the "MoltenVK Package (Release) (iOS only)" target.
Also, in order to build the dylib with bitcode I had to add "-fembed-bitcode" to the create_dylib_ios.sh script.

Thanks for reporting that. It's the first we've heard of it.
Are you able to submit a pull request to add the changes that you needed to make?
If you do work on a PR...the organization of the build scripts just changed with PR #325...so pull the latest from the repo and merge locally first.

I submitted a pull request. I'm not 100% sure if this is what you want to do though. From my limited experience most libraries that I use I Archive them to create the bitcode, but I don't believe doing the Archive action on MoltenVKPackaging targets produced the libs. I'm not sure if I tried archiving the more specific MoltenVK-iOS target.

Ok, so I forgot how I used to get libs built in release with bitcode. I believe because Vulkan's dynamic layers are new to me and because MoltenVK includes a target that builds for release. On Xcode, building for release and Archiving have some differences, like the bitcode difference that I mentioned in my pull request.
For other libraries I commonly use, like SDL, I would use the Archive action in SDL Xcode project to build for release with bitcode. I would then go get that lib or framework from the derived data. I'm not sure if that's how I should have been getting release/bitcode builds all along. Regardless, This same method does actually work with MoltenVK without setting "BITCODE_GENERATION_MODE=bitcode." Although, I still don't see anyway to build the dylib with bitcode without adding the "-fembed-bitcode" flag to the build script, since it's built by the script and not Xcode.
So I'm not sure what's the best practice for getting a release build with bitcode.

Thanks for the PR submission. Closing this now.


Deprecate stash chart

https://github.com/kubernetes/charts/pull/4957
Signed-off-by: tamal<EMAIL_ADDRESS>

cc: @prydonius


data seeded with an example application

Discussed in https://github.com/effordDev/sf-application/discussions/97

Originally posted by Jfeger310 January 12, 2024
Could the repo house a sample application? that comes with the deployment?  like maybe a test one that shows all the record types options, like an application for a block party....maybe except custom flow, but the normal stuff.

@Jfeger310 closing this issue. We can re-open if needed.

@Jfeger310 closing this issue. We can re-open if needed.


Ctrl + F - filter tables on Oracle SQL developer or MySql seems not working

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version:
OS Version:

Steps to Reproduce:

This issue is caused by an extension, please file it with the repository (or contact) the extension has linked in its overview in VS Code or the marketplace for VS Code. See also our issue reporting guidelines. If you don't know which extension is causing the problem, you can run Help: Start extension bisect from the command palette (F1) to help identify the problem extension.
Happy Coding!


Add Middleware to Statistics

Middleware don't extend a base class or implement an Interface. So we have to find a good way to reliably detect Middlewares.
ComponentConfiguration

Some possible heuristics:

Typically reside in the App\Http\Middleware namespace
Have a handle method with two or more parameters
The first is usually named $request and (sometimes) type hinted with Illuminate\Http\Request
The second is usually named $next and typically type hinted with Closure.

@thecrypticace I don't like the first option (0.) because I don't want to rely on the default namespace. I work on a project where we don't follow the normal App-namespace and this approach would ignore our Middlewares.
But I think I could implement a mix of the rest. Find classes which have a handle-method with said signature. As a second option I could also look into the Http/Kernel.php use the declared Middlewares.
Thanks for the input 👍

Yeah, renamed namespaces will cause an issue. You can also read the composer.json file as an attempt to guess the namespace.
The Http/Kernel bit is also a pretty good idea.

+1

Illuminate\Routing\Router has getMiddleware and getMiddlewareGroups methods that might be helpful.

Added in #28


Add pipeline to production org

Add a pipeline on the main branch, should deploy on push event to main branch

deployed to main


Powershell example for SPO is not correct

Hi, the powershell cmdlet and example are not correct
Register-SPODataEncryptionPolicy  https://contoso.sharepoint.com
command "Register-SPODataEncryptionPolicy" sowan't require the URL
Regards
Alan

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

ID: 1bbe84f4-e076-750f-62b7-842c9cd03736
Version Independent ID: 3380a064-f592-a639-fc4f-35ec021438a3
Content: Manage Customer Key - Microsoft 365 Compliance
Content Source: microsoft-365/compliance/customer-key-manage.md
Service: o365-seccomp
GitHub Login: @KCCross
Microsoft Alias: krowley

Cmdlet instruction updated. Thx for the feedback!


refactor: remove method alias

We are targeting ESLint v8 now, some methods already exist on context.sourceCode, so we don't need method aliases anymore.

@JounQin


New Debian 11/bullseye docker file

Based on Ubuntu 22.04

@swift-ci test

@swift-ci test

@schafdog Thanks for adding Debian 11 Dockerfile. Does the Docker image work with ./swift/utils/build-toolchain script?

Hi @shahmishal
I have only tried the build-script --prefix=buildbot_incremental_linux
Which parameters should I run the build-toolchain script with?

for example: ./swift/utils/build-toolchain swift --test

hmm it doesn't seem like the build-script has genererated the expected result. But I am not seeing an error/crash anywhere in the logs. How much memory does the build script requires?
Will try again but if you have any hints for debugging this, I would appreciate.

I have successfully built using the build-script and your sugested command:
End of the log looks like this:
Total Duration: 13564.91 --- Build Script Analyzer --- Build Script Log: /home/build-user/build/.build_script_log Build Percentage 	 Build Duration (sec) 	 Build Phase ================ 	 ==================== 	 =========== 32.0%             	 4335.67               	 linux-x86_64-llvm-build 18.6%             	 2523.67               	 linux-x86_64-swift-build 10.8%             	 1471.53               	 linux-x86_64-swift-test 5.4%              	 733.46                	 linux-x86_64-lldb-build 4.0%              	 537.5                 	 Running tests for swiftdocc 3.6%              	 486.35                	 Running tests for swiftpm 3.5%              	 474.41                	 Running tests for swiftdriver 2.8%              	 384.82                	 Building swiftpm 2.3%              	 306.94                	 linux-x86_64-lldb-test 1.9%              	 257.22                	 linux-x86_64-foundation-test 1.8%              	 250.63                	 Building sourcekitlsp 1.7%              	 231.86                	 Installing swiftpm 1.6%              	 220.98                	 Building swiftdocc 1.4%              	 190.78                	 Installing swiftdocc 1.1%              	 152.42                	 linux-x86_64-foundation-build 1.1%              	 142.57                	 linux-x86_64-libicu-build 0.9%              	 120.05                	 Building swiftdriver 0.9%              	 117.26                	 linux-x86_64-package 0.9%              	 115.46                	 Building benchmarks 0.8%              	 114.34                	 Installing swiftdriver 0.4%              	 55.8                  	 Running tests for sourcekitlsp 0.4%              	 49.53                 	 linux-x86_64-foundation-install 0.3%              	 47.16                 	 linux-x86_64-llbuild-build 0.3%              	 46.04                 	 linux-x86_64-llbuild-test 0.3%              	 40.8                  	 Building indexstoredb 0.3%              	 39.08                 	 linux-x86_64-libicu-test 0.2%              	 30.12                 	 linux-x86_64-libdispatch-test 0.1%              	 18.24                 	 Running tests for indexstoredb 0.1%              	 17.59                 	 linux-x86_64-xctest-test 0.1%              	 16.4                  	 linux-x86_64-libdispatch-build 0.1%              	 10.89                 	 linux-x86_64-llvm-install 0.0%              	 5.45                  	 linux-x86_64-xctest-build 0.0%              	 5.23                  	 Running tests for cmark 0.0%              	 4.14                  	 Building cmark 0.0%              	 3.21                  	 linux-x86_64-llbuild-install 0.0%              	 2.89                  	 Installing sourcekitlsp 0.0%              	 1.57                  	 linux-x86_64-swift-install 0.0%              	 1.08                  	 Running tests for benchmarks 0.0%              	 0.56                  	 linux-x86_64-lldb-install 0.0%              	 0.24                  	 Installing swiftdoccrender 0.0%              	 0.22                  	 linux-x86_64-libicu-install 0.0%              	 0.19                  	 linux-x86_64-xctest-install 0.0%              	 0.19                  	 Cleaning swiftpm 0.0%              	 0.11                  	 linux-x86_64-libdispatch-install 0.0%              	 0.1                   	 Cleaning swiftdriver 0.0%              	 0.06                  	 linux-x86_64-llvm-test 0.0%              	 0.04                  	 linux-x86_64-extractsymbols 0.0%              	 0.03                  	 merged-hosts-lipo-core 0.0%              	 0.03                  	 merged-hosts-lipo Total Duration: 13564.91
Is this what is to be expected?

Yes, thanks!


test: Use the new httpd and Fedora

httpd 2.4.58 is now available, the download link has changed
use fedora38 image

Yes, it was a bit stupid. I dropped the version from the folder, it seems like the best solution. (WORKDIR directive is a bit pain and tar has a wonderful interface...). If you have a better idea, I'll take it.

 I dropped the version from the folder, it seems like the best solution. (WORKDIR directive is a bit pain and tar has a wonderful interface...). If you have a better idea, I'll take it.

That solution looks sufficient to me. Thanks!

Thanks @jajik !


Distinct Approach to Java Floating Point Arithmetic and StrictMath Method Value Underflow and Overflow Correction.

Dear Microsoft,
I wish to submit this message here as a reply to
https://github.com/microsoft/openjdk/issues/267
but in reference to your 'Microsoft Build of the OpenJDK', which lives here, as you will know, at:
https://www.microsoft.com/openjdk
Java floating point errors occur by means of a representation issue to do with using the IEEE 754 floating point binary equation scheme during storage and arithmetic, and key class methods, involving floating point dot separator (“decimal point”) types in Java, namely, float and double, along with incorrect implementation in method logic inside the java.lang.StrictMath class.
Floating point errors in Java do occur in the decimal and hexadecimal “units in the last place” and further, beyond the end of digit accuracy to the right of the he dot separator, as is visible from the System.out.println() method.  When they do occur, there is either a binary overflow or underflow.  Those results, when converted back to base 10 or 16, break the contiguous range property of a ranged base 10 and base 16 number line, at an unknown magnitude to the represented base 10 or 16 value that is higher or lower than digit range accurate.  At such an error instance, the wrong mapping is produced, as a duplicate to another mapping, and the correct mapping is skipped.
The following is a version of the IEEE 754 floating point binary number formula used in Java for float and double.:
n2=(-1)s*m2*2e(10)-(L-1)

It is defined by the the sign of the number's positivity or negativity, mantissa (data digits) of the registry in binary (m2), the exponent of the registry in binary (e2) which is the position of the dot separator from its presumpt starting point; this is all for a 32 bit or 64 bit numbers in Java (float or double), which are the value(s) for L, 32 or 64.
It is impossible to understand who could possibly, in any meaningful way, need or rely on, to start with, exactedly, an inconsistent and chaotic number value system, particularly in base 10.  It is  an error and a bug situation that should be corrected by a Java language vendor, and even the IEEE in their document which seems to be the origin of this.
Some people might claim that they want value approximations, noting a time reduction involved.  But more important is the need for accuracy, which full and concrete thinking justifying and with no fuzziness involved.
Floating Point article published by Princeton University:
(see the section on Real-world numerical catastrophes.)
https://introcs.cs.princeton.edu/java/91float/
Java JDK/JRE Java runtimes generate floating point arithmetic or java.lang.StrictMath overflow and underflow errors within values as a result of Java source code like this, either in the defaulting base 10 mode, but also when hexadecimal notation for base 16 numbers starts to be used, which is denoted with a 0x inside float and double, the two Java homes of floating point.  These are presently all error phenomena which can and aught be fixed.  The classic example exists on the next page:
//The Java Language.  Arithmetic only, no comparisons.
import static java.lang.System.*;
public class Start
{
    public static void main(String ... args)
    {
    out.println("Program has started...");
    out.println();
    float a = 0.1F;
    float b = 0.1F;
    float c = a*b;
    out.println(c);
    double d = 0.1D;
    double e = 0.1D;
    double f = d*e;
    out.println();
    out.println(f);
    out.println();
    out.println("Program has Finished.");
    }}

Program has started...
0.010000001
0.010000000000000002
[0.01]
Program has Finished.
The standard that Java turns to for floating point, non-integral arithmetic is IEEE standard 754.  While the IEEE is the home of the MAC address wordlwide, its standard document 754 doesn't specifically say anything about the base 10 or base 16 digit degradation via overflow or underflow that does happen at the right hand side of floating point decimal and hexadecimal number type value data past the dot separator, past the end of accuracy.  The view which is somewhat older now that floating point can be an approximation trade-off for range accuracy, which is not contained in its name, which only implies mobile positioning of the dot separator, has become more than problematic.  This is a view which is now compromising further access to the alternative of approximation, which must carry more weight.
One of the primary views around numbers, arithmetic and functions in modern times is that binary is for computers, and denary is for human beings.  An approach which mixes these two up at the same time, while not maintaining separation between these concerns, only leads to logic confusion and errors.  In the OpenJDK, float and double are the main offenders of this, however a similar problem occurs with java.lang.StrictMath method calls.  Most importantly, this happens in relation to base 10, but base 16 will have the same problem, within the two Java floating point types.  All examples of such are logic errors, that need to be repaired in either a default or mutual way, simply because denary accuracy is required out of a compiled and running Java program as efficiently as possible.  Relevant Computer hardware that the writer of this document has in mind is the Desktop PC, running any ubiquitous operating system, or as configured as a database or internet server, as of 2022.  Hardware and OS platforms that Java continues to install on by default.
Error workarounds are used to try to cover floating point errors, being BigInteger, BigDecimal, and the big-math function library and similar, in Java.  They introduce an entire tier to Java software which isn't needed.  BigInteger and BigDecimal are slow and produce a loss in speed, are larger in RAM and waste memory, and don't allow the use of arithmetic operator source code syntax.  To say nothing about the absence of an included data accurate type calculator class.  But BigInteger and BigDecimal only work outside classes or interfaces; if the internals of library classes or interfaces are written naively, or in any floating point error vulnerable fashion, and cannot be decompiled and are source code inaccessible, or are bound with other (unknown) computer language(s) in that state of affairs which won't be changing in the context, you are stuck with value errors being able to occur and corrupt the software.  Things that developers and their programs always need good and better solutions for.
The IEEE should include or state something new in its standard 754 to encourage software language vendor(s) to implement floating point arithmetic more completely for overflow and underflow concerns, but if it doesn't, while the difficulty of change grows, programmers and vendor(s) are left to act on their own somehow.  Oracle and the Java Community process have not apprehended repeated bug requests on their bugs system, and have chosen not to act further despite multiple discussion attempts about the reasons and needs involved, on their relevant public email lists.  While it would be most appropriate for the most upstream vendor to implement these corrections, in face of a total refusal, the best remaining option for corrections that should, must, happen is to inquire of other vendors, being the purpose of this document.
We had thought that Microsoft would not see itself as a downstream vendor of any software product, particularly within the Java Ecosystem.  It can be the case that distinct software is the key to the edge, in root terms, along with the fact that these vaunted changes make very little compatability change, are in the end really bug and error corrections with some consequences, and can even be used at choice via mode switching or even a separate patch to the main Java line, providing even more choice.  The notion of Java plugins has been begun with some vendors, but so far has not been taken very much further for the language itself.  Microsoft has the opportunity to compete in a plugin domain which is just getting started.
Floating Point correction, in its most commensurate manner in relation to where the OpenJDK is right now (2022), can't be done with total compatibility, but can be done with majority compatability without its present errors.  The entire change set per one version of Java can be contained in a separate, optional installation patch.  There can be a floating point mode on/off switch for the runtime, classes, interfaces, fields, methods and operators with data, the only way to make floating point types and values range accurate without changing or removing the IEEE 754 equation binary mapping scheme is to augment or lengthen the 32 bit or 64 bit array, by some unknown and varying amount.  The impacts of that in the Java language in hardware, but particularly the associated default Java libraries, are simply too huge to justify, along with departing from 32 and 64 bits in strict terms.  The only other alternative, which is to adjust the curve equation and the binary to decimal and hexadecimal mappings Java uses for floating point storage and arithmetic evaluation to floating point storage of those types of data, despite adherence to standard or anything that that does (and in the end doesn't) mean:
n2=(-1)s*m2*2e(10)-(L-1), for positive or negative e10,
e10-(L-1)>=0

At the moment, the equation treats whole numbers and fractional values in decimal or hexadecimal differently.  If the curve treated fractional values and whole values exactly the same, as digits parallel and integral around 1 and 0, then the present representation problems will go away.  There are penalties involved with that suggested approach, but they are better than escalating calculations raising further difficulties.  The decimal and hexidecimal number line are held as two contiguous intervals, of two “integers” both left and right of the dot separator.
The numbers to the right of the dot separator are considered by starting from the largest accurate digit, just right from the dot.  Exponents of 2 are chosen to ever add up to the increasing smaller detail of that “integer”, proceeding to the right until all original digits run out.  Digits to the right of the dot separator are considered as one giant natural number, stopping at the rational number's conclusion, rightmost  That first interval is turned into decimal using this updated equation and the shown updated curve to the diamond values, to start with, indicated on the graph.  Once all the digits right of the dot separator, moving right, are finished, your decimals or hexadecimals are finished.  You start again from zero, presuming integers, to the leftmost digit of the dot separator, and proceed left, until the last digit is processed and converted. All that is the second interval, and is concatenated to the left side of the first inverval.  Once the position of the dot separator is determined, from its relative start, the exponent value is updated to its position.  If any of these processes break the limits allows for 32 or 64 bit numbers, then they have to be out of range, and either a compiler or runtime error can be thrown.  This may be, for float,Float,double,Double that anything in the compiler has to be touched.
A) The first penalty is that the fractional value ranges will end up having to parallel the whole value ranges, which will mean a range reduction from the first state of affairs, this:
Java Primitive Floating Point Range Approximate Examples.
float, Float:      32 bits, (+/-)(1.40*10^(-45),  3.40*10^(+38))
double, Double:    64 bits, (+/-)(4.94*10^(-324), 1.79*10^(+308))

to this:
Java Primitive Floating Point Range Approximate Examples.
float, Float:      32 bits, (+/-)(3.40*10^(-38),  3.40*10^(+38))
double, Double:    64 bits, (+/-)(1.79*10^(-308), 1.79*10^(+308))

With no way to count the number of floating point error base 10 results, and no unit conversion for any reciprocal, asymptotic fractions, yet by percentage calculation from the absolute value of the exponent of 10, I calculate approximately the following range losses will be involved:
Percentage (%) Value Range Loss for Floating Point Corrected Types.
float: 32 bits, aprox. -15.56% general range loss.
Double: 64 bits, approx. -4.94% range loss.

The partial values will have to miss out for a shorter range, but in fact an accurate range without multiple holes and false duplicates in it; instead of a flawed range that lacks internal number mappings outright, and responds by issuing incorrect, repeated number maps.  It can be argued that since it is not contiguous, and contains floating point errors, than in mathematical terms, there is no continuous or contiguous range present in float and double.  It will also be the case that the vast majority of the time, in practice, and by obtaining float and double values through System.out.println(), these differences will almost all of the time never be visible or relevant anyway.
B)  Floating point arithmetic binary value calculation will have to change.  The bit manipulation and production will be different, and in a new context of different ranges.  There will be no final decimal or hexadecimal digit rounding, just sheer truncation, and the ability to still perform the inverse of the previous arithmetic operation accurtely should give the exact same original result, a property which is almost always there now, but may need a little improvement.  There is integer but decimal division too, comparisons with positive and negative whole and decimal values also, and even decimal positive and negative remainders from the relevant operator. The Java floating point arithmetic operators are:
+, -, *, /, %, +=, -=, *=, /=, %=, ++x, --x, x++, x--.

I have included the increment and decrement operators.  It is the belief that systematic change on key use points called upon by systematic code will solve many problems, that it will correct other code by pulling systematic approaches along with it, but the fact will be that due to issues involving fine access internal to the whole of this matter, via bits to or from data, will mean that some changes will not only wash over, or entirely be able to have compatibility from the old to the new.
C) java.lang.StrictMath has to be repaired.  The decimal values that it displays via System.out.println() all seem to be accurate, although I have not checked more deeply, meaning that farther, “deep” range values might have to be fixed.  But the methods create floating point errors too, somehow, and will have to be re-implemented.  Possibly by an appropriate C library, leveraged more carefully than not as present, with multi-platform final use still in mind.
D) What does this mean for Compatability, and Java class libraries?
It can mean that bit manipulation and shift operators that are used on type converted data values from and to floating point types won't be the same for decimal and hexadecimal data; that form of programming as its Java implementation stands now, will be separate to newer schemes, with previous, now “false facts”, about range values, and about how floating binary relates back to other numeric thresholds.  The bit manipulation and shift operators themselves are fine, its just the way that they can apply under the old way of doing things with floating point which will create distinct problems.  These will have to be at least checked or updated, for the entire standard library set of modules, classes and interfaces and possibly updated a bit for the new ranges.  Any 3rd party library classes or interfaces that use bit manipulation and shift operators to affect floating point data in an IEEE 754 presumptive manner outside Java's own included default libraries will have to be avoided, or dealt with in broader manner, a subject I am researching at the present time.  Most of the time, 3rd parties don't do this, or the issue can be sidestepped anyhow.
It means that anything around float and double that is written to file, read from file, communicated or finely processed may have to change, particularly use that presumes the IEEE arrangement very particularly.  How float and double and their values compiled to file will not change, because the range is to be shrunk slightly in base 10 and 16, not enlarged, combined with how it is compiled right now, but what the compiler can accept and a range limit warning will have to be changed in the compiler at least.  Functions named for IEEE could be ignored, since type conversions and other use functions will do the updated, requested work.  They could be replaced internally, or they can be given companion methods that just perform the same general task, with consideration to the new state of things.  Generic programming will not require change, a phenomenon this Java correction enterprise will rely on, since flexibility is a key advantages to reducing the workload.
D) Things like Serialisation, Remote Method Invocation RMI may or may not have to change, depending on how information gets associated and then apprehended for transmission.  It depends on how they finally act, or what they do or don't presume as they read or write or process.
In Java, the ranges for float and double are asymmetrical around one, with more provision for digit fractions.  By changing the equation by half, you gain the perfect mapping accuracy of the positive part of the curve into the smaller values part as well, dispensing with the complexity, gaps and false, spurious mappings that floating point is presently heir to from flawed logic, leading to neglect and erroneous circumstances, with no warning and in no coherent magnitude or direction that can be efficiently repaired within equivalent syntax and no range internal replacements being necessary at all.
Is the Microsoft Java team able to update its JDK and JRE offerings for all platforms, to either repair at default or at switched capability, these floating point logic errors?

Is the Microsoft Java team able to update its JDK and JRE offerings for all platforms, to either repair at default or at switched capability, these floating point logic errors?

If we make this change, our JDK will not be compatible with the Java SE specifications, and therefore not compatible with any existing application or allow apps to be interchangeable with JDKS from other vendors.
Therefore, we cannot apply this change in our JDK.
If you seek this change to be applied to Java, please send this proposal to the OpenJDK project. You may start a discussion in the General Discuss mailing list: https://mail.openjdk.java.net/mailman/listinfo/discuss
Thanks,
Bruno

Oracle and the Java Community process have not apprehended repeated bug requests on their bugs system, and have chosen not to act further despite multiple discussion attempts about the reasons and needs involved, on their relevant public email lists. While it would be most appropriate for the most upstream vendor to implement these corrections, in face of a total refusal, the best remaining option for corrections that should, must, happen is to inquire of other vendors, being the purpose of this document.

We have gone through this process at this end, and as outlined here, have been totally shut down, for all forseeable time into the future.  Which creates an impossibility.
If MS take this matter on, compatability will almost be totally there, since only a smaller percentage of decimal and hexadecimal values will be lost at the smallest range end for float and double.  So small, that by all general used means, even via System.out.println(), that their digits never (can't) even be typically displayed; the data difference is relatively very miniscule.  Also, a patch could be released alongside the mainline release, consisting of all correction and updating changes, alowing for compatability and floating point correction lines of the JDK.
The larger matter is that of floating point overflow and underflow, via the present scheme, which leads to decimal and hexadecimal value logic errors and assignment errors.  This compromises arithmetic and a contiguous number line.  StrictMath feeds into this problem as well.  This state of affairs is allowed via the Java SE specifications, which means that they, alongside IEEE 754 are incomplete, and under application like this, are allowing through non digit accuracy, with no Java language level choice.  Both standards have the flaw of shortcoming.  This means that "approximation tradeoff" floating point number types obstruct efficient and range accurate programs, if they need to leverage secured Java libraries that can't have floating point vulnerable code change.  BigInteger, BigDecimal, big-math workarounds only work on the outside of other Java resources, which may be impossible to floating point change or correct at the inside of say, a unique and necesssary Java class.  Is the best response to Java floating point underflow and overflow an error within compatability?
Broadly, compatability can be attained with this change correction matter, if a dual pronged and optimistic approach is taken with floating point math in Java.  MS can find advantage, for itself and others, if it facilitates more than just a uniform compatability Java ecosystem, where all JDK and JRE binaries are free to download for commercial use, operate the same language entirely the same, where there is no particular distinction and therefore no particular advantage for programmers, software vendors, and users.  Are the Java people at MS prepared to reconsider this proposition more closely, by means of all this?


I already am on 10.12.1 and the app complains that I need this version to run it 🙄

Please read this project's README file carefully. You will need a specific build of 10.12.1: build 16B2657.


tools/testbuild.sh breaks non-git usage

Regarding commit 27142b2e3c4c6498dc198818ec9b260d8ffff12f, this means
that tools/testbuild.sh now depends on git and on the NuttX
distribution being a git clone.
The problem with depending on git is that users who work with release
tarballs and/or don't have git can no longer use NuttX.
We should not clean with git unless doing so in a git clone. If not a git clone, we should invoke 'make distclean' as we were doing previously.

Being that it is testbuild script I think that's less of an issue but this looks to me like it should fallback to make distclean if it cannot use git. Have you verified that that is not the case?

Being that it is testbuild script I think that's less of an issue but this looks to me like it should fallback to make distclean if it cannot use git. Have you verified that that is not the case?

Yes. The logic to run 'make distclean' is removed.

Also per the mailing list discussion (here), this git clean invocation will remove other untracked files which the user may want to keep. I understand that it's a testbuild script but somewhere down the line someone will run it for whatever reason and it can cause a big problem.

Maybe we can make a flag for that as an extra layer of protection, but the issue you opened is that this breaks non-git environments which does not look right to me.

Being that it is testbuild script I think that's less of an issue but this looks to me like it should fallback to make distclean if it cannot use git. Have you verified that that is not the case?

Yes. The logic to run 'make distclean' is removed.

It was left. There is an OR issued now so if the git fails I would expect make distclean to run.

as @btashton btashton said, the fallback logic is still there. didn't it work for you?
i submitted a patch to make the use of "git clean" optional. https://github.com/apache/incubator-nuttx/pull/701

Being that it is testbuild script I think that's less of an issue but this looks to me like it should fallback to make distclean if it cannot use git. Have you verified that that is not the case?

Yes. The logic to run 'make distclean' is removed.

It was left. There is an OR issued now so if the git fails I would expect make distclean to run.

You're right, I stand corrected. Somehow I missed it before but now it looks obvious.
I think PR 701 is a good idea anyway, because of Greg's concern (in the mail thread I linked previously) that the git clean invocation would delete other non-versioned data which the user might want to keep.

I agree, just wanted to make sure we had not missed something.


Support encoding/decoding non-Long numbers

Currently when I try to decode an integer to a Int, I get an error. This is inconvenient, and confusing.
Exception in thread "main" com.akuleshov7.ktoml.exceptions.IllegalTypeException:
Line 2: <Int> type is not allowed by toml specification, use <Long> instead (key = port; value = 8080)

import com.akuleshov7.ktoml.Toml
import kotlinx.serialization.Serializable

fun main() {
  Toml.decodeFromString(ServerConfig.serializer(), """
    host = "localhost"
    port = 8080
  """.trimIndent())
}

@Serializable
data class ServerConfig(
  val host: String,
  val port: Int,
)

Comparison with Kotlinx Serialization
This is confusing because it does not match the behaviour of Kotlinx Serialization JSON. Technically, the JSON spec states that any number can be of any magnitude or precision (so basically KxS should only support BigDecimal or BigInteger), but KxS allows for numbers to be en/decoded with any numeric type - Long, Short, Double, Float - including unsigned numbers.
import kotlinx.serialization.Serializable
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json

@Serializable
data class ServerConfig(
  val host: String,
  val port: Int, // Int is allowed
)

fun main() {
  val config: ServerConfig = Json.decodeFromString(
    """
    {
      "host": "localhost",
      "port":<PHONE_NUMBER>21321312313213213132123132131
    }
  """.trimIndent()
  )
}

KxS throws a runtime error when it encounters an invalid number
Exception in thread "main" kotlinx.serialization.json.internal.JsonDecodingException: Unexpected JSON token at offset 35: Numeric value overflow at path: $.port
JSON input: {
  "host": "localhost",
  "port":<PHONE_NUMBER>21321312313213213132123132131
}

Work arounds
Custom Serializer
I have tried to work around this with a custom serializer, but I get the same error.
internal typealias IntAsLong = @Serializable(with = IntAsLongSerializer::class) Int

private object IntAsLongSerializer : KSerializer<Int> {
  override val descriptor: SerialDescriptor =
    PrimitiveSerialDescriptor("IntAsLongSerializer", PrimitiveKind.LONG)

  override fun serialize(encoder: Encoder, value: Int) = encoder.encodeLong(value.toLong())

  override fun deserialize(decoder: Decoder): Int = decoder.decodeLong().toInt()
}

@Serializable
data class ServerConfig(
  val host: String,
  val port: IntAsLong,
)

.toInt()
Manually converting on-the-fly with config.port.toInt() is possible, but inconvenient, especially if the value is used in a lot of places.
Secondary value
I guess it's possible to create a secondary value to expose the actual value...? But this is weird and confusing.
@Serializable
data class ServerConfig(
  @SerialName("port")
  private val portLong: Long = 8080,
  val host: String = "localhost",
) {
  @Transient
  val port: Int = portLong.toInt()
}

Request
I would like ktoml to coerce numbers to the value in the @Serializable class. If the raw value is not suitable (for example, it is too large), then ktoml should throw an exception.
Versions

Kotlin 1.7.21
Kotlinx Serialization 1.4.1
ktoml 0.3.0

yeah, we thought about that with @NightEule5, TOML standard (as we understand it) prohibits the usage of INT.
But there is absolutely no problem to support it

https://github.com/akuleshov7/ktoml/pull/153#discussion_r1003114861


Using rest parameters in JavaScript type annotations seems broken in 3.1

TypeScript Version:  3.3.0-dev.20181121

Search Terms: js, javascript, A rest parameter must be of an array type
Code
//@ts-check
/** @type {(...bar: string[]) => void} */
function foo(...bar) {}

Expected behavior:
Doesn't report any errors. Type of  bar parameter is string[].
Actual behavior:
asdf.js:3:14 - error TS2370: A rest parameter must be of an array type.

3 function foo(...bar) {}
               ~~~~~~

Found 1 error.

VS Code intellisense shows bar is string instead of string[].
TypeScript 3.0.3 works as expected, 3.1.1 and later versions don't.

It appears to work if you use an @param tag, so there's always that workaround for now.

This was fixed by #39473.


[BUG] streamblasters: list index out of range; can't fetch the title from search result

Describe the bug
The search result works well but while requesting the title from the search result, the app executes an error.
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
Nil
Error
The name of the provider [actvid]: streamblasters
None
[!] Please Enter the name of the Movie: thunivu
https://streamblasters.art/?s=thunivu
[1] Thunivu (2023) Tamil MOVIE

[q] Exit!

[s] Search Again!

[d] Download!

[p] Switch Provider!

[sd] Download Whole Show!

Enter your choice: 1
https://streamblasters.art/movies/thunivu-2023-tamil/
[!] An error has occurred |  list index out of range

Desktop (please complete the following information):

OS: Windows
Version: 10

Additional context
Nil
Possible cause
Nil
Possible solution
Nil
Version
0.6.0

I know i am working on a fix

For some reason some return this
{"embed_url":"<iframe width=\"720\" height=\"304\" src=\"https:\/\/dood.re\/e\/faoi37d5c63785y70eh5o794mk7frvqq\" scrolling=\"no\" frameborder=\"0\" allowfullscreen=\"true\"><\/iframe>","type":"dtshcode"}
and some this
{"embed_url":"https:\/\/dood.wf\/e\/b3vuro2m0j22je5si06ib82o350hg2l9","type":"iframe"}

For some reason some return this {"embed_url":"<iframe width=\"720\" height=\"304\" src=\"https:\/\/dood.re\/e\/faoi37d5c63785y70eh5o794mk7frvqq\" scrolling=\"no\" frameborder=\"0\" allowfullscreen=\"true\"><\/iframe>","type":"dtshcode"}
and some this
{"embed_url":"https:\/\/dood.wf\/e\/b3vuro2m0j22je5si06ib82o350hg2l9","type":"iframe"}

I don't what this couldn't be, but I think this might related to some like the program have problem getting the correct resolution maybe they have different resolutions for some contents. I'm not sure, I maybe completely wrong.

fixed

fixed

still having the issue.
The name of the provider [actvid]: streamblasters
None
[!] Please Enter the name of the Movie: thunivu
https://streamblasters.art/?s=thunivu
[1] Thunivu (2023) Tamil MOVIE

[q] Exit!

[s] Search Again!

[d] Download!

[p] Switch Provider!

[sd] Download Whole Show!

Enter your choice: 1
https://streamblasters.art/movies/thunivu-2023-tamil/
https://dood.re/e/fqcbjyvy43ennpkvdarvaq5g7x8ejrl6
https://dood.re/e/fqcbjyvy43ennpkvdarvaq5g7x8ejrl6
https://dood.re/e/4x9edroehs9h3tg2xktcgxmjlbr01fv
[!] An error has occurred |  list index out of range

The name of the provider [actvid]: streamblasters
None
[!] Please Enter the name of the Movie: varisu
[1] Varisu (2023) Tamil MOVIE

[2] Varisu (2023) Tamil Audio launch HQ HDTV MOVIE

[q] Exit!

[s] Search Again!

[d] Download!

[p] Switch Provider!

[sd] Download Whole Show!

Enter your choice: 1
https://streamblasters.art/movies/varisu-2023-tamil/
https://dood.re/e/8vaymo7l9m11b3bf76qzbsjcem62s79u
https://dood.re/e/8vaymo7l9m11b3bf76qzbsjcem62s79u
https://dood.re/e/a7xrjcl1y1q3c71td7us2jvtchn4gim
[!] An error has occurred |  list index out of range

@R3tr0Ananas i just found out, that the video is not available for that both content in dood. if possible, can also add the stream sb server along the doodstream to streamblasters?


Bugfix reproducibility & ensemble member order with dask

This PR (hopefully) fixes 2 issues:
#337: Strange artifacts showing up in the STEPS nowcasting due to the random order of the ensemble members in the numpy array when using dask multi-threading
#346: No reproducibility  of the (blended) STEPS nowcast results even when a fixed seed argument is given

Nice job @mpvginde! This looks fantastic and I'm curious to hear from @RubenImhoff about #337.
I was wondering, should we add an explicit test on reproducibility?

Great work, @mpvginde! I will have a look at the PR later this week. :)

Hi @mpvginde should we try to push your fixes quickly to master and release them? Do you need any support of the issues that are still open or you think this is now ready to be merged?

Hi @dnerini,
I noticed last week that in some cases, the result was also dependent on the number of dask workers used.
This should be fixed now with the last commit that I added.
I think this can be merged now.
I'm not sure why the Black check is failing though, If somebody could help me with that.
I did notice that the method used for generating the random numbers is using some deprecated numpy-functions.
If I find some more time I will try update the generation of random number to the latest best practices.
But for now this fix should be ok.

I think this can be merged now.

Brilliant! Just wondering if we should include the fix for the linda method too, as mentioned by @RubenImhoff?

I'm not sure why the Black check is failing though, If somebody could help me with that.
maybe you're using a older version of black locally? during tests we are using the latest available version

alright, I'm merging this, thanks a lot @mpvginde for the nice contribution!


Dev

a native websocket was added to solve the problem of certificate verification
esp32 configuration panel added
Authentication added to esp32 configuration panel
state types changed to better fit esp32 websoket

please @xkevin190 review this PR

pr # 69 will be mixed by this


Not exposed in HA integrations

Hi,
Firstly thanks for the efforts, much appreciated.
Could you maybe assist me? I have successfully downloaded the integration in HACS and i can see it in the relevant dashboards and file system, however the plugin is not exposed in HA integrations when I search.
Am I missing something obvious or doing something wrong?
Kind Regards

Hi,
I think you are almost there. You can try the following:

Click on "Developer Tools" on the left, and under "States" view the entities.
Under "Filter Entities" type "inverter". If the system works correctly you should see a number of entities ex.sensor.deye_inverter_id (in my case I called the inverter deye, but it may differ depending on  your configuration)

The screen capture in the readme was created by adding a card "by entity", and under "Search Entities" I just filtered by typing the name "deye" and selected multiple entities. The name "deye" was pulled from my configuration and may be different depending on your configuration.
Hope you have success.

Thanks for the feedback, I have however only downloaded the integration but can start it or even find the config to edit the ip address, I'm relatively new to custom plugins and I'm sure I've missed a step.
All i did was find the integration in HACS then click the download. cant figure out the next step.

You need only add a few steps:

You need to configure the router to give the inverter a fixed IP. This is important since the component will try to find the inverter at a specific IP.
Then get the serial number of the inverter-collector. The easiest way to do that is to open a browser and browse to the IP you specified above. The login with username "admin" and password "admin". On the web UI, under "Status" expand "Device information" and note the "Device serial number"
Then you need to add a few lines in the configuration.yaml file. There is a configurator that makes this relatively easy.

In that file, you just need to add an entry under "sensors" as follows:
sensors:

platform: solarman
name: SUNSYNK <- you can change this to the brand of the inverter
inverter_host: <IP_ADDRESS> <-- you need to change this to the IP you specified in step 1
inverter_port: 8899
inverter_serial:<PHONE_NUMBER> <-- change this to the serial number you got in step 2
scan_interval: 30

Then restart Home Assistant to accept the changes.

Thanks Bud,
All visible now, I made a noob error by "sensors" and not "sensor in the config

To add to this, i got all the entities showing but everything is set to "unknown" values
as far as i can tell everything is configured correctly

I have the same problem in HA no entities are unknown

And in integration after I have the following error

The message trace refers to a different piece of code. A quick google seems to point to here: https://github.com/MichaluxPL/Sofar_LSW3
It may be that the two components influence each other so I would recommend disabling the Sofar_LSW3 code  just to see if it makes a difference.
The good news is that both the LSW3 integration and this component uses the same protocol, so if one of them works, the other one should also work.

Well, unfortunately, despite the removal of that integration, I still have unknown entities

i still dont get a read out, where exactly can i see errors so i can try to bugfix?

You can look at the logs (Configuration | Settings | Logs) and click on "Load full home assistant logs" and see if you get any traces.
I have updated the readme.md file to help with installation. You can just go though that process as well to confirm that the configuration is correct. If the collector you have is incompatible, you can try the "Omnik Solar integration" that is newly added to HACS to see if that works.

The example code incorrectly states that the config needs to go under 'sensors:'  as pointed out above, this should actually be 'sensor:'
Regardless of that I seem to have the same issue as @xb385 - the integration has brought all the sensors in but they are all marked as 'unknown' - although very, very occasionally I see two of them change to 'LOOKUP'
This integration works just fine though (I have it disabled whilst I am trying to get yours working) https://github.com/robbinjanssen/home-assistant-omnik-inverter
This also appears to be using v5 of the connection so I really can't see any reason why yours won't work. Any more ideas ?

Thanks for pointing me to the typo in the documentation - I have fixed and pushed that.
I had a look at the other integration, and from what I can gather it uses a different method to obtain the data. Rather than using the modbus interface, it queries it directly from the web JSON API. So it is stil possible that the version is incompatible.
Apart from the version of the protocol, we also have the mapping of parameter ids to actual parameters. Ex 00BD being Battery Status. I have verified that against the solarman app, but in case Omik has a different app it may use a  different mapping and be incompatible?

Hi All,  Anyone got this working with Firmware version LSW3_15_FFFF_1.0.65 ?
IP has been updated and set static and SN updated in config file. All Sensors are stating Unknown

@StephanJoubert  I missed your point about Solarman app - yes, I can use this to see my details just fine - no issues there.
It looks like some of the figures are updating - but it's now at a consistent ten minute interval (not 30 seconds, which is what is in the config) : -

@StephanJoubert OK, many thanks anyway - it was worth a go!


[Enhancement] Playlist cover editing capability.

Is your feature request related to a problem? Please describe.
I'm always frustrated when I have to switch to iTunes or my other devices just to add or change the cover art for a playlist.
Describe the solution you'd like
I would like to be able to edit playlist covers from within the AME app.
Describe alternatives you've considered
iTunes, Apple Music on Android and iOS. All of these support cover editing.
Additional context
Just that.

This feature could be implemented into Cider. AME is currently in the process of sunsetting/finishing and any feature requests will be forwarded.

what's cider....?

AME is evolving into Cider, which does not depend on Apple music web.
Cider Repo

#417

alright i'll be waiting then.
the project looks promising.


Add email verification to the app

Summary:
Email verification must be added to the app to avoid anonymous logging in.
If there is authentication in the app so there must be email verification in the app so as to avoid anonymous log in to the app, this will restrict fake login and will be more safe.
Steps to reproduce:
I think this can be solved by using firebase authentication and email verification.
Device and Android version:
Device: Asus ZenFone Max Pro M1
Android Version: 9
Is it the stock version from the manufacturer or a custom ROM ?
Stock version
Commons app version:
2.11.0~93b948d20
Screen-shots:
In the below screenshots you can see there is no valid email in the mail section and by entering this also a user can log-in to the app.

Would you like to work on the issue?
Yes, I would like to work on this issue.

@neslihanturan @nicolas-raoul what you guys say about this issue?

Just chiming in. Commons (which is a global account for all Wikimedia projects), does not mandate the user to provide an email address.
Regardless, when one provides the email address a verification email is indeed sent to verify the email address. So, I don't understand what's missing here.

Yes email verification is said, but I'm saying without verifying email app must not start. I just wanted this, but I think it is not required.
thanks

Nice suggestion but I think that would make the flow inconsistent with that of the Commons website. So, its better to leave this here. Hope you'll find something better :slightly_smiling_face:

Yes, I don't think we need additional verification, unless WMF requires it from us for some reason.
I close the issue for now, but feel free to continue the discussion to bring new arguments.
Thanks for participating! :-)

Okay thnx for your help @nicolas-raoul and @sivaraam, one more thing earlier I forgot to add when sign in completes there is toast message "Account Created", and there is no message related to email verification, I think it should be like first "Account Created" and then "email verification sent" or we can do it "Account Created and email verification sent!". Is it good @nicolas-raoul and @sivaraam  please check this also for GCI if it is okay/good.
Thank you


How exactly are file arguments passed to the executables?

Consider the attached simplified workflow, in which the init cycle and only one ICON are being executed:
How are the actual file references passed around? For instance, in the call to the ICON executable, how are the locations of "icon input" and "grid file" passed to ICON? As positional parameters or via option flags (--grid-file <path_to_gridfile>). For further development of the AiiDA-powered runner, it would be very beneficial for us, if we could see how one would run the workflow without any workflow manager, by calling the executables / scripts manually, modifying file locations, etc.
Pinging @agoscinski and @leclairm.

In a meeting we clarified that the namelist is assumed to be in the same directory with a certain name. The aiida-icon plugin will take care of it (see calcjob input port). In our part of the code one has to only specify the name through our plugin interface (which we still need to decide how to do, here is the draft PR #20, but this is outside of the issue)


thunderbird*: 102.2.1 -> 102.2.2

Description of changes
https://www.thunderbird.net/en-US/thunderbird/102.2.2/releasenotes/
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

No security fixes, apparently.


Controller defined by "classic" style does not work

Expected Behavior
As shared into issue #7610  and implemented in Codepen by @kurkle, you could create a controller without extending the class.
Current Behavior
Using the dist/master (but it worked before with a version of 1 month ago), you got:
Uncaught Error: class does not have id
Steps to Reproduce
To reproduce, use the sample created by @kurkle for the other issue:
https://codepen.io/kurkle/pen/oNbMMyG
Environment

Chart.js version: dist/master
Browser name and version: FF 80.0.1

The pen was not registering the controller as documented.
It was doing Chart.registry.addControllers([Custom]).
Doing Chart.registry.addControllers(Custom) works though.
Because that example inherits the prototye, it can be registerid using Chart.register, which can handle both styles.
So, this does not work:
Chart.registry.addControllers([Custom]);

These work:
Chart.registry.addControllers(Custom);
Chart.registry.addControllers(Custom, Custom2);

Chart.register(Custom);
Chart.register([Custom]);
Chart.register([Custom, Custom2]);
Chart.register(Custom, Custom2);
Chart.register({Custom});

@kurkle Thank you! My fault, I didn't check the doc. Let me test it before closing this issue!
About

The pen was not registering the controller as documented.

I see that in the doc there could be a mistake about how to register a Global Plugin:
Global plugins
Plugins can be registered globally to be applied on all charts (a.k.a. global plugins):
Chart.plugins.register({
    // plugin implementation
});

@kurkle Thanks a lot again! It works as you described.


Udev and daemon

Create a udev rule that does the following:

Upon device removal
** Create a named /dev file for the ExpressCarduino
** Start the daemon pointed to that device
Upon device removal
** Stop the daemon

Would it be better if it was just in a config?


Skip pypy builds

Like here: https://github.com/conda-forge/gstools-feedstock/pull/11

Closing for now.


Add installation instructions for OpenShift

This commit documents the steps required to install Chains on OpenShift.
These steps are pretty similar to what's required for other components like Pipeline - https://github.com/tektoncd/pipeline/blob/main/docs/install.md#installing-tekton-pipelines-on-openshift
CC: @vdemeester @sbose78

thanks @concaf !!!

/lgtm


Getting cors error when trying to call Adyen payments api

Hi,
I am trying to call Adyen payments api to get all the payment methods that I enabled in Adyen account.
I am getting the below error when I try to call that API. I tried with the localhost server and AWS server as well.

Please help me on it to resolve this error.

@satyam21041997 Thank you for your reporting.
I believe that the error is about CORS issue (Cross Origin Resource Sharing). You can check more details here
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors
There would be 2 possible solutions here

Setup a proxy with the same domain as front-end page, so that front-end page can send request to this proxy server and redirect REST API call to Adyen.
Use pre-built UI options supported by Adyen in your front-end page instead of making API call by yourself. For details, please check out here
https://docs.adyen.com/online-payments/prebuilt-ui#components

Hi @leungkinghin ,
Can you please help me to provide more detail for the solution you have provided.
I also tried to add a localhost server to adyen account for allowed origin.

Please find the attached code for your reference.
PaymentMethod.txt

@satyam21041997
I think setting localhost as allowed origin would not help as it is not the actual domain URL of your page. Adyen platform cannot recognise where localhost is located.
Also, after i checked your attached code, you are adapting Adyen SDK to make API request. I would suggest you to raise a support ticket to Adyen directly in this case. Here we are supporting the integration between Commercetools and Adyen platform. Hope you could understand.

Hi @leungkinghin ,
Thanks for your response. I think you are right we can't use localhost URL as allowed origin.
Now my this issue is fixed I am calling Adyen payments API from AWS API gateway and it is working fine.
Can you please help me to add this integration to CommerceTools Sunrise application?
I am using AWS lambda for this.

Hi @satyam21041997
Thank you for your feedback.
I understand that you are trying to communicate with Adyen payment platform with application powered by the CT Sunrise.
Here are two possible strategies :

Communicate to Adyen API directly (I suppose it is the approach you are working on)
Persist your data into Commercetools platform plus this Integration.

Regarding point 2, you need to access and administrate one Commercetools project. And then setup API extension in it which would trigger synchronous call to this integration on AWS lambda when you update Commercetools payment
For more details how the entire flow works between this integration, CT platform and Adyen platform, please refer to our documentations below :
Overview
Integration Guide


Stops running, stuck on Servant's "Details" page

Preparation

[X] I tested the latest release
[X] I looked at other issues (even the closed ones)
[X] I read the Troubleshooting Guide

FGO server
NA
FGA build number
2283
Describe the bug
Stopped running on the 17th run.
Not clear why.
I tried to close it and resume, this is what I got:

Sorry for the low resolution.
I had a similar problem earlier today where it stopped on the 91st run, with the 2nd Servant's "Details" page opened.
Video
https://github.com/Fate-Grand-Automata/FGA/assets/153804255/a4c6cd37-fcd6-4ac9-bdce-57ff1156e7fe
Device model
LDPlayer9
Android version
9
Screen size
1920x1080
RAM
23.9 GB Total, 6.8 GB Available

I haven't had this happen again since. I guess I'll just close it.


Marketstack

Allows you to track the value of a stock as plot with historical data (weeks or months) or intraday data of stock  through marketstack api.
This applet has as features:

Customize colors of profits and loss.
Intraday or historical data
User define the time to make a new request (Minutes, hours or days).

Take a look to screenshots.

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

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

Merging this so you can test it out in beta (assuming you've signed up). To publish it we'll also need a default graphic added for the case when no config is provided. That allows users to see an illustrative preview of the app before they decide to go get their own API key.


some findings

Hello,
thanks for the nice ActivityPub meeting.
There are some initial findings and I made a CodeSandbox to play with it. Forgive me, I know it is a WIP …
In the README.md it is missing the import "reflect-metadata"; line.
Also it seems to act async and have the array of errors in the promise resolution (?)
validate(note).then(update);

As you can see in the codesandbox, it somehow assumes that the name property is required but I think it is not.

Should pass (name is not required) but does not

{
  type: "Object",
  id: "https://yuforium.com/users/chris/note-123"
}

It is superimportant that the type property can be an Array.
Many things can be Arrays in ActivityStreams …

Should pass (type can be an Array) but does not

{
  type: ["Article", "schema:NewsArticle"],
  id: "https://yuforium.com/users/chris/note-123",
  name: "with name",
}

properties which are marked as functional can't be an Array.

Should NOT pass (latitude must be functional) but does pass

{
  type: "Object",
  id: "https://yuforium.com/users/chris/note-123",
  name: "with name",
  latitude: [4.4]
}

thanks @sebilasse ! I really enjoyed participating in the meeting and look forward to the next one.  Really appreciate the comment and I will add fixes for all of the items you mentioned. Those will go out in 0.0.5 which I hope to release in the next couple of days.
One of the things that is not mentioned in the README is using class-transformer to transform properties in a Activity Streams json format to an equivalent JS object, which I will document this in the next release.  Having multiple types introduces an interesting possibility which would be to use Typescript mixins to provide behaviors to the classes that are created (something I was considering anyway) - so we could take advantage of composability here.  Anyway, I'll put in support for multiple types in the next release, and then look at switching from inheritance to composition after that.

So, I looked into it. The transformer is mentioned now. The problem:
This works just on the TS/JS/JSON level but it will not extend the JSON-LD @context
which would make other ActivityPub implementations aware …
I think, we can do better with some custom decorators.
In general, in redaktor any
• @context
• Actor, Activity, Object independent from @context
• media independent from Objects
gets its own URL and cid (same as in ipfs)
Then we can have a cache of contexts while decorating (cid) and even users could extend a system from anywhere (if allowed) and get an URL for the context.
I have put the decorators in a gist but it is in deno, sorry
https://gist.github.com/sebilasse/98aa5e5fa6718e5443cbe0d02e2e27eb
Trying to give a short demo …
Put this e.g. in test.ts and run it
deno run --allow-net --allow-env --allow-read --allow-write --allow-sys test.ts
import { Reflect } from<EMAIL_ADDRESS>import { context, id, type, container, protect } from "@jsonld";

@context("redaktor")
class ASBaseClass {
  @id("as:name") @container.set @type.string @protect
  name: string | string[];
  xy: any
}
@context("redaktor")
class MyClass extends ASBaseClass {
  @id("wdt:P2048") @type.integerPositive
  population: number;
  @id("redaktor:test") @type.idOrObject @protect
  protected anotherProperty: string;
  // SHOULD error cause protected:
  /*
  @id("as:name") @container.set @type.string
  name: string | string[];
  */
}

The above are shortcuts, you can also use it like e.g. @type("dc:kryptonite"),
The runtime validation I do is its own portable JSON, a https://json-schema.org
See "we can then restrict runtime validation further …" in the gist.
Let's have a next meeting.

note to me, it is missing some Object.assign to make runtime validation runtime typesafe
https://stackoverflow.com/a/41853194/1008547


Standardize formatting of manifests/x/XSplit/Broadcaster/4.5.2405.1807

Microsoft Reviewers: Open in CodeFlow

@wingetbot run

Manual Validation ended with:

10:15:51 AM:
2024-12-30 10:15:51.109 [CLI ] ShellExecute installer failed: 2

(Automated response - build 931.)

Manual Validation ended with:

11:20:58 AM:  finished with exit code: -1978335226                                          11:20:59 AM:
2024-12-30 11:20:57.463 [CLI ] ShellExecute installer failed: 2

Automated error analysis suggests -1978335226 may mean Running ShellExecute failed
(Automated response - build 931.)


Complete rewrite

A complete rewrite of the browser based orbit-web chat application.

fixes #13
close #14
fixes #15
fixes #18
fixes #19
fixes #20
fixes #31
fixes #34

Thank you @latenssi! 🙏 🎉
Looks good generally 👍 The changes this PR contains have been approved and merged before, so all good from that perspective.
Based on quick tests, we still have a lot of work to do to get on par with the previous version, but we've discussed extensively offline how to get there and this is reflected mostly in the roadmap document. What we should do, however, is to make sure to open issues for everything we want to change and improve in the future.
@latenssi I added a tag before-rewrite for the current master to make sure we have a clear cut between the old version and the rewrite (before merging this).
From my perspective, this is good go! 🚀 🤘👌


sharding options with grain

I think the following changes need to be made to work around https://github.com/google/grain/issues/351

Thanks for reporting the issue, @bgyoon. I see the confusion of where sharding_options should be provided. I'm checking with the grain team on this

see response

I was wrong on the grain issue, but I would still encourage making the change since ShardLazyDataset is deprecated and sharding is being moved from Sampler into Dataloader, proper.
Also, if you shard using IndexSampler, it's not a global shuffle. It's shuffled within a shard, which may not be an issue if your ArrayRecord is already shuffled(ours wasn't):
from grain._src.core import sharding
from grain._src.python import data_loader as data_loader_lib
from grain._src.python import samplers
from grain._src.python.data_sources import ArrayRecordDataSource

if __name__ == "__main__":
    data_source = ArrayRecordDataSource([
        str("grain/grain/_src/python/testdata/digits.array_record-00000-of-00002"),
        str("grain/grain/_src/python/testdata/digits.array_record-00001-of-00002"),
    ])

    data_source[0]  # pylint: disable=pointless-statement

    print("Shard in Sampler")
    for shard in range(3):
        print("Shard: ", shard)

        sampler = samplers.IndexSampler(
            num_records=len(data_source), shard_options=sharding.ShardOptions(shard, 3, True), shuffle=True, seed=0, num_epochs=1,
        )

        num_workers = 2
        data_loader = data_loader_lib.DataLoader(
            data_source=data_source, sampler=sampler, worker_count=num_workers
        )
        for x in data_loader:
            print(x)

    print("Shard in Dataloader")
    for shard in range(3):
        print("Shard: ", shard)
        sampler = samplers.IndexSampler(
            num_records=len(data_source), shard_options=sharding.NoSharding(), shuffle=True, seed=0, num_epochs=1,
        )

        num_workers = 2
        data_loader = data_loader_lib.DataLoader(
            data_source=data_source, sampler=sampler, worker_count=num_workers, shard_options=sharding.ShardOptions(shard, 3, True)
        )
        for x in data_loader:
            print(x)

Shard in Sampler
Shard:  0
WARNING:absl:Dropping 1 examples of 10 examples (shard 3).
b'0'
b'2'
b'1'
Shard:  1
WARNING:absl:Dropping 1 examples of 10 examples (shard 3).
b'3'
b'5'
b'4'
Shard:  2
WARNING:absl:Dropping 1 examples of 10 examples (shard 3).
b'6'
b'8'
b'7'
Shard in Dataloader
Shard:  0
b'0'
b'7'
b'1'
b'2'
Shard:  1
b'4'
b'8'
b'9'
Shard:  2
b'6'
b'3'
b'5'

Shard in Sampler messed up our training. Moving that into Dataloader seems to have fixed the issue. Since I fixed my issue by making the change, it is no longer an issue for me but I figured this information may be useful to some.

Hi @bgyoon , thanks for sharing the example. Looks like the main difference between "Shard in Sampler" and "Shard in Dataloader" in the above example is data order. Can you help me understand why the order produced by "Shard in Sampler" messed up with your training?

I experienced numerous grad_norm spikings before the change which was fixed after the change.

I suspected double sharding, which turned out to be incorrect. But still, the global shuffle vs shuffle within a shard issue stands. I conjecture that since our ArrayRecord files are not shuffled, only shuffling within a shard is causing sudden drift in data distribution, which causes grad_norm spikes and eventually messes up training.
For example, say we have list of ArrayRecords whose first portion is English, and the later portion is Korean. If it's even-split and shufffled, like IndexSampler is doing, when batch is constructed of size 1024, first 512 elements will be always English, and last 512 elements will always be Korean. I'd guess that wouldn't be considered well shuffled.
FYI, I also tried shuffling(with fixed seed, of course) list of ArrayRecord that feeds into ArrayRecordSource, but the issue persisted. I guess even though the file is shuffled, it was not global-shuffle enough. Also, our ArrayRecord files have different file size(for example, English file is much larger than Japanese file). Since shuffling list of files alone won't shuffle individual records within, it was not good enough. I could be wrong on this again though.
Considering, 1) this change fixed our issue 2) the theory sounds plausible 3) all of your document suggests you should be moving away from sharding with sampler, I'd recommend you make the same change.

Thanks for the details! It does looks like sharding in dataloader is the way moving forward. I'll run more tests on my side and make the change. Also I noticed drop_remainder = True doesn't work when passed into dataloader. Will fix that too.


Extension service creator tool defaults to a null path if Generated/Extensions does not previously exist

Overview
The extension service creator has an issue where the destination folder is null if the generated folder doesn't exist at the time of the wizard invocation. It turns out that the wizard is actually creating the folder, but it never re-sets its internal state after generating the default folder, which leads to this bug.
The fix here is to actually force a reconciliation of default folder state after creating the default extension folder.
This also adds a test to verify that it happens. Note that the test doesn't run in all cases - if you already have some local extension generated folder, it will no-op (to avoid blowing away local state). Still, this test should run on CI which will at least ensure that we have coverage of weird stuff happening.
Changes

Fixes: https://github.com/microsoft/MixedRealityToolkit-Unity/issues/7530

/azp run

/azp run


Use EMERGENCY instead of FATAL for some certificate loading errors

@ywkaras  suggested in #10958 that it'd be better to use EMERGENCY for these errors.
This PR updates that for both the client and server cert load failures. The corresponding Autest is updated also.

@maskit Do you mind approving this again? Missed an Autest update previously...