wxLua problems

Description:

I'm adding this issue now because it needs to be resolved before the 1.1 release -- as the situation currently stands, wxLua code generation should be dropped before the release. I want to leave this issue open in case an official binary of wxLua 3.2 becomes available and/or I am able to get a build of wxLua working well enough to incorporate into wxUiEditor.
wxLua doesn't have any current official binaries for Windows available -- the closest is ZeroBrane Studio, but that uses wxWidgets 3.1.4 and an even older version of wxLua (3.0) which presumably means wxWidgets 3.0. Even with the non-official binary built on 3.1.5 that I was able to find, my code generated dialog works with wxLua.exe but not with ZeroBrane. It works with Lua 5.4, but not LuaJIT. I have been unable to get wxLua to build, so currently I have no way to test the output if I generate code that utilizes wxWidgets 3.2 functionality.
The other issue with wxLua is events -- with C++ and wxPython, I can generate a placeholder function and bind to it. The wxLua Connect function is designed to have the full definition of the function as part of the call. That's essentially equivalent to using C++ Lambdas for the event hanlding, but I don't currently have a good way to generate or store a Lua equivalent.
wxLua works well with XRC files. These have the advantage that for the most part they simply ignore any properties that are newer then the specific version of wxWidgets being used. We already generate XRC files, so it might make more sense to not expose wxLua code generation at this time. I'd probably keep working on generating the code, but move it into the internal builds for now. I do have a side project of trying to get wxLua to build with LuaJIT and then incorporate that directly into wxUiEditor. Should that actually get implemented, then it would be a lot easier to generate wxLua code and potentially include it inside of a Lua code editor that would be part of wxUiEditor.

ZeroBraneStudio has stated they have no current plans for creating a release with wxLua 3.2. While the wx shared library is built with wxWidgets 3.1.4, the wxLua version is 3.0.0, so presumably none of the newer control properties would be available. It also means no support for hi-DPI displays, no SVG files, none of the XRC enhancements added to 3.1.7, etc. There's still a possibility I can integrate wxLua into wxUiEditor which would at least provide a Windows version of wxLua that people could use. However, I'm going to assume that just prior to the beta, all wxLua-generating functionality will need to be allowed in internal builds only.  Since it looks like the only way for people to get a wxLua 3.2 binary is if we provide it, we should either generate code assuming 3.2 or none at all. That matches the wxPython code which is available as a 3.2 binary.


I setup visual studio 2017  professional offline and failed.

After i type the command and execute.The setup program stopped directly.It seems like the visual studio installer cannot work in my computer.Please give me an answer.Thanks!

@TerryGLee Can you point @jsrdzhk to the right place to log his issue with installation?

@jsrdzhk We're sorry to hear that you are having problems installing Visual Studio. Unfortunately, this venue is meant for reporting problems with our documentation. To report a problem with the product itself, please use our "Report a Problem" tool.
Please note that you can report a problem even if you cannot install Visual Studio by using the Visual Studio Installer. You can find more information about that in the "Reporting alternatives" section of the How to report a problem with Visual Studio 2017 page.
Last but not least, we do offer other support solutions for installation problems. For example, we offer a live chat option. For more information about that and other product support options for installation, see the "Get support" section of the Install Visual Studio page.
Thanks,
~ Terry


Clarfied rex-ray support.

What are your changes?
What type of changes does your doc introduce?

[ ] Bug fix
[x] New feature

What is the urgency level of this change?

[ ] Blocker
[ ] High
[x] Medium

I have completed these items:

[x] I have tested all commands and code snippets.
[x] I have built locally and tested for broken links and formatting.
[ ] I have made this change for all affected versions (e.g. 1.7, 1.8, and 1.9).
[ ] My doc follows the style guide: https://github.com/dcos/dcos-docs#contributing.

Ping @emanic, @sascala, or @joel-hamill for reviewing pull request changes.
If you included a comment with your commit, it appears here:

ping @mhausenblas for review.

LGTM @joel-hamill let's 🚢 it!


Never buffer in the write implementation

There are a few improvements I see with the current implementation:

A write implementation should rarely buffer their own inputs and instead only make direct attempts at writing to the sink. Users that need better performance should use the BufWriter struct instead.
Specifically for syslog, syslog makes no guarantees that a write was successful (no errno or return value), so flushing doesn't conceptually make too much sense to begin with.
The current logic to check and flush on drop is faulty if there was call to flush and a write immediately after:

let writer = SyslogWriter::new(...);
writer.flush()?;
writer.write(b"hello world\n")?;
drop(writer);

This results in the message being lost.
This PR addresses all concerns by never using the buffer as buffered input to begin with (and only uses it as working space for non-nul-terminated data), and writes will always call syslog. Flushing now does nothing, as we never store any data to flush out nor can we determine if there is data to flush. Finally, if we're given garbage input (data with interior nulls) we now check for that and return an error on write.
This diff was tested with cargo t.

A write implementation should rarely buffer their own inputs and instead only make direct attempts at writing to the sink. Users that need better performance should use the BufWriter struct instead.

tracing-subscriber creates a new writer for each event and each tracing event should correspond to one syslog message, so the buffering exists to ensure that multiple calls to Write::write() making up a single event are combined into a single message. In practice, tracing-subscriber makes a single call to write() for each event so we could make write() always call syslog(), but this isn't documented so I'm not sure it's a good idea to rely on.

Specifically for syslog, syslog makes no guarantees that a write was successful (no errno or return value), so flushing doesn't conceptually make too much sense to begin with.
The current logic to check and flush on drop is faulty if there was call to flush and a write immediately after:

True, maybe flushing should be a no-op and Drop:: drop() should be the only function that writes to syslog() (unless we move that to write()).

This PR addresses all concerns by never using the buffer as buffered input to begin with (and only uses it as working space for non-nul-terminated data), and writes will always call syslog.

Assuming that writes that happen to have a zero at the end of the data are intended to be nul-terminated strings doesn't make sense to me, since fmt, io, and tracing make no such assumption.

Finally, if we're given garbage input (data with interior nulls) we now check for that and return an error on write.

Agree that this is a good idea

Thanks for the review.

In practice, tracing-subscriber makes a single call to write() for each event so we could make write() always call syslog(), but this isn't documented so I'm not sure it's a good idea to rely on.

Assuming that writes that happen to have a zero at the end of the data are intended to be nul-terminated strings doesn't make sense to me, since fmt, io, and tracing make no such assumption.

