Is it possible to test in simulation environment?

Unfortunately, we can not use the franka panda arm until next few months.
I am wondering if it is possible to set up a scene and robot with the UMI gripper in a simulation environment. Or are there any other solutions or alternative methods for simulation environent?
Thanks.

I've connected Isaac sim to UMI ,but works not very well. seems like theres some kind of coordinate problem.


Tex maker finds errors on commented lines

The cross indicates a neomake warning, here I have one given by rubberinfo (vanilla config) about some tex in a comment, is it normal ?
 ✘ 141  % \nameref{incentives_bandwidth}

Is there a discrepancy between the command line version of rubberinfo and Neomake's output?


[WFLY-11335] Fix Undertow deployment metrics

Do not return a meaningless 0 value for the deployment metrics when they
are not collected.
Instead, specify a "undefined metric" value on the metric's attribute
definition.
Register the servlet mappings as a runtime read-only attribute instead
of a metric.
JIRA: https://issues.jboss.org/browse/WFLY-11335

@kabir This is okay to merge if the tests pass. I just didn't add the label as I wanted to run the tests one more time.

These failures don't seem associated with this change. I think this is okay.


Mention packagesourcemapper tool in packagesourcemapping feature

Somehow this PR picking up commits from other PR.
Probably should I have rebased my branch or bad timing for making change?

Docs Build status updates of commit 5de1ce2:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/create-packages/Package-authoring-best-practices.md
:bulb:Suggestion
View
Details

docs/TOC.md
:bulb:Suggestion
View
Details

.github/CODEOWNERS
:white_check_mark:Succeeded

.github/fabricbot.json
:white_check_mark:Succeeded

docs/concepts/MSBuild-props-and-targets.md
:white_check_mark:Succeeded
View

docs/concepts/Package-Versioning.md
:white_check_mark:Succeeded
View

docs/consume-packages/Central-Package-Management.md
:white_check_mark:Succeeded
View

docs/consume-packages/configuring-nuget-behavior.md
:white_check_mark:Succeeded
View

docs/consume-packages/Finding-and-Choosing-Packages.md
:white_check_mark:Succeeded
View

docs/consume-packages/migrate-packages-config-to-package-reference.md
:white_check_mark:Succeeded
View

docs/consume-packages/Package-References-in-Project-Files.md
:white_check_mark:Succeeded
View

docs/consume-packages/Package-Source-Mapping.md
:white_check_mark:Succeeded
View

docs/consume-packages/Reinstalling-and-Updating-Packages.md
:white_check_mark:Succeeded
View

docs/create-packages/Creating-a-Package.md
:white_check_mark:Succeeded
View

docs/create-packages/creating-a-package-dotnet-cli.md
:white_check_mark:Succeeded
View

docs/create-packages/creating-a-package-msbuild.md
:white_check_mark:Succeeded
View

docs/hosting-packages/Overview.md
:white_check_mark:Succeeded
View

docs/reference/Errors-and-Warnings.md
:white_check_mark:Succeeded
View

docs/reference/errors-and-warnings/NU1100.md
:white_check_mark:Succeeded
View

docs/reference/errors-and-warnings/NU1802.md
:white_check_mark:Succeeded
View

docs/reference/errors-and-warnings/NU1803.md
:white_check_mark:Succeeded
View

docs/reference/msbuild-targets.md
:white_check_mark:Succeeded
View

docs/reference/nuget-config-file.md
:white_check_mark:Succeeded
View

docs/release-notes/Index.md
:white_check_mark:Succeeded
View

docs/release-notes/NuGet-6.3.md
:white_check_mark:Succeeded
View

This comment lists only the first 25 files in the pull request.

docs/create-packages/Package-authoring-best-practices.md

Line 5, Column 12: [Suggestion: ms-author-invalid - See documentation] Invalid value for 'ms.author', 'chgill' is not a valid Microsoft alias.

docs/TOC.md

Line 68, Column 5: [Suggestion: preserve-view-not-set - See documentation] You've pinned this link to a specific version of content with the view parameter. It's recommended not to pin a version unless that version is A) not the default view and B) the context is about that version specifically. To proceed with pinning a version add the &preserve-view=true to the URL.  Otherwise, remove the view parameter. URL: /azure/devops/artifacts/nuget/publish?view=azure-devops

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 5de1ce2:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/create-packages/Package-authoring-best-practices.md
:bulb:Suggestion
View
Details

docs/release-notes/NuGet-5.7.md
:bulb:Suggestion
View
Details

docs/TOC.md
:bulb:Suggestion
View
Details

.github/CODEOWNERS
:white_check_mark:Succeeded

.github/fabricbot.json
:white_check_mark:Succeeded

.openpublishing.publish.config.json
:white_check_mark:Succeeded

docs/api/catalog-resource.md
:white_check_mark:Succeeded
View

docs/api/search-autocomplete-service-resource.md
:white_check_mark:Succeeded
View

docs/concepts/MSBuild-props-and-targets.md
:white_check_mark:Succeeded
View

docs/concepts/Package-Versioning.md
:white_check_mark:Succeeded
View

docs/consume-packages/Central-Package-Management.md
:white_check_mark:Succeeded
View

docs/consume-packages/configuring-nuget-behavior.md
:white_check_mark:Succeeded
View

docs/consume-packages/Finding-and-Choosing-Packages.md
:white_check_mark:Succeeded
View

docs/consume-packages/managing-the-global-packages-and-cache-folders.md
:white_check_mark:Succeeded
View

docs/consume-packages/media/Package-Pattern-Examples.png
:white_check_mark:Succeeded
View

docs/consume-packages/migrate-packages-config-to-package-reference.md
:white_check_mark:Succeeded
View

docs/consume-packages/Package-References-in-Project-Files.md
:white_check_mark:Succeeded
View

docs/consume-packages/Package-Source-Mapping.md
:white_check_mark:Succeeded
View

docs/consume-packages/Reinstalling-and-Updating-Packages.md
:white_check_mark:Succeeded
View

docs/create-packages/Creating-a-Package.md
:white_check_mark:Succeeded
View

docs/create-packages/creating-a-package-dotnet-cli.md
:white_check_mark:Succeeded
View

docs/create-packages/creating-a-package-msbuild.md
:white_check_mark:Succeeded
View

docs/create-packages/Select-assemblies-referenced-by-projects.md
:white_check_mark:Succeeded
View

docs/create-packages/Sign-a-Package.md
:white_check_mark:Succeeded
View

docs/hosting-packages/Overview.md
:white_check_mark:Succeeded
View

This comment lists only the first 25 files in the pull request.

docs/create-packages/Package-authoring-best-practices.md

Line 5, Column 12: [Suggestion: ms-author-invalid - See documentation] Invalid value for 'ms.author', 'chgill' is not a valid Microsoft alias.

docs/release-notes/NuGet-5.7.md

Line 5, Column 12: [Suggestion: ms-author-invalid - See documentation] Invalid value for 'ms.author', 'chgill' is not a valid Microsoft alias.

docs/TOC.md

Line 68, Column 5: [Suggestion: preserve-view-not-set - See documentation] You've pinned this link to a specific version of content with the view parameter. It's recommended not to pin a version unless that version is A) not the default view and B) the context is about that version specifically. To proceed with pinning a version add the &preserve-view=true to the URL.  Otherwise, remove the view parameter. URL: /azure/devops/artifacts/nuget/publish?view=azure-devops

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 5de1ce2:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/create-packages/Package-authoring-best-practices.md
:bulb:Suggestion
View
Details

docs/TOC.md
:bulb:Suggestion
View
Details

.github/CODEOWNERS
:white_check_mark:Succeeded

.github/fabricbot.json
:white_check_mark:Succeeded

docs/concepts/MSBuild-props-and-targets.md
:white_check_mark:Succeeded
View

docs/concepts/Package-Versioning.md
:white_check_mark:Succeeded
View

docs/consume-packages/Central-Package-Management.md
:white_check_mark:Succeeded
View

docs/consume-packages/configuring-nuget-behavior.md
:white_check_mark:Succeeded
View

docs/consume-packages/Finding-and-Choosing-Packages.md
:white_check_mark:Succeeded
View

docs/consume-packages/migrate-packages-config-to-package-reference.md
:white_check_mark:Succeeded
View

docs/consume-packages/Package-References-in-Project-Files.md
:white_check_mark:Succeeded
View

docs/consume-packages/Package-Source-Mapping.md
:white_check_mark:Succeeded
View

docs/consume-packages/Reinstalling-and-Updating-Packages.md
:white_check_mark:Succeeded
View

docs/create-packages/Creating-a-Package.md
:white_check_mark:Succeeded
View

docs/create-packages/creating-a-package-dotnet-cli.md
:white_check_mark:Succeeded
View

docs/create-packages/creating-a-package-msbuild.md
:white_check_mark:Succeeded
View

docs/hosting-packages/Overview.md
:white_check_mark:Succeeded
View

docs/reference/Errors-and-Warnings.md
:white_check_mark:Succeeded
View

docs/reference/errors-and-warnings/NU1100.md
:white_check_mark:Succeeded
View

docs/reference/errors-and-warnings/NU1802.md
:white_check_mark:Succeeded
View

docs/reference/errors-and-warnings/NU1803.md
:white_check_mark:Succeeded
View

docs/reference/msbuild-targets.md
:white_check_mark:Succeeded
View

docs/reference/nuget-config-file.md
:white_check_mark:Succeeded
View

docs/release-notes/Index.md
:white_check_mark:Succeeded
View

docs/release-notes/NuGet-6.3.md
:white_check_mark:Succeeded
View

This comment lists only the first 25 files in the pull request.

docs/create-packages/Package-authoring-best-practices.md

Line 5, Column 12: [Suggestion: ms-author-invalid - See documentation] Invalid value for 'ms.author', 'chgill' is not a valid Microsoft alias.

docs/TOC.md

Line 68, Column 5: [Suggestion: preserve-view-not-set - See documentation] You've pinned this link to a specific version of content with the view parameter. It's recommended not to pin a version unless that version is A) not the default view and B) the context is about that version specifically. To proceed with pinning a version add the &preserve-view=true to the URL.  Otherwise, remove the view parameter. URL: /azure/devops/artifacts/nuget/publish?view=azure-devops

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@erdembayar The problem isn't you, the problem is that the PR you linked was squashed

@erdembayar The problem isn't you, the problem is that the PR you linked was squashed

I see, what to do now? Could we still merge this PR?

2 options I can think of.

We merge this PR as is.
We rewrite the history of live.

I'd include @JonDouglas here. I don't know if the 2nd option is a good one.

Docs Build status updates of commit 0899c70:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/create-packages/Package-authoring-best-practices.md
:bulb:Suggestion
View
Details

docs/TOC.md
:bulb:Suggestion
View
Details

.github/CODEOWNERS
:white_check_mark:Succeeded

.github/fabricbot.json
:white_check_mark:Succeeded

docs/concepts/MSBuild-props-and-targets.md
:white_check_mark:Succeeded
View

docs/concepts/Package-Versioning.md
:white_check_mark:Succeeded
View

docs/consume-packages/Central-Package-Management.md
:white_check_mark:Succeeded
View

docs/consume-packages/configuring-nuget-behavior.md
:white_check_mark:Succeeded
View

docs/consume-packages/Finding-and-Choosing-Packages.md
:white_check_mark:Succeeded
View

docs/consume-packages/migrate-packages-config-to-package-reference.md
:white_check_mark:Succeeded
View

docs/consume-packages/Package-References-in-Project-Files.md
:white_check_mark:Succeeded
View

docs/consume-packages/Package-Source-Mapping.md
:white_check_mark:Succeeded
View

