[Sim] Output sim_engine plots -> streamlit/plotly -> webapp

Background / motivation
We're on a path to output predictoor analytics plots to webapp, using streamlit + plotly.
Currently the sim engine plots are output on-the-fly directly to the desktop using matplotlib defaults. They're not going to the browser. This was a fine enough starting point.
But there are issues:

Because it keeps updating the plot in realtime, and takes up so much screen real estate, it's always popping over everything else. Annoying when you want to do other things at the same time
A user reported ^ as well, in #744
It doesn't work for Calina, because she needs to run compute remotely. What could work for is that the py code runs remotely, and then she can see the results in her local browser.
Hard to add more plots, because of limited real estate. Yet we have more plots we want to add.
Haven't tried interactivity yet, but it'll be hard

The solution: use streamlit.
That will address the issues above, and, a bonus: it helps us prototype for the analytics dapp. (We could even have them all in the same dapp. Pros and cons to this, decision is still TBD.)
Pre-requisites

[x] "Refactor plots in sim_engine" #750

TODO

[ ] Migrate sim flow plots to a streamlit architecture, like the one we're going for with analytics app

Resources
Key ref:
https://plotly.com/python/creating-and-updating-figures/
Maybe useful:
https://github.com/Paulescu/real-time-data-pipelines-in-python/tree/main

How to organize all of this towards updating plots in a backend process + serving this via FE webapp
process 1 - etl.py - fetch + etl + update plots
process 2 - sim.py - running sim + updating plots
process 3 - streamlit frontend w/ different pages serving data + artifacts

@calina-c fyi I have completed the pre-requisite (refactor sim plot code)

Current behaviour:

Static full-size image generated with matplotlib, containing multiple subplots

Difficult to separate and analyse the graphs, everything is displayed in one single picture and the user must zoom in and out

No possibility for real-time updates, i.e. see the changes instantaneously during the simulation

No interactivity with the data itself, the scale, etc.

Possible streamlit approaches
1. Streamlit using the matplotlib generated subplots
Advantages:

We can have this fully merged by tomorrow
We can later transition the pieces (currently matplotlib generated) into native interface
Can be used in real-time with refreshing, but can not be made interactive

Downsides:

Requires breaking up the current matplotlib figure into multiple figures (one per plot) because streamlit can’t display it otherwise

2. Streamlit using its native interface
Advantages:

Would be real-time AND true interactive

Disadvantages:

We have to redo all the graphs using streamlit. Easy for line charts, but might be a challenge with the scatter and contour plots. Current matplotlib code will be lost, used only as inspiration
Takes much more time and code. Such tasks are also slowed by constant conflict resolution -> that’s why I propose starting with the first approach, then transitioning each graph

Samples:

here is the current version on my branch, a hybrid between the existing matplotlib code and using streamlit to display the graphs in real-time:

https://github.com/oceanprotocol/pdr-backend/assets/4101015/96579e90-0ebd-4405-9ea9-be58bb822bfd

here is a simple line chart using streamlit's native plotter for the first graph (profit vs time). You can see there's better zooming/scaling options, exports etc.

https://github.com/oceanprotocol/pdr-backend/assets/4101015/f31fb54a-288a-4a85-9421-81648acc5b4f
My recommendation

keep matplotlib figures for now and rework them piecemeal later, converting each plot to a native streamlit plot, as we go. It will prevent conflict resolution issues and it's still an improvement to real-time display and the canvas itself.

Oh, just one more thing...
(to quote Peter Falk's well-known character)
To run with streamlit, we need to modify commands, i.e. we can not run just pdr. For sim, it would be streamlit run pdr -- sim my_ppss.yaml instead of pdr sim my_ppss.yaml. Is that an issue? I couldn't find another way to start the streamlit server.

keep matplotlib figures for now and rework them piecemeal later, converting each plot to a native streamlit plot, as we go. It will prevent conflict resolution issues and it's still an improvement to real-time display and the canvas itself.

Sounds good to me

To run with streamlit, we need to modify commands, i.e. we can not run just pdr. For sim, it would be streamlit run pdr -- sim my_ppss.yaml instead of pdr sim my_ppss.yaml. Is that an issue? I couldn't find another way to start the streamlit server.

That hurts ux for perhaps the most commonly-called command.
Let's think about ways where can we can preserve pdr run __. Eg maybe right after installation, the user defines a bash-level alias mapping "pdr" -> "streamlit run pdr"?

To run with streamlit, we need to modify commands, i.e. we can not run just pdr. For sim, it would be streamlit run pdr -- sim my_ppss.yaml instead of pdr sim my_ppss.yaml. Is that an issue? I couldn't find another way to start the streamlit server.

That hurts ux for perhaps the most commonly-called command.

I was thinking about that, yes. That's why I thought to ask.
But we can't alias every pdr run, because not all commands need streamlit. Plus, streamlit opens a port and runs the server. Users should take note of that and how to close/kill those processes when they finish using them.
I will check if I can mimic the functionality of streamlit run inside pdr-backend, if possible. I will also look into some sort of aliasing, but if possible just for sim.

I have moved the discussions around altair and plotly from here, to this other ticket.
https://github.com/oceanprotocol/pdr-backend/issues/842
This will enable us to close this ticket and move forward with the altair/plotly discussions separately.


(Question) How to set 404 when use nested routes ?

i didn't find it in the documentation.
i found an example https://codesandbox.io/s/wouter-demo-nested-routes-ffd5h but this doesn't solve my problem, because in this example the 404 page is inside nested routes.
I'm expecting that 404 page to handle all routes

Hi @gusma296, you can't use 404 inside nested routes in this example because the Scope component won't render if the page is out of scope. You have to introduce a top-level switch with default route if you want to have a global 404 page.

I have updated the sandbox to illustrate how you can use the top-level 404 along with the scoped 404 page.


scim2 malformed request testcase

scim2 malformed request testcase: this test case validates malformed request for scim2 endpoint
tested environment
1.ubuntu 18.04
2.java 1.8.0_161

closing the PR until the cleanup


clarify cost model comment in CDDL files

Clarify cost model comment in the Alonzo and Babbage CDDL files. The Babbage comment was misleading/wrong.

ci/hydra:Cardano:cardano-ledger:required finished successfully (with no failures), and is not reporting properly. This seems to be happening more and more frequently... I am going to merge.


Note support for NATS JetStream in description

@bruth Thanks a lot, merged via https://github.com/debezium/debezium/pull/4227 with updated commit message.

Thanks @jpechane! I did take a look at the contributing guide (after the fact) and will respect that process going forward.

@bruth Hi, not a problem. First time is always bumpy :-). I did it this way just because it was a negligible change and I felt it is much mor eproductive to fix it myself instead of pinging back and forth.