Agreed.
I think this sink is one of the rare occasions where it should be implementing std::fmt::Write instead of std::io::Write instead. This however isn't possible because tracing-subscriber::fmt doesn't offer this and only accepts io::Write (as far as I can tell at least, especially with how MakeWriter is implemented.
@davidbarsky, is adding support for fmt::Write trait implementers a viable feature request? It seems fitting for the tracing-subscriber::fmt module. Alternatively, if it's also an easy enough implementation, I can also try to file a PR against tracing.

I think this sink is one of the rare occasions where it should be implementing std::fmt::Write instead of std::io::Write instead.

I'm not sure fmt::Write is much more meaningful here since it still allows multiple small writes to a writer — tracing-subscriber could call fmt::Write::write_char() for each character in the formatted event and we'd have to handle that gracefully. For this crate, what I see making the most sense would be something like MakeWriter::Writer: FnOnce(&str) -> Result<(), Error> (possibly with &[u8] instead of &str and a custom trait instead of FnOnce) which would guarantee implementers that the writer is written to only once per event. It might be possible to make such a change without too much breakage if the new trait could be implemented for io::Write implementers

I see your point with write_char, but at the very least it's still a little more closer to the semantics this would optimally have.
That solution would probably be something like this:
trait WriteOnce {
    fn write(self, buf: &[u8]) -> io::Result<usize>;
}

impl<W: io::Write> WriteOnce for W {
    fn write(self, buf: &[u8]) -> io::Result<usize> {
        Self::write_all(buf)?;
    }
}

where we could change the bounds on the MakeWriter trait to be WriteOnce instead.
I think problem with this is that the current expectation is that a MakeWriter can return a cached Writer impl for cases where generating a Writer is expensive. You can work around this by having everything return &mut W, but that doesn't feel great and I think is still a breaking change.

I did see that there's already an internal WriteAdapter that accepts a fmt::Write and implements MakeAdapter.
The implementation of it actually makes the assumption that we're getting valid &strs as input, so there's already an undocumented assumption there.
For what it's worth, it looks like the implementation of Subscriber uses Write::write_all. This means that so long as we return the length of the buffer for our Write::write call, we're guaranteed to only have one write per call. The surrounding code also suggests that the buffer they use is a String buffer, which means that right now we could actually assume the byte input to be a valid str (but guarding against that is still good practice).
I think getting both facets documented + tested would probably be a better solution (or exposing that adapter as a public interface). The question is here is if tracing is willing to commit to these properties as part of their public interface.

I think problem with this is that the current expectation is that a MakeWriter can return a cached Writer impl for cases where generating a Writer is expensive. You can work around this by having everything return &mut W, but that doesn't feel great and I think is still a breaking change.

I don't follow the ownership implication you're suggesting: if an existing MakeWriter returns a T: Write, the same T can be returned and would satisfy WriteOnce because of the blanket impl. The only change should be on the consuming side, where the Writer type would be guaranteed to be written to at most once.

For what it's worth, it looks like the implementation of Subscriber uses Write::write_all. This means that so long as we return the length of the buffer for our Write::write call, we're guaranteed to only have one write per call. The surrounding code also suggests that the buffer they use is a String buffer, which means that right now we could actually assume the byte input to be a valid str (but guarding against that is still good practice).

Right, this is what I was getting at earlier, although str-ness of the bytes doesn't matter because strs can contain nul bytes.

I don't follow the ownership implication you're suggesting: if an existing MakeWriter returns a T: Write, the same T can be returned and would satisfy WriteOnce because of the blanket impl. The only change should be on the consuming side, where the Writer type would be guaranteed to be written to at most once.

Ah, you're right here. I was considering the Mutex<Write> case but thinking about that implementation more they would be already be handing out &mut W (or some MutexGuard wrapped version) instead, which would still satisfy W: Write for WriteOnce.

Right, this is what I was getting at earlier

Ah, yeah, I wanted to emphasize that currently the Writer determines how many Write calls are performed by tracing, even if it's not strictly guaranteed by tracing. This is also just me taking notes for an eventual PR, since it looks like this is a pretty patch-version compatible change.

although str-ness of the bytes doesn't matter because strs can contain nul bytes.

Oh jeez, I thought UTF-8 forbid null bytes.


Fix Future Exception Handling

This issue was caught when the subtask ran into an exception, but the error message was not of the subtask getting into an exception. This is not helpful in debugging.

@thom311 @SalDaniele PTAL

LGTM


[TEST] v1.3.1-rc1 release testing: Support Volume Snapshot

What's the test to develop? Please describe
Test the Support Volume Snapshot of v1.3.1-rc1 release
https://app.qase.io/run/HV/dashboard/7/f0d9917bab46aa531b5f35a9c85972402be565db
Ref: https://github.com/harvester/harvester/issues/2294
Verification Steps

Install Harvester with any nodes
Create an Image for VM creation
Create vm1 with the image and an additional data volume disk-1
Login to vm1, execute following commands:

fdisk /dev/vdb with new and primary partition
mkfs.ext4 /dev/vdb1
mkdir vdb && mount -t ext4 /dev/vdb1 vdb
ping <IP_ADDRESS> | tee -a vdb/test

Navigate to Volumes, then click Take Snapshot button on disk-1 of vm1 into vm1-disk-2
Navigate to Virtual Machines, then update vm1 to add existing volume vm1-disk-2
Login to vm1 then mount /dev/vdb1(disk-1) and /dev/vdc1(disk-2) into vdb and vdc
test file should be appeared in both folders of vdb and vdc
test file should not be empty in both folders of vdb and vdc

Tested PASS on v1.3.1-rc1 (24/05/31). Close this task
Result
$\color{green}{\textsf{PASS}}$ Test file exists on the original and restored volume snapshot $~~$

When the restored volume snapshot was added to the vm

```
opensuse@vm1:~> lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda    253:0    0  10G  0 disk
├─vda1 253:1    0   2M  0 part
├─vda2 253:2    0  20M  0 part /boot/efi
└─vda3 253:3    0  10G  0 part /
vdb    253:16   0  10G  0 disk
└─vdb1 253:17   0  10G  0 part
vdc    253:32   0  10G  0 disk
└─vdc1 253:33   0  10G  0 part
vdd    253:48   0   1M  0 disk

```

After we mount both vdb1 and vdc1

```
vm1:~ # mkdir vdc && mount -t ext4 /dev/vdc1 vdc
```

```
vm1:~ # mount -t ext4 /dev/vdb1 vdb
```

We can find the test file exists on both the original and restored volume disks

```
vm1:~ # ls vdb/
lost+found  test
vm1:~ # ls vdc/
lost+found  test
```

Test Information

Test Environment: Three nodes on baremetal machines
Harvester version: v1.3.1-rc1 (24/05/31)

Verify Steps
Harvester installation path

Install Harvester with any nodes
Create an Image for VM creation
Create vm1 with the image and an additional data volume disk-1
Login to vm1, execute following commands:

    - sudo -i
    - fdisk /dev/vdb with new and primary partition
    - mkfs.ext4 /dev/vdb1
    - mkdir vdb && mount -t ext4 /dev/vdb1 vdb
    - ping <IP_ADDRESS> | tee -a vdb/test

Navigate to Volumes, then click Take Snapshot button on disk-1 of vm1 save with name vm1-disk-2

Navigate to the volume snapshot, click to restore the snapshot to new volume with name vm1-disk-2-restore

Navigate to Virtual Machines, then update vm1 to add existing vm1-disk-2-restore

Login to vm1 then mount /dev/vdb1(disk-1) and /dev/vdc1(disk-2) into vdb and vdc

vm1:~ # mkdir vdc && mount -t ext4 /dev/vdc1 vdc

vm1:~ # mount -t ext4 /dev/vdb1 vdb

test file should be appeared in both folders of vdb and vdc

vm1:~ # ls vdb/
lost+found  test
vm1:~ # ls vdc/
lost+found  test


Bump compatibility from 4.10-4.12 to 4.10-4.14

I have relaxed the version constraint to encompass 4.14, but since it is not yet released, the active parts have been updated to 4.13 only, which is the version I am currently testing on anyways.

test

Code looks good Chris! I would expect to have CI for all the covered OCP versions (or at least, the three EUS versions, OCP 4.10/4.12/4.14). Should we do that as a follow up?

I think the issue is that there aren't published 4.14 artifacts in all locations yet, so we'll need to do another round of this closer to the import period. The CVP jobs etc all exist for 4.14 so internal artifacts should exist.

Code looks good Chris! I would expect to have CI for all the covered OCP versions (or at least, the three EUS versions, OCP 4.10/4.12/4.14). Should we do that as a follow up?

registry.redhat.io/openshift4/ose-operator-registry:v4.14 does not exist yet, so yes, we'll have to follow up later.

This passed testing on 4.10 and 4.12, so merging to continue upstream experimentation


Added CSS design icons to the navigation bar and changed the color of…

Modified the navigation bar by adding CSS icons and changing the color.

@WhyteAsamoah
Thanks.  Please resolve the conflicts.
Check section Update the branch chinese-castle with the central repo's master branch at the following link:
https://github.com/spm2020spring/TeamCollaborationTutorial/blob/master/team.rst
-Hui

@WhyteAsamoah
Thanks.  Please resolve the conflicts.
Check section Update the branch chinese-castle with the central repo's master branch at the following link:
https://github.com/spm2020spring/TeamCollaborationTutorial/blob/master/team.rst
-Hui

@WhyteAsamoah
Thanks.  Please resolve the conflicts.
Check section Update the branch chinese-castle with the central repo's master branch at the following link:
https://github.com/spm2020spring/TeamCollaborationTutorial/blob/master/team.rst
-Hui

@WhyteAsamoah
Thanks.  Please resolve the conflicts.
Check section Update the branch chinese-castle with the central repo's master branch at the following link:
https://github.com/spm2020spring/TeamCollaborationTutorial/blob/master/team.rst
-Hui

@WhyteAsamoah
Thanks. Please resolve the conflicts.
Check section Update the branch chinese-castle with the central repo's master branch at the following link:
https://github.com/spm2020spring/TeamCollaborationTutorial/blob/master/team.rst
-Hui

We have resolved the conflict. Kindly let us know if there are anymore issues to be solved.

Tanaka -<PHONE_NUMBER>34
Martha -<PHONE_NUMBER>35

@WhyteAsamoah
Thanks. Please resolve the conflicts.
Check section Update the branch chinese-castle with the central repo's master branch at the following link:
https://github.com/spm2020spring/TeamCollaborationTutorial/blob/master/team.rst
-Hui

We have resolved the conflict. Kindly let us know if there are anymore issues to be solved.

Tanaka -<PHONE_NUMBER>34
Martha -<PHONE_NUMBER>35


main.yml

Why:
Closes [issue link]

What's being changed:

Check off the following:

[x] I have reviewed my changes in staging (look for "Automatically generated comment" and click Modified to view your latest changes).
[x] For content changes, I have completed the self-review checklist.

Writer impact (This section is for GitHub staff members only):

[x] This pull request impacts the contribution experience

[x] I have added the 'writer impact' label
[x] I have added a description and/or a video demo of the changes below (e.g. a "before and after video")

A test of itegrity a built app I can design where there ar two battleit ot in  the lis the programer has told it to the paths it relate to intelctual law says this so program shall not have the tight to.stop progression but leave coment where.host doesnt have to be bothered all the time


Fix the UX of SearchBar & Bottom Nav Bar

So, right now when we scroll the nav bar and search bar it sticks to their point but for the betterment of UX, we can do that when we scroll down the column both the nav & search bar gets hidden, and when the user scrolls up it both the nav & search bar should show up.

I can do that

Yeah sure
I hope you got the point.

but tell me I don't have enough exp about github
now wait to merge for my PR for cleaning note
or start this task with current develop branch
sorry for that

Yeah right now start this task with creating a new branch.
Later you have to merge the updates onto your own branch.

Hi @aritra-tech,
I have completed the enhancement #148 and created a PR for it, can you please review it.

Hey @dharamveer-gupta thanks for contributing but this issue is already assigned to @salmanA169.
If he doesn't want to do then it will be passed to you.
I'm not closing your PR but if @salmanA169 doesn't want to work on this then I will assign it to you and merge your PR.
I hope you got it
Thank you @dharamveer-gupta.

no problem if his PR works fine assign to him
because I am still fix my last issue for cleaning note

no problem if his PR works fine assign to him because I am still fix my last issue for cleaning note

Okay then @salmanA169 I'm assigning this PR him.
Thank you.


Buffer damage and scaling (attempt 2)

Keep track of the scale of the buffer set by surface.set_buffer_scale.
Calculate the height and width of the texture from the buffer depending on the
scale when it is attached.
Use buffer damage to determine the damage of the buffer when flushing damage.
Convert surface damage to buffer damage and union to the surface buffer_damage
prior to flushing damage.
supercedes #65

This one actually makes the little green ball work.

LGTM overall but the sizing issues need to be handled better.

Ok I think this is ready for review.

Thanks!


internal/restic: close os.File after checking for error

This fixes a spot in internal/restic where a nil os.File could attempt to Close() even though fs.Open() returned an error.

I hope nobody minds me approving changes without having write access.

I hope nobody minds me approving changes without having write access.

@greatroar not at all, thanks! :)