docs/consume-packages/Reinstalling-and-Updating-Packages.md
:white_check_mark:Succeeded
View

docs/create-packages/Creating-a-Package.md
:white_check_mark:Succeeded
View

docs/create-packages/creating-a-package-dotnet-cli.md
:white_check_mark:Succeeded
View

docs/create-packages/creating-a-package-msbuild.md
:white_check_mark:Succeeded
View

docs/hosting-packages/Overview.md
:white_check_mark:Succeeded
View

docs/reference/Errors-and-Warnings.md
:white_check_mark:Succeeded
View

docs/reference/errors-and-warnings/NU1100.md
:white_check_mark:Succeeded
View

docs/reference/errors-and-warnings/NU1802.md
:white_check_mark:Succeeded
View

docs/reference/errors-and-warnings/NU1803.md
:white_check_mark:Succeeded
View

docs/reference/msbuild-targets.md
:white_check_mark:Succeeded
View

docs/reference/nuget-config-file.md
:white_check_mark:Succeeded
View

docs/release-notes/Index.md
:white_check_mark:Succeeded
View

docs/release-notes/NuGet-6.3.md
:white_check_mark:Succeeded
View

This comment lists only the first 25 files in the pull request.

docs/create-packages/Package-authoring-best-practices.md

Line 5, Column 12: [Suggestion: ms-author-invalid - See documentation] Invalid value for 'ms.author', 'chgill' is not a valid Microsoft alias.

docs/TOC.md

Line 68, Column 5: [Suggestion: preserve-view-not-set - See documentation] You've pinned this link to a specific version of content with the view parameter. It's recommended not to pin a version unless that version is A) not the default view and B) the context is about that version specifically. To proceed with pinning a version add the &preserve-view=true to the URL.  Otherwise, remove the view parameter. URL: /azure/devops/artifacts/nuget/publish?view=azure-devops

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

We should only be merging into main with rare or small additions that can be committed directly to live.
The flow today is:

contributions -> main.

main -> live a couple times a month.

This PR is adding quite a few things it probably shouldn't. Perhaps a fresh PR would be better in this case and just close this one out.

I think this PR is effectively adding 2 changes only.
The issues is that live contains a squashed commit which is what's really causing the problem, so git can't detect the changes correctly.

We should only be merging into main. Sometimes with rare or small additions that can be committed directly to live.
The flow today is:

contributions -> main.
main -> live a couple times a month.

This PR is adding quite a few things it probably shouldn't.

Could you clarify what are those few things? It's just my changes on top of existing changes. I understood correctly previous PR was squash merged so we lost history, look like we shouldn't squash merge on this repo.

I may have squashed with the GitHub UI then. let's just overwrite live and start a fresh? i.e. option 1.

So just to confirm, option 1 is:

We merge this PR as is.

?
Do you want to merge this to live or should we wait?

@nkolev92 Yeah. I don't see what we would be waiting for at the moment. I don't think this would cause any issues.

@JonDouglas  @nkolev92
Could someone merge it for me? It says "You're not authorized to merge this pull request".


Issues extracting a frozen graph from the trained checkpoints. ( input and output nodes unclear )

