ci: build and push multiarch image

Signed-off-by: Artur Troian<EMAIL_ADDRESS>

Thanks so much for doing this @troian! It's not been an issue for me yet but good to do it 'properly'. However the current implementation builds two images, one for the testnet site. Which is super lazy of me but it works and I use it for the deployments. So I need to spend a bit of time looking at this and make it work with the testnet image too.

@tombeynon , update to PR should fix the concern about testnet image

@tombeynon this is expected behavior as docker buildx is using qemu to cross-compile artifacts for arm64 architecture


Update table with Azure AD, Blueprints and Automation

@rotycenh   Please do check the yes/no columns, as I'm not sure I've got these correct. Thanks!

OPS Build status updates of commit aa1cbaa:
:warning: Validation status: warnings

File
Status
Preview URL
Details

bread/toc.json
:warning:Warning

Details

toc.json
:warning:Warning

Details

building-blocks/extending-templates/toc.json
:warning:Warning

Details

docs/cloud-adoption/governance/resource-management/toolchain.md
:white_check_mark:Succeeded
View

bread/toc.json

[Warning] Error happen when converting bread/toc.json to Pdf. Details: Could not find a part of the path 'T:\asj3\bread\toc.json'.

toc.json

[Warning] Error happen when converting toc.json to Pdf. Details: Could not find file 'T:\asj3\toc.json'.

building-blocks/extending-templates/toc.json

[Warning] Error happen when converting building-blocks/extending-templates/toc.json to Pdf. Details: Could not find a part of the path 'T:\asj3\building-blocks\extending-templates\toc.json'.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Fix: Use class keyword

This PR

[x] makes use of the class keyword

Thank you, @froschdesign!

Thanks, @localheinz!

Thank you, @weierophinney!


Adding docs for SendGrid

Description
Adding docs for SendGrid
Issue reference
These are the docs updates for this new component in components-contrib
https://github.com/dapr/components-contrib/pull/308
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[x] Code compiles correctly
[x] Created/updated tests
[x] Extended the documentation

@msfussell @orizohar  this is documentation for SendGrid component https://github.com/dapr/components-contrib/pull/308


change timeorminuteBorder and delay...

... to default values wrote in readme

you're right. I had forgotten to put the values back


How to configure the extensions

Hi! Thanks for this awesome plugin! I want to know if it is possible to integrate the Asciidoctor diagram extension asciidoctor-kroki as an extension of astro-asciidoc?
export default defineConfig({
  integrations: [
    asciidoc({
      options: {},
      extensions: [ 'asciidoctor-kroki' ], // Is this possible ?
    },
  ]
})

Thanks. Yes, it should be possible. Did you try it and had any issued with that? As long as asciidoctor options are serializable as JSON (e.g. not contain JS functions), they will be passed to asciidoctor "as is". Let me know if it doesn't work.

Closing as inactive


sendwhatmsg_to_group() does not work properly

Description
I have been using this function for weeks now to send a message to a groupchat automatically each week. It was working fine up to this week. It looks like it is something from WhatsApp side that is messing it up. The link that shows up in the searchbar is: https://web.whatsapp.com/accept?code=WA_GROUP_KEY where WA_GROUP_KEY is the key to the WhatsApp group. In a second, this link changes into https://web.whatsapp.com and I get loaded into web WhatsApp and not the correct group. Consequently, the pre-programmed messaged can't be sent since it does not have access to the groupschat.
To Reproduce
Use the sendwhatmsg_to_group() to send any message to a WhatsApp groupschat. The group_key can be obtained from the invite URL the host of the WhatsApp group can generate.
Screenshots
If applicable, add Screenshots to help explain your Problem
Version Information

OS: Windows 10 64-bit
Browser: Google Chrome
Python: 3.7
PyWhatKit: 5.1

You can Check the PyWhatKit Version using
print(pywhatkit.__VERSION__)

@aaronwtr please send a screenshot

What specifically do you want a screenshot of? My code or what I am observing in the browser? It would be difficult to screenshot the latter since it happens in a split second and I described what happens in detail in my explanation. > @aaronwtr please send a screenshot

@Naman23-coder What specifically do you want a screenshot of? My code or what I am observing in the browser? It would be difficult to screenshot the latter since it happens in a split second and I described what happens in detail in my explanation.

@aaronwtr send a screenshot when the tab opens

@Naman23-coder I do not see any added value in sharing screenshots of what is the start screen of web whatsapp.  I observe for a split second that it is trying to enter the group chat, as explained in my main post, and then it does not enter the group chat and just remains in the web whatsapp start screen in which all the recent chats are ordered on the left and on the right is a big empty space where the chat would be if opened.

@aaronwtr please use pip install pywhatkit --upgrade if you are not using pywhatkit latest version

I am having the same issue.
The link that shows up in the searchbar is: https://web.whatsapp.com/accept?code=WA_GROUP_KEY where WA_GROUP_KEY is the key to the WhatsApp group. In a second, this link changes into https://web.whatsapp.com and I get loaded into web WhatsApp and not the correct group.

@zarif98sjs this is on WhatsApp side,we'll check it soon

Same here

Hey everyone it may be due to beta version (if you have one),try rolling back to stable release

Indeed I was participating in the new beta. Unfortunately, rolling back to a web whatsapp version prior to the beta did not solve the problem. I look forward to updates on this issue!

@aaronwtr please check here https://github.com/zarif98sjs/PyWapp . I have worked on this and this works fine

Same issue as @zarif98sjs  looking forward to getting a working solution

Once the WhatsApp page opens, clicking on the group continues the automation of message sending. So issue is opening the browser to the correct group chat rather than having WhatsApp sending us to https://web.whatsapp.com.

Hey everyone, thanks for reporting this issue. Make sure you are not participating in the WhatsApp Beta. I have tested this function today on Linux with Chrome Browser and its working for me. If you are still facing this issue please don't hesitate to reach out to us.

Yeah!, it also works on Firefox(Linux)

Thanks for looking at this issue! It is now working again with exactly the same setup as with which I reported the problem originally.


Do not randomly close Unix domain socket connections

Connections over a Unix domain do not need to be randomly closed. The proxy in front of it should handle this if it's needed, although in our case Istio will load balance properly for us.

@alecholmes just quietly rearchitecting your entire network when you're not looking


Publish CI packages to GitHub Packages

Enable publishing of packages to local Github Packages feed when creating PRs

While we're at it, should we add license to the package? <license type="expression">Apache-2.0</license>.

While we're at it, should we add license to the package? <license type="expression">Apache-2.0</license>.

It's a bit tricky. The repository itself should have a clear license (which it has) but the code generated by the templates package with dotnet new should not have a license as it's a template and the output is owned by the person who generated it :) So, should the template package then have a license?

While we're at it, should we add license to the package? <license type="expression">Apache-2.0</license>.

It's a bit tricky. The repository itself should have a clear license (which it has) but the code generated by the templates package with dotnet new should not have a license as it's a template and the output is owned by the person who generated it. So, should the template package itself then have a license?

Good question. Other templates, including Microsoft's, has a license though https://www.nuget.org/packages?packagetype=template&sortby=relevance&q=&prerel=True.

Fair enough! Let's add the license to the package!


[SPARK-45723][PYTHON][CONNECT] Catalog methods avoid pandas conversion

