Client sample out of main scope

Hi, a begginer here.
There is an example about client use out of main scope? How to store on a class member, something more generic than shot and close on main?
Thanks!

See bench.cpp
https://github.com/redboltz/mqtt_cpp/blob/27765791adaede2ce5340f81405ad6304387b12d/example/bench.cpp#L1054-L1070
It is a little tricky because mqtt_cpp supports various underlying layer without virtual function mechanism to support templates.
So we need to use decltype() to get the type information.


mithriljs.com (old address my browser autocompleted) redirects to a 404

redirects to this:

Known issue out of our control.


JupyterLab performance degrades with the number of plotly graphs

It seems that in a notebook graphs are printed in a smaller size first, and then autosized to the page. This autosizing freezes the page for a second and looks like an issue.
Set the proper size by default?

https://github.com/jupyterlab/jupyter-renderers/issues/171

https://altair-viz.github.io/

Current workaround - use classic Notebook UI.

JupyterLab 1 can speed it up
Anyway, seaborn is worth considering.

Any updates on the issue?

I just checked it at JL 1.1, seems much faster. So it works for now for our purposes.

Fixed in #124

But performance still degrades...

Yes, as with any other similar tool. For a typical usage for this library, the performance is good enough - for me, at least, it's not noticeable.

Actually it freezes for minutes. But probably, it is not an issue of this project.

Then I suggest to leave package versions and how to reproduce it in jupyterlab/jupyter-renderers#171


Swann flow content

Check the Swan flow and confirm the content.

Done and given suggestions to Shashank in DM. Asked to change btc to BTC and change the name of first button to "Next". No other changes.


Create initial Travis CI without devops submodule as a start

Later, we will convert to using dedicated devops project for CI/CD, but for now, let's just get started with simple CI

I will do this.


Catch JVM incompatible library JNA error when initializing Discord

Signed-off-by: Tomas Slusny<EMAIL_ADDRESS>

There is an incompatible JNA native library installed on this system
Expected: 5.2.0
Found:    4.0.1
To resolve this issue you may do one of the following:
 - remove or uninstall the offending library
 - set the system property jna.nosys=true
 - set jna.boot.library.path to include the path to the version of the


Message Poller

Hello,
Sorry for the intrusion.
Just wondering what would be the best way to implement a polling mechanism (after having subscribed to a topic) that would trigger a callback whenever a new message is received.
So far I only found examples that would receive a single message and then disconnect from the broker.
I need to implement an endpoint that would maintain a connection with the broker and that would permanently subscribe to a specific topic and keep receiving messages on said topic.
Thanks in advance.
Elia

You can call the next recv() to get meeage().
Here is client_cli.cpp code:
https://github.com/redboltz/async_mqtt/blob/984e81f9c85d21edf88dc2f4548a961748f90eb4/tool/client_cli.cpp#L808-L851
It uses stackless coroutine. If you use callback approach, then call recv() the last part of recv() callback.
NOTE: It is not a polling, it is still event driven.

If you still have the problem, feel free to reopen the issue.

Thank you for the quick response.
I will give it a go and let you know.


[Template Submission]

Important:
Please make sure to first read and sign the agreement at ahoy.twilio.com/code-exchange-community before proceeding here.
What's the use case for the template?
Please explain what use case this template is solving. If this is another programming language implementation for an existing use case, please copy the link here.
-> The project template demonstrate sms chat bot usage along with web scraping and external api implementation. The main idea of this project is to spread awareness regarding COVID-19 to a large number of people. So I decided to use Twilio SMS service for this project as an SMS facility is available to almost all mobile phones, this helps the information to reach people who don't use smartphones or computers.
What's the programming language?
What programming language is primarily used for this template? If there's a front-end and back-end component, please list the back-end language.
The project is written in python and is a flask app, it uses:

SQLite database
sqlAlchemy for dealing with database
marshmallow for (de)serialization
Twilio python library
beautifulsoup4 for web scraping
newsapi.org python client
chatterbot for fallback small talks

For any Twilio Function templates please submit them via a pull request to github.com/twilio-labs/function-templates
[e.g. Node.js]

Template GitHub URL:
Please list the GitHub URL of your project. e.g. github.com/twilio-labs/sample-appointment-reminders-node
-> https://github.com/Akshay090/break-the-chain
Author Information (please fill out):

Author name (or organization if submitted on behalf of a company): [e.g. Twilio]
-> Akshay Ashok
Author GitHub organization/user: [e.g. github.com/twilio]
-> github.com/Akshay090
GitHub username you used to sign the Agreement: [e.g. dkundel]
-> Akshay090

Additional dependencies:
Please list any external dependencies for services, tools or similar this project has.

Newsapi.org api to get latest news
COVID-19 count data scraped from mohfw.gov.in
Checklist:

Please check every part of this checklist for us to process your request. You can do this by marking them with [x] instead of [ ].

[x] I've filled out the form at ahoy.twilio.com/code-exchange-community
[x] My sample application is open source and has a permissive license such as MIT or Apache-2
[x] There are no known security vulnerabilities and I'm following security best practices
[x] I've read Twilio's best practices coding guidelines for my project
[x] I agree and adhere to the Code of Conduct
[x] The template has been authored by me / or my organization and will be kept up-to-date. If the template will not longer be maintained, I'll notify this project.

Hi @Akshay090! Thanks for your submission. I just want to make sure there's no confusion. Are you intending to submit this only for CodeExchange or also for the Hackathon currently going on? In that case you'll still have to publish it to dev.to using this template https://dev.to/new/twiliohackathon to be eligible to win.
I'm still happy to look into featuring it on CodeExchange

Hi @dkundel I'm intending to submit this project to CodeExchange and also for the currently on going hackathon, I have already published the blog at dev.to. Please have a look at the project and let me know if I need to make some changes. CodeExchange has helped me with developing this project so I'm glad to contribute.

Hi @Akshay090 we are happy to add your template to CodeExchange and I'm glad to hear that CodeExchange helped you develop this app.
I can see your app is licensed under MIT according to the README but could you make sure the repo actually has an MIT license file?
Once that's done we can feature your application on CodeExchange.

Hi @dkundel I have added the license file and updated the read me, please have a look

Thank you @Akshay090! I looked and it seems like I can't find you in the list of folks who filled out this agreement. Can you fill it out once more and let me know?

@dkundel can you check it again, I have filled it.

Hi @dkundel any updates ??

Hi @Akshay090 sorry for the delay but I checked again and can't find you in the form responses. Neither with Akshay090 nor with the name you have on your profile. Did you use another name?

@dkundel No I've not used any other name, it's the same as the one in my profile, I have filled it once more.


[Action, Cloud Native Sustainability Week] Website Page

Part of https://github.com/cncf/tag-env-sustainability/issues/95
To share the details about the event, it would be great to have a website page. We can either be utilizing the TAG ENV website or create a page on cloudnative-sustainability.com.
We can upload any resources / create documents in this folder: https://drive.google.com/drive/folders/1w5rjLsBZiUOgyYMhSlT7e-lB-UG4VItO?ths=true

I can help out :)

Opened a PR, see https://github.com/cncf/tag-env-sustainability/pull/142

I see a merged PR but an open issue

Right, we can close this one. I kept it open if there is more input to add to the website. I think we are good, no need to track it.


ClientModel: Split PipelineMessageHeaders into two types

Fixes https://github.com/Azure/azure-sdk-for-net/issues/41230

API change check
APIView has identified API level changes in this PR and created following API reviews.
System.ClientModel


SUBMARINE-1275. Submarine-cloud-v3 reconcile logic

What is this PR for?
Add reconcile logic to submarine-cloud-v3
What type of PR is it?
Feature
Todos

[x] - add reconcile logic
[x] - update cluster role rules
[x] - add new development doc

What is the Jira issue?
https://issues.apache.org/jira/browse/SUBMARINE-1275
How should this be tested?
Follow the submarine-cloud-v3/docs/developer-guide.md
Screenshots (if appropriate)

Questions:

Do the license files need updating? No
Are there breaking changes for older versions? Yes
Does this need new documentation? Yes

Please help review @Kenchu123 @MortalHappiness , thanks.

Do we need to add some k8s labels like app.kubernetes.io/name=submarine?
I think we may need to add some labels to these k8s resources. This is convenient for users to filter resources based on labels.
https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/

@cdmikechen Right now, the labels created with submarine-cloud-v3 match those created with submarine-cloud-v2.
I think convenience is outside the scope of this PR. We could add that label along with others such as app.kubernetes.io/created-by=controller-runtime in a separate PR for easy reviewing. Also, if I understand the guide you provided correctly, should the label app.kubernetes.io/name=submarine also be applied to the resources created by Helm, like deployment.apps/training-operator? In that case, I think those are again outside the scope of this PR.

I also think we can create another issue for adding the label.

I created an issue for adding labels. I will merge this PR first before dealing with that issue.
https://issues.apache.org/jira/browse/SUBMARINE-1290


chore: add dockerfile

adds Dockerfile for ubuntu to have easy usage

# build it
docker build -t pre-commit .
# cd into your terraform module/code repository and run
docker run -v $(pwd):/lint -w /lint pre-commit run -a

see discussion in #182. Let me know if it fits in here

Looks good. Could you also mention that it is possible to use docker and describe the process in README?

@antonbabenko readme is updatd

Thanks, @mavogel !
v1.48.0 has been just released.


Contact Information

Hi
Can we use this to share contact information? - here I go
https://www.linkedin.com/in/leonardofariacoelho/

Yes absolutely! I also have a list of emails that the workshop.me group shared with me.
Here is my LinkedIn


Improve startup script and use Poetry to manage Python dependencies

Used node package concurrently to start all backend services in a single terminal tab.

Some changes:

Please make sure Poetry is installed, it will be used to manage Python environments: https://python-poetry.org/
Run npm run init to initialize all dependencies (only need to be done once)
Run npm run flojoy to start the app.

@itsjoeoui @smahmed776
is this ready for review?

@itsjoeoui @smahmed776 is this ready for review? (after the merge conflicts are fixed)

Yes, should be good to go now.


Image for README.md