Hi All,
I used the training and evaluation codes in the repo. Now i want to use the trained checkpoint data ( weights, meta, index ) files to freeze the graph and use it elsewhere.
I perform the following :
path_to_ckpt_data : is the directory with the checkpoint files ( in the repo /tmp/bichen/*model/train
sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True))
saver = tf.train.import_meta_graph(path_to_ckpt_meta)
saver.restore(sess, path_to_ckpt_data)
tf.train.write_graph(sess.graph.as_graph_def(), rootdir, "model_ckpt_355000_graph.pb")
This code above writes the graph_def file.
Then I use the freeze_graph.py in the tensorflow tools to find the freezegraph to then perform benchmarking and test the trained model performance.
However, the system is constantly giving me no input found error.
My question is, in the training setup as per the repository, what are the input nodes and the output nodes to perform model freeze as per tensorflow methodology ?
Any help is much appreciated :-) @BichenWuUCB

Thanks for your question. I used freeze_graph some time ago and here are some suggestions:
The inputs to the model are defined here.
In order to use freeze_graph, you may need to strip off some place holder definitions here and some input nodes that are only used in training. E.g., labels, etc.
The output node that you need for inference includes bbox, prob, cls_id.
When using freeze_graph, you may need to use the variable name (an attribute of a TF tensor) to denote input and output variables.
Hope it helps,
Bichen

Thanks for the detailed message.. I will get working on these..
Best
Aman

@BichenWuUCB I have been on it all day and used optimize_for_inference.py from tensorflow.
However, I am getting a strange behaviour , when I do freeze_graph with the graph_def and checkpoint file,  The output model has no input node.  .. Thus rendering the model unusable.
Is there a specific transformation that I am missing in my call to freeze_graph .. did you do some specific transformation ?
Any code example on how you converted the model for the freeze_graph would be greatly helpful.
Thanks for all your help
Best
Aman

Can you give exact error message? Since I'm not sure what it means by the model has no input node.

frozen_graph_layers_V2.txt
the file frozen_layers_V2.txt has the print of all the nodes in the frozen model from freeze_graph.py
it shows that the frozen model does not have an image_input node
after that I run the optimize_for_inference.
COMMAND bazel-bin/tensorflow/python/tools/optimize_for_inference --input=/tmp/logs/squeezeDet_NewDataset_test01_March02/train/frozen_sqdt_ckpt_355000.pb --output=/tmp/logs/squeezeDet_NewDataset_test01_March02/train/frozen_sqdt_ckpt_355000_optimized.pb --frozen_graph=True --input_names=image_input --output_names=bbox/trimming/bbox,probability/score,probability/class_idx
OUTPUT ->
Traceback (most recent call last):
File "/home/ubuntu/target_TFInstall/tensorflow/bazel-bin/tensorflow/python/tools/optimize_for_inference.runfiles/org_tensorflow/tensorflow/python/tools/optimize_for_inference.py", line 146, in
app.run(main=main, argv=[sys.argv[0]] + unparsed)
File "/home/ubuntu/target_TFInstall/tensorflow/bazel-bin/tensorflow/python/tools/optimize_for_inference.runfiles/org_tensorflow/tensorflow/python/platform/app.py", line 126, in run
_sys.exit(main(argv))
File "/home/ubuntu/target_TFInstall/tensorflow/bazel-bin/tensorflow/python/tools/optimize_for_inference.runfiles/org_tensorflow/tensorflow/python/tools/optimize_for_inference.py", line 90, in main
FLAGS.output_names.split(","), FLAGS.placeholder_type_enum)
File "/home/ubuntu/target_TFInstall/tensorflow/bazel-bin/tensorflow/python/tools/optimize_for_inference.runfiles/org_tensorflow/tensorflow/python/tools/optimize_for_inference_lib.py", line 109, in optimize_for_inference
placeholder_type_enum)
File "/home/ubuntu/target_TFInstall/tensorflow/bazel-bin/tensorflow/python/tools/optimize_for_inference.runfiles/org_tensorflow/tensorflow/python/tools/strip_unused_lib.py", line 83, in strip_unused
raise KeyError("The following input nodes were not found: %s\n" % not_found)
KeyError: "The following input nodes were not found: set(['image_input'])\n"
So the issue suggests that the frozen model generated does not have image_input nodes .. from your previous response it hints towards a possible issue with the placeholder nodes being placed in the fifo_que and need to be removed.
How were you able to generate the frozen model for inference.
Thank you for your help
Aman

I think it's probably because the input node (TF variable) is not named "image_input" in the TF computation graph. It can be a bit confusing that the TF variable name is not the same as python variable name. So, you need to find the right  TF variable name for the input tensor.

@BichenWuUCB  thanks for your response ..
was there a specific transformation that you had to run .. I am using the exact training code as per your repo.
Any code example snippet that you can share ?
Thanks
Aman.

Hi amanmeetgarg,
Did you eventually manage to get it to work?
Thanks

@BourbonCreams No solution, tried my level best .. implemented my own.

@amanmeetgarg,
have you your own implementation?

@pribadihcr I implemented my own implemented own using the trained model from the Repo code.
All the best.


Update shields in README.rst

Update README to take advantage of SVG shields that are now available as they scale to any size and this corrects the inconsistent appearance of the Coveralls shield.

Coverage remained the same at 94.51% when pulling f6791bca09d28f7623eb15a03b07577bcf12858b on tofu-rocketry:new_readme_shields into af2f62b43e89f6c80faf34fbc23892d2b91255c6 on gweis:master.

Thanks


css string support

Hi @mattdesl!
I’ve noticed that sometimes it is useful to pass css string directly instead of css object:
css(el, `
font-size: 12px;
font-family: ${fontFamily};
...
`);

Because it alows for avoiding css-in-js notation, which is copy-paste compatible and in other ways handy.
Is there any sense to add css.set(element, string) clause?

Cool idea! I'll accept a patch. Probably won't merge until a couple weeks as I'm on vacation. 😁🍾

@mattdesl here you go #12


Disable TOTP authenticator not functioning properly

Describe the issue:
When we disable the TOTP for Identity Server using following toml configuration, it  is still working.

[authentication.authenticator.totp]
enable=false

Expected behavior:

The authentication steps for TOTP should not be generated, when it is disabled through toml configurations.
Environment information (Please complete the following information; remove  any unnecessary fields) :

Product Version: [IS 5.12.0 beta2]
OS: [e.g.Mac]

Suggested labels:

The described behavior is not specific to TOTP. When any of the basic authenticators is disabled after the app is created the same scenario can be expected.
The expected behavior described in the issue is not practically achievable. We would have to remove the authenticator in DB from all the apps. Even if we were to achieve this, in a real life scenario if the disabled authenticator is the only authenticator used, when disabled it has no authenticators. Therefore, when an app is created and the TOTP or any authenticator is disabled through deployment.toml configuration the added apps should not be affected.
Since what this configuration should exactly do is a gray area, disabling authenticators using deployment.toml configuration will be removed from the docs as well.


[Bug] Unable to close change requests

Issue Description
When attempting to close a change request, the screen initially went blank and upon refresh, the change request was not closed. As reported in https://github.com/terminusdb/terminusdb/issues/2116
With the fix in https://github.com/terminusdb/terminusdb-dashboard/issues/312, this instead brings up an error modal saying "Schema check failure undefined"
Issue explanation
The constant for closing a change request is supposed to be Close but is stored as Closed as per the change request api: https://github.com/terminusdb/terminusdb-change-request-api/blob/main/src/change_request_schema.json
This causes generally all handling to not work properly

@GavinMendelGleason another small one


Chrome disable the extention

I'm getting the following error,

e to enable the key bindings of extension and c to download are not working .. any ideas !!

enable developer mode

Hi, dev mode is enabled on my side but chrome still forces the extension disabled.


[POC] status badge in readme.md files (automatically)

Create a single source of truth for the status of a component and show it in component packages.
### Tasks
- [ ] show in read me files
- [ ] show in 11ty
- [ ] show in storybook

So I look into this and found the following:
In order to have a dynamic badge in the README, you need a web service that returns an image based on a query parameter. There are some available services for this, but those do not allow for the kind of badge we want. We would have to create our own service to do this. That is not trivial. So for now i think it's easiest to just update the status in multiple places.


Publish Symbols to Symbolsource

As explained in #8, we are getting an error when trying to publish symbols to Symbolsource.
When a solution will be found, symbols for v2.0 will have to be retroactively published.

It seems that symbols are now sent to SymbolSource.
What remains is to test whether the are correctly accessible within Visual Studio.

If correctly configured in Visual Studio (see here) I am able to consume and debug (set breakpoints, step though source code) with the piwik.tracker.2.16.0 symbol nuget package . => Working!


Support for Antrea in CNI mode on AKS

Describe what you are trying to solve
We would like to use Antrea as a CNI on AKS
Describe the solution you have in mind
Currently per the Antrea docs, the only supported method of Antrea on AKS is through networkpolicy only mode.  We would like to see Antrea being available to run in CNI mode
Describe how your solution impacts user flows
N/A
Describe the main design/architecture of your solution
N/A
Alternative solutions that you considered
Azure CNI - We like the feature set which Antrea provides and already use the product on other k8s distros
Test plan
N/A
Additional context
N/A

We had a conversation on Slack about this at the time this issue was opened, but I wanted to comment here as well so all the information is available:
We have this support for EKS (https://github.com/antrea-io/antrea/blob/main/docs/eks-installation.md#deploying-antrea-in-encap-mode) and I expect that something similar would work for AKS, with the same caveats. This is something that we need to validate manually however, and we haven't gotten around to it yet.

Hey there, just wondering if there has been any progress for the testing on AKS 🙂

@robbo10 I'm giving it a try now; will update here once I get some data

I will write some documentation, but it actually works beautifully :)
AKS is running the Konnectivity service (https://kubernetes.io/docs/tasks/extend-kubernetes/setup-konnectivity/), so the caveats that you have when using Antrea in encap mode in EKS do not apply with AKS.
AKS also lets you create a cluster without any network plugin installed, which is a plus as you don't need to delete anything, you just need to install Antrea.

Thank you @antoninbas


Making inclusion-duration of finished jobs configurable

PR against 3.1+ branch

Would this be OK to be merged & tagged into the current 3.x branch?


dirgy, fingerhold

This pull request was generated by the 'mq' tool
[test]
flake rate: 0.4
logical conflict every: 100
sleep for: 300s
[pullrequest]
requests per hour: 30
deps=[d,f]

/trunk merge


Setting version in Info.plist in unit testing targets doesn't work since 2.0.0

Troubleshooting

[x] I've searched discuss.bitrise.io for possible solutions.
Which version of the step is effected? 2.0.0
Is the issue reproducible with the latest version? YES
Does the issue happen sporadically, or every time? EVERY TIME
Is the issue reproducible locally by following our local debug guide? NOT APPLICABLE

Useful information

FAQ
devcenter.bitrise.io

Issue description

With the new 2.0.0 version released yesterday, setting the build number in Info.plist doesn't seem to work anymore on unit test targets (CI/CD in pull requests to make sure tests pass).
The simulator refuses to run the test app because The application's Info.plist does not contain a valid CFBundleVersion..
Here are the step logs:
Input:
- project_path: REDACTED/REDACTED.xcworkspace
- scheme: REDACTED - Dev
- target: <unset>
- configuration: <unset>
- build_version: 12110
- build_version_offset: 0
- build_short_version_string: <unset>
[15:09:09] Locating built project for xcode project: REDACTED/REDACTED.xcworkspace, scheme: REDACTED - Dev
Read REDACTED - AppStore scheme in 0s.
Read REDACTED - Dev scheme in 0s.
Read REDACTED - Functional Test scheme in 0s.
Read REDACTED - Release scheme in 0s.
Read REDACTED2 - AppStore scheme in 0s.
Read REDACTED2 - Dev scheme in 0s.
Read REDACTED2 - Release scheme in 0s.
[15:09:09] Located built project for scheme: REDACTED - Dev
The version numbers are stored in the plist file.
Version numbers successfully updated.

It says "version numbers successfully updated" but the plist doesn't seem to be updated.
The plist in the repo contains the following data:
	<key>CFBundleVersion</key>
	<string>$(CURRENT_PROJECT_VERSION)</string>

The previous step version works properly. Here are the logs from the 1.x step:
 (i) Provided Info.plist path: /Users/vagrant/git/REDACTED/REDACTED/Info.plist
 (i) Build number offset: 0
 (i) Build number: 12111
# ---- Current Bundle Version:
/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${CONFIG_project_info_plist_path}"
$(CURRENT_PROJECT_VERSION)
# ---- Set Bundle Version:
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion ${CONFIG_new_bundle_version}" "${CONFIG_project_info_plist_path}"
 if [ ! -z "${CONFIG_new_build_short_version_string}" ] ; then
   # ---- Current Bundle Short Version String:
   /usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "${CONFIG_project_info_plist_path}"
  # ---- Set Bundle Short Version String:
  /usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString ${CONFIG_new_build_short_version_string}" "${CONFIG_project_info_plist_path}"
fi
# ==> Bundle Version and Short Version changed

I rolled back the step to the latest 1.x version as a temporary workaround. It immediately worked and our builds are back to normal.
Regular app builds (not testing runs) work fine.
Bitrise info

Bitrise Support enabled: NO (I can enable it and share the build link privately if needed)

Same here

I have also one issue with new 2.x.x version, with this version I am unable to upload the ipa to app store connect through bitrise.
2024-02-10 08:28:29.410 altool[33709:1[REDACTED]867] -[__NSCFNumber length]: unrecognized selector sent to instance 0x87bfd06d130bb5ab
2024-02-10 08:28:29.411 *** Error: ERROR: [ContentDelivery.Uploader] createRequestBuildCreateJsonWithResponse: caught an exception: -[__NSCFNumber length]: unrecognized selector sent to instance 0x87bfd06d130bb5ab
2024-02-10 08:28:29.411 *** Error: Exception caught. -[__NSCFNumber length]: unrecognized selector sent to instance 0x87bfd06d130bb5ab (-1010)
{
NSLocalizedDescription = "Exception caught.";
NSLocalizedFailureReason = "-[__NSCFNumber length]: unrecognized selector sent to instance 0x87bfd06d130bb5ab";
}
Uploading IPA failed: exit status 1
this issue occured while deploying can anyone help me with this error?

Thanks for reporting this. I have released a new version fixing this:
https://github.com/bitrise-steplib/steps-set-xcode-build-number/releases/tag/2.0.1


Update homepage factoids

Before:

After:

Changes

Changed the stats on the homepage.

Review

@schaferjh
@ChristieCatan

👍

:shipit:


Fix typo in chapter 5 notebook (#9)

Addresses #9.
I changed the singular occurrence sir to system. If a different solution is desired, let me know.

Thanks!


Support for v1 SC events.

Purpose
Adding support for v1 smart contract events.
This PR aims to partially solve https://github.com/Concordium/concordium-java-sdk/issues/17
Changes
Added support for two new contract execution events:

Interrupted
Resumed

Further the Updated and Initialization events are further expanded with a new contractVersion field describing whether the smart contract is a v0 or v1 contract.
Checklist

[ ] My code follows the style of this project.
[ ] The code compiles without warnings.
[ ] I have performed a self-review of the changes.
[ ] I have documented my code, in particular the intent of the
hard-to-understand areas.
[ ] (If necessary) I have updated the CHANGELOG.

Solved via: https://github.com/Concordium/concordium-java-sdk/pull/29


Stable Diffusion 2.1 Version

Thanks for your brilliant work.
Do you consider releasing the model of SD 2.1 version? I

@zcai0612 since the users of sd 2.1 is not many, so we maybe not train that. If you need, you can train it with the training script.


Add Home page with all planned components

Update the Gallery Fabric application home page to have buttons for all planned components - similar to the current home page of Gallery - but have the buttons for components that are not currently implemented be greyed out/disabled.

Add a tasklist on this issue of the items that are missing?

I believe this issue was created before there was any home page at all - since there is a homepage that exists on the new Gallery-Fabric app, closing this as completed for now. If there are any further components that need to be added to the home page, we can create a separate issue or task on the parent tracking issue accordingly.


bugfix: ignore some unnecessary requests to apiserver.

What type of PR is this?

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #4361

needs #4344  merged

/retest

/retesst

/retest

/retest


fix(user): add missing discordId attribute

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

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Request to have a set on defaultMessageHandler

Request to have a set on defaultMessageHandler
when a name of handler is not exists in the handlers dictionary, we can simply call the default handler instead of through fatal error

The point to throw fatalError is to help you to debug that defaultHandler is missed.
I think there is no need to force set a defalutMessageHandler because not everyone will use that. That's why is optional.
What do you think?

You should notice about version changes when lower version app that with only e.g. 2 handlers.
However, you add one more handler in a new version, there are 3 handlers.
It is good that we need to add more handlers to handle the callback.
When this page is loaded in older version app, it will cause the fatal error, i.e. app crashes.


Failed to set local answer sdp - error from yesterday

States:
Signaling:  stable
Gathering:  complete
Connection: new
Local:      host:2 relay:6
Remote:     host:4 srflx:8 relay:12
Stats:
Call time:  01:20
Setup time: 0 ms
Audio Tx:   , - bps, - pps
Video Tx:   VP8, 0p0, - bps, - pps
setLocalDescription: Failed to set local answer sdp: Session error code: ERROR_CONTENT. Session error description: Failed to add send stream ssrc:<PHONE_NUMBER>.
Version:
gitHash:    65a51d75b7eb4afe41e4006e8d317a69fecf6b41
branch:     master
time:       Fri May 22 09:40:39 2015 -0700
Initiator: Chrome Version 43.0.2357.81
Guest: Chromium Version 37.0.2062.120 Built on Debian 7.6, running on Debian 7.8
I tested app successfully from one week, but from yesterday i see this error.

Connecting from the same browser process works - initiator and guest in different broswer tabs.
Also works when:
Initiator is: Iceweasel 31.7.0
Guest is: Chrome  43.0.2357.81

Most likely Chrome version 37 had something to do with it, a good rule of
thumb: always try the latest stable Chrome release when trying these things
out.
On Tue, Jun 9, 2015 at 8:52 AM aktywnitu<EMAIL_ADDRESS>wrote:

Connecting from the same browser process works - initiator and guest in
different broswer tabs.
Also works when:
Initiator is: Iceweasel 31.7.0
Guest is: Chrome 43.0.2357.81
—
Reply to this email directly or view it on GitHub
https://github.com/webrtc/apprtc/issues/166#issuecomment-110252550.

Yes, I can see the same error in other broswers combinations.
If I will see it in edge versions I will notice.

Closing as obsolete.


Webpack render_bundle adds extra hash to file name on production

Using webpack version 1.13.2 to load my Javascript file. It creates the correct file but when I check the source code of my index.html it looks for a different file name. For example, webpack creates main.js successfully in the right folder and I can see it when I go to that url, but then for some reason it looks for main.3kea0sh39.js, which doesn't exist. It seems like a bug in render_bundle but I'm not sure. Here's my base and production configurations:
index.html
   {% render_bundle 'main' 'js' %}
becomes
<script type="text/javascript" src="/static/dist/main.3kea0sh39.js" ></script>
base:
var path = require("path")
var webpack = require("webpack")
var BundleTracker = require('webpack-bundle-tracker')

var APP_DIR = path.resolve(__dirname, 'project/src/app');
var config = {
	entry: path.resolve(__dirname, 'project/src/app') + '/index.jsx',
	output: {
		path: path.resolve('project/src/bundles/'),
		filename: "[name].js"
	},
	plugins: [
	],
	module: {
		loaders: [
			{
				test: /\.css$/,
				loaders: ["style", "css", "sass"]
			}
		]
	},
	resolve: {
		modulesDirectories: ['node_modules'],
		extensions: ['', '.js', '.jsx', '.css', '.scss']
	}
}
module.exports = config;

prod:
var webpack = require('webpack')
var BundleTracker = require('webpack-bundle-tracker')

var config = require('./webpack.base.config.js')

config.output.path = require('path').resolve('project/static/dist')

config.devtool = 'source-map'

config.plugins = config.plugins.concat([

	new BundleTracker({filename: 'project/webpack-stats-prod.json'}),
	new webpack.optimize.UglifyJsPlugin({
		minimize: true,
		compress: {
			warnings: false
		}
	}),
])

config.module.loaders.push(
	{ test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel' }
)

module.exports = config

render_bundle is not part of webpack.


It is not possible to use custom HTTP client with requests to Azure Devops

I'm using Azure Golang SDK and want to use custom HTTP client to access to Azure Devops.
As far as I understand it is not possible now. Please provide such ability.

@ligurio , can you provide more detail on what you are trying to do?

@tedchamb I'm trying to access to hosted Azure Devops instance with custom SSL certificates. I don't know how to explain in terms of security. Probably my company uses their own SSL PKI and internal sites uses certificates from it.

+1

I filed a pull request #49 long ago which could easily be expanded to have the ability to set configuration options on the HTTP client.

@tmeckel So I've looked at adding options to enable you to use a custom http client as well as retry based on your implementation.
My conern is that to allow a user to set custom settings or options with NewClientWithOptions function all the auto-generated clients (e.g. git, build, core etc.) must also support the ability to pass in options.
The actual call to NewClient is nested through a few different funcs. @tedchamb, could you share some light into how and where these clients are generated from so I can take a crack at allowing users to specify custom options in all clients?

PR #78

Any updates here? We also need custom HTTP clients

Any updates here? Seems quite some people are requesting this. There was a PR from @artbegolli making it possible to use custom http client (https://github.com/microsoft/azure-devops-go-api/pull/78) - it seems to be an extension of PR from @tmeckel (https://github.com/microsoft/azure-devops-go-api/pull/49) (thanks guys! 🙌). However, both of those PRs are closed and seem not to be included in the main release. Any news on it @tedchamb ? 🙏

Hello 👋 I've opened a pull request for a simple way to supply a custom HTTP Client in https://github.com/microsoft/azure-devops-go-api/pull/103. That PR should close this issue.

@c-brooks good luck ... I closed my PR #49 here because the repo is definitely abandoned and does not get the care it deserves from Microsoft. So many issues have piled up here that it's kinda ridiculous.


Getting a score?

My score is always undefined.
akin.recommendation.sampleRecommendationsForUser('2ucvsWKrMY9a3mrjh', 10).then((recs, err) => {
  console.log('recs', recs);
})

[
  { score: undefined, item: 'qdYpXGDpf2LZAs4Cb' },
  { score: undefined, item: '3Yw9ntZF45J7W2Aii' },
  { score: undefined, item: 'PSPmDCsK62i3q6uMC' },
  { score: undefined, item: '5WBPDdZQcybK2vn6B' },
  { score: undefined, item: 'c9rxB2hBWSzn2Anc7' },
  { score: undefined, item: 'THTuLJhACi6zxydwF' },
  { score: undefined, item: 'xGjmGQdShNt29y9N2' },
  { score: undefined, item: 'fRysRbCFq6EBYBRez' },
  { score: undefined, item: '9jH3ggZgk9JdJWQWt' },
  { score: undefined, item: 'p6ZZiZui6HDBqcZQw' }
]

I also have no itemWeights defined. Is that a problem or is that related? If I'm understanding correctly itemWeights is default 1 right?

Just to clarify I'm looking for the score as I think akin doesn't give me enough recommendations, even when I don't have enough data I want it to try to give me more recs, checking to see if lowering some score threshold is thew way to go.


IngressRouteTCP always routes to same pod (Load balancing doesn't work)

Do you want to request a feature or report a bug? bug

Bug

What did you do?
Created a simple IngressRouteTCP
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRouteTCP
metadata:
  name: ingressroutetcp-livestream
spec:
  entryPoints:
    - rtmp
  routes:
  - match: HostSNI(`*`)
    services:
    - name: livestream-service
      port: 1935
      TerminationDelay: 400

livestream-service is a regular ClusterIP - points to two Pods (scaled deployment). I do see two Pods in Traefik dashboard so it seems traefik detect that but it always routes to the same Pod. When trying to setup a regular loadbalancer with external IP (and not use traefik) everything works.
What did you expect to see?
Routing to random pod / loadbalance, as usual
What did you see instead?
Only routes to one pod regardless of how many pods exists in the service.
Output of traefik version: 2.1.4
What is your environment & configuration (arguments, toml, provider, platform, ...)? entrypoint is set, and IngressRouteTCP
# traefik.toml
[log]
  level = "DEBUG"
[serversTransport]
  insecureSkipVerify = true
[ping]
[api]
  dashboard = true
  insecure = true
[entryPoints]
  [entryPoints.traefik]
    address = ":9000"
  [entryPoints.web]
    address = ":8000"
  [entryPoints.websecure]
    address = ":8443"
  [entryPoints.rtmp]
    address = ":1935"
[providers.kubernetesCRD]
[providers.kubernetesIngress]
[[tls.certificates]]
  certFile = "/ssl-dev/tls.crt"
  keyFile = "/ssl-dev/tls.key"

Hello @guyromb,
thanks for your interest in the project.
To better triage the bug possible, could you please provide is with your API rawdata? That is accessible on api/rawdata instead of /dashboard.
Thanks!

{
"routers": {
"livestream-service-api-develop-dev-fit-ci-tls@kubernetes": {
"service": "develop-livestream-service-service-3000",
"rule": "Host(`livestream-service-api-develop.dev.fit.ci`) && PathPrefix(`/`)",
"tls": {},
"status": "enabled",
"using": [
"rtmp",
"traefik",
"web",
"websecure"
]
},
"livestream-service-api-develop-dev-fit-ci@kubernetes": {
"service": "develop-livestream-service-service-3000",
"rule": "Host(`livestream-service-api-develop.dev.fit.ci`) && PathPrefix(`/`)",
"status": "enabled",
"using": [
"rtmp",
"traefik",
"web",
"websecure"
]
},
"livestream-service-ms-develop-dev-fit-ci-tls@kubernetes": {
"service": "develop-livestream-service-service-8000",
"rule": "Host(`livestream-service-ms-develop.dev.fit.ci`) && PathPrefix(`/`)",
"tls": {},
"status": "enabled",
"using": [
"rtmp",
"traefik",
"web",
"websecure"
]
},
"livestream-service-ms-develop-dev-fit-ci@kubernetes": {
"service": "develop-livestream-service-service-8000",
"rule": "Host(`livestream-service-ms-develop.dev.fit.ci`) && PathPrefix(`/`)",
"status": "enabled",
"using": [
"rtmp",
"traefik",
"web",
"websecure"
]
},
"ping@internal": {
"entryPoints": [
"traefik"
],
"service": "ping@internal",
"rule": "PathPrefix(`/ping`)",
"priority":<PHONE_NUMBER>,
"status": "enabled",
"using": [
"traefik"
]
},
"traefik-traefik-dashboard-960a963b07256eae042e@kubernetescrd": {
"entryPoints": [
"https"
],
"middlewares": [
"traefik-traefik-dashboard-auth"
],
"service": "traefik-traefik-dashboard-960a963b07256eae042e",
"rule": "Host(`traefik2.example.com`)",
"tls": {},
"error": [
"entryPoint \"https\" doesn't exist",
"no valid entryPoint for this router"
],
"status": "disabled"
},
"traefik-v2-traefik-dashboard-d012b7f875133eeab4e5@kubernetescrd": {
"entryPoints": [
"traefik"
],
"service": "api@internal",
"rule": "PathPrefix(`/dashboard`) || PathPrefix(`/api`)",
"status": "enabled",
"using": [
"traefik"
]
},
"traefik-v2-traefik-v2-dashboard-d012b7f875133eeab4e5@kubernetescrd": {
"entryPoints": [
"traefik"
],
"service": "api@internal",
"rule": "PathPrefix(`/dashboard`) || PathPrefix(`/api`)",
"status": "enabled",
"using": [
"traefik"
]
}
},
"middlewares": {
"dashboard_redirect@internal": {
"redirectRegex": {
"regex": "^(http:\\/\\/[^:\\/]+(:\\d+)?)\\/$",
"replacement": "${1}/dashboard/",
"permanent": true
},
"status": "enabled",
"usedBy": [
"dashboard@internal"
]
},
"dashboard_stripprefix@internal": {
"stripPrefix": {
"prefixes": [
"/dashboard/",
"/dashboard"
]
},
"status": "enabled",
"usedBy": [
"dashboard@internal"
]
}
},
"services": {
"api@internal": {
"status": "enabled",
"usedBy": [
"api@internal",
"traefik-v2-traefik-dashboard-d012b7f875133eeab4e5@kubernetescrd",
"traefik-v2-traefik-v2-dashboard-d012b7f875133eeab4e5@kubernetescrd"
]
},
"cypress-website-nginx-service-443@kubernetes": {
"loadBalancer": {
"servers": [
{
"url": "https://<IP_ADDRESS>:443"
}
],
"passHostHeader": true
},
"status": "enabled",
"usedBy": [
"web-cypress-app-fit-ci@kubernetes"
],
"serverStatus": {
"https://<IP_ADDRESS>:443": "UP"
}
},
"dashboard@internal": {
"status": "enabled",
"usedBy": [
"dashboard@internal"
]
},
"develop-livestream-service-service-3000@kubernetes": {
"loadBalancer": {
"servers": [
{
"url": "http://<IP_ADDRESS>:3000"
},
{
"url": "http://<IP_ADDRESS>:3000"
}
],
"passHostHeader": true
},
"status": "enabled",
"usedBy": [
"livestream-service-api-develop-dev-fit-ci-tls@kubernetes",
"livestream-service-api-develop-dev-fit-ci@kubernetes"
],
"serverStatus": {
"http://<IP_ADDRESS>:3000": "UP",
"http://<IP_ADDRESS>:3000": "UP"
}
},
"develop-livestream-service-service-8000@kubernetes": {
"loadBalancer": {
"servers": [
{
"url": "http://<IP_ADDRESS>:8000"
},
{
"url": "http://<IP_ADDRESS>:8000"
}
],
"passHostHeader": true
},
"status": "enabled",
"usedBy": [
"livestream-service-ms-develop-dev-fit-ci-tls@kubernetes",
"livestream-service-ms-develop-dev-fit-ci@kubernetes"
],
"serverStatus": {
"http://<IP_ADDRESS>:8000": "UP",
"http://<IP_ADDRESS>:8000": "UP"
}
},
"traefik-traefik-dashboard-960a963b07256eae042e@kubernetescrd": {
"loadBalancer": {
"servers": [
{
"url": "http://<IP_ADDRESS>:8080"
}
],
"passHostHeader": true
},
"status": "enabled",
"usedBy": [
"traefik-traefik-dashboard-960a963b07256eae042e@kubernetescrd"
]
}
},
"tcpRouters": {
"default-ingressroutetcp-livestream-673acf455cb2dab0b43a@kubernetescrd": {
"entryPoints": [
"rtmp"
],
"service": "default-ingressroutetcp-livestream-673acf455cb2dab0b43a",
"rule": "HostSNI(`*`)",
"error": [
"the service \"default-ingressroutetcp-livestream-673acf455cb2dab0b43a@kubernetescrd\" does not exist"
],
"status": "disabled",
"using": [
"rtmp"
]
},
"develop-livestream-service-ingressroutetcp-livestream-673acf455cb2dab0b43a@kubernetescrd": {
"entryPoints": [
"rtmp"
],
"service": "develop-livestream-service-ingressroutetcp-livestream-673acf455cb2dab0b43a",
"rule": "HostSNI(`*`)",
"status": "enabled",
"using": [
"rtmp"
]
},
"feature-livestream-prep-livestream-service-ingressroutetcp-livestream-673acf455cb2dab0b43a@kubernetescrd": {
"entryPoints": [
"rtmp"
],
"service": "feature-livestream-prep-livestream-service-ingressroutetcp-livestream-673acf455cb2dab0b43a",
"rule": "HostSNI(`*`)",
"error": [
"the service \"feature-livestream-prep-livestream-service-ingressroutetcp-livestream-673acf455cb2dab0b43a@kubernetescrd\" does not exist"
],
"status": "disabled",
"using": [
"rtmp"
]
}
},
"tcpServices": {
"develop-livestream-service-ingressroutetcp-livestream-673acf455cb2dab0b43a@kubernetescrd": {
"loadBalancer": {
"terminationDelay": 100,
"servers": [
{
"address": "<IP_ADDRESS>:1935"
},
{
"address": "<IP_ADDRESS>:1935"
}
]
},
"status": "enabled",
"usedBy": [
"develop-livestream-service-ingressroutetcp-livestream-673acf455cb2dab0b43a@kubernetescrd"
]
}
}
}

Is there anything that might be useful to check why is this happening? Anyone able to re-produce?
Thanks

Hey @guyromb,
I took some time to try and reproduce your issue today, however, I can't.
I deployed the containous/whoamitcp service like that:
---
kind: Deployment
apiVersion: apps/v1
metadata:
  name: whoami-tcp
  namespace: whoami
  labels:
    app: whoami-tcp
spec:
  replicas: 2
  selector:
    matchLabels:
      app: whoami-tcp
  template:
    metadata:
      labels:
        app: whoami-tcp
    spec:
      containers:
        - name: whoami-tcp
          image: containous/whoamitcp
          ports:
            - name: tcp
              containerPort: 8080
              protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
  name: whoami-tcp
  namespace: whoami
  labels:
    app: whoami-tcp
spec:
  ports:
    - protocol: TCP
      name: whoami
      port: 8080
  selector:
    app: whoami-tcp

Afterwards, I created the following IngressRouteTCP Object
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRouteTCP
metadata:
  name: whoami-tcp
  namespace: whoami
spec:
  entryPoints:
    - tcptest
  routes:
    - match: HostSNI(`*`)
      kind: Rule
      services:
      - name: whoami-tcp
        port: 8080

Connecting to whoami through Traefik on the dedicated Entrypoint for that service, showed that loadbalancing is working:
First req:
nc -n <IP_ADDRESS> 4711
WHO
Hostname: whoami-tcp-7b489d4fc8-zkfxk
IP: <IP_ADDRESS>
IP: <IP_ADDRESS>

Seconc req:
nc -n <IP_ADDRESS> 4711
WHO
Hostname: whoami-tcp-7b489d4fc8-nntzr
IP: <IP_ADDRESS>
IP: <IP_ADDRESS>

As you can see, the Hostname changed as it was answered by the different pods.
Therefore, I'll close that issue.

Closed by #6979.


LIBCLOUD-590 - Reduce redundant API calls of CloudStack compute driver's...

Reopen https://github.com/apache/libcloud/pull/332.

Can you squash your commits ?

I squashed my commits.


Node.js standalone sample syntax updates

Refactors generated Node.js samples to render using Node.js sample style guidelines (internal 📚)
See also – review of this syntax on these Node.js PRs –

https://github.com/googleapis/nodejs-speech/pull/453
https://github.com/googleapis/nodejs-language/pull/314

Most calling forms have been updated, but I am still verifying that some (which are currently never used) still work post-refactoring: LRO w/ promises + LRO w/ event emitter.
@googleapis/samplegen

@hzyi-google @googleapis/samplegen – Node.js team LGTM'd code samples based on these .snips!
Let me update it and get the tests passing and then this is ready for review!

/cc @bcoe

And /cc @alexander-fenster @xiaozhenliu-gg5 @fhinkel

Hey again @alexander-fenster :)
@hzyi-google pointed me to you for reviews of .snip changes for standalone samples.
The Node.js review PR is generated from this PR's branch.


fix YQL bugs:the chat '&' doesn't encoded

When the remote url have more than one param,the '&' will be considered as the param of the yql's param unless you encode it

#295 也就是这个问题


fix(delete-modal): Changed the color of the help text with grayScale.dark1 in DeleteModal

SUMMARY
the contrast on the help text doesn't seem to meet accessibility reqs
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
Before:

After:

TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[x] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

/testenv up

Thanks for this... I just made it one shade lighter which passes accessibility standards, but still has some contrast with the text above it.


[Spec] Add #VOCALS and #INSTRUMENTAL

Suggestion
Melody Mania uses two new fields
#VOCALSAUDIO
#INSTRUMENTALAUDIO

to specify separate audio files for vocals and instrumental.
These files are created from audio separation AI model, e.g., Spleeter
I think it makes sense to add these fields to the format.
Note that I suggest to use AUDIO instead of MP3 in the tag name.
This emphasizes that also other audio formats (e.g. ogg) are possible.
Use case
It is used in Melody Mania to change vocals volume when singing a song.
This way players can decide how much of the original vocals they want to hear.
Further, the vocals audio is used in the Melody Mania song editor to

show vocals audio wave form
analyze pitch

Extra info/examples/attachments
No response

from @bohning

why not use #VOCALS and #INSTRUMENTAL instead of the longer #VOCALAUDIO and #INSTRUMENTALAUDIO

Good question.
Vocals and instrumental do imply audio I think.
So there is no video, image, or other stuff that could be confused with these fields.
So yeah, #VOCALS and #INSTRUMENTAL would make sense
I only wanted to keep a reference to the #AUDIO field (although it is called #MP3). But now that I think about it, the AUDIO prefix is probably redundant.

I guess you mean suffix, not prefix, but yes, for me vocals and instrumental imply audio.

Hmmm what are we going to do with all the instrumental songs out there? (there's quite a lot on ultrastar-es)
Personally i'm fine with having the instrumental track within the same song-folder but i know some people who rather split things up if they only want the vocal one or the instrumental one...
I'm all for including them both as it'd make for a way better integration than center muting the vocalized song... (current behavior in performous, its not bad, but far from great either...)
As for popularity, most people would want to sing with vocals so they can match their singing to the original songtrack. Far less people are confident enough to do the instrumental versions as what i have experienced in the last decade
For this i'd make #MP3 and #VOCALS mandatory whilst #INSTRUMENTAL can be optional

#VOCALS makes no sense to me. It not says that it should contain the background sound.
If you have #INSTRUMENTAL + #VOCALS, someone could think that these gets mixed together.
Why not just say what it is? Like #AUDIO, #MUSIC or #AUDIOFILE.
For Karaoke #INSTRUMENTAL, #KARAOKE or #KARAOKEAUDIO.
We should anyway mark Karaoke as Karaoke. So, then it should be ok to also split the files/folders.
Currently it is marked in the txt file name, like "* [Karaoke].txt".
So the games should know if the song is Karaoke or not..

Now you got me confused. I would say that the full song is AUDIO, consisting of VOCALS (the singers voice(s)) and INSTRUMENTAL(S). So AUDIO would have the mixed signal of VOCALS and INSTRUMENTALS. In an ideal situation, the karaoke software could handle the mixture of the two on the fly (one player wants to sing real karaoke -> VOCALS: 0%, INSTRUMETAL: 100%, another player wants to sing pure sing-along -> VOCALS: 100%, INSTRUMENTAL: 100% and a third one wants is in between -> VOCALS: 50%, INSTRUMENTAL: 100%). Then the AUDIO would not be needed anymore, but 1. since this is not yet available in software and 2. the (automated) separation of the mixed signal is or may not be perfect, I think all three should be provided - the mixed AUDIO (or #MP3) as has always been the case, the VOCALS and the INSTRUMENTAL track. Or did I understand something wrong?

If we can support all 3, then it should be good.

I would say that the full song is AUDIO, consisting of VOCALS (the singers voice(s)) and INSTRUMENTAL(S). So AUDIO would have the mixed signal of VOCALS and INSTRUMENTALS.

Yes, this is exactly what I have in mind.

since this is not yet available in software and 2. the (automated) separation of the mixed signal is or may not be perfect, I think all three should be provided

I agree.

Cool we have a consens here too. 🎉 ✅
I've put #VOCALS and #INSTRUMENTAL to the Overview Version spreadsheet mentioned in #31 .

Lets already come up with the description of the specified tags

SUMMARY / FINAL RESULTS 🏁
So here are the final results for this issue.
We add these tags to version 1.1.0:
#AUDIO: Artist - Title of the song.mp3
#VOCALS: Artist - Title of the song [VOC].mp3
#INSTRUMENTALS: Artist - Title of the song [INSTR].mp3

The description in the spec will be:
#AUDIO
Definies the audio file that contains the whole music in one (consisting of VOCALS (the singers voice(s)) and INSTRUMENTAL(S). This is the new tag for the deprecated #MP3 tag.
#VOCALS
Defines the audio file that contains only the vocals of a singers voice. It's the acapella. This comes in handy when some games have the feature to change the volume of a singer while playing a song from 100%-0%. So that you can decide how loud the singer sings along to your own vocals. Needs to be complemented with #INSTRUMENTAL.
#INSTRUMENTAL
Defines the audio file that contains only the instruments of a song without the singers voice. This is for real karaoke.

Have #vocals been discussed in connection with several singers (duet)? You could have Vocal_Lead_Male, Vocal_Lead_Femal, Vocal_Background.

Good point. I guess the most consistent would be #VOCALS (for non-duets), and #VOCALSP1/#VOCALSP2 for duets (extensible to any number of singers #VOCALSPx).

@bohning yes that would be good.
But this we could also make for #INSTRUMENTALS. AI can separate nearly all instruments.
E.g. someone wants to use his own guitar.

Have #vocals been discussed in connection with several singers (duet)? You could have Vocal_Lead_Male, Vocal_Lead_Femal, Vocal_Background.

Let's discuss this in another issue. This could be something for v1.x.0 later.

someone wants to use his own guitar

I doubt that this is a valid use case.
But if we want to consider this, I suggest to allow multiple paramters, similar to #22 and #19 .
Example:

#INSTRUMENTAL: guitar=guitar.ogg&piano=piano.ogg&strings=cool-strings.mp3
#VOCALS: p1=first-vocals.ogg&p2=second-vocals.mp3

Note that I suggest to use URL-Query-Parameter syntax such that existing libs can be used to parse them.
The client (game) is then responsible to do something with this info.


clusteradm join --dry-run error and output missing manifests

Describe the bug
Before we actually join the managed cluster to the hub, we would like to preview the resources that will be created in the managed cluster.
clusteradm join --dry-run=true produces below error
Error: resource mapping not found for name: "klusterlet" namespace: "" from "local": no matches for kind "Klusterlet" in version "operator.open-cluster-management.io/v1" ensure CRDs are installed first
Also, with an additional --output-file flag, it outputs to the terminal instead of the file.
Without the --dry-run=true flag, it's successful without any errors.
While comparing the manifests with or without the --dry-run flag, with --dry-run flag one is missing
# Copyright Contributors to the Open Cluster Management project
apiVersion: operator.open-cluster-management.io/v1
kind: Klusterlet
metadata:
  name: klusterlet
spec:
  deployOption:
    mode: Singleton
  registrationImagePullSpec: quay.io/open-cluster-management/registration:v0.13.1
  workImagePullSpec: quay.io/open-cluster-management/work:v0.13.1
  imagePullSpec: quay.io/open-cluster-management/registration-operator:v0.13.1
  clusterName: m1
  namespace: open-cluster-management-agent
  externalServerURLs:

  - url: https://m1-control-plane:6443

  resourceRequirement:
    type: Default

    # Uncomment the following configuration lines to add hostAliases for hub api server,
    # if the server field in your hub cluster kubeconfig is a domain name instead of an ipv4 address.
    # For example, https://xxx.yyy.zzz.
    # This configuration is used for registration-agent and work-agent to communicate with hub api server.
    # hubApiServerHostAlias:
    # ip: "<IP_ADDRESS>"
    # hostname: "xxx.yyy.zzz"

---

To Reproduce
Steps to reproduce the behavior:

clusteradm join --hub-token $token --hub-apiserver $apiserver --cluster-name $managed_cluster_name --singleton --dry-run=true --output-file='manifests.yaml'
clusteradm join --hub-token $token --hub-apiserver $apiserver --cluster-name $managed_cluster_name --singleton --dry-run=true
clusteradm join --hub-token $token --hub-apiserver $apiserver --cluster-name $managed_cluster_name --singleton --output-file='manifests.yaml'

Expected behavior
With step 1, it outputs the full manifests (including Klusterlet) to the file without any error.
With step 2, it outputs the full manifests (including Klusterlet) to the terminal without any error.
With step 3, this one provides the expected behavior.
Environment ie: OCM version, clusteradm version, Kubernetes version and provider:
→ clusteradm version
client		version	:v0.8.1-0-g3aea9c5
server release	version	:v1.29.2
default bundle	version	:0.13.1
Additional context
Add any other context about the problem here.

I found the -dry-run option from the global option list and will close this issue.

when dry-run, the klusterlet CRD will not actually be created into the cluster, which results in the error no matches for kind "Klusterlet" in version "operator.open-cluster-management.io/v1" ensure CRDs are installed first when creteing the CR klusterlet.

@EricaJ6 after this fix https://github.com/open-cluster-management-io/clusteradm/pull/421, the behavior will be:
With step 1, it outputs the full manifests (including Klusterlet) to the file and terminal without any error, we can delete these lines to prevent them from outputting to the terminal, but I am not sure if it is necessary.
With step 2, it outputs the full manifests (including Klusterlet) to the terminal without any error.
With step 3, this one provides the expected behavior.

/close


Populated RunConfiguration Settings for RunAll.

Populated RunConfiguration Settings for RunAll.

@harshjain2,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


loadable.lib Webpack 5 dynamic import/chunk name bug

🐛 Bug Report
Using a dynamic import with loadable.lib and Webpack 5 leads to ChunkExtractor error in SSR. Can reproduce in this repo.
Relevant code in Application.js:
const Translations = loadable.lib((props) =>
  import(`./translations.${props.locale}.json`)
);

Chunk names in loadable-stats.json come out as:
{
  "assetsByChunkName": {
    "main": [
      "main.fad06d2e.bundle.js"
    ],
    "translations-translations-de-DE-json": [
      "translations-translations-de-DE-json.169270e6.bundle.js"
    ],
    "translations-translations-en-US-json": [
      "translations-translations-en-US-json.e77ca876.bundle.js"
    ],
    "translations-translations-fr-CA-json": [
      "translations-translations-fr-CA-json.d1acb43c.bundle.js"
    ]
  }
}

Error during SSR is:
UnhandledPromiseRejectionWarning: Invariant Violation: loadable: cannot find translations-en-US-json in stats
  at invariant (...)
  at ChunkExtractor.getChunkGroup (...)

Trying to get translations-en-US-json, but the chunk name is translations-translations-en-US-json. I think it's an issue generating the chunk name in the Babel plugin here but not quite sure how best to fix yet. Compiled code in the bundle comes out to:
chunkName(props) {
  return `translations-${props.locale}-json`.replace(/[^a-zA-Z0-9_!§$()=\-^°]+/g, "-");
},

But that should be translations-translations-${props.locale}-json in this case.
To Reproduce
Clone the demo repo here and follow instructions in README to run the code.
Expected behavior
Resolves the correct chunk name in SSR.
Link to repl or repo (highly encouraged)
https://github.com/wvanrensselaer/loadable-components-bug
Run npx envinfo --system --binaries --npmPackages @loadable/component,@loadable/server,@loadable/webpack-plugin,@loadable/babel-plugin --markdown --clipboard
Paste the results here:
## System:
 - OS: macOS 10.15.7
 - CPU: (8) x64 Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz
 - Memory: 110.46 MB / 16.00 GB
 - Shell: 5.7.1 - /bin/zsh
## Binaries:
 - Node: 14.16.1 - ~/.nvm/versions/node/v14.16.1/bin/node
 - Yarn: 1.22.5 - ~/.yarn/bin/yarn
 - npm: 6.14.12 - ~/.nvm/versions/node/v14.16.1/bin/npm
## npmPackages:
 - @loadable/babel-plugin: ^5.13.2 => 5.13.2
 - @loadable/component: ^5.14.1 => 5.14.1
 - @loadable/server: ^5.14.2 => 5.14.2
 - @loadable/webpack-plugin: ^5.14.2 => 5.14.2

Actually impacts regular loadable components too: https://github.com/wvanrensselaer/loadable-components-bug/compare/test-regular-loadable

That could be good. Might be tricky too though since Webpack does its best to hide the generated filenames, only accessible by calling __webpack_require__.u with the chunk ID. So still need the chunk ID first unless there's some plugin magic we can do 🤔 .

Both webpack and babel plugins know everything about everyone.
The problem is right now babel "thinks" that it controls webpack, while (by fact) it is not, and in order to fix it we have to "postprocess" result of babel transformation and correct chunks names.
There are at least two ways to do it::

postprocess bundle content in webpack-plugin. That can break caching.
correct mapping in ChunkExtractor.

Had some time to dig into this some more. I think we can patch the Babel plugin as a quick fix, need to rework chunkNameProperty slightly. Can't base webpackChunkName on the transformed template literal as it has replaced the directory separator and [request] refers to the whole file name. So when the template literal expression is only a partial file name, loadable breaks:
const Translations = loadable.lib((props) => import(`./translations.${props.locale}.json`));

Transforms to:
const Translations = loadable.lib({
  chunkName(props) {
    return `translations-${props.locale}-json`.replace(/[^a-zA-Z0-9_!§$()=\-^°]+/g, "-");
  },
  importAsync: props => import(
-   /* webpackChunkName: "translations-[request]" */
+   /* webpackChunkName: "[request]" */
    `./translations/messages.${props.locale}.json`
  )
});