What changes were proposed in this pull request?
Catalog methods avoid pandas conversion
Why are the changes needed?
minor optimization:
before: arrow table -> pandas dataframe -> scalar result
after: arrow table -> scalar result
Does this PR introduce any user-facing change?
no
How was this patch tested?
ci
Was this patch authored or co-authored using generative AI tooling?
no

cc @HyukjinKwon

Merged to master.


Downloading mnist data

Hi Aurélien:
I am trying to download the mnist dataset as used in your book (chapter 3). I am using python version 3.8 and sklearn.version
'0.24.0'
But I get this error:
from sklearn.datasets import fetch_openml
    ...: mnist = fetch_openml('mnist_784', version=1, cache=True)
/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/sklearn/datasets/_openml.py:65: RuntimeWarning: Invalid cache, redownloading file
  warn("Invalid cache, redownloading file", RuntimeWarning)
---------------------------------------------------------------------------
SSLCertVerificationError                  Traceback (most recent call last)

And then I am attaching the last line of this error:
URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1125)>

Any ideas what I am doing wrong? Thanks for your help!

I now realize that I get this error whenever I am using fetch_openml. So this example also gives me error:
mice = fetch_openml(name='miceprotein', version=4)
This has something to do with the SSL error. How do I fix this?

Thanks for your question.
Generally, when people have SSL issues when using Python on MacOSX, it's due to a missing step when installing Python: installing the SSL certificates. You need to run this script :
/Applications/Python\ 3.8/Install\ Certificates.command
Also, I recommend you use Python 3.7 instead of Python 3.8, as some TensorFlow libraries don't support Python 3.8 yet.
Hope this helps.

I had the same issue. I couldn't find Aurélien's script in my system, but Jia's answer from this thread worked for me: https://stackoverflow.com/questions/35569042/ssl-certificate-verify-failed-with-python3?rq=4


Exports Ditto store directory

Closes #17

@kndoshn - The new export data functionality is great! I noticed that export buttons text was invisible in dark mode, so I created a PR for merging to this PR, including a few other esthetic updates, if you approve.


[CI] use multiline if statements

Description
This PR fixes #3699
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

Codecov Report

Merging #3703 (2b9bb4d) into master (2137dd7) will decrease coverage by 7.80%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3703      +/-   ##
==========================================
- Coverage   20.59%   12.79%   -7.81%
==========================================
  Files          45       45
  Lines        3807     3807
==========================================
- Hits          784      487     -297
- Misses       2817     3205     +388
+ Partials      206      115      -91

Flag
Coverage Δ

gointegrationtests
?

unittests
12.79% <ø> (ø)

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

Impacted Files
Coverage Δ

mesheryctl/internal/cli/root/system/status.go
0.00% <0.00%> (-62.83%)
:arrow_down:

mesheryctl/internal/cli/root/system/start.go
1.11% <0.00%> (-53.54%)
:arrow_down:

mesheryctl/internal/cli/root/system/stop.go
0.90% <0.00%> (-39.10%)
:arrow_down:

mesheryctl/internal/cli/root/system/check.go
1.42% <0.00%> (-21.71%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2137dd7...2b9bb4d. Read the comment docs.


ReferenceError: Sortable is not defined

I'm facing a "ReferenceError: Sortable is not defined" every time my dashboard starts.
I've built my own release according instructions found on project's page.
I'm using angularJS v 1.3.11 and angular-dashboard-framework v 0.11.0.
Any suggestion ?

I've had this also,  make sure you load  Sortable library before adf. BTW if you're using RequireJS you may want to take a look at https://github.com/RubaXa/Sortable/issues/8

That's my dependencies:
<!-- Basic Lib JS files: jQuery + AngularJS + Pace -->
<script src="./libs/jquery/jquery-1.10.2.min.js"></script>
<script src="./libs/angular/angular.min.js"></script>
<script src="./libs/pace/pace.min.js"></script>

<!-- Chart Lib JS files: Highcharts + ExtendedHighcharts + ngHighcharts -->
<script src="./libs/highcharts/highstock.min.js"></script>
<script src="./libs/highcharts/highcharts-more.min.js"></script>
<script src="./libs/angular/highcharts/highcharts-ng.min.js"></script>

<!-- Dashboard Lib JS files: jQueryUI + ngJquerySortable + ngBootstrap + ngAngularDashboardFramework -->
<script src="./libs/jquery/jquery-ui-1.11.1.min.js"></script>
<script src="./libs/angular/jquery-sortable/sortable.min.js"></script>
<script src="./libs/angular/bootstrap/ui-bootstrap-tpls-0.11.2.min.js"></script>
<script src="./libs/angular/dashboard/angular-dashboard-framework.min.js"></script>

Should I change jquery-sortable/sortable.min.js to angular/ui-sortable?

Yes, please do that

Great!
Problem solved.
Thank you for help me.

Sorry, I did a mistake on my source code.
angular-ui-sortable didn't solved the problem. "ReferenceError: Sortable is not defined" persists.
Could we have another way to solve this problem?
Thanks for while.

The angular-dashboard-framework uses Sortable instead of ui-sortable since version 0.8.0.

That's it.
Problem solved with RubaXa/Sortable.
Thanks again.


Keep isMemOpHasNoClobberedMemOperand in sync.

Similar to issue here: https://github.com/RadeonOpenCompute/llvm/pull/148

@mangupta


Extending iree_hal_allocator_t with memory heaps and compat queries.

The new iree_hal_allocator_query_memory_heaps API allows allocators to expose the available memory heaps to external layers that need to make decisions based on the characteristics of the underlying allocator.
The update to iree_hal_allocator_query_buffer_compatibility provides pooling layers the ability to ask implementations to adjust the parameters and allocation size of a request without performing the allocation. A pooling layer that was trying to find an appropriate bucket or virtual addressing layer that needed to query for reservation ranges can take the user params, have the implementation adjust them, and assume that any allocations made would have those exact parameters.
To aid flag/configuration utilities some bitfield parsing has been added for HAL memory types that can be extended to all enums in the future.

@ScottTodd the first two commits with iree_bitfield_parse/its usage are the only thing new here - the rest is from #11979 unchanged beyond your review feedback - I wanted to get a clean benchmark/test run without the caching allocator enabled in case there are issues with it.


Retry on 502, and do a channel reopen on UnknownHostException

I also increased the maxDepth constant in isReopenable() from 10 to 20, since we were close to the limit in practice


Consultation

Where can I use this technology? What are the commands? Any guide?
I tried to open youtube with Chrome and I can only scroll down, and play-pass on a video.
Thanks

I'll just add a addendum to this. The last build on mac is this. https://github.com/AceCentre/EyeCommander/releases/tag/v1.2.2 - it works - you need to download the dmg. Just note some of the bug fixes that @gavinhenderson  fixed since this might still be in this build
One other thing re: Mac. I wouldn't use EyeCommander :) I would use the inbuilt gesture control. Its good and super efficient
System Settings -> Accessibility -> Pointer Control -> Alternative Pointer Actions. Then, choose a mouse action for your facial gesture. The only problem is CBoard only accepts keyboard keys. Someone needs to do a PR on that to accept mouse buttons.

I tried Cboard from a Mac, and I was able to play and scroll down just fine.
Regarding Eye Commander, I tried the old version that has the build, but as I mentioned, I was only able to do those two functions.


brew: support for mac m1 (arm)

Currently, homebrew defaults all mac OS systems to amd64 and ignores M1. Adding arm64 fixes this. Request from twitter.

we don't have m1 build yet. i'll check if goes quickly through docker-cross


Upload to rapid.ufanet.ru fails and causes high CPU

Happens in FF on http://rapid.ufanet.ru/
Screenshot:

needs to be checked if it was fixed along with #790

Unable to reproduce.


Finish custom-*-faces conversion to functions

Fixes #5015
Note: Before the change from macro to function, when one of my fonts wasn't found ( (setq doom-variable-pitch-font ...) not found because of Guix shenanigans), nothing special happened except a nag message on start. Now an actual uncaught error is thrown somehow and it breaks Doom loading mid-way. Unsure if that's a regression or something I should just be wary of.

Think changing to function discourages using theme specific parameters like (doom-color ‘fg), etc. within custom-*-faces block.
I myself configured automatic theme changer based on the sun rise and set time, thus need the macro’s lazy evaluating feature, but with this change, in my understanding, (doom-color ‘fg) like expressions early evaluated, not lazily.

@gagbo

Fixes #5015

I manually applied the changes and for me it fixes it really. I can load every org-mode .el without error, even on startup. Thank you!

The change was a mistake. I've reverted it in 10f9ec4, which should resolve this issue. Let me know if that isn't the case and I'll reopen it. Thanks for bringing it to my attention!


Collection Res Type and Versioning

This issue may include two sub-issues:
(1) How to make a new version of a collection resource?
We decided to take NO account of issue (1) in current PR #1083. So it disabled the "versioning " button on collection landing page,
(2) How to handle contained resources that have different versions? Can Res A and its newer version Res A' be in the same collection?
Issue (2) was just brought up during the code review on PR #1083.
A comprehensive solution that can address both issues in one shot is needed.  @dtarb @horsburgh @danames @hyi @pkdash

My recommendation is to keep things simple and leave this up to the person managing the collection.  Think of a collection as simply a list of resources.  If the person who is editing it wants to list both versions in it they can.  If they want to edit the resource to remove the old version and add a new version they can.  Once a collection resource gets published it is immutable, i.e. the list is fixed.  So no more adding or removing from the list by anyone except by creating a new version of the collection resource.  So if a new version of one of the contained resources comes out, for it to be in the collection, someone with authority to create a new version would have to create a new version of the collection then edit it as they deemed fit, keeping say the latest version, or both versions depending on their needs.   This simple and flexible approach, I think will allow us to get experience with what users do and address any questions that come up based on experience, not hypothetical considerations.

I do not see any relation between issue (1) and issue (2). I agree with @dtarb recommendation to leave it up to the collection owners/editors to decide what resources to put in a collection. In creating a version of collection the existing resource versioning code will be used with additional code needed to add the resources to the new collection.

I also agree with @dtarb 's suggestion to leave it up to the users to decide what resources to put in a collection without versioning constraint. This also makes coding easier, but I do think we should only present latest versions of resources for users to pick to add to their collections to make the behavior consistent across HydroShare since we remove obsoleted resources from my resources page and from discovery.

tested on www


Allow Annotation of Worker Pods

We use kube2iam to manage the roles assumed by our services. This is used along with KMS keys to allow pods to decrypt secrets. We'd prefer to use this method, opposed to Brigade Secrets + injecting secrets via the Job ENV variable.
To accomplish this, we'd need to be able to pass an annotation to at least the Job pods. In straight-up k8s it would look something like this (docs):
apiVersion: v1
kind: Pod
metadata:
  name: aws-cli
  labels:
    name: aws-cli
  annotations:
    iam.amazonaws.com/role: role-arn
spec:
  containers:
  - image: fstab/aws-cli
    command:
      - "/home/aws/aws/env/bin/aws"
      - "s3"
      - "ls"
      - "some-bucket"
    name: aws-cli

I think we could go a couple of ways with this:
Define at the Project Level
This would expose the option on the deployed brigade/brigade-project values.yml file. I think in this case, the worker and all jobs would get this annotation.
Define on the new Job in JS
This would define per-pod job. e.g.
let job = new Job('something', 'someimage');
job.annotations = {  'iam.amazonaws.com/role': 'role-arn' };

Thoughts?

Closing now that #425 is merged.


issues with DNA topoisomerase II activity (MF) terms

Based on the reading I'm doing for https://github.com/geneontology/go-ontology/issues/15575, I think that our current DNA topoisomerase II terms in MF don't make much sense.
We have this:

But what I've seen so far indicates that ALL DNA topoisomerase II enzymes are ATP-dependent and that NO DNA topoisomerase I enzymes are ATP-dependent.

Note: I've copied the data in this wiki table exactly, except that it is inconsistent with other sources on the Multiplicity of vertebrate (human) type II enzymes, so I've indicated that inconsistency.
So, currently I think that it doesn't make any sense to have either of these terms since there is nothing to distinguish GO:0061505 from the ATP-hydrolyzing term, and the type II (ATP-independent) activity doesn't exist. [Note: the DNA topoisomerase type II (ATP-hydrolyzing) activity (GO:0003918) term is quite old (predates having a creation date), while both of the terms that I think are not useful were added on the same day in 2013. In addition, both GO:0003918 and GO:0061505 are linked to EC:<IP_ADDRESS>, while GO:0061506 is not linked to an EC number at all.

DNA topoisomerase II activity (GO:0061505) (11 annotations: 1 IDA, 10 IEA)
DNA topoisomerase type II (ATP-independent) activity (GO:0061506) (0 annotations)

Checking numbers of gene annotations to each of the three topo II activity terms, and also usages in the ontologies, neither of the recently created terms is used much, or at all, for gene annotations or in links within the ontology. Therefore, I am going to keep the oldest term.

DNA topoisomerase type II (ATP-hydrolyzing) activity (GO:0003918; 399 direct annotations]
DNA topoisomerase II activity (GO:0061505; 11 annotations: 1 IDA, 10 IEA)
DNA topoisomerase type II (ATP-independent) activity (GO:0061506; 0 annotations)

Here are gene annotation counts with commentary on which term is referred to by other ontology terms:

(399) -  DNA topoisomerase type II (ATP-hydrolyzing) activity (GO:0003918)
(77)  -  DNA topoisomerase (ATP-hydrolyzing) activator activity [refers to GO:0003918]
(36) -  positive regulation of DNA topoisomerase (ATP-hydrolyzing) activity  [refers to GO:0003918]
(18) -  DNA supercoiling activity [direct child term of GO:0003918]
(11)  -  DNA topoisomerase II activity [immediate parent term of GO:0003918, recent term]
(6) -    DNA topoisomerase (ATP-hydrolyzing) inhibitor activity [refers to GO:0003918]
(1)   -  negative regulation of DNA topoisomerase (ATP-hydrolyzing) activity  [refers to GO:0003918]

Thinking it through, I've realized that I can merge DNA topoisomerase II activity (GO:0061505) into DNA topoisomerase type II (ATP-hydrolyzing) activity (GO:0003918)
However, the term "DNA topoisomerase type II (ATP-independent) activity (GO:0061506)" just needs to be obsoleted because this activity is not equivalent to "DNA topoisomerase type II (ATP-hydrolyzing) activity" and ATP-independent type II topo doesn't exist anyway.


Resolving lib names by ids in measure bundle.

I was trying to run a measure bundle exported from MAT in CQFRuler and noticed that it needed the ID of the measure library to match the cql library name (from the lib URL i think in the measure). To fix this on the MAT side we changed the measure id and all lib ids to be the cql library name. With that fix it works in CQFRuler. I mentioned this to Bryn and he wanted me to create an issue for this to take a look at it not libs by library.id.

Libraries are now resolved by name (dstu3) or URL (r4+)


New audio effects: EffectChain

Instead of writing
effects::filter::SimpleHighpass highpass { 100, 1.5f, 44100.0f };
SoundDataWithEffect soundDataWithEffect1 { buffer, highpass };

effects::distortion::TanhDistortion dist { 10.0f, 0.7f };
SoundDataWithEffect soundDataWithEffect2 { soundDataWithEffect1, dist };

effects::filter::Butterworth24dbLowpass lowpass { 44100, 9000.0f, 0.0f };
SoundDataWithEffect soundDataWithEffect3 { soundDataWithEffect2, lowpass };

I want to be able to write
effects::filter::SimpleHighpass highpass { 100, 1.5f, 44100.0f };

effects::distortion::TanhDistortion dist { 10.0f, 0.7f };

effects::filter::Butterworth24dbLowpass lowpass { 44100, 9000.0f, 0.0f };
effects::utility::EffectChain effectChain { highpass, dist, lowpass };
SoundDataWithEffect soundDataWithEffect { buffer, effectChain };

Closed with #60


Enhancement

Hi, Can you please add speed feature with your player, Like user should be able to set speed of the player. For example 1x by default. 1.5x , 2x or 3x.
Thanks for the quick response of my previous reply.

After some research i end to the conclusion. Allow us to change the below two values if you are using AVAudioPlayer.
1 - player.enableRate = true
2 - player.rate = 1.5
That's it.

Done bro. Need your help here.

@umairuas
You can achieve it using your own logic by using player.sliderValueChanged(slider: slider)
But,  we would like to know your usage of SHAudioPlayer.

Are you using the player to stream from network or local or both?
Your app require support for all the audio formats (mp3, m4a, etc)?

I am streaming the audio. It will not smooth if i am going to use player.sliderValueChanged(slider: slider).
1- Yes i am streaming the audio.
2- Yes My app support mp3 and m4a only.
Thanks for the quick response.


management password

Hi!
Does openvpn-status support management authentication to the openvpn server (pw-file) ?
From the man page:

--management IP port [pw-file]
Enable  a TCP server on IP:port to handle daemon management functions.  pw-file, if specified, is a password file (password on first line) or "stdin" to
prompt from standard input.  The password provided will set the password which TCP clients will need to provide in order to access management functions.

Thanks
Richard

Not yet, more than happy to review a PR if you want to give it a shot :)


Any item can be put into the input/output slots of machines

Is there an existing issue for this?

[X] I have searched the existing issues

Description
It is possible to put any item into the output slot of machines that produce items (for example the Fluid Evaporator).
It is also possible to put any item into the input slot of machines although they only accept one specific item.
Multiplayer?
Multiplayer
Operating System?
Windows
Version
other
Minecraft Version
1.20.1
Forge Version
47.2.0
Links
https://u.dogboy.xyz/262RwByk.png
https://u.dogboy.xyz/nrELrgbv.png

Hey! Thanks for your report! Will be fixed in ThoriumReactors 0.1.5r!


Set up framework for unit tests

Looks good to me otherwise.

I think it would be good to add an entry into the projects README about the test task.

Give me a shout when you've had a think about my comments and we can look at getting this merged.


Don't continually change the pipeline during provisioning.

Allow button-4 in the example to signal a factory-reset. (hold for 5 seconds).

bors r+

bors r+


cannot find module providing package

What did you do?
I following the guide to add example-inc API, but got cannot find module providing package:
$ operator-sdk add api --api-version=app.example.com/v1alpha1 --kind=AppService
INFO[0000] Generating api version app.example.com/v1alpha1 for kind AppService.
INFO[0000] Created pkg/apis/app/v1alpha1/appservice_types.go
INFO[0000] Created pkg/apis/addtoscheme_app_v1alpha1.go
INFO[0000] Created pkg/apis/app/v1alpha1/register.go
INFO[0000] Created pkg/apis/app/v1alpha1/doc.go
INFO[0000] Created deploy/crds/app_v1alpha1_appservice_cr.yaml
W0530 09:51:53.863324   20942 parse.go:239] Ignoring child directory github.com/example-inc/app-operator/pkg/apis/app: unable to import "github.com/example-inc/app-operator/pkg/apis/app": go/build: importGo github.com/example-inc/app-operator/pkg/apis/app: exit status 1
can't load package: package github.com/example-inc/app-operator/pkg/apis/app: unknown import path "github.com/example-inc/app-operator/pkg/apis/app": cannot find module providing package github.com/example-inc/app-operator/pkg/apis/app