Hello!
This is plugin is nice, but I want have a some customisation of labels. Maybe you can add some callback for it? It would be great to make the inscriptions on the side of the chart?


Add JavaScript bindings via Wasm

What
Add JavaScript bindings via Wasm
Why
Based on #347 and continuation of #351 by @willemneal.
The Rust XDR lib is the only implementation of the XDR<>JSON format. This is a shortcut to allowing the use of the format in JavaScript contexts as a hold over until there is a native implementation in JavaScript.
Everything in this change is experimental, even more experimental than the JSON format that is itself still relatively experimental.
Merging
Intended to be merged to main after #347.

Superseded by:

https://github.com/stellar/js-stellar-xdr-json/pull/1


Dev1

@wltrf Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

@wltrf Thank you for signing the Contributor License Agreement!

sorry about that.


upgraded nanovg to the latest.

Upgraded to https://github.com/memononen/nanovg/tree/f4069e6a1ad5da430fb0a9c57476d5ddc2ff89b2

Build is still failing.

yeah... warning treated as errors.. :confounded: I'll deal with them next time I boot in windows (i'm on linux most of the time you see...)


Style/TrivialAccessors includes class method accessors

I'd MUCH rather write def self.x than class << self; attr_accessor :x; end. Wouldn't you?

I remember there was some discussion about adding an option for this. Guess we should finally add it. :-)


'bars' is undefined when creating grouped bar chart

Using the following dataset to create a grouped bar chart results in a "Cannot read property 'bars' of undefined" error in core.js line 132.
var correctSet = {
            labels: ["Chocolate", "Vanilla", "Strawberry"],
            datasets: [
                {
                    label: "Blue",
                    fillColor: "blue",
                    data: [3, 7, 4]
                },
                {
                    label: "Red",
                    fillColor: "red",
                    data: [4, 3, 5]
                },
                {
                    label: "Green",
                    fillColor: "green",
                    data: [7, 2, 6]
                }
            ]
        };

I use the following code in the render function:
render() {

        return (

{this.props.graphName}

                <BarChart
                    width={500}
                    height={300}
                    offset={20}
                    data = {this.state.data}
                    />

        )
    }