I'll try to put a PR together this week. Can work around this for now by using the full file name in the template literal expression:
const Translations = loadable.lib((props) => import(`./${props.file}.json`));

<Translations file={`translations.${locale}`}>

Not sure this is the right way to move forward. We can or 100% control chunk names, or 100% not. Something in between is not an option, and will for example, not work for wp4, or some future wp5 version, as in this very internal-ish moment.

This would still be 100% control of chunk names, just fixing the bug with [request] and partial file names. Verified that it affects Webpack 4 too. But I can hold off and use the workaround above for now.

So the problem also actual for wp4 and the fix is valid for wp4 as well?
That removes all my concerns.


Plugin stopped working with images

I believe this used to work but after an update it just opens blank note files now.
I was using this to pull random cards in .jpg in a folder.
As a bonus request: Would it be possible to have a context menu in a folder, to do right-click -> pick random note, and just have a random note popup as a floating window?
Thank you for working on this

Hi, I'm sorry about that. I will look into it today and test the update
properly this time. Can probably get it out by tomorrow.
Karsten
On Sat, Sep 23, 2023, 23:05 Saif Addin @.***> wrote:

I believe this used to work but after an update it just opens blank note
files now.
I was using this to pull random cards in .jpg in a folder.
As a bonus request: Would it be possible to have a context menu in a
folder, to do right-click -> pick random note, and just have a random note
popup as a floating window?
Thank you for working on this
—
Reply to this email directly, view it on GitHub
https://github.com/karstenpedersen/obsidian-advanced-random-note/issues/7,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AM32JNU2GQPHEK5GEMVTMZDX35FLPANCNFSM6AAAAAA5EN7PJQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Hi, sorry for the late fix.
I should have fixed the problem now, so you should be able to open images and other file types again.
Your ideas are also great, so I will look into adding it :)
Karsten