INFO[0013] Created deploy/crds/app_v1alpha1_appservice_crd.yaml
Error: exit status 1
Usage:
  operator-sdk add api [flags]

Flags:
      --api-version string   Kubernetes APIVersion that has a format of $GROUP_NAME/$VERSION (e.g app.example.com/v1alpha1)
  -h, --help                 help for api
      --kind string          Kubernetes resource Kind name. (e.g AppService)

Global Flags:
      --verbose   Enable verbose loggin

What did you expect to see?
I pass without error
What did you see instead? Under which circumstances?
I use the operator-sdk v0.8.1 release and make install to build and install.
Environment

operator-sdk version: operator-sdk version: v0.8.1, commit: 33b3bfe10176f8647f5354516fff29dea42b6342

Kubernetes version information: Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.0", GitCommit:"0ed33881dc4355495f623c6f22e7dd0b7632b7c0", GitTreeState:"clean", BuildDate:"2018-09-27T17:05:32Z", GoVersion:"go1.10.4", Compiler:"gc", Platform:"linux/amd64"}

Kubernetes cluster kind: minikube

go version: go version go1.12 linux/amd64

go variables:

GO111MODULE=on
GOPATH=/home/user/go
GOROOT=/usr/lib/go-1.12/bin/

current directory: /home/user/go/src/github.com/example-inc/app-operator

@qw1mb0 The error output is not very helpful unfortunately. Looking at the code, my guess would be that there was an error compiling the code generation binaries, which is the next step after creating the CRD.
The code I'm thinking is the culprit is here and here
Do you have any files in /home/user/go/src/github.com/example-inc/app-operator/build/_output/bin?

