Warning triggered for navigation_with_keys

In many of the jupyter repos, we use pydata_sphinx_theme.  All of our docs builds have started failing with 0.14.2 with the warning about default value of navigation_with_keys changing.  Would it be possible to not trigger that warning?   This seems like a lot of additional work for such a benign change.  If this is going to be the policy of pydata_sphinx_theme in general, I'd like to know that as well so I can switch themes across the board.
https://github.com/jupyter/notebook/actions/runs/6634029880/job/18038165438

What we could do is raise it only if the value is not set, letting you with the easy navigation_with_keys: False to keep default behaviour without the warning.

That is how it was supposed to work. Maybe that conf.py change will be enough to silence the warning; if not we should make it work that way and then release a hotfix

In many cases we had no settings at all for the html theme.  If there were a new single setting to opt out of these warnings I'd use that, otherwise this is too much of a maintenance cost for us.

I can confirm that setting
html_theme_options = {
    "navigation_with_keys": False,
}

in conf.py silences the warning, as intended. The warning is also silenced if you set it to True if you prefer the old default behavior. It only warns if the option is unset. After the next release, the default in theme.conf will change from unset (None) to False and the warning will be gone for good.

closing as the fix is entirely in user's conf.py, no changes to the theme needed.  If I've missed something / the recommended fix doesn't work, please feel free to re-open.

That doesn't fix my issue, we already knew that, but it confirms that we won't use this theme.  Please reconsider the policy

This may be a total noob question, sorry if so, but why does Notebook use the -W option with sphinx-build? That's what is causing the doc build step in the CI to fail, correct?
I guess the thing that I don't understand here is that it seems that the theme needs a way to let users know about planned changes. But maybe it's an anti-pattern or unfriendly to CI systems to use a warning?

We use -W to catch legitimate warnings from sphinx when something won't render correctly.  Sphinx does not have this policy about warning about changing defaults from what I have seen.  Unlike pytest, we don't have fine-grained control over which warnings to suppress.  This is a theme, I trust the theme to have sensible defaults, and just update itself.

This is a theme, I trust the theme to have sensible defaults, and just update itself.

fair enough, and normally we don't warn about even very major changes like the recent accessibility-inspired color and style update. But this is a noticeable UX change for those who relied on it; we thought it was exceptional and so decided to warn.

If there were a new single setting to opt out of these warnings I'd use that, otherwise this is too much of a maintenance cost for us.

isn't the suggested change to conf.py providing just that?  Or are you asking for some setting that will silence all warnings we might someday ever generate?  We don't have such a mechanism in place.

We use -W to catch legitimate warnings from sphinx when something won't render correctly.