Add some overloads accepting ulong/Guid IDs

This adds some overloads for Guid/ulong IDs to the various Point APIs; the main goal being to make the discoverability via Intellisense better (that's why implicit conversions aren't sufficient here - though I've added some for nested scenarios). This goes a bit in the direction of overload explosion, but overall seems reasonable for what it provides - let me know what you think.

@russcam see the snapshot-related build failures - possibly a timing/race condition thing?
(I'm guessing this is a test-only issue, so shouldn't block us from merging/releasing)

@russcam see the snapshot-related build failures - possibly a timing/race condition thing?
(I'm guessing this is a test-only issue, so shouldn't block us from merging/releasing)

Yeah, it's a timing issue as far as I can see. I'll open a PR to increase the retries (number and intervals)


vertically expand component support?

Steps

add an element (like a segment, or card!)
attempt to vertically expand it

Expected Result
ability to vertically expand Elements to their container's height?  if feasible?
Actual Result
non-vertically expanding thingies
Version
0.61.x
Testcase
Fork: http://codepen.io/cdaringe/pen/oYozjd
discussion
i do realize that this may be a better fit for the semantic-css project, but i figured i'd take a first pass here to get an opinion?  if not an opinion, maybe a hot tip? :)

I'm not sure what you mean by expand it?  The codepen appears to render everything correctly.  Can you be more specific?

hi @levithomason, sorry for the lack of clarity.  yes, the codepen does render everything correctly (though the service appears to be partially down, ATM?), it's just I wanted the "BLAH BLAH" <Segment /> to expand to have the same height as it's neighbor, or similarly, the same height as the parent element.
i'm wondering what the best way is in order to make an Element do something similar to height: 100% to fill it's parent container, without writing my own CSS.
i do realize it's somewhat a chicken before the egg problem, where the container expands to accommodate its children's height, but similarly, I want "shorter children" to fill the parent's height if they would be shorter.  i've got a feeling this is a flexbox only thing--unsure if SUI has that baked in or not!

If, I correctly understand, you're looking for stretched grid.

Thanks for the clarification, @layershifter hit it on the money, see the docs linked there.

thanks @layershifter, but that's for filling width, not height

No sir, this fills the height.

i guess there's actually a little bit of a discrepancy in the docs page.  the top table says height, but the example says width

Indeed!  The description is certainly wrong.

ohhhh nm. i was mixing Grid & Grid.Row.  thx! i'll try this out

thanks again for your time guys.  let me ask one more tip on the matter:
<Grid.Row stretched>
    <Grid.Column>
        <Segment> {/* <== yes, i expand to fill the vertical space */}
          {/*
              but say here lands another component, e.g another Segment... can I grow vertically too?
              i could load in _more_ Grid DOM, but im looking for a shortcut!
              */}
        </Segment>
      </Grid.Column>
  </Grid.Row>

http://codepen.io/cdaringe/pen/oYozjd

The grid is implementing flex box CSS to accomplished the stretched feature.  You can apply flex to any element.  I would suggest perusing the grid CSS on Semantic-UI and reading some CSS flex tutorials on how to use flex.


Issue getting messages from twitch server

Hi.
I'm getting exactly the same issue described at Issue #35 with serverInfo fields being null for some reason.
The issue always happens when some message is sent in IRC chat, more specifically in PrivateMessage.cs file, in this line:
if (serverInfo.ChannelTypes.Any(c => Source.StartsWith(c.ToString())))
If I put the debug point to set the variable (isChannelMessage) to true, the message event activates like it should.
If I use the version downloaded via NuGet, everything works like a charm, but I need to create new events to error treatment but serverInfo gets null with some properties everytime.

Exact same issues on my end. Going to have to move my project to a different library.

So go somewhere else. Twitch is not a very standard IRC server, and is obviously going to cause problems. If you want anything out of this library, you're meant to do it yourself. The code is not that scary.

I used it for twich as well, and because how it works its always channelmessages so i did this
´´´C#
if (serverInfo != null && serverInfo.ChannelTypes != null)
{
if (serverInfo.ChannelTypes.Any(c => Source.StartsWith(c.ToString())))
IsChannelMessage = true;
else
Source = User.Nick;
}
else
{
IsChannelMessage = true;
Source = User.Nick;
}
´´´


Install pandoc through deb package

Fix #127
Get rid of cabal also. Now, pandoc installation should always be successful

Thanks @HubLot


Update getting-started.mdx to include marimo

Small docs change to mention that anywidget is supported in marimo :)