The dataset was obtained from a StackOverflow question ([http://stackoverflow.com/questions/28180871/grouped-bar-charts-in-chart-js]) and results in the grouped bar chart seen in the jsfiddle here: http://jsfiddle.net/11of5ysf/

This is working fine for me.
Are you sure you are requiring the lib correctly ?
something like this:
var ReactChart = require('react-chartjs');
var BarChart = ReactChart.Bar;

Also, it looks like you are using this.state.data, please check if that is defined as well.


Allow interfaces define static methods

In PHP5.3+, allow this, I test it's OK.
See https://github.com/dreamsxin/cpphalcon/blob/master/include/DIInterface.h#L143

@EmielBruijntjes See here.


chore: add python 3.11 testing, update Actions

Signed-off-by: Henry Schreiner<EMAIL_ADDRESS>Type of changes

[ ] Bug fix
[ ] New feature
[ ] Documentation / docstrings
[ ] Tests
[x] Other

Checklist

[ ] I've run the latest black with default args on new code.
[ ] I've updated CHANGELOG.md and CONTRIBUTORS.md where appropriate.
[ ] I've added tests for new code.
[x] I accept that @willmcgugan may be pedantic in the code review.

Description
The actions were a bit out of date (GH doesn't support old actions, last I checked no 3.11 for setup-python@v2), and Python 3.11 was missing from tests entirely.

Codecov Report
Base: 98.39% // Head: 94.96% // Decreases project coverage by -3.43% :warning:

Coverage data is based on head (3944432) compared to base (6e953c6).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2617      +/-   ##
==========================================
- Coverage   98.39%   94.96%   -3.44%
==========================================
  Files          63       63
  Lines        6806     6796      -10
==========================================
- Hits         6697     6454     -243
- Misses        109      342     +233

Flag
Coverage Δ

unittests
94.96% <ø> (-3.44%)
:arrow_down:

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

Impacted Files
Coverage Δ

rich/_null_file.py
100.00% <ø> (ø)

rich/pretty.py
98.98% <ø> (-0.01%)
:arrow_down:

rich/rule.py
100.00% <ø> (ø)

rich/_windows_renderer.py
0.00% <0.00%> (-100.00%)
:arrow_down:

rich/_win32_console.py
3.01% <0.00%> (-86.94%)
:arrow_down:

rich/console.py
96.44% <0.00%> (-1.57%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Looks like pretty much everything has already been updated in master now, so will close this.


searches can not have a name longer than 67 characters

it looks like the jinja forces a detections name to be APP_NAME + name + ' - Rule'. If there is a hard name length for detections then a lot of characters are being used for an app name and post-fix. Please design this better? or allow for longer names if Splunk itself does not have a name length limit.

this looks resolved in 4.0.3

resolved in 403


Security vulnerability in transitive dependency

We use the latest version(2.21.0) on a .NET6 web api. It seems the package adds as a transitive dependency the package: System.Drawing.Common version 4.70. This is flagged with a security  vulnerability: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-24112.
Because of this our dependencies security scanner service rejects all the builds during CI. Is there a way to get this updated or removed ?
Thanks

This has been resolved already: https://github.com/microsoft/ApplicationInsights-dotnet/pull/2707
We don't have a planned release date yet.
To mitigate this issue, you can take the same change discussed in that PR.


[1pt] Setup the kanban board

Create the Kanban board
Add the different project requirements as tasks
Estimate time needed for each tasks
Assign tasks to team members

Teammates: 2
Please check out the Project link for more information.

Hi @NurkaAmre  @Olivier-Kango
Your project is complete  👍 💯   There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉
Highlights 👏🏻
✔Good Job for Providing link to their GitHub project
✔ Good Job for Providing information about the number of people in your group.
✔Good Job for set up kanban board for  RoR group project
Optional suggestions
Every comment with the [OPTIONAL] prefix won't stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better. Some of them were simply missed by the previous reviewer and addressing them will really improve your application.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


refactor: add class_hash to ContractConstructorExecutionFailed error

This change is

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 75.18%. Comparing base (b99ad81) to head (f0c6002).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1746   +/-   ##
=======================================
  Coverage   75.17%   75.18%
=======================================
  Files          59       59
  Lines        8548     8550    +2
  Branches     8548     8550    +2
=======================================
+ Hits         6426     6428    +2
  Misses       1698     1698
  Partials      424      424

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


viewDidLoad equivalent?

Hi,
Currently I am looking into TabbedView and I have a question. I was managed to create a simple app containing two tabs and now I am trying to load the data once after the tab was loaded. I tried using onAppear method but unfortunately it is called every time a tab was selected. Any ideas how to handle such logic?

same

Maybe you can put the data on the outside or use a singleton.


Refines Principal Software Engineer role definition

I've made some updates to the PSE role definition to:
1 - align it with some things that are now relevant and important to Octopus, like the technical strategy
2 - ensure it reflects my personal experiences in the role and what I consider important aspects of PSE at Octopus
3 - reinforce some of the cultural aspects of the role
I'll await feedback from our current PSE's prior to merging.

Thanks for the suggestions @Waldo000000 👍 all good ones, and didn't change the content of what I'd added. Much appreciated!


[Backport 2.x] Generate CreateSnapshot(Fix CreateSnapshotResponse deserialization when wait_for_completion is false) (#1332)

Description
Backport #1332 to 2.x
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@Xtansia
Is this backport method correct?


Cognito refresh token expiration days inconsistency

Hi team,
According to the Cognito docs (https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-client-apps.html), the Refresh token expiration (days). should be able to set to any value between 1 and 3650.
However when we use the amplify cli to manually set up auth, the maximum value we are able to input for the Refresh token expiration days is capped at 365. As you can see at the last two lines of the amplify cli below:
Specify the app's refresh token expiration period (in days): 3650
>> Token expiration should be between 1 to 365 days.
Is this a known issue? I am using the latest build.

+1
Agree. This should match the refresh token expiration limit of Cognito.

any update of when will this feature be implemented? thanks


No way to launch a sky app into a specific URL

 Issue by eseidelGoogle
Monday Aug 24, 2015 at 19:39 GMT
Originally opened as https://github.com/flutter/engine/issues/776

Say I want to iterate on the settings page of my app.  How do I do that?
Ideally this would also work with the new 'listen' hotness.
@collinjackson @iansf

You can now do this with the --route option to flutter start.


Add CloudFormation support to ELB V2

This pull request adds support to some ELBv2 resources (load balancer, target group, and listener).
I tested this implementation in an internal project and it works as expected. I found that outputs weren't properly evaluated (didn't support functions such as Fn::GetAtt). I fixed it to always evaluate output values.

Coverage increased (+0.01%) to 92.36% when pulling cc777f6049b86553a30cb1faf7b1f218ae7bf9ef on cloudformation-support-to-elbv2 into 2b9f19ef771d6c62f82659571593b379e4fd36f6 on master.


ER/DOC: Sorting in multi-index columns: misleading error message, unclear docs

related #739
Have a look at this example:
import pandas as pd
import numpy as np
from StringIO import StringIO
print "Pandas version %s\n\n" % pd.__version__

data1 = """idx,metric
0,2.1
1,2.5
2,3"""

data2 = """idx,metric
0,2.7
1,2.2
2,2.8"""

df1 = pd.read_csv(StringIO(data1))
df2 = pd.read_csv(StringIO(data2))
concatenated = pd.concat([df1, df2], ignore_index=True)
merged = concatenated.groupby("idx").agg([np.mean, np.std])

print merged
print merged.sort('metric')

and its output:
$ python test.py
Pandas version 0.11.0

     metric
       mean       std
idx
0      2.40  0.424264
1      2.35  0.212132
2      2.90  0.141421
Traceback (most recent call last):
  File "test.py", line 22, in <module>
    print merged.sort('metric')
  File "/***/Python-2.7.3/lib/python2.7/site-packages/pandas/core/frame.py", line 3098, in sort
    inplace=inplace)
  File "/***/Python-2.7.3/lib/python2.7/site-packages/pandas/core/frame.py", line 3153, in sort_index
    % str(by))
ValueError: Cannot sort by duplicate column metric

The problem here is not that there is a duplicate column metric as stated by the error message. The problem is that there are still two sub-levels. The solution in this case is to use
merged.sort([('metric', 'mean')])

for sorting by the mean of the metric. It took myself quite a while to figure this out. First of all, the error message should be more clear in this case. Then, maybe I was too stupid, but I could not find the solution in the docs, but within a thread on StackOverflow. Looks like the error message above is the result of an over-generalized condition around https://github.com/pydata/pandas/blob/v0.12.0rc1/pandas/core/frame.py#L3269

Thanks for raising this issue. Saved me today.

u realize this is several years old and is closed

Yes, sorry to bug. Just wanted to say "thank you".


use RNA_Central- PomBase mapping file to create external DB-refs on RNA pages

https://github.com/RNAcentral/rnacentral-webcode/issues/417
ftp://ftp.ebi.ac.uk/pub/databases/RNAcentral/current_release/id_mapping/database_mappings/pombase.tsv

I've finally got around to adding a link to RNAcentral from the RNA pages.  It's configured in the "external_gene_references" section of the main website config file.  It currently look like this.  Let me know if you'd like any changes.

Sorry, forgot to say that this change won't be visible until the morning.

Great!


Quickstart A Comprehensive Guide: Ingesting Data into Snowflake uses very old openjdk

Describe the bug
Dependency errors pop up with openjdk 11.0.6 when creating conda environment
URL of where you see the bug
https://quickstarts.snowflake.com/guide/a_comprehensive_guide_to_ingesting_data_into_snowflake/index.html?index=..%2F..index#1
To Reproduce
Steps to reproduce the behavior:

Go to Environment Setup
Create the yml file
Run conda env create -f environment.yml
See error belo:
(base) ptorres@GN6WVF95KQ DE certification % conda env create -f environment.yml

Collecting package metadata (repodata.json): done
Solving environment: failed
ResolvePackageNotFound:

openjdk=11.0.6

Expected behavior
The environment creation should not produce a package resolution problem. The yml file should be updated to carry resolvable dependencies for openjdk
Screenshots
Desktop (please complete the following information):

OS: macos
Browser (none), terminal commands

Additional context
Add any other context about the problem here.
none

None


feat(networks): add zora network

Add ZORA network to smoldapp's multisafe and disperse
Todo:

Add ZORA network assets from viem on assets project

Friendly ping :).


Reports are duplicated in Datadog CI Visibility

Version: 1.1.1
After using this action in a GitHub Actions workflow to upload JUnit test reports to Datadog I noticed that test runs in Datadog CI Visibility are duplicated. Based on the workflow logs, it looks like the upload steps on lines #46 and #60 in the action YAML file are both always executed, even though they are supposed to be mutually exclusive. The same behavior can also be seen in the test workflow logs in this repo (logs is set to "true", but upload without logs still runs), e.g.: https://github.com/DataDog/junit-upload-github-action/runs/6904512151?check_suite_focus=true#step:3:56
According to https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runsstepsif and https://docs.github.com/en/actions/learn-github-actions/expressions#about-expressions, whole if statement must be an expression. So, the correct way to define if conditionals is as following:
if: ${{ inputs.logs == 'true' }}

or simply
if: inputs.logs == 'true'

Not sure why exactly ${{ inputs.logs }} == "true" statement doesn't work, my guess is that it's possibly treated by GitHub as a string literal because it starts with ${{, but doesn't end with }}.

Hi,
This is now fix I believe. Sorry I could not merge your contribution, I will explore what the permission issue is and strive to fix it.

Hey Carlos, no worries! Thank you for incorporating the fix and releasing new version of the action so promptly 👍


WIP: added integration test bundle that uses state in porter.yaml

Signed-off-by: Steven Gettys<EMAIL_ADDRESS>

Is this still a WIP or is it ready to review?

Is this still a WIP or is it ready to review?

This is still a WIP, I need to get back to this. I want to get the bundle local to the operator repo so its easier to manage


feat: polls as a posting widget

Is your feature request related to a problem? Please describe.
One of the most common needs of community organization is to quickly assess the opinions of the community. In particular, my current concern is that I often need to determine:
A. whether there is an agreed-upon need for a community call (as this need is a precursor to attendance)
B. when that call should be scheduled
Currently, you could in theory do this in a "like-post" fashion by for instance making a post and several replies reading "like this post if X", but it would be a UX improvement if we could do this with a polling widget that can be added to a DevHub "post".
Describe the solution you'd like
Specific implementation notwithstanding, I would like some ability to add a poll to posts to DevHub. It could be appended to a text post, embedded directly, or an entire class of post.
Ideally these polls would have a set close time and cannot be voted on more than once by each person. Ideally they should allow you to have anywhere from 2 to ~5 poll options. As a MVP implementation, I don't see any need to add any kind of anti-botting measure, etc, as there shouldn't be much incentive to stack something like a community call timing poll.
Maybe sometime in the future voting in one of these polls could be gated by DevHub badges / wallet NFTs / specified user allowlists. Multi-selection polls would also be useful.
Describe alternatives you've considered
See above description of a "like-this-post" poll. Technically doing it that way could work, but it's inelegant and I would argue seeing a poll pushes people to start using DevHub, where a "like-this-post" is generally less interesting if you're not already signed in.
We could also use another website that allows you to make polls, but I think doing it directly on DevHub is more visible and engaging.
Additional context

Something similar to Twitter's poll implementation would be cool. 👍

This is indeed a useful feature! If there is no such widget to reuse and we implement on the contract side, and we also need to come up with a good design, I expect this to take more than a week.


Fix django settings import conflict with OSF

Django env variable is overwritten in the OSF and causes local scrapi errors when running scrapi and the OSF one after another... might be a better way to fix this, but this seems to be how the OSF sets the variable.

Coverage remained the same at 93.449% when pulling 05aa224c200e3bbf44ba89e707996f1292bfa4b0 on erinspace:feature/django_settings into<PHONE_NUMBER>1f52e3c955d0b190c5628dd221389a on CenterForOpenScience:develop.


Cart Screen

Update the UI for the Cart screen

I would like to work on this issue as a part of GSSOC'21!!

Sure, @Neha62-lit. Let's wait for the coding period to start

@himanshusharma89 Can I start working on this issue??

Sure @Neha62-lit, I am assigning it to you, but we have to wait till this PR #60  is merged. For this issue, you need to remove all the custom height and use Flexible or other widgets so that the cart looks responsive in all devices.

Sure @Neha62-lit, I am assigning it to you, but we have to wait till this PR #60 is merged. For this issue, you need to remove all the custom height and use Flexible or other widgets so that the cart looks responsive in all devices.

Okay! 🙌

@Neha62-lit you can start working on this issue. The PR id merged. And make sure to do git pull before working.

Sure!

@Neha62-lit you can start working on this issue. The PR id merged. And make sure to do git pull before working.

Sure @Neha62-lit, I am assigning it to you, but we have to wait till this PR #60 is merged. For this issue, you need to remove all the custom height and use Flexible or other widgets so that the cart looks responsive in all devices.

@himanshusharma89  Can you explain me again, what I have to do in these screen?I'm little bit confused!!

@Neha62-lit For the cart screen, you need to make sure for the following:

[ ] There is no overflow in the screen.
[ ] Make the screen responsive using MediaQuery, but if still facing the issue of overflow try Expanded or Flexible Widgets.
[ ] Divide the code into multiple sections for better readability and call these methods in the Column

@Neha62-lit For the cart screen, you need to make sure for the following:

[ ]  There is no overflow in the screen.
[ ]  Make the screen responsive using MediaQuery, but if still facing the issue of overflow try Expanded or Flexible Widgets.
[ ]  Divide the code into multiple sections for better readability and call these methods in the Column

Okay!! Got it👍


Fix javadocs formatting for modern javadocs tool

@jDramaix Any changes need to be made to this to get it accepted?

SGTM

Note: We don't close <p> tags. I removed </p> during the import

We have also decided to go with
<pre>{@code
// non escaped java code
}</pre>

Because it keep the code in the javadoc readable for human when you read the code and Intellij is able to display correctly the javadocs.
Let me know if that break some modern tools

I will do. Next time I package it up I will try and verify it all still works.
Thanks

Closing this as it is no longer uptodate


"500 Internal Server Error" for invalid "files/{id}" request

If I send a GET request to "files/bogus_id" or "files/00000000", I expected a "404 Not found" error.  Instead I get a "500 Internal server error".
If I send a GET request to "files/000000000000000000000000" , I get the expected a "404 Not found" error.
I should never get a "500 Internal server error" because of invalid user input.

Good catch. I've been aware of this issue for a bit (although I thought it was giving a 400/Bad Request not a 500) and keep forgetting to address it.

I still get the "internal server error" when I use a garbage id for getting a webhook.  For example "hooks/bad_id".
@johnml1135: Should I reopen this issue or submit a new one?

I still get the "internal server error" when I use a garbage id for getting a webhook. For example "hooks/bad_id".
@johnml1135: Should I reopen this issue or submit a new one?

@mpelley, sorry, this has been 'completed' in the sense of 'added to the main branch' but it hasn't been deployed yet (neither to QA nor to production, I don't think - @johnml1135 can correct me - I could be wrong). Is is still an issue for the data files and engines - or just webhooks now - because that might indicate that an incomplete fix may have been pushed or that this is a different issue? Thanks!

@Enkidu93 This is no longer an issue for data files, but just webhooks.  (Oops, I need to add a test for the translation engines.)

I just now tried it with translation engines.  I get "internal server error" instead of the expected "not found".

OK, looks like my fix isn't deployed yet then, @mpelley - it should fix the issue across all of them: files, engines, etc. I don't understand why it would be working for data files now though :thinking:.


bug: Simultaneous write operations broken on web and electron

Describe the bug
I'm working on a chat app. That means, that my app receives events asynchronously. For example such an event could be a new message.
It happens pretty often, that multiple messages are received at the same time, which means that the app tries to add multiple messages at the same time to the database. On Android that works perfectly fine. But on iOS web and electron it doesn't work as expected at all.
On iOS and web only one of the multiple messages are saved. The other datasets are discarded without any error.
On electron the following exception is thrown:

To Reproduce
The following code does not work as expected (on web and electron):
 async addDataToTestDB() {
    // Since I'm not using await here, these operations are called simultaneously.
    this.insertData('id1', 'Bob');
    this.insertData('id2', 'Lina');
    this.insertData('id3', 'Maria');
  }

  async insertData(id: string, name: string) {
    const dbConnection = await this.sqlite.openDB('test-db');
    const result = await dbConnection.run('REPLACE INTO test(id, name) VALUES(?,?)', [id, name]);

    // The following line is only necessary on web platform
    await this.sqlite.saveToStore('test-db');
  }

But if I actively take care that there are no simultaneous db queries, the bug does not appear.
 async addDataToTestDB() {
    await this.insertData('id1', 'Bob');
    await this.insertData('id2', 'Lina');
    await this.insertData('id3', 'Maria');
  }

Expected behavior
Simultaneous database write actions should work.
Desktop (please complete the following information):

OS: macOS 12.3.1
Browser: Safari
Version: 15.4

Demo code

clone repo: git@github.com:tobiasmuecksch/capacitor-sqlite-angular.git
test web: npm run start
test electron: npm run electron:start

Click buttons in this order (while looking at the js console):

"Create Tables"
"Insert some data"
"print select all to console"
"drop database"

@tobiasmuecksch you must do it with the await to make sure that the transaction is completed  or add them to a queue that you execute within the same transaction

@tobiasmuecksch when you insertion an item avoid to open each time the db test if it is open and if not open it that slow down the process

@tobiasmuecksch when you insertion an item avoid to open each time the db test if it is open and if not open it that slow down the process

@jepiqueau Thanks for the hint. In fact my openDB method checks if there already is a connection, and re-uses it.

@tobiasmuecksch you must do it with the await to make sure that the transaction is completed or add them to a queue that you execute within the same transaction

Hm. That's not how I'd expect a database to work. No database I have ever worked with, required the developer to take care of execution locks and/or queues.
As I already explained, data is added to the database as a reaction to asynchronous events which are triggered by the sever via web-socket. Therefore await does not have any effect inside an event callback.
If I understand you right, I have to implement a query-queue for the platforms web and electron.
But why doesn't the plugin implement a queue for these platforms under the hood? It would make the plugin way easier to use and make it act more like a real database.

@tobiasmuecksch can you test  executing this statement
PRAGMA journal_mode=WAL

after the db.open()
This must solve the issue

I just tried that, and the following exception occurred:
[Error] ERROR – Error: Uncaught (in promise): Execute: ExecuteSQL: ExecuteSQL: Execute: cannot change into wal mode from within a transaction

@tobiasmuecksch just do your execute command with transaction to false

Allright; I got rid of the exception with a little workaround.

Screenshot: Workaround Code

On line 89 I'm querying and printing the journal_mode to make sure that it really is applied. And it seems to be successfully changed.
But the problem of described in this issue is still there 😢

@tobiasmuecksch just do your execute command with transaction to false

Ah, you are right. I overlooked that there is a transaction parameter on this method. I changed my code accordingly. The problem is still the same :(

Screenshot corrected code

@jepiqueau I've done some research and found out that there is a wal2 mode.
Soruce: https://stackoverflow.com/a/54475279/1646019
I'm still testing it, but it seems to fix the issue.
If this really fixes the issue. Can you make it the default mode for all connections?

On android, setting the journal_mode to wal2 fails with this error:
ERROR Error: Uncaught (in promise): Error: Execute: unknown error: Queries cannot be performed using execSQL(), use query() instead.

On electron changing to wal2 does not fix the exception

@tobiasmuecksch
        await this.db.open();
        if (this.platform !== 'android') {
          await this.db.execute(`PRAGMA journal_mode=WAL;`,false);
        }

@jepiqueau as I already said, WAL does not fix the problem. Only WAL2 does fix this problem for ios and web. electron automatically sets WAL instead of WAL2. So I still need a solution for electron.
What do you think about, making wal2 the default pragma on iOS and web ?

@jepiqueau No need to hurry 😉
All right. I do understand. Since it's not possible to run simultaneous write operations anyways, what do you think about implementing a queue into the plugin? We could add a configuration variable with which developers can turn it off, if they want to.

@tobiasmuecksch @jepiqueau I stumbled upon the second error in this thread and I think this is still a unresolved bug, right?

I did some research, and if I understand https://github.com/mattn/go-sqlite3/issues/709#issuecomment-485295884 correctly, it could be that the plugin misinterprets the response of sqlite as an error, although no error has occurred.

Setting the PRAGMA throws, although it's not an actual error.

Yes this is still an issue. I circumvented it, by writing my own Queue in order to always execute SQL statements and queries in sequence instead of parallel.
I would advice you, to do the same.

@tobiasmuecksch could you share your que ingénieur implementation or make a PR to jeep-sqlite and @capacitor-community/sqlite electron so every developer can benefit from this.

@jepiqueau @tobiasmuecksch Queueing was the initial issue here. But you guys discusssed a second issue, which is a seperate bug:

I did some research, and if I understand https://github.com/mattn/go-sqlite3/issues/709#issuecomment-485295884 correctly, it could be that the plugin misinterprets the response of sqlite as an error, although no error has occurred.

When executing this sql, it throws an error, although no error has happened. This should be fixed independently of queueing.

@tobiasmuecksch if you update to<EMAIL_ADDRESS>and upgrade in the electron folder of your app  sqlite3 to 5.1.0 it works fine with WAL2. You can have a look at test with Wal2 & readonly hope this help

@jepiqueau Thanks. I will test that and close the issue if the problem is fixed

@jepiqueau I'm still having the same issues :-(

@tobiasmuecksch you must provide me a repro app on github as i never experiences this problem

@tobiasmuecksch any progress on this? I am still waiting some code to reproduce the error

@jepiqueau I haven't had the time yet, to update the repro app. I will do that asap.

@jepiqueau I have updated the repro app to the latest version of<EMAIL_ADDRESS>and to<EMAIL_ADDRESS>Additionally I have added a statement to set the journal_mode to WAL2. The issue is still there.
(See changes regarding WAL2 here: https://github.com/tobiasmuecksch/capacitor-sqlite-angular/commit/37b44a761910f012deedb019f5718faab71c4df5#diff-f076088e0454292ba7d4c88f1eb19181a115deb2a35a4b265da42abf9344a7b6R137)
How to reproduce:

clone repo: git@github.com:tobiasmuecksch/capacitor-sqlite-angular.git
test electron: npm run electron:start

Click buttons in this order (while looking at the js console):

"Create Tables"
"Insert some data"
"print select all to console"
"drop database"

@tobiasmuecksch i test it it works fine for iOS, Android and Web but not for Electron. To make it working in Electron seems the you must put the transaction to false in the db.run

@tobiasmuecksch i think i may have find the reason but i cannot this this morning run electron:start both on Windows and MAC i got the following error : Error: Cannot find module 'node:fs/promises' and i have no glue of what it is. when i git clone your project last evening it was working fine and reproducing the error with Wal  in Electron. Now even if i re-clone it today i got always Error: Cannot find module 'node:fs/promises' . Any idea? I put a release 4.2.2-1 but i am enable to test it. Any idea about this. Can you upgrade to 4.2.2-1 on your side and tell me if it works

@jepiqueau thank you for your effort. I'm currently out of office. I will test it on Saturday, and let you know whether I'm experiencing the same issues. Maybe I can find a solution.

@tobiasmuecksch i update to "electron": "^15.5.7" and it is working back
in 4.2.2-1 i implement BEGIN CONCURRENT instead of BEGIN TRANSACTION  when the journal_mode start with wal. But i get a syntax error near CONCURRENT meaning that for me it has not be implemented in node sqlite3. On top of this when we change to wal2 instead of wal it does not work too the journal_mode return is delete. again it does not seem to be implemented. So i do not think i can do something for your case i spent a full day on it and i do not have a solution

@jepiqueau Thank you so much for your effort. According to this issue https://github.com/TryGhost/node-sqlite3/issues/408 this seems not to be implemented for sqlite3.
The author of the follow comment, recommends to switch to better-sqlite3. Are there any reasons, you decided to use sqlite3 instead of better-sqlite3?
https://github.com/TryGhost/node-sqlite3/issues/408#issuecomment-354013490

@tobiasmuecksch At the time in Electron i was using @journeyapps/sqlcipher to give the ability to encrypt the database which is based on sqlite3.  Finally i fall back to sqlite3 when developers had some problems to create a Windows executable.
In fact i look this morning at the Web part jeep-sqlite based on sql.js the mode Wal2 does not exist too. and when setting to mode WAL i got cannot start a transaction within a transaction if i do not keep the await in front of the db.run the only way to have it working with no await is to select transaction false.
Moving to better-sqlite3 could be feasible but it is quite a work and would necessary before starting to test in a simple case that it is working with the WAL mode or WAL2 mode.

Okay. I think we should add a warning to the readme for example that WAL/WAL2 is not officially supported by this plugin.
For now I'm thinking about a clean way to add a queue mechanism to this plugin. Can you imagine to add that to the plugin, or do you want to keep this out of the plugin?
I could make a proposal / merge request for that.

@tobiasmuecksch i want googling through a lot of docs this morning and i could not find a way. I will stop on this. For me the queing will make the the execution of each transaction one after other which is similar to what the async is doing.
In that case i do not really understand what the wal mode differs from the delete mode.
There is may be something that i do not understand .
if you develop a queue mechanism for the Electron part of this plugin and you have a PR ready with an example that i can test i will merge it but i will have to implement it in the jeep-sqlite plugin too.
For the time being i will stop working on this as it took me some day work. i am sorry to not have found solution for this

@jepiqueau All good. I completely understand that, and I'm thankful, that you tried to find a solution. As I said; I'd suggest to add a note about this on the readme, to prevent future duplicate issues.

@tobiasmuecksch finally i got it see the code in capacitor-sqlite-angular🤪😅

@jepiqueau I'm confused. Does that mean, the problem needs to be fixed by changing files in the electron project?

@tobiasmuecksch no  i change only the sqlite.service.ts and the package.json scripts to make them compatible mac and windows

@tobiasmuecksch in web and electron i run the dbConnection.run with transaction false and i encapsulates the  await PromiseAll with BEGIN TRANSACTION ... COMMIT TRANSACTION or ROLLBACK TRANSACTION

@tobiasmuecksch i also upgrade Electron to "electron": "^15.5.7" in Electron/package.json file

Okay, thank you for the information. I will try that too.

Sample code: https://github.com/jepiqueau/capacitor-sqlite-angular/blob/main/src/app/services/sqlite.service.ts#L103-L113

This should be in the documentation on the web version :)


Prepare volunteer task descriptions and sign-up sheet

During the event we'll need volunteers to take care of various things to make sure the event runs well. On the first day I would like to present the different tasks involved and let people sign up for shifts on a board. People would sign up for a task for a particular session.
The stream-sitter
They are the on-site ambassador of remote participants, making sure they are able to participate.
They need to join the Zoom meeting via their own laptop and be given Host permissions. During the session, their task is to:

make sure interventions (raised hands, comments in the chat) from the remote participants are brought to the attention of the in-person participants
mute and un-mute Zoom participants as needed (in case they don't do it themselves properly)
tweaking video settings via the remote control of the meeting capsule, depending on what's happening in the session (switching between different video modes to take the best fit)

The note-taker
They are the notary of the collective wisdom that will emerge from this gathering!
They take notes about what is being said in the Etherpad associated to the session. They need to do that from their own device.
Joining the Zoom call (without audio or video) could likely be useful as well to access the Zoom chat and copy/paste content between there and the pad.
Other participants also have access to the pad and are able to contribute to the notes.
The facilitator
They provide the frame for the meeting, setting its scope and defining how people are expected to participate. Is it a presentation made by a single person with questions at the end? Is it a brainstorming session where the participants split out in small groups and then report a summary to the bigger group? Is it a user experience fishbowl? Or all sorts of other formats, for instance from this list of facilitation techniques. The format should be made clear at the beginning of the meeting to set expectations.
Their main goal is to make sure the session stays on track and that participants get something insightful out of it.
The chosen format should be accessible both for in-person and online participants. For instance, if a session involves participants writing collectively on a whiteboard, consider using an online whiteboard that each participant accesses via their own device.
Any other?

Since I'm remote and will be mostly in the background, I can volunteer to help with note taking.  Generally, I'll be the one adding reference links to notes taken by the primary note taker (linking appropriate Issues, Forum posts, web site links).  I'm more interested in listening for the 3 days since I think I've been vocal enough over the years and most of the community knows or has read where I stand on various topics... so, I'll help with note taking.

@thadguidry, we plan to assign a volunteer role on Monday while doing the scheduling.

This will be done on Monday. The sign up sheet will be the pad where we schedule the sessions.


Improve MSI

Codecov Report

Merging #6 (16b8718) into ci/infection (3b999f5) will not change coverage.
The diff coverage is 100.00%.

@@              Coverage Diff              @@
##           ci/infection       #6   +/-   ##
=============================================
  Coverage         98.94%   98.94%
=============================================
  Files                55       55
  Lines               855      855
=============================================
  Hits                846      846
  Misses                9        9

Impacted Files
Coverage Δ

src/Assessor/CyclomaticComplexityAssessor.php
100.00% <100.00%> (ø)

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 3b999f5...16b8718. Read the comment docs.


Implementing profile path

Description: Create a path in urls.py and views.py that links to a profile view in which a user can look at their information. Therefore, by following a specific link such as /profile, user's detail is displayed.

Update: We met two times during the sprint, the second being November 12th, where we talked as a group on how to approach this issue as in the process of coding, we realized there were actually two sort of paths to a profile. Of these, one led to a view that allowed the user to change their name and update their email. Another led to a profile page that any user can access, and if the own user accesses this page, they can change their name, but if a separate user accesses this page, they can send a friend request. So what we decided to do is implement a link in the nav bar that links to a user's personal information or a personal "profile" and will display the user's personal information, and this way, a user can access their details without manually putting it in the URL.

Update: First PR was made, it is awaiting review

Update: Review comments were made, and are currently being addressed. They are mainly concerned with changing what is displayed and having a non-user not access this view.

Update: I removed the list of friends as that would be implemented in another PR, and I implemented the words "Admin of Chigame" if the user is an admin of chigame.

Closing comment: At the start, the goal was to create a link in nav bar, and have personal information displayed that only the user of that information can access. That goal changed because it would be too confusing for a user to have a profile and account in the nav bar, so the link for account can be accessed through the user profile. I also added information in the account view page, such as name, a link to changing name, email, a link to changing email, bio, and it highlights if a user is an admin of chigame.

Issue Score: Excellent
Comments:
Good work on this issue! It was really nice to be able to actually switch between the user and user profile page without needing to manually change the url. Docking a point for this issue spanning two sprints, but otherwise everything looks good.


robot_calibration: 0.8.0-1 in 'rolling/distribution.yaml' [bloom]

Increasing version of package(s) in repository robot_calibration to 0.8.0-1:

upstream repository: https://github.com/mikeferguson/robot_calibration.git
release repository: https://github.com/ros2-gbp/robot_calibration-release.git
distro file: rolling/distribution.yaml
bloom version: 0.11.1
previous version for package: null

robot_calibration
* various fixes from on-robot testing (#136 <https://github.com/mikeferguson/robot_calibration/issues/136>)
  * fix topic names in load_bag
  * update DepthCameraInfoManager to read proper parameters from camera node
  * fix path/names for pluginlib portability
  * better debug messages when capturing
  * better debug messages from ChainManager
* add yaml option for storing capture poses (#135 <https://github.com/mikeferguson/robot_calibration/issues/135>)
  * load calibration poses from YAML
  * add test for YAML loading
  * add porting script to get ROS1 bagfiles converted to YAML file
* remove tinyxml from CMake (#134 <https://github.com/mikeferguson/robot_calibration/issues/134>)
  this is a left over from the XML RPC days
* initial ROS2 port of robot_calibration (#133 <https://github.com/mikeferguson/robot_calibration/issues/133>)
  * port finders to ROS2
  * port optimization to ROS2
  * port tests to ROS
  * reorganize file structure for better clarity around header file usage
  * update readme
  Major changes for ROS2:
  * In ROS1, many of the parameters were an array of complex structures - this does
  not work well with ROS2 and the declaration of parameters. Instead, we use an array
  of structure names, and then we can declare namespaced parameters for each of
  the structures.
  * chain model has been renamed to chain3d
* port robot_calibration_msgs to ROS2, update CI (#131 <https://github.com/mikeferguson/robot_calibration/issues/131>)
* enhance alignment (#130 <https://github.com/mikeferguson/robot_calibration/issues/130>)
  * handle NANs in laser data
  * add r2_tolerance
  * add spinOnce so that we can run single threaded
  * exit loop if shutting down
* fix regression in manual calibration (#129 <https://github.com/mikeferguson/robot_calibration/issues/129>)
* fix warnings reported on ros.org buildfarm (#128 <https://github.com/mikeferguson/robot_calibration/issues/128>)
* improve base calibration alignment (#127 <https://github.com/mikeferguson/robot_calibration/issues/127>)
  * add feature to align to arbitrary angle
  * parameterize things, including verbose
* refactor base_calibration into separate class (#126 <https://github.com/mikeferguson/robot_calibration/issues/126>)
* major refactor into re-usable components (#125 <https://github.com/mikeferguson/robot_calibration/issues/125>)
  * add getPosesFromBag function
  * add captureManager to clean up code and improve re-usability
  * split out exportResults as a function
  * for all models, renamed name() to getName(), added getType() function
  * add getCameraNames() function to optimizer, so that we can:
  * output camera calibrations for ALL cameras
* Contributors: Michael Ferguson

robot_calibration_msgs
* port robot_calibration_msgs to ROS2, update CI (#131 <https://github.com/mikeferguson/robot_calibration/issues/131>)
* Contributors: Michael Ferguson

@methylDragon license file added


Split long messages into chunks when using data channels

Hi,
as discussed in https://groups.google.com/forum/#!topic/easyrtc/T-pU35T6R-4, here is a pull request to integrate into easyrtc a way of sending arbitrary long messages.
The code is quite simple: when the flattened message is too long (currently > 1000 bytes), a message is sent using directly using the dataChannelS.send function. The message sent contains a field transfer, which indicated whether it's the beginning of the transfer, a chunk or the end of the transfer and a transferId, so that multiple transfers can happen at the same time.
Each message (except for the start and end messages) contains a 1000bytes long message with some extra-information (transferId).
On the receiver side, when a transfer message is recognized, it starts to store in an array. Each chunk is stored until all of them arrived. When all the chunks arrived, the message if rebuilt and passed to receivePeerDistribute.

It may also be worth noting that the measured limits between browsers for the length of WebRTC messages is the following:

From \ To
Chromium
Firefox

Firefox
~16,400
> 1,000,000

Chromium
~66,500
~66,500


Preview the color animation in the animation editor

Fixes godotengine/godot-proposals#289 for color tracks (not sure if it is enough to close the proposal)

It is done by splitting the link between the 2 keys in chunks.

When I set update mode to discrete, the color still interpolates in the second section.

@timothyqiu should be fixed now.

Thanks!

Cherry-picked for 3.4.


Report the use of components with vulnerabilities in kube-ovn

Kube-OVN Version
v1.12.14
Kubernetes Version
None
Operation-system/Kernel Version
None
Description
Dear Team Members:
Greetings! Our team is very interested in your project. we performed source code perspective security analysis (SCA) and vulnerability library association analysis on this project and found that components with vulnerabilities are still being used into this project.We would like to report this issue to you,so that you can fix and improve it accordingly. I add the details in json file below. Please confirm whether this problem really exists and confirm with us. Looking forward to hearing from you and discussing more details with us, thank you very much for your time and attention.
Note: Each "affect_components" field in the report represents the vulnerable component introduced by this project. The other is the vulnerability information associated with it.
Qiyu Hou
kube-ovn-master_report.json
Steps To Reproduce
None
Current Behavior
None
Expected Behavior
None

The dependencies have been updated in master branch


Sik-Ho Tang | Review: Layer Normalization (LN).

Sik-Ho Tang. Review: Layer Normalization (LN).

Overview

Layer Normalization (Image from Group Normalization).
Layer Normalization. LN, by University of Toronto, and Google Inc. 2016 arXiv, Over 4000 Citations. Image Classification, Batch Normalization, Layer Normalization.

Batch Normalization (BN) is dependent on the mini-batch size.
Layer Normalization (LN) is proposed by computing the mean and variance used for normalization from all of the summed inputs to the neurons in a layer on a single training case.
This is a tech report from Prof. Geoffrey E. Hinton Group.

Batch Normalization (BN)
Conventional Neural Network Without BN
A feed-forward neural network is a non-linear mapping from a input pattern $x$ to an output vector $y$.
The summed inputs are computed through a linear projection with the weight matrix $W_{l}$ and the bottom-up inputs $h_{l}$ given as follows:

where $b_{i}^{l}$ is bias.

Conventional Neural Network With BN
BN was proposed in BN-Inception / Inception-v2 to reduce undesirable “covariate shift”. The method normalizes the summed inputs to each hidden unit over the training cases.
Specifically, for the $i$-th summed input in the $l$-th layer, the batch normalization method rescales the summed inputs according to their variances under the distribution of the data:

where $\bar{a}{i}^{l}$ is normalized summed inputs to the $i$-th hidden unit in the $l$-th layer and $g{i}$ is a gain parameter scaling the normalized activation before the non-linear activation function.

Note the expectation is under the whole training data distribution.

$\mu$ and $\sigma$ are estimated using the empirical samples from the current mini-batch.
This puts constraints on the size of a mini-batch, and it is hard to apply to recurrent neural network (RNN).

Layer Normalization (LN)
LN
In LN, the “covariate shift” problem can be reduced by fixing the mean and the variance of the summed inputs within each layer.

The LN statistics is computed over all the hidden units in the same layer as follows:

where $H$ denotes the number of hidden units in a layer.

Unlike BN, LN does not impose any constraint on the size of a mini-batch and it can be used in the pure online regime with batch size 1.

Layer Normalized RNN
In a standard RNN, the summed inputs in the recurrent layer are computed from the current input $x_{t}$ and previous vector of hidden states $h_{t-1}$:

In a standard RNN, there is a tendency for the average magnitude of the summed inputs to the recurrent units to

either grow or shrink at every time-step, leading to exploding or vanishing gradients.

The layer normalized recurrent layer re-centers and re-scales its activations:

where $W_{hh}$ is the recurrent hidden to hidden weights and $W_{xh}$ are the bottom up input to hidden weights. $\odot$ is the element-wise multiplication between two vectors. $b$ and $g$ are defined as the bias and gain parameters of the same dimension as $h_{t}$.

LN in RNN results in much more stable hidden-to-hidden dynamics.

Experimental Results
Skip-Thought Experiments

Performance of Skip-Thought with and without LN on downstream tasks as a function of training iterations.

Skip-Thought Results.

Applying LN results both in speedup over the baseline as well as better final results after 1M iterations.

Permutation Invariant MNIST

Permutation invariant MNIST 784–1000–1000–10 model negative log likelihood and test error with layer normalization and batch normalization.
LN is only applied to the fully-connected hidden layers excluding the last softmax layer.

LN is robust to the batch-sizes and exhibits a faster training convergence comparing to BN that is applied to all layers.

In this paper, CNN is tried but the performance is not as good as fully connected network, and authors said further research is needed to make LN work well in ConvNets.
Yet, later research works already show that LN performs BN when batch size is small, or batches need to be distributed to multiple GPUs.


[Documentation] Add POKTRollSDK documentation

Summary
Human Summary

Document the POKTRollSDK package with the following main sections:

What is the POKTRollSDK?
SDK Audience
API
Usage with an illustrative example

Transferred some of the diagrams from the initial notion document
Contribution and help guides

AI Summary

Summary generated by Reviewpad on 27 Jan 24 23:45 UTC
This pull request includes the following changes:

The diff of the file /docusaurus/docs/packages/pkg/sdk/_category_.json adds a new file. This new file is a JSON file that includes a label, position, and link information for the "sdk" category. The link type is set as "generated-index" and the description is "PoktrollSDK General Documentation".
Removed dependency on github.com/cosmos/cosmos-proto v1.0.0-beta.2
Added dependency on github.com/cosmos/cosmos-proto v1.0.0-beta.2
Removed dependency on google.golang.org/genproto/googleapis/api v0.0.0-20230913181813-007df8e322eb
Added dependency on google.golang.org/genproto/googleapis/api v0.0.0-20230913181813-007df8e322eb

Issue

#343

Type of change
Select one or more:

[ ] New feature, functionality or library
[ ] Bug fix
[ ] Code health or cleanup
[x] Documentation
[ ] Other (specify)

Sanity Checklist

[x] I have tested my changes using the available tooling
[ ] I have performed a self-review of my own code

@red-0ne Rather than leaving a lot of small nits & comments, I went ahead and made some edits & improvements myself in the following commit: 939d0cb (#349)

Great refinement commit. Approving :100:


Cargo install's --git flag: "member of the wrong workspace"

Normally cargo install is able to install binaries from a subdirectory of a git repo. It will find all workspace roots, resolve the requested package name in each one, fail if there is an ambiguity, and otherwise install it.
In buck2's case it seems to go wrong because 2 different workspaces both claim to contain some of the same crates.
$ cargo install cli --git https://github.com/facebookincubator/buck2 --bin buck2
    Updating git repository `https://github.com/facebookincubator/buck2`
error: package `/home/david/.cargo/git/checkouts/buck2-4c0ac0340bde8e6a/c117530/allocative/allocative/Cargo.toml` is a member of the wrong workspace
expected: /home/david/.cargo/git/checkouts/buck2-4c0ac0340bde8e6a/c117530/Cargo.toml
actual:   /home/david/.cargo/git/checkouts/buck2-4c0ac0340bde8e6a/c117530/allocative/Cargo.toml

https://github.com/facebookincubator/buck2/blob/c117530548ddc3ec1e85b5af52e5fe678b32dff0/Cargo.toml#L3-L7
https://github.com/facebookincubator/buck2/blob/c117530548ddc3ec1e85b5af52e5fe678b32dff0/allocative/Cargo.toml#L1-L5
It's hard for me to tell whether this arrangement is intentional, or just an oversight. In any case, it leads to issues.

I'll move it.

Must be fixed now.


center equation blocks

Description

this fixes #442

Thanks @omarcostahamido 🙏

@transitive-bullshit thank you for accepting :)
Happy Holidays


GaugeDB updates - code modularization

Changed gaugeDB update logic to align with the recent code changes of gauge.
All the db update logic now resides in a new watcher.
GaugeDB config is now integrated into the existing config file so that all config resides in one file.

Please note that these changes are for version 1 of the config


Resize of game for different resolutions does not work.

Link to my repo
https://github.com/ShubhenduVaid/simple-game

https://user-images.githubusercontent.com/9929523/132100948-cc2fe80f-3c80-4979-9764-bd24476bb0cc.mp4
Does this by any chance has what you're looking?

Does not work for me.
I tried in index.js by adding it but the canvas is taking 100% width and height.
Here is the config i am using.
I am looking for something like window resize listener to set the width and height of game here such that it keeps the scaling intact.
It would be helpful to have the game scale well on different resolutions and screen sizes, done via the library.
kaboom({
global: true,
fullscreen: true,
scale: 2,
crisp: false,
debug: false,
clearColor: [0, 0.4, 0.6, 0.6],
canvas: document.getElementById("game"),
width: 640,
height: 480,
});

Yeah dynamic sizing on window resize is planned

Already added in latest @next (from alpha 1)


[C#] suggest populating .InnerException on RpcException

Currently, underlying exceptions behind RpcException are exposed in a non-idiomatic way, via the optional .Status.DebugException. This is very unusual, and means:

no standard logging etc tooling will know to look for it
most developers won't find it

Proposal: automatically populate .InnerException (the optional, expected API), when possible. This should be as simple as:
- public RpcException(Status status, Metadata trailers, string message) : base(message)
+ public RpcException(Status status, Metadata trailers, string message) : base(message, status.DebugException)

(I'm happy to submit a PR)

@jtattermusch this come up again here: https://github.com/protobuf-net/protobuf-net.Grpc/issues/196 - would a PR be considered here?

I think this is something we can consider.
My main concern is that we must make it clear that RpcException.InnerException is only a mechanism to help with debugging, and the authoritative info about the RPC results is always the Status (along with the StatusCode). The InnerException can never traverse from the remote peer (as gRPC protocol has no way of serializing the exception objects and it also wouldn't be safe to do so). So InnerException is only useful when there is a "local" problem (e.g. cannot create a connection, failed to serialize/deserialize locally etc.).
I'd also like @JamesNK  to asses the impact of having RpcException.InnerException carry debug info sometimes from the grpc-dotnet perspective (I know grpc-dotnet makes use of Status.DebugException currently)
We'd need to implement this in a backward-compatible way, but that seems doable.

Fixed by https://github.com/grpc/grpc-dotnet/pull/1992, the fix will be in the next release of Grpc.Core.Api (the upcoming 2.52.x). The fix will work both for grpc-dotnet and Grpc.Core, but for Grpc.Core, you need to explicitly use Grpc.Core.Api 2.52+ (once it's released).

We can potentially backport the change into 2.46.x as well, but for now there seems to be no reason to do so since Grpc.Core 2.46.x  will work just fine with more recent versions of Grpc.Core.Api.


Fix Graphs page explanations

I’ve noticed that there are some empty sections on the Graph page and would like to fix it.  May I update the following on the Graphs page:
Graphs explanation

[x] Edges explanation and example
[x] Vertices explanation and example
[x] Weight explanation and example
[x] Add explanation of Articulation Points

Types of graphs

[x] Directed explanation and example
[x] Undirected explanation and example

Closing issue as all tasks have been completed.


Add explicit compressioninfo when writing file to zip

We use the ZipWriter to create archive with compression type deflate. But there is a problem - the default Mac UI unzipping (double click on the zip file) is throwing "Unable to expand. Error 2 No such file or directory." if there is an empty file in the archive. It only works  for archives that store the empty files and do not compress them.
As this is not a general bug, but one tool issue, the solution for me is to provide the API with option to explicitly change the compression info for specific files. This way if there are empty files or other specifics one can have different compression infos in one archive.

Interesting.  I like this.  Thanks.


Update package.json

Because of the strict peer dependency on rxjs 5.0.1 I an unable to use this with newer versions of angular like 2.4.1 which have a peer dependency on rxjs 5.0.2.

I signed the google waiver thing.

Thanks for your PR, I'll cut a new release with this!


prepare error

The program is difficult to use on Windows and the problem is as follows:
(icefall) PS D:\PyCharmProjects\icefall\egs\aishell\ASR> bash prepare.sh
prepare.sh: line 2: $'\r': command not found
: invalid option nameet: pipefail

When I saved prepare.sh to unix format using text software, the following message still appeared:
(icefall) PS D:\PyCharmProjects\icefall\egs\aishell\ASR> bash prepare.sh
parse_options.sh: line 5: $'\r': command not found
parse_options.sh: line 18: $'\r': command not found
parse_options.sh: line 19: $'\r': command not found
parse_options.sh: line 26: $'\r': command not found
parse_options.sh: line 27: $'\r': command not found
parse_options.sh: line 32: $'\r': command not found
parse_options.sh: line 34: syntax error near unexpected token $'do\r'' 'arse_options.sh: line 34: for ((argpos=1; argpos<$#; argpos++)); do

I think Windows handles line return differently from macos/Linux.
We have never tested ./prepare.sh on Windows.
Re-save it on Windows may fix your issue.

You are right, I am ready to give up using icefall on Windows and Linux is probably the best option at the moment.


Remove duplicate EMPIRE_ELB_VPC_ID environment variable

Copies were added in f95d4670 and c84932d5.

Hey @mmdriley, please check out https://github.com/remind101/stacker_blueprints/pull/88 - this should encompass this, and other changes to get the empire blueprints working as well.  Let me know if you think anything is missing, and thanks again!


Private DNS Record Sets API should be able to update "host" property and "serialNumber" property

After tested, I found Private DNS Record Sets API cannot update it's "host" property and "serialNumber" property. But DNS Record Sets API can update it's "host" property and "serialNumber" property successfully. So I assume properties "host" and "serialNumber" should also be able to be updated by Private DNS Record Sets API. If it's an API bug, please help to fix it asap. Thanks.

since this is service swagger issue, route to service team.


Invalid sql instance name because of project name containing capital letters

google_sql_database_instance.master: Creating...
  connection_name:                   "" => "<computed>"
  database_version:                  "" => "MYSQL_5_6"
  first_ip_address:                  "" => "<computed>"
  ip_address.#:                      "" => "<computed>"
  master_instance_name:              "" => "<computed>"
  name:                              "" => "master-instance"
  private_ip_address:                "" => "<computed>"
  project:                           "" => "Villagetravelsproject-193803"
  public_ip_address:                 "" => "<computed>"
  region:                            "" => "us-central"
  replica_configuration.#:           "" => "<computed>"
  self_link:                         "" => "<computed>"
  server_ca_cert.#:                  "" => "<computed>"
  service_account_email_address:     "" => "<computed>"
  settings.#:                        "" => "1"
  settings.0.activation_policy:      "" => "<computed>"
  settings.0.backup_configuration.#: "" => "<computed>"
  settings.0.crash_safe_replication: "" => "<computed>"
  settings.0.disk_size:              "" => "<computed>"
  settings.0.disk_type:              "" => "<computed>"
  settings.0.ip_configuration.#:     "" => "<computed>"
  settings.0.location_preference.#:  "" => "<computed>"
  settings.0.pricing_plan:           "" => "PER_USE"
  settings.0.replication_type:       "" => "SYNCHRONOUS"
  settings.0.tier:                   "" => "D0"
  settings.0.version:                "" => "<computed>"

Error: Error applying plan:

1 error(s) occurred:

* google_sql_database_instance.master: 1 error(s) occurred:

* google_sql_database_instance.master: Error, failed to create instance master-instance: googleapi: Error 400: Invalid request: Invalid full instance name (Villagetravelsproject-193803:master-instance).., invalid

Terraform does not automatically rollback in the face of errors.
Instead, your Terraform state file has been partially updated with
any resources that successfully completed. Please address the error
above and apply again to incrementally change your infrastructure.

I tried with other project names without having capitals in it, it is working fine.


occi_backend: occi.core.id parameter not handled correctly

When creating a resource with POST /collection and an occi.core.id attribute set, the occi.core.id attribute is ignored and resource is generated

reproductible with mnesia backend only (occi_backend interface may be wrong)
spec is not clear about uuid generation or other way of naming resources

Location is generated from id if present, from uuid in other case


calibrate.py does not use every pattern

I don't believe calibrate.py actually uses every pattern in each of the directories?

nevermind, I see you use them in line 136


changed subdomain name

i want to change the subdomain name so i can put multiple projects onto the single website without having all of them be under GuiH

You can create multiple subdomains - feels like it'd be sensible to keep around guih even as just a redirect.

I could do that ye. But won't gh pages redirect all pages to the main one ? 9551-Dev.github.io which rn is guih.madefor.cc

If its possible to have gh pages use several different subdomains for diffirent repos i will grab lovecc.madefor.cc since thats what i was planning on adding

As long as the repos have different CNAME files it should be fine - both squiddev-cc.github.io and skythecodemaster.github.io have multiple domains.

Ah i see. I will make a different pr then, thanks


[BUG] The bundle command does not bundle referenced files

Describe the bug.
The CLI tool now accepts asyncapi bundle for v3 documents (thanks to fix of issue https://github.com/asyncapi/cli/issues/1137). However, it does not work as I expected, but of course I could be missing something.
I created a new default document with asyncapi new and moved the single message to a file in the same directory. Added a $ref in the main file. When I ran asyncapi bundle main.yaml on the new file, I expected it to merge the “message file”. But it didn’t.
main.yaml
asyncapi: 3.0.0
info:
  title: Account Service
  version: 1.0.0
  description: This service is in charge of processing user signups
channels:
  userSignedUp:
    address: user/signedup
    messages:
      UserSignedUp:
        $ref: '#/components/messages/UserSignedUp'
operations:
  onUserSignUp:
    action: receive
    channel:
      $ref: '#/channels/userSignedUp'
    messages:
      - $ref: '#/channels/userSignedUp/messages/UserSignedUp'
components:
  messages:
    UserSignedUp:
      $ref: './messages.yaml#/UserSignedUp'

messages.yaml
UserSignedUp:
  payload:
    type: object
    properties:
      displayName:
        type: string
        description: Name of the user
      email:
        type: string
        format: email
        description: Email of the user

Expected behavior
One yaml file containing the whole specification.
expected_bundle.yaml
asyncapi: 3.0.0
info:
  title: Account Service
  version: 1.0.0
  description: This service is in charge of processing user signups
channels:
  userSignedUp:
    address: user/signedup
    messages:
      UserSignedUp:
        $ref: '#/components/messages/UserSignedUp'
operations:
  onUserSignUp:
    action: receive
    channel:
      $ref: '#/channels/userSignedUp'
    messages:
      - $ref: '#/channels/userSignedUp/messages/UserSignedUp'
components:
  messages:
    UserSignedUp:
      payload:
        type: object
        properties:
          displayName:
            type: string
            description: Name of the user
          email:
            type: string
            format: email
            description: Email of the user

Screenshots

How to Reproduce

Extract main.yaml and messages.yaml to the same directory
In that directory, execute asyncapi bundle main.yaml

🥦 Browser
None
👀 Have you checked for similar open issues?

[X] I checked and didn't find similar issue

🏢 Have you read the Contributing Guidelines?

[X] I have read the Contributing Guidelines

Are you willing to work on this issue ?
None

I know this is not too helpful, but wanted to share that I am observing the same problem here as well, using asyncapi/cli:1.8.4. The referenced files remain referenced, and not bundled up.

@Amzani I've raised a draft PR that replicates this problem: https://github.com/asyncapi/cli/pull/1389
I can try giving a look later at the root cause too, but in the meantime I hope that's helpful.
Also, existing assertions that validated the output spec were not actually asserting for to.be.true.

@Souvikns @Shurtu-gal
The issue occurs just with v3 documents. I've been doing some research but haven't managed to find the root cause. Would you have any clue about it? 🤔

@peter-rr I've updated the related PR slightly regarding the way assertions are done, and also which referenced files etc are used for comparison.
I spent some time trying to get to the root cause, but I am suspecting it's originating from https://github.com/asyncapi/bundler. This repo uses 0.4.0. I noticed that 0.5.0 is available, but the upgrade to 0.5.0 is not straightforward. A lot of tests started failing after upgrading, as well as I noticed that 0.5.0 changed the signature and configuration options.
So this requires deeper investigation and also a plan for upgrade.

Hey @francocm , thanks for the updates on the PR 🙌  I'm having a look at them!
Yeah, the root cause must be definitely at the @asyncapi/bundler repo. Regarding the latest available version 0.5.0, it should be correctly updated at CLI repo since last week but there might be an issue related to the bot in charge of bumping to latest versions. Here is the info I have about it so you can take a look 👀  @Souvikns @Shurtu-gal

Hey @peter-rr I am the one who reverted it. The bundler has to be migrated separately as there were some changes made in 0.5.0 due to which the bundle.command was not working properly.
Ref: #1372

Cool @Shurtu-gal 👍  Thanks for the info!
Let me know if you need some help in order to solve the issue :)

I have pulled from upstream into https://github.com/francocm/asyncapi-cli/tree/fix/1323/bundleNotBundlingExternalFiles
and went from 2 failing tests under test/integration/bundle/bundle.test.ts to 20, with the errors now including:
  20) validate
       with no context file
         throws error message if no context file exists:

      AssertionError: expected 'ContextError: No context is set as cu…' to equal 'error locating AsyncAPI document: The…'
      + expected - actual

      -ContextError: No context is set as current, please set a current context.
      +error locating AsyncAPI document: These are your options to specify in the CLI what AsyncAPI file should be used:
      + - You can provide a path to the AsyncAPI file: asyncapi <command> path/to/file/asyncapi.yml
      + - You can provide URL to the AsyncAPI file: asyncapi <command> https://example.com/path/to/file/asyncapi.yml
      + - You can also pass a saved context that points to your AsyncAPI file: asyncapi <command> context-name
      + - In case you did not specify a context that you want to use, the CLI checks if there is a default context and uses it. To set default context run: asyncapi config context use mycontext
      + - In case you did not provide any reference to AsyncAPI file and there is no default context, the CLI detects if in your current working directory you have files like asyncapi.json, asyncapi.yaml, asyncapi.yml. Just rename your file accordingly.
      +

      at Context.<anonymous> (test/integration/validate.test.ts:164:31)
      at Object.run (node_modules/fancy-test/lib/base.js:44:38)
      at Context.run (node_modules/fancy-test/lib/base.js:68:36)

It looks like this is a result of some error messaging/handling changes.
Nonetheless, with the state of 'broken' tests currently in master, these were not detected. I can refactor the tests to align with the updated output, but:

I have not spent enough time in the recent changes to know for sure I'm not simply working around the problem rather than solving it.
We would still end up with 2 broken tests (this bug), that the updated test/integration/bundle/bundle.test.ts captures.

I can't spend too much time on it right now, but happy to do any small changes in my branch if you wish.
Any thoughts @peter-rr @Shurtu-gal

Thanks @aeworxet this issue seems to be resolved through your change.
I've noticed a new potential gap, which I've detailed in a comment in my tests PR here: https://github.com/asyncapi/cli/pull/1389#issuecomment-2102950792

@francocm @mfroberg
After the @asyncapi/bundler dependency upgrade, the file we are getting when running asyncapi bundle main.yaml looks like:
asyncapi: 3.0.0
info:
  title: Account Service
  version: 1.0.0
  description: This service is in charge of processing user signups
channels:
  userSignedUp:
    address: user/signedup
    messages:
      UserSignedUp:
        payload:
          type: object
          properties:
            displayName:
              type: string
              description: Name of the user
            email:
              type: string
              format: email
              description: Email of the user
operations:
  onUserSignUp:
    action: receive
    channel:
      $ref: '#/channels/userSignedUp'
    messages:
      - $ref: '#/channels/userSignedUp/messages/UserSignedUp'
components:
  messages:
    UserSignedUp:
      payload:
        type: object
        properties:
          displayName:
            type: string
            description: Name of the user
          email:
            type: string
            format: email
            description: Email of the user

Could you confirm this is the expected bundled file? I'm not sure since the messages.yaml content is shown duplicated, meaning the referenced object has been dereferenced twice after bundle process 🤔

@peter-rr
Hey. Me again. :wave:
I modified Optimizer (v1.0.0+) some time ago (simultaneously with Bundler v0.5.0) exactly for these cases.
After Optimizer v1.0.2 (current master) with
{
  output: 'YAML',
  rules: {
    reuseComponents: true,
    removeComponents: true,
    moveAllToComponents: true,
    moveDuplicatesToComponents: false,
  },
  disableOptimizationFor: {
    schema: true,
  },
}

the output file looks like this:
asyncapi: 3.0.0
info:
  title: Account Service
  version: 1.0.0
  description: This service is in charge of processing user signups
channels:
  userSignedUp:
    $ref: '#/components/channels/userSignedUp'
operations:
  onUserSignUp:
    $ref: '#/components/operations/onUserSignUp'
components:
  messages:
    UserSignedUp:
      payload:
        type: object
        properties:
          displayName:
            type: string
            description: Name of the user
          email:
            type: string
            format: email
            description: Email of the user
  operations:
    onUserSignUp:
      action: receive
      channel:
        $ref: '#/channels/userSignedUp'
      messages:
        - $ref: '#/channels/userSignedUp/messages/UserSignedUp'
  channels:
    userSignedUp:
      address: user/signedup
      messages:
        UserSignedUp:
          $ref: '#/components/messages/UserSignedUp'

Does this suit your needs better?
@KhudaDad414
How would the above option object look in the form of a command for asyncapi optimize? I haven't delved into that code yet.

@aeworxet currently there is no way to ignore schemas in CLI. I have opened an issue here: https://github.com/asyncapi/cli/issues/1432
btw, I don't think it's a good solution for the issue that @peter-rr reported. https://github.com/asyncapi/cli/issues/1323#issuecomment-2115681856
The problem is that the bundler de-references the local reference in channels/userSignedUp/messages/UserSignedUp. not sure If this is an expected behaviour.

@KhudaDad414

The problem is that the bundler de-references the local reference in channels/userSignedUp/messages/UserSignedUp. not sure If this is an expected behaviour.

I was going from the v3.0.0 Spec: channels/channel/messages/message is supposed to be dereferenced.
Bundler does this and $ref: '#/channels/userSignedUp/messages/UserSignedUp' is pointing to the correct location at that time.
Then Optimizer moves channels/userSignedUp to components but doesn't add components to the $ref, which now should be $ref: '#/components/channels/userSignedUp/messages/UserSignedUp'.
What else should be changed after this issue is fixed?

currently there is no way to ignore schemas in CLI.

Maybe format of
disableOptimizationFor: {
  schema: true,
},

should be rethought in a way that makes both options (in standalone and CLI) consistent?
Like
{ disableOptimizationForSchema: true } // in the standalone Optimizer

--disableOptimizationForSchema // in CLI's command line, as the very presence of the cmd switch already
                               // means 'true' and its absence - 'false'

{ disableOptimizationForSchema: flags.disableOptimizationForSchema } // in CLI's 'optimize.ts'

?

The issue with updating the $refs of the AsyncAPI Document after moving the AsyncAPI components to the components section by prefixing the corresponding JSON Pointers with the characters components/ will be solved by https://github.com/asyncapi/optimizer/pull/263.

I was going from the v3.0.0 Spec: channels/channel/messages/message is supposed to be dereferenced.

@aeworxet if we leave the optimizer out of the picture for now, which of these options should be the output of the bundler?

asyncapi: 3.0.0
info:
  title: Account Service
  version: 1.0.0
  description: This service is in charge of processing user signups
channels:
  userSignedUp:
    address: user/signedup
    messages:
      UserSignedUp:
        payload:
          type: object
          properties:
            displayName:
              type: string
              description: Name of the user
            email:
              type: string
              format: email
              description: Email of the user
operations:
  onUserSignUp:
    action: receive
    channel:
      $ref: '#/channels/userSignedUp'
    messages:
      - $ref: '#/channels/userSignedUp/messages/UserSignedUp'
components:
  messages:
    UserSignedUp:
      payload:
        type: object
        properties:
          displayName:
            type: string
            description: Name of the user
          email:
            type: string
            format: email
            description: Email of the user

asyncapi: 3.0.0
info:
  title: Account Service
  version: 1.0.0
  description: This service is in charge of processing user signups
channels:
  userSignedUp:
    address: user/signedup
    messages:
      UserSignedUp:
        $ref: '#/components/messages/UserSignedUp'
operations:
  onUserSignUp:
    action: receive
    channel:
      $ref: '#/channels/userSignedUp'
    messages:
      - $ref: '#/channels/userSignedUp/messages/UserSignedUp'
components:
  messages:
    UserSignedUp:
      payload:
        type: object
        properties:
          displayName:
            type: string
            description: Name of the user
          email:
            type: string
            format: email
            description: Email of the user

I think option 2 should be the result. as a user of bundler I don't expect bundler to de-reference my local references. If there is disagreement here, I think we should discuss this in a separate issue and see what the community wants.

should be rethought in a way that makes both options (in standalone and CLI) consistent?

Agreed.

I'll ask here since this issue already has the intended audience.
Should there be a separate mode in Bundler that will dereference only external $refs, leaving internal $refs intact (previous behavior?)

Should there be a separate mode in Bundler that will dereference only external $refs, leaving internal $refs intact (previous behavior?)

cc: @Souvikns @derberg @peter-rr @mfroberg @francocm

I think it is reasonable use case to just dereference external refs and leave local ones intact. My original need is to get rid of the external refs (by bundling that content) so that I am able to visualize the file using Async Studio web tool.

Should there be a separate mode in Bundler that will dereference only external $refs, leaving internal $refs intact (previous behavior?)

IMO, that should be the default behaviour. In case we want to de-reference also the local refs, then we could add an option to bundle command for that purpose.

I will be able to implement bundle after the onBundle callback with the similar functionality as onDereference is introduced in @apidevtools/json-schema-ref-parser (I still need to do stuff after bundling and keep cmd switches consistent across versions.)

Still relevant

I'm looking forward to the fix as well. Currently it also kills the https://github.com/event-catalog/eventcatalog asyncapi plugin

@zbigniew-malcherczyk-tg
Hey. I am one of Bundler's maintainers. Could you please point to the open issue?

@francocm @aeworxet @peter-rr is there any update regarding this?

What is everybody waiting to be resolved?
To my understanding, there are two issues:

https://github.com/asyncapi/cli/pull/1389#issuecomment-2102950792

However, when running the tests, for ASyncAPI v3.0.0 docs, it's leaving the following behind:
components:
  messages:
    TestMessage:
      payload:
        type: string
      x-origin: '#/components/messages/TestMessage'

This happens for both x-origin use and without.

which depends on https://github.com/APIDevTools/json-schema-ref-parser/issues/349

https://github.com/asyncapi/cli/issues/1323#issuecomment-2123883864

implement bundle after the onBundle callback with the similar functionality as onDereference

which depends on https://github.com/APIDevTools/json-schema-ref-parser/issues/346

Is there something else?