Feat/upgrade execa (#142)

Description
Made necessary changes on execa upgrade
Fixes # (issue)
#142
Type of change

[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

This PR requires intense testing, I'd recommend testing it locally covering all possible arguments.

As this is not a critical PR, I will work on it as soon as I am free.
I'd recommend not merging this until the upgrade is completed.


Update Article page example

Not going to merge until review with @chrisdevereux has taken place.

one thing I've spotted in the backports branch is that we've added a 'prose' class, which applies some changes to margins and padding. we probably want that applied in our article pattern too

<ul> should have govuk-list govuk-list--bullet class applied

otherwise looks good

Agreed that additional classes that need to be added to ULs, will be scoped by the lbcamden-prose class, as we believe that we will not have the ability to add classes to content created in a rich text editor.


adding wait for zookeeper script

@nwangtw @xiaoyao1991 @kramasamy This PR fixes the debian9 and ubuntu:14.04 images that are used in the helm chart..  It will allow for us to use newly created artifacts. Please review.

@jerrypeng @aahmed-se @kramasamy @cckellogg Could any of you review these changes please?
Thanks in advance.

I imagine quorum would be what we wanted, I'm not sure to be honest.  The reason I added this script in is because the helm chart as it is in the repo today expects this script to be executed.  Upon startup of the heron tools the init containers are waiting for zookeeper.  See here.  I'm trying to pick up where the chart was left off at..  If you use the docker scripts in this folder to build a heron docker image with the base as debian9 the helm deployment will fail since this wait-for-zookeeper.sh script is not present in the container.  With this change I was able to get the helm chart to deploy successfully.  Not knowing the full story of the whats or why something was done, I wanted some review on this from someone(s) who may be more familiar with it.

I agree that waiting for limited amount of time would probably be better, but I'm unsure of how we would handle that failed deployment. I'd like to merge this for now. Then find a better way to handle failures once we get more feedback from users.

KK. SGTM. I am going to approve and see if other guys have any other concerns or not before merging to master.


Live Share extension fails to start collaboration session: "Couldn't find a valid ICU package installed on the system."

Does this issue occur when all extensions are disabled?: No.

VS Code Version: 1.67.1 (Debian distribution via AUR)
OS Version: Linux 5.17.6-1-MANJARO #1 SMP PREEMPT Mon May 9 07:52:43 UTC 2022 x86_64 GNU/Linux

Steps to Reproduce:

Try to start a collaboration session in the Visual Studio Live Share extension.
Observe that nothing happens. In the extension host log the following traceback is visible:

[2022-05-19 11:13:18.559] [exthost] [error] Activating extension ms-vsliveshare.vsliveshare failed due to an error:
[2022-05-19 11:13:18.559] [exthost] [error] Error: Agent terminated with exit code: 0 and signal null: Process terminated. Couldn't find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support.at System.Environment.FailFast(System.String)
   at System.Globalization.GlobalizationMode.GetGlobalizationInvariantMode()
   at System.Globalization.GlobalizationMode..cctor()
   at System.Globalization.CultureData.CreateCultureWithInvariantData()
   at System.Globalization.CultureData.get_Invariant()
   at System.Globalization.CultureInfo..cctor()
   at System.String.ToLowerInvariant()
   at System.Text.EncodingHelper.GetCharset()
   at System.Text.EncodingHelper.GetEncodingFromCharset()
   at System.ConsolePal.GetConsoleEncoding()
   at System.Console+<>c.<get_OutputEncoding>b__19_0()
   at System.Threading.LazyInitializer.EnsureInitializedCore[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon ByRef, System.Object ByRef, System.Func`1<System.__Canon>)
   at System.Threading.LazyInitializer.EnsureInitialized[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon ByRef, System.Object ByRef, System.Func`1<System.__Canon>)
   at System.Console.get_OutputEncoding()
   at System.Console.CreateOutputWriter(System.IO.Stream)
   at System.Console+<>c.<get_Out>b__26_0()
   at System.Threading.LazyInitializer.EnsureInitializedCore[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon ByRef, System.Object ByRef, System.Func`1<System.__Canon>)
   at System.Threading.LazyInitializer.EnsureInitialized[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon ByRef, System.Object ByRef, System.Func`1<System.__Canon>)
   at System.Console.get_Out()
   at Microsoft.Extensions.CommandLineUtils.CommandLineApplication..ctor(Boolean)
   at Microsoft.Cascade.Agent.Program..ctor()
   at Microsoft.Cascade.Agent.Program.Main(System.String[])
    at ChildProcess.<anonymous> (/home/kleines/.vscode/extensions/ms-vsliveshare.vsliveshare-1.0.5561/src/abstractions/node/agent.ts:303:32)
    at ChildProcess.emit (node:events:402:35)
    at maybeClose (node:internal/child_process:1064:16)
    at Socket.<anonymous> (node:internal/child_process:450:11)
    at Socket.emit (node:events:390:28)
    at Pipe.<anonymous> (node:net:687:12)

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.67.2. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!


Release Note 2.0.0

Previous Release Notes:
Release Note 1.2.6
Release Note 2.0-beta
We are excited to announce the release of Apache Doris 2.0.0. We would like to extend our heartfelt thanks to the 275 Apache Doris Contributors who have committed over 4100 bug fixes and optimizations altogether. You are the driving force behind all the new features and performance leap!

Download: https://doris.apache.org/download
GitHub source code: https://github.com/apache/doris/tree/branch-2.0

In the middle of 2023, we are half way on our roadmap and many steps closer to our visions that we put forward on Doris Summit 2022:

We want to build Apache Doris into an all-in-one platform that can serve most of our users' needs so as to maximize their productivity while inducing the least development and maintainence costs. Specifically, it should be capable of data analytics in multiple scenarios, support both online and offline workloads, and deliver lightning performance in both high-throughput interactive analysis and high-concurrency point queries. Also, in response to industry trends, it should be able to provide seamless analytic services across heterogenous data sources, and unified management services for semi-structured and unstructured data.

Taking on these great visions means a path full of hurdles. We need to figure out answers to all these difficult questions:

How to ensure real-time data writing without compromising query service stability?
How to ensure online service continuity during data updates and table schema changes?
How to store and analyze structured and semi-structured data efficiently in one place?
How to handle multiple workloads (point queries, reporting, ad-hoc queries, ETL/ELT, etc.) at the same time and guarantee isolation of them?
How to enable efficient execution of complicated SQLs, stability of big queries, and observability of execution?
How to integrate and access data lakes and many heterogenous data sources more easily?
How to improve query performance while largely reducing storage and computation costs?

We believe that life is miserable for either the developers or the users, so we decided to tackle more challenges so that our users would suffer less. Now we are happy to announce our progress with Apache Doris 2.0.0. These are what you can expect from this new version:
A 10 times Performance Increase
High performance is what our users identify us with. It has been repeatedly proven by the test results of Apache Doris on ClickBench and TPC-H benchmarks during the past year. But there remain some differences between benchmarking and real-life application:

Benchmarking simplifies and abstracts real-world scenarios so it might not cover the complex query statements that are frequently seen in data analytics.
Query statements in benchmarking are often fine-tuned, but in real life, fine-tuning is just too demanding, exhausting, and time-consuming.

That's why we introduced a brand new query optimizer: Nereids. With a richer statistical base and the advanced Cascades framework, Nereids is capable of self-tuning in most query scenarios, so users can expect high performance without any fine-tuning or SQL rewriting. What's more, it supports all 99 SQLs in TPC-DS.
Testing on 22 TPC-H SQLs showed that Nereids, with no human intervention, brought an over 10-time performance increase compared to the old query optimizer. Similar results were reported by dozens of users who have tried Apache Doris 2.0 Alpha and Beta in their business scenarios. It has really freed engineers from the burden of fine-tuning.
Documentation: https://doris.apache.org/docs/dev/query-acceleration/nereids/
Nerieds is enabled by default in Apache Doris 2.0.0: SET enable_nereids_planner=true.
Support for a Wider Range of Analytic Scenarios
A 10 times more cost-effective log analysis solution
From a simple OLAP engine for real-time reporting to a data warehouse that is capable of ETL/ELT and more, Apache Doris has been pushing its boundaries. With version 2.0, we are making breakthroughs in log analysis.
The common log analytic solutions within the industry are basically different tradeoffs between high writing throughput, low storage cost, and fast text retrieval. But Apache Doris 2.0 allows you to have them all. It has inverted index that allows full-text searches on strings and equivalence/range queries on numerics/datetime. Comparison tests with the same datasets in the same hardware environment showed that Apache Doris was 4 times faster than Elasticsearch in log data writing, 2 times faster in log queries, and cost only 20% of the storage space that Elasticsearch used.
We are also making advancements in multi-model data analysis. Apache Doris 2.0 supports two new data types: Map and Struct, as well as the quick writing, functional analysis, and nesting of them.
Read more: https://doris.apache.org/blog/Inverted%20Index
High-concurrency data serving
In scenarios such as e-commerce order queries and express tracking, there will be a huge number of end data users inputing queries for a small piece of data simultaneously. These are high-concurrency point queries, which can bring huge pressure on the system. A traditional solution is to introduce Key-Value stores like Apache HBase for such queries, and Redis as a cache layer to ease the burden, but that means redundant storage and higher maintainence costs.
For a column-oriented DBMS like Apache Doris, the I/O usage of point queries will be multiplied. We need neater execution. Thus, we introduced row storage format and row cache to increase row reading efficiency, short-circuit plans to speed up data retrieval, and prepared statements to reduce frontend overheads.
After these optimizations, Apache Doris 2.0 reached a concurrency level of 30,000 QPS per node on YCSB on a 16 Core 64G cloud server with 4×1T hard drives, representing an improvement of 20 times compared to older versions. This makes Apache Doris a good alternative to HBase in high-concurrency scenarios.
Doc: https://doris.apache.org/blog/High_concurrency
Enhanced data lakehouse capabilities
In Apache Doris 1.2, we introduced Multi-Catalog to support the auto-mapping and auto-synchronization of data from heterogeneous sources. After optimizations in data reading, execution engine, and query optimizer, Doris 1.2 delivered a 3~5 times faster query performance than Presto/Trino in standard tests.
In Apache Doris 2.0, we extended the list of data sources supported and conducted optimizations according to the actual production environment of users.

More data sources supported

Supported snapshot queries on Hudi Copy-on-Write tables and read optimized queries on Hudi Merge-on-Read tables; The support for incremental queries and snapshot queries on Merge-on-Read tables is under plan.

Doc: https://doris.apache.org/docs/dev/lakehouse/multi-catalog/hudi/

Supported connection to Oceanbase via JDBC Catalog, prolonging the list of supported relational databases which include MySQL, PostgreSQL, Oracle, SQLServer, Doris, ClickHouse, SAP HANA, and Trino/Presto.

Doc: https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/

Data Privilege Control

Supported authorization for Hive Catalog via Apache Range; Supported extensible privilege authorization plug-ins to allow user-defined authorization method on any catalog.

Doc: https://doris.apache.org/docs/dev/lakehouse/multi-catalog/hive/

Performance improvement

Accelerated reading of flat tables and large numbers of small files; improved query speed by dozens of times; reduced reading overhead by techniques such as full loading of small files, I/O coalescing, and data pre-fetching.

Increased query speed on ORC/Parquet files by 100% compared to version 1.2.

Supported local caching of lakehouse data. Users can cache data from HDFS or object storage in local disks to speed up queries involving the same data. In the case of cache hits, querying lakehouse data will be as quick as querying internal data in Apache Doris.

Doc: https://doris.apache.org/docs/dev/lakehouse/filecache/

Supported collection of external table statistics. Users can obtain statistics about their specified external tables via the Analyze statement so that Nereids can fine-tune the query plan for complicated SQLs more efficiently.

Doc: https://doris.apache.org/docs/dev/lakehouse/multi-catalog/

Improved data writeback speed of JDBC Catalog. By way of PrepareStmt and other batch methods, users can write data back to relational databases such as MySQL and Oracle via the INSERT INTO command much faster.

A Unified Platform for Multiple Analytic Workloads
A self-adaptive parallel execution model
With the expansion of user base, Apache Doris is undertaking more and more analytic workloads while handling larger and larger data sizes. A big challenge is to ensure high execution efficiency for all these workloads and avoid resource preemption.
Older versions of Apache Doris had a volcano-based execution engine. To give full play to all the machines and cores, users had to set the execution concurrency themselves (for example, change parallel_fragment_exec_instance_num from the default value 1 to 8 or 16). But problems existed when Doris had to deal with multiple queries at the same time:

Instance operators took up the threads and the query tasks didn't get executed. Logical deadlocks occurred.
Instance threads were scheduled by a system scheduling mechanism and the switching between threads brought extra overheads.
When processing various analytic workloads, instance threads might fight for CPU resources so queries and tenants might interrupt each other.

Apache 2.0 brought in a Pipeline execution engine to solve these problems. In this engine, the execution of queries are driven by data. The blocking operators in all the query execution processes are split into pipelines. Whether a pipeline gets an execution thread depends on whether its data is ready. As a result:

The Pipeline execution model splits the query execution plan into pipeline tasks based on the blocking logic and asynchronizes the blocking operations, so no instance is going to take up a single thread for a long time.
It allows users to manage system resources more flexibly. They can take different scheduling strategies to assign CPU resources to various queries and tenants.
It also pools data from all buckets, so the number of instances will not be limited by the number of buckets, and the system doesn't have to frequently create and destroy threads.

With the Pipeline execution engine, Apache Doris is going to offer faster queries and higher stability in hybrid workload scenarios.
Doc: https://doris.apache.org/docs/dev/query-acceleration/pipeline-execution-engine/
The Pipeline execution engine is enabled by default in Apache Doris 2.0: Set enable_pipeline_engine = true. parallel_pipeline_task_num represents the number of pipeline tasks that are parallelly executed in SQL queries. The default value of it is 0, and users can change the value as they need. For those who are upgrading to Apache Doris 2.0 from an older version, it is recommended to set the value of parallel_pipeline_task_num to that of parallel_fragment_exec_instance_num in the old version.
Workload management
Based on the Pipeline execution engine, Apache Doris 2.0 divides the workloads into Workload Groups for fine-grained management of memory and CPU resources.
By relating a query to a Workload Group, users can limit the percentage of memory and CPU resources used by one query on the backend nodes and configure memory soft limits for resource groups. When there is a cluster resource shortage, the system will kill the largest memory-consuming tasks; when there is sufficient cluster resources, once the Workload Groups use more resources than expected, the idle cluster resources will be shared among multiple Workload Groups and the system memory will still be used to ensure stable execution of queries.
create workload group if not exists etl_group
properties (
    "cpu_share"="10",
    "memory_limit"="30%",
    "max_concurrency" = "10",
    "max_queue_size" = "20",
    "queue_timeout" = "3000"
);

You can check the existing Workload Group via the Show command:
Query queue
When creating a Workload Group, users can set a maximum query number for it. Queries beyond that limit will wait for execution in the query queue.

max_concurrency: the maximum number of queries allowed by the current Workload Group
max_queue_size: the length of query queue. After all spots are filled, any new queries will be rejected.
queue_timeout: the waiting time of a query in a queue, measured in miliseconds. If a queue has been waiting for longer than this limit, it will be rejected.

Doc: https://doris.apache.org/docs/dev/admin-manual/workload-group/
Elastic Scaling and Storage-Compute Separation
When it comes to computation and storage resources, what do users want?

Elastic scaling of computation resources: Scale up resources quickly in peak times to increase efficiency and scale down in valley times to reduce costs.
Lower storage costs: Use low-cost storage media and separate storage from computation.
Separation of workloads: Isolate the computation resources of different workloads to avoid preemption.
Unified management of data: Simply manage catalogs and data in one place.

To separate storage and computation is a way to realize elastic scaling of resources, but it demands more efforts in maintaining storage stability, which determines the stability and continuity of OLAP services. To ensure storage stability, we introduced mechanisms including cache management, computation resource management, and garbage collection.
In this respect, we divide our users into three groups after investigation:

Users with no need for resource scaling
Users requiring resource scaling, low storage costs, and workload separation from Apache Doris
Users who already have a stable large-scale storage system and thus require an advanced compute-storage-separated architecture for efficient resource scaling

Apache Doris 2.0 provides two solutions to address the needs of the first two types of users.

Compute nodes. We introduced stateless compute nodes in version 2.0. Unlike the mix nodes, the compute nodes do not save any data and are not involved in workload balancing of data tablets during cluster scaling. Thus, they are able to quickly join the cluster and share the computing pressure during peak times. In addition, in data lakehouse analysis, these nodes will be the first ones to execute queries on remote storage (HDFS/S3) so there will be no resource competition between internal tables and external tables.

Doc: https://doris.apache.org/docs/dev/advanced/compute_node/

Hot-cold data separation. Hot/cold data refers to data that is frequently/seldom accessed, respectively. Generally, it makes more sense to store cold data in low-cost storage. Older versions of Apache Doris support lifecycle management of table partitions: As hot data cooled down, it would be moved from SSD to HDD. However, data was stored with multiple replicas on HDD, which was still a waste. Now, in Apache Doris 2.0, cold data can be stored in object storage, which is even cheaper and allows single-copy storage. That reduces the storage costs by 70% and cuts down the computation and network overheads that come with storage.

Doc: https://doris.apache.org/docs/dev/advanced/cold_hot_separation/

Read more: https://doris.apache.org/blog/HCDS/

For the third type of users, the SelectDB team is going to contribute the SelectDB Cloud Compute-Storage-Separation solution to the Apache Doris project. The performance and stability of this solution has stood the test of hundreds of companies in their production environment. The merging of the solution to Apache Doris is underway.
Faster, Stabler, and Smarter Data Writing
Higher speed in data writing
As part of our continuing effort to strengthen the real-time analytic capability of Apache Doris, we have improved the end-to-end real-time data writing of version 2.0:

When tested with the TPC-H 100G standard dataset, Apache Doris 2.0 reached a data loading speed of over 550MB/s for a single node with its insert into select method, which was a 200% increase. In triple-replica import of 144G data, it delivered a single-node data loading speed of 121MB/s via the Stream Load method, up 400% in system throughput.
We have introduced single-replica data loading into version 2.0. Apache Doris guarantees high data reliability and system availability by its multi-replica mechanism, but multi-replica writing also multiplies the CPU and memory usage. Now Apache Doris only writes one data copy to the memory, and then it synchronizes the storage file to other copies, so it can save a lot of the computation resources. In large data ingestion, the single-replica loading method can accelerate data ingestion by 200%.

Greater stability in high-concurrency data writing
The merging of small files, write amplification, and the consequential disk I/O and CPU overheads are often the sources of system instability. Hence, we introduced Vertical Compaction and Segment Compaction in version 2.0 to eliminate OOM errors in compaction and avoid the generation of too many segment files during data writing. After such improvements, Apache Doris can write data 50% faster while using only 10% of the memory that it previously used.
Read more: https://doris.apache.org/blog/Compaction
Auto-synchronization of table schema
The latest Flink-Doris-Connector allows users to synchronize the whole database (such as MySQL) to Apache Doris by one simple step. According to our test results, one single synchronization task can undertake the real-time concurrent writing of thousands of tables. Apache Doris has automated the updating of upstream table schema and data so users no longer need to go through a complicated synchronization procedure. Also, changes in the upstream data schema will be automatically captured and dynamically updated to Apache Doris in a seamless manner.
Support for Partial Column Update in the Unique Key Model
Apache Doris 1.2 realized real-time writing and quick query execution at the same time with the Merge-on-Write mechanism in the Unique Key Model. Now in version 2.0, we have further improved the Unique Key Model. It supports partial column update so when ingesting multiple source tables, users don't have to merge them into one flat table in advance.
On this basis, we have also enhanced the capability of Merge-on-Write. Apache Doris 2.0 is 50% faster than Apache Doris 1.2 in large data writing and 10 times faster in high-concurrency data writing. A parallel processing mechanism is available to avoid "publish timeout" (E-3115), and a more efficient compaction mechanism is in place to prevent "too many versions" (E-235). All this allows users to replace Merge-on-Read with Merge-on-Write in more scenarios. Plus, partial column update makes the execution of the UPDATE and DELETE statements less costly.
The execution of partial column update is simple.
Example (Stream Load):
Suppose that you have the following table schema:
mysql> desc user_profile;
+------------------+-----------------+------+-------+---------+-------+
| Field            | Type            | Null | Key   | Default | Extra |
+------------------+-----------------+------+-------+---------+-------+
| id               | INT             | Yes  | true  | NULL    |       |
| name             | VARCHAR(10)     | Yes  | false | NULL    | NONE  |
| age              | INT             | Yes  | false | NULL    | NONE  |
| city             | VARCHAR(10)     | Yes  | false | NULL    | NONE  |
| balance          | DECIMALV3(9, 0) | Yes  | false | NULL    | NONE  |
| last_access_time | DATETIME        | Yes  | false | NULL    | NONE  |
+------------------+-----------------+------+-------+---------+-------+

If you need to batch update the "balance" and "last access time" fields for the last 10 seconds, you can put the updates in a CSV file as follows:
1,500,2023-07-03 12:00:01
3,23,2023-07-03 12:00:02
18,9999999,2023-07-03 12:00:03

Then, add a header partial_columns:true and specify the relevant column names in the the Stream Load command:
curl  --location-trusted -u root: -H "partial_columns:true" -H "column_separator:," -H "columns:id,balance,last_access_time" -T /tmp/test.csv http://<IP_ADDRESS>:48037/api/db1/user_profile/_stream_load

Farewell to OOM
Memory management might not be on the priority list of users until there is a memory problem. However, real-life analytics is full of extreme cases that are challenging memory stability. In large computation tasks, OOM errors often cause queries to fail or even result in a backend downtime.
To solve this, we have improved the memory data structures, reconstructed the MemTrackers, and introduced soft memory limits for queries and a GC mechansim to cope with process memory overflow. The new memory management mechanism allocates, caculates, and monitors memory more efficiently. According to benchmark tests, pressure tests, and user feedback, it eliminates most memory hotspots and backend downtime. Even if there is an OOM error, users can locate the question spot based on the logs and take actions accordingly.
In a word, Apache Doris 2.0 is able to handle complicated computation and large ETL/ELT operations with greater system stability.
Read more: https://doris.apache.org/blog/Memory_Management/
Support for Kubernetes Deployment
Older versions of Apache Doris communicate based on IP, so any host failure in Kubernetes deployment that causes a POD IP drift will lead to cluster unavailability. Now, version 2.0 supports FQDN. That means the failed Doris nodes can recover automatically without human intervention, which lays the foundation for Kubernetes deployment and elastic scaling.
Doc: https://doris.apache.org/docs/dev/install/k8s-deploy/
Support for Cross-Cluster Replication
For data synchronization across multiple clusters, Apache Doris used to require regular data backup and restoration via the Backup/Restore command. The process required intermediate storage and came with high latency. Apache Doris 2.0.0 supports cross-cluster replication (CCR), which automates this process. Data changes at the database/table level in the source cluster will be synchronized to the target cluster. This feature allows for higher availability of data, read/write workload separation, and cross-data-center replication.
Behavior Change

1.2-lts can be scrolled and upgraded to 2.0.0, while 2.0-alpha can be shut down and upgraded to 2.0.0
Query optimizer switch default on enable_ Nereids_ Planner=true;
Non vectorized code has been removed from the system, so 'enable'_ Vectorized_ The 'engine' parameter will no longer be effective;
Add Parameter enable_ Single_ Replica_ Compaction;
By default, use datev2, datetimev2, and decimalv3 to create tables, but do not support creating tables with datev1, datetimev1, and decimalv2;
Decimalv3 is used by default in JDBC and Iceberg Catalog;
Add AGG for date type_ State;
Remove the cluster column from the backend table;
For better compatibility with BI tools, when displaying create tables, display date v2 and date timev2 as date and date time.
Added max in BE startup script_ Check for openfiles and swap, so if the system configuration is not reasonable, be may fail to start;
Prohibit logging in without a password when accessing FE from localhost;
When there is a Multi Catalog in the system, querying the information schema only displays data from the internal catalog by default;
Limited the depth of the expression tree, defaulting to 200;
The array string returns a single quotation mark to a double quotation mark;
Rename Doris' process names to DorisFE and DorisBE;

Known Issues

There may be performance degradation using pooling of pipeline. It can be worked around by ADMIN SET FRONTEND CONFIG ("disable_shared_scan" = "true");
Can not perform deletion on table by non-key column:  https://github.com/apache/doris/pull/22673. Will be fixed in 2.0.1;
Wrong result for function time_to_sec: https://github.com/apache/doris/pull/22656. Will be fixed in 2.0.1

How do you calculate the 10x performance increase? Which version is being compared.

Will there be no dynamic schema table related functions in version 2.0?

Hi everyone, I can't seem to get partial_columns working (attaching screenshots and snipped in this thread):
Execution failed: Error Failed to execute sql: java.sql.SQLException: (conn=18) errCode = 2, detailMessage = partial_columns is invalid property

Is there anything I'm missing? I'm using the latest 2.0.0 build from the main website.
CREATE TABLE IF NOT EXISTS sms_toolbox
(
`message_id` CHAR(36) NOT NULL,
`customer_id` INT NOT NULL,
`provider_id` INT NOT NULL,
`bind_id` INT NOT NULL,
 `node_id` INT NOT NULL,
`routing_zone_id` INT NOT NULL,
`country_code` INT NOT NULL,
`event` INT NOT NULL,
`status` INT NOT NULL,
`source` STRING NOT NULL,
`operator_code` INT NOT NULL,
`account_id` INT NOT NULL,
)
UNIQUE KEY (`message_id`)
DISTRIBUTED BY HASH(`message_id`) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"enable_unique_key_merge_on_write" = "true"
);

CREATE ROUTINE LOAD sms_toolbox_routine_load ON sms_toolbox
PROPERTIES
(
    "max_batch_interval" = "20",
    "max_batch_rows" = "300000",
    "max_batch_size" = "209715200",
    "format" = "json",
    "partial_columns" = "true"
)
FROM KAFKA
(
    "kafka_broker_list" = "<IP_ADDRESS>:9092,<IP_ADDRESS>:9092,<IP_ADDRESS>:9092",
    "kafka_topic" = "sms-toolbox",
    "property.group.id" = "doris",
    "property.client.id" = "doris",
    "property.kafka_default_offsets" = "OFFSET_BEGINNING"
);

Version: doris-2.0.0-rc04-96bb9a7
And from the Home web page:
Git : git://VM-10-6-centos@96bb9a7d0881cabf114c3618585fa18549d7b2ea

Version : doris-2.0.0-rc04

BuildInfo : VM-10-6-centos

BuildTime : Sun, 06 Aug 2023 16:25:12 UTC

Perhaps the build that's uploaded isn't the final 2.0.0? I just found this stacktrace with (doris-fe.jar:1.2-SNAPSHOT):
Caused by: java.sql.SQLException: (conn=21) errCode = 2, detailMessage = partial_columns is invalid property
	at org.mariadb.jdbc.export.ExceptionFactory.createException(ExceptionFactory.java:287) ~[mariadb-java-client-3.0.4.jar:?]
	at org.mariadb.jdbc.export.ExceptionFactory.create(ExceptionFactory.java:358) ~[mariadb-java-client-3.0.4.jar:?]
	at org.mariadb.jdbc.message.ClientMessage.readPacket(ClientMessage.java:133) ~[mariadb-java-client-3.0.4.jar:?]
	at org.mariadb.jdbc.client.impl.StandardClient.readPacket(StandardClient.java:815) ~[mariadb-java-client-3.0.4.jar:?]
	at org.mariadb.jdbc.client.impl.StandardClient.readResults(StandardClient.java:765) ~[mariadb-java-client-3.0.4.jar:?]
	at org.mariadb.jdbc.client.impl.StandardClient.readResponse(StandardClient.java:673) ~[mariadb-java-client-3.0.4.jar:?]
	at org.mariadb.jdbc.client.impl.StandardClient.execute(StandardClient.java:616) ~[mariadb-java-client-3.0.4.jar:?]
	at org.mariadb.jdbc.Statement.executeInternal(Statement.java:906) ~[mariadb-java-client-3.0.4.jar:?]
	at org.mariadb.jdbc.Statement.execute(Statement.java:1031) ~[mariadb-java-client-3.0.4.jar:?]
	at org.mariadb.jdbc.Statement.execute(Statement.java:441) ~[mariadb-java-client-3.0.4.jar:?]
	at org.apache.doris.httpv2.util.StatementSubmitter$Worker.call(StatementSubmitter.java:120) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.httpv2.util.StatementSubmitter$Worker.call(StatementSubmitter.java:83) ~[doris-fe.jar:1.2-SNAPSHOT]


Update Actors for Foundry VTT v10.276

To Change
Actors
Kind of Change
Update
Additional Info
No response

resolved in #2291


Theme WindowBorderGradientBegin/End Vector4 is ARGB instead of RGBA

When configuring theme styles, all styles follow the standard RGB/RGBA formatting when defining their Vector4. However, it appears WindowBorderGradientBegin, WindowBorderGradientEnd, and TitlebarBackgroundColor are formatted in ARGB. This prevents using existing RGBA global color variables with these fields without modification.
It is unclear if WindowBackgroundColor is also ARGB formatted or not. However, given the 3 previous newly added fields are ARGB, it is likely the same as well.

Fixed in 38174b18ac1db0a4eb176bf69e71567a827d2170
All values should be RGBA now.


$location.search() returns undefined when base href does not match URL

I'm submitting a ...

[x] bug report

Current behavior:
In our app's run function, $location.search() returns undefined.
Expected / new behavior:
$location.search() should return an object, as documented.
Minimal reproduction of the problem with instructions:
Serve page at https://localhost/foo/bar/
include tag <base href="/baz/">
Use HTML5 location mode.
see http://plnkr.co/edit/RRJMNjo6Viw1NbtNeWfr?p=preview
AngularJS version: 1.5.10
Browser: Chrome 61 | Firefox 57
Anything else:
Oh, this may be a duplicate of #11223. That issue got sidetracked to a discussion of case-sensitivity and then marked as wontfix, but I think that was a tangent unrelated to making search() return properly.
In a way much like #14488 noted for $location.$$absUrl, the $location.$$search property may not be initialized before $location.search() is called.
Perhaps the search() method needs to check to see if $$search is undefined, similar to how other functions check for a value for $$path or $$hash, or perhaps when $locationProvider.$get needs to always call $location.$$parse (which $location.$$parseLinkUrl declines to do in this condition).
I also noticed that sometime later $location.search() would return properly; I suspect this is related to how $locationProvider.$get adds a watch to $rootScope, but the app's run function probably happens before that digest cycle.

As noted in the docs, $location will indeed not work correctly in this case:

The $location service is not able to function properly if the current URL is outside the URL given as the base href.

We could make $location use a different baseHref, but link-rewriting would be broken.
TBH, I am not even sure what the usecase is. Why load AngularJS on a page that doesn't match the intended baseHref?)

The canonical location is /baz/, and any links that people copy should use that location, but sometimes it's served at other locations. Either as an alias for compatibility reasons, or it's an endpoint that's embedded by a third party or at the end of some sort of OAuth or other SSO flow, in which case the server has some extra work to do to validate that request and set context, but the angularjs application is still the same.
If $location will be unable to do its job, it'd be nice if it threw an error telling us that explicitly, though I fear at this point that'd be a backward-incompatible change.
(in practice, the app does otherwise work, and only failed when we added this bit to app.run())

Yeah, changing that would be a breaking change. (We can still consider it for 1.7, but I am not convinced it is worth it (not tht it isn't).)

(in practice, the app does otherwise work, and only failed when we added this bit to app.run())

It might look like it works, but could break in subtle ways (e.g. clicks on links being handled incorrectly). It really depends on what features you depend on, but you are in dangerous waters.
You can obviously work around that, but proceed at your own risk :grin:

We are going to post a warning in the console when you try to do this (rather than throwing an error). This will help developers find out why their app might not be working correctly in this case.


Live-reload gets disabled after reload

Whenever I enable live-reload, it gets disabled immediately after the reload took place. Can anyone confirm this problem?

Yes, can confirm this happens in 0.4.1.

Confirmed this, what's happening is that _liveReload and _liveReloadPeriod are being thrown away on each reload because the devmenu is dealloc'd when a reload occurs - other menu options don't have their state stored in a devmenu class instance variable.

Closing this as we are tracking it now in the aforementioned pull request! Thanks :smile:


Cross camera person re-identification

Hi, the tracker object is holding information about the person id and the feature vector and this gets updated every frame. I'm trying to share this information among multiple camera feeds to identify a person in a camera view who has already been detected in a previous camera view. Any suggestions on how to move forward?

Hi,
I think you shall create a database of pedestrians and their features.

Hey @ZQPei I am storing the target_id and the features in a pickle file after each frame for now. What I am looking for is for another deep sort tracking running on a different video to use this. Specifically, the tracker._match should use the target_id and feature from the pickle file to associate appearance.
Sorry, this is not an issue as such. I'm just looking for suggestions if this is something you have thought about. Thanks!

Hi @sampathkethineedi
Did you get any ideas on this?

I’m using a different reid specific model to match person features from other cameras in the last 50 frames to assign an ID to a new detection.


Support TypeScript import

Fixes #307.

Codecov Report

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

@@          Coverage Diff          @@
##           master   #332   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           6      6
  Lines         422    423    +1
  Branches      133    133
=====================================
+ Hits          422    423    +1

Impacted Files
Coverage Δ

src/index.js
100% <100%> (ø)
:arrow_up:

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 e7c1ef8...e50d1b8. Read the comment docs.

lgtm but again haven't used typescript much myself.

If it's ok with you, I am going to merge this and create a new release.
Since no one is showing up for #331, I assume no one is looking to use it yet; let's keep it open and wait for the next release. Sounds good?

@bitinn Sure!


Allow GridModels to extend 'Restore Grid Defaults'

Currently, users have two ways to reset state. They can 'Restore Grid Defaults', which deals with aspects considered grid state (columns, sort, etc) for a single GridModel, and 'Restore App Defaults', which wipes state for the entire app.
However, apps often have persisted state which, while not being part of "grid state", are conceptually linked to and often considered part a grid. (e.g. toolbar controls that only affect a nearby grid). To reset this, neither option is appropriate or obvious to users.
It would be good if a GridModel's restoreDefaultsAsync() could be extended with an optional callback that apps could use to reset state such as this, without requiring the user to reset their entire app.

See PRs:
https://github.com/xh/hoist-react/pull/2904
https://github.com/xh/toolbox/pull/563


Add same padding for pooling and conv

https://discuss.gluon.ai/t/topic/5747

#12594 Does this address a part of what was expected?
Just like "same" padding for maxPool1D, I'll have to extend it to all types of pooling and convolutions right?

@marcoabreu this looks like a feature request.


custom 404 page

https://help.github.com/en/articles/creating-a-custom-404-page-for-your-github-pages-site

Thanks for the advice on how to create a custom 404 page. I still seem to find myself lost here. Could you help? The guide didn't really answer my questions...  The little animations and all that. How is this done? It looks amazing.

You could probably used an animated GIF or embed some javascript.
Search around and you can find lots of examples like these:
https://freefrontend.com/html-funny-404-pages/


Introducing file versioning

We would need to improve error handling jupyter-collaboration's side, as it's hiding the actual error we are raising:

The raised error shows up in the server logs only.


Fix #1599 by relaxing the match_trigger regex

Fixes #1599.

Please update the branch from development while you're at it. If I do the update, then I'll be prevented from doing the merge.


JS -- Actions must be evaluated in global scope

All the public properties of doc are injected into globalThis, in order to make them available through this
Put event in the global scope too.

/botio test

/botio-windows test

/botio test

/botio-linux unittest

/botio-linux unittest


feat: add anonymized analytics to docs

Description
Add anonymized analytics to the docusaurus based docs website.
Fixes #6549

Already discussed this with Julien as a way to get better metrics on our docs for improved dev ex. Understanding users and what they are consuming and how they are consuming our pages will help us create a better experience for them. Not intended for anything more than that and this can be revoked at anytime if there are concerns.

:tada: This PR is included in v1.18.0 :tada:

Sidenote: Google Analytics has been removed via #6680 before publishing the new docs.


jsx-no-bind - active for custom components only

Hi.
I'd like to use this rule to avoid problem with shouldComponentUpdate mentioned in this article<EMAIL_ADDRESS>(section Functions create identities too).
But this is only a problem on custom components. HTML elements like  or so don't have shouldComponentUpdate, so binding functions is much smaller problem there.
Currently I have 126 jsx-no-bind warnings in my app and I'd like to fix the important ones first. It'd nice to be able to turn this check on custom components only (their names start with a capital letter).
Thank you

This is something I'd like to see too.  Would a PR for this be welcome?  If so, I can work on it.

@janmarek the issue is that .bind is slow, and creating a new one on every render is going to be just as slow with HTML elements as with anything else.

The performance of bind() is not the issue IMO.  It's that passing bind() as a prop to a custom component creates a new instance of the function each time, thereby eliminating the effectiveness of shouldComponentUpdate().
This is obviously very undesirable for custom components, but for a <div>, you're already in the process of rendering anyway, and there is no shouldComponentUpdate() function to worry about, so it seems reasonable to allow an exception for this case (opt-in, of course).
If I have a list of a dozen or so options that gets rendered infrequently (and I often do), I don't much care about the overhead of bind(), but I don't really want to create a new component for each thing in each of the various lists I have.  Even if I went with a new component (which I sometimes do where it makes sense), there would be overhead in calling the constructor of that component and passing props to it.  This would, at least partially, offset the overhead of bind().
Right now, my options are to disable this rule on the lines where I use bind() or disable the rule entirely.  I'd rather be able to set a parameter in eslint like ignoreHtmlTags=true (or whatever you want to call it).

Why are you using bind instead of an arrow function though?

To pass additional parameters to an onClick handler so it knows which list item was clicked (e.g,. onClick={this.handleClick.bind(this, index, group)})

@mindjuice onClick={e => this.handleClick(index, group, e)}

Bind and arrow functions have the same effect here. Both of them create a new function.

@janmarek "a new function" isn't the problem, Function.prototype.bind is the problem. That is what's slow.

I guess bind has two problems and arrow function has only one then.

The arrow function will not work if you are using a plain loop to create your <div>s, because the index and group are references to the closure variables, and by the time handleClick() is called, index and group would be at their final values.
In my case we're using map(), so it should be fine, and I'll change to that for now.
I still believe that an additional option, as I described above, would be useful.  eslint's job isn't to tell developers how to write their code, but to give them tools with the flexibility to let them enforce whatever rules they choose.

@ljharb bind() may be slow, but passing a new function as a prop every time to an expensive-to-render component is going to be much more of a performance issue, since the shouldComponentUpdate optimization is made useless.

This rule now has the ignoreDOMComponents option, as well as ignoreRefs, which covers this issue, added in #1868.


Hypervisors escape

Many lightweight hypervisors choose to share the Interrupt Descriptor Table and Interrupt Controller with the guest. This eliminates significant work for the hypervisor developer because then they do not need to virtualize these resources. Well convenient, this is a very insecure design choice and should be avoided in all production hypervisors without exception. The reason this is such an insecure design is because the guest has complete control over these resources that the hypervisor is depending on for proper, secure operation. The guest can weaponize these resources to get control over the hypervisor.
The Example Code:
#define _AMD64_
#include <ntddk.h>
#include <intrin.h>

#define X2_MSR_BASE 0x800
#define ICROffset 0x300
#define TO_X2( x ) ( x / 0x10 )

PVOID NMICallbackHandle = nullptr;
PVOID threadhandle = nullptr;
int escaped = 0;
void( *TriggerNMI )( UINT32, UINT32 ) = nullptr;
void *apicBase = nullptr;

BOOLEAN NMICallback( PVOID context, BOOLEAN handled )
{
	size_t vmcslink = 0;
	__try
	{
		if( !__vmx_vmread( 0x00002800, &vmcslink ) )
		{
			if( vmcslink != 0 )
				_InterlockedOr( ( volatile LONG* )&escaped, ( 1 << KeGetCurrentProcessorIndex( ) ) );
		}
	}
	__except( 1 )
	{
	}
	return TRUE;
}

void XTriggerNMI( UINT32 low, UINT32 high )
{
	*( UINT32* )( ( uintptr_t )apicBase + ICROffset + 0x10 ) = high;
	*( UINT32* )( ( uintptr_t )apicBase + ICROffset        ) = low;
}

void X2TriggerNMI( UINT32 low, UINT32 high )
{
	__writemsr( X2_MSR_BASE + TO_X2( ICROffset ), ( ( UINT64 )high << 32 ) | low );
}

INT32 InitializeAPIC( void )
{
	UINT64 apicBaseMSR = __readmsr( 0x1B );
	if( !(apicBaseMSR & ( 1 << 11 ) ) )
		return STATUS_FAILED_DRIVER_ENTRY;

	if( apicBaseMSR & ( 1 << 10 ) )
	{
		TriggerNMI = X2TriggerNMI;
		return STATUS_FAILED_DRIVER_ENTRY;
	}
	else
	{
		PHYSICAL_ADDRESS paAPICBase;
		paAPICBase.QuadPart = apicBaseMSR & 0xFFFFFF000;
		apicBase = MmMapIoSpace( paAPICBase, 0x1000, MmNonCached );
		if( !apicBase )
			return STATUS_FAILED_DRIVER_ENTRY;
		TriggerNMI = XTriggerNMI;
	}
	return STATUS_SUCCESS;
}
ULONG_PTR IPIHandler( ULONG_PTR context )
{
	if( escaped != ( 1 << KeNumberProcessors ) - 2 )
	{
		if( KeGetCurrentProcessorIndex( ) != 0 )
		{
			int cpuid[ 4 ] = { };
			__cpuid( cpuid, 0 );
		}
		else
		{
			TriggerNMI( ( 4 << 8 ) | ( 1 << 14 ) | ( 3 << 18 ), 0 );
		}
	}
	else
	{
		//really at this point we could just specifically interrupt core 0, but you can add that if you want
		if( KeGetCurrentProcessorIndex( ) == 0 )
		{
			int cpuid[ 4 ] = { };
			__cpuid( cpuid, 0 );
		}
		else
		{
			TriggerNMI( ( 4 << 8 ) | ( 1 << 14 ) | ( 3 << 18 ), 0 );
		}
	}
	return 0;
}

void kthread( void* )
{
	do
	{
		KeIpiGenericCall( IPIHandler, 0 );
	} while( escaped != ( ( 1 << KeNumberProcessors ) - 1 ) );
	PsTerminateSystemThread( 0 );
}

void DriverUnload( PDRIVER_OBJECT object )
{
	if( threadhandle )
	{
		void* obj = nullptr;
		if( NT_SUCCESS( ObReferenceObjectByHandle( threadhandle, THREAD_ALL_ACCESS, nullptr, KernelMode, &obj, nullptr ) ) )
		{
			KeWaitForSingleObject( obj, Executive, KernelMode, FALSE, nullptr );
			ObDereferenceObject( obj );
			ZwClose( threadhandle );
		}
	}
	if( NMICallbackHandle ) KeDeregisterNmiCallback( NMICallbackHandle );
	if( apicBase ) MmUnmapIoSpace( apicBase, 0x1000 );
	for( int i = 0; i < KeNumberProcessors; i++ )
	{
		if( escaped & ( 1 << i ) )
			DbgPrint( "Core %i escaped\n", i );
	}
	return;
}

NTSTATUS DriverEntry( PDRIVER_OBJECT object, PUNICODE_STRING path )
{
	object->DriverUnload = DriverUnload;
	InitializeAPIC( );
	NMICallbackHandle = KeRegisterNmiCallback( NMICallback, nullptr );
	if( !NMICallbackHandle )
		return STATUS_FAILED_DRIVER_ENTRY;
	return PsCreateSystemThread( &threadhandle, 0, 0, 0, 0, kthread, 0 );
}

The Solution
How do we prevent this from happening?
For a lightweight hypervisor with only a single guest an easy way to counteract this is to have the hypervisor use its own Interrupt Descriptor Table and non-maskable interrupt handler and inject the interrupt into the guest. This will prevent the guest from ever getting execution control under the context of the hypervisor.
The proper way to handle this though is all of the aforementioned along with virtualizing the Interrupt Controller for each guest.

This code is copy pasted from another researcher, and you are completely wrong. Yoy don't need to virtualize anything to fix this, simply set up a host IDT(R) with ISRs. I think everyone understands you can't use HyperPlatform as a production hypervisor, there are many other similar ways to escape/DoS it.

Closing this as addressing this specific issue helps nobody.
Firstly, thanks for bringing up this discussion. That's right that sending NMI from one core may lead to arbitrary code execution on the VMX root mode on the other core, and having hosts' own IDT and ISRs will be a way to prevent that.
At the same time, as @hypervisor mentioned, this project makes no attempt to establish a security boundary between ring-0 VMX non-root mode and VMX root mode, and thus, there are countless of ways to achieve the same effect. For example, the guest can modify hypervisor code and data (such as page tables) without any problem. Preventing this specific vector does not help anything, and I will not change the design to properly isolate the host from the guest.
Finally, you should credit and/or refer to the original post on this topic, instead of straight copy and pasting it. That damages your credibility.
Thanks.

Sorry, it is true that I saw this problem from another author. I was negligent on this point. I am going to modify the description of this problem.


Adds the ls and tail commands to the CLI

What happens if you try to tail an empty (zero-byte) file?

Also, we should probably test what happens with N=0.

@DaoWen I added an integration test for tailing a 0-byte file

we should probably test what happens with N=0

Which N are you referring to?

@wyegelwel Do you have more feedback on this?

@DaoWen I created issue #498 for cat

@DaoWen this is now RTM, unless you have more feedback


popovers: Fix menu options for empty topics.

previously, the menu options were being shown for empty topics also, leading to unecessary bugs. This commit ensures no menu options are rendered when topic is empty or has no messages.
Fixes: #32098

Screenshots and screen captures:

Self-review checklist

[ x ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[ ] Each commit is a coherent idea.
[ ] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

Thanks, but perhaps this PR doesn't solve the full issue? There should be a screenshot demonstrating this:

Instead, we should have There are no messages in this topic. line just below the topic name, styled like the deactivated user line.

@codewithnick can I continue with your PR? Thank you.


CAN reliability improvements

If you run examples/can_print_tx but don't connect CAN to another board, it keeps printing ERR: No ack.. We need to make sure this doesn't infinite loop if CAN transmission fails (it should time out at some point). Maybe this happens when the TX error count is 127?

This issue should be resolved with #144, as the bus will turn off after the transmit error counter reaches 255.


Webhooks don't return data for CSVs

Describe the bug
Other file formats work and return finished/complete parse data. Smaller CSVs work. Larger CSVs complete processing but don't send data back to specified webhook.
Job ID
d35028f4-da34-4b94-8ca2-23bd37118b3c
Client:

API

Additional context
Sometimes the webhook is called BUT it doesn't have anything in the request for the webhook.

to fix your trouble check this solution click
maybe this will solve your problem.


Error: Building package rttr:x86-windows failed with: BUILD_FAILED

running on Windows 10 Home

version 1703
OS build: 15063.608
language is: Dutch with english keyboard addon

I succesfully installed vcpkg with:
powershell -exec bypass scripts/bootstrap.ps1
.\vcpkg integrate install
After that I tried to install rttr with:
.\vcpkg install rttr curl
I expected the rttr library to be downloaded, build.
But the build failt with the following error:

CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:43 (message):
Command failed: C:/Projects/vcpkg/downloads/cmake-3.9.3-win32-x86/bin/cmake.exe;C:/Projects/vcpkg/buildtrees/rttr/src/rttr-0.9.5-src;-DBUILD_SHARED_LIBS=ON;-DVCPKG_TARGET_TRIPLET=x86-windows;-DCMAKE_CXX_FLAGS= /DWIN32 /D_WINDOWS /W3 /utf-8 /GR /EHsc /MP ;-DCMAKE_C_FLAGS= /DWIN32 /D_WINDOWS /W3 /utf-8 /MP ;-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON;-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON;-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON;-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE;-DCMAKE_VERBOSE_MAKEFILE=ON;-DVCPKG_APPLOCAL_DEPS=OFF;-DCMAKE_TOOLCHAIN_FILE=C:/Projects/vcpkg/scripts/buildsystems/vcpkg.cmake;-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON;-DCMAKE_CXX_FLAGS_RELEASE=/MD /O2 /Oi /Gy /DNDEBUG /Z7 ;-DCMAKE_C_FLAGS_RELEASE=/MD /O2 /Oi /Gy /DNDEBUG /Z7 ;-DCMAKE_SHARED_LINKER_FLAGS_RELEASE=/DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF ;-DCMAKE_EXE_LINKER_FLAGS_RELEASE=/DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF ;-G;Ninja;-DCMAKE_BUILD_TYPE=Release;-DCMAKE_INSTALL_PREFIX=C:/Projects/vcpkg/packages/rttr_x86-windows
Working Directory: C:/Projects/vcpkg/buildtrees/rttr/x86-windows-rel
See logs for more information:
C:\Projects\vcpkg\buildtrees\rttr\config-x86-windows-rel-out.log
C:\Projects\vcpkg\buildtrees\rttr\config-x86-windows-rel-err.log
Call Stack (most recent call first):
scripts/cmake/vcpkg_configure_cmake.cmake:170 (vcpkg_execute_required_process)
ports/rttr/portfile.cmake:20 (vcpkg_configure_cmake)
scripts/ports.cmake:72 (include)
Error: Building package rttr:x86-windows failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with .\vcpkg update, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
Package: rttr:x86-windows
Vcpkg version: 0.0.91-2017-10-08-d7c60c2048d8d71915478de871caae2767bd80e6

The full log can be found in this pastebin: https://pastebin.com/WFygaYpJ
According to the version on the github CONTROL file the version of rttr is:
Version: 0.9.5-1

I have got the same problem:

.\vcpkg install rttr
The following packages will be built and installed:
rttr[core]:x86-windows
Starting package 1/1: rttr:x86-windows
Building package rttr[core]:x86-windows...
-- Using cached D:/Sources/vcpkg/downloads/rttrorg-rttr-v0.9.5.tar.gz
-- Using source at D:/Sources/vcpkg/buildtrees/rttr/src/v0.9.5-dc133aa853
-- Applying patch D:/Sources/vcpkg/ports/rttr/fix-directory-output.patch
-- Applying patch failed. This is expected if this patch was previously applied.
-- Applying patch D:/Sources/vcpkg/ports/rttr/disable-unit-tests.patch
-- Applying patch failed. This is expected if this patch was previously applied.
-- Applying patch D:/Sources/vcpkg/ports/rttr/remove-owner-read-perms.patch
-- Applying patch failed. This is expected if this patch was previously applied.
-- Configuring x86-windows
-- Building x86-windows-dbg
-- Building x86-windows-rel
CMake Error at ports/rttr/portfile.cmake:41 (file):
file must be called with at least two arguments.
Call Stack (most recent call first):
scripts/ports.cmake:71 (include)

Package: rttr:x86-windows
Vcpkg version: 0.0.113-nohash

Thanks for posting this issue. Please open a new issue if this is still a problem for you.


Do not default to amd64 if GOARCH is not set

Please review https://github.com/open-cluster-management/multicloud-operators-channel/pull/163
This PR is required for ppc64le support in ACM 2.3.
Exact same patch has already been merged for multicloud-operators-placementrule (https://github.com/open-cluster-management/multicloud-operators-placementrule/pull/85) and multicloud-operators-application (https://github.com/open-cluster-management/multicloud-operators-application/pull/98).

Fixed by https://github.com/open-cluster-management/multicloud-operators-channel/pull/163


Footer Component

updates please

Harsh has done the most part...I have to work on css part

Try and compress the width of the footer

@its-me-Harsh-Anand  Can you make the footer compact,and decrease the Nitplogo size Just so that all of them are in line

here's an inspiration

@its-me-Harsh-Anand Can you make the footer compact,and decrease the Nitplogo size Just so that all of them are in line  here's an inspiration

Sure, I'll do it


Upgrade spfx 1.6.0 FN012012 always returns a finding

Issue
This rule always says the node is missing, even though it's been set.
Repro steps
have a spfx 1.5.1 project
run the upgrade command
add the following node to the tsconfig.json
"include": [
    "src/**/*.ts"
  ],

DO NOT change the yo rc version
delete the report
re-run the command
the report still says it's missing

I was able to repro it. I will have a closer look at it and fix it. Thanks for reporting


Windows: TP4 fix cpu weight

Signed-off-by: John Howard<EMAIL_ADDRESS>With apologies for the late PR for TP4. We have just realized this morning that the way in which HCS in TP4 maps processor weights causes issues when running VMs alongside Hyper-V containers. The old 1..9 value was a direct mapping for the job object settings for cpu weight. However, HCS really expects 0..10000, with zero being really zero, and does the mapping of 0..10000 to 1..9 for Windows Server Containers, or different mapping for Hyper-V containers.
If the value is not specified in the HCS call (hence the omit empty), HCS will take its default (5 for job objects) which is what we really need for parity with Powershell/WMI management, and not unfairly disadvantage docker Hyper-V containers if running alongside powershell Hyper-V containers or Hyper-V VMs

@cpuguy83 @calavera Hopefully an easy review :)

And apologies for left hand not talking to right :)

LGTM

@vdemeester Any chance of a quick review? :heart:

@jhowardmsft LGTM :green_heart: 🐭


gets this error when i try to run the emulator

Hello, I am having similar problems, did you try running the listed command on your terminal? Then you will get a more detailed error message. I did that and there were instructions on how to resolve the problems


USGS LAS logs from Houston area all seem to have a formatting 'error' that makes the trim function fail.

Describe the bug
USGS LAS logs from Houston area all seem to have a formatting 'error' that makes the trim function fail in the demo app. Need to understand what is causing this and whether in wellio or wellioviz
To Reproduce
Steps to reproduce the behavior:

Go to https://webapps.usgs.gov/GeoLogLocator/#!/search
Zoom in to Houston area. Select seemingly any well close to 610 north loop and download it to your local computer.
Try to open it from local computer using the demo app: https://justingosses.github.io/wellioviz/demo.html
When you press the "convert" button after loading the LAS file, it doesn't seem to convert. See error message in console about "trim" function can't be found, likely because object type is wrong or doesn't exist.

Expected behavior
Message about conversion being successful and well appearing when you click "display" from menu options.

The fixes for this are in
https://github.com/JustinGOSSES/wellio.js/pull/56

Merged pull request and published to NPM as version 0.1.9. Also bumped the release to v0.1.9 on github.


error npm run build:prod"

on linux mint I get this:
ERROR: failed to solve: process "/bin/sh -c npm run build:prod" did not complete successfully: exit code: 1

Most of the packages this repo depending on are outdated, so I strongly recommend you look for something else.
I tried to solve it in a short time but cannot get it done. If you really want to solve the problem, try one of the following method.

Fix the frontend

Fixing the error from Node
Fixing the error from Vue
Note1: These two might not be the only problems.
Note2: Please don't use it in production because it may lead to security problems.

Remove or replace the frontend

Remove the frontend service in docker-compose.yml, docker-compose.prod.yml and docker-compose.override.yml
Then you can use the backend directly, or attach a frontend to it if you wish. SvelteKit is a great option.


Script not working, error "line 7: syntax error near unexpected token `newline'"

Scripts not working returning the error belows
$ sh r53_migrator.sh
r53_migrator.sh: line 7: syntax error near unexpected token `newline'
r53_migrator.sh: line 7: `<!DOCTYPE html>'

$ sh functions.sh
functions.sh: line 7: syntax error near unexpected token `newline'
functions.sh: line 7: `<!DOCTYPE html>'

I think you downloaded the repository in a wrong way, that HTML tag is not present in my script.
Please try to download it again: https://docs.github.com/en/get-started/start-your-journey/downloading-files-from-github


bug: remove vitest de dependencias de produção e corrige script de coverage

@julio-lemos Thanks for your contribution. I'll merge it into another branch with other small improvements.


Support for different kubernetes platforms

This PR adds support for different Kubernetes cluster providers apart from Minikube like GKE or AWS EC2.
For doing so it reads the cluster information from the Kubernetes configuration located at $HOME/.kube/config or any path specified in the env var $KUBECONFIG. From these files we need:

Current context.
Kubernetes API URL. There is no need to specify this URL with an env var anymore.
Authentication info. We can authenticate our request against the cluster using three different methods:

Using a token.
Using username and password.
Using a certificate and a key.

After gathering that information we are able to connect to the cluster independently of its provider.

Apart from @sebgoa comments, I think it is fine! 👍

/lgtm


convimg fails to build on Raspbian ARM

gcc: error: unrecognized command line option ‘-msse’; did you mean ‘-fdse’?
gcc: error: unrecognized command line option ‘-mfpmath=sse’
make: *** [Makefile:102: obj/deps/libimagequant/blur.o] Error 1

The following is what I get when trying to make convimg on the latest Raspbian OS.
A google search reveals that may be due to no support for ARM compiling.

Try changing -DUSE_SSE=1 to -DUSE_SSE=0 in the makefile

That didn't have any effect.
Perhaps I also need to remove:
-fomit-frame-pointer -msse and -mfpmath=sse?

You may need to make clean first.

You may need to make clean first.
That was the first thing I did before trying again.
Should I try switching from -msse to -fdse, and removing the -mfpmath part?

No, dse has nothing to do with it, gcc just tried to find something similar.
Those flags shouldn't even be there in the first place if USE_SSE is falsy... but anyway, try stuff until it works.

I can confirm that changing -msse to -fdse and removing -mfpmath causes a successful and functional build on Raspbian. I tested it.

Doesn't change the fact that DSE has nothing to do with it, it's an optimization flag that comes with any -O

Ah. What, if anything, would removing -msse and -mfpmath break?

I doubt it will break anything, it's just not available on that target hardware, it's optimizations. If the lib has support for NEON (doubtful) it might bring better perf for arm. Anyway, removing it should be fine.


feat: add config for explicit dts extensions

Closes #1236
📝 Description
For emitted files, prefer to use explicit file extensions (even for dts files) to support "moduleResolution": "Node16" which requires explicit file extensions when importing files.
⛳ Current behavior in Node16 resolution

🚀 New behavior
Works
💣 Is this a breaking change (Yes/No):
No
📝 Additional Information

This is awesome @segunadebayo
Any eta for this landing or is there a way I can access it as a pre-release. I'm just setting up a new project and wanted to give Ark + Panda a spin, but hit this with a new Remix app setup

I just merged this in @JakeGinnivan. You can install @pandacss/dev@dev shortly to try it out.

@segunadebayo this fixed my build errors and got it up and running. Thanks!


chore(main): release 1.2.3-beta

:robot: I have created a release beep boop
1.2.3-beta (2023-07-31)
Bug Fixes

feedback msg updates (c15f878)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/appblocks-hub/BB-CLI/releases/tag/v1.2.3-beta :sunflower:


Macabre/violent messaging partly hidden inside the app

When consulting the weather map, there is a link in the right, lower corner that opens a message signed by the Leaflet devs.
This message makes an overt reference to the sunflower seeds video, which portrays a Ukrainian lady confronting a Russian soldier and finally giving him seeds to put in his pockets.
The meaning is that when the Ukrainian Army will have killed all Russian soldiers, their bodies will serve as compost bags for the seeds to grow.
Half-way through the message, the text asks the reader to donate money to Ukrainian charities and later claims "if this appeal to humanity doesn't work for you", and goes on to explain how that's tantamount to supporting the Russian Invasion of Ukraine and the reader deserves to die too (carry some seeds in your pocket).
Naturally, there's nothing bad about spreading awareness or asking for donations.
However, the message relies on violent and macabre imagery, and the way it reads is a kind of moral blackmail, which is also quite objectionable.
Impressionable kids could be exposed to this messaging without their parents noticing, since the text is partly out of sight and the app is otherwise family-friendly.

@Mrnofish Thanks for reporting this. I agree with you just about the fact that i dont want my app to have a political message, whatever my beliefs are.
I still want to attribute leaflet. I just changed the attribution to point the leaflet github webiste


Broken Link to Governance

When clicking on scipy.org/about I get redirected to ->
https://scipy.github.io/devdocs/dev/governance/governance.html
which displays a 404 file not found github error page.  (using both chromium and firefox)
This might be a SciPy documentation issue as it seems like the scipy/doc/scource/dev/governance.rst file is a part of the documentation. But since I didn't have any code to reproduce the error I opened the issue here after all. I hope that's ok?!

Thanks @noatamir! Do you want to fix it?

Sure! Let me give it a go... ^_^

Hey @noatamir I had loved to fixed this. And raised PR. Please review that.


[Bug][Dashboard] Supports setting the precision of a field when adding a table field

What happened

Field definition has no type length.
What you expected to happen
Create mysql table successful.
How to reproduce
Create data group, add mysql datastorage.
Environment
No response
InLong version
master
InLong Component
InLong Manager
Are you willing to submit PR?

[ ] Yes, I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

If the front page does not provide field length, an error will be reported when creating a table.


Add release notes for Edge Bridge iOS and Android

Description
This PR updates the release notes to include the Edge Bridge 1.0.0 release for Android and iOS
Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] I have signed the Adobe Open Source CLA.
[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

@calebk1 we should be good to go with this one too, let us know


n-dimensional interpolation models

We currently support a bilinear interpolation model for providing very fast energy rate predictions by doing a linear interpolation over a structured grid. This could be extended to support N dimensions such that it could support more than two incoming features (currently just speed and grade).
Some things to keep in mind is that we want the interpolate method to be as fast as possible since it will be called for every link traversal, minimizing any memory allocations and ideally just performing simple operations.
This work will eventually support a broader refactor of the PredictionModel trait that supports an arbitrary number of incoming features, building toward this API:
pub trait PredictionModel: Send + Sync {
    fn predict(
        &self,
        state: &[StateVar],
        state_model: &StateModel,
    ) -> Result<EnergyRate, TraversalModelError>;
}

@kylecarow - just updated this if you end up having the chance to work on it.

Working in kjc/interpolation

Compass now uses the new interpolation stuff, but the generic feature support needs some thinking and implementing.


Query TimeOut & AutoCommit/RollBack

I ran 100 parallel inserts for 100 iterations using JMeter on a simple insert to a table in my dev environment with a conn. time out of 100 ms. I was getting TimeOut InterruptException. However when I run with 1000 ms, it works 99.9% of the time. poolsize  is set to 30.
I have been comparing the pg reactive client with pgnio and pgnio seems be a lot slower. Any reason why it is taking more than 100 ms for a straightforward insert. Also when the timeout happened, I expected the insert to fail, However, the row got inserted into the system. Do I have to explicitly rollback? Since I did not begin a transaction and it is an AutoCommit, I expected that the conn. will rollback automatically (on error / timeout) and handover conn, to the pool (since I am using withConnection).
//when ct is set to 100ms & conn timeout in config is set to , failure rate is 50%//
CompletableFuture res = client.withConnection(ct, TimeUnit.MILLISECONDS, c -> {
return c.preparedQueryRowCount(insertQuery,)
.exceptionally (err -> {})
.thenApply(knt -> (knt.intValue() == 1));
}).exceptionally(err -> {});

Not sure I understand here, but I have a few remarks, so I'll just bullet them:

A timeout of 100ms is probably a bit too low for the underlying Java futures and NIO channels to properly switch between the two
A timeout on the pool connection is a timeout on waiting for a borrow, so it doesn't mean an insert takes longer than 100ms, it means there isn't a connection available for 100ms. Again, it's also probably too low, but that timeout has nothing to do w/ query speed. It would be more affected by connection pool size.
What are you trying to do exactly? This library should be blazing fast as there is very low overhead. If you can provide a working benchmark I can look.
It's not a matter of explicitly rolling back (though you can), it's a matter of taking it out of auto commit. You are confused w/ what "auto commit" is. What it is not: automatically commit on success or rollback on failure on the Java side". What it is: not in a transaction, when the query runs inside of Postgres it is automatically committed whereas without auto commit you would have to explicit commit. Simply put, when working with Postgres outside of a transaction, you are in auto commit mode and this has nothing to do with Java.

Again thanks. I will run a simple Volume test and share the results.

@smahad786 - Let me know if there is more information or if there is anything else I can answer before closing this issue.

Closing due to inactivity, please comment if more is needed


How to include/use themes?

I am trying to use JADE-Bootstrap with a static site gen: roots and I pick the blog theme. To use so, I  copied the files related to Blog theme(including css, js, jquery) and pasted them in my templates and assets folder to use so. The problem I am facing here is, it shows an error, whenever I am trying to run my server.js/build.js/index.js(any name you prefer) file, using node cmd, it throws me an error on the line that
include ../_bootstrap

is undefined.
I am new to all this, can you help?

Did you set up JADE as your render engine?
app.set('view engine', 'jade');

I am actually using metalsmith where I use another npm package called metalsmith-templates and in the code I did mention like this:
.use(templates({
        engine: 'jade',
      }))

Okay, make sure you install the npm package
npm install jade-bootstrap
then inside your view
include node_modules/jade-bootstrap/_bootstrap
Actually the issue here is the engine is not able to find the bootstrap mixins file while using include, it need some absolute path.
One other thing  you can do is copy the npm modules files to your view directory and from there you can use simple include statement like
include _bootstrap

I will try both options, and will get back to you. Thanks for your help!

Hi @rajasegar Im experiencing an issue getting the css styles which are part of the default layout to render. When I inspect the network traffic using the dev tools in chrome i noticed the request for the css does not load. Any ideas what i can do?