Hide nav buttons and make fonts bigger on mobile

As a mobile survey respondent it might be hard to read the questions. While I'm taking the survey I don't need the buttons at the top (Select Ward, Survey, Results). It would be better to give more of the screen to the question and make the questions easier to read.

Partially completed.  Could still make fonts bigger on mobile.


Need to pass the ID form after successful submitting the form data

Need help.
I set Google tag Manager, I need to pass the ID form after successful submitting the form data.
How to return the object with ID form?
tried to pass in the object this way:
$.validator.setDefaults({
        submitHandler: function(form) {
            var thisForm = $(form);
            ...
            $.ajax({
                type: "POST",
                url: thisForm.attr("action"),
                data: thisForm.serialize(),
                success: function(thisForm) {
                    dataLayer.push({'event': 'formSubmit', 'formId': thisForm.attr('id')});
                    // window.location = "/thank-you.html";
                }
            }).done(function() {
                thisForm.find("input:not([type=hidden], [type=radio])").val("");
                submitBtn.removeAttr('disabled', 'disabled');
            });
            return false;
        }
    });

reply - Uncaught TypeError: thisForm.attr is not a function
There is another error, but does not apply to this problem - Uncaught TypeError: e[d].call is not a function
The complete code with validation posted here jsfiddle
Please help to understand!!!

You have an error in your ajax call. The success callback doesn't take a jQuery object (in your case the thisForm) as argument. From $.ajax docs:

success:
Type: Function( Anything data, String textStatus, jqXHR jqXHR )
A function to be called if the request succeeds. The function gets passed three arguments: The data returned from the server, formatted according to the dataType parameter or the dataFilter callback function, if specified; a string describing the status; and the jqXHR (in jQuery 1.4.x, XMLHttpRequest) object. As of jQuery 1.5, the success setting can accept an array of functions. Each function will be called in turn. This is an Ajax Event.

Also, the parameter thisForm that you have on your success callback is shadowing the outer thisForm variable, so only the inner one will be used.

In this case, we remove all of the success.
Code moved to the done method.
$.validator.setDefaults({
        submitHandler: function(form) {
            var thisForm = $(form);
            ...
            $.ajax({
                type: "POST",
                url: thisForm.attr("action"),
                data: thisForm.serialize(),
                success: function() {
                    // window.location = "/thank-you.html";
                }
            }).done(function() {
                dataLayer.push({'event': 'formSubmit', 'formId': thisForm.attr('id')});
            });
            return false;
        }
    });

The question remains open - How to return the object with ID form?
Form validation is assigned through the class:
$('.form').validate({
    ...
});

This is necessary because on one page there are several forms.
Or need for each form to create a validation?

This is necessary because on one page there are several forms.
Or need for each form to create a validation?

You need to attach the plugin to every form separately (e.g. using .each or a loop).
Also, I just noticed it. In your code, you have passed onfocussout: true and onkeyup: true to validate method. But, the only valid values for those options are either false or a function.
See https://jqueryvalidation.org/validate/#onfocusout

Thank you!
Error onfocusout disappeared.
To solve GTM approached it:
    .done(function() {
                dataLayer.push({'event': 'formSubmit', 'formId': thisForm.attr('id')});
            });


Add Ænix to the Adopters list

Pull Request

[ ] Make sure you have followed Kube-OVN Code Style.

What type of this PR
Examples of user facing changes:

Features
Bug fixes
Docs
Tests

Which issue(s) this PR fixes
Fixes #(issue-number)
WHAT
copilot:summary
copilot:poem
HOW
copilot:walkthrough

/assign @maiqueb @aburdenthehand
👋

Thanks for your information!


Login to user id 1

Hey! I have install this package but I have a error...
When I go to site.com/message white my user (id=1) than its function perfect.
When I logged into userid 2 and go to site.com/message I logget automatically into the userid 1? Why?... I have test it whit another Browser, the same... I logged into userid_2 go to site.com/message and I'm logging white userid_1...
Can anyone help me?

Also, when I logged out and I go to site.com/messages, I'm logged in white user_id 1...
Big mistake and unsure :-1:

Hi,
You're going to have to remove these two lines from your application since they are only for testing/demo purposes. Please let me know if you need anything else.

Thanks for your help!


Update _7a_session_tracks_analysis.md

Fix links: the prefix has changed from .lookml to .lkml

Thank you @s1egel for fixing this here! https://github.com/llooker/demo_segment/commit/159070e3d9a80e200dc84cb31238f83c1560c2aa
Closing.


[Feature] Allow "write once" initialization of fields

Logic of typed properties requires initialization and engine allows to initialize such properties from everywhere, not only within constructor.
@nikic has suggested to follow this logic, eg. allow to initialize each property only once. Such implementation will allow to call private/protected setters with additional logic of initialization/validation.

By Nikita:

For example, people may wish to use newInstanceWithoutConstructor() + manual property initialization for custom serialization libs etc. Or even the same internally (unserialization, PDO fetch object, etc). These things are hard (impossible?) to make work if you introduce restrictions about constructors.

By the way, this is a common pattern
public function withFoo(int $foo): self
{
    $bar = clone $this;
    $bar->foo = $foo;
    return $bar;
}

Does this enhancement can may work it at least with
public function withFoo(int $foo): self
{
    $bar = clone $this;
    unset($bar->foo);
    $bar->foo = $foo;
    return $bar;
}

?
unset($this->foo); is legit way to make property uninitialized in new PHP versions, AFAIK.

I also have this case :)

I’m surprised that you have these cases 😃  Currently only ctor and static methods are allowed, sorry. But your comment was like small inspiration ))
PS. Not sure, if I’ll be able to return to my projects soon. Very busy on my new work...