Awesome! Let's get that framework section landed next :)


Word level formatting with Right align

When using word level formatting, with aligning (horizontal align - left, right or center) option causes the text parts to break line,
even if I use breakLine as false in each of the text parts.
ex:
slide.addText(
  [
      { text:'word-level formatting', options:{ breakLine:false} },
      { text:'...in the same textbox', options:{} }
  ],
  { x:0.5, y:4.1, margin:0.1, align: left }
);

This will render as
word-level formatting
...in the same textbox

This a help-wanted.

I've been using the edit by @gdicristofaro and mostly seems OK. It does prevent \n triggering a line break within a string, although using \r in place works fine.


Add db to OpenGroup to resolve schema changes

Opening changesets as a group requires the context of an iModel db to resolve any schema changes that may have happened in those changesets.
Fixes a bug where OpenGroup failed when the changesets included schema changes.
itwinjs-core: https://github.com/iTwin/itwinjs-core/pull/7204

/azp run imodel-native

/azp run imodel-native


CI: Extend and update matrix

This PR updates the CI matrix to use latest known releases.
In addition: remove the now-unused sudo: false directive. Blog post about the directive's change to a no-op

@olleolleolle can you please rebase and change 2.6.2 to 2.6.3?
I couldn;t understand why jruby tests have failed. Any ideas @i0rek @PericlesTheo ?