I also have similar issue. It was working last week, but today, when I tried to create a new operator, I got this following error :
nauvoo-3:app-operator super$ operator-sdk add api --api-version=app.example.com/v1alpha1 --kind=AppService
INFO[0000] Generating api version app.example.com/v1alpha1 for kind AppService.
INFO[0000] Created pkg/apis/app/v1alpha1/appservice_types.go
INFO[0000] Created pkg/apis/addtoscheme_app_v1alpha1.go
INFO[0000] Created pkg/apis/app/v1alpha1/register.go
INFO[0000] Created pkg/apis/app/v1alpha1/doc.go
INFO[0000] Created deploy/crds/app_v1alpha1_appservice_cr.yaml
W0530 12:18:01.256270   53532 parse.go:239] Ignoring child directory github.com/moss-inc/app-operator/pkg/apis/app: unable to import "github.com/moss-inc/app-operator/pkg/apis/app": go/build: importGo github.com/moss-inc/app-operator/pkg/apis/app: exit status 1
go<EMAIL_ADDRESS>go.mod has post-v0 module path "github.com/peterbourgon/diskv/v3" at revision 0be1b92a6df0
go: error loading module requirements
W0530 12:18:01.303688   53532 parse.go:239] Ignoring child directory github.com/moss-inc/app-operator/pkg/apis/app/v1alpha1: unable to import "github.com/moss-inc/app-operator/pkg/apis/app/v1alpha1": go/build: importGo github.com/moss-inc/app-operator/pkg/apis/app/v1alpha1: exit status 1
go<EMAIL_ADDRESS>go.mod has post-v0 module path "github.com/peterbourgon/diskv/v3" at revision 0be1b92a6df0
go: error loading module requirements
INFO[0000] Created deploy/crds/app_v1alpha1_appservice_crd.yaml
INFO[0000] RBAC rules in deploy/role.yaml already up to date for the resource (app.example.com/v1alpha1, AppService)
Error: exit status 1

Well, in my case, my go.mod had the following:
github.com/peterbourgon/diskv v0.0.0-20190425080511-0be1b92a6df0
so, I changed it to
github.com/peterbourgon/diskv/v3 v3.0.0
Then I run
go mod vendor
this made me pass this part, but I have noticed bunch of stuffs are missing in vendor dir now (e.g. Error: chdir /Users/super/Documents/go/src/acmeair-operator/vendor/k8s.io/code-generator: no such file or directory)
I am not sure what is going wrong in my env right now..

@qw1mb0 can you run operator-sdk add api --api-version=app.example.com/v1alpha1 --kind=AppService with the --verbose flag:
operator-sdk --verbose add api --api-version=app.example.com/v1alpha1 --kind=AppService

I had problems with that, I resolved it setting the right value for GOROOT, but I'm not sure what's happening in your case. I suspect that you GOROOT should be pointing to /usr/lib/go-1.12/, not /usr/lib/go-1.12/bin, but the detailed output (verbose mode) would help.

You can try to update your go version to v1.12.5 as well

@qw1mb0 @mossuchida are you running operator-sdk add api/is your operator project in $GOPATH/src?

Yes, I am running the command in $GOPATH/src/app-operator dir.  I have upgraded go version to v1.12.5, but still the same issue. Maybe I need to upgrade Operator SDK also? (Are there upgrade documentation?)

Try running the following:
$ mkdir -p pkg/apis/app && echo "package app" > pkg/apis/app/stub.go

To see if that gets rid of the first error.

I got this similar issue
$ operator-sdk new project-operator
INFO[0000] Creating new Go operator 'project-operator'.
INFO[0000] Created go.mod
INFO[0000] Created tools.go
INFO[0000] Created cmd/manager/main.go
INFO[0000] Created build/Dockerfile
INFO[0000] Created build/bin/entrypoint
INFO[0000] Created build/bin/user_setup
INFO[0000] Created deploy/service_account.yaml
INFO[0000] Created deploy/role.yaml
INFO[0000] Created deploy/role_binding.yaml
INFO[0000] Created deploy/operator.yaml
INFO[0000] Created pkg/apis/apis.go
INFO[0000] Created pkg/controller/controller.go
INFO[0000] Created version/version.go
INFO[0000] Created .gitignore
INFO[0000] Running go mod ...
go: finding github.com/operator-framework/operator-sdk v0.8.x
go: errors parsing go.mod:
/home/wen/gocode/src/wen/project-operator/go.mod:22: invalid module version "v0.8.x": unknown revision v0.8.x
Error: failed to exec []string{"go", "mod", "vendor", "-v"}: exit status 1
Usage:

$ operator-sdk version
operator-sdk version: v0.8.1, commit: 33b3bfe10176f8647f5354516fff29dea42b6342

@qw1mb0 @mossuchida have you tried the suggested fix?
@chinglinwen is this a persistent error? I was unable to reproduce it. Can you submit another issue with all the required information? Thanks!

I just changed go.mod operator-sdk v0.8.x to operator-sdk v0.8.1 @estroz , it works now

Hm.
After add --verbose flag all fine.

After upgrading to v0.8.1, It seems like it is working although I see some errors while creating.  Is this expected?
INFO[0002] Created deploy/crds/app_v1alpha1_appservice_cr.yaml
W0613 13:36:27.958214    2867 parse.go:239] Ignoring child directory github.com/example-inc/app-operator/pkg/apis/app: unable to import "github.com/example-inc/app-operator/pkg/apis/app": go/build: importGo github.com/example-inc/app-operator/pkg/apis/app: exit status 1
can't load package: package github.com/example-inc/app-operator/pkg/apis/app: unknown import path "github.com/example-inc/app-operator/pkg/apis/app": cannot find module providing package github.com/example-inc/app-operator/pkg/apis/app
INFO[0011] Created deploy/crds/app_v1alpha1_appservice_crd.yaml

@mossuchida yes, see #1546

I just changed go.mod operator-sdk v0.8.x to operator-sdk v0.8.1 @estroz , it works now

hi, same issue with you, please help to share your solution detail info.