@lisachenko no problem, I would like to have more time as well. So, I could contribute to the package. I think what you did is a really good work.
Just to explain a bit about my case: we need to keep the historical change log of an entity and there are many actions that have to be performed upon a version of the entity. The way we are doing it is by making the entity immutable and, everytime you need to update a field, we have this withSomethingMethod that basically clones the object, changes what is needed, and returns the new instance.
We could of course use a contructor for it, but cloning and chaging makes the implementation a bit cleaner. I see your point of restricting mutability only within ctor and static methods and I actually agree with it, but I was wondering if there could be a solution that would be useful in our case.


Add pacaur -c to remove packages folder

Hello,
It would be useful to have a new argument like maybe pacaur -c   to be able to remove a package 's folder from pacaur's own cache and also having the option to do it on one being uninstalled.

Yes, older versions (when still using the old downloaded tarball instead of the git retrieve) were basically doing that. I removed that automation as to not mess with the git diff feature, but there might be a way to readd this cleanly.

Ok I didn't know that, I'll look forward to it.
Thanks.

I've been using this for a while.
It removes the files created during build/packaging, keeping only the original files downloaded from the AUR tracked by git.
I can make a pull request if it is welcomed.

@Feirlane Thanks. This is a good fix for solving #461, but it does not actually solve this ticket. What we need here is a way to remove entire git folder that aren't installed anymore, taking split package into account too.
I am also unsure how to properly implement the two nicely together. Probably as an extension of the -Scc command.

Yeah, I really was thinking more of #461 when I made my comment.
Maybe git clean should be run automatically after a successful build, and also extend -Scc to delete the git folders of uninstalled packages as two separate features?

I would agree.

Implemented in f92f9bee83bdc7265e3554c811b5aab940ae71b8, as an extension of -Sc and -Scc to remove uninstalled and all clones, respectively.
As for #461, I am unsure about automatic cleaning after a successful build. This isn't what makepkg does, and users that haven't configured PKGDEST or SRCDEST expect the source and build files to be there.
Closing this issue, please comment of #461 if needed.


Transfer go get to go install

What type of PR is this?

/kind cleanup

What this PR does / why we need it:

The command go get has been deprecated in Go for a few releases: https://go.dev/doc/go-get-install-deprecation
The scripts we run in the CI for https://github.com/kubernetes/utils are under hack/. A few of them still use go get I think, and we’re using go1.18 in the repo which should have go get deprecated.

Which issue(s) this PR fixes:

Fixes # N/A
Special notes for your reviewer:
N/A
Release note:
N/A

@nitishfy after resolving the last comment, please squash commits and we should be good to go here :)

@nitishfy after resolving the last comment, please squash commits and we should be good to go here :)

Done!

Sorry for the delay, this PR is ready for the next set of review.
cc: @MadhavJivrajani @liggitt

/approve
/lgtm


Add flake8 to testing

Builds will fail until #8 is fixed.

this is a great way to improve code quality, thanks!

code quality fixes here: https://github.com/williballenthin/python-idb/commit/03014970255f71e73f960c7c95551872a3148d81


Update documentation for application to AWS Open Data Registry

Update the documentation in preparation for the application to the AWS Open Data Registry. The files to be added are a detailed PDF and a README.md in markdown.

Documentation for AWS Open Data Registry is thorough and up-to-date.


http proxy seetings

Is it possible to set a http proxy for the WebSocketClient?

There is no specific support for HTTP proxies in WebSocket-Node, and I'm not aware of support for HTTP proxies in the Node HTTP client module, which we use to connect.

If someone wants to contribute a pull request for using the client through a standard HTTP proxy, I'll consider it for inclusion.  However it's not something that I have a need for otherwise.


bittrex allows limit orders only

Dear Catalyst Maintainers,
Before I tell you about my issue, let me describe my environment:
Environment
[2018-07-14 04:48:51.792653] INFO: run_algo: Catalyst version 0.5.15
[2018-07-14 04:48:54.794938] INFO: run_algo: running algo in live-trading mode
[2018-07-14 04:49:05.274604] WARNING: CCXT: unable to create order bittrex / NXT/BTC: bittrex allows limit orders only
#What should I do with this question?（bittrex allows limit orders only）

Hi,
you should use limit_price then:
order(context.asset, 1, limit_price=data.current(context.asset, 'price')) using data.current in order to get something close to a Market order (of course, you can choose any price you want).
Good Luck!

can you please add code? it will be easier to locate the problem.. Thanks!

#hi,I'm a beginner, and I wrote a simple code to buy NXT .
from catalyst import run_algorithm
from catalyst.api import order, record, symbol
import pandas as pd
from catalyst.api import (
order,
order_target_percent,
symbol,
record,
)
def initialize(context):
context.asset = symbol('nxt_btc')
context.base_price = None
order_percent=None
order_amount=None
def handle_data(context, data):
order(
    asset=context.asset,
    amount=100,
    limit_price=data.current(context.asset, 'price')
 )

if name == 'main':
live = True
if live:
run_algorithm(
capital_base=0.0017,
data_frequency='minute',
initialize=initialize,
handle_data=handle_data,
exchange_name='bittrex',
algo_namespace='buy_btc_simple',
quote_currency='btc',
live=True,
simulate_orders=False,
live_graph=False,
)
#This is the output log：
[2018-07-16 04:00:36.297300] INFO: run_algo: Catalyst version 0.5.15
[2018-07-16 04:00:39.299163] INFO: run_algo: running algo in live-trading mode
[2018-07-16 04:00:46.328686] INFO: exchange_algorithm: portfolio balances, cash: 0.00195411, positions: 0.0
[2018-07-16 04:00:49.291798] WARNING: CCXT: unable to create order bittrex / NXT/BTC: bittrex {"success":false,"message":"INVALID_PERMISSION","result":null}
[2018-07-16 04:00:49.291798] WARNING: exchange_blotter: Ordering again.

first of all, take in mind that this algo will order 100 nxt every minute (since handle_data is called in each iteration). As to your error, as I said here I think it has to do with a wrong insertion of the API keys.

did you manage to fix this issue on your side?


Add initial porting guidelines

Closes #71
This is the initial draft of the porting guidelines for add modules from OpenScPCA-analysis to OpenScPCA-nf. I tried to cover everything I had thought of in #71 and then some, but I am sure that what I have here is still incomplete!
I also made a few changes to the workflow itself:

adding emit: statements to a couple workflows which I did mostly to test syntax (they have to be at the end, which is annoying, since that isn't the case for process outputs)
removing a module-specific parameter (a container name) because apparently that is deprecated behavior (I have a question in the docs related to this)

I think the goal at this stage is to make sure we have most of the overall structure set, both from the POV of adding a modules and the structure of this document. I'm more confident in the former than the latter, though see some caveats below. I wrote the sections in kind of disconnected chunks (no IA!) , so it may be a bit choppy. Which is to say I am open to some significant restructuring!
Caveats:

I assume a certain amount of familiarity with Nextflow, which I think is unavoidable, but I am happy to add more detail where it might be helpful. I also expect to add links to some relevant Nextflow docs, but I have not done that yet.
I don't yet have instructions about using an emitted value as an input to another workflow; I think I wanted to wait until we had an example of that to really test it out

I did some reorganization and made updates and refinements that will hopefully address most of @sjspielman's comments.
I added some comments about the main workflow (referred to here as the "default" workflow to distinguish it from the other entrypoints that do exist in the root main.nf file).
Container definitions are now moved to a central location.
I think I would leave the questions about running and testing to a future update, perhaps in concert with the next module being added. I have some thoughts, but I also want to take some more time to think about what to recommend and then we will have to test that those instructions are correct!

I made things much more (but not completely) active, and finished up the readme bullets that had escaped me earlier.
I didn't use a lot of "you should" but instead made things more direct commandments, in a lot of cases. I hope that is okay.


Broken video positioning and controls settings

i'm setting the options this way:
{
  "techOrder":["vimeo"],
  "sources":[{"type":"video/vimeo","src":"https://vimeo.com/25333478?ref=fb-share&1"}],
  "vimeo":{"ytControls":0}
}

When i start a video what happens is this;

The positioning is broken, and vimeo controls are still there.
Also if i switch on full screen, the vimeo video size stays the same, and the effect is pretty ugly:

Can anyone please give some hint?

The problem was with our css, so i'm closing the issue


Completion of error handling

Would you like to add more error handling for return values from functions like the following?

malloc ⇒ Base64Encode
lseek ⇒ EncryptFile

Thank you elfring. I will add error checking.

I do not like the use of the assert macro because unexpected results will still be ignored if the preprocessor symbol "NDEBUG" will be defined. I suggest to avoid ignorance of return values a bit more.

You're right elfring.
I personally don't like to use them either.
I am focusing on developing to optimizing the algorithm and write "quick code" sometimes.
Just let's remember this. I will fix all.
Thank you

How do you think about to move the implementations for your algorithms to separate source files?
Should other functions call them only from a corresponding software library eventually?


chore: update readme and repo guidelines

This PR aims to 😄:

review & cleaning the README while moving all the details to the /wiki section, for better readability and clarity
create issues templates, to uniform their creation
create a first Contributing file
enable sonarcloud scan on frontend project (a small fix I forgot to remove in the prev branch)

(next step: React! 🔜 )

(JS SonarRun failed, can you check if the secret SONAR_TOKEN_UI exists? If yes, probably I need to provide a new api key)


nushell: 0.12.0 -> 0.13.0

Motivation for this change
Release notes: https://www.nushell.sh/blog/2020/04/21/nushell_0_13_0.html
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[X] NixOS
[X] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

nixpkgs-review failed for me
test shell::pipeline::doesnt_break_on_utf8 ... ok
test shell::pipeline::commands::internal::tilde_expansion::as_home_directory_when_passed_as_argument_and_begins_with_tilde ... ok
test shell::pipeline::commands::internal::takes_rows_of_nu_value_strings_and_pipes_it_to_stdin_of_external ... FAILED

failures:

---- shell::pipeline::commands::internal::takes_rows_of_nu_value_strings_and_pipes_it_to_stdin_of_external stdout ----
=== stderr

thread 'shell::pipeline::commands::internal::takes_rows_of_nu_value_strings_and_pipes_it_to_stdin_of_external' panicked at 'assertion failed: `(left == right)`
  left: `""`,
 right: `"AndKitKat"`', tests/shell/pipeline/commands/internal.rs:31:9

failures:
    shell::pipeline::commands::internal::takes_rows_of_nu_value_strings_and_pipes_it_to_stdin_of_external

@teto on which env did you test? ofborg seems to pass and I managed to build it as well locally :)

nixos-unstable on a slow machine.


Cannot change month without clicking any button below

Example here: http://jsbin.com/indrimuska/63/edit

It's also the same for IE, Setting z-index helps, so it would be great to include it as a fix!


future3 - Feature "sync shared"

Im adding the Feature "sync shared" (https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/1978) from v2 to future3.
So far i got my code working (components/synchronisation/sync_shared) but i am unsure now how to correctly integrate into the system.

I need a hook in the rfid reader and the play_card from playermpd.
To keep cross dependecies low i think a direct import is not wanted. So this left me with this options:
Make the calls via plugs rpc (playermpd)
Or register as a callback (rfidReader)
What would be the prefered solution on this?

How should the setup be integrated? A seperate script in the component like in v2? Or should this be part of the overall setup somehow? Or another option i am currently not aware of?

I would be thankful for any help and advice.

Hey Alvin. Sorry for not getting back to your earlier. Thanks for your contribution. Before we can go ahead, would you mind quickly summarizing what the feature does in V2? I am not aware of it and I can't really derive it from "synch shared". I will then be able to help with the integration into future3.

Well done. Thanks a lot for the effort. Merging now.


Failed to parse at: Token(type=':', value=':', lineno=1, index=4) on $select

URL: /api/inventory/access-switches/?$select=description,uuid
odata_select = request.GET.get('$select')
queryset = apply_odata_query(queryset, odata_select)
Raises an issue:
odata_query.exceptions.ParsingException: Failed to parse at: Token(type=':', value=':', lineno=1, index=4)"
But same works for $filter as below
URL: /api/inventory/access-switches/?$filter=(contains(tolower(description), 'httrf'))
odata_filter = request.GET.get('$filter')
queryset = apply_odata_query(queryset, odata_filter)

@OliverHofkens so: odata-query is in fact a parser just for $filter, isn't it?

At the moment it is, yes. But I'm definitely planning on expanding support to the full OData spec in the future!


Can utterances file be used globally across the test sets

Currently we have to create utterance file for every test set. Can it be used globally across all the test sets. Is there any option to create utterance file which can be used in all the test sets?