We do the same thing for our docs, and compare the captured warnings with a list of expected ones (there are some related to the "kitchen sink" page that we can't prevent because we don't control that page's content).  You could adopt a similar strategy, and safe-list this particular warning.

I'm reopening this issue because I'm willing to consider the perspective that warning here was inappropriate. We've had folks complain before about changes to private functions that we use in our __init__ so that influenced me to treat this more like a package (where we explictly now define a public API, and things like deprecation warnings are considered a normal good practice). I've not developed/maintained a theme prior to this one so if norms exist like "have sensible defaults and update yourself (without issuing warnings)" I am unaware of them.
Requesting @trallard @12rambau @choldgraf @jorisvandenbossche to weigh in here.

I can confirm that setting
html_theme_options = {
    "navigation_with_keys": False,
}

in conf.py silences the warning, as intended. The warning is also silenced if you set it to True if you prefer the old default behavior. It only warns if the option is unset. After the next release, the default in theme.conf will change from unset (None) to False and the warning will be gone for good.

I'm afraid that this isn't the behavior we're currently observing. Here are a couple of PRs from the cudf repo where runs in the last 24 hours are showing the warning:

First PR, along with the corresponding CI run and the output line showing the warning
Second PR, along with the corresponding CI run and the output line showing the warning

This is happening despite the fact that we set navigation_by_keys: True explicitly in our conf.py. Are we missing something here?

I think having an option like "suppress_warnings" would be enough to satisfy both sets of users.  The sphinx "-w" option to write to a file and post-analyze isn't ergonomic and isn't something I want to do across all the jupyter repos.

It seems there are 2 things to update before releasing a hotfix here:

[ ] add an option to silence all warnings from the theme to allow CI to rely blindly on the default parameters
[ ] make sure the warning is not issued when the parameter is set in conf.py

@drammock I'm happy with both of them.

This is a theme, I trust the theme to have sensible defaults, and just update itself.

@blink1073, thanks a lot for your trust but it seems many of our users are taking advantage of the customization options, and in previous releases we have received complaints for making changes in the default behaviors without notifying our users (thus the deprecation process). few examples:

change from search icon to search field
new search index
move the search from the primary sidebar to the header
add the show source to the secondary sidebar
move the read the doc flyout to the primary sidebar

@12rambau that sounds like a fair summary to me, thank you!  Perhaps more precisely, we'd like a way to silence this specific class of warning (changing default or behavior).   Although most other things that we'd care about should probably be errors not warnings.

This is happening despite the fact that we set navigation_with_keys: True explicitly in our conf.py. Are we missing something here?

@vyasr it looks like that line was added to your conf.py just yesterday (25 Oct): https://github.com/rapidsai/cudf/blame/branch-23.12/docs/cudf/source/conf.py#L109
Are you certain that https://github.com/rapidsai/cudf/pull/14323 was already merged into the base branch before those PR runs for https://github.com/rapidsai/cudf/pull/14328 and https://github.com/rapidsai/cudf/pull/14329 happened? At least on https://github.com/rapidsai/cudf/pull/14329 the doc-build CI is now passing: https://github.com/rapidsai/cudf/actions/runs/6654117636/job/18083387254?pr=14329

I'm not sure that I understand the nature of this issue perfectly, but I'll just note that I think it's not a good idea to raise Sphinx warnings just as a way of giving the user notifications (at least anything in a way that will fail with -W). I know a lot of projects that tell Sphinx to "fail on warning" in order to catch regressions in their docs.

@drammock I apologize, you're totally right and I missed that it had been added in the interim. It looks like we are seeing the correct behavior when the key is explicitly set. Thanks!

ok, #1542 adds a new config var surface_warnings that can be set to False to suppress all warnings generated in theme code.


Use Providers for injections

Inject in factory Provider instead of Value - that would allow to use Prototype Scope

done in 0.3.0


[BUG] Plugin is not working with the latest Craft-Blitz release (4.9.3)

See also the issue at https://github.com/putyourlightson/craft-blitz/issues/591
This error is only thrown if the relax plugin is enabled.

The latest version works with the latest changes in Blitz.

Thank you @ostark, it works now!

Hi @ostark
could you please do me (and maybe others) a favor and backport version 2's Extrawurst to version 1.x of Relax as well? we are still on Craft 3 with Relax and Blitz...
thanks

this is the pull request for it to be used as 1.0.2: https://github.com/ostark/craft-relax/pull/17


One file for each language

Hi,
First of all thank you very mucho for this tool, it's very useful.
I was wondering if it could be posible to add an option to generate a .json for each .po in place of a single .json with all the localizations inside (in my case it's better to have the translations in different files).
Let me know if I can help, please.
And thanks again!

Awesome!!
I think it's very helpful serving separate translation .json file for SPA site.
Thanks for the great work. 💪

Thanks! Released v1.0.7 with your changes.
And I use pathname to control it instead of --multi flag, please try Case 1.


Refactor models according to refined API spec

Fixes #3
Refactor models to align with the refined API spec.

Project Model Changes:

Remove HeroImage, CreatedAt, and Icon properties.
Add ExtendedDescription property.
Remove constructor.
Provide default values for Images, Features, Dependencies, Collaborators, Links, and Connections.
Mark Publisher, Name, Description, Category, and CreatedAt as required.
Replace Cid with DagCid.
Change Collaborators to a Dictionary<DagCid, Role> type.
Use an empty collection expression [] instead of Array.Empty<T>.
Remove all JSON-related attributes.

Publisher Model Changes:

Remove Owner, ContactEmail, and Icon properties.
Add Users + Roles, Connections, Links, ExtendedDescription, and ForgetMe properties.
Remove constructor.
Provide default values for Links, Projects, Users, ParentPublishers, and ChildPublishers.
Mark Name, Description, and Owner as required.
Replace Cid with DagCid.
Use an empty collection expression [] instead of Array.Empty<T>.
Remove all JSON-related attributes.

User Model Changes:

Remove MarkdownAboutMe and Icon properties.
Add Projects + Roles, Publisher + Roles, and ExtendedDescription properties.
Rename MarkdownAboutMe to ExtendedDescription.
Provide default values for Connections, Links, Projects, and Publishers.
Mark Name and ExtendedDescription as required.
Replace Cid with DagCid.
Use an empty collection expression [] instead of Array.Empty<T>.
Remove all JSON-related attributes.

Update Events Changes:

Update any mention of IsPrivate to IsUnlisted in ProjectUpdateEvent and PublisherUpdateEvent.
Remove lines 31 and 33 in ProjectUpdateEvent.

Link Model Changes:

Replace Cid with DagCid.
Remove all JSON-related attributes.

Role Model Changes:

Mark Name and Description as required.

IModifiableEntity Changes:

Add UpdateExtendedDescriptionAsync method.
Add ExtendedDescriptionUpdated event.

IReadOnlyEntity Changes:

Add ExtendedDescription property.
Add ExtendedDescriptionUpdated event.

For more details, open the Copilot Workspace session.

This is largely done. Next steps will be to fix up the UpdateEvents (aligning with the new API surface) so we can compile again.

Latest changes fbf3eca should allow builds to pass. We can continue with refactoring UpdateEvents in another PR.

@Arlodotexe you might want to delete the branch 😁


chore: Relax MSRV

Relaxes MSRV which are bumped in #982. As the use of prost-build can be separated to the different build process, it is too strict to set the same MSRV of prost-build to the other crates for users. cargo-hack's --rust-version option can be used to perform checking different MSRVs on the project crates.

Since checking MSRV for different crates can be performed easily as this pull request describes, and the crates except for prost-build only depend on very few crates, which have high stability, the value imposing unnecessarily restrictions seems small.

I opened a new PR with only the CI improvement: #1057

The CI improvement from this PR is merged. I won't accept multiple MSRV versions in one repo. If you want to lower the MSRV of the whole repo, you are welcome to reopen.


Content Security Policy (CSP)

Hello,
I use plugin from this repository. It works great & I haven't problem with it. However, when I apply CSP then I get an errors.. After checking, I see that they're caused by inline styles. For example: jquery.mCustomScrollbar.js
Of course, I can use directive: 'unsafe-inline' but this is not recommended. The use of such a directive doesn't make sense if I use CSP.

This CSP rule can be disabled with the CSP keyword unsafe-inline , but it is generally not recommended as it would weaken the protections offered by CSP. (...)

My website, which Outputs an errors messages to the Web Console: Link
My directive:
Header always set Content-Security-Policy "default-src 'self';"
I tested it here: mozilla_observatory
I use plugin in version 3.1.5
Is it possible to help resolve above problem? or editing parts of yours plugin so that I could manually add div tags instead of generating it?
I think the problem is serious if this plugin to be used on secure websites. For helping me I'll reward you as soon as I can.

Yes, I would like this fixed too please. Most of the inline styles are static and could easily be replaced with classes. This one is a bit more difficult, as it has dynamic positions:
style='position:relative; top:"+o.setTop+"; left:"+o.setLeft+"
I have created a version of jquery.mCustomScrollbar.js in which I have replaced the inline styles with classes, and for the one above I just set top and left to 0, the default values. These are the classes I have added to replace the inline styles; mCS-position-relative-t0-l0 is the class for the above inline style:
.mCS-position-absolute {
	position: absolute;
}
.mCS-position-relative {
	position: relative;
}
.mCS-position-relative-t0-l0 {
	position: relative;
	top: 0;
	left: 0;
}
.mCS-position-relative-l0-wide {
	position: relative;
	left: 0;
	width: 999999px;
}


[Feature Request] Option to templatize the custom configuration

Output of helm version: v3.3.4
Output of kubectl version: 1.17
Cloud Provider/Platform (AKS, GKE, Minikube etc.): -Not Applicable-
[Description]
Let's say I want to use the configuration in my helm chart, there is currently an option to load it from the file.
kind: ConfigMap
metadata:
  name: my-configuration-in-configmap
data:
  {{ (.Files.Glob "config/custom-configuration-to-be-templatized.conf").AsConfig | indent 2 }}

The challenge however is config/custom-configuration-to-be-templatized.conf has to load parameters from the Values.yaml. The only available option currently is to pre-fill the config/custom-configuration-to-be-templatized.conf and then use the helm-cli/flux to apply this.
The pre-fill part, can be automated through an external mechanism. However, it would help if helm can add a feature that will allow us to templatize similar configuration through a known mechanism.
A random thought, but let experts comment on it: How about making a config directory within templates allow the users to add templatized config files.
Ref: The StackOverflow answer from https://stackoverflow.com/a/51847086/1486285 led me to create this issue. We have a need for this feature.

My bad! Learnt about tpl function after raising a request here. This feature request is void. I am closing it.


Checking for the file existed or not must be added

Hello there,
I have found one more issue and need to be fixed for better progress. Files must be checked for existence in the path given.
I was testing this software and I have given C:\src path to install flutter and I got this output
Can't load Kernel binary: Invalid kernel binary format version.

like the download happens and can't extract the download due to already existence of flutter folder in the given directory and I don't know exactly what the extraction have done there, But, I guess it tried to replace the existing one. As I use master branch and tried to install stable version the files just got misplaced / renamed / replaced and the current flutter version is not supporting the files.
And moreover the user who wants to install the package and suddenly got a failure the download is restarting along the process. This may lead to wastage of user's data. The downloaded package cannot be used further. In that case that must be deleted as soon as the  download or extraction failed. This may give a good result (manages the storage, I mean 500MB is also a storage 😉 ), as the user gets more download/extraction failure the more data/storage it consumes on disk in the name of Temp.
Hope you gonna solve it soon. Even I will keep working on it 😇.
Regards

Thank you much for notices @yahu1031
I will be working into it and PRs are very welcome if you find a solution 😊😉

@YazeedAlKhalaf of course sure I would love to work on this ❤


Adding tests and indexes

Added an index to the answer_photos model for answer_ids
Single request for /qa/questions for a given product id is currently 15-20 MS

Next Steps
Connecting backend to FEC before deployment

Indexes make a difference!


Mann test results

Does the implementation match the results as on the paper at test time ? Atleast are the accuracies even close because I dont seem to be even getting close. Thanks in adv.

I did manage to get similar results for the 5 classes/episode experiment. Here are the results I got a few months back

Thanks for the assurance! I might have screwed up while playing with it. :+1:

Why is the 1st instance high in the early episodes ?
In the paper, that was low and flat in the early episodes.

I can't explain the behavior of the 1st instance unfortunately. When I saw that first I thought I did something wrong with the way I'm computing the metrics, but as it gets closer to the results of the paper with a larger number of episodes, I think it's just a matter of (un)lucky initialization.

Is the above results from training MANN with 5classes/episode experiment?
I would get the same results from omniglot dataset by an instruction which you wrote.
In your implementation, I cannot find how I can get the test results from trained MANN.
How can I test it after training?


[Bug Fix] Fix TableMetadataV1 Validators

When working on https://github.com/apache/iceberg-python/pull/498, I noticed that new_table_metadata cannot correctly initialize partition_specs and sort_oders fields for V1 Metadata. For example:
    schema = ...

   partition_spec = PartitionSpec(
        PartitionField(source_id=22, field_id=1022, transform=IdentityTransform(), name="bar"), spec_id=10
    )

    sort_order = SortOrder(
        SortField(source_id=10, transform=IdentityTransform(), direction=SortDirection.ASC, null_order=NullOrder.NULLS_LAST),
        order_id=10,
    )

    actual = new_table_metadata(
        schema=schema,
        partition_spec=partition_spec,
        sort_order=sort_order,
        location="s3://some_v1_location/",
        properties={'format-version': "1"},
    )
--------
print(actual.partition_specs)
--- output ---
[PartitionSpec(spec_id=0)]

--------
print(actual.sort_orders)
--- output ---
[SortOrder(order_id=0)]

We may update the validators to consider both the field name and its alias. (ex "sort_orders" and "sort-orders") so that the validators won't override any initialized fields.
cc: @Fokko @amogh-jahagirdar

We might want to consider a release to get this bug fix out to the public. WDYT?

That's a great idea! Shall we create a 0.6.1 milestone or a 0.6.1 proposal in dev-mail-list? I have just opened another bug-fix PR: https://github.com/apache/iceberg-python/pull/547 and I also saw other bug-fix PR may be worth to be added (e.g. https://github.com/apache/iceberg-python/pull/545 ).
BTW, If we finally decide to do the release, I am interested in becoming the release manager. :)

@HonahX Yes, that sounds good. There is no formal process for starting a release, just someone needs to take the time to drive the process. Great that you want to become a release manager :D
I would also be open to just running 0.7.0 from the main branch. There is already a lot of cool stuff that would be great to get out to the public.


Remove warning about #23408

solves #3729
relative comment: https://github.com/dotnet/efcore/issues/23408#issuecomment-1031877250

Thanks for your contribution


Improvements to rust allocation

Fixes a bug where we were still using malloc to allocate rust objects. Also fixes an issue where code generation generated a call to 0 for the __rust_alloc function.

lgtm


pongo warnings about deprecated Penlight modules

Every run of our test suite now has this message intermixed throughout:
2022/07/12 14:54:07 [warn] [Penlight 1.12.0] the contents of module 'pl.text' has moved into 'pl.stringx' (deprecated after 1.11.0, scheduled for removal in 2.0.0)

This appears to be due to local pl_text = require "pl.text" directives in all the kong-versions/*/kong/spec/fixtures/https_server.lua files.
I could do a PR to simply update this, but am not nearly familiar enough with with the Penlight code to know if this is a simple search/replace.
Thanks!

I was able to prevent these warnings from happening by editing the appropriate fixture file, and replacing pl.text with pl.stringx:
❯ git diff kong-versions/2.8.1/kong/spec/fixtures/https_server.lua
diff --git a/kong-versions/2.8.1/kong/spec/fixtures/https_server.lua b/kong-versions/2.8.1/kong/spec/fixtures/https_server.lua
index 550f512..8e02a0d 100644
--- a/kong-versions/2.8.1/kong/spec/fixtures/https_server.lua
+++ b/kong-versions/2.8.1/kong/spec/fixtures/https_server.lua
@@ -9,7 +9,7 @@ local pl_dir = require "pl.dir"
 local pl_file = require "pl.file"
 local pl_template = require "pl.template"
 local pl_path = require "pl.path"
-local pl_text = require "pl.text"
+local pl_text = require "pl.stringx"
 local uuid = require "resty.jit-uuid"

KONG_VERSION=2.8.1 pongo run

I get no warnings in this scenario. Are those versions/*/kong/spec/fixtures files auto-generated? I could not find any references to pl.text in Kong's main github: https://github.com/Kong/kong/search?q=pl.text (compare to https://github.com/Kong/kong-pongo/search?q=pl.text)

Yes they get generated. They are copied over from the Kong source repo. Hence what I mentioned before; it should be fixed upstream.

it has already been fixed; https://github.com/Kong/kong/blob/master/spec/fixtures/https_server.lua#L12
But as mentioned; everything is pulled into Pongo from the Kong repo. So for older versions of Kong it will pull those old tags, and those will still have the old code. No way to fix that.
If you really want to get rid of those messages (for your own use) you could write a test-initialization script that would replace the line inside the actual test image.

Ah, that's why I couldn't find it!! Thank you. We are (relatively) closely following Kong releases, so this will resolve itself as we upgrade. I appreciate the extra help here!


Get Cannot find module error

Deployment Method

[ ] Installer
[ ] Docker Development
[ ] Docker Production
[ ] Bare metal Development
[ ] Bare metal Production
[ ] Digital Ocean image
[x] Other (please provide a link Steps to Reproduce

Describe the problem*
when i want deploy with dockerfile i get this error:
Steps to Reproduce
liara-logs.txt
Relevant log output
src/router.tsx(31,21): error TS2307: Cannot find module './pages/build/BuildIndex' or its corresponding type declarations.

src/router.tsx(34,21): error TS2307: Cannot find module './pages/build/BuildDetail' or its corresponding type declarations.

error Command failed with exit code 2.

info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

The command '/bin/sh -c cd ${INVENTREE_HOME}/InvenTree && inv frontend-compile' returned a non-zero code: 2

Are you using a custom docker compose setup? Or our "standard" one?
inventree:stable or inventree:latest?

A gh sha would be helpful, try docker image inspect your/image:tag you're using and see if there is an gh sha referenced.

Are you using a custom docker compose setup? Or our "standard" one?
inventree:stable or inventree:latest?

I use a PaaS cloud service and I just need to upload the folder containing Dockerfile to this PaaS.

I do not think this will work, you need the source code to build the image.

I do not think this will work, you need the source code to build the image.

I talked to the support of the cloud platform and they said that the problem is with your code and there are other people who use this platform well.

I just need to upload the folder containing Dockerfile to this PaaS.

InvenTree will not work with just a docker file. You will at minimum need:

Other running containers with database / proxy / etc
A docker-compose file (or similar) to control these
Knowledge of what this entails

InvenTree is not designed to run as a single image or be built without the source code available. It will not work - based on the info you have given.
Please provide more information about the platform and what you are trying to do or close this issue.


[DO NOT MERGE]: Bivariate Lognormal

Added a class corresponding to the bivariate lognormal distribution (current features generalizable to the multivariate lognormal). Need to make sure things are in order before proceeding.
@alanlujan91 @llorracc

@sidd3888 this is a good start

@sidd3888 I added a few comments on the code, but I think what would be more useful is having tests and/or demonstration (a notebook) of what the code is doing to see if it's working well or as expected.

@sidd3888 pull changes from master and the errors should go away


fix(curriculum): updated step description

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #53604

The updated description was proposed/accepted in this comment from the raised issue.
Here is the updated version of the description (from GitPod):

Hi @nlukic97. Congrats on your first pull request (PR)! 🎉
Thank you for your contribution to the page! 👍
We are happy to accept these changes and look forward to future contributions. 📝


Bump DataStax Java Driver to v2.1.4

Currently Phantom depends on driver version 2.1.1, and a great amount of bugs have been fixed since then, some of them even critical for production environment (https://datastax-oss.atlassian.net/browse/JAVA-476). It would be nice to upgrade the version to make phantom more stable.
I have also lowered cassandra-unit version to <IP_ADDRESS>, I have found that it is an unresolved dependency (does not exist on maven central), and discovered that this is also the reason of the other PRs failed build (cf. TravisCI)
I have managed to run the test suite locally, only phantom-thrift doesn't compile and couldn't fix because:
phantom/phantom-thrift/src/test/scala/com/websudos/phantom/thrift/ThriftMapColumnTest.scala:41: object Sampler in package testing cannot be accessed in package com.websudos.util.testing

@graph1zzlle We have restored the <IP_ADDRESS> version of Cassandra Unit without which some features are not available in embedded testing, including static columns, some CAS queries and so forth. Could you please bump the version back and resubmit?

Done :+1:

@graph1zzlle Thanks for this, I created a new PR and it's going to the new connectors branch where several build issues are being fixed simultaneously. We will work to have a release out by end of next week at most.


Possibly make the quarantine_table argument optional in constraint_append

constraint_append currently requires a quarantine_table.  We may want to allow users to set quarantine_table to None and just throw out the rows that don't match the constraints.
There are probably some users that want to write the bad data to a quarantine table and others that just want to throw out the bad data.  Thoughts?

@MrPowers I can work on this one if you want.

@danielbeach thank you very much, assigned you! :)


Typo in Svelte's index.d.ts

Hello,
there's a typo on that line:
https://github.com/skalinichev/uplot-wrappers/blob/654f1ab41b7c0a4e26117a8dfe45cd5c4eba8812/svelte/types/index.d.ts#L12
It should be
class?: string;

Yes, indeed. Thanks for spotting it! Feel free to create a pull-request. I can also fix it myself, mentioning you in the comment if you prefer it that way.


Lz4 Error

The files from this game have UnityFS header, but Studio can't open them, resulting in this error:
System.IO.IOException: Lz4 decompression error, write -1 bytes but expected 130156 bytes    at AssetStudio.BundleFile.ReadBlocks(FileReader reader, Stream blocksStream) in D:\a\Studio\Studio\AssetStudio\BundleFile.cs:line 493    at AssetStudio.BundleFile..ctor(FileReader reader, Game game) in D:\a\Studio\Studio\AssetStudio\BundleFile.cs:line 113    at AssetStudio.AssetsManager.LoadBundleFile(FileReader reader, String originalPath, Int64 originalOffset, Boolean log) in D:\a\Studio\Studio\AssetStudio\AssetsManager.cs:line 265
Possible encryption? The game is called "创造与魔法" in Chinese; apparently localized as "Utopia: Origin" in the west.
assets.zip

Greetings,
This file is indeed encrypted, make sure to select NetEase game from Options -> Specify Game before loading it.


KHMX8 bad operation destription

if (is “KHM8”) {
  op1t = Rs1.B[x+1]; op2t = Rs2.B[x+1]; // top
  op1b = Rs1.B[x];   op2b = Rs2.B[x];   // bottom
} else if (is “KHMX8”) {
  op1t = Rs1.H[x+1]; op2t = Rs2.H[x];   // Rs1 top
  op1b = Rs1.H[x];   op2b = Rs2.H[x+1]; // Rs1 bottom
}

I suppose RsX.B must stay instead of RsX.H

Thanks for finding this issue. I will fix this typo in the next release.

For the “KHMX16” instruction, multiply the top 8-bit Q7 content of 16-bit chunks in Rs1 with the bottom 8-bit Q7 content of 16-bit chunks in Rs2. At the same time, multiply the bottom 8-bit Q7 content of 16-bit chunks in Rs1 with the top 8-bit Q7 content of 16-bit chunks in Rs2.
I believe there should stay For the “KHMX8” instruction.

Thanks. I will fix it in the next release.

Fixed in 7ca35508bf5.


Fix filament-utils-android build on Windows

Build on Windows fails due to incorrect path, backalshes instead of forward slashes.
* What went wrong:
Execution failed for task ':filament-utils-android:generateJsonModelFullRelease'.
> C:\Users\silentnuke\Projects\filament\android\filament-utils-android\CMakeLists.txt : C/C++ fullRelease|x86 : CMake Error at C:/Users/silentnuke/Projects/filament/android/gltfio-android/CMakeLists.txt:75 (add_library):
    Syntax error in cmake code when parsing string

      C:\Users\silentnuke\Projects\filament\out\android-release\filament/include/gltfio/resources/gltfresources_lite.h

    Invalid character escape '\U'.

There is a few approaches to fix that:

Normalize path in Cmake using file(TO_CMAKE_PATH). However this would require more changes.
IMHO more preferable, fix once in Gradle before passing to Cmake.

@romainguy CMake expects /. There is a function to convert that in CMake TO_CMAKE_PATH. However for using it we will need to modify each CMakeLists.txt. So, imho much better in Gradle where we construct this path.
C:\Users\silentnuke\Projects\filament\out\android-release\filament/include/gltfio/resources/gltfresources_lite.h
Bold part comes from Gradle variable, rest is added in CMake.


Fails when plugins are absorbed (via git submodule absorbgitdirs)

If your ~/.vim/plugged or similar is contained in another repo (for example, a dotfiles repo); and you've added the plugins as submodules in order to track their updates in that repo; then you may want to use git submodule absorbgitdirs.
If you do that, Vim-Plug will break because absorbgitdirs replaces the .git/ directory with a flat file containing a path like ../../.git/modules/some-plugin/, but Vim-Plug explicitly references a folder in the command git config -f .git/config remote.origin.url.
The existing pull request #858 would fix this, among the other issues it would fix (#470, #834). This issue is opened in support of that PR, and as a record for other troubleshooters.

NVIM v0.3.8
Build type: Release
LuaJIT 2.0.5
Compilation: /usr/local/Homebrew/Library/Homebrew/shims/mac/super/clang -Wconversion -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNDEBUG -DMIN_LOG_LEVEL=3 -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wimplicit-
fallthrough -Wvla -fstack-protector-strong -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -I/tmp/neovim-20190704-11886-1ukicoc/neovim-0.3.8/build/config -I/tmp/
neovim-20190704-11886-1ukicoc/neovim-0.3.8/src -I/usr/local/include -I/usr/local/opt/gettext/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include -I/tmp/neovim-20190704-
11886-1ukicoc/neovim-0.3.8/build/src/nvim/auto -I/tmp/neovim-20190704-11886-1ukicoc/neovim-0.3.8/build/include
Compiled by<EMAIL_ADDRESS>
Features: +acl +iconv +jemalloc +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/usr/local/Cellar/neovim/0.3.8/share/nvim"

Run :checkhealth for more info

Type:

[x] Bug
[ ] Enhancement
[ ] Feature Request
[ ] Question

OS:

[x] All/Other
[ ] Linux
[ ] OS X
[ ] Windows

Vim:

[x] Terminal Vim
[x] GVim
[x] Neovim

#858 Does not fix this for me cause I don't have $GIT_CONFIG set.

I use stow + Github to synchronize my dotfiles. The .vim/plugged/ is thus inside a git repo and the vim command PlugInstall fails to resolve the Github url. I install plugins with git submodule add under this directory and later it works fine with both PlugUpdate in vim and git submodule update for git.
Just a question: how can we modify the vim-plug script to auto select git clone or git submodule add for PlugInstall command? Thanks for your attention.


SDMMC Driver clearing is_mem if SD_IO_OCR_MEM_PRESENT flag is set. (IDFGH-8856)

Background: Certain MicroSD cards are being produced which respond to io_send_op_cond and are being detected as SDIO-Only cards despite being combination cards. The SDMMC driver does not set is_mem on these cards, and therefore does not acknowledge them as storage (eventually failing when mounting the VFS after reading a sector size of 0).
In sdmmc_io.c there is a condition which tests SD_IO_OCR_MEM_PRESENT but the conditional logic is reversed: it clears the is_mem flag if memory is present.
https://github.com/espressif/esp-idf/blob/7869f4e151e3ea2a308b991fbb8e9baa4cec313c/components/sdmmc/sdmmc_io.c#L95-L98
By handling the conditional logic correctly, these SDIO combination cards all work using the SDMMC / VFS drivers in esp-idf:
if (card->ocr & SD_IO_OCR_MEM_PRESENT) {
    ESP_LOGD(TAG, "%s: Combination card", __func__);
    card->is_mem = 1;
} else {
    ESP_LOGD(TAG, "%s: IO-only card", __func__);
    card->is_mem = 0;
}

Thank you very much for noticing this and proposing a fix! I made a MR with your fix and added you as a co-author. Thanks again :)


websocket_client doesn't use custom url

Line 59 of websocket_client.py is:
connection = Connection(BittrexParameters.URL, Session())

Shouldn't it be:
connection = Connection(self.url, Session())

?

Good catch, fixed https://github.com/slazarov/python-bittrex-websocket-aio/commit/e651cfc2093ddfe9b527196bcd887404d679c2d4


Adding a third-party community project to the official docs

Copy pasted from https://github.com/aspnet/AspNetCore/issues/14381 as @Rick-Anderson said.
Hi, guys! I didn’t know where I can ask my question so I decided to open an issue here.
One of my projects have been referenced as a community project in the Readme.md file in the old Mvc repository and currently in the Mvc folder for more than 2 years now. It can be found here: https://github.com/ivaylokenov/MyTested.AspNetCore.Mvc. The project is a testing library providing easy fluent API with strongly-type support for asserting controllers, models, services, routes, pipeline and more. A lot of built-in mocks are included out of the box - database, session, cache, options, authentication, etc. An example test looks like this:
// Tests a route for correct route values,
// and validates whether the controller action
// with an authenticated user and the provided data
// returns redirect result to a specific action,
// while resolving services from the `TestStartup` class.
MyMvc
    .Pipeline()
    .ShouldMap("/My/Action/1")
    .To<MyController>(c => c.Action(1))
    .Which(controller => controller
        .WithUser()
        .WithData(MyDataProvider.GetMyModels()))
    .ShouldReturn()
    .Redirect(redirect => redirect
        .To<AnotherController>(c => c.AnotherAction()));

However, ever since the ASP.NET Core team moved all repositories into one place, the link kind of got lost as it is not on the main page. I noticed quite a huge decrease of traffic coming from GitHub.
Yesterday, while I was reading your documentation pages, I saw you reference some third-party projects there, for example:

https://docs.microsoft.com/en-gb/aspnet/core/host-and-deploy/health-checks?view=aspnetcore-3.0#prerequisites
https://docs.microsoft.com/en-gb/aspnet/core/test/load-tests?view=aspnetcore-3.0#third-party-tools

Are there any requirements for adding a link to my GitHub repository, and a small sample code from it in there (with a visible alert that it’s a third party package and Microsoft does not support it)?
I can open a small pull-request in the documentation repository, if that’s OK for you.
My project is in very healthy state. It has two sponsor companies, and I am currently negotiating with two more. I am the only core contributor, but I have a team of 10 volunteers, who help a lot in their free time. Bits for version 3.0 are ready and working with the latest final release. I will publish them to NuGet in one-two weeks.
What are your thoughts on my question?
Thank you for reading!
Kind regards!

@ivaylokenov  looks good to me. We need permission from @danroth27 to link to non-MSFT content. We can create a discussion issue in the repo with an introduction to your testing library and likes to your code. We can probably sneak in links to the discussion issue without @danroth27  noticing.
@guardrex  can you suggest where we should add links to said discussion issue or straight link to his  repo?
cc @scottaddie

I'll wait before remarking given that @danroth27 has said on a few occasions that linking to things that MS doesn't control is a concern ... not a deal breaker, of course ... I've just seen a few external links dropped or prevented on that basis.

I'm very much in favor of promoting related community projects, so I think having links to related projects at the bottom of some of our articles is fine, but I'd prefer not to have sample code or docs for other projects in our docs except for the few cases where we've have setup specific partnerships (ex IdentityServer, Swagger). I just don't want to become the one place where everyone in the ecosystem wants to put their docs.

The corollary page is probably ...
https://docs.microsoft.com/aspnet/core/mvc/overview

promoting related community projects

The following are just thoughts, probably rhetorical in nature. I'm just calling out a few potential concerns.
What about security? Should readers be told explicitly that 3rd party projects haven't been verified safe for use by MS, that use of such technology is potentially not performant, and that MS isn't promoting or recommending the technology?
Adding links to 3rd party will be time-consuming. It's burdensome given the workload if the docs team starts receiving many requests to have their 3rd party thing listed and they don't want to submit the PR. Even if they do submit the PR, I can absolutely guarantee to you after handling our Blazor.Docs Community Projects section that they won't set the links up correctly (e.g., alphabetical order, formatted correctly, proper grammatical phrasing, following the style manual guidelines, and avoiding the use of wildly over-the-top marketing language). We'll end up having to edit most submissions. :point_left: I'll wager any amount 💰 that I'm correct on that point after living it. :smile: lol
What about fairness? There must be thousands of projects. Who gets in? Who doesn't? If some folks are going to be denied, shouldn't the criteria for inclusion be explicitly stated somewhere? What is the criteria? I'm just say'in. Fair's fair.
"Fair's fair." :smile: lol ... I just had an '80's flashback moment to ......

Fair is fair! - Billie Jean Davy (Helen Slater) - The Legend of Billie Jean ©1985 Sony Pictures Entertainment


Factorysimulator for testdata and integration tests

Is your feature request related to a problem? Please describe.
As a mechanical engineer I want to have example data in the dashboard when starting up the stack for presentations and testing. Furthermore, as a mechanical engineer I would be great to have a reference architecture with sample code
Additionally, as developer I want to ensure that once a functionality is implemented that it does not break in the future (--> Integration test on each PR)
Describe the solution you'd like
A microservice called factorysimulator, which simulates a nonexisting factory. It needs to use all MQTT messages and cover all edge cases.
This could be either Python microservice or Node-RED in a second instance (prefered).
Additional context
Fixes #491 and refers to #495
Fixes #449
Fixes #432
Refers to #493

This is my current simulation for two production steps in node red to test digital shadow functionality (#297):
[{"id":"e259d00c.c234f8","type":"tab","label":"IntegrationTest1: AddProducts","disabled":false,"info":"Execute this flow first. Maybe set Mqtt out node username to TESTING"},{"id":"23ae98e1.65e538","type":"tab","label":"IntegrationTest2: ExampleStation","disabled":false,"info":"Execute second."},{"id":"d81eab1a.cff018","type":"mqtt-broker","name":"","broker":"factorycube-server-vernemq","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"26181dda.eabe72","type":"mqtt in","z":"e259d00c.c234f8","name":"","topic":"ia/factoryinsight/#","qos":"2","datatype":"auto","broker":"d81eab1a.cff018","x":380,"y":80,"wires":[["6f33d2f4.beb6fc"]]},{"id":"6f33d2f4.beb6fc","type":"debug","z":"e259d00c.c234f8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":610,"y":80,"wires":[]},{"id":"3fdff556.e4b17a","type":"inject","z":"e259d00c.c234f8","name":"","props":[{"p":"payload.begin_timestamp_ms","v":"","vt":"date"},{"p":"payload.aid","v":"","vt":"num"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":150,"y":140,"wires":[["5966dff5.e1f848","edbe929d.918a3"]]},{"id":"5966dff5.e1f848","type":"function","z":"e259d00c.c234f8","name":"addProduct ValveHead","func":"msg.payload = \n    {\n        "product_id": "VH_Type123",\n        "time_per_unit_in_seconds": 0.3\n    }\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"// to store a variable/ Code added here will be run once\n// whenever the node is started.\n","finalize":"","x":340,"y":140,"wires":[["be44677d.e204b8","79ff2b30.1eb9c4","1afbb195.172d76","6ed30fe6.d5c9d8"]]},{"id":"be44677d.e204b8","type":"mqtt out","z":"e259d00c.c234f8","name":"","topic":"ia/factoryinsight/TestLocation123/storage/addProduct","qos":"","retain":"","broker":"d81eab1a.cff018","x":820,"y":140,"wires":[]},{"id":"6d5ca5c1.9f1a44","type":"comment","z":"e259d00c.c234f8","name":"Info: Add the products","info":"Info: Testprocess like Assy1, station 2, without Gasket selection and without VH history (VH comes from Storage.)","x":160,"y":80,"wires":[]},{"id":"edbe929d.918a3","type":"function","z":"e259d00c.c234f8","name":"addProduct Gasket","func":"msg.payload = \n    {\n        "product_id": "Gasket_Type123",\n        "time_per_unit_in_seconds": 1.5\n    }\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"\n","finalize":"","x":350,"y":320,"wires":[["b6718fe8.1fe51","af45eab4.01f748","3562003.b91088","6ed30fe6.d5c9d8"]]},{"id":"79ff2b30.1eb9c4","type":"mqtt out","z":"e259d00c.c234f8","name":"","topic":"ia/factoryinsight/TestLocation123/Assy1/addProduct","qos":"","retain":"","broker":"d81eab1a.cff018","x":810,"y":200,"wires":[]},{"id":"1afbb195.172d76","type":"mqtt out","z":"e259d00c.c234f8","name":"","topic":"ia/factoryinsight/TestLocation123/Assy1Gasket/addProduct","qos":"","retain":"","broker":"d81eab1a.cff018","x":840,"y":260,"wires":[]},{"id":"b6718fe8.1fe51","type":"mqtt out","z":"e259d00c.c234f8","name":"","topic":"ia/factoryinsight/TestLocation123/storage/addProduct","qos":"","retain":"","broker":"d81eab1a.cff018","x":820,"y":320,"wires":[]},{"id":"af45eab4.01f748","type":"mqtt out","z":"e259d00c.c234f8","name":"","topic":"ia/factoryinsight/TestLocation123/Assy1/addProduct","qos":"","retain":"","broker":"d81eab1a.cff018","x":810,"y":380,"wires":[]},{"id":"3562003.b91088","type":"mqtt out","z":"e259d00c.c234f8","name":"","topic":"ia/factoryinsight/TestLocation123/Assy1Gasket/addProduct","qos":"","retain":"","broker":"d81eab1a.cff018","x":840,"y":440,"wires":[]},{"id":"6ed30fe6.d5c9d8","type":"debug","z":"e259d00c.c234f8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":680,"y":580,"wires":[]},{"id":"19151a34.a343ae","type":"comment","z":"23ae98e1.65e538","name":"Info: Testprocess like Assy1 but without Gasket selection and without VH history (VH comes from Storage.)","info":"Info: Testprocess like Assy1, station 2, without Gasket selection and without VH history (VH comes from Storage.)","x":400,"y":440,"wires":[]},{"id":"86b91b56.b72fa8","type":"inject","z":"23ae98e1.65e538","name":"","props":[{"p":"payload.begin_timestamp_ms","v":"","vt":"date"},{"p":"payload.aid","v":"","vt":"num"}],"repeat":"130","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":130,"y":560,"wires":[["471760d9.1613f","c18519f1.c9b358"]]},{"id":"471760d9.1613f","type":"function","z":"23ae98e1.65e538","name":"New uniqueProduct from Storage","func":"msg.payload = \n    {\n      "begin_timestamp_ms": Date.now(),\n      "end_timestamp_ms": null,\n      "productID": "VH_Type123",\n      "isScrap": false,\n      "uniqueProductAlternativeID": String(flow.get("counterVH"))\n    }\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"flow.set("counterVH",57000458); // to store a variable/ Code added here will be run once\n// whenever the node is started.\n","finalize":"","x":360,"y":560,"wires":[["af7f8dee.974838","8601a0db.86ebf"]]},{"id":"af7f8dee.974838","type":"debug","z":"23ae98e1.65e538","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":670,"y":560,"wires":[]},{"id":"d500348d.1008b","type":"function","z":"23ae98e1.65e538","name":"New uniqueProduct from Assy1","func":"msg.payload = \n    {\n      "begin_timestamp_ms": Date.now(),\n      "end_timestamp_ms": null,\n      "productID": "VH_Type123",\n      "isScrap": false,\n      "uniqueProductAlternativeID": String(flow.get("counterVH"))\n    }\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"// to store a variable/ Code added here will be run once\n// whenever the node is started.\n","finalize":"","x":350,"y":660,"wires":[["1e7fd6c2.969f19","c3b6d381.54ef08"]]},{"id":"1e7fd6c2.969f19","type":"debug","z":"23ae98e1.65e538","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":670,"y":660,"wires":[]},{"id":"c18519f1.c9b358","type":"delay","z":"23ae98e1.65e538","name":"","pauseType":"delay","timeout":"2","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":120,"y":660,"wires":[["d500348d.1008b","766745f0.493a44"]]},{"id":"c1ace356.4810f8","type":"function","z":"23ae98e1.65e538","name":"New addParentToChild from Assy1 for VH","func":"msg.payload = \n    {\n    "timestamp_ms": Date.now(),\n    "childAID": String(flow.get("counterVH")),\n    "parentAID": String(flow.get("counterVH"))\n    }\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"// to store a variable/ Code added here will be run once\n// whenever the node is started.\n","finalize":"","x":380,"y":760,"wires":[["8771cde7.513278","d1606de9.b4fef"]]},{"id":"8771cde7.513278","type":"debug","z":"23ae98e1.65e538","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":670,"y":760,"wires":[]},{"id":"766745f0.493a44","type":"delay","z":"23ae98e1.65e538","name":"","pauseType":"delay","timeout":"2","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":120,"y":760,"wires":[["c1ace356.4810f8","7bac099f.1f8b58"]]},{"id":"ec035d13.f5606","type":"function","z":"23ae98e1.65e538","name":"New productTag from Assy1","func":"msg.payload = \n{\n    "timestamp_ms": Date.now(),\n    "AID": String(flow.get("counterVH")),\n    "name": "torque1",\n    "value": Math.random()+5\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"context.set("counter",1000); // to store a variable/ Code added here will be run once\n// whenever the node is started.\n","finalize":"","x":340,"y":1580,"wires":[["6f373edf.3b1cc","ba70db66.fddf88"]]},{"id":"6f373edf.3b1cc","type":"debug","z":"23ae98e1.65e538","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":670,"y":1580,"wires":[]},{"id":"d30a795.5b6c008","type":"delay","z":"23ae98e1.65e538","name":"","pauseType":"delay","timeout":"4","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":120,"y":1580,"wires":[["ec035d13.f5606","1e7f6154.0fb39f"]]},{"id":"4eccf728.6043c8","type":"function","z":"23ae98e1.65e538","name":"New productTag from Assy1","func":"msg.payload = \n{\n    "timestamp_ms": Date.now(),\n    "AID": String(flow.get("counterVH")),\n    "name": "torque2",\n    "value": Math.random()+5\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"context.set("counter",1000); // to store a variable/ Code added here will be run once\n// whenever the node is started.\n","finalize":"","x":340,"y":1680,"wires":[["fa1c0df6.1280b8","7db849f5.9c6cc"]]},{"id":"fa1c0df6.1280b8","type":"debug","z":"23ae98e1.65e538","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":670,"y":1680,"wires":[]},{"id":"1e7f6154.0fb39f","type":"delay","z":"23ae98e1.65e538","name":"","pauseType":"delay","timeout":"4","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":120,"y":1680,"wires":[["4eccf728.6043c8","62c7ef7f.0b0cd8"]]},{"id":"2870f1d4.79a5b6","type":"function","z":"23ae98e1.65e538","name":"New productTag from Assy1","func":"msg.payload = \n{\n    "timestamp_ms": Date.now(),\n    "AID": String(flow.get("counterVH")),\n    "name": "torque3",\n    "value": Math.random()+5\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"context.set("counter",1000); // to store a variable/ Code added here will be run once\n// whenever the node is started.\n","finalize":"","x":340,"y":1780,"wires":[["92a0dc2b.d985f8","6a099aac.c0025c"]]},{"id":"92a0dc2b.d985f8","type":"debug","z":"23ae98e1.65e538","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":670,"y":1780,"wires":[]},{"id":"62c7ef7f.0b0cd8","type":"delay","z":"23ae98e1.65e538","name":"","pauseType":"delay","timeout":"4","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":120,"y":1780,"wires":[["2870f1d4.79a5b6","b39239ea.bd34f"]]},{"id":"bde7f942.51f72","type":"function","z":"23ae98e1.65e538","name":"New productTag from Assy1","func":"msg.payload = \n{\n    "timestamp_ms": Date.now(),\n    "AID": String(flow.get("counterVH")),\n    "name": "torque4",\n    "value": Math.random()+5\n}\nflow.set("counterVH", parseInt(msg.payload.AID) + 1); \n\nreturn msg;","outputs":1,"noerr":0,"initialize":"context.set("counter",1000); // to store a variable/ Code added here will be run once\n// whenever the node is started.\n","finalize":"","x":340,"y":1880,"wires":[["1be93308.af06ed","1acd83d7.7423fc"]]},{"id":"1be93308.af06ed","type":"debug","z":"23ae98e1.65e538","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":670,"y":1880,"wires":[]},{"id":"b39239ea.bd34f","type":"delay","z":"23ae98e1.65e538","name":"","pauseType":"delay","timeout":"4","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":120,"y":1880,"wires":[["bde7f942.51f72"]]},{"id":"1acd83d7.7423fc","type":"mqtt out","z":"23ae98e1.65e538","name":"","topic":"ia/factoryinsight/TestLocation123/Assy1/productTag","qos":"","retain":"","broker":"d81eab1a.cff018","x":790,"y":1920,"wires":[]},{"id":"6a099aac.c0025c","type":"mqtt out","z":"23ae98e1.65e538","name":"","topic":"ia/factoryinsight/TestLocation123/Assy1/productTag","qos":"","retain":"","broker":"d81eab1a.cff018","x":790,"y":1820,"wires":[]},{"id":"7db849f5.9c6cc","type":"mqtt out","z":"23ae98e1.65e538","name":"","topic":"ia/factoryinsight/TestLocation123/Assy1/productTag","qos":"","retain":"","broker":"d81eab1a.cff018","x":790,"y":1720,"wires":[]},{"id":"ba70db66.fddf88","type":"mqtt out","z":"23ae98e1.65e538","name":"","topic":"ia/factoryinsight/TestLocation123/Assy1/productTag","qos":"","retain":"","broker":"d81eab1a.cff018","x":790,"y":1620,"wires":[]},{"id":"d1606de9.b4fef","type":"mqtt out","z":"23ae98e1.65e538","name":"","topic":"ia/factoryinsight/TestLocation123/Assy1/addParentToChild","qos":"","retain":"","broker":"d81eab1a.cff018","x":810,"y":800,"wires":[]},{"id":"c3b6d381.54ef08","type":"mqtt out","z":"23ae98e1.65e538","name":"","topic":"ia/factoryinsight/TestLocation123/Assy1/uniqueProduct","qos":"","retain":"","broker":"d81eab1a.cff018","x":800,"y":700,"wires":[]},{"id":"8601a0db.86ebf","type":"mqtt out","z":"23ae98e1.65e538","name":"","topic":"ia/factoryinsight/TestLocation123/storage/uniqueProduct","qos":"","retain":"","broker":"d81eab1a.cff018","x":810,"y":600,"wires":[]},{"id":"129636a.a30ccc9","type":"function","z":"23ae98e1.65e538","name":"New addParentToChild from Assy1Gasket for Gasket","func":"msg.payload = \n    {\n    "timestamp_ms": Date.now(),\n    "childAID": String(flow.get("counterGasket")),\n    "parentAID": String(flow.get("counterGasket"))\n    }\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"context.set("counter",12000459); // to store a variable/ Code added here will be run once\n// whenever the node is started.\n","finalize":"","x":420,"y":1120,"wires":[["a57b69c.ef7cb98","e450a001.6daf"]]},{"id":"a57b69c.ef7cb98","type":"debug","z":"23ae98e1.65e538","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":670,"y":1120,"wires":[]},{"id":"3eb60608.f5d1e2","type":"delay","z":"23ae98e1.65e538","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":120,"y":1120,"wires":[["129636a.a30ccc9","2f2e5438.11093c"]]},{"id":"e450a001.6daf","type":"mqtt out","z":"23ae98e1.65e538","name":"","topic":"ia/factoryinsight/TestLocation123/Assy1Gasket/addParentToChild","qos":"","retain":"","broker":"d81eab1a.cff018","x":840,"y":1160,"wires":[]},{"id":"aa615c76.49656","type":"function","z":"23ae98e1.65e538","name":"New uniqueProduct Gasket from Storage","func":"msg.payload = \n    {\n      "begin_timestamp_ms": Date.now(),\n      "end_timestamp_ms": null,\n      "productID": "Gasket_Type123",\n      "isScrap": false,\n      "uniqueProductAlternativeID": String(flow.get("counterGasket"))\n    }\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"flow.set("counterGasket",12000459);  // to store a variable/ Code added here will be run once\n// whenever the node is started.\n","finalize":"","x":380,"y":920,"wires":[["c2ff7c9a.83b4f8","56e976b3.7794"]]},{"id":"c2ff7c9a.83b4f8","type":"debug","z":"23ae98e1.65e538","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":670,"y":920,"wires":[]},{"id":"56e976b3.7794","type":"mqtt out","z":"23ae98e1.65e538","name":"","topic":"ia/factoryinsight/TestLocation123/storage/uniqueProduct","qos":"","retain":"","broker":"d81eab1a.cff018","x":810,"y":960,"wires":[]},{"id":"44a0e9d5.f09c08","type":"function","z":"23ae98e1.65e538","name":"New uniqueProduct Gasket from Assy1Gasket","func":"msg.payload = \n    {\n      "begin_timestamp_ms": Date.now(),\n      "end_timestamp_ms": null,\n      "productID": "Gasket_Type123",\n      "isScrap": false,\n      "uniqueProductAlternativeID": String(flow.get("counterGasket"))\n    }\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"// to store a variable/ Code added here will be run once\n// whenever the node is started.\n","finalize":"","x":400,"y":1020,"wires":[["47282209.9383c4","e6e4f35f.92d7c8"]]},{"id":"47282209.9383c4","type":"debug","z":"23ae98e1.65e538","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":670,"y":1020,"wires":[]},{"id":"e6e4f35f.92d7c8","type":"mqtt out","z":"23ae98e1.65e538","name":"","topic":"ia/factoryinsight/TestLocation123/Assy1Gasket/uniqueProduct","qos":"","retain":"","broker":"d81eab1a.cff018","x":830,"y":1060,"wires":[]},{"id":"9bda47ca.e639d","type":"function","z":"23ae98e1.65e538","name":"New productTag from Assy1Gasket for Gasket","func":"msg.payload = \n{\n    "timestamp_ms": Date.now(),\n    "AID": String(flow.get("counterGasket")),\n    "name": "ImageResolution",\n    "value": 1080\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"context.set("counter",1000); // to store a variable/ Code added here will be run once\n// whenever the node is started.\n","finalize":"","x":400,"y":1220,"wires":[["c22c900d.33d8e8","8370c69e.a46b7"]]},{"id":"c22c900d.33d8e8","type":"debug","z":"23ae98e1.65e538","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":670,"y":1220,"wires":[]},{"id":"2f2e5438.11093c","type":"delay","z":"23ae98e1.65e538","name":"","pauseType":"delay","timeout":"4","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":120,"y":1220,"wires":[["9bda47ca.e639d","e2c85ce7.7b5"]]},{"id":"8370c69e.a46b7","type":"mqtt out","z":"23ae98e1.65e538","name":"","topic":"ia/factoryinsight/TestLocation123/Assy1Gasket/productTag","qos":"","retain":"","broker":"d81eab1a.cff018","x":810,"y":1260,"wires":[]},{"id":"2d8283b8.564b7c","type":"function","z":"23ae98e1.65e538","name":"New addParentToChild from Assy1 for Gasket","func":"msg.payload = \n    {\n    "timestamp_ms": Date.now(),\n    "childAID": String(flow.get("counterVH")),\n    "parentAID": String(flow.get("counterGasket"))\n    }\nflow.set("counterGasket", parseInt(msg.payload.parentAID) + 1); \n\nreturn msg;","outputs":1,"noerr":0,"initialize":"context.set("counter",12000459); // to store a variable/ Code added here will be run once\n// whenever the node is started.\n","finalize":"","x":400,"y":1420,"wires":[["fb5152cb.a45ef8","9959f37c.cc7ec"]]},{"id":"fb5152cb.a45ef8","type":"debug","z":"23ae98e1.65e538","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":670,"y":1420,"wires":[]},{"id":"fa34ffcb.3c2cc8","type":"delay","z":"23ae98e1.65e538","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":120,"y":1420,"wires":[["2d8283b8.564b7c","d30a795.5b6c008"]]},{"id":"9959f37c.cc7ec","type":"mqtt out","z":"23ae98e1.65e538","name":"","topic":"ia/factoryinsight/TestLocation123/Assy1/addParentToChild","qos":"","retain":"","broker":"d81eab1a.cff018","x":810,"y":1460,"wires":[]},{"id":"7bac099f.1f8b58","type":"delay","z":"23ae98e1.65e538","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":120,"y":920,"wires":[["26111f5c.a1e1f8","aa615c76.49656"]]},{"id":"26111f5c.a1e1f8","type":"delay","z":"23ae98e1.65e538","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":120,"y":1020,"wires":[["3eb60608.f5d1e2","44a0e9d5.f09c08"]]},{"id":"7a196298.eb854c","type":"comment","z":"23ae98e1.65e538","name":"VH scanned","info":"Info: Testprocess like Assy1, station 2, without Gasket selection and without VH history (VH comes from Storage.)","x":350,"y":500,"wires":[]},{"id":"9a1b9082.6f2828","type":"comment","z":"23ae98e1.65e538","name":"Good Gasket scanned","info":"Info: Testprocess like Assy1, station 2, without Gasket selection and without VH history (VH comes from Storage.)","x":400,"y":860,"wires":[]},{"id":"86081562.0e862","type":"comment","z":"23ae98e1.65e538","name":"Screwing","info":"Info: Testprocess like Assy1, station 2, without Gasket selection and without VH history (VH comes from Storage.)","x":360,"y":1520,"wires":[]},{"id":"ace5904a.d89a28","type":"mqtt out","z":"23ae98e1.65e538","name":"","topic":"ia/factoryinsight/TestLocation123/Assy1Gasket/productTagString","qos":"","retain":"","broker":"d81eab1a.cff018","x":830,"y":1360,"wires":[]},{"id":"5928a7bc.4c059","type":"debug","z":"23ae98e1.65e538","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":670,"y":1320,"wires":[]},{"id":"81caa86.0b676d8","type":"function","z":"23ae98e1.65e538","name":"New productTagString from Assy1Gasket for Gasket","func":"msg.payload = \n{\n    "timestamp_ms": Date.now(),\n    "AID": String(flow.get("counterGasket")),\n    "name": "precision",\n    "value": "high"\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"context.set("counter",1000); // to store a variable/ Code added here will be run once\n// whenever the node is started.\n","finalize":"","x":420,"y":1320,"wires":[["5928a7bc.4c059","ace5904a.d89a28"]]},{"id":"e2c85ce7.7b5","type":"delay","z":"23ae98e1.65e538","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":120,"y":1320,"wires":[["81caa86.0b676d8","fa34ffcb.3c2cc8"]]}]

We now have multiple simulators integrated into the stack


release-3.74 : CI: Backport cluster logging

Description
The release-3.74 branch is missing some useful info e.g. what OCP version is it running. This PR backports the changes for that.
Checklist

[x] Investigated and inspected CI test results

Testing Performed
CI is sufficient. The failures are OK IMO. There was an imaging glitch. I'm running one full gke-qa for sanity.

/test gke-qa-e2e-tests

/retest
Test failures due to missing images


support laravel 11 and horizon 5.24 and the latest carbon.

Update Dependencies for Laravel 10 and Horizon 5 Compatibility
This pull request updates the dependencies of the michaeldyrynda/laravel-horizon-cluster package to ensure compatibility with Laravel 11 and Horizon 5.24. The following changes have been made to the composer.json file:
"require": {
   "laravel/horizon": "^5.24",
   "nesbot/carbon": "^2.17 || ^3.0",
   "illuminate/support": "^8.17|^9.0|^10.0|^11.0"
}

@anabeto93 kindly fix the conflict, then later I'll tag with this changes.


180 automatically re size images to increase frontend performance

Context

Does this issue have a Trello card?

https://trello.com/c/2uN9A0P5/180-automatically-re-size-images-to-increase-frontend-performance
Intent

What changes are introduced by this PR that correspond to the above card?

Use Drupal's image resizing functionality to resize images.
Two new "image styles" are introduced in this PR.  These are essentially presets (which can be updated at anypoint in time).
I based these sizes on what is currently used on the frontend.

tile_small (296x176) - This is the most commonly used image size, used on most taxonomy pages and the homepage.
tile_large (600×345) - Larger images are currently used in three separate places, all with slightly different sizes.  The homepage (600x300), category pages (585x345), and at the top of a series page (450x300).  These sizes are all quite similar so it doesn't make sense to have separate image styles for each one (it would result in 3x images being created).   So instead I took the largest of each dimension, and that became the size.

I've also updated the patches for the flysystem_s3 module to support image styles, in particular the patch for the pre-signed urls.  This has been posted back to the original issue queue, see https://www.drupal.org/project/flysystem_s3/issues/2772847#comment-14156598
The jsonapi_image_styles module has been installed, so that image style urls can be retrieved via JSON:API.
To do this, you must use the ?include parameter.  E.g. http://localhost:11001/jsonapi/node/moj_video_item?include=field_moj_thumbnail_image
Considerations
Checklist

[ ] This PR contains only changes related to the above card
[ ] Tests have been added/updated to cover the change
[ ] Documentation has been updated where appropriate
[ ] Tested in Development

I've spotted an issue when viewing a page with lots of images for the first time (e.g. a series page with 40 images).  Drupal will need to resize each one, and it hasn't done this in time when the user loads the page.  Resulting in broken images.
I'm going to look into a fix for this possibly using https://www.drupal.org/project/image_style_warmer

Re-opened PR with adding image_style_warmer module enabled.
This module will allow us to generate resized images for all existing files.  This can be done by running drush image-style-warmer:warm-up.  Note the process will take around 4-5 hours to run.

There's still a bit of work to do as the k8ns job to generate the images was failing.  So closing this for now while that is fixed.


test: Port fulltext search tests to new setup

Close prisma/client-planning#36

Note: I hat to change the way we generate file paths for generated client in this setup. Previously, when we had this matrix:
[
  [
     { provider: 'sqlite', foo: 'abc' },
     { provider: 'postgresql', foo: 'def' }
  ],
  [
    { bar: '123', baz: '321' },
    { bar: '456', baz: '321 }
  ]
]

every single parameter was included in the path name, for example provider=sqlite, foo=abc, bar=123, baz=321.
I think with a long enough parameter list, like in this test, we hit character limit on the path in Windows. So, to fix this, only first key-value pair from each dimension is included. Example above will now be provider=sqlite, bar=123. This should be unique enough so clients, generated by different tests won't clash, but at the same time, consistently short enough so we don't have to worry about number of parameters we use in the matrix.


console.log: Panic when trying to log undefined

There is a panic when trying to log an undefined value.
When trying to log complex objects with console.log, a panic is emitted instead of a log.
On the upside, this does not break the request flow, the response comes back fine!
async function handleRequest(request) {
  console.debug(request);

  const out = JSON.stringify({
    success: true,
  });
  return new Response(out, {
    headers: { "content-type": "application/json" },
  });
}

addEventListener("fetch", (req) => {
  req.respondWith(handleRequest(req));
});

Error:
thread '<unnamed>' panicked at /Users/arshia/.cargo/git/checkouts/mozjs-e1c76167ba7c548f/6f3e450/mozjs-sys/src/jsimpls.rs:420:9:
assertion failed: *self.stack == self as *mut _ as usize as _

That's a root stack corruption issue, which is quite scary to have in the code. Will have a look, thanks!

@theduke looking at the code, request shouldn't be null at all. In fact, I'd bet there's something deep inside the (very) complicated structure that makes it fail.


Parallel="classes" executes methods of test class in different threads

TestNG Version
6.14.3
Expected behavior
When using parallel="classes" attribute in a suite XML file and using either the "dependsOnMethods" or the "priority" attribute on the test annotation it should run classes in parallel and the methods of each of the classes in the same thread
Actual behavior
Using parallel="classes" on test methods with the priority or dependsOnMethods properties defined causes each of the methods of the test class to run in different thread, eventhough they seem to run sequentially.
Is the issue reproductible on runner?
I'm passing the suite xml file to the testng runner.

[ ] Shell
[ ] Maven
[ ] Gradle
[ ] Ant
[ ] Eclipse
[ ] IntelliJ
[ ] NetBeans

Test case sample
If you create a test class like this:
public class PriorityTest2 {

    @Test(priority = 1)
    public void FirstTest(){
        System.out.println("First test ran");
        System.out.println(Thread.currentThread().getId());
    }

    @Test(priority = 2)
    public void SecondTest(){
        System.out.println("Second test ran");
        System.out.println(Thread.currentThread().getId());
    }

    @Test(priority = 3)
    public void ThridTest(){
        System.out.println("Third test ran");
        System.out.println(Thread.currentThread().getId());
    }
}

and then a suite XML file like this:
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Mozilla Test Suite" parallel="classes" thread-count="6" >
    <test name="Test 1" group-by-instances="true" >
        <classes>
            <class name = "PriorityTest"/>
        </classes>
    </test>
</suite>

You get the following output:
First test ran
12
Second test ran
13
Third test ran
14

However if you change the test suite to use parallel='tests', then you get the correct output, which is each test method running in the same thread:
First test ran
12
Second test ran
12
Third test ran
12

Seems a duplicate of #1185

@tetienne I'm not sure it is exactly the same issue. Here priority is used which is a global suite dependency feature and we have a strange behavior with parallel=test.
But I agree, it's probably the same root cause :)

@juherr - I spent some time looking at this.The root cause is the same.
When TestNG encounters methods with dependencies, we end up running independent methods separately and then followed by dependent methods. When parallelism is involved in this combo, we end up making use of the org.testng.internal.thread.graph.GraphThreadPoolExecutor implementation for running the tasks. Since ThreadPoolExecutor variants doesn't let us define thread affinity to our tasks, we are kind of stuck with a situation wherein dependent methods end up getting lined up on a different thread than their parent tasks, resulting in this issue.
The easiest way for us to solve this, without having to change DependencyGraph implementation would be to find a way to define thread affinity (i.e., run a dependent task only in the same thread as the one in which the independent one ran). I can think of some hacks in mind viz.,

Start with executing org.testng.internal.thread.graph.GraphThreadPoolExecutor#runNodes in its current fashion.
Enrich org.testng.internal.thread.graph.IWorker to retrieve Thread ID on which it was executed.
Enrich org.testng.internal.thread.graph.IWorker to retrieve a status which represents if the task was run to completion.
Enrich org.testng.internal.thread.graph.IWorker implementations viz., org.testng.internal.TestMethodWorker and org.testng.SuiteRunnerWorker to be able to be injected with the Thread ID of the independent task, and use that as a cross comparison with the Thread.currentThread().getId() to see if there's a match and only then execute its run() method.
Now within the org.testng.internal.thread.graph.GraphThreadPoolExecutor#afterExecute we query the IWorker to find out if it ran to completion via (3) and only then set the status.

I am still contemplating on whether this entire thing would look like an ugly hack :)
Would be great if you could at least let me know if this overall approach sounds fine and can even be attempted or not. Dont want to spend time on something which doesn't even make sense.
@cbeust - It would be great if you could please add your thoughts as well.

@krmahadevan I think the best way is trying it and it will easier to discuss with some code ;)
Another idea could be to add an extra level parameter to getFreeNodes() in order to skip edges with a lower weight. But I didn't test it and I don't know if it can work.

Fixed by #1783


Make git related tests more robust

When running git init we pass -b main to set an initial branch
explicitly. This prevents the hint informing you that git is
defaulting to master from being printed when using more recent git
versions.
When running git init we also redirect stderr to /dev/null as
newer versions of git print a hint to stderr if there's no default
main branch name set and it is defaulting to 'master'. An alternative
would be to pass -b, but that is not supported by older git versions
as seen on debian, for example.
after git init we set user.name and user.email for the repository, so
the tests don't fail if they are executed in an environment without a
global git config (CI, sandboxed build systems, …)

Alright, seemingly -b is a new flag, will have to look for an alternative.

Alright, seemingly -b is a new flag, will have to look for an alternative.

Okay redirecting stderr works as an alternative (checked locally against a newer git version).

Okay redirecting stderr works as an alternative (checked locally against a newer git version).


flask_openapi3 support

Hi Team,
Need help/fix for flask_openapi3 support? in Elastic APM.
We are using FLASK_OPENAPI3 version of Flask implementation in which APM UI(Kibana) is unable to display the TRANSACTIONS.
We are using ELASTIC APM to instrument FLASK APP with Wsgi, Gunicorn.
The events are generated and submitted to APM Server with status code as "202". The APM - Kibana UI is unable to display the requests.
_Sent request, url=http://x.x.x.7.149:8200/intake/v2/events size=5.11kb status=202
Exception message : N/A
Culprit - threading.bootstrap
Flask app with Gunicorn + wsgi uses gevent - gunicorn --worker-class=gevent --timeout=0 --worker-connections=100 --workers=9 wsgi:app

My question is : The APM UI shows empty with no transactions being recorded, that's the issue am facing even though APM logs show - {"log.level":"info","@timestamp":"2022-11-15T04:47:07.194-0600","log.logger":"request","log.origin":{"file.name":"middleware/log_middleware.go","file.line":63},"message":"request accepted","url.original":"/intake/v2/events","http.request.method":"POST","user_agent.original":"apm-agent-python/6.11.0 (RHEL_53_WorklistServices)","source.address":"<IP_ADDRESS>","http.request.body.bytes":526,"http.request.id":"10f63edd-8dbe-400b-af74-b46c86f62c5a","event.duration":10410600,"http.response.status_code":202,"ecs.version":"1.6.0"}

We are initializing the app like here -
from flask import Flask
from elasticapm.contrib.flask import ElasticAPM
import elasticapm
from elasticapm.handlers.logging import LoggingHandler
from elasticapm.contrib.flask import ElasticAPM
from elasticapm.handlers.logging import LoggingHandler
"""
# WSGI - stands for web server gateway interface.
# used to forword requests from web server to a backend python web
  application or framework.
# WSGI server simply invokes a callable object on the WSGI application
"""
server_url = 'http://x.x.x.x:8200'
service_name = 'RHEL_WorklistSVC'
environment = 'RHEL_DEV'
app = create_app()
apm = ElasticAPM(app, server_url=server_url, service_name=service_name, environment=environment, logging=True)
elasticapm.instrument()

Here is the code for "CREATE_APP" , please help me why we are not getting transactions in the UI.
import os
from datetime import timedelta
from flask import request
from werkzeug.exceptions import HTTPException
from flask_jwt_extended import JWTManager
from flask_openapi3 import Info, HTTPBearer, OpenAPI
from jivacore.logger.log import Logger
from worklist.resources.worklist import worklist_routes
from worklist.resources.other_routes import health_routes
from worklist.common import constants
from worklist.security import permissions
from jivacore.db.db import get_scoped_session
from worklist import config, error_handlers

def create_app(flask_config=None, **kwargs):
    """
    Instantiation and configure of flask application
    Args:
        flask_config (str): Flask configuration value
    Returns:
        OpenAPI: Flask OpenAPI instance
    """
    info = Info(title=os.getenv("PROJECT_NAME"), version="1.0.0", description=constants.WORKLIST_DESCRIPTION)
    app = OpenAPI(__name__, info=info, security_schemes={"jwt": HTTPBearer()})

    # Configuring logger for Worklist Service
    logger = Logger(request)
    logger.info('*******************Starting worklist Service********************')

    # Load application configuration from the object
    config.LoadApplicationConfig(app, flask_config)

    # Adding permissions to the application
    app.permissions = permissions

    # Adding scoped_session to the application
    app.scoped_session = get_scoped_session()

    # JSON Web Token configuration
    jwt = JWTManager(app)
    app.config["JWT_IDENTITY_CLAIM"] = "jti"
    app.config["JWT_TOKEN_LOCATION"] = ["headers", "cookies"]
    app.config["JWT_ACCESS_COOKIE_NAME"] = "aptn"
    app.config["JWT_ACCESS_CSRF_HEADER_NAME"] = "X-CSRFT"
    app.config["JWT_ACCESS_TOKEN_EXPIRES"] = timedelta(minutes=30)

    # Register Error Handlers
    jwt.unauthorized_loader(error_handlers.missing_token_callback)
    app.register_error_handler(HTTPException, error_handlers.http_errors)
    app.register_error_handler(Exception, error_handlers.global_errors)

    # Register blueprints
    app.register_api(worklist_routes)
    app.register_api(health_routes)

    # Before and after request handlers
    app.before_request(config.before_request_func)
    app.after_request(config.after_request_func)
    app.teardown_request(config.teardown_request_func)

    return app

hi @basepi ,
Just to have the info, when is the next version release planned which I hope would support open API3

@dikshith Unfortunately we're not sure. I'm hoping to get it on our next version planning but even then we don't commit to dates or versions. Sorry for the inconvenience!

Hopefully the next version planned soon !! Any workaround would help ....

Hmmm, I set up the test app from the project's README and it seems to be working for me. Perhaps try setting debug=True in case flask_openapi3 sets the debug flag by default?
apm = ElasticAPM(app, server_url=server_url, service_name=service_name, environment=environment, logging=True, debug=True)

Here is my working example app:
from pydantic import BaseModel

from flask_openapi3 import Info, Tag
from flask_openapi3 import OpenAPI
from elasticapm.contrib.flask import ElasticAPM

info = Info(title="book API", version="1.0.0")
app = OpenAPI(__name__, info=info)
apm = ElasticAPM(app, service_name="openapi3_is_great", debug=True)

book_tag = Tag(name="book", description="Some Book")

class BookQuery(BaseModel):
    age: int
    author: str

@app.get("/book", tags=[book_tag])
def get_book(query: BookQuery):
    """get books
    get all books
    """
    return {
        "code": 0,
        "message": "ok",
        "data": [
            {"bid": 1, "age": query.age, "author": query.author},
            {"bid": 2, "age": query.age, "author": query.author}
        ]
    }

if __name__ == "__main__":
    app.run(debug=True)


OpenStack , Docker , Fig

Hello!
Can you create fig.yml ( http://www.fig.sh/ ) and link all containers  ?

This looks much more sophisticated that what I was trying to do with bash.  I will look into this.


Flannel creation fails with certificate signed by unknown authority

I'm trying to create a flannel network and the pods fail with CrashLoopbackOff.
Expected Behavior
Flannel to be created with pods in running state.
Current Behavior
Fails with the below error,
Failed to create SubnetManager: error retrieving pod spec for 'kube-system/kube-flannel-ds-pvpzc': Get https://<IP_ADDRESS>:443/api/v1/namespaces/kube-system/pods/kube-flannel-ds-pvpzc: x509: certificate signed by unknown authority
Steps to Reproduce (for bugs)
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Environment

Flannel version: Latest Version
Backend used (e.g. vxlan or udp): vxlan
Etcd version: 3.0.17
Kubernetes version (if used): 1.8
Operating System and version: Ubuntu 16.04

@ImmanuelJDaniel  Did you solve this?

Same issues, one pod can start, but 2 others failed. The node is never the same

Same issues，anyone help?


middlewares can crash precompile step

Environment

Operating System: Windows_NT
Node Version:     v16.20.0
Nuxt Version:     3.5.2
Nitro Version:    2.4.1
Package Manager<EMAIL_ADDRESS>Builder:          vite
User Config:      -
Runtime Modules:  -
Build Modules:    -

Reproduction
https://stackblitz.com/edit/nuxt-starter-hmeytw?file=server%2Fmiddleware%2Fcsrf.ts,package.json,nuxt.config.ts,i18n.config.ts,app.vue
Describe the bug
Hi :wave:
I think this is mostly an upstream issue maybe ?
But all middleware are applied to /__i18n__/precompile so it can easily crash.
The current workaround is to add an if staatement with !getRequestPath(event).startsWith('/__') for the users middlewares.
However I didn't tried yet what would happen (as we won't have any control on it) if modules such as nuxt-security adds middlewares that can prevent /__i18n__/precompile from returning a response
Additional context
No response
Logs
No response

Thank you for your feedback!
Your feedback is a good point!
As you probably know, vue-i18n translates using i18n resources specified in the langDir options or set in i18n.config.ts.
Using endpoints, those resources are then precompiled at /__i18n__/precompile.
This endpoint is precompiled in nuxi build or nuxi generate through a prerender step.
I had this issue in my brain but it needs to be addressed.
I would like some advice from the nuxt team. /cc @danielroe 🙏
And about this issue #2086  related to prerender


PORTALS-3201

Screenshots from various portals can be found in the jira ticket: https://sagebionetworks.jira.com/browse/PORTALS-3201?focusedCommentId=217349


Develop

Now builds by default from ./datastore-metadata. Provide a blank --from_github "" to enable remote from data.legumeinfo

Cursory testing, but LGTM

merging.

merge


Containerd v1.5 support?

What would you like to be added:
Update Containerd version to  v1.5
I did not find any roadmap or existing Issue on that so I wonder if this is something planned and what is the scope of the changes.
Why is this needed:
In particular for me the trigger to this question was this functionality added in 1.5 - https://github.com/containerd/containerd/blob/main/docs/hosts.md

Adding to this containerd 1.5.8 version should be picked as it has lot of CVE patches that current version is missing 1.4.6.
https://github.com/opencontainers/distribution-spec/security/advisories/GHSA-mc8v-mgrf-8f4m
https://github.com/opencontainers/distribution-spec/security/advisories/GHSA-mc8v-mgrf-8f4m
https://github.com/advisories/GHSA-c2h3-6mxw-7mvq
These are very critical issues and have been fixed in 1.5.8. Would be really helpful and make EKS contained secure if these contained is upgraded

Any updates yet ?  1.5.X + of containerD is really needed seeing as the issue reported here is fixed in this version.

We are also very keen to see AMI for EKS released with version 1.5x of containerd - especially knowing that 1.23 on EKS will come with containerd as default runtime.
🙏

Hey tea, Any update on this?

Consider upgrading to 1.6 instead, because of the performance issue in 1.5 branch: https://github.com/containerd/containerd/pull/6843

Any updates? We need registry configuration in order to upgrade our clusters which is supported starting on v1.5

We're working on an update to 1.6 -- we expect that version to be available to us soon.

We've also run into https://github.com/containerd/containerd/issues/4604, so upgrading to containerd 1.6 would be very appreciated.


Remove async.waterfall

Using async.waterfall is blocking the event loop.
/cc @zdne @honzajavorek @Almad

@pksunkara @zdne I'd be interested in measurement behind this.
async.waterfall is no different from any other function call (that, yes, is blocking by default). But if anything, and if you want to do cooperative multitasking, it should IMHO be easier to wrap waterfall in process.nextTick that allows other things in queue to be executed.
I am not disputing results of your investigation, but I am personally really curious to see how this change affected performance and whether async is really performance og.

@Almad interesting – with our limited knowledge of this I guess we haven't realized wrapping it in nextTick is the way to go. /cc @smizell

@Almad @zdne In playing around with this last night, something was really strange. I've used async.waterfall a lot and have never seen it.
This would not block the event loop.
return callback()

But if replaced with this exact code, it would block until all calls were finished.
async.waterfall [
  (next) -> next()
], -> callback()

If you then introduced another async.waterfall in the callback chain, it would block until almost all had been completed.

@Almad @zdne Additionally, in the above example that blocked, if I changed to async.series, it worked.

Could this be related? https://github.com/caolan/async/issues/696 Just browsed through their issues, I did not look into its internals.


Can not format when I use it in single file

When I want to format my file when I do not open an activate workspace, (just open a single file), it doesn't work.
When I format a file with a opened workspace, (this file is not in this workspace) it also doesn't work.
It only work when I open a workspace and open a file which in actually in this workspace.
I hope it can work well in any situations.

@1m188 Can you share the logs from Output > autopep8? Make sure this is the case where it is not working.

emmm, when I format my file, it show notification like this:
Traceback (most recent call last):
File "c:\Users\user name.vscode\extensions\ms-python.autopep8-2023.6.0\bundled\tool\lsp_server.py", line 429, in _run_tool_on_document
result = utils.run_module(
File "c:\Users\user name.vscode\extensions\ms-python.autopep8-2023.6.0\bundled\tool\lsp_utils.py", line 153, in run_module
return _run_module(module, argv, use_stdin, source)
File "c:\Users\user name.vscode\extensions\ms-python.autopep8-2023.6.0\bundled\tool\lsp_utils.py", line 138, in _run_module
runpy.run_module(module, run_name="main")
File "c:\Users\user name\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 228, in run_module
return _run_code(code, {}, init_globals, run_name, mod_spec)
File "c:\Users\user name\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "c:\Users\user name.vscode\extensions\ms-python.autopep8-2023.6.0\bundled\libs\autopep8.py", line 414, in
del pycodestyle._checks['logical_line'][pycodestyle.continued_indentation]
KeyError: <function continued_indentation at 0x000001A78FDC8820>

Can you share the initial part of the logs where settings are passed?


Kotlin generation doesn't keep types of Any，Any is translated to java.lang.Object

Overview
@RuntimePermissions
open class BaseFragmentActivity<V, T:MvpPresenter<V>> : FragmentActivity() {
...
}

@NeedsPermission(Manifest.permission.READ_CONTACTS)
fun doContactsPermissionSucc() {
...
}

Expected
fun <V : Any, T : MvpPresenter<V>> BaseFragmentActivity<V, T>.doContactsPermissionSuccWithPermissionCheck() {
  if (PermissionUtils.hasSelfPermissions(this, *PERMISSION_DOCONTACTSPERMISSIONSUCC)) {
     doContactsPermissionSucc()
  } else {
     ActivityCompat.requestPermissions(this, PERMISSION_DOCONTACTSPERMISSIONSUCC, REQUEST_DOCONTACTSPERMISSIONSUCC)
  }
}

Actual
fun <V : Object, T : MvpPresenter<V>> BaseFragmentActivity<V, T>.doContactsPermissionSuccWithPermissionCheck() {
  if (PermissionUtils.hasSelfPermissions(this, *PERMISSION_DOCONTACTSPERMISSIONSUCC)) {
     doContactsPermissionSucc()
  } else {
     ActivityCompat.requestPermissions(this, PERMISSION_DOCONTACTSPERMISSIONSUCC, REQUEST_DOCONTACTSPERMISSIONSUCC)
  }
}

Just Same as #427

implementation "com.github.hotchemi:permissionsdispatcher:4.0.0"
kapt "com.github.hotchemi:permissionsdispatcher-processor:4.0.0"

I think this is due to KotlinPoet issue.. 🤔

Updated kotlinpoet to 1.0.0 but the issue hasn't been addressed🤔


rename doesn't take effect

rename directive doeson't take effect if it's a flattened parameter

no repo


NioEventLoopGroup vs EpollEventLoopGroup on Linux performance

I would like to know is there any difference in performance between NioEventLoopGroup and EpollEventLoopGroup on Linux platform. I know that EpollEventLoopGroup should perform better by is there any real tests?

Why native epoll support is introduced in Netty?

@Sammers21 see the link @spccold provided.

with performance its usually best to evaluate based upon your work load ... and then let us know what you find :)

Are there any benchmarks? I want to see numbers. I that EpollEventLoopGroup perform better but the question is it worth it.

@Sammers21 I think @Scottmitch was suggesting that you create your own metrics try both and see how they compare because performance will vary depending on the type of workload / application. Bonus points if you can come back here with the results!

+1 @johnou.
@Sammers21 - it is relatively easy to switch between transports ... so assuming you have some existing mechanism to measure performance of your application you can just swap the transports and observe any differences.

@Scottmitch, @johnou, thank you, I got your point

@Sammers21 Have you done the performance test between these two EventLoopGroup yet? If you have done it, can you post your test results here please?

@danh22, nope, I haven't.

Testes on Linux:
kernel: 5.18.0-0.rc1.18.fc37.x86_64+debug
2xCPU HT, i7-6600U CPU @ 2.60GHz
Java: openjdk-17.0.2
Test: https://gist.github.com/kofemann/43300f27fff44869243f00d912b553c4
Benchmark                        (type)   Mode  Cnt      Score      Error  Units
NettyGroupBenchmark.sendMessage   epoll  thrpt   20  14455.782 ± 1682.250  ops/s
NettyGroupBenchmark.sendMessage     nio  thrpt   20  17605.324 ±  824.115  ops/s

The result is highly depends on the use-case.

The benchmark mentioned is testing the loop group as an executor you can use to submit tasks: this is not saying anything related to the performance of takes executed within the event loop itself and it is not fed by any incoming I/O.
What are you trying to estimate/measure?

The goal is to understand which EventLoopGroup should be used. I have looked around and didn't find any specific numbers or guidelines. So, the benchmark is a starting point for my investigation.


Option to enable/disable the large center clock

If disabled, the 'conky' dependency could be excluded for sxmo, 'wayout' dependency excluded for swmo

Thinking about it more, there isn't a reliable way to implement this. We can exclude the dependencies and it won't show, sure, but that doesn't guarantee the deps don't end up getting pulled in elsewhere.
If the user wanted the clock disabled, they should configure it the intended sxmo way - by creating a ~/.config/sxmo/hooks/sxmo_hook_desktop_widget.sh
Because this configuration happens in the user's home dir at runtime, we have no way to know if the conky/wayout dependency is needed for not.


V3 Public CDN URL

What is the Public CDN URL for version 3 of the SDK?
This URL does not work:
https://js.monitor.azure.com/scripts/b/ai.3.min.js
However, specific versions do work:
https://js.monitor.azure.com/scripts/b/ai.3.0.0.min.js
https://js.monitor.azure.com/scripts/b/ai.3.0.1.min.js
https://js.monitor.azure.com/scripts/b/ai.3.0.2.min.js

Yes, this is currently by design and documented in the milestone (probably should be a little better documented).
We are currently working through some final CDN deployment items before we promote and release v3 as ai.3.min.js and we are currently planning to release v3.0.3 (in a week or so to npm -- hopefully and then the following weeks it will rollout to the CDN (exact timeline TBD, as this is the first v3 we may just blast it all the way (as no-one can or is using this today)) as the first v3 version to be released as ai.3.min.js.
For reference the Work items we are going through

Updating the Web ~Snippet~ SDK Loader to support v3

this includes detecting if a end-user is running IE and then automatically drops back to v2 (due to possible compatibility issues))
The ~snippet~ SDK Loader release / documentation will be slightly delayed until we have promoted
We are also considering whether this should be documented to use the ai.3.gbl.min.js module format by default so that if/when your runtime loads requirejs this doesn't stop the SDK from initializing

Updating and releasing v2 CDN (ai.2.min.js) so that if both v2 and v3 are loaded into the same runtime that v2 doesn't completely trash v3 and documenting how to work around this situation when it occurs (most when your running in a framework that loads v2 while you want v3).

hint: We have introduced new major version namespaces with a fallback to the standard one Microsoft.ApplicationInsights, Microsoft.ApplicationInsights2 and Microsoft.ApplicationInsights3

Short Answer:

We are close to finishing the above and this WILL be happening REALLY soon now.

Ok, I've just pushed v3.0.3 to beta and currently it's heading to the next endpoint (see the milestone for the URL's and all going well this will be available tomorrow (PST) as ai.3.gbl.min.js and ai.3.min.js

ai.3.gbl.min.js and ai.3.min.js is v3.0.3

thank you!


Feature/respect validator - replaced Valitron w. Respect, and strategy pattern for validation

resolves https://github.com/macder/wp-form-validation/issues/109