Should we support Ruby versions earlier than 1.9.3?

Thanks you @olleolleolle
Can you merge it @PericlesTheo ? I have noticed that tests for 1.9.2 and 1.9.3 keep failing (in recent PRs).

@Medvezo and @olleolleolle thanks for your patience, the master build has been fixed so this PR should now be fine.
@Medvezo I see no reason to drop support for now since maintainability doesn't seem to be an issue. Unfortunately though to support older versions, the matrix had to be modified 😭
Details here https://github.com/typhoeus/typhoeus/pull/635/commits/a882e60b913af5f9413753d0aa6d287a3acadc74
I've just noticed as well the following message from Travis

This job ran on our Precise environment, which is in the process of being decommissioned. Please update to a newer Ubuntu version by specifying dist: xenial in your .travis.yml.

See if you can make the change with that as well 😄
Thanks 💪

@PericlesTheo Hi!
Thanks for the pings and for all the notes on Precise on Travis CI, that's useful knowledge.
I have updated the PR to be 1 commit, which has even newer Ruby versions, and it points out Xenial for that old Ruby.

unfortunately setting xenial didn't work 😞
revert that back to precise so your build can pass and I will look into it on as a separate matter

@PericlesTheo 🌱 OK, here we are.


Regression in sync on-device

After #371, sync works fine in simulator, but when launched on device, I get repeat conflicts. (Note: conflicts do not result in data loss, since the file system is treated as source of truth, but means the database record gets overwritten every startup.)
It looks like the issue is with the size property (bytes).
From the logs:
2022-11-08 09:34:24.995562-0500 Subconscious[665:27355] [action] syncSuccess([Subconscious.FileFingerprintChange.conflict(left: Subconscious.FileFingerprint(slug: sufficiently-advanced-technology-is-indistinguishable-from-nature, attributes: Subconscious.FileFingerprint.Attributes(modified:<PHONE_NUMBER>, size: 67)), right: Subconscious.FileFingerprint(slug: sufficiently-advanced-technology-is-indistinguishable-from-nature, attributes: Subconscious.FileFingerprint.Attributes(modified:<PHONE_NUMBER>, size: 253))), Subconscious.FileFingerprintChange.conflict(left: Subconscious.FileFingerprint(slug: limits-to-growth, attributes: Subconscious.FileFingerprint.Attributes(modified:<PHONE_NUMBER>, size: 149)), right: Subconscious.FileFingerprint(slug: limits-to-growth, attributes: Subconscious.FileFingerprint.Attributes(modified:<PHONE_NUMBER>, size: 173))), Subconscious.FileFingerprintChange.conflict(left: Subconscious.FileFingerprint(slug: diamond-age, attributes: Subconscious.FileFingerprint.Attributes(modified:<PHONE_NUMBER>, size: 21)), right: Subconscious.FileFingerprint(slug: diamond-age, attributes: Subconscious.FileFingerprint.Attributes(modified:<PHONE_NUMBER>, size: 153))), Subconscious.FileFingerprintChange.conflict(left: Subconscious.FileFingerprint(slug: programs-and-seeds, attributes: Subconscious.FileFingerprint.Attributes(modified:<PHONE_NUMBER>, size: 336)), right: Subconscious.FileFingerprint(slug: programs-and-seeds, attributes: Subconscious.FileFingerprint.Attributes(modified:<PHONE_NUMBER>, size: 360))), Subconscious.FileFingerprintChange.conflict(left: Subconscious.FileFingerprint(slug: permissioned-protocols-prevent-layering, attributes: Subconscious.FileFingerprint.Attributes(modified:<PHONE_NUMBER>, size: 859)), right: Subconscious.FileFingerprint(slug: permissioned-protocols-prevent-layering, attributes: Subconscious.FileFingerprint.Attributes(modified:<PHONE_NUMBER>, size: 883))), Subconscious.FileFingerprintChange.conflict(left: Subconscious.FileFingerprint(slug: anima-mundi, attributes: Subconscious.FileFingerprint.Attributes(modified:<PHONE_NUMBER>, size: 316)), right: Subconscious.FileFingerprint(slug: anima-mundi, attributes: Subconscious.FileFingerprint.Attributes(modified:<PHONE_NUMBER>, size: 340))), Subconscious.FileFingerprintChange.conflict(left: Subconscious.FileFingerprint(slug: overview-effect, attributes: Subconscious.FileFingerprint.Attributes(modified:<PHONE_NUMBER>, size: 486)), right: Subconscious.FileFingerprint(slug: overview-effect, attributes: Subconscious.FileFingerprint.Attributes(modified:<PHONE_NUMBER>, size: 622))), Subconscious.FileFingerprintChange.conflict(left: Subconscious.FileFingerprint(slug: varian-rule, attributes: Subconscious.FileFingerprint.Attributes(modified:<PHONE_NUMBER>, size: 529)), right: Subconscious.FileFingerprint(slug: varian-rule, attributes: Subconscious.FileFingerprint.Attributes(modified:<PHONE_NUMBER>, size: 553))),
*snip*

Posit: this may be caused by old notes that don't have headers.


retirement: Disable side effects on exception

Split from #348 to make review easier and get somewhere in finite time.
In scope of this PR:

[x] A. precommit methods accept an extra side_fx input
[x] B. LSU respects the side_fx input

[ ] B'. does it wait for pending reads to finish? no idea! current impl skips processing an instruction immediately as soon as precommit is called; it might as well be utter nonsense, because I can't even reason about it, feedback appreciated

[x] C. CSR respects the side_fx input (simply skips calling read/write handlers)
[x] D. when side effects are disabled, FRAT gets partially restored (we might want to revisit the priorities of transactions accessing frat.rename; they won't starve for sure, but flushing might get faster, I don't know)
[x] E. when an exception happens, the side effects get disabled
[x] F. BONUS: regression tests in assembly that actually break when side_fx.eq(0) is commented out!

[ ] F'. tests for whether LSU disables its side fx correctly; feedback appreciated, because we might want to extend the assembly tests facility for testing memory contents (mightn't we?)

Out of scope:

Unit tests for LSU side_fx=0 itself without the rest of the core? I hope they are out of scope, otherwise help is desperately needed. Might actually help diagnosing B'.
Fiddling with the fetcher. It still ingests instructions after this PR, they just get ignored in the retirement phase. In the future we might want to just call stall() exported as a method.
Fixing CSRs so that they actually signal important (i.e. ISA-changing or w/e) side effects through a 'benign exception' instead of stalling the fetcher. But it would be nice to get it once exceptions are quasi-ready.
Fiddling with the jump/branch unit to signal mispredictions through benign exceptions. If ain't broke, don't fix it (yet) :wink:

does it wait for pending reads to finish? no idea! current impl skips processing an instruction immediately as soon as precommit is called; it might as well be utter nonsense, because I can't even reason about it, feedback appreciated.

I believe that:

By setting result_ready in LSUDummy to 1, you allow get_result to run - but, as you are doing an combinational assignment, this only works if get_result is called in the same cycle!
Even though side effects were cancelled, if the read ends with an error, the exception will still end up reported. But the instruction was already committed!
We will need support for memory mapped I/O regions SOON. Reads to MMIO need to wait for precommit, just like writes. Otherwise we lose our fun LiteX demo, as LiteX-UART reads are side-effecting.

And, unrelated to your changes:

When I think about it, communication of execute seems to have the same problem as yours with get_result: if bus.request is not ready, the signal will be missed. Clearly, we need a simple way to safely communicate conditions between transactions. Maybe we already have it - this feels like a job for a Forwarder.

@lekcyjna123, @piotro888

this only works if get_result is called in the same cycle!

Actually precommit is a special method and therefore executes every cycle until the instruction gets committed, so I am pretty sure it also works. I also don't quite like it, we should probably make it fit transactron ecosystem better.

Even though side effects were cancelled, if the read ends with an error, the exception will still end up reported. But the instruction was already committed!

Right, this has a worse implication: if there are two failed reads in the pipeline, the fresh one takes precedence. A simple and versatile fix would be to ignore exception causes right in retirement stage if side_fx was set to 0 already.

[ ] TODO(self): implement that.

We will need support for memory mapped I/O regions SOON. Reads to MMIO need to wait for precommit, just like writes. Otherwise we lose our fun LiteX demo, as LiteX-UART reads are side-effecting.

This is actually counter-intuitively easier and already correct: side_fx can only be disabled on instruction commit boundary, so precommit either gets it disabled all the time, or enabled all the time: they can just be skipped entirely (and this is the case). I'm only worried by reads that have already started, because they can no longer be 'skipped'. And I'm afraid they currently cannot be skipped at all and must fully execute, because we don't have access to side_fx in exec stage, only in precommit (unless exec happens during precommit). (Is it a bad thing though? We've already given up on optimizing miss penalty at the expense of simplicity.) I'm still not sure if letting them finish execution is handled correctly.
This brings me to an idea of even dumber dummyLSU: assume all L/S is MMIO & only do it during precommit (horrible performance, but its code would be clean as never before; sounds like a Good First Issue for educational purposes). This would of course impair throughput, which is not nice, so it could only be useful as an extra option for debugging, not a replacement.