@darmenliu
manual edit go.mod file, replace operator-sdk v0.8.x with operator-sdk v0.8.1, then try again with operator-sdk new. ( I don't remember much )

@mossuchida yes, see #1546

After add --verbose flag all fine.

Is anyone running into this issue with 0.13?
quantomworks@DESKTOP-6VDCHBC:~/work/src/github.com/mhausenblas$ operator-sdk new nodefpol-operator
INFO[0000] Creating new Go operator 'nodefpol-operator'.
INFO[0000] Created go.mod
INFO[0000] Created tools.go
INFO[0000] Created cmd/manager/main.go
INFO[0000] Created build/Dockerfile
INFO[0000] Created build/bin/entrypoint
INFO[0000] Created build/bin/user_setup
INFO[0000] Created deploy/service_account.yaml
INFO[0000] Created deploy/role.yaml
INFO[0000] Created deploy/role_binding.yaml
INFO[0000] Created deploy/operator.yaml
INFO[0000] Created pkg/apis/apis.go
INFO[0000] Created pkg/controller/controller.go
INFO[0000] Created version/version.go
INFO[0000] Created .gitignore
INFO[0000] Validating project
cmd/manager/main.go:18:2: cannot find package "github.com/operator-framework/operator-sdk/pkg/k8sutil" in any of:
        /usr/lib/go-1.10/src/github.com/operator-framework/operator-sdk/pkg/k8sutil (from $GOROOT)
        /home/quantomworks/work/src/github.com/operator-framework/operator-sdk/pkg/k8sutil (from $GOPATH)
cmd/manager/main.go:19:2: cannot find package "github.com/operator-framework/operator-sdk/pkg/kube-metrics" in any of:
        /usr/lib/go-1.10/src/github.com/operator-framework/operator-sdk/pkg/kube-metrics (from $GOROOT)
        /home/quantomworks/work/src/github.com/operator-framework/operator-sdk/pkg/kube-metrics (from $GOPATH)
cmd/manager/main.go:20:2: cannot find package "github.com/operator-framework/operator-sdk/pkg/leader" in any of:
        /usr/lib/go-1.10/src/github.com/operator-framework/operator-sdk/pkg/leader (from $GOROOT)
        /home/quantomworks/work/src/github.com/operator-framework/operator-sdk/pkg/leader (from $GOPATH)
cmd/manager/main.go:21:2: cannot find package "github.com/operator-framework/operator-sdk/pkg/log/zap" in any of:
        /usr/lib/go-1.10/src/github.com/operator-framework/operator-sdk/pkg/log/zap (from $GOROOT)
        /home/quantomworks/work/src/github.com/operator-framework/operator-sdk/pkg/log/zap (from $GOPATH)
cmd/manager/main.go:22:2: cannot find package "github.com/operator-framework/operator-sdk/pkg/metrics" in any of:
        /usr/lib/go-1.10/src/github.com/operator-framework/operator-sdk/pkg/metrics (from $GOROOT)
        /home/quantomworks/work/src/github.com/operator-framework/operator-sdk/pkg/metrics (from $GOPATH)
cmd/manager/main.go:23:2: cannot find package "github.com/operator-framework/operator-sdk/pkg/restmapper" in any of:
        /usr/lib/go-1.10/src/github.com/operator-framework/operator-sdk/pkg/restmapper (from $GOROOT)
        /home/quantomworks/work/src/github.com/operator-framework/operator-sdk/pkg/restmapper (from $GOPATH)
cmd/manager/main.go:24:2: cannot find package "github.com/operator-framework/operator-sdk/version" in any of:
        /usr/lib/go-1.10/src/github.com/operator-framework/operator-sdk/version (from $GOROOT)
        /home/quantomworks/work/src/github.com/operator-framework/operator-sdk/version (from $GOPATH)
cmd/manager/main.go:25:2: cannot find package "github.com/spf13/pflag" in any of:
        /usr/lib/go-1.10/src/github.com/spf13/pflag (from $GOROOT)
        /home/quantomworks/work/src/github.com/spf13/pflag (from $GOPATH)
cmd/manager/main.go:26:2: cannot find package "k8s.io/api/core/v1" in any of:
        /usr/lib/go-1.10/src/k8s.io/api/core/v1 (from $GOROOT)
        /home/quantomworks/work/src/k8s.io/api/core/v1 (from $GOPATH)
pkg/apis/apis.go:4:2: cannot find package "k8s.io/apimachinery/pkg/runtime" in any of:
        /usr/lib/go-1.10/src/k8s.io/apimachinery/pkg/runtime (from $GOROOT)
        /home/quantomworks/work/src/k8s.io/apimachinery/pkg/runtime (from $GOPATH)
cmd/manager/main.go:27:2: cannot find package "k8s.io/apimachinery/pkg/util/intstr" in any of:
        /usr/lib/go-1.10/src/k8s.io/apimachinery/pkg/util/intstr (from $GOROOT)
        /home/quantomworks/work/src/k8s.io/apimachinery/pkg/util/intstr (from $GOPATH)
cmd/manager/main.go:11:2: cannot find package "k8s.io/client-go/plugin/pkg/client/auth" in any of:
        /usr/lib/go-1.10/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOROOT)
        /home/quantomworks/work/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOPATH)
cmd/manager/main.go:12:2: cannot find package "k8s.io/client-go/rest" in any of:
        /usr/lib/go-1.10/src/k8s.io/client-go/rest (from $GOROOT)
        /home/quantomworks/work/src/k8s.io/client-go/rest (from $GOPATH)
cmd/manager/main.go:28:2: cannot find package "sigs.k8s.io/controller-runtime/pkg/client/config" in any of:
        /usr/lib/go-1.10/src/sigs.k8s.io/controller-runtime/pkg/client/config (from $GOROOT)
        /home/quantomworks/work/src/sigs.k8s.io/controller-runtime/pkg/client/config (from $GOPATH)
cmd/manager/main.go:29:2: cannot find package "sigs.k8s.io/controller-runtime/pkg/log" in any of:
        /usr/lib/go-1.10/src/sigs.k8s.io/controller-runtime/pkg/log (from $GOROOT)
        /home/quantomworks/work/src/sigs.k8s.io/controller-runtime/pkg/log (from $GOPATH)
pkg/controller/controller.go:4:2: cannot find package "sigs.k8s.io/controller-runtime/pkg/manager" in any of:
        /usr/lib/go-1.10/src/sigs.k8s.io/controller-runtime/pkg/manager (from $GOROOT)
        /home/quantomworks/work/src/sigs.k8s.io/controller-runtime/pkg/manager (from $GOPATH)
cmd/manager/main.go:31:2: cannot find package "sigs.k8s.io/controller-runtime/pkg/manager/signals" in any of:
        /usr/lib/go-1.10/src/sigs.k8s.io/controller-runtime/pkg/manager/signals (from $GOROOT)
        /home/quantomworks/work/src/sigs.k8s.io/controller-runtime/pkg/manager/signals (from $GOPATH)
Error: failed to exec []string{"go", "build", "./..."}: exit status 1
Usage:
  operator-sdk new <project-name> [flags]

Flags:
      --api-version string          Kubernetes apiVersion and has a format of $GROUP_NAME/$VERSION (e.g app.example.com/v1alpha1) - used with "ansible" or "helm" types
      --generate-playbook           Generate a playbook skeleton. (Only used for --type ansible)
      --git-init                    Initialize the project directory as a git repository (default false)
      --header-file string          Path to file containing headers for generated Go files. Copied to hack/boilerplate.go.txt
      --helm-chart string           Initialize helm operator with existing helm chart (<URL>, <repo>/<name>, or local path)
      --helm-chart-repo string      Chart repository URL for the requested helm chart
      --helm-chart-version string   Specific version of the helm chart (default is latest version)
  -h, --help                        help for new
      --kind string                 Kubernetes CustomResourceDefintion kind. (e.g AppService) - used with "ansible" or "helm" types
      --repo string                 Project repository path for Go operators. Used as the project's Go import path. This must be set if outside of $GOPATH/src (e.g. github.com/example-inc/my-operator)
      --skip-validation             Do not validate the resulting project's structure and dependencies. (Only used for --type go)
      --type string                 Type of operator to initialize (choices: "go", "ansible" or "helm") (default "go")
      --vendor                      Use a vendor directory for dependencies

Global Flags:
      --verbose   Enable verbose logging

@sfxworks can you open a new issue detailing your environment info? Thanks!


fix build on GCC 14 for yocto

This commit moves the inline functions to source file to fix "-Werror=attributes" fatal errors.

Can you please share more details on the background of this error under "GCC 14 for Yocto"?
I see many of these methods are used as callbacks for Timer, Tasklet, etc. Therefore, their addresses (as function pointers) may be used. I expect the compiler should be able to infer this and ensure they are not fully inlined regardless of whether they are defined in the header or .cpp file.

@abtink
GCC 14 compiler uses -fvisibility-inlines-hidden by default and it creates visibility conflicts.
Compilation error:
error: 'ot::BorderRouter::RoutingManager::RxRaTracker' declared with greater visibility than the type of its field 'ot::BorderRouter::RoutingManager::RxRaTracker::mSignalTask' [-Werror=attributes]
|   814 |     class RxRaTracker : public InstanceLocator
|       |           ^~~~~~~~~~~
| compilation terminated due to -Wfatal-errors.
| cc1: all warnings being treated as errors
The errors have been suppressed by adding CXXFLAGS += "-Wno-error=attributes" in .bb file.
https://git.openembedded.org/meta-openembedded/tree/meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb?h=master
In addition, for below error I have added fix refering - https://github.com/openwrt/openwrt/blob/main/package/libs/mbedtls/patches/100-fix-gcc14-build.patch
error: array subscript 48 is outside array bounds of 'unsigned char[48]' [-Werror=array-bounds=]
|   235 |         r[i] = a[i] ^ b[i];
|       |                ~^~~
| compilation terminated due to -Wfatal-errors.
| cc1: all warnings being treated as errors