Everything is global to TestProject. How to use them, is up to you. You can
dedicate a TestSet as global (name or tag it as global) and use
"namespaces", so they will look as local.
example (jut for humans, botium does not understand this format):
Testsets [{
  name: global
  tags:[global]
  utterances: [
    "greeting"
   ]
},
{
  name: uk
  utterances: [
    "uk.greeting"
   ]
}

Aishwarya-J-S<EMAIL_ADDRESS>ezt írta (időpont: 2019. júl. 12.,
P, 8:52):

Currently we have to create utterance file for every test set. Can it be
used globally across all the test sets. Is there any option to create
utterance file which can be used in all the test sets?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/codeforequity-at/botium-core/issues/328?email_source=notifications&email_token=ADVGFU46SJYVZ6J6LAVLARLP7AS3TA5CNFSM4ICDCAO2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4G6ZWFHA,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADVGFU6B6IBF6CXMYDOCFLLP7AS3TANCNFSM4ICDCAOQ
.

Everything is global to TestProject. How to use them, is up to you. You can dedicate a TestSet as global (name or tag it as global) and use "namespaces", so they will look as local.
example (jut for humans, botium does not understand this format):
Testsets [{
  name: global
  tags:[global]
  utterances: [
    "greeting"
   ]
},
{
  name: uk
  utterances: [
    "uk.greeting"
   ]
}

Another option is to use "Test Set Dependencies" - you can have one shared test set with all your utterances, and define this as dependency in your other test sets ...


Camera.project_ray_origin always returns the origin of the camera when in perspective projection.

Godot version:
3.2.2
OS/device including version:
Windows 10
Issue description:
No matter what Vector2 is given to Camera.project_ray_origin, it just returns the camera's origin if the camera is in perspective projection. I see in the source that it does that on purpose, and always has.
I want to cast a ray from the mouse into the world from the camera in the direction the camera is facing. Using the code from the page on RayCasting results in an inaccurate ray origin because it's the same value regardless of where the mouse is in the viewport.
For example, I add two points to an ImmediateGeometry: Vector3(0,0,0) and project_ray_origin(get_viewport().get_mouse_position()). As you can see below, the ray origin is somewhere to the right, and doesn't depend on the mouse's position at all:

If this is by design, then there's a documentation issue (it should note somewhere that it doesn't work for projection cameras), but then the question remains: how does one cast a ray from the mouse into world using a perspective camera?
Steps to reproduce:

Create a scene with a camera.
In the camera, project_ray_origin(get_viewport().get_mouse_position()) will not depend on the mouse position.

Minimal reproduction project:
Demo.zip

Camera.project_ray_origin works correctly.
To do a raycast you need 2 points, the point to start at, and the point to end at:
project_ray_origin gives the point to start at, which for a perspective camera is always the camera's origin.
project_ray_normal gives the direction that the ray should travel in, so we can multiply the direction by the maximum distance that we want the ray to travel, and add it to the origin to get the correct end point. (If you want to be able to hit anything visible you can use Camera.get_zfar() for the maximum distance.)
You can then use intersect_ray to preform the raycast.
var mouse_pos = get_viewport().get_mouse_position()
var start = camera.project_ray_origin(mouse_pos)
var end = start + camera.project_ray_normal(mouse_pos) * camera.get_zfar()
var space_state = get_world().direct_space_state
var result = space_state.intersect_ray(start, end)

I recommend you read over the Raycast Tutorial again. It explains this, as well as what info is contained in the result of intersect_ray

Cheers, I figured this out soon after I posted this but couldn't figure out how to close the issue. Embarrassing. But now I'm wondering how I couldn't find the button- it's right there!

"
project_ray_origin gives the point to start at, which for a perspective camera is always the camera's origin.
"
then why not directly get the camera origin ?

" project_ray_origin gives the point to start at, which for a perspective camera is always the camera's origin. " then why not directly get the camera origin ?

I know I'm "to late to the party"
but for whoever stumble upon this:
"project_ray_origin" exist because orthogonal camera origin is variable unlike perspective camera which is constant
similarly "project_ray_normal" exist because perspective camera normal is variable unlike orthogonal camera which is constant


Update climate.md (Typo fix)

Typo fix: fan_ony -> fan_only
Description

Related Issue

This PR fixes or closes issue: fixes #
Motivation and Context

How Has This Been Tested

Types of changes

[x] 🐛 Bug fix (non-breaking change which fixes an issue)
[ ] 🚀 New feature (non-breaking change which adds functionality)
[ ] 🌎 Translation (addition or update a translation)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have tested the change locally.
[ ] I followed the steps if I add a new language .

Thanks !


SDE RoadMap

its a simply a roadmap for beginners and also for those who want to ace their career in product base company

The repo does not host books. Please read docs/CONTRIBUTING.md guidelines. If the book is free licensed, consider depositing in archive.org or unglue.it


Migrate to model instead of input, if the input is being used inside two way binding or the input value is being changed inside the component

Will the following code be migrated, too?
@Input()
value: string;

change() {
  ...subscribe(v => (this.value = v));
}

would become
value = model<string>();

change() {
  ...subscribe(v => this.value.set(v));
}


Optional Args, Python support etc

As promised.

I will close the pull request for now. After seeing the pythonSC2 example and structure I think it is worth to unify both approach. The ladder manager always sends the same arguments to a python file and it is up to the "run.py" to translate them into the pysc2 way. I will make the necessary changes and reopen it this evening.


password reset: error message user if identifier not registered

Fix https://github.com/plone/volto/issues/2469
The backend does not provide an error message. 404: no user found with this email address.
Still untranslated.

What's the policy for translations in reducers? I think it's a no go policy.
So, where can I place a translation?

@sneridagh @giuliaghisini

I thougt about this, if the error message should be inline or maybe better be a toast.
this is what this PR does:

What's the policy for error and info messages? @timo, I've seen you issued a related here: https://github.com/plone/volto/issues/1921

@ksuess ummm the login uses a toast, at least currently, because of the outcome should be present when the route changes, to the next step/state (logged in), is that the case? ... in order to make them consistent, for now I would make it a toast as well. Although I see that it might also be sensible to have it inline if there's no next state...
@plone/volto-team insights?

I missed the feedback to the user, that the email is not registered, which he requests to reset the password for. Now I needed to tweak some more as replacing labels by field placeholders, theming and replacing the inline field info with a consistent use of toast messages.
So I ended with two new packages. One for a general form with placeholders and red bottom border for required fields and no labels anymore: https://github.com/rohberg/volto-tweaks-rohberg
And another package that provides the forms for Login, Password Reset and also the contact page with the above sleek form.: https://github.com/rohberg/volto-rohberg-login-tweak
So I am out here. If the above would be of general interest, just ping me.

@ksuess Can I pursuade you to add your packages to the volto addons list here? https://github.com/collective/awesome-volto


Unable to install on Apple m1

os version: 11.5.1
has already install libX11

update os version to 12 is used for me

@luckygcb Thanks for following through. I will close this for now.


Rough cuts of Interface and LabelledInterface

This is the PR I promised. It still needs a good deal of polish, but it should be sufficient to completely clarify what I was talking about (at least for this phase 😉). The core idea is to allow two-way conversions between interfaces (purely abstract traits) and HLists of HList-taking functions. This is the sort of thing that should have a tremendous number of use-cases, but the three I've written tests for are:

Autogenerating RPC clients/servers a la Autowire: https://github.com/lihaoyi/autowire
Autogenerating instances of interfaces (potentially useful in Scalacheck)
Defining AOP-like transformations without runtime reflection or client-project-side macros

Open Questions:

Should these be their own typeclasses or should the macros just produce instances of Generic and LabelledGeneric?
Currently, the ending of e.g. a method with shape (Int)(Int) => Int (two param lists) is (Int :: HNil) :: (Int :: HNil) :: HNil => Int, with there being typeclass instances for conversion to a flattened-param-list version (Int :: Int :: HNil => Int). The question is whether we care about keeping the param lists separate or whether the initial encoding should just be flat in the first place

Note that all these tests are impure but it would be quite possible to do all three things being shown in a "pure" way, it would just require more supporting machinery.

It's always 2.10....

FWIW, I intend to fix this on the present build error on the macro-compat end.

This looks like great stuff, but I'm stilling having trouble disentangling the general components from the particular application. It looks like you're building infrastructure to support proxying Impl via Iface ... is that the key idea here? If it is, do you think you could simplify things to illustrate that more clearly?

Sorry for the delay. Work stuff got the better of me last week and I've been sick for most of this. Anyway, I'll try to explain more fully what's going on.
The key change here is the introduction of two new typeclasses: Interface and LabelledInterface. An instance of Interface[T] provides an isomorphism between an HList of functions whose shapes match the abstract value members of T and a concrete instance of T:
scala> import shapeless._

scala> trait Ops[T] { def add(a: T, b: T): T }
defined trait Ops

scala> object IntOps extends Ops[Int] { def add(a: Int, b: Int): Int = a + b }
defined object IntOps

scala> val iface = Interface[Ops[Int]]
iface: shapeless.Interface[Ops[Int]]{type Repr = shapeless.::[shapeless.::[shapeless.::[Int,shapeless.::[Int,shapeless.HNil]],shapeless.HNil] => Int,shapeless.HNil]} = $anon$1@5ab486ae

scala> val repr = iface.to(IntOps)
repr: iface.Repr = $anon$1$$Lambda$2549/1953160835@176ef57f :: HNil

scala> val f = repr(0)
f: shapeless.::[shapeless.::[Int,shapeless.::[Int,shapeless.HNil]],shapeless.HNil] => Int = $anon$1$$Lambda$2549/1953160835@176ef57f

scala> f(HList(1,2) :: HNil)
res0: Int = 3

scala> val impl = iface.from(repr)
impl: Ops[Int] = $anon$1$$anon$2@7425f03e

scala> impl.add(1,2)
res1: Int = 3

As a careful reading of the above will disocver (and as with Generic), Interface instances have a type member called Repr, which holds the HList-ified type that serves as the generic representation of the target type T. Of course, there exists a type Aux on the Interface companion object, in order to allow you to capture Repr types into type argument lists for typelevel programming.
Critical to understand is that it's generally only useful to materialize an Interface instance for a type with at least one abstract member, but for a lot of use cases, you'll you'll end up using that instance with a fully-concret object. In these cases, the form that the concrete object gets turned into is dictated by the type that the Interface instance is for, rather than the type of the concrete object (which will be some subtype of that).
The other typeclass, LabelledInterface, is to Interface as LabelledGeneric is to generic: it's simply a version which captures the names of the functions and function-parameters from the abstract members.
The main benefit to all of this is that it lets you build up, tear down, and transform behaviored objects using the power of inductive typelevel computation: If you can define an inductive way to materialize the Repr from a Interface instance, you can compile-time generate concrete implementations of an interface implementation (e.g. for mocking or property-based testing). If you can inductively transform that Repr while retaining the same function types, you can do a limited sort of aspect-oriented programming (e.g. materialize an "tracing instrumenter" that adds trace logging to type). If you can inductively collapse the Repr into a value of a different type, you have defined a converter from instances of an interface to that new type (e.g. collapsing interface implementations into RPC message handling functions).
All three of the just-described examples are presented concretely as tests. Here's a rough explanation for the layout of the tests:
There are three "framework" packages, which contain skeleton versions of code that would appear in a library that wanted to leverage Interface or GenericInterface. The packages are:

package rpcFramework: Skeleton for an autowire-like RPC library
package tracingFramework: Skeleton for a library to instrument interface instances with tracing information (keeps a log of calls in a ListBuffer)
package generationFramework: Skeleton for a library to allow autogenerating interface instances (a la Scalacheck, but much more basic)

There is also an rpcService package, which contains the interface we will be operating on and a concrete instance of it.
Finally, class InterfaceTests contains the actual tests.
Note: This code is definitely NOT ready to be merged. At the very least, I want to work to remove some of the low-hanging limitations on materializing Interface instances and to make a small patch here and in macro-compat to get things working with 2.10 (unless you are planning on dropping 2.10 support from shapeless in the immediate future, @milessabin, which I kind of doubt).

One thing that is clear once you realize it but not before (:wink:) is that your inductive framework can be restricted to only operating in cases where all of the functions return e.g. a Task, which allows you do do things like the tracing purely.

I just came up with this idea independently and then @alexarchambault pointed me here. I'd really love to see this. My use case would indeed be RPC-style; e.g. we could build a Scala version of JNA on top of this.

Wow! It's so awesome when the idea you've got is already a PR in shapeless. I have a library Liberator. The cornerstone of it is the typeclass FreeAlgebra https://github.com/aecor/liberator/blob/master/macros/src/main/scala/io/aecor/liberator/FreeAlgebra.scala, it represents the ability to convert F[A], where F: (* -> *) -> * to FOp ~> A. Instanes are macro generated. Besides its obvious application to free monads, it has yet unexplored application to finally tagless encoding (https://gist.github.com/notxcain/7dc83acf08b94dcaaa436a12dbcf5df8).

And the idea with typesafe RPC is awesome, and I've been exploring it for a while.

Where are we at with this?

I am trying to find a window of time and energy for second round of work on it. Hopefully this weekend I can get 2.10 working. I think I'm close.

That would be completely awesome :-)

Codecov Report

Merging #657 into master will increase coverage by 5.85%.
The diff coverage is 98.03%.

@@            Coverage Diff             @@
##           master     #657      +/-   ##
==========================================
+ Coverage   81.59%   87.44%   +5.85%
==========================================
  Files          69       64       -5
  Lines        2646     2478     -168
  Branches       92       85       -7
==========================================
+ Hits         2159     2167       +8
+ Misses        487      311     -176

Impacted Files
Coverage Δ

core/src/main/scala/shapeless/interface.scala
98.03% <98.03%> (ø)

core/src/main/scala/shapeless/generic1.scala
81.81% <ø> (-4.85%)
:x:

core/src/main/scala/shapeless/package.scala
50% <ø> (-4.55%)
:x:

core/src/main/scala/shapeless/annotation.scala
63.63% <ø> (-3.04%)
:x:

core/src/main/scala/shapeless/sized.scala
73.17% <ø> (-1.83%)
:x:

core/src/main/scala/shapeless/hlists.scala
63.15% <ø> (-0.95%)
:x:

core/src/main/scala/shapeless/ops/records.scala
86.11% <ø> (-0.91%)
:x:

core/src/main/scala/shapeless/poly.scala
76.92% <ø> (-0.58%)
:x:

core/src/main/scala/shapeless/ops/nat.scala
92.75% <ø> (-0.49%)
:x:

...re/src/test/scala_2.11+/shapeless/singletons.scala
85.1% <ø> (-0.32%)
:x:

... and 26 more

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 0a50ba9...ccf54a6. Read the comment docs.

This is really really cool! Does it also support traits that take type parameters (or even higher kinded type parameters like MyTrait[F[_]])?

@kailuowang It isn't kind-polymorphic but there is e.g. nothing preventing you from using it on trait Foo[T[_]]... You'd just have to fill in T at materialization time (e.g. FlatInterface[Foo[List]]).

What is the current status of this PR? Can I do anything to help it move along?

@durban As far as I can tell, the build failure stems from a non-existing scala-native build of macro-compat. So maybe start there and lobby @milessabin into making a release after that :smile:

Okay, now I really don't understand: shapeless (master) seems to support scala-native (https://github.com/milessabin/shapeless/blob/master/build.sbt#L120), while macro-compat doesn't. How is this even possible?

@clhodapp I've sent a pull request to your branch: https://github.com/clhodapp/shapeless/pull/1
It rebases the changes to current shapeless master, upgrades the macro-compat dependency to its current master and hopefully fixes the scala native build. Could you add it to this PR, so that we can see if it fixes the travis build?
(If yes, the next step could be a release of the current macro-compat, since for now there is still a source dependency on it.)

@clhodapp Have you had a chance to look at the Travis problem? (Unfortunately I have no idea how this stuff works.)

@durban Oh yes! It was a short-lived issue that fixed itself with time. See https://travis-ci.org/milessabin/shapeless/builds/295581126. The only problem now is that the code coverage tool seems to have gotten a bit confused.

Oh, cool, it seems to be all green on Travis.
@milessabin Would you be able to do a release from the current master of macro-compat? (If I understand correctly, it is required for this PR to work.) After that, we could remove the source dependency from this PR, and AFAICT it would be good to go.

I appreciate that this will probably be disappointing, but I've decided against adding any new macros to shapeless for the time being. By the looks of it, this could happily exist as an independent project with a shapeless dependency.

@clhodapp Do you want to give it a shot to pull it out into a separate project? Alternatively, would you be happy with me ripping this out?

@larsrh I'm currently feeling like I do want to pull it out into its own library. No commitment on timing, though. I have no objection to you ripping out any of this code and using it in any open-source or even commercial project if you so wish, though, so you don't have to wait for me.


For users that are both editor & writer of a publication, give editor privileges.

Hello @amyquispe, @mikkot, @kylehg, @majelbstoat,
Please review the following commits I made in branch 'chad-fix-drafts-editors'.
cb1e79dffa5392dfe4be849a5e927b99f89144d0 (2016-04-21 20:02:29 -0400)
For users that are both editor & writer of a publication, give editor privileges.
R=@amyquispe
R=@mikkot
R=@kylehg
R=@majelbstoat

LG!


Bundle size

Following #27, I rewrote the library with bundle size in mind.
Changes:

Removed polyfills, updated README
Use of transform-react-remove-prop-types for production build
Added bundle analyzer + webpack command
Removed utility not critical to the application (+ calls to react-is)

Test:
your existing test websites should work

What's the browser support in general?
Instead to require polyfills I would rewrite the code or transpile it down to es5.

@StarpTech I removed the polyfills and added an entry in the README that should list which one may have to be added. And because we use @babel/preset-env the code should be transpiled down correctly. Do you see other opitmizations we could add?


Switch haircross and mode buttons

Since the cross belongs to the map, and mode - to the app.

Done in 0.3.


Issue 221-10 digit mobile number

Fixes #221
I have solve the bug of 10 digit mobile number.
Original:-

Updated:-

@kumarishalini6 Please remove the package-lock.json from the commit. This is a very small issue to solve

ok

@kumarishalini6 Sorry for the late response the PR works fine. Can you remove the new registration1 component file so there is no confusion for others and then we are good to merge this PR


Integrate native simulator runner code in tree

Origin
Native simulator:
https://github.com/BabbleSim/native_simulator/tree/main
Purpose
The native simulator runner. That is the code that builds with and executes the "embedded" code when targeting native_sim
as in https://github.com/zephyrproject-rtos/zephyr/pull/59302
Mode of integration
In the main tree, in its own folder.
Keeping it in the main tree would be easier for users, so they have no dependency to extra west projects.
As native_sim would be a basic test tool of Zephyr, it seems best to keep it in tree.
Maintainership
@aescolar
Pull Request
https://github.com/zephyrproject-rtos/zephyr/pull/59302
Description
In https://github.com/zephyrproject-rtos/zephyr/issues/58305 we propose to introduce a new simulation target which improves on native posix.
Part of how it works is by decoupling the "runner" of the embedded code from the embedded code itself.
This runner (the native simulator) is fully decoupled from Zephyr, and as of now, a project that lives on its own:
https://github.com/BabbleSim/native_simulator
The ask here, is for the TSC to agree that the native simulator runner, would be kept, in-tree in Zephyr,
as demonstrated here:
https://github.com/zephyrproject-rtos/zephyr/pull/59302
(note this is not about approving that PR, only about keeping the native simulator runner source in tree)
Dependencies
It does not depend on anything.
The native_sim board will depend on it.
Revision
a36111359934b17569ba39d46522aef7f0867aa0
License
Apache 2.0

This was discussed in the TSC on 2023/06/21 and there was no objections.


Mock NetworkBackend

For some testing purposes it would be nice to have a mock network module that is configurable.
There are different mocking versions that we could have:

Preconfigured message stack

We could load a stack of messages that would arrive in direct order.
Optionally randomly selected messages (or weighted)

Other idea is to use some kind of backend service like a redis (maybe embedded?) that replicates locally what waku does.

Tasks

[ ] Mock network backend

[ ] Preloaded stack version
[ ] Optionally service based version

[ ] Consensus network adapter if needed
[ ] Mempool network adapter if needed

Is this still open


A block that returns the wrong type can sometimes give a misleading error

def foo(&block : -> Int32)
  res : Int32 = yield
  return res
end

foo{0u64}

This gives the somewhat confusing error:
Error in /home/shelvacu/crystal-test.cr:6: instantiating 'foo()'

foo{0u64}
^~~

in /home/shelvacu/crystal-test.cr:2: type must be Int32, not UInt64

  res : Int32 = yield
  ^~~

Instead of the real problem, the block given does not return the correct type. A slightly simpler version:
def foo(&block : -> Int32)
  return yield
end

foo{0u64}

Gives the correct error message:
Error in /home/shelvacu/crystal-test.cr:5: expected block to return Int32, not UInt64

foo{0u64}
^~~

Tested against both Crystal 0.22.0 (2017-04-22) LLVM 4.0.0 (stable release) and Crystal 0.22.0+117 [4a9b86775] (2017-06-09) LLVM 4.0.0 (master branch) on Arch Linux x86_64

Marking as enhancement. The yield type check is verified at a later phase, so the other error (trying to assign UInt64 to Int32) triggers first.
This is super low priority, because using variable declarations like res : Int32 is an anti-pattern in Crystal. Please don't use it.

This can also happen with somewhat more sane code, that was simply for the smallest test case. For example:
def some_library_bar(arg : Int32)
  #pretend this does something useful
  return arg + 1
end

def foo(&block : -> Int32)
  return some_library_bar(yield)
end

foo{0u64}

which results in

foo{0u64}
^~~

in /home/shelvacu/crystal-test.cr:7: no overload matches 'some_library_bar' with type UInt64
Overloads are:
 - some_library_bar(arg : Int32)

  return some_library_bar(yield)
         ^~~~~~~~~~~~~~~~

If you replace yield with block.call, it works as expected. So I guess, yield should be the same...

@asterite This is super high priority, because same unexpected happen by assignment to instance variable:
class Foo
  @foo : Int32
  def initialize(&block : -> Int32)
    @foo = yield
  end
end

Foo.new { 42u32 }
# expected error message is:
#   expected block to return Int32, not UInt32
# but real error message is:
#   instance variable '@foo' of Foo must be Int32, not UInt32


Issue with getting accurate info from getInfo method on resize

So here's my issue - I'm using some custom controls (for prev/next), and I want to detect if the number of items in the view is the same as the total slide count. If it is, I want to hide the prev/next buttons. I have tried getting this info on window resize using the getInfo() method, but I'm getting inaccurate results, ie. sometimes 2 slides are on view, but it will return '3'.
Example:
https://codepen.io/darby/pen/XaYzbp
Resize window to < 640px
This is also the case when using a generous setTimeout - it just isn't getting the correct info.
Perhaps I need a callback method for the responsive breakpoints or something?

For the purpose of show/hide the prev/next buttons, it's better to use native prev/next buttons which will be showed/hid automatically and smoothly.
tiny-slider will update the information (getInfo()) after resize done (no resizing in 100ms), so it will be delay 100ms. So you can still get the correct information using setTimeout(fn(), 100) even though it's not 100% accurate.
Updated version of your demo.
If you want to get the resize event from tiny-slider, I can add it.

Will close it for now, feel free to reopen it.


Add jhaanvi5 to OWNERS

Description of changes:

Add jhaanvi5 to OWNERS

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm
/approve
/woof

/cherry-pick release-0.20

/cherry-pick release-0.19


Plugin easy to download and install into a (separately installed) IntelliJ

[ ] [configuration of proper naming, contacts, logo, etc.](configuration of proper naming, contacts, logo, etc.)
[ ] uploading to plugins repository
[ ] designing the layouts (menu/right-side menu)
[ ] logging in?
[ ] making hints on missing plugins (org.intellij.scala and possibly others) figure out if you can install other 3-party plugins as well? - check only once we are aware that the course is O1
[ ]  ensure no-restart mode
[ ]  plugin is easily removable and leaves no unwanted artifacts (proper cleanup)

taken into smaller tasks


flathub-builder-lint sees this as a problem

https://github.com/flathub/flatpak-builder-lint/blob/7db4a8b9b265fc3ac87f9980a571965f6b87f965/flatpak_builder_lint/checks/flathub_json.py#L43


Cusotmer: "Could not load file or assembly 'System.Runtime, Version=<IP_ADDRESS> "

Facing Issue "Could not load file or assembly 'System.Runtime, Version=<IP_ADDRESS> "when i am trying to consume model in Main project
Customer reported issue on VS gallery Q&A.
System Information (please complete the following information):

Model Builder Version:
Visual Studio Version

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

@rustd, we can't do anything with this issue. If there's details in the VS gallery please include them here. If not, there is just nothing to go on here.