If read started an execution it have to be fully executed, to don't left garbage in the data bus. I see two ways to take care about this:

add clearing of the bus - after we execute all instruction, whose side effects should be skipped, we can clear the bus buffers to remove garbage
check in LSU if we started execution (internal.instr_ready == 1) if yes we have to wait till the end of instruction. If not we can block the update and block the instruction execution by setting rp_s1 and rp_s2 to non zero. Execution of get_result after blocking execution is safe.

Actually precommit is a special method and therefore executes every cycle until the instruction gets committed, so I am pretty sure it also works. I also don't quite like it, we should probably make it fit transactron ecosystem better.

I believe you are right - this is probably just fine.

I'm only worried by reads that have already started, because they can no longer be 'skipped'. And I'm afraid they currently cannot be skipped at all and must fully execute, because we don't have access to side_fx in exec stage, only in precommit (unless exec happens during precommit).

This is exactly the problem I'm talking about - the code as it is written allows MMIO reads to go out to the bus before we know they should actually happen. And, as I said, there is a simple way to correct this: just make the MMIO reads (but not memory reads) wait for precommit, just like all writes do currently.

I checked reads and it wouldn't work:

start a read (send a request on the bus)
precommit with side_fx==0 cause result_ready==1
this cause execution of get_result which indicates internal.get_result_ack==1 and reserved==0
internal.get_result_ack==1  cause change of state machine in LSUDummyInternals to Start
reserved ==0 so we can select and insert new instruction
new load is inserted and passed to execution
data from first load are ready on the bus

Short and dirty fix:
        @def_method(m, self.precommit)
        def _(rob_id: Value, side_fx: Value):
            with m.If(~side_fx):
                m.d.comb += result_ready.eq(internal.fsm.state=="Start")

and

        instr_ready = (
            (self.current_instr.rp_s1 == 0)
            & (self.current_instr.rp_s2 == 0)
            & self.current_instr.valid
            & ~self.result_ready
            & self.side_fx
        )

So instr is ready only if side_fx==1 and we can not run get_ready method as long as the state machine is not in "Start" state/

So instr is ready only if side_fx==1 and we can not run get_ready method as long as the state machine is not in "Start" state/

Isn't this equivalent to removing the is_load condition in the Start state? Also, there is no get_ready method, there is get_result, but it depends only on result_ready.

Shouldn't we also check
with m.If(~side_fx & current_instr.valid & (rob_id == current_instr.rob_id)):
    m.d.comb += result_ready.eq(internal.fsm.state=="Start")

?
Otherwise get_result would be ready on each precommit call (to different FUs!) and output illegal entries to pipeline in each cycle. Or am I missing something?

I'm assuming the following invariant: once a precommit is sent for a given rob_id, the value of side_fx can't suddenly change while waiting for commit.
I see two solutions: one quick and dirty (and probably fine for now), and one which requires some additional thought.
The simple one: just remove the | is_load condition from the if in the Start state. This ensures that, if side_fx is False, no requests are sent nor are any exceptions reported, and everything works just fine. Performance is affected, but we can fix it later. (If this option allows @Arusekk to continue working faster, I'm all for it.)
The complex one: vary the behavior depending on the current state of processing the request. If the request was not sent yet, ensure that it will not be sent (possibly by modifying the condition in the Start state). If the request was sent, let it run to completion (so don't assign result_ready locally, wait until it's set by the internals module). I don't know if something needs to be done about exception reporting: this would be encountering an exception while processing a previous exception, we need some strategy for that, as this will not be the only place where something like this could happen. I would much prefer having some general solution instead of special-casing in each module which can report exceptions. @piotro888, what are your thoughts?

I don't know if something needs to be done about exception reporting: this would be encountering an exception while processing a previous exception, we need some strategy for that, as this will not be the only place where something like this could happen.

I think it will work just fine. ExceptionCauseRegister is only updated for 'older' instructions (based on rob_id), so it will be updated to match the correct (first retired) instruction. If multiple exceptions will happen, we only know about it globally (via side_fx) after instruction with exception reaches the retirement - so this is correct, and would not change other behaviour.
Only other special effect of exceptions is setting of exception bit on, but it should be easily ignored in retirement if side_fx are disabled (and it looks like it is already done)
And I noticed one thing to remember for next part of exceptions integration - we should call clear() on ExceptionCauseRegister after flush (at the same moment when restoring fetch) to correctly register next exceptions and ignore all that happened when side_fx were disabled.

The complex one:

I'm obviously for the complex solution, and I don't think it will be that difficult to implement. But obviously, as always, this can be done later in other PR (with simple solution workaround for now). And I think it is the right thing to do now - to not delay this PR and exception development.

The complex one: vary the behavior depending on the current state of processing the request. If the request was not sent yet, ensure that it will not be sent (possibly by modifying the condition in the Start state). If the request was sent, let it run to completion (so don't assign result_ready locally, wait until it's set by the internals module).

This was an idea behind my changes proposition. Adding If in precommit to set result_ready only on fsm.state=="Start" should guarantee that every started request will run to completion. Adding self.side_fx to instr_ready guarantee that no new request will be started if side effects are turned off.

Isn't this equivalent to removing the is_load condition in the Start state?

No, it isn't. I my proposition we still can run loads before precommiting the load. We can speculate about value of side_fx based on the earlier instructions, if it is 1 then we start a load request immediately. Of course our speculation can fail, so in such case we simply wait till the request will be processed by memory.

Made some changes on a branch. In particular, I switched to the new, not-yet-merged LSU.

This was merged through #512.


make relationship nicely inheritable

First Check

[X] I added a very descriptive title to this issue.
[X] I used the GitHub search to find a similar issue and didn't find it.
[X] I searched the SQLModel documentation, with the integrated search.
[X] I already searched in Google "How to X in SQLModel" and didn't find any information.
[X] I already read and followed all the tutorial in the docs and didn't find an answer.
[X] I already checked if it is not related to SQLModel but to Pydantic.
[X] I already checked if it is not related to SQLModel but to SQLAlchemy.

Commit to Help

[X] I commit to help with one of those options 👆

Example Code
from typing import Optional

from sqlmodel import Field, Session, SQLModel, create_engine, select
from sqlalchemy.orm import declared_attr, relationship

class Team(SQLModel, table=True):
    id: Optional[int] = Field(default=None, primary_key=True)
    name: str
    headquarters: str

class HeroBase(SQLModel):
    id: Optional[int] = Field(default=None, primary_key=True)
    name: str

    team_id: Optional[int] = Field(default=None, foreign_key="team.id")

    @declared_attr
    def team(self) -> Optional[Team]:
        return relationship("Team")  # type: ignore

class AnimalHero(HeroBase, table=True):
    species: str

class RobotHero(HeroBase, table=True):
    model_number: int

engine = create_engine("sqlite://")

SQLModel.metadata.create_all(engine)

with Session(engine) as session:
    peace = Team(name="peace", headquarters="earth")
    evil = Team(name="evil", headquarters="mars")
    session.add_all((peace, evil))
    session.commit()

    chickenman = AnimalHero(name="chickenman", species="chickens", team_id=peace.id)
    siri = RobotHero(name="siri", model_number=0x6af, team_id=evil.id)
    session.add_all((chickenman, siri))
    session.commit()

with Session(engine) as session:
    animals = session.exec(select(AnimalHero)).all()
    robots = session.exec(select(RobotHero)).all()
    print(f"{animals=}")
    print(f"{robots=}")
    assert all(hasattr(h, "team") for h in animals)
    assert all(hasattr(h, "team") for h in robots)
    assert animals == [AnimalHero(id=1, species='chickens', team_id=1, name='chickenman')]
    assert robots == [RobotHero(id=1, model_number=1711, team_id=2, name='siri')]

    print(f"{[h.team for h in animals]=}")
    print(f"{[h.team for h in robots]=}")
    assert [h.team for h in animals] == [Team(name='peace', id=1, headquarters='earth')]
    assert [h.team for h in robots] == [Team(name='evil', id=2, headquarters='mars')]

Description
I want to create an SQLModel base class that contains a relationship which i can inherit.
in the example there is a HeroBase which is inherited by AnimalHero and RobotHero. It inherits the columns correctly but with the relationships, i need to use sqlalchemy.orm.declared_attr, sqlalchemy.orm.relationship and # type: ignore so the type checker doesnt get mad.
then in insertion i need to first insert the teams, commit, then link the heroes via the team_id manually instead of doing AnimalHero(name="chickenman", species="chickens", team=peace), so the current way is very similar to this
Wanted Solution
I just want to inherit the relationship provided by SQLModel.Relationship and doing the insertion this way.
Wanted Code
from typing import Optional

from sqlmodel import Field, Session, SQLModel, create_engine, select, Relationship

class Team(SQLModel, table=True):
    id: Optional[int] = Field(default=None, primary_key=True)
    name: str
    headquarters: str

class HeroBase(SQLModel):
    id: Optional[int] = Field(default=None, primary_key=True)
    name: str

    team_id: Optional[int] = Field(default=None, foreign_key="team.id")

    team: Team = Relationship()

class AnimalHero(HeroBase, table=True):
    species: str

class RobotHero(HeroBase, table=True):
    model_number: int

engine = create_engine("sqlite://")

SQLModel.metadata.create_all(engine)

with Session(engine) as session:
    peace = Team(name="peace", headquarters="earth")
    evil = Team(name="evil", headquarters="mars")
    chickenman = AnimalHero(name="chickenman", species="chickens", team=peace)
    siri = RobotHero(name="siri", model_number=0x6af, team=evil)
    session.add_all((chickenman, siri))
    session.commit()

with Session(engine) as session:
    animals = session.exec(select(AnimalHero)).all()
    robots = session.exec(select(RobotHero)).all()
    print(f"{animals=}")
    print(f"{robots=}")
    assert all(hasattr(h, "team") for h in animals)
    assert all(hasattr(h, "team") for h in robots)
    assert animals == [AnimalHero(id=1, species='chickens', team_id=1, name='chickenman')]
    assert robots == [RobotHero(id=1, model_number=1711, team_id=2, name='siri')]

    print(f"{[h.team for h in animals]=}")
    print(f"{[h.team for h in robots]=}")
    assert [h.team for h in animals] == [Team(name='peace', id=1, headquarters='earth')]
    assert [h.team for h in robots] == [Team(name='evil', id=2, headquarters='mars')]

Alternatives
Using directly SQLAlchemy instead of SQLModel
Operating System
Linux
Operating System Details
No response
SQLModel Version
0.0.4
Python Version
Python 3.9.8
Additional Context
The reason for me to go to this route is to implement generic tables/associations and tried to look for examples in SQLAlchemy and tried to use SQLAlchemy-Utils generic_relationship with Relationship(sa_relationship=generic_relationship("object_id", "object_type")), although the later works for insertion, it doesnt work when you try to getattr the relationship after selection.
The wanted code is reasonable considering this is my second day using SQLModel and it feels intuitive to do it that way.

+1 for this working roughly the same way as @declared_attr does in SQLAlchemy: https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/mixins.html#mixing-in-columns-in-inheritance-scenarios
Currently, the FK fields generate the correct DB columns, but the relationship attrs are dropped silently.

+1 - I couldn't figure out why Relationships were not working when I had declared them in a "base" class.
The reason why I put it in the Base class was that I was sure it would work the same as with Fields like written here:
https://sqlmodel.tiangolo.com/tutorial/fastapi/multiple-models/?h=base#multiple-models-with-inheritance
and
https://sqlmodel.tiangolo.com/tutorial/fastapi/multiple-models/?h=base#multiple-models-with-inheritance
It would be awesome if Relationships could work the same.