Thanks, @Deepan-Shiva

The errors have been suppressed by adding CXXFLAGS += "-Wno-error=attributes" in .bb file.

Can this be used to suppress this on specific builds instead of changing the source code. We generally prefer to keep such simple (one-line statement) methods in the header file for brevity.


Request: T-Bar functionality or AUTO TRANS Feedback?

It would be awesome to use the T-Bar functionality or to have a feedback on the already existing AUTO TRANS. I can use the AUTO TRANS button, it works just fine. But there is no feedback, that it is doing the transition. This would be perfect, if that was added to the features.
Otherwise: Awesome work!

Feedback for being in a transition has been added.
What would you expect to see for T-Bar?

Thank you. I have no ATEM right here to test.
I think my request for the AUTO TRANS feedback  should work as I expected.
For the T-Bar: it would be cool to have a button for T-Bar or generally for „in transition“ mode, where I can see if the T-Bar is making a transition at the moment. I had the case, that I have made a transition with the T-Bar and it was stuck because it was not completely in the upper or the down position. So there where two sources on air at the same time. With a button like that I could see that very quickly as in these cases it was not directly visible on the output. Do you know what I mean? It is a little complicated to describe. Also: maybe this works already with the new feature?

How about a button that moves the T-Bar for only as long as it it pressed?
That way, you could stop in the middle of a transition for a ghosting effect.
Maybe it goes back the other way if you stop in the middle of a transition.

How about a button that moves the T-Bar for only as long as it it pressed

I think you could almost do that right now, by adding the auto transition action as both a down and up action. But if you let the transition reach the end before releasing it would then re-run, so maybe a stop-transition action is needed.

Maybe it goes back the other way if you stop in the middle of a transition.

From memory, the protocol doesnt have a way to specify the direction of the auto-transition. This could be done by companion sending many commands to manually set the position, but that risks being visibly stuttery.


Fix html escaping on non strings

closes #1955
What are you trying to accomplish?
When an integer or any non-string is used inside call the html escaping throw an error(described in the linked issue)
What approach did you choose and why?
I replaced text.nil? || text.empty? for with type safe .blank? so any type can be escaped as is allowed in templates

Hey @reeganviljoen, in the interest of getting a release out today I forked your branch and created another PR with a few small fixes. Thanks for tackling this!!

@camertron sorry I didd't see this as I was in the gym 😄

@reeganviljoen no worries! Sorry for closing, but your name is still in the changelog for this fix!

@camertron no problem I fully understand the urgency, just letting you know I wasn't blowing off your response


Malloc returns zero when exported for large WASI AOT binaries

We autogenerate code and compile it into Wasi (SDK 13) AOT binaries that can run on different architectures using WAMR. We recently changed from non-exported to exported malloc and free on compiling our binaries, using:
...

-Wl,--export=__heap_base -Wl,--export=__data_end -Wl,--export=malloc -Wl,--export=free  \
-Wl,--export=malloc_buffer,--export=free_buffer,--export=get_out_len,--export=get_out_loc \

...

But we now encounter a problem with running more memory consuming generated code (taking up 1gb+ of mem). For these larger binaries, within wasm, malloc returns zero on allocating additional memory when calling the following exported helper function from the main application running the WASM binary (set to use Alloc_With_System_Allocator):
...

// exported - allocates memory and returns buffer start position
uintptr_t *malloc_buffer(uint32_t length) {
    in_loc = (uintptr_t *) malloc(length * sizeof(uint8_t));
    return in_loc;
}

...

The main application function call:
...

wasm_function_inst_t func_malloc_buffer = NULL;
uint32_t args_malloc_buffer[1];
args_malloc_buffer[0] = i_inLength;

//run wasm malloc
if (!(func_malloc_buffer = wasm_runtime_lookup_function(runtime_core.module_inst, "malloc_buffer", NULL))) {
	sclbl_vlog("Error: The malloc_buffer wasm function is not found.\n");
	*error = 3;
	return output_string_pointer;
}
if (!wasm_runtime_call_wasm(runtime_core.exec_env, func_malloc_buffer, 1, args_malloc_buffer)) {
	sclbl_vlog("Error: call wasm function malloc_buffer failed. %s\n",
			   wasm_runtime_get_exception(runtime_core.module_inst));
	*error = 4;
	return output_string_pointer;
} else {
	/* the return value is stored in args[0] */
	printf("Notice: Wasm function malloc_buffer function returns: %d\n", args_malloc_buffer[0]);  ///// --> zero for large mem
}

...

We did not encounter this issue when not exporting malloc and free. Then the malloc_buffer() function returns the correct buffer start value. Also, smaller binaries (for instance, taking up 500MB of memory in total) run fine for both exported and non-exported malloc. Do you have a suggestion on what might be happening here?
We also tested with wasm_runtime_module_malloc() instead of our own exported malloc_buffer(). Then we receive
warning: allocate 4194442 bytes memory failed

... the binary does consume a lot of memory, but still, based on our trace, there should be enough left to allocate more.

We did some more tests, trying different config options. Among others, we thought we'd try to remove dlmalloc from the WASI libc, to see if that might somehow interfere with our setup:
/opt/wasi-sdk/bin/llvm-ar -d /opt/wasi-sdk/share/wasi-sysroot/lib/wasm32-wasi/libc.a dlmalloc.o

Then, we recompiled our wasi binary with malloc export:
-Wl,--export=malloc -Wl,--export=free -Wl,--export=__heap_base,--export=__data_end \
-Wl,--export=malloc_buffer,--export=free_buffer,--export=get_out_len,--export=get_out_loc \

On doing that, we got failed to link import function () for malloc, realloc and free. So we thought we might provide it, by changing the following settings on compiling our main application:
SET(WAMR_BUILD_LIBC_BUILTIN 0)
SET(WAMR_BUILD_LIBC_WASI 1)

.. which worked fine when not exporting free/malloc, to:
SET(WAMR_BUILD_LIBC_BUILTIN 1)
SET(WAMR_BUILD_LIBC_WASI 1)

Now, everything is working again. But which malloc/free config is the the most optimal / safe? And why does "just" exporting malloc and free without removal of dlmalloc work well, up to a memory limit?

@robinvanemden The wasm app malloc's (or malloc_buffer's) behavior and runtime api wasm_runtime_module_malloc's behavior depend on how the app heap and libc heap are configured, or, whether the memory is allocated from the app heap or the libc's heap, refer to the WAMR memory model for more details:
https://github.com/bytecodealliance/wasm-micro-runtime/blob/main/doc/memory_tune.md#the-memory-model
(1) If the libc's heap management library (like dlmalloc library) is compiled into wasm bytecode, then the wasm app's malloc function will apply memory from it. In this case, the linear memory is growable, when there is no heap space left to allocate, the libc's heap management will grow the whole linear memory firstly and then allocate a new memory chunk for wasm app. As growing the whole linear memory may require the runtime to re-allocate a relatively larger memory, runtime may fail to do that if the required linear memory size is larger than the maximum linear memory size specified, or there is no space left in the global heap (seems that global heap space is enough for you as you set to use Alloc_With_System_Allocator). So could you please enlarge the maximum linear memory size while building wasm app:
For wasi-sdk, the initial/max size can be specified with -Wl,--initial-memory=n1,--max-memory=n2,
for emsdk, the initial/max size can be specified with -s INITIAL_MEMORY=n1 -s MAXIMUM_MEMORY=n2 -s ALLOW_MEMORY_GROWTH=1 or -s TOTAL_MEMORY=n,
and for asc, they can be specified with --initialMemory and --maximumMemory flags.

And in this case, if the malloc/free function is exported, then the app heap won't be created by runtime, and wasm_runtime_module_malloc will invoke the exported malloc function to allocate memory. And if the malloc/free function isn't exported, the app heap is created and wasm_runtime_module_malloc applies memory from it.
(2) If the libc's heap management library (like dlmalloc library) isn't compiled into wasm bytecode, e.g. remove dlmalloc.o from libc.a, then both wasm app's malloc function and runtime api wasm_runtime_module_malloc allocate memory from the app heap created by runtime. In this case, the app heap size is fixed and specified by wasm_runtime_instantiate, and the linear memory isn't growable. The libc-builtin should be compiled and linked, so wasm app can call the imported malloc function.
We think both methods work, it is up to you. And had better just choose one to reduce the footprint: use libc's heap, export  malloc/free and configure a larger linear maximum memory, or use app heap with a larger size and remove dlmalloc.o from libc.a. Note that the latter is thread-safe as runtime adds lock for each alloc/free operation, and the former isn't thread-safe by default and should not be used when multi-thread feature is required.

@robinvanemden Maybe you can debug the source code of wasi-libc and refine its memory allocation algorithm:
https://github.com/WebAssembly/wasi-libc/blob/30094b6ed05f19cee102115215863d185f2db4f0/dlmalloc/src/malloc.c
You can refer to the document of wasi-sdk to build it from source code:
https://github.com/WebAssembly/wasi-sdk
Or refer to WAMR's build-wasi-sdk script to build it:
https://github.com/bytecodealliance/wasm-micro-runtime/tree/main/test-tools/build-wasi-sdk

Thanks, @wenyongh. We will follow your suggestions and see whether we are able to get to the bottom of this issue and report back our findings.


Get-SPOProvisioningTemplate : The remote server returned an error: (403) Forbidden

I am connecting to my tenant and attempting to export the XML file. It connects just fine and seems to be processing because the status bar is moving, it gets to about 80% on 'Exporting Page Contents' and then stops with the error: Get-SPOProvisioningTemplate : The remote server returned an error: (403) Forbidden.
My account is a SCA.

I'd test this capability with the latest April version of the Core component and also on a site which does not have that much customizations in the front page. It's also important to notice that we only export welcome page natively in the PnP engine.

Hi,
if this is still an issue, could you report that directly in the PnP Core Component repository at  https://github.com/OfficeDev/PnP-sites-core/issues. thx.


Minecraft user presence and AB testing

I have installed the official Minecraft Launcher and analyzed the HTTPS traffic with mitmproxy. I found a few suspicious domains which can probably be blocked. I did not try to block them yet, but I just wanted to share my analysis.
I will tell about the effect of blocking later.
User Presence
Domain: userpresence.xboxlive.com
Usage
POST request to userpresence.xboxlive.com/users/xuid({xuid})/devices/current/titles/current to tell Microsoft that you (user with xuid) are present. These requests happen every 5 minutes when the launcher is open. This behaviour cannot be disabled in the launcher.
This is what Microsoft says about this request.
Possible Side Effects when Blocked
The API to find out if other users are online is on the same domain, so it will not work. But I do not see any way to see the presence of other users in the launcher anyway, so maybe this information is not even accesible to normal users.
AB Testing?
Domain: xboxab.com
Usage
When I opened the Minecraft launcherm, the first GET request to https://www.xboxab.com/ab returned the following JSON:
{
    "AssignmentContext": "mctes210cf:30346368;mctca895:30470918;mctca431:30470919;mctca657:30470906;mctca973:30470912;mctca585
:30475207;mctca111:30475209;mctca987:30475208;mcbedrockpreview22:30552877;gamescom22:30554466;",
    "Configs": [
        {
            "Id": "MCLauncher",
            "Parameters": {
                "TCADOBootstrapMigrationLinux": true,
                "TCADOBootstrapMigrationMacOS": true,
                "TCADOBootstrapMigrationWin32": true,
                "TCADOMigrationGameCore": true,
                "TCADOMigrationLinux": true,
                "TCADOMigrationMacOS": true,
                "TCADOMigrationWin32": true,
                "TestBoolean": false,
                "gamescom22": true,
                "mcbedrockpreview22": true
            }
        }
    ],
    "Features": [
        "mctes210cf",
        "mctca895",
        "mctca431",
        "mctca657",
        "mctca973",
        "mctca585",
        "mctca111",
        "mctca987",
        "mcbedrockpreview22",
        "gamescom22"
    ],
    "FlightingVersion": 53518085,
    "Flights": {
        "2v5c": "mctes210cf",
        "3nyi": "mctca895",
        "3nyk": "mctca431",
        "3nyl": "mctca657",
        "3nym": "mctca973",
        "3o2v": "mctca585",
        "3o2w": "mctca111",
        "3o2x": "mctca987",
        "4ak2": "mcbedrockpreview22",
        "4b0t": "gamescom22"
    },
    "ImpressionId": <some hex value>,
    "ParameterGroups": []
}

Afterwards the GET requests to https://www.xboxab.com/ab repeat 15 minutes, but it starts returning 304 Not Modified.
It sends a X-MSEDGE-CLIENTID as a HTTP header, which makes the client identifiable.
To me it looks like some kind of forced A/B testing experiment, where certain features are enabled or disabled on the client.
Side effects when blocked
The launcher will probably work in the default configuration.

I have blocked these domains and Minecraft single player still works. I have to check multiplayer though.

Thank you for this @nandlab.
@jamierocks can you please evaluate this for inclusion in your list?  Thanks!

User Presence
I'm generally hesitant when it comes to the Xbox services APIs, since they are/can be used by such a large pool of games - and its very difficult to know what and how they're used by those games. Minecraft is somewhat of an oddity as it doesn't really integrate with Xbox a great deal (user-facing), but plenty of others do - and it's those that stand to be broken.
AB Testing
That does indeed look like AB testing - is there any precedent for blocking such domains by lists consumed by hosts? I'm not opposed to adding a second list to minecraft-hosts to account for these (currently I only target tracking domains, but open to expansion).

@jamierocks this is your call. I don't Minecraft. So I don't know.
Closing this here, leaving this in your capable hands.


Set esbuild target as node14

ref: https://github.com/rust-analyzer/rust-analyzer/pull/10061
Currently, target version is not specified so it's esnext.
https://esbuild.github.io/api/#target
VSCode uses node 14 since version 1.56.
https://github.com/rust-analyzer/rust-analyzer/issues/3167#issuecomment-907058367

bors r+
Thanks!

changelog internal (first contribution) set esbuild target to Node 14


Output guardrails are now called with the new response

Fix #938

I'm surprised it is not tested. Looking....

@geoand The test was there, but it was testing the last message from the chat history - so everything was fine. I added assertion against the passed message.

🆗