[QUESTION]: Path following MPC and C++ implementation of MPCC

Hi,
I've used the Udacity's MPC C++ implementation that's a path-following MPC, and the results look like this: https://youtu.be/9LhFnp30Ddk
The green marker denotes the waypoints that define the path that the robot should follow, the white marker are the waypoints used to fit a polynomial (whose coefficients are then passed to the optimizer), and the blue marker are the next steps that are by-product of the result of the MPC. The implementation uses Ipopt as its optimizer.
But I'm facing a peculiar problem: whenever I approach a 90 deg. turn, I need to clip the waypoints to which I fit the polynomial (you can see that for example at this moment) because in the robot's coordinate system this is no longer a function, and the polynomial fitting fails.
Question 1: do you know of any tricks that might help me with that? I would like to be able to follow 90 deg. turns, U-turns, chicanes, and many other types of paths that will cause this problem, and clipping the path to the nearest "still-a-function" segment is hardly a satisfactory solution.
MPCC handles this problem more elegantly. If I understand correctly, in MPCC you're using splines to encode the track, and based on those splines you define the boundaries within which the robot needs to stay when finding an optimal solution. This is perfect, and for my purposes this would be ideal, however, I don't have MATLAB so re-implementing MPCC to C++ would be a challenge.
Question 2: are you planning to implement MPCC in C++? From my perspective, and my current understanding of MPCC, the getNewBorders.m, and also the splines library seem to be the hardest parts.

As I am not familiar with the Udacity MPC implementation I can not directly help. I also don't understand what you mean with "robot's coordinate system this is no longer a function, and the polynomial fitting fails". Is there an article describing the controller.
I already implemented large parts of the MPCC in C++, but still needs some work. The spline library is actually not too hard to implement, I even optimized it such that it works with unevenly distributed points on the centerline. Something the current implementation really does not like. I currently don't plan to rewrite the getNewBorders as there are better ways to solve this step especially if the obstacles are moving.
Maybe the code works in Octave if you want to play around a bit with the code. There are no special functions involved, so there is hope that it will work.

Hey Alex,
Thanks for the response!
I'm terribly sorry for not following up right away, I must have missed the notification that you've answered my question.
In the Udacity MPC implementation there is a transformation of the waypoints from the global coordinate system into the car's coordinate system. Once that is done, a polynomial is fit to the waypoints. I think this description does a great job of explaining the details of the Udacity MPC, and I'm pasting here one of the figures from that source:

The x-axis is pointed to the direction in which the car is facing, and the y-axis is perpendicular to that, going out from the left side of the car. Also, the center of the coordinate system is at the center of mass of the car.
But it doesn't quite explain what I mean by "this is no longer a function, and the polynomial fitting fails". It was easiest for me to draw the case I was referring to on a piece of paper:

In the hand-drawn picture the polynomial fit is depicted in red, and the upcoming waypoints form a U-turn. In order to fit the polynomial I have to exclude the last three waypoints, because the curve C(x, y) that goes through all the waypoints is no longer a function (F: X --> Y) in the sense that: for each value in X there no longer is exactly one value in Y.
Currently, I'm just excluding those waypoints. Maybe you've experienced a problem like this, but I'm starting to suspect it's inherently a limitation of this approach to MPC.
MPCC does not suffer from this limitation and it's the best approach to autonomous racing I've encountered so far. Alas, I'm not using MATLAB, and since I don't know Octave it would take considerable amount of time for me to adapt it.
So I'm happy to hear that you are working on a C++ version. I could also contribute a Python version (if you would be willing to accept it); I've already did that with the Udacity implementation and tested out in the CARLA environment.
I don't want to impose with the C++ implementation of MPCC, but if you'll have it in a "almost works" phase, I can test it out and perhaps provide you with some feedback (again, if you'd want to accept it).

Instead of having a function F:X-->Y the general idea (also used in the MPCC) is to use a path which is parametrized by arc-length. Thus you have two functions F_x:s-->X and F_y:s-->Y, where s is the arc length, the heading of the path is then given by atan2(dF_y/ds,dF_x/ds). In the readme I use Theta as the arc length but s is commonly used in literature. This solves the "not a function problem" but may need quite some changes of the Udacity MPC code.
A python version could be interesting, I actually thought about a Julia version since they have a very nice optimization interface I like. But I think I will push the C++ implementation as it is practically the most important. Also for future projects I have.
If you want to provide a Python version I am happy to include it in the repo and give you feedback. If it is getting ready, feedback for the C++ version is also welcome.

So, is it that polynomial fitting then needs to be performed for both F_x and F_y separately which are functions of s (arc length)?

Yes, but this then also requires that you need to the arc-length s_k to recover X and Y at time step k. This is the reason the MPCC has the theta state, thus, if you want to solve the "not a function" problem like this you basically end up with the MPCC or a similar formulation. (I only noticed this after I wrote the answer.)

I might sound a bit naive here, but if I parametrize (I still need to figure out how exactly) my reference path F: X->Y by arc-length (s or theta) as F_x:s-->X and F_y:s-->Y, then for a given "s" I can evaluate the corresponding X and Y anyway. So correct me if I am wrong, the path following approach applied to a contouring problem (MPCC) helps us in a way to associate the arc length (s) to a specific instant of time (k) using velocity (v) as the state, which in turn relates to the progress along the path (F: X->Y)?

Yes, but this then also requires that you need to the arc-length s_k to recover X and Y at time step k. This is the reason the MPCC has the theta state, thus, if you want to solve the "not a function" problem like this you basically end up with the MPCC or a similar formulation. (I only noticed this after I wrote the answer.)

OK, I think I get it.
I was thinking about changing the code and parametrizing the curve, but that lead me to the conclusion that the way it's handled in MPCC (in which the car needs to fit within a corridor specified as constraints) is more natural.
@PranjaLBiswas27

...then for a given "s" I can evaluate the corresponding X and Y anyway.

Yes, that's right.

So correct me if I am wrong, the path following approach applied to a contouring problem (MPCC) helps us in a way to associate the arc length (s) to a specific instant of time (k) using velocity (v) as the state, which in turn relates to the progress along the path (F: X->Y)?

This is a jump from the previous sentence, but considering Alex'es comment, I would say that the formulation of the problem in MPCC (in terms of s and v) automatically deals with "not a function" problem because it inherently treats the path as a parametrized curve.

Well as @alexliniger said, we need to recover X and Y at time step k using arc_length s_k. So my doubt is how do we get a relation between arc length and time. Cause when i say "...then for a given "s" I can evaluate the corresponding X and Y anyway." I am trying to say that X=f(s) and Y=f(s), and hence I can evaluate X and Y for any given s. This again leaves me a geometric path F: X->Y. So there is no relation with time here.
Hence, does it has to do something with how we parametrize the geometric path (F: X->Y), which makes arc_length (s) in itself a function of time (t)? Or it is a consequence of the MPCC approach?

In the MPCC formulation, a virtual state theta is introduced (as said theta and s is the same), this state is there to approximate the arc length at each time step in the horizon. The lag error is used to bind theta to the true arc length based on the geometry of the path.
Alternatively, there is a very similar path following method which does not rely on the additional state theta but transforms the system in a local curvilinear coordinate system (w.r.t. the path). By doing so the states become the current arc length, perpendicular distance to the path, relative heading to the path and the velocities.
Both approaches have their pros and cons but to explain them I would need to go into the math.
In summary, when you use an arc length parametrized path you need a state which corresponds to the current arc length. This gives you the arc length with temporal information.
A path parametrization of the form F:X->Y is very restrictive, as discussed in with the issue MTDzi had, and in my opinion, as long as you use this parametrization you can not solve the "not a function" issue

Well thanks, I will look into the curvilinear coordinate approach to get an insight into that.
Ok, I see. So if I understand correctly, then the temporal relation of the actual arc length comes as a consequence of  introduction of virtual state (theta) which is an approximation of the actual arc length.

I think we can close this issue if there are some further questions you can reopen it or start a new issue

Agreed.


To be false

What: Feature
Adds .toBeFalse matcher

Why
See #1
Housekeeping

[x] Unit tests
[x] Documentation is up to date
[x] No additional lint warnings

Codecov Report

Merging #2 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master     #2   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           2      4    +2
  Lines           9     18    +9
  Branches        1      2    +1
=====================================
+ Hits            9     18    +9

Impacted Files
Coverage Δ

src/matchers/toBeFalse/index.js
100% <100%> (ø)

src/matchers/toBeFalse/predicate.js
100% <100%> (ø)

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 fad3937...7e3a2e1. Read the comment docs.


Authentication for AttachmentInput "contentUrl"?

As mentioned in #3323 I want to transfer a file that was uploaded to the bot to an external API. It's planned to transfer just the contentUrl so that the external API can fetch the file.
Is there any authentication on that contentUrl or can authentication be set up for it? A bearer token or similar would be enough.

@dmvtech Do you think this should be a question on Stack Overflow and then get answered there?

Hi @Clooney24 Yeah, there'll be authentication on it. Also, the channel(s) that you are using might be important as well. I'm not sure how (or even if) getting the bearer token can be done via Composer. Please open a question on Stack Overflow.
The Microsoft Bot Framework team prefers that how to questions be submitted on Stack Overflow. The official Bot Framework Github repos are the preferred platform for submitting bug fixes and feature requests.


ENH: Small refactoring of fill price check.

Coverage increased (+0.08%) to 87.306% when pulling d4b7df4d81e4b1d62523781d9dfc6fc5ddba3258 on slippage-cleanup into b8501d070415174b1014bd304af35c66ab9e0d7f on master.

Coverage increased (+0.02%) to 87.251% when pulling a9c0ce1ddecdf9d3cec478ffe90cbcc7c14e7344 on slippage-cleanup into b8501d070415174b1014bd304af35c66ab9e0d7f on master.

Coverage increased (+0.08%) to 87.306% when pulling a9c0ce1ddecdf9d3cec478ffe90cbcc7c14e7344 on slippage-cleanup into b8501d070415174b1014bd304af35c66ab9e0d7f on master.

Coverage increased (+0.02%) to 87.251% when pulling a9c0ce1ddecdf9d3cec478ffe90cbcc7c14e7344 on slippage-cleanup into b8501d070415174b1014bd304af35c66ab9e0d7f on master.


[RDPHOEN-1240] Completing the "set-fix-refspecs" change with docu in …

…README

Gitlab Pipeline running here:
https://gitlab.devops.defra01.iris-sensing.net/MIRROR/iris-kas/-/pipelines/1542

Please find and read the corresponding manual in our confluence:


Link scaladocs to their sources on Github

Here is an example of what it looks like.

@garyKeorkunian Can we get a rebuild? The error was just a timeout.


Failed to load plugin "tars"

macOS 11.7
Obsidian 1.6.3
Tars 0.1.2

This plug-in cannot be launched in the new vault.

This plugin cannot run on Obsidian 1.6.3 with Electron 30.


Release sync

List of tasks that need to be done in order to finish this pending release

[ ] Monterey user manual
[ ] Monterey overview
[ ] Monterey technical documentation
[ ] Design, implement and document the registry of standard tiles
[ ] Add the support for persisting the main window location and size (like this https://www.npmjs.com/package/electron-window-state-manager)
[x] https://github.com/monterey-framework/monterey/issues/188
...

https://www.npmjs.com/package/electron-window-state-manager works very nicely


Expose events of canvas element in sources of the driver

should solve #16

Seriously elegant.
However, would you mind enhancing the README with information about this newfound capability?

@grozen i enhanced the readme please check

Awesome, thanks!
On a different matter, @Widdershin, I can't really decide what sort of version bump this merits. It is technically a breaking change as the source is now complex...

Nice contribution @vfeskov, really good start on handling events. We should next think about a way to handle detecting clicks on shapes we render on the canvas.
@grozen As far as I can see, this would be a minor version bump, since this change only adds to the public API, so users can upgrade without fear of their applications breaking.
Is there a case where an existing codebase could be broken by this change that I have missed?

Realistically I suppose not, seeing how there's not much to do with an empty stream.
Very well. I'll give it a small bump and a publish.


If cache: yarn is specified, this action fails

Description:
If I set packageManager property in package.json and set cache: yarn in this action, this action will fail.
Related:

https://github.com/actions/setup-node/issues/531#issuecomment-1816774699

Action version:
v4 (v4.0.2)
Platform:

[x] Ubuntu
[ ] macOS
[ ] Windows

Runner type:

[x] Hosted
[ ] Self-hosted

Tools version:

yarn 4.1.1

Repro steps:
This is the workflow that reproduced this issue with the minimum configuration.
https://github.com/esperecyan/actions-setup-node-debug/actions/runs/8907795048/workflow
You can confirm that the issue does not occur in the following cases:

If I set npm to packageManager.
If I set yarn to packageManager and do not set cache: yarn for this action.

Expected behavior:
actions/setup-node succeeds.
Actual behavior:
actions/setup-node fails with the following error.

Error: error This project's package.json defines "packageManager"<EMAIL_ADDRESS>However the current global version of Yarn is 1.22.22.
Presence of the "packageManager" field indicates that the project is meant to be used with Corepack, a tool included by default with all official Node.js distributions starting from 16.9 and 14.19.
Corepack must currently be enabled by running corepack enable in your terminal. For more information, check out https://yarnpkg.com/corepack.
https://github.com/esperecyan/actions-setup-node-debug/actions/runs/8907795048/job/24462266566

Running corepack enable before actions/setup-node will avoid this issue.
https://github.com/esperecyan/actions-setup-node-debug/actions/runs/8907795048/job/24462266822

Hello @esperecyan
Thank you for creating this issue. We will investigate it and get back to you as soon as we have some feedback.

Hitting this today too.

#901
#546
#480

Running corepack enable before actions/setup-node will avoid this issue.

works only for node 18+
for node 14-16 see https://github.com/actions/setup-node/issues/1075#issuecomment-2165643488


File "../Caffe/layer_param.py", line 161, in upsample_param     upsample_param.upsample_h = size[0] * scale_factor TypeError: unsupported operand type(s) for *: 'int' and 'NoneType'

    if size:
        if isinstance(size,int):
            upsample_param.upsample_h = size
        else:
            upsample_param.upsample_h = size[0] * scale_factor
            upsample_param.\
                upsample_w = size[1] * scale_factor

when size is not None,scale_factor is None.There is an error.
Can I change the code to:
else:
if not scale_factor:
scale_factor = 1
upsample_param.upsample_h = size[0] * scale_factor

Hi,@yangchengtest.
I met the same problem, and it seems like only one of  size and scale_factor in torch.nn.functional.interpolate should be defined, so I believe that the author forgot this.Absolutely, when size is given, the scale_factor is forbidden to use,thus your implemetation is right, and the best way to process scale_factor is to delete it, I assume,like this:
if size:
if isinstance(size,int):
upsample_param.upsample_h = size
else:
# scale_factor = 1
upsample_param.upsample_h = size[0]
upsample_param.upsample_w = size[1]
I'm not familiar with Pytorch,so point out my error please.

Hi,@yangchengtest.
I met the same problem, and it seems like only one of size and scale_factor in torch.nn.functional.interpolate should be defined, so I believe that the author forgot this.Absolutely, when size is given, the scale_factor is forbidden to use,thus your implemetation is right, and the best way to process scale_factor is to delete it, I assume,like this:
if size: if isinstance(size,int): upsample_param.upsample_h = size else: # scale_factor = 1 upsample_param.upsample_h = size[0] upsample_param.upsample_w = size[1]
I'm not familiar with Pytorch,so point out my error please.

In fact, it can get same result


Geomx Fixes Based on Internal Suggestions

Closes: https://github.com/ncihtan/data-models/issues/281

@PozhidayevaDarya is this now ready to be merged? Potentially we could go to staging this week for you to test before going to prod in our end of august release.

Thanks both! Unfortunately, I think there is now a blocker on the mtDCA end regarding implementing the configuration file for the staging instance that is going to prevent us from merging this until fixed. How urgent is this to get to staging?

@adamjtaylor I would say this is fairly urgent since we want to test this with OHSU and they are on standby, however that being said we did not give them a hard date about when this would be available. How long with this take to fix?

@PozhidayevaDarya, I spoke to @afwillia about this and it is likely late August for the fix

It's urgent in that the staging link (currently missing some key components) has been shared with centers who have expressed willingness to test, but not in the sense of imminent GeoMx submissions.
Imo a late August resolution is ok, and gives us some time to fix internal issues before proceeding with external testing. Does that sound ok @PozhidayevaDarya ?

@clarisse-lau  Yeap I'll let the centers know! Thank you both for your help on this


Update RSIIndicator.java

Fixes #102
Changes proposed in this pull request:

updates the relativeStrength() method to check for nan value before return statement.

See my comment in #102


Alternatives are still preliminary

We still need to think of some reasonable alternatives (at least one, possibly more) in order to calculate our opportunity costs. What else might the company do to meet similar kinds of targets?
https://github.com/sau140288/favri-women-association-model/blob/eff25a7866e50df275fa192f1d760eeb9efa702e/favri-women-association-model.R#L105

We are not working on this model anymore.
We are working on  nifam_favri_companies now.
However, I noted this issue for the company's model


Consider providing metadata to be queried via policies

We should add the metadata of a file that is aligned with a request so that it is able to be queried by rego.
Referencing: #5928 (Consider providing spaces to be queried via policies)
Usecase is like (but not limited to) the query for exif metadata tags/content.
@micbar @fschade @butonic

dont close

dont close


[Internal] Update tailwind config to add secondary color & standardize across repo

Add this color to tailwind config: #3E61ED
Replace all instances of #3E61ED with appropriate custom tailwind class

Not a priority rn


[Bug] Unsupported gpu architecture 'compute_89'

🐛 Bug
I got this error while building the model.
Compilation error:
nvcc fatal   : Unsupported gpu architecture 'compute_89'
I didn't encounter it before. After I commented https://github.com/mlc-ai/mlc-llm/pull/686 , the error was resolved.

What's your cuda version? I guess we are trying to build sm89 while your local nvcc does not support it.
We should not enable fatbin by default cc @MasterJH5574

The problem should be solved if you upgrade to CUDA 11.8. Meanwhile, we would fix it and turn off by default

Thanks @Cydia2018 for reporting! With #716 we will be good to go.

#716 gets merged. Please open an issue again if the issue persists :-)


Indicate projects not accessible to user on projects tab

Need
For managed access projects some or all data for the project may be inaccessible to the user.
One common case will be that some data (CGM and DCP matrices) will be available to the user and the project's sequencing and alignment files are managed-access files and unavailable to the user.
We need a way to indicate:

That the project contains "managed access" data.
Potentially we may wish to indicate that depending on the query the project is not contributing files to the query result set.

Approach
Alternative 0
The initial Suggestion: Project text is grayed out and prompts the user to log in, or apply for access (if already logged in). Prevent selection of project from project list as well as from project detail page. However, this will prevent users from exporting the non-managed access files via the export data flow (e.g. export matrices for multiple projects where one project is a managed access project).
Alternative 1

Indicate if the project or file is managed access with a column "Access Type" or similar with values "Managed Access" and "Open Access".

Add an "Access Type" facet over the projects and files.

File Browsing

If the file matches the filter and the user can access it, show the download link as normal.
If the file matches the filter, and the user can not access it, show a lock icon on the download section with an explanation on hover.
TODO: how can the user reduce clutter and see only files they have access to?

Project  Browsing

Allow users to select the project as normal as long as it matches the filter.

Download via CURL

Only include files the user has access to in the download curl command

Obsolete.


cleos get account

EOS cleos get account by time?

cleos get account does not accept any timestamp.  It is the current status of the account only.  If you wish to track and query changes to accounts over time, you will need to run a node with mongo_db_plugin or sql_db_plugin enabled and compose your own queries.


[feaLib] Support name table

Needs some tests, but I though to get feedback first since this is my first try with feaLib code.

I’ve added a couple of test files and squashed all the commits together.

LGTM! Thanks Khaled!
/cc @brawer

:+1:


Move "user_journey.png" to images folder

This PR moves the image "user_journey.png" to the images folder.

@Ein-Tim OK. Wouldn't it maybe be better, in order to increase consistency, to move it to src/assets/img . Maybe create there another folder for the figs for the documentation.

@dsarkar

Wouldn't it maybe be better, in order to increase consistency, to move it to src/assets/img . Maybe create there another folder for the figs for the documentation.

The documentation repository uses https://github.com/corona-warn-app/cwa-documentation/tree/master/images for images.
The website repository uses https://github.com/corona-warn-app/cwa-website/tree/master/src/assets/img for images.
It doesn't seem advised to make a major change to the documentation repository to give it the same structure as the website repository. I don't see the advantage and it would cause a lot of changes to the documentation repository documents.

@Ein-Tim  @MikeMcC399 You are totally right. Was mixing up the repositories! Thanks !


chore(browserstack): Update browserstacktunnel-wrapper, fix options

Only the latest version of the package works correctly (the backend for it at
BrowserStack is not versioned) and the options have changed in the new version
of the package.
Also, iOS 8.0 is no longer available on BrowserStack, only 8.3 is. Instead,
this commit changes it to 9.3 as we shouldn't be testing on 8 anymore anyway.
What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Bug fix in the testing infrastructure.
What is the current behavior? (You can also link to an open issue here)
The Browserstack wrapper doesn't set the local identified correctly, old wrapper is used that uses incorrect parameter names.
What is the new behavior (if this is a feature change)?
Package got updated, params are fine again.
Does this PR introduce a breaking change?
No.
Please check if the PR fulfills these requirements

[x] The commit message follows our guidelines: https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#commit-message-format
Tests for the changes have been added (for bug fixes / features)
Docs have been added / updated (for bug fixes / features)

Other information:

We don't actually test on Browserstack via Travis, does this really fix something?

You can run it manually:
karma start karma-jqlite.conf.js --browsers=BS_Chrome,BS_Firefox,BS_Safari,BS_IE_9,BS_IE_10,BS_IE_11,BS_iOS

The BrowserStack launchers are defined in karma-shared.conf.js.
I have a BrowserStack account so I use it sometimes to run tests without submitting a PR.

Oh cool, I didn't know. That's pretty neat

LGTM


Stop embedding bridge-metadata.json

At this point bridge-metadata.json is a compile-time only concern as it is not needed at runtime at all. This PR makes the change obvious and stops embedding it. This should help the binary size a bit, possibly to the tune of 30MB (uncompressed):
31M    provider/cmd/pulumi-resource-aws/bridge-metadata.json
88K    provider/cmd/pulumi-resource-aws/runtime-bridge-metadata.json
Only runtime-bridge-metadata.json is currently needed.

Ah of course need to fix some tests here.


fix: Keep using commands' class docstring as help/description

Fixes #64.
Needs tests :slightly_smiling_face:
Feel free to push to this branch! gh pr checkout 65

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

9 of 15 (60.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.4%) to 99.61%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/cappa/command.py
9
15
60.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.4%

Covered Lines:
1615

Relevant Lines:
1621

💛  - Coveralls

Ah, I imitated your branch names, starting with dc, but I realize now it probably stands for Dan Cardin :rofl:

Ah, I imitated your branch names, starting with dc, but I realize now it probably stands for Dan Cardin 🤣
lol!

So I slightly changed the src impl. Then added a test to cover the else branch.
Also slightly modified the test case to utilize rich formatting to prove it was being interpreted that way, since with the extra new line it was causing the lint error and without it was getting inlined by rich formatting.


[CI]add genai-perf benchmark in nightly benchmark

#10377
add genai_perf in nightly benchmark to test workflow. (not enabled yet, and can define/add more test case)
note: genai_perf requires python>3.10 https://pypi.org/project/genai-perf/#genai_perf-0.0.8-py3-none-any.whl

@jikunshang The GenAI-Perf team would like to get this in soon. Is there anything we can do to help you get this PR across the finish line?

@jikunshang just want to clarify that we want to make sure the current code in run-nightly-benchmarks.sh is automatically runnable in our performance test CI pipeline, so we prefer testing the code you contributed in our CI pipeline and make sure 1). it don't break and 2). it can upload the benchmarking results automatically into buildkite artifacts, and then we can merge it into vLLM main branch.
If you are not sure how to trigger the performance benchmark CI, feel free to simply uncomment the code -- we can trigger the performance benchmark CI for you.

@jikunshang just want to clarify that we want to make sure the current code in run-nightly-benchmarks.sh is automatically runnable in our performance test CI pipeline, so we prefer testing the code you contributed in our CI pipeline and make sure 1). it don't break and 2). it can upload the benchmarking results automatically into buildkite artifacts, and then we can merge it into vLLM main branch.
If you are not sure how to trigger the performance benchmark CI, feel free to simply uncomment the code -- we can trigger the performance benchmark CI for you.

I have uncommented code, I think I don't have permission to trigger benchmark CI. Please help.
BTW, this PR will not upload result into buildkite artifacts. Is there any document I can refer how to do that?

Feel free to ping me after you add the uploading script and I will turn on the benchmark

Feel free to ping me after you add the uploading script and I will turn on the benchmark

I feel upload  genai perf result files is easy, what I am not clear is once uploaded files(csv and json), how to parse and show on https://perf.vllm.ai

@jikunshang The GenAI-Perf team would like to get this in soon. Is there anything we can do to help you get this PR across the finish line?

hi @debermudez I have some error when validate on my local env today. can you help take a look?

seems perf_analyzer doesn't support --endpoint option, here is version info:

@jikunshang We have two benchmark suites in vLLM
Performance regression tracker, in run-performance-benchmarks.sh, and perf.vllm.ai is directly associated with this benchmark.
Full performance benchmark and comparing with other inference engines, in run-nightly-bechmarks.sh. This benchmark is manually triggered and we are planning to run it before major releases.

@jikunshang The GenAI-Perf team would like to get this in soon. Is there anything we can do to help you get this PR across the finish line?

hi @debermudez I have some error when validate on my local env today. can you help take a look?
seems perf_analyzer doesn't support --endpoint option, here is version info:

This looks like a very old release of perf_analyzer. We are on 2.53.0 right now. How did you install PA?

@jikunshang The GenAI-Perf team would like to get this in soon. Is there anything we can do to help you get this PR across the finish line?

hi @debermudez I have some error when validate on my local env today. can you help take a look?
seems perf_analyzer doesn't support --endpoint option, here is version info:

@jikunshang This looks like a very old release of perf_analyzer. We are on 2.53.0 right now. How did you install PA?

Thanks for your input.
genai-perf 0.0.8 will install dependency tritonclient 2.41.1, which contains perf_analyzer
I try to install tritonclient 2.51.1 while it's not compatiable on ubuntu22.04, so I use  tritonclient 2.51.0 instead.

@jikunshang We have two benchmark suites in vLLM Performance regression tracker, in run-performance-benchmarks.sh, and perf.vllm.ai is directly associated with this benchmark. Full performance benchmark and comparing with other inference engines, in run-nightly-bechmarks.sh. This benchmark is manually triggered and we are planning to run it before major releases.

Thanks! PR is ready to review & verify. Please help trigger a test run:)

Inside the performance benchmark run of this PR (https://buildkite.com/vllm/performance-benchmark/builds/9903), it shows
.buildkite/nightly-benchmarks/scripts/run-nightly-benchmarks.sh: line 393: genai-perf: command not found
There are probably some installation script  of genai-perf that is missing.
Also, would be great if you can fix the DCO issue.

Inside the performance benchmark run of this PR (https://buildkite.com/vllm/performance-benchmark/builds/9903), it shows .buildkite/nightly-benchmarks/scripts/run-nightly-benchmarks.sh: line 393: genai-perf: command not found
There are probably some installation script of genai-perf that is missing.
Also, would be great if you can fix the DCO issue.

thanks for your reply!
I think the benchmark workflow is using public.ecr.aws/q9t5s3a7/vllm-ci-postmerge-repo::$BUILDKITE_COMMIT docker image. how does this image build, via dockerfile? will it install requirements-dev.txt or requirements-test.txt? if it doesn't install, not found issue make sense.

Inside the performance benchmark run of this PR (https://buildkite.com/vllm/performance-benchmark/builds/9903), it shows .buildkite/nightly-benchmarks/scripts/run-nightly-benchmarks.sh: line 393: genai-perf: command not found
There are probably some installation script of genai-perf that is missing.
Also, would be great if you can fix the DCO issue.
thanks for your reply!
I think the benchmark workflow is using public.ecr.aws/q9t5s3a7/vllm-ci-postmerge-repo::$BUILDKITE_COMMIT docker image. how does this image build, via dockerfile? will it install requirements-dev.txt or requirements-test.txt? if it doesn't install, not found issue make sense.

I am not sure about the details here. Maybe run pip install -r requirements-dev.txt and then follow by echo $(which genai-perf) and see what's the output?


Request for the pretrained model trained on GTAV

Thanks for your interesting work!
I want to evaluate the model's performance on another benchmark.
For a fair comparison, could you please share your pretrained checkpoints on GTAV?
Thanks in advance!

Thanks for your interest in our work!
Could you use Baidu Cloud Disk to download files?
If so, you can download through this link:
链接：https://pan.baidu.com/s/1EU4WranLCy34kihB63ksiQ?pwd=e0bv
提取码：e0bv
--来自百度网盘超级会员V5的分享
Thanks in advance!

您好，请问可以提供谷歌网盘的链接吗？百度网盘下载速度太慢了。谢谢！

Hi, I successfully reproduced the results on GTAV -> Cityscapes. However, I noticed that the model's backbone is Swin-Base. Why not use Swin Large? I believe it might further improve performance.

Hi there, thanks for your interest on this project!
The representation learning technique develops really fast. By the time we study this project, existing domain generalized semantic segmentation methods only use ResNet-50 or ResNet-101 based backbone. So at that time we mostly used Swin-Base.
But yes, if you use Swin-Large or foundation model based encoder, of course it will have a better generalization ablity.


Problems on Mac

I downloaded the Blazor extension, then in Extension Manager, I clicked Install from File..., selected the extension, and clicked Open. Then nothing apparently happened. I don't see anything like a Blazor extension anywhere in the Installed section of the Extension Manager.
There is no Tools > Options on Mac. I went to Preferences... and couldn't find anything like Projects and Solutions or "use preview SDKs".
That's as far as I could get. Please correct this page for Mac VS. Thanks.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: c07e57dc-526f-9479-4695-de7d8f06eb9a
Version Independent ID: 8226ed72-69b2-3c93-a931-218bd11cf9c8
Content: Get started with Blazor
Content Source: aspnetcore/blazor/get-started.md
Product: aspnet-core
Technology: aspnetcore-blazor
GitHub Login: @guardrex
Microsoft Alias: riande

Hello @daveyostcom ... VS4Mac bits aren't quite ready yet. Last I heard, they were working on it. You'll need to use VS Code on the Mac at this time.
Note that "Visual Studio" in doc contexts only refers to VS on Windows. There will be a new tab here when VS4Mac is ready, and that will have VS4Mac-specific instructions.


Enhancement: better error messages for missing struct fields?

Currently missing fields in struct gives no line info, not even the typename info, which makes it hard to find where in the row of same-y declarations you missed a field. For example:
#[derive(serde::Deserialize, Debug)]
struct Test {
    f1: i64,
    f2: String,
}

fn main() {
    let s = r#"
Test (
    f1: 55,
)
"#;
    let x: Result<Test, _> = ron::from_str(s);
    println!("{:?}", x);
}

gives: Err(Error { code: Message("missing field f2"), position: Position { line: 0, col: 0 } })
It would be great if I could get line info, or at least the name "Test" of the record.
Also there is a similar problem with enum variants. Which seems doubly strange, as when I write an incorrect constructor for a struct, like replacing "Test" with "NotTest" in the example above, I get precise error location and type info.

On master, #356 is already included (this was excluded from v0.7.1 in #382), which does give the correct line info (also for enum variants):
Err(SpannedError { code: Message("missing field `f2`"), position: Position { line: 4, col: 1 } })

I'll check if we could also give the name of the struct or enum variant where the field is missing

I think we should make necessary API breaking changes now (if any) and then release master as 0.8, so the new features, especially better errors, become available.

Ok, so the error message here comes from serde's default implementation of Error::missing_field, which just generates this string. If we wanted, ron could overwrite all or some of the Error methods to capture the results in nicer error variants - this might be a good idea on its own, just to make error handling easier.
If we then have such variants, we could populate them with extra optional information that would be None by default, e.g. the name of the surrounding struct, the name of the field etc. While this might make for fantastic error messages in some cases, it could also bloat the error type. For now, I don't think adding this functionality to ron is necessary.
What I use for such nice contextual error messages is the serde_path_to_error crate:
let mut de_ron = ron::Deserializer::from_str_with_options(ron_str, ron_options)?;

let mut track = serde_path_to_error::Track::new();
let de = serde_path_to_error::Deserializer::new(&mut de_ron, &mut track);

let result = match deserializer(de) {
    Ok(args) => Ok(args),
    Err(err) => {
        let path = track.path();
        let err = de_ron.span_error(err);

        Err(format!(
            "{}{} @ ({}):\n{}",
            path,
            if path.iter().count() >= 1 { "" } else { "*" },
            err.position,
            err.code,
        ))
    },
}

Thanks! I agree, if there is line info, having constructor or type name is not necessarily necessary. I will close this issue then.
Can't wait for 0.8, with this and supplying extensions via decoder options!

@torkleyy Do you think we should convert serde's errors into nice error variants? For the invalid_[type|value|length] error methods we wouldn't be able to do better than stringifying the expected vs provided elements anyways, but we could very nicely represent the unknown_variant, unknown_field, missing_field, and duplicate_field errors.

If we can provide better error information without overly cluttering the codebase, absolutely, yes!


update build script so that running with npm start works

I think this addresses #19 but it may have been a different root cause looking at the dates

@KaneMorgan this still have the problem, not sure why you closed it

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Kane Morgan seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Renaming sensativityLabels in Readme.md

Might cause azure .net sdk generation errors.
Latest improvements:
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Contribution checklist:

[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and have all been fixed in this PR.
[x] The OpenAPI Hub was used for checking validation status and next steps.

ARM API Review Checklist

[x] Service team MUST add the "WaitForARMFeedback" label if the management plane API changes fall into one of the below categories.
adding/removing APIs.
adding/removing properties.
adding/removing API-version.
adding a new service in Azure.

Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs.

[x] If you are blocked on ARM review and want to get the PR merged urgently, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.
Please follow the link to find more details on API review process.

Automation for azure-sdk-for-js

Automation for azure-sdk-for-python

Automation for azure-sdk-for-go

Automation for azure-sdk-for-ruby

Automation for azure-sdk-for-java

Can one of the admins verify this patch?

@yaakoviyun @jaredmoo @shahabhijeet
After investigating

Automation for azure-sdk-for-net
A PR has been created for you:
https://github.com/azure/azure-sdk-for-net/pull/5642
.NET SDK Commits:
https://github.com/adxsdknet/azure-sdk-for-net/pull/5642/commits/cd82c52a95b7626ca486bd4e1b7d6614dbbe46bb

startbuild

@veronicagg the Autorest process is timing out when we try to regenerate the SDK. Please approve and merge this PR when ready. @jaredmoo could you please open the net sdk PR manually.


Library Request: Dependency Injection

Expected Behavior
Supports simple-injection
Simple Injection is a simple, objected-oriented approach to dependency injection in python. The goal of Simple Injection is to allow simple and effective dependency injection in python applications without the use of anything other than what is natively in your application. This means no decorators or anything else anywhere in your code is required for Simple Injection. All that is required is python typings.
Supports injectable
Injectable is an elegant and simple Dependency Injection framework built with Heart and designed for Humans.
Actual Behavior
Not supported.
Checklist

[x] I have completely filled out this template
[x] I have confirmed that this issue exists on the current master branch
[x] I have confirmed that this is not a duplicate issue by searching issues

@AlexCatarino, could you please place a ~library-request label on this?


warn me when adding a publication that already exists in Biblio via identifier

Describe the improvement.
Currently, you can add metadata for a publication with a particular ID multiple times. I would like to be warned that a publication record for that ID already exists. Or even stronger, I should not be able to add a dataset with an ID that already exists.
This was already implemented for DOI in https://github.com/ugent-library/biblio-backend/issues/259.
Now also implement for the other currently used IDs:

[ ] PMID
[ ] ARXIV

Priority: PMID

Will fix this with new import flow – and make sure everything works similarly. Will transform into new issues applied to that.


jenkins::cli_helper and cli exec not working with key file param

if you have an execution path through your puppet code that  calls jenkins::cli::exec and security is enabled with this:
      class {'::jenkins':
        cli_ssh_keyfile => $system_user_key,
      }

then
this call will not use the key file.
jenkins::cli::exec { 'setup secure user':
       command => "create_or_update_user<EMAIL_ADDRESS><EMAIL_ADDRESS>'${admin_password}' '${admin_user}: Managed by Puppet' '${system_user_pub}'",
     }

it ignores the key file because in the helper class which exec uses it does not use the proper key file var name
  if $ssh_keyfile {
    $auth_arg = "-i ${ssh_keyfile}"
  } else {
    $auth_arg = undef
  }

instead of $cli_ssh_keyfile
it should use that param or check them both.

Is this with the present master or or v1.6.1?

FYI I just checked; it's fixed in current master but is broken in 1.6.1

I'm going to close this since the issue is already fixed.


[LASB-3498] Liquibase config changes

What
Link to story
Liquibase and Postgres configuration changes.
Checklist
Before you ask people to review this PR:

[x] Tests should be passing: ./gradlew test
[x] Github should not be reporting conflicts; you should have recently run git rebase main.
[x] Avoid mixing whitespace changes with code changes in the same commit. These make diffs harder to read and conflicts more likely.
[x] You should have looked at the diff against main and ensured that nothing unexpected is included in your changes.
[x] You should have checked that the commit messages say why the change was made.

Should there be anything about liquibase in the README? At the moment, I wouldn't really be sure how it's used or what to do.


vue-starport and vue's keepAlive are mutually exclusive

Describe the bug
Hello, I have a conflict between vue-starport and vue's KeepAlive. I cannot use keepalive when I can use vue-starport, and vice versa.

Reproduction

System Info
System:
    OS: macOS 12.6
    CPU: (10) arm64 Apple M1 Pro
    Memory: 116.19 MB / 16.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 16.14.1 - /usr/local/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 8.19.3 - /usr/local/bin/npm
  Browsers:
    Chrome: 107.0.5304.121
    Safari: 16.0

Used Package Manager
yarn
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
[X] The provided reproduction is a minimal reproducible of the bug.

You should make <StarportCarrier /> the parent of <RouterView />.

You should make <StarportCarrier /> the parent of <RouterView />.

Thank you for your answer, but after wrapping the StarportCarrier to the outside, the following error will be reported: [Vue Starport] Multiple proxies of "index" with port "xxx" detected.

You should make <StarportCarrier /> the parent of <RouterView />.

Thank you for your answer, but after wrapping the StarportCarrier to the very outside, the following error is reported: [Vue Starport] Multiple proxies of "index" with port "xxx" detected. The later one will be ignored.

You should make <StarportCarrier /> the parent of <RouterView />.

Thank you for your answer, but after wrapping the StarportCarrier to the outside, the following error is reported：[Vue Starport] Multiple proxies of "index" with port "xxx" detected. The later one will be ignored.

Looks like working with KeepAlive is not supported yet.


on mobile, the main classification of Cold's label is too high, but when lowered the z-index is a bit screwy and appears below text

you might just need to force the z-axis higher on the tooltip, but this might be a function of just the mobile layers being weird (which sometimes happens). try giving the labels an explicit z-axis?

yup, had to play around a lot with mobile specific z-index's but all looks good now


Please specify license

so I know if I can re-use it in different project.

I've never been good with licenses. Just tell me the least restrictive license, and I'll use that.

MIT :)
Thanks.

I think Creative Commons licence whout be better for that project. I suggest CC-BY.
Great theme by the way.

I've added "The Unlicense" license. I would've gone for WTFPL like I usually do, but I've just discovered this one, and why not? All the same to me :)


Fix MathBinary bug

Fix MathBinary bug
See https://github.com/combust/mleap/pull/824#discussion_r978030952

@austinzh
You can see this line in my PR:
https://github.com/combust/mleap/pull/824/files#r971927427
        # TODO: Deserialization on output_features has some issue. fix this.
        # assert_frame_equal(res_a, res_b)

If you enable this line assert_frame_equal(res_a, res_b), you will find the test failed, but it should pass.
So this is a bug.


[fix] Switch docker base image to avoid mixing musl & glibc libraries at runtime

Motivation
While testing Pulsar 4.0.0-preview.1, some compatibility issues with the Alpine base image have shown up.
It appears that the solution in the base image is something that will cause further compatibility issues. Mixing musl and glibc at runtime is known to cause compatibility and stability issues.
https://github.com/sgerrand/alpine-pkg-glibc/issues/194#issuecomment-1510140972 mentions:
"You really need everything pure musl, or everything musl (but works with gcompat or libc6-compat shim-like tools...) or everything glibc using this package)"
In our case, we are mixing pure musl libraries and glibc compiled libraries with our Alpine base image configuration which should be avoided.
Another reason to switch to a base image that is optimized for running Java JVM applications. The current Alpine image crashes the JVM in unexpected ways. #23348/#23361 is an example of this.
java.lang.OutOfMemoryError: unable to create a native thread: possibly out of memory or process/resource limits reached.

Modifications
Use https://hub.docker.com/r/bellsoft/liberica-runtime-container as the base image.
It's the Liberica OpenJDK's official base image provided by BellSoft. It uses Alpaquita Linux as the OS, which is similar to Alpine and uses apk as the package manager. Alpaquita Linux is optimized for running JVM applications.
Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

It looks like test image building fails due to missing supervisor package. It is available also with pip install: http://supervisord.org/installing.html

It looks like test image building fails due to missing supervisor package. It is available also with pip install: http://supervisord.org/installing.html

supervisor has been installed, but there is some remaining issue.

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

Project coverage is 74.57%. Comparing base (bbc6224) to head (f6498f5).
Report is 611 commits behind head on master.

Additional details and impacted files

@@             Coverage Diff              @@
##             master   #23366      +/-   ##
============================================
+ Coverage     73.57%   74.57%   +0.99%
- Complexity    32624    33962    +1338
============================================
  Files          1877     1934      +57
  Lines        139502   145132    +5630
  Branches      15299    15870     +571
============================================
+ Hits         102638   108231    +5593
+ Misses        28908    28604     -304
- Partials       7956     8297     +341

Flag
Coverage Δ

inttests
27.69% <ø> (+3.10%)
:arrow_up:

systests
24.39% <ø> (+0.07%)
:arrow_up:

unittests
73.92% <ø> (+1.08%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.
see 599 files with indirect coverage changes


diskus: 0.4.0 -> 0.5.0

Motivation for this change
https://github.com/sharkdp/diskus/releases/tag/v0.5.0
Things done

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

[x] NixOS
[ ] 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 nox --run "nox-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)
[ ] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build diskus

Success on x86_64-linux (full log)
Attempted: diskus
Partial log (click to expand)

installing
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/184jkl78r9ayxvji2fxz0rzfsp31h1hp-diskus-0.5.0
shrinking /nix/store/184jkl78r9ayxvji2fxz0rzfsp31h1hp-diskus-0.5.0/bin/diskus
strip is /nix/store/rpbg8gmqxhz8g61p1plz5d2srs84pvmv-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/184jkl78r9ayxvji2fxz0rzfsp31h1hp-diskus-0.5.0/bin
patching script interpreter paths in /nix/store/184jkl78r9ayxvji2fxz0rzfsp31h1hp-diskus-0.5.0
checking for references to /build in /nix/store/184jkl78r9ayxvji2fxz0rzfsp31h1hp-diskus-0.5.0...
/nix/store/184jkl78r9ayxvji2fxz0rzfsp31h1hp-diskus-0.5.0

Thanks


Better handling of pagination for stream data

The current API for fetching stream data support pagination but it is not well structured, as it does not offer details on the avail pages and other metadata
Example of current paging
GET http://raptor.local/stream/<devid>/<streamid>?page=1&size=1000
A solution with API retrocompatibility may be to set those metadata as header fields eg
...
X-Pager-Current: 1
X-Pager-Count: 10
X-Pager-Size: 1000
...

Addressed on v5


where is the task-file and event-file?

I want to know where the task storage path is and whether it can be customized

Please see :h calendar and search for cache.

So perfect! It's really a perfect project.thank you for the perfect work.


Add Japanese punctuation mark (kutoten) handling to "KanaAppraiser"

Summary

Needed to address issue ( #16 ) that KanaAppraiser returned false for some characters inside the Hiragana and Katakana Unicode blocks

These characters such as the nakaguro ・ and the iterative mark ゞ are not actually hiragana or katakana per say, but are punctuation marks
Best not to have KanaAppraiser approve these characters as hiragana/katakana even though they are in the correspoding Unicode blocks.  It would be incorrect, plus it would effect existing code using either KanaConverter

Decided to add a isZenkakuKutoten and isHankakuKutoten function to KanaAppraiser

This way it can appraiser an additional type of Japanese text -- punctuation marks frequently used in Japanese
This solution also allows the clear delineation of hiragana/katakana characters vs kutoten marks

Also includes slight refactor and better names for some KanaAppraiser constants and functions

Details

Both the Hiragana and Katakana Unicode block have four characters near the very end that are punctuation marks which should be handled as Japanese text but not referred to as "hiragana" or "katakana" but instead as "kutoten" (punctuation):

Hiragana Unicode Block
Katakana Unicode Block

The Hankaku Katakana block similarly has some punctuation mixed in:

Hankaku (Half-width) Katakana Unicode Block

Change KanaAppraiser so that the punctuation marks mentioned above, as well as those marks frequently used in Japanese text in the below char (U+FF61 through U+FF9F) are appraised as kutoten (Japanese punctuation marks)

Full-width Kutoten (Japanese Punctuation) Unicode Reference

Unit tests all OK and coverage at 100% :ok:


Autoscale doesn't work properly with -N, only -n

When specifying -N <num_nodes> on a job, CycleCloud doesn't spin up the correct number of nodes and the job never runs. This is needed for MPI jobs wanting to use partial nodes.

I experienced the same problem. In my simple 'salloc' or 'srun' examples -N is parsed as -n - in the cycleclouid GUI I noticed that the number of cores provisioned corresponds to -N .

This is fixed in the 7.8 CycleCloud release. Release notes are here.


Function body and signature on same level

Would it make more sense to have tree like this? As function_body will never exists without method_signature or function_signature.
function_signature [43, 0] - [43, 8]
  void_type [43, 0] - [43, 4]
  name: identifier [43, 5] - [43, 6]
  formal_parameter_list [43, 6] - [43, 8]
function_body [43, 8] - [45, 1]
  block [43, 8] - [45, 1]

this:
function_signature [43, 0] - [43, 8]
  void_type [43, 0] - [43, 4]
  name: identifier [43, 5] - [43, 6]
  formal_parameter_list [43, 6] - [43, 8]
  body: function_body [43, 8] - [45, 1]
    block [43, 8] - [45, 1]

It is really just suggestion. I am very new to tree-sitter-or-language-spec-stuff.
Thanks

Sorry to respond so late, I haven't been logging into my github as often due to work and personal issues. As far as why things are the way they are (and I agree it's a bit of a strange organization) the reason is that the grammar was (originally) written to conform to the dart grammar reference here. As far as your specific item goes, I think they are separated in the grammar reference because in dart classes one can write a function without a body, as a kind of abstract function:

class Calculate_Total {
   int ret_tot() {}
}
class Calculate_Discount {
   int ret_dis() {}
}
class Calculator  implements Calculate_Total,Calculate_Discount {
   int ret_tot() {
      return 1000;
   }
   int ret_dis() {
      return 50;
   }
}```

so that would be why function signatures must be separated (I think, the project has been proceeding steadily without me for a while).

Ah! Got it. Thanks for explanation :)


[DMS] Updated link title

Removed the "Migrate SQL Server to Azure SQL Database" offline reference in the link description so it now matches the referenced article title.

#sign-off

@Peter-Msft: I'm sorry - only the author of this article, @pochiraju, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

#sign-off


[SPARK-21893][BUILD][STREAMING][WIP] Put Kafka 0.8 behind a profile

What changes were proposed in this pull request?
Put Kafka 0.8 support behind a kafka-0-8 profile.
How was this patch tested?
Existing tests, but, until PR builder and Jenkins configs are updated the effect here is to not build or test Kafka 0.8 support at all.

Test build #81409 has started for PR 19134 at commit 6980c6a.

Test build #81409 has finished for PR 19134 at commit 6980c6a.

This patch fails MiMa tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81409/
Test FAILed.

@srowen how do you handle python kafka.py, should it also be opt-in? As far as I understand looks like you don't address it in this PR.

Ah, this is where I need some advice. Is there an element of the Pyspark code that has to vary too? obviously Python itself isn't dependent on Scala, but the tests obviously can't test 0.8 if it's not there.
Yes I think there are a few more issues to iron out before this works, so input is welcome.

I think it makes sense to go ahead and put deprecation warnings in this PR as well

For python I think you just do what kinesis does:
# Must be same as the variable and condition defined in KinesisTestUtils.scala
kinesis_test_environ_var = "ENABLE_KINESIS_TESTS"
are_kinesis_tests_enabled = os.environ.get(kinesis_test_environ_var) == '1'

The comment is misleading though, since that variable is set in modules.py which you are already modifying.

re kafka -https://github.com/apache/spark/pull/19134#issuecomment-327180847 - pretty sure that is still needed for DStream - just as any API we shouldn't just remove it in point releases...

I see @felixcheung . Since we have a solution to turn off Python Kafka unit test as mentioned by @vanzin , so it is fine to just mark as deprecated, not remove the code.
Another thing is that we also have some Kafka related examples, maybe we should also handle them.

Good feedback, all. I think I can fix the MiMa failure, and now the Python tests. Let me try to get that far.
Yes, the examples use Kafka 0.8 in some places. It seems excessive to set up a new optional module of Kafka 0.8-only examples, so, perhaps it's time to remove them?
Because there's also the suggestion to deprecate 0.8. And then that entails making 0.10 stable.

Test build #81515 has started for PR 19134 at commit ff76dab.

Test build #81515 has finished for PR 19134 at commit ff76dab.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81515/
Test PASSed.

Test build #81564 has started for PR 19134 at commit 2a6f5de.

Test build #81564 has finished for PR 19134 at commit 2a6f5de.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test build #81586 has started for PR 19134 at commit 6373c02.

Test build #81586 has finished for PR 19134 at commit 6373c02.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81586/
Test PASSed.

Test build #81607 has started for PR 19134 at commit 8f1deee.

Test build #81607 has finished for PR 19134 at commit 8f1deee.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81607/
Test PASSed.

LGTM. The pyspark vs. 0.10 discussion seems like it belongs in a separate bug.

There's already a jira about why 0.10 doesn't have python support, https://issues-test.apache.org/jira/browse/SPARK-16534

OK by me, if it's all on-purpose. So, am I right that all of the Pyspark Kafka integration is effectively deprecated as of this change, because it depends on now-deprecated 0.8 support? just want to make sure I'm reading that right, and if so I'll try to mark it as such.

Test build #81674 has started for PR 19134 at commit d888f7b.

Test build #81674 has finished for PR 19134 at commit d888f7b.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81674/
Test PASSed.

Merged to master


Add task type annotation for pods when EnableGangScheduling is true.

Signed-off-by: jiangkaihua<EMAIL_ADDRESS>

Coverage decreased (-0.05%) to 71.429% when pulling d3967a6e6532d4ab7b413c56e6f2ed79adc40438 on jiangkaihua:master into 8d179f7016768aafc070892211a09ccf34caa924 on kubeflow:master.

/assign @shinytang6

/lgtm
/approve
Thanks for your contribution! :tada: :+1:

/ok-to-test


Show incorrect account when using the import By QR function

Description the bug
Show incorrect account when using the import By QR function
To reproduce the bug
(See file attachment)

Actual: When scan QR code, show correct EVM account. But, after imported successfully, show incorrect account (Substrate account)

https://user-images.githubusercontent.com/102292476/197678633-37d74106-7132-497d-8eca-9009dd19f28d.MP4
Notes: I often get an error when I create an account right after a successful application installation or import when I don't have an EVM account on my wallet

Do not reproduce this bug in new UI version.


Tested on Arch Linux

I have been tested on Arch Linux and all is working correctly

Hi @usarral - thanks for contributing and sharing. However, the intention with that section in the README is to document what is tested at every commit, and I only test nchat on macOS and Ubuntu on daily basis, so I think it would be misleading if I put other distros there.
The README mentions build steps for Arch Linux (and other distros) elsewhere and I think that is sufficient to give an idea that nchat is likely to work on Arch, but I just don't want to "promise" it, as I don't use it on daily basis myself.
I'll proceed to close this PR.


Replace s3

Fixes #48

replace the previously removed s3 read/write functionality for pod template spec storage
add validation for pod specs posted in this manner
add some dev Makefile targets and a dev deployment file

'restore' might have been a better word choice than 'replace'

replaced the test cases that were removed, passed test suite

@tnine Do you mind reviewing this?  The code looks fine but you're more familiar with the implementation than I.

@whitlockjc @noahdietz This looks GTM.  Aside from the env var comment @whitlockjc  made, everything looks solid in this PR.


The value of completion in response is empty

I'm facing the same issue.

You can try using options.progress function when sending message.
const body = [], opts = {};
opts.progress = (r) => {
    if (r.completion) {
        body.push(r.completion)
    }
}

const r = await conv.sendMessage(q, opts);
return r.completion || body.join('');

r.completion || body.join('');

it's working for me ! Thanks

You can try using options.progress function when sending message.
const body = [], opts = {};
opts.progress = (r) => {
    if (r.completion) {
        body.push(r.completion)
    }
}

const r = await conv.sendMessage(q, opts);
return r.completion || body.join('');

Thanks


Unable to execute the newly created project using vgv_cli.

Description
I was able to successfully create a project using vgv cli. After opening the created project in Vs Code, I get 216 errors.
Steps To Reproduce

Create a project using cli
open it in vs code

Expected Behavior
The expected behaviour is to get an executable project without any errors and in an executable condition.
Screenshots

Additional Context
When I tried to run the pug upgrade command, I get the following message
[my_first_project_using_vgv_cli] flutter pub upgrade
Running "flutter pub upgrade" in my_first_project_using_vgv_cli...
The current Dart SDK version is 2.10.5.

Because my_first_project_using_vgv_cli requires SDK version >=2.12.0-0 <3.0.0, version solving failed.
pub upgrade failed (1; Because my_first_project_using_vgv_cli requires SDK version >=2.12.0-0 <3.0.0, version solving failed.)
exit code 1

My Flutter Doctor is:
Doctor summary (to see all details, run flutter doctor -v):

[✓] Flutter (Channel stable, 1.22.6, on Mac OS X 10.15.7 19H2 darwin-x64, locale en-IN)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 12.3)
[!] Android Studio (version 4.1)
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] VS Code (version 1.53.2)
[✓] Connected device (2 available)

! Doctor found issues in 1 category.

Please let me know what I'm missing here.

Hi @NaagAlgates 👋
Thanks for opening an issue!
Because the generated project uses null safety, you need to make sure you're using the beta channel:
$ flutter channel beta
$ flutter upgrade

Hope that helps 👍

@NaagAlgates updated the documentation to specify that the generated code requires the beta channel of Flutter due to null safety. If after switching channels you're still having trouble let us know and we're happy to help 👍


goBack() does not work correctly with onBeforeAction event in config

What steps will reproduce the problem?
Add to your config the following configuration so that every request is logged to returnUrl other than SecurityController which has the login and logout methods
'on beforeAction' => function (\yii\base\ActionEvent $e) {
    if($e->action->controller->id !== 'security') {
        Yii::$app->user->setReturnUrl(Yii::$app->request->url);
    }
},

and then in the login method inside the SecurityController add the lines
if ($model->load(\Yii::$app->getRequest()->post()) && $model->login()) {
      $this->trigger(self::EVENT_AFTER_LOGIN, $event);
      return $this->goBack();
}

What is the expected result?
I expect that if i am on a page lead/index and i click logout button which points to security/logout it should log me out and when i log back into the system it should take me to the lead/index page again.
What do you get instead?
I get redirected to the debug/default/toolbar?tag=5b8d0c22544a8 url instead as soon as i log-in back after logout.
Additional info

Q
A

Yii version
<IP_ADDRESS>

PHP version
7.2

Operating system
Ubuntu 14.04

Edit
By further inspecting i find out that at the point of logout where I call Yii::$app->getUser()->logout() which calls the yii\web\User logout() method the statement Yii::$app->user->getReturnUrl() returns / and if i echo it before calling the Yii::$app->getUser()->logout() it shows the correct action-name i was on.
This is my logout method
public function actionLogout()
    {
        $event = $this->getUserEvent(\Yii::$app->user->identity);

        $this->trigger(self::EVENT_BEFORE_LOGOUT, $event);

        \Yii::$app->getUser()->logout();

        $this->trigger(self::EVENT_AFTER_LOGOUT, $event);

        return $this->goHome();
    }

Any Ideas why it behaves like that i tried passing true inside the logout() thinking if that has to do something with the following lines

if ($destroySession && $this->enableSession) {
    Yii::$app->getSession()->destroy();
}

but it redirects me to the defaultRoute that i have set in my config/main.php file.

You have the debugger enabled. This loads pages via AJAX and you are setting the return URL on every request.
I think in your case the solution is to never update return URL for AJAX requests. Besides ignoring AJAX requests I'd also recommend only doing this for GET requests.

@SamMousa , Yeah,  i understand that I have the debugger enabled which sends ajax call the the specific URL to which it is redirecting me back, but it won't be happening on the production server as the debug is off, but if you have gone through the edit section of my post, don't you think if i logged out manually and then log in again it should take me back to the previous page i was on when i pressed log out rather than taking me to the defaultRoute specified in the config/main.php. Because in case if the session times out it redirect me to login page and after submitting the login it takes me back to the same page where my session expired.

That's not what you described originally.

You go to lead/index.
beforeAction sets the return URL to lead/index.
Debugger loads.
beforeAction sets the return URL to debugger...
You click logout.

Seems to function as expected. You are just confusing 2 concepts:

Page you are on (URL in your browser bar)
Page you last visited (in your example it's the AJAX fired by the debug module).

it should take me back to the previous page i was on when i pressed log out rather than taking me to the defaultRoute specified in the config/main.php

You never mentioned anything about sending you back to the default route?

@SamMousa

it should take me back to the previous page i was on when i pressed log out rather than taking me to the defaultRoute specified in the config/main.php
You never mentioned anything about sending you back to the default route?

Yes, i missed adding it in the post above sorry about that, but after turning off debugger i noticed this behavior. if Log out manually and login back it redirects to the defaultRoute but if session expired, then it redirects me to the correct link i was previously on.
Maybe i have to create a separate issue to report it but i thought that it should be discussed here.


added annotation to return non-merged content

The Data Comparison Service needs to be able to see unequivalated output, so that each data source's data can be rendered and compared by a user.

lgtm :shipit:


Debian package missing dependency on gsettings-desktop-schemas

When i remove package gsettings-desktop-schemas then chromium doesn't start with a simple Segmentation fault message. Please include this dependency in debian/control.

Not the -dev for compiling; the plain gsettings-desktop-schemas for Package: ungoogled-chromium for running the compiled binary.

Well gsettings-desktop-schemas-dev basically only adds that dependency right now, so I think it's safer to do it this way just in case the dependencies change. If you can show me a source package that has gsettings-desktop-schemas explicitly as a runtime dependency, then it might be fine to change it.


URL escaping rules are not sufficient with newer runtimes (like Jetty 11)

Links:

jakartaee/servlet#18
eclipse/jetty.project#9444

For Jolokia 1.x with Jetty 6 (used in tests), I have proper:
$ curl -v -u jolokia:jolokia 'http://localhost:22333/j4p/read/jolokia.it:name=%5C!/,type=naming!//Ok'
...
> GET /j4p/read/jolokia.it:name=%5C!/,type=naming!//Ok HTTP/1.1
...
>
< HTTP/1.1 200 OK
...
< Server: Jetty(6.1.26)

Because the only escaping done by org.jolokia.client.request.J4pRequestHandler#escape() is to replace ! with !! and / with !/ and java.net.URI changes \ with %5C.
On Jolokia 2.0 with Jetty 11 I'm getting:
$ curl -v -u jolokia:jolokia 'http://localhost:22332/j4p/read/jolokia.it:name=%5C!/,type=naming!//Ok'
...
> GET /j4p/read/jolokia.it:name=%5C!/,type=naming!//Ok HTTP/1.1
...
>
< HTTP/1.1 400 Bad Request
...
< Server: Jetty(11.0.6)
...

Bad Message 400

reason: Ambiguous empty segment in URI

For the record - it's all about org.eclipse.jetty.http.UriCompliance and related org.eclipse.jetty.http.UriCompliance.Violation.
Most (except one related to UTF-16) violations refer to RFC 3986, 3.3. Path.
However JavaDoc for the Violation enum is a bit confusing:

These are actual violations of the RFC, as they represent additional requirements in excess of the strict compliance of RFC 3986.

I'm not sure whether these violations are "actual" or "additional".
But here they are:

AMBIGUOUS_PATH_SEGMENT - it's about . or .. in paths (literal or URL encoded to %2E or %u002E)
AMBIGUOUS_EMPTY_SEGMENT - it's about empty parts after splitting the path by / - and that's the problem we see here
AMBIGUOUS_PATH_SEPARATOR - it's about encoded / within path segment (which is %2F)
AMBIGUOUS_PATH_PARAMETER - it's about path parameters like ..;
AMBIGUOUS_PATH_ENCODING - it's about encoded % within path segment (which is %25)

Fortunately, DEFAULT Jetty 11 org.eclipse.jetty.http.UriCompliance allows one violation: org.eclipse.jetty.http.UriCompliance.Violation#AMBIGUOUS_PATH_SEPARATOR, so we can simply encode %2F.

Yes, I had a hard time with URL encoding in the past with various platforms, therefor this 'strange' escaping scheme. In general I'd recommend to use POST for complex naming, but still wanted to support GET schemes as much as possible. 🤞 that changing the escaping doesn't break other servers (I had some more sever issues with Tomcat to this regard, but this was really a long time ago)

I bet no one in the world uses name=with%3acolon key value in ObjectName ;)
This is currently my problem - in Jolokia 1.x you simply encode %3a with %253a, but this is violation of AMBIGUOUS_PATH_ENCODING in Jetty.
This is the only test failure in client/java for now, but I'll think of something with least impact ;)

I bet no one in the world uses name=with%3acolon key value in ObjectName ;)

I'd suspect Artemis broker might use such names. I saw some object names issues with Artemis before due to the unique naming of destinations in the broker.

So I'll add documentation paragraph about the rules when using GET (and resulting from org.eclipse.jetty.http.UriCompliance). I'll check with Tomcat and Undertow too.
Mind that it's not a problem with POST.

Even when changing from httpclient 4.5 (in Jolokia 1.x) to 4.5.14 (in Jolokia 2.0), we have differences.
For URI like http://localhost:22332/j4p/read/jolokia.it:name=%5C!/,type=naming!//Ok, double slash (//) is untouched by org.apache.http.client.utils.URIUtils#rewriteURI() in 4.5, but normalized in 4.5.13.
See https://issues.apache.org/jira/browse/HTTPCLIENT-1968

That's a pity because / is often part of an MBean name (when a path is used in an ObjectName as an attribute's value). In general we could think about removing that homegrown encoding scheme by something more invasive like an base64 encoding e.g. the ObjectName part (with some prefix indicating that encoding). This should be bulletproof. We could add this is in addition to the encoding right now for something like
http://localhost:22332/j4p/read/b64:am9sb2tpYS5pdDpuYW1lPSU1Qwo=/Ok

I was thinking about base64 too, but in the end, I think it's more about documenting what's possible, what's nice and what's awkward when using path info.
in 6.1.1 chapter of reference doc you have:

Instead of providing the information as path-info, a query parameter p can be used instead.

I want to add these rules, restrictions and new implications of RFC 3986, section-3.3 to the documentation.

I see also some other options:

Use a different HTTP client (okhttp)
Disable the normalization feature of the HTTP client. Someone in that Apache there mentioned:

To keep my application behavior (regarding uri normalization) same as 4.5.6, I need to set setNormalizeUri in RequestConfig to false in v4.5.8. This keeps the behavior same for special characters like "/", "+". Any other special characters that are still affected? Thanks.

I disabled one violation on Jetty side (used for tests): https://github.com/jolokia/jolokia/blob/d8c95438/client/java/src/test/java/org/jolokia/client/request/AbstractJ4pIntegrationTest.java#L64-L66
And disabled normalization on client side: https://github.com/jolokia/jolokia/blob/d8c95438/client/java/src/main/java/org/jolokia/client/J4pClientBuilder.java#L499
Ideally (that's my plan) I want to add some tests using different http clients (http 5, okio, ...)

I've reviewed the escaping rules and added relevant documentation sections. Roughly:

use POST in production
if not, use p query parameter
if not, use GET carefully

I've reviewed the escaping rules and added relevant documentation sections. Roughly:

use POST in production
if not, use p query parameter
if not, use GET carefully


Memory differs due to the matrix alignment or invisible gradient buffer tensors

Hi
I was just wondering what this message means in the MemReporter output
Total Tensors: 266979334        Used Memory: 924.71M
The allocated memory on cuda:0: 1.31G
Memory differs due to the matrix alignment or invisible gradient buffer tensors

Also what is the difference between Used Memory and allocated memory?
Many thanks

The gap between used memory and allocated memory comes from three aspects;

Memory layout alignment, e.g. you have a tensor with size 1024 x 125, but it takes 1024 x 128 for cache & speed optimization
Some tensor introduced in AutoGrad is not visible in python's garbage collect view, so I cannot count them w/o modifying pytorch source code. (usually this one produces most gap)

Hope it helps.


Update Gemfile for FFI version

We started getting build errors for this repo yesterday when ffi released 1.17.0. It requires Ruby 3.0.
Tried this tying of the Gemfile to the previous version 1.16.3 in https://github.com/prebid/prebid.github.io/pull/5381 and it seemed to work.

And the build succeeds now...


add SAMPLE_AVG_CPU_LOAD_LIMIT config

[x] If this pull request closes/resolves/fixes an existing issue, replace the issue number. Closes #<8773>.
[ ] Update the CHANGES log.

Take a look at how TraceIgnoreExtendService extends from SamplingService. I think it would be more elegant.
This doesn't have to change from the core level.
Another thing is, you add another thread just for CPU usage, which concerns me much. The agent is very sensitive about a new thread. It should be more reasonable to ask JVMService holds the latest CPU value, and provide a method for this new plugin.

Ok, I will try it later

Take a look at how TraceIgnoreExtendService extends from SamplingService. I think it would be more elegant. This doesn't have to change from the core level.
Another thing is, you add another thread just for CPU usage, which concerns me much. The agent is very sensitive about a new thread. It should be more reasonable to ask JVMService holds the latest CPU value, and provide a method for this new plugin.

Ok, I will try it later using JVMService, add a new plugin like trace-ignore-plugin.

I have commented on the codes, and I think you haven't tried this in the real case, please do so before submitting codes.

I have commented on the codes, and I think you haven't tried this in the real case, please do so before submitting codes.

I just used idea to debug the agent code, maybe not production scenario... But it do sent the segment data to OAP. I will change the code according to the comment above.

As you are adding a CPU based sampler, so, you should verify whether this is really working.
The code review only could find out some issues, but can't approve this could work as expected. Also, this plugin doesn't like other plugins, we can't test it automatically.
So, please try to establish a runtime env to verify this plugin.

Any update?

Any update?

Recently my work is busy, I will update it when I am free

I create a thread run while(true) code, to increase the cpu usage to 15% (124/ 8核)
and then debug the trySampling code

my config is 10% cpu usage limit, 15% cpu usage is above the limit, trySampling return false which meet the expectation.

Please update changes.md and optional plugin doc with agent.config accordingly.


New filename not applying after stopped download

When pausing and stopping a download, changing filename and starting again the new filename will not be used, instead the old filename will be used.
Recreate:

Start a file download of some random files
Pause it midway and close the download window
Delete any files it downloaded before it paused
Change the filename or the destination (same issue with both)
Start downloading again, making sure to not continue the old download

The newly download files will follow the name and file destination from the first download "session". This issue persists when saving to link list.

I'm having the exact same issue, I'm surprised this hasn't been resolved yet

It is because changing filename or destination via the "destination" pannel is not retro-active. You have to change the filename and folder from download list directly according to the change. Same for monitors btw, it can be a little annonying but it is the way it work acually. Changing this retro-actively would be a pain, plus if you make a mistake it can broke the monitors system. But I agree that for download a "default" path and filename should be a thing, the program see "default" then read the values into the ini. If there is another path and name, then it does not change it.


[10/x] fix spending permissions tx to use the right contract address

What does this PR do and why?
Provide a description of what this PR does. Link to any relevant GitHub issues, Notion tasks or Discord discussions.
Screenshots or screen recordings
If applicable, provide screenshots or screen recordings to demonstrate the changes.
Acceptance checklist

[ ] I have evaluated the Approval Guidelines for this PR.
[ ] I have tested this PR in all supported browsers.
[ ] I have tested this PR in dark mode and light mode (if applicable).

Current dependencies on/for this PR:

main

PR #1654

PR #1655

PR #1656

PR #1657

PR #1658

PR #1659

PR #1660

PR #1661


Timed out waiting to get a heartbeat from kernel process

Cannot start any juniper notebooks.  Using ms-python.python v2020.9.111407
VS Code info:
Version: 1.49.2 (user setup)
Commit: e5e9e69aed6e1984f7499b7af85b3d05f9a6883a
Date: 2020-09-24T16:29:41.983Z
Electron: 9.2.1
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.18362
Mahalo for any assistance!
Aloha,
Kevin

Dup of https://github.com/microsoft/vscode-python/issues/14083


showing and hiding elements depending on zoom level

Hi,
I am trying to show and hide elements depending on the zoom level. I grabbed the function that tracks the zoom level on this example and added the conditions. Is this approach correct/clean or is there a better way to achieve it?
here is the code I am using:
`				  var updateZoom = function() {
var zoom = viewer.viewport.getZoom(true);
var imageZoom = viewer.viewport.viewportToImageZoom(zoom);
             zoomEl.innerHTML = 'Zoom:
' + (Math.round(zoom * 100) / 100) +
              '

Image Zoom:
' + (Math.round(imageZoom * 100) / 100);

			var zoomL =(Math.round(zoom * 100) / 100)

			var zoom0="0.01"
			var zoom1="0.02"
			var zoom2="0.03"

           var square = document.getElementById("square");
			var circle = document.getElementById("circle");
			var triangle = document.getElementById("triangle");

			if(zoomL>=zoom0&&zoomL<zoom1){

			   square.style.display = "none";
				circle.style.display = "none";
				triangle.style.display = "block";
				 console.log ("zoom level 0")

				}

				if(zoomL>=zoom1&&zoomL<zoom2){

				square.style.display = "block";
				circle.style.display = "none";
				triangle.style.display = "none";
				 console.log ("zoom level 1")

				}

				if(zoomL>=zoom2){

				square.style.display = "block";
				circle.style.display = "block";
				triangle.style.display = "none";
				 console.log ("zoom level 2")

				}

			} // FIN UPDATE ZOOM

			viewer.addHandler('open', function() {

			viewer.addHandler("animation-finish", function animationFinishHandler(event){
             console.log("animation-finish");
			  updateZoom();

				});
			});`

Thanks so much for any light.

Seems reasonable to me. You might use animation rather than animation-finish if you want to match the zoom exactly. Also, it's better not to put quotes around your numbers (e.g. use var zoom0=0.01 instead of var zoom0="0.01".
Anyway, that seems good. Is it working well?

Hi, thanks and thanks for asking.
It works, but needs a “fine tunning” ;)
I was reuniting questions to make it clean:
1- To use  zoom values is better (or more accurate) than to use the imageZoom values?
2- On both options I am facing the problem that these values change on window/viewport resize. ( Id like to maintain the autoResize:true). Is there any other value (or trick)  that can measure the zoom of the viewport and remains the same on resize? Ive read other posts on this issue so I am guessing the answer is no ;(
3- I am using "animation-finish" to optimize de calculations, so to grab the zoom value only when animation stops. Maybe I am just complicating and it’s the same as to use “animation” as you suggested and have more accurate values (“match the zoom exactly”).
3 – Can I use this only:
             viewer.addHandler("animation-finish", function animationFinishHandler(event){                    updateZoom(); });
instead of this:
viewer.addHandler('open', function() { viewer.addHandler("animation-finish", function animationFinishHandler(event){ updateZoom(); }); });
What is the difference? Cause both work but I am guessing the open function has a benefit..
Thank you so much for your time again.

1- To use zoom values is better (or more accurate) than to use the imageZoom values?

Either are fine; just depends on what works better for your scenario.

2- On both options I am facing the problem that these values change on window/viewport resize. ( Id like to maintain the autoResize:true). Is there any other value (or trick) that can measure the zoom of the viewport and remains the same on resize? Ive read other posts on this issue so I am guessing the answer is no ;(

Image zoom doesn't change in relation to the viewport size, so if that works better for you, you should use that.

3- I am using "animation-finish" to optimize de calculations, so to grab the zoom value only when animation stops. Maybe I am just complicating and it’s the same as to use “animation” as you suggested and have more accurate values (“match the zoom exactly”).

Yes, that's valid... You're using less time because that happens less frequently.
Note that this works well with the viewer.viewport.getZoom(true); because the true gets the current zoom and not the target of where you're zooming to... After an animation the current and the target should be the same. Another option would be to use the zoom events and use viewer.viewport.getZoom(false); which would give you the target of the zoom, which is set on zoom events, even though the current zoom hasn't yet caught up with it.
The effect for the user of those three techniques is as follows:

animation: The elements hide/show precisely as you pass the specified zoom point.
animation-finish: The elements hide/show a little after you pass the specified zoom point.
zoom: The elements hide/show a little before you pass the specified zoom point (but when we know you will be passing the zoom point).

3 – Can I use this only:
viewer.addHandler("animation-finish", function animationFinishHandler(event){ updateZoom(); });
instead of this:
viewer.addHandler('open', function() { viewer.addHandler("animation-finish", function animationFinishHandler(event){  updateZoom(); }); });
What is the difference? Cause both work but I am guessing the open function has a benefit..

You don't need to wrap your animation-finish (or any other) handler inside of an open handler. You would need an open handler if you actually wanted to perform direct operations; not everything is set up before the image is opened.

Thank you!!! Ill apply these ideas and come back with a report,

Hi, finally some new  advances. ;)
I am facing a problem with the animation of an svg element in relation to zoom level. I have uploaded this example to expose the problem. ( I couldnt make a codepen due to svg restriction issues). The rotate function runs well if its outside the update zoom function, otherwise (like in this example) when I zoom in the triangle rotation slows down and if I zoom in more it finally stops. Please, does anyone understand why it happens and which is the best approach to solve it? (hopefully mantaing the "interaction with the zoom levels) Many many thanks

Guess Ive solved it. It was a problem of running the animation function only if it was not already running. Had to do with the animation function (not with osd). Merci!

@Salitehkat Looks resolved, closing. Please feel free to reopen this issue if necessary!


Warning on react prop height of type string supplied to CroppedImage

Screenshots
Version
4.6.0
Describe the bug
Using botAvatarImage in styleOptions or styleSet causes the warning.
Warning:
backend.js:6 Warning: Failed prop type: Invalid prop `height` of type `string` supplied to `CroppedImage`, expected `number`.
    in CroppedImage (created by Avatar)
    in Avatar (created by ConnectFunction)
    in ConnectFunction (created by Context.Consumer)
    in WebChatConnectedComponent (created by StackedLayout)
    in div (created by StackedLayout)
    in StackedLayout (created by ConnectFunction)
    in ConnectFunction (created by Context.Consumer)
    in WebChatConnectedComponent (created by BasicTranscript)
    in li (created by BasicTranscript)
    in ul (created by BasicTranscript)
    in Composer (created by BasicTranscript)
    in div (created by Panel)
    in Panel (created by Context.Consumer)
    in _default (created by BasicTranscript)
    in div (created by BasicTranscript)
    in BasicTranscript (created by ConnectFunction)
    in ConnectFunction (created by Context.Consumer)
    in WebChatConnectedComponent (created by Composer)
    in div (created by FocusBox)
    in FocusBox (created by Composer)
    in Composer (created by Context.Consumer)
    in Composer
    in Unknown (created by ConnectFunction)
    in ConnectFunction (created by ConnectedComposerWithStore)
    in Provider (created by ConnectedComposerWithStore)
    in ConnectedComposerWithStore (created by BasicWebChat)
    in BasicWebChat (created by FullReactWebChat)
    in FullReactWebChat

Expected behavior
No warning

@neilpalima, I believe this is a syntax error where instead of '90px' (for example, you want to provide 90. This is due to glamor syntax, which is slightly different from CSS. If you turn the string into a number, the error should be resolved.
Just to be sure, could you share your code in both instances (styleOptions and styleSet) so that we can verify?

@corinagum , I used this in styleOptions
{
  rootHeight: '100%',
  rootWidth: '100%',
  bubbleBackground: '#12bcc5',
  bubbleBorderWidth: 'none',
  bubbleBorderColor: '#12bcc5',
  bubbleTextColor: '#fff',
  bubbleBorderRadius: '0px 5px 5px 5px',
  primaryFont: "'Lato', 'sans-serif'",
  bubbleFromUserBorderRadius: '6px',
  bubbleFromUserBackground: '#e1ffc7',
  cardEmphasisBackgroundColor: '#fff',
  fontFamily: 'Lato, Arial, sans-serif',
  botAvatarImage: icon,
  userAvatarInitials: 'P',
}

what should be the correct way?

The code above doesn't produce a warning when I test it. What does your icon variable look like? Based on the warning, it looks like you might have been trying to establish dimensions, is that correct?
The following code applies an avatar for the bot:
const styleOptions = {
          rootHeight: '100%',
          rootWidth: '100%',
          bubbleBackground: '#12bcc5',
          bubbleBorderWidth: '',
          bubbleBorderColor: '#12bcc5',
          bubbleTextColor: '#fff',
          bubbleBorderRadius: '0px 5px 5px 5px',
          primaryFont: "'Lato', 'sans-serif'",
          bubbleFromUserBorderRadius: '6px',
          bubbleFromUserBackground: '#e1ffc7',
          cardEmphasisBackgroundColor: '#fff',
          fontFamily: 'Arial, sans-serif',
          botAvatarImage:
            'https://docs.microsoft.com/en-us/azure/bot-service/v4sdk/media/logo_bot.svg?view=azure-bot-service-4.0',
          userAvatarInitials: 'P'
        };

Please give me more detail on what you are trying to achieve and I'll do my best to help. :)

It was just an imported icon like this
import iconfrom 'images/icon.png';

even after using the styleOptions you used on my end, I can still get the error.

using bubbleBorderWidth: '' causes a warning as well.
backend.js:6 Warning: Failed prop type: Invalid prop `styleSet.options.bubbleBorderWidth` of type `string` supplied to `Bubble`, expected `number`.
    in Bubble (created by ConnectFunction)
    in ConnectFunction (created by Context.Consumer)
    in WebChatConnectedComponent (created by StackedLayout)
    in div (created by StackedLayout)
    in div (created by StackedLayout)
    in div (created by StackedLayout)
    in StackedLayout (created by ConnectFunction)
    in ConnectFunction (created by Context.Consumer)
    in WebChatConnectedComponent (created by BasicTranscript)
    in li (created by BasicTranscript)
    in ul (created by BasicTranscript)
    in Composer (created by BasicTranscript)
    in div (created by Panel)
    in Panel (created by Context.Consumer)
    in _default (created by BasicTranscript)
    in div (created by BasicTranscript)
    in BasicTranscript (created by ConnectFunction)
    in ConnectFunction (created by Context.Consumer)
    in WebChatConnectedComponent (created by Composer)
    in div (created by FocusBox)
    in FocusBox (created by Composer)
    in Composer (created by Context.Consumer)
    in Composer
    in Unknown (created by ConnectFunction)
    in ConnectFunction (created by ConnectedComposerWithStore)
    in Provider (created by ConnectedComposerWithStore)
    in ConnectedComposerWithStore (created by BasicWebChat)
    in BasicWebChat (created by FullReactWebChat)
    in FullReactWebChat

Hi, I'm having same issue. When I try to use botAvatarImage like below. I'm getting CroppedImage warning.
// My Code
const styleOptions = {
   ...
   botAvatarImage:
       'https://docs.microsoft.com/en-us/azure/bot-service/v4sdk/media/logo_bot.svg',
}

Error:

What browser(s) are you using? Could one of you provide a URL to a bot that exhibits this behavior? Thank you.

What browser(s) are you using? Could one of you provide a URL to a bot that exhibits this behavior? Thank you.

I'm using Google Chrome and Internet Explorer 11. I haven't a public project for showing the error.

reassigning to @tdurnford to help load balance me a little. Thanks for the help

Did you guys able to replicate the issue? Unfortunately, I cannot provide a URL.

@neilpalima What bundle are you using? I'm assuming the es5 bundle since you are using IE 11.

I haven't tried it on IE. I encountered the error on chrome. Btw, I'm using this boilerplate.

@neilpalima the link seems to be malformed, could you check and fix?

@corinagum sorry for that. I updated it.

I was able to reproduce this error. It looks like the width prop type in the CroppedImage component needs to be updated.
CroppedImage.propTypes = {
  alt: PropTypes.string,
  className: PropTypes.string,
- height: PropTypes.number.isRequired,
+ height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired
  src: PropTypes.string.isRequired,
  width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired
};

https://github.com/microsoft/BotFramework-WebChat/blob/master/packages/component/src/Utils/CroppedImage.js#L38


[Question] Displaying Current Position on Right Side in Landscape Mode

I have a question about navigation when the device is in landscape mode.

I would like the current position to be automatically displayed on the right side of the screen instead of the center, like Google Maps app (see attached image) when the device is turned horizontally.
With the Navigation SDK for Android, it is possible to use setPadding to shift the current position to the right, but it seems that setPadding is not available in the flutter SDK. Is there any plan to make this available?

Hi @iwata-yasuaki,
This is currently not possible; and having ability to control map padding is something the package should support.
I've labeled this as feature request.