Apology, psapi.h bug, and WinXP progress

Plz read :
Hello, I know you decided to stop working with me after the easter egg incident. However, there were some things that got misconstrued and blown out of proportion. There were definitely some valid things though as well. I have made an explanation/apology post about everything. https://alex313031.blogspot.com/2024/01/the-good-bad-and-ugly.html Please read it. If, after reading it, you still do not wish to collaborate, I totally understand and will respect it.

Now onto the bug report.
Reverting PSAPI to ver. 1 and delay linking the psapi.lib for XP/Vista support https://github.com/win32ss/supermium/commit/d75d17331f2f8733bb300b2095747cce6421d951 is breaking the sandbox on Windows 7/8/8.1/10/11 for me, when using either your supermium 119 .patch file, or directly using the repo (after populating the third_party dir with gclient runhooks). Yet, supermium 119 does not have this issue, only when building it from source. Is there perhaps a difference in the source that was used to compile the 119 release vs. what is publicly available (besides the logo and wrapped installer change). BTW I noticed the logo isn't as high res as it could be. You should either use the ones directly from the pre M12 tree, or use this SVG, and scale it to what you need and export as a .png.
@win32ss

Reverting PSAPI to ver. 1 and delay linking the psapi.lib for XP/Vista support d75d173 is breaking the sandbox on Windows 7/8/8.1/10/11 for me, when using either your supermium 119 .patch file, or directly using the repo (after populating the third_party dir with gclient runhooks). Yet, supermium 119 does not have this issue, only when building it from source. Is there perhaps a difference in the source that was used to compile the 119 release vs. what is publicly available (besides the logo and wrapped installer change). BTW I noticed the logo isn't as high res as it could be. You should either use the ones directly from the pre M12 tree, or use this SVG, and scale it to what you need and export as a .png.

It appears that psapi isn't loaded into the Supermium address space, causing all calls to it to fail. One solution is to call LoadLibrary on psapi, probably in the executable's main function, but instead I started moving psapi references to progwrp because psapi was only finalized in Server 2003 SP1 (XP SP3 is below 2003 SP1/SP2 in that respect), and before that is missing functions used by Supermium. Another option is to revert to psapi v2 and only support 7 and up as the psapi functions will be called from kernel32.
I have to decide what will happen with progwrp. It's possible that two versions of progwrp will be made: progwrp-lite for ensuring Vista+ compatibility and full progwrp for NT 3.51/4.0/5.0 (depending on the functions used in the application). progwrp-lite would be the one that will have its libraries released and be referenced in future Supermium patches, while the full progwrp will be reserved for other purposes, likely commercial.

@win32ss As I am not targeting NT before 6.1.7600, I'll just leave the psapi stuff the same as upstream, and remove the progwrp.lib and ntdll.lib references.
I didn't know that progwrp could even downlevel target stuff as old as NT 3.51/4.0, thats cool! And so is the "non lite" version gonna be a product of your new company?
Also, will there be any more updates to vista extended kernel, and will it ever be open source?
Also, upon further inspection, it seems the icons you used are from the pre M12 branch, am I correct?

Another option is to revert to psapi v2 and only support 7 and up
as the psapi functions will be called from kernel32.

It's possible that two versions of progwrp will be made:
progwrp-lite for ensuring Vista+ compatibility

... Kindly asking you not to forego Vista SP2 x86 support, my current OS on my old laptop :wink:, as Vista Extended Kernel for 32-bit never materialised...

I didn't know that progwrp could even downlevel target stuff as old as NT 3.51/4.0, thats cool! And so is the "non lite" version gonna be a product of your new company?

Yes. The purpose of the DLL will be to port other applications to older versions of Windows.

Also, will there be any more updates to vista extended kernel, and will it ever be open source? Also, upon further inspection, it seems the icons you used are from the pre M12 branch, am I correct?

There will probably be one more in the future, to correct the export forwards to proper imports (not easy in 32 bit binaries), because that trips up Unicows and perhaps some other alternatives to GetProcAddress. The tooling to build the import DLLs will be made open source, but some of the functions don't exist in C so a disassembly of them is the closest it can be to "open source".
And yes the icons did come from the pre-M12 branch.

@win32ss OK this is werid. I fixed everything, and got a working build last night, but now, as I am working on it today, it keeps coming up with "api-ms-win-core-com-l1-1-0.dll was not found on your computer" errors. Upon using dependency walker from the 19041 SDK, it shows that dbghelp.dll is the culprit.
Did you ever have this issue. And if you didn't, could I at least know this information about your setup that you are using to get successful builds:

OS (10 or 11, or Linux version if cross-compiling)
MSVS Version (i.e. 7.5)
WinSDK version (particularly important since this is where dbghelp.dll comes from) (i.e. 19041, 20348, 22621, etc.)
Are you natively compiling or cross-compiling

@win32ss OK this is werid. I fixed everything, and got a working build last night, but now, as I am working on it today, it keeps coming up with "api-ms-win-core-com-l1-1-0.dll was not found on your computer" errors. Upon using dependency walker from the 19041 SDK, it shows that dbghelp.dll (which is linked into both chrome.exe and chrome.dll) is the culprit.
Did you ever have this issue? And if you didn't, could I at least know this information about your setup that you are using to get successful builds:
1. OS (10 or 11, or Linux version if cross-compiling)

2. MSVS Version (i.e. 7.5)

3. WinSDK version (particularly important since this is where dbghelp.dll comes from) (i.e. 19041, 20348, 22621, etc.)

4. Are you natively compiling or cross-compiling

Windows 10 1809 LTSC
Visual Studio 2022 (17.7.1)
Windows 11 SDK 22621
Native compile, of course
I think that dll is included in the 1809 api-set-schema (so a type of "virtual DLL") so it's not a problem there. The Supermium distributions (what is contained in the 7z packages built by the autoninja script) don't contain this dbghelp and will use the system's dbghelp instead.

@win32ss OK thanks. Also, you made an easy to make mistake in about_flags.cc. See > https://github.com/win32ss/supermium/pull/152/files

@win32ss OK thanks. Also, you made an easy to make mistake in about_flags.cc. See > #152
Also, I meant that I am getting the errors on Windows 7, where the file is not to be found, even with net framework and all the visual c++ redists

Thanks for pointing that out. Those flags don't do anything for now, but once I am done with the rest of ungoogled functionality (next up is switches for disabling the machine ID-based encryption of the data directories and rolling them up into a portable switch that automatically sets the data dir to be in the same directory as chrome.exe) I will use them for blocking telemetry and involuntary connections to Google.
And yes on Windows 7, that DLL was never made for it, and is presumably not a virtual DLL in its apisetschema either. But now I remember that I actually did get the newer dbghelp included in the distribution once, and deleting it from the build output folder seemed to fix it for all further non-clean builds, as the Windows Vista and up versions of dbghelp are sufficient for Chromium at this time.

@win32ss So what should I do? Also I have another PR coming in soon to properly restore SSE2 support for x86 32 bit.
The problem is that for SSE2 and below, clang makes it non cumulative.
What I mean is that for example, setting -msse4 really tells it to do -mfxsr -mx87 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2. However, setting -msse2 does not do this. Also, setting /arch:SSE2 doesn't work for all targets. The proper way is to do that, but also to add -mfxsr -mmmx -msse -msse2 to either the win BUILD.gn, or the main compiler BUILD.gn in the common_flags for Windows.

@win32ss So what should I do then? Copy a different dbghlp.dll or remove it or what? I just pulled supermium tip of tree, and the only thing I changed was PSAPI. Still having the issue on <Win10. IDK how the heck I broke it, or how upstream broke it. I had a f***ing working build yesterday!! SOO frustrating as I cannot continue work on thorium-win7 until this is resolved.

It is safe to remove as Windows 7 has its own version of dbghelp in system32, which has all necessary functions.

UPDATE: #153 (this also removes a file I'm assuming you accidently created, and adds the "supermium" target. Using the chrome target works just fine as well :) )

Thanks. A lot of junk files got made when I first built Supermium, and I didn't manage to remove all of them.

@win32ss Also, using /arch:SSE2 the way I did it usually works. I had issues with it in M118. But it works for M109 and M119. If you have issues, you can remove it. It should only affect things that use MSVC rather than clang, which on windows is only NaCl (which we disable anyway)

And so, I should remove dbghelp.dll from the out/blahblah directory before or after compilation?

Before, to prevent it from being included with the 7z archives that the build scripts will make (if you use those).

Also, on a random note, I made a modified version of the 6.1.48 Virtualbox Guest Additions ISO that will work on Windows NT 4.0 SP5 or SP6, if you want it I could upload it to Github.

Didn't know Oracle broke NT4. I don't use VirtualBox very much, but I think others may use those hardening-afflicted versions.

@win32ss OK thanks, and yeah, I make mini_installers.
OK fixed it where it is running again, but now another problem, the sandbox is broken. It wont run without --no-sandbox on windows 7, although it runs fine on 10 without the flag. Any idea why? Should I still link in ntdll.lib and psapi.lib even with PSAPI=2?
Also, can you please tell me the exact winsdk version you are using. (I.E. for example 10.1.22621.2428. ) You can find this info in programs and features (appwiz.cpl)

@win32ss I solved it, so ignore the post above, except for the WinSDK, I would still like to know your exact setup, so i can replicate it on my end for building, and so that if I have any bug reports at least we know our toolchains are the same.

@win32ss I solved it, so ignore the post above, except for the WinSDK, I would still like to know your exact setup, so i can replicate it on my end for building, and so that if I have any bug reports at least we know our toolchains are the same.

I'm using Windows SDK 10.0.22621.1778. Is there anything else you would like to know?

@win32ss
Actually, I would like to know why not linking in ntdll.lib would cause this, because it seems you only added that when you added progwrp.dll for NT 5.x.x.
Lastly, where can I even get a LTSB 1803 ISO? Isn't it like volume license only and I would have to pirate it?
Other than that, nope, thanks for your incredible work and for working with me again! Hope Supermium can run on XP eventually, because that would be a double dream come true.

@win32ss
Actually, I would like to know why not linking in ntdll.lib would cause this, because it seems you only added that when you added progwrp.dll for NT 5.x.x. (It might also be a good idea to add progwrp.dll to the repo, or guard that linker setting behind a flag like use_win32ss_progrwp = true/false)
Lastly, where can I even get a LTSB 1803 ISO? Isn't it like volume license only and I would have to pirate it?
Other than that, nope, thanks for your incredible work and for working with me again! Hope Supermium can run on XP eventually, because that would be a double dream come true.
After your response, we can close this issue.

Upstream Chromium started using ntdll.lib with M112 and started calling ntdll functions directly. The error seems to indicate that a whole DLL could not be located, which would be verified with dependency walker. But in that case, I would've expected the linker to fail to find references to the ntdll functions in any library, since they are not duplicated in other libraries.
There is no 1803 LTSB, just 1809. It is VL, but other SKUs could be used and the build process would be the same, but the OS would be more annoying of course.
I will add a flag to ensure Supermium can build without progwrp soon.

And this is Supermium on XP now. I am trying to improve performance on single-threaded systems with 512-768 MB of RAM, although these bloated sites are the main issue.

@win32ss Oh my god sir. You did it. There has never been an open source Chromium fork for XP that was newer than M54 (Advanced Chrome). Even all the closed source ones never got to Chromium newer than M96 without the highly buggy One Core API.
This is truly a masterpiece. Like, this made my day. Definitely gonna use Supermium on XP when it comes out. Gonna bust out my big gun, a machine with nearly the highest (officially) supported hardware for XP. An AMD FX-8370 + GTX 970 + 16GB DDR3 + PAE Patch. On that machine, even with no GPU acceleration at all, I expect browsing to be snappy. Will probably use Thorium on Win7 though.
And so where can I get an 1809 ISO?

Even all the closed source ones never got to Chromium newer than M96 without the highly buggy One Core API.

Actually false. This one is M115 and works WITHOUT One-Core API.

@unattendedplayer Im aware of this. But once again, it is not open source. There is only a readme and update file. No source if provided.

Also, are you gonna open source the logo change (if you intended to, I can make a PR with the M12 logos) and wrapped installer. I particularly like the wrapped installer since it asks the user before continuing. (mini_installer is great and all. Simple and robust. But it doesn't give the user any feedback/progress or confirmation, it just silently installs in the background, which many users dislike)

I was thinking about removing all branding changes from the Supermium codebase (moreso the localized strings) to avoid massive git conflicts, including the logos, so they would be applied using a script to be run at build time instead. Although the logos only change once every few years, so they wouldn't need to be excluded like that.
The installer is built on a simple 7zip SFX script. This script in turn calls a small installer stub I made which then copies progwrp to system32 (as it is required for the uninstaller which is stored in the installer cache subdirectory of system32) and then launches mini_installer. I could release the script as that's responsible for the message box regarding installation.

@win32ss OK good plan. And yes please. Can you commit or send me whatever is needed to make the message box (without progwrp.dll, as I dont need that since Im only targeting Win7 SP1)

 And this is Supermium on XP now.

I am so greedy to get my hands on such an open-source XP-compatible build. Looking forward for the next Supermium release. Endless thanks for your work on that!

@win32ss OK good plan. And yes please. Can you commit or send me whatever is needed to make the message box (without progwrp.dll, as I dont need that since Im only targeting Win7 SP1)
config.txt

Just replace setup.exe with mini_installer.exe and follow the instructions for building a 7zip SFX installer: https://superuser.com/questions/283698/create-7-zip-sfx-executable

@unattendedplayer Im aware of this. But once again, it is not open source. There is only a readme and update file. No source if provided.

Still proves my point that there is a closed source browser >90 which is working on XP without OCAPI etc.

Also, I swear, what is with the popularity of the E8400. I swear every manufacturer or system builder always shipped this as their "highest end" CPU. But what about the E8500 or E8600 (the true king of the core 2 duo lineup). I swear you never see those in the wild except for custom built systems from back in the day. I have an Optiplex 780 that came with an E7500. I upgraded it to a E8600. E8400 is still good tho, for XP and 7.

I think it had a good performance/price value. It's one of the best CPUs you could get on something like Asus P5GC/MX (Early LGA775 with max. Dual Core support). It's still doing good on web browsing if paired with a GPU that handles the H/W acceleration.

@win32ss OK so I made successful builds of Supermium, Chromium, and Thorium M119 for Windows 7.
There is one small issue though. When doing a fresh install, it doesn't pin the shortcut to quick launch (i.e. the taskbar). Upstream always does this. Did you remove this, or is this a bug. If you did remove this, can you show me the file or commit so that I can change it back.

@win32ss OK so I made successful builds of Supermium, Chromium, and Thorium M119 for Windows 7.
There is one small issue though. When doing a fresh install, it doesn't pin the shortcut to quick launch (i.e. the taskbar). Upstream always does this. Did you remove this, or is this a bug. If you did remove this, can you show me the file or commit so that I can change it back.

I don't remember removing this code. It was likely removed by upstream as quick launch is deprecated. I never noticed this behaviour so I never did anything about it.

@

@win32ss OK so I made successful builds of Supermium, Chromium, and Thorium M119 for Windows 7.
There is one small issue though. When doing a fresh install, it doesn't pin the shortcut to quick launch (i.e. the taskbar). Upstream always does this. Did you remove this, or is this a bug. If you did remove this, can you show me the file or commit so that I can change it back.

I don't remember removing this code. It was likely removed by upstream as quick launch is deprecated. I never noticed this behaviour so I never did anything about it.
Or you're talking about the Superbar. I see that Supermium does it on Windows 10, but not 7. Then it would be worth looking at.

@win32ss WDYM superbar? All I know is that Chromium has always pinned a shortcut to the right of the start button on a fresh install (i.e. or if the user data dir is unpopulated)

@

@win32ss OK so I made successful builds of Supermium, Chromium, and Thorium M119 for Windows 7.
There is one small issue though. When doing a fresh install, it doesn't pin the shortcut to quick launch (i.e. the taskbar). Upstream always does this. Did you remove this, or is this a bug. If you did remove this, can you show me the file or commit so that I can change it back.

I don't remember removing this code. It was likely removed by upstream as quick launch is deprecated. I never noticed this behaviour so I never did anything about it.
Or you're talking about the Superbar. I see that Supermium does it on Windows 10, but not 7. Then it would be worth looking at.

@win32ss WDYM superbar? All I know is that Chromium has always pinned a shortcut to the right of the start button on a fresh install (i.e. or if the user data dir is unpopulated)

The updates to the taskbar made in Windows 7. In any event, it seems the methods used to pin to taskbar changed with Windows 10 and the old method was likely removed from the Chromium code (https://stackoverflow.com/questions/57159451/how-to-pin-an-application-to-the-taskbar).

@win32ss Can we add it back to the superbar?
Also, SSE3 and SSE2 x86 builds are both failing for me. I noticed SSE2 builds were failing for you.
Did  you also get the "blahblah is not a valid Win32 program" error?

@win32ss Can we add it back to the superbar?
Also, SSE3 and SSE2 x86 builds are both failing for me. I noticed SSE2 builds were failing for you.
Did you also get the "blahblah is not a valid Win32 program" error?

Yes, I can put it back on the superbar.
I forgot to mention that the "/arch:SSE2" statement was problematic. When removed it is working.
I don't get an error like that, although that would mean that PlatformSubsystemVersion is greater than 6.1. Chromium sets it to 5.1 by default.

@win32ss Noice. When you commit the superbar fix, I will cherry pick it.
Yeah, I removed /arch:SSE2. Seems to only work with vanilla Chromium.
And I have my subsystem set to 6.0 across the board. Should I perhaps set it to 5.1 for x86?

@win32ss Are your SSE2 builds working ok now. I have tested it in regular Thorium as well as Thorium-Win7 with -mmmx -mfxsr -msse2 and it works fine. Tested on a real Northwood Pentium 4 too.

They're working good on my Pentium M. As good as a Pentium M can be now...

@win32ss Noice. Closing issue now.


suite: ceph-deploy now is similar to install

The ceph-deploy task interprets its config in the same way the install
task does: tag, branch and sha1 have priority.
http://tracker.ceph.com/issues/13526 Refs: #13526
Signed-off-by: Loic Dachary<EMAIL_ADDRESS>

Refer to this link for build results (access rights to CI server needed):
http://jenkins.ceph.com//job/teuthology-pull-requests/1903/
Test PASSed.


Improve description of data format for year/value on landing page

Per bilateral communication with @tburandt, the section on Timeseries data dimensions is not sufficiently clear in the top-level README because year and value are not mentioned. I didn't include them in my first version because they do not require subfolders with more detailed explanation, and I was worried about creating confusion about long vs. wide table formats.
So how to add this information in a concise and intuitive way:

Add entries to the

7 Year
8 Value

But this risks confusion because it might be understood that it has to be a long format (it can be either long or wide).

Come up with a short description after the list of dimensions (good formulations?)

Option 2 but also add example tables (one long, one wide) similar to what is in the pyam-docs or this tutorial -but this has the risk of making the top-level README very long...

@burandt @erikfilias any ideas or comments?

@danielhuppmann, option 1 could generate some confusion between dimensions subannual and year. I think if we do not consider the dimension subannual and add year and value could generate a great number of rows in the files.
Whilst option 2 could show some examples of good formulation and not add new dimensions (year and value). The image for the illustrative example of IAMC-format time series data in the pyam-docs is great for this purpose, I think. For me, option 2 is suitable for our purposes.


Add metadata-action so labels are generated

I use renovate to make sure my deployed apps are up to date. (https://github.com/halkeye/home-k8s/pull/116) and according to the documentation if the source docker label is set, it'll actually pull in the release notes.
I checked the latest release, and it doesn't seem to have the labels (or any labels) set, so using the pre-existing github action should populate all the nice metadata.
regctl image config --format '{{ jsonPretty .Config.Labels }}' ghcr.io/matrix-org/sliding-sync
null
Pull Request Checklist

[x] Pull request includes a sign off

I'll need you to walk me through your changes and justify them. Thanks.

Yea thats cool, i'm only just starting to learn about labels because of my k8s lab.

Fixed a typo, it now runs
https://github.com/halkeye/sliding-sync/actions/runs/9395229608/job/25874257317 for example output on a branch (just builds, no push)
Example version - v0.0.1
https://github.com/halkeye/sliding-sync/actions/runs/9395286907/job/25874424720
https://github.com/halkeye/sliding-sync/pkgs/container/halkeye%2Fsliding-sync
(I have a bug cause one tag is "false")

https://github.com/halkeye/sliding-sync/actions/runs/9395428499
https://github.com/halkeye/sliding-sync/pkgs/container/halkeye%2Fsliding-sync/226245448?tag=latest
regctl image config --format '{{ jsonPretty .Config.Labels }}' ghcr.io/halkeye/halkeye/sliding-sync:latest
{
  "org.opencontainers.image.created": "2024-06-06T05:08:55.274Z",
  "org.opencontainers.image.description": "Proxy implementation of MSC3575's sync protocol.",
  "org.opencontainers.image.licenses": "Apache-2.0",
  "org.opencontainers.image.revision": "5f014bff281a49d1a4213dd3be20190a413a7a9f",
  "org.opencontainers.image.source": "https://github.com/halkeye/sliding-sync",
  "org.opencontainers.image.title": "sliding-sync",
  "org.opencontainers.image.url": "https://github.com/halkeye/sliding-sync",
  "org.opencontainers.image.version": "v0.0.2"
}


Update MD file on new branch 2017-28-22_23-11-09

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

split/updateTestRef.md
:white_check_mark:Succeeded

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


Possible edge case in decoder when very first OP is QOI_OP_RUN

There's an edge-case that currently is handled differently by various decoders. At a first glance it looks like this decoder may not be spec-conformant. The spec is not clearly worded in this case, but I have decided to interpret it in a particular way now. Sorry about that!
Please see the original issue here https://github.com/phoboslab/qoi/issues/258 for the details.

Hi @phoboslab, thanks for the heads up. I'm working on integrating the test images in tests and fixing the library accordingly.


[Documentation] Vision Limitation mod hyperlink

Hi dev,
The readme references the module Vision Limitation but its hyperlink leads back to this module. Just wanted to flag this in case it is an error, but I understand this might just be a module that is still WIP and unpublished etc.
Thanks.

The module is going to be released soon. Hopefully this weekend. It's Perfect Vision's Vision Limitation feature as its own module.

https://github.com/dev7355608/limits


ExecutionStrategy ignored when doing ToList() in EF Core 3.0

The configured execution strategy (either a custom one or SqlServerRetryingExecutionStrategy via e.g. EnableRetryOnFailure()) is not being used when ToList() is called on a DbSet.
It does seems to be used when SaveChanges() is called, however.
In EF Core 2.2, the execution strategy would be used for queries (e.g. ToList()) as well as on SaveChanges().
This is causing our queries to fail occasionally due to deadlocks:
Microsoft.Data.SqlClient.SqlException (0x80131904): Transaction (Process ID 134) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
   at Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at Microsoft.Data.SqlClient.SqlDataReader.TryHasMoreRows(Boolean& moreRows)
   at Microsoft.Data.SqlClient.SqlDataReader.TryReadInternal(Boolean setTimeout, Boolean& more)
   at Microsoft.Data.SqlClient.SqlDataReader.<>c__DisplayClass195_0.<ReadAsync>b__1(Task t)
   at Microsoft.Data.SqlClient.SqlDataReader.InvokeRetryable[T](Func`2 moreFunc, TaskCompletionSource`1 source, IDisposable objectToDispose)
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.AsyncQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
   at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken)

without it attempting to retry.
Steps to reproduce

Create a custom execution strategy:

public class TestExecutionStrategy : SqlServerRetryingExecutionStrategy
{
    public TestExecutionStrategy(ExecutionStrategyDependencies dependencies) : base(dependencies)
    {
    }

    protected override void OnFirstExecution()
    {
        Console.WriteLine("OnFirstExecutionCalled");
        base.OnFirstExecution();
    }
}

Configure DbContext to use custom execution strategy:

services.AddDbContext<TestDbContext>(o =>
    o.UseSqlServer(connectionString,
        options => options.ExecutionStrategy(d => new TestExecutionStrategy(d))));

Call a method that does a ToList() on a DbSet:

List<Order> orders = _dbContext.Orders.ToList();

Note that OnFirstExecution() is not called.

Further technical details
EF Core version: 3.0.0
Database provider: Microsoft.EntityFrameworkCore.SqlServer
Target framework: .NET Core 3.0
Operating system: macOS High Sierra
IDE: Rider 2019.2.3

@AndriySvyryd Thoughts?


Assertion failed when importing a map

CARLA version: 0.9.13 built from source version
Platform/OS: Windows 10
Problem you have experienced: I'm trying to import a map to CARLA using this tutorial https://carla.readthedocs.io/en/0.9.13/tuto_M_add_map_source/
=> putting my FBX and XODR files to import-folder and make import. Import fails with Assertion failed: _length > 0.0
What you expected to happen:  Import functional map to Carla
Other information (documentation you consulted, workarounds you tried): I originally thought it was because my map is pretty large (about 5kmx5km) and reduced it to about 1kmx1km. Still same error. Still too big?
Edit: Tried to import just osm (with this https://carla.readthedocs.io/en/latest/tuto_G_openstreetmap/), and receive the same error. The problem then seems to not be with the FBX-file

I have encountered the same problem and expect to get a solution.


Enhanced Guides/Customization.md

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
docs update
Why was this change needed? (You can also link to an open issue here)
Enhanced the Customization.md
Other information:

@dartpain commited the suggestions

Looks like

steps are not numbered as they where before
no ` on the filename

Looks like
1. steps are not numbered as they where before

2. no ` on the filename

Updated

Thank you!


[FEA] Allow EliminateJoinToEmptyRelation in GpuBroadcastExchangeExec

AQE has an optimization rule: EliminateJoinToEmptyRelation that we are seeing in NDS q16. The query on the GPU takes roughly 40s to run in one of our test environments, but it takes the CPU 14s to run. This is because most of the query goes away and is replaced by a LocalScan <empty> given EliminateJoinToEmptyRelation on a broadcast exchange that produces 0 rows.
AQE performs this optimization for inner join, left semi, or a specific anti join (ExtraSingleColumnNullAwareAntiJoin). It looks at the children of the join and actively resolves the broadcast.relationFuture member. If it returns EmptyHashedRelation it goes ahead and eliminates this join.
The relationFuture is defined in the plugin, but we do not emit an EmptyHashedRelation when we have 0 rows in the broadcast. If I make this change, AQE eliminates most of q16 and now it executes in ~7.5 seconds (or roughly 2x faster than the CPU).
What I do not know yet is what else can break with this change. I did run all of NDS and none of the queries failed, but that's just one example. I think we need to understand better if EmptyHashedRelation is OK to have around in a GPU plan.

@abellina can you post a patch so I can better understand what change you are making, and then we can figure out exactly what it would take to support this.

@revans2 here's the patch that I have so far: https://github.com/abellina/spark-rapids/commit/0c23d92be2d880b529ae8e6d0822375de20661c7. There could be a leak with the result, but the overall idea is here. There is the case of the identity broadcast, and I haven't looked into that one yet.

The only place I would change anything else is where we read the broadcast.
It is expecting a SerializeConcatHostBuffersDeserializeBatch and has it hard coded. I would fetch the broadcast and then check the type. If it is empty, then we can create an empty batch instead and still get the same answer.  It also might be good to check for empty batches being returned from the child execution.


present stops immediately with "c = curses.tigetstr("sitm").decode("utf-8") #AttributeError: 'NoneType' object has no attribute 'decode'

python version 3.7.3
WSL/Debian 10

Already reported in #48. Thanks for reporting this, I'll push a quick fix to remove italics support for now, until it can be done in a cross-platform way in the future.

sorry! did read through the issue headers, but couldn't identify the existing one :)
Can't wait to finally try it, i was looking for a simpler pandoc presentation alternative for quite a while now

No worries! I'll keep this open (as it has a better title) till I push a fix.

This should be fixed with present v0.5.1, please reopen it if you still face the issue.


Installation/upgrade error

I am running the installation script on top of a 1.1.4a installation and see
List of genomes to get (from the config file at '{'genomes': [{'dbkey': 'hg19', 'name': 'Human (hg19)', 'indexes': ['seq', 'twobit'], 'annotations': ['GA4GH_problem_regions', 'capture_regions', 'MIG', 'prioritize', 'dbsnp', 'hapmap', '1000g_omni_snps', 'ACMG56_genes', '1000g_snps', 'mills_indels', 'clinvar', 'cosmic', 'ancestral', 'qsignature', 'genesplicer', 'effects_transcripts', 'varpon', 'vcfanno', 'viral', 'transcripts', 'RADAR', 'rmsk', 'mirbase'], 'validation': ['giab-NA12878', 'platinum-genome-NA12878', 'giab-NA24385', 'giab-NA24631', 'giab-NA24143', 'giab-NA24149']}, {'dbkey': 'hg38', 'name': 'Human (hg38) full', 'indexes': ['seq', 'twobit', 'bwa', 'hisat2'], 'annotations': ['ccds', 'capture_regions', 'coverage', 'prioritize', 'dbsnp', 'hapmap_snps', '1000g_omni_snps', 'ACMG56_genes', '1000g_snps', 'mills_indels', '1000g_indels', 'clinvar', 'qsignature', 'genesplicer', 'effects_transcripts', 'varpon', 'vcfanno', 'viral', 'transcripts', 'RADAR', 'rmsk', 'mirbase'], 'validation': ['giab-NA12878', 'giab-NA24385', 'giab-NA24631', 'platinum-genome-NA12878', 'giab-NA12878-remap', 'giab-NA12878-crossmap', 'dream-syn4-crossmap', 'dream-syn3-crossmap', 'giab-NA12878-NA24385-somatic', 'giab-NA24143', 'giab-NA24149']}], 'genome_indexes': ['bwa', 'star', 'bowtie2', 'rtg'], 'install_liftover': False, 'install_uniref': False}'): Human (hg19), Human (hg38) full
Traceback (most recent call last):
  File "/rsrch3/scratch/bcb/bpeng1/bcbio/anaconda/bin/bcbio_nextgen.py", line 221, in <module>
    install.upgrade_bcbio(kwargs["args"])
  File "/rsrch3/scratch/bcb/bpeng1/bcbio/anaconda/lib/python3.6/site-packages/bcbio/install.py", line 105, in upgrade_bcbio
    upgrade_bcbio_data(args, REMOTES)
  File "/rsrch3/scratch/bcb/bpeng1/bcbio/anaconda/lib/python3.6/site-packages/bcbio/install.py", line 349, in upgrade_bcbio_data
    _upgrade_snpeff_data(galaxy_home, args, remotes)
  File "/rsrch3/scratch/bcb/bpeng1/bcbio/anaconda/lib/python3.6/site-packages/bcbio/install.py", line 418, in _upgrade_snpeff_data
    if os.path.exists(snpeff_db_dir) and _is_old_database(snpeff_db_dir, args):
  File "/rsrch3/scratch/bcb/bpeng1/bcbio/anaconda/lib/python3.6/site-packages/bcbio/install.py", line 445, in _is_old_database
    version_info = in_handle.readline().strip().split("\t")
TypeError: a bytes-like object is required, not 'str'
Traceback (most recent call last):
  File "bcbio_nextgen_install.py", line 287, in <module>
    main(parser.parse_args(), sys.argv[1:])
  File "bcbio_nextgen_install.py", line 44, in main
    subprocess.check_call([bcbio, "upgrade"] + _clean_args(sys_argv, args))
  File "/usr/lib64/python2.7/subprocess.py", line 542, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/rsrch3/scratch/bcb/bpeng1/bcbio/anaconda/bin/bcbio_nextgen.py', 'upgrade', '--tooldir=/rsrch3/scratch/bcb/bpeng1/bcbio/share', '--genomes', 'hg19', '--aligners', 'bwa', '--genomes', 'hg38', '--aligners', 'star', '--aligners', 'bowtie2', '--data']' returned non-zero exit status 1

It looks like a typical python2/3 error because 1.1.4 uses python3 and 1.1.4a uses python2, but I do not know if this is caused by running a python2 script from 1.1.4a with the new python3.

Hi @BoPeng,
You don't need to run the installation on top of the old installation, you can upgrade with bcbio_nextgen.py upgrade -u development --tools which will upgrade the existing installation. You only need to run the installation script when you are installing it for the first time.

Thanks. I am trying again with the upgrade command.
BTW, my current installation is under a directory 1.1.4a and it makes sense to rename it to 1.1.4 after upgrade, will upgrade fixes all paths if I rename the directory?

Hi @BoPeng,
It won't, if you need to keep track of the current version you'd be better off installing a new version of bcbio into a different root directory and leaving the old one as is, that is how some folks using bcbio are keeping separate versions. For our work we just have one installation that we update.

I am seeing the same problem with upgrade, so it looks like a problem with upgrading from python2 (1.1.4a) to python3 (1.1.4). It is a huge undertaking to reinstall everything (with all the reference genomes and index building stuff) so I am trying to reuse whatever I have from 1.1.4a.

Hi @BoPeng,
From the error above, you have a systemwide python in your path:
'''
File "/usr/lib64/python2.7/subprocess.py", line 542, in check_call
raise CalledProcessError(retcode, cmd)
'''
which is causing the problem. If you can figure out how that is getting injected and remove it, you'll be all set.

For a clean install, you can point to an existing installation and just link the genome directory.
For example:
wget https://raw.github.com/chapmanb/bcbio-nextgen/master/scripts/bcbio_nextgen_install.py
python bcbio_nextgen_install.py ${HOME}/local/share/bcbio --tooldir=${HOME}/local --nodata
ln -s /n/app/bcbio/biodata/genomes/ ${HOME}/local/share/genomes
ln -s /n/app/bcbio/biodata/galaxy/tool-data ${HOME}/local/share/galaxy/tool-data

Our genome installation is in /n/app/bcbio/biodata/genomes, so I link to it. The tool-data directory also points to the genomes so that needs to be linked to. This makes a bcbio install in my ${HOME}/local/share/bcbio that is using the already-installed genomes.

I am still getting the same problem after hiding system python
[bpeng1@localhost Downloads]$ which python
/usr/bin/which: no python in (/rsrch3/scratch/bcb/bpeng1/bcbio/share/bin:/rsrch3/scratch/bcb/bpeng1/bcbio/share/bin:/rsrch3/scratch/bcb/bpeng1/bcbio/share/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/bpeng1/.local/bin:/home/bpeng1/bin)

List of genomes to get (from the config file at '{'genomes': [{'dbkey': 'GRCh37', 'name': 'Human (GRCh37)', 'indexes': ['seq', 'twobit'], 'annotations': ['GA4GH_problem_regions', 'capture_regions', 'MIG', 'prioritize', 'dbsnp', 'hapmap', '1000g_omni_snps', 'ACMG56_genes', '1000g_snps', 'mills_indels', 'clinvar', 'cosmic', 'ancestral', 'qsignature', 'genesplicer', 'effects_transcripts', 'varpon', 'vcfanno', 'viral', 'transcripts', 'RADAR', 'mirbase'], 'validation': ['giab-NA12878', 'giab-NA24385', 'giab-NA24631', 'dream-syn3', 'dream-syn4', 'giab-NA12878-NA24385-somatic', 'giab-NA24143', 'giab-NA24149']}, {'dbkey': 'mm10', 'name': 'Mouse (mm10)', 'indexes': ['twobit'], 'annotations': ['problem_regions', 'dbsnp', 'vcfanno', 'transcripts', 'rmsk', 'mirbase']}], 'genome_indexes': ['bwa', 'star', 'bowtie2', 'rtg'], 'install_liftover': False, 'install_uniref': False}'): Human (GRCh37), Mouse (mm10)
Traceback (most recent call last):
  File "/rsrch3/scratch/bcb/bpeng1/bcbio/share/bin/bcbio_nextgen.py", line 221, in <module>
    install.upgrade_bcbio(kwargs["args"])
  File "/rsrch3/scratch/bcb/bpeng1/bcbio/anaconda/lib/python3.6/site-packages/bcbio/install.py", line 105, in upgrade_bcbio
    upgrade_bcbio_data(args, REMOTES)
  File "/rsrch3/scratch/bcb/bpeng1/bcbio/anaconda/lib/python3.6/site-packages/bcbio/install.py", line 349, in upgrade_bcbio_data
    _upgrade_snpeff_data(galaxy_home, args, remotes)
  File "/rsrch3/scratch/bcb/bpeng1/bcbio/anaconda/lib/python3.6/site-packages/bcbio/install.py", line 418, in _upgrade_snpeff_data
    if os.path.exists(snpeff_db_dir) and _is_old_database(snpeff_db_dir, args):
  File "/rsrch3/scratch/bcb/bpeng1/bcbio/anaconda/lib/python3.6/site-packages/bcbio/install.py", line 445, in _is_old_database
    version_info = in_handle.readline().strip().split("\t")
TypeError: a bytes-like object is required, not 'str'
[bpeng1@localhost Downloads]$

Thanks, are you running --data with the upgrade? If you leave that off, and then after the upgrade is finished upgrade with --data you should be able to skip past this problem.

Well, the problem persists. upgrade without --data was successful, but rerunning with --data leads to the same problem. I think I will perform a clean installation with the linked genome directory.

Anyway, the function that caused the problem
def _is_old_database(db_dir, args):
    """Check for old database versions, supported in snpEff 4.1.
    """
    snpeff_version = effects.snpeff_version(args)
    if LooseVersion(snpeff_version) >= LooseVersion("4.1"):
        pred_file = os.path.join(db_dir, "snpEffectPredictor.bin")
        if not utils.file_exists(pred_file):
            return True
        with gzip.open(pred_file) as in_handle:
            version_info = in_handle.readline().strip().split("\t")
        program, version = version_info[:2]
        if not program.lower() == "snpeff" or LooseVersion(snpeff_version) > LooseVersion(version):
            return True
    return False

looks identical to the master so it is likely to be a valid bug.

Thanks, agreed. Let me see if I can reproduce and fix it. Thanks for all the debugging.

Ok, I understand the issue will push a fix in a minute. We missed this one.

I see, Brad did already fix this. Did you upgrade with bcbio_nextgen.py upgrade -u development? That will get you the fix . The line is here that has the fix: https://github.com/bcbio/bcbio-nextgen/blob/master/bcbio/install.py#L445

No, I did not use -u development because I was trying to install the stable 1.1.4 version.

Gotcha, 1.1.4 is not really stable it is more like a broken release, we've found a bunch of these python2 -> python3 issues after releasing it, so you're better off going with the development version and then upgrading to 1.1.5 when we've squashed them all.

OK, I can confirm that
bcbio_nextgen.py -u development --tools --data

failed with the same error, but
bcbio_nextgen.py -u development --tools
bcbio_nextgen.py -u development --tools --data

worked.

Thanks! Sorry for the scenic route getting to the source of the problem. Hopefully we'll squash all of these issues for the next release.


selector-parse succeeds in error.

In ruby sass:
$ sass -i
>> selector-parse('&:hover')
SyntaxError: $selector: "&:hover" is not a valid selector: Invalid CSS after "": expected selector, was "&:hover" for `selector-parse'

In node-sass:
$ echo ".foo { a: selector-parse('&:hover'); }" | node-sass
.foo {
  a: &:hover; }

IMO, it's dumb and may be a bug that ruby Sass doesn't support & here. @nex3 thoughts?

No selector functions support & (except for selector-nest() in parameters after the first). I think this makes some sense—it's not valid CSS, and (at least in LibSass) it isn't interpreted the same way as it is in any other context. And it's straightforward to express this idea already by using selector-append(&, ":hover").

@nex3 I find the partial support to be strange and cumbersome. I need to manipulate the sub selectors before passing it to selector-nest. as it stands now, I have to do a lot of string manipulation to end up with a less flexible solution.

Can you give me some more background on your use case?

I'll start a thread on the sass issue tracker as it's separate from this
particular one.
On Thu, Feb 2, 2017 at 4:01 PM, Natalie Weizenbaum<EMAIL_ADDRESS>
wrote:

Can you give me some more background on your use case?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/sass/node-sass/issues/1881#issuecomment-277124537,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAHL3Yw0Wqxye7GhegRGJD1KjtzXpPkks5rYm5WgaJpZM4L1s4n
.


Fix/7.x/upgrade recyclable memory stream factory

This upgrades to latest RecyclableMemoryStreamFactory
It also adds our own counters into it, isolated from #4191

Aye pretty much, I just extended it to include dotnet performance counters.


the generated images is abnormal when I used nuScenes dataset

follow your readme, I can run demo successfully. But when I train and test by nuScenes mini dataset, but the generated images is abnormal. Can you help us see where the problem lies？

use mini nuScenes dataset
python tools/create_data.py nuscenes --root-path ./data/nuscenes \ --out-dir ./data/nuscenes_mmdet3d_2 --extra-tag nuscenes --version v1.0-mini

train model in debug config with 1xV100
accelerate launch --mixed_precision fp16 --gpu_ids all --num_processes 1 tools/train.py   +exp=224x400 runner=debug runner.validation_before_run=true --version

test
python tools/test.py resume_from_checkpoint=magicdrive-log/debug/SDv1.5mv-rawbox_2024-02-27_09-57_224x400

I don’t think the mini split is sufficient to train the model, but if you test the pretrained model, it should be fine.
Besides, debug config is only used for testing training flow, which only updates the model with very few steps. The model is far from convergence.

okey.
another problem, use my own dataset, but no road map, can this project run？

Yes. Our pre-trained model also supports generation when setting the map to all zeros, but the generated road structure is not correct. For example, you may see cars in bushes.
Training another model without the road map may be better.

Yes. Our pre-trained model also supports generation when setting the map to all zeros, but the generated road structure is not correct. For example, you may see cars in bushes.
Training another model without the road map may be better.

I would like to ask again, use my own dataset, no map, and no annotation results, how can I use bevfusion detect objects in your project, is this method feasible?

If you are asking about using pseudo-label to train MagicDrive, it is possible but we didn’t try it. If not, please specify your question again.

In fact, without road map and 3D bounding boxes in my dataset, I want test your pre-trained model, I don't know if it's  possible. If possible, how can I generate 3D bounding boxes first?

Our method is used to generate camera views by providing boxes, maps, etc. If you want to test our pre-trained model, basically, all you need would be boxes and maps. For example in our paper, we use the boxes and maps from the dataset. We do not investigate how to "generate" boxes or maps.

Yes. Our pre-trained model also supports generation when setting the map to all zeros, but the generated road structure is not correct. For example, you may see cars in bushes.
Training another model without the road map may be better.

Could you please share an example to perform inference generation while setting all maps to zero? An input example for the StableDiffusionBEVControlNetPipeline class would be really helpful, thanks!

You only need to change one line of code. I will not add the change to the current repo. If it is needed for any application, please consider opening a PR.

sorry, I didn't update in a timely manner, I am currently researching. thanks!

Sure, no problem. I closed due to inactivity. If there is the same issue, please feel free to reopen.

Hi,
Thanks for your excellent work! Here, you mentioned that "We do not investigate how to "generate" boxes or maps". If so, how can you perform 3D Object Detection or BEV Segmentation without boxes or maps using generated new perspective images?
Perhaps I misunderstand or miss something. Could you give me some advice？
Thanks for your attention!

Our method is used to generate camera views by providing boxes, maps, etc. If you want to test our pre-trained model, basically, all you need would be boxes and maps. For example in our paper, we use the boxes and maps from the dataset. We do not investigate how to "generate" boxes or maps.

we use the boxes and maps from the dataset

FYI


chore: Add Load Testing Scripts as a part of e2e

JIRA: https://issues.redhat.com/browse/RHDP-440
This PR adds Load Tests As a part of e2e although it wont run when e2e is run it is an independent test suite
signed off by<EMAIL_ADDRESS>

/retest

I'm not very fond of the copied code from toolchain-e2e (prometheus/client.go, utils/getters/getter.go,utils/metrics/collectMetrics.go,). From quick glimpse it seems to me the main reason is the fact, that toolchain-e2e requires Terminal in lot of functions and we don't use it here... Maybe it will be worth thinking how we can unify our approach in this area and either solve it on our side or propose some PR to toolchain-e2e for us to be able to easily consume that code.

Thank you very much @sawood14012 ! I left some general comments in the review. I can see in the PR u are creating another entrypoint for the golang repo and not sure if that will help us to run the tests in containers. Right now we have a container where we are compiling the code. If u decide that u want to add another cmd for the tests then we need another Dockerfile which I don't recommend. Can u adapt the tests to use only one cmd?

I'm not very fond of the copied code from toolchain-e2e (prometheus/client.go, utils/getters/getter.go,utils/metrics/collectMetrics.go,). From quick glimpse it seems to me the main reason is the fact, that toolchain-e2e requires Terminal in lot of functions and we don't use it here... Maybe it will be worth thinking how we can unify our approach in this area and either solve it on our side or propose some PR to toolchain-e2e for us to be able to easily consume that code.

not only the terminal but our initial queries and constants also changes , and i tried to import and use but it didnt workout let me see what i can do here thanks

Thank you very much @sawood14012 ! I left some general comments in the review. I can see in the PR u are creating another entrypoint for the golang repo and not sure if that will help us to run the tests in containers. Right now we have a container where we are compiling the code. If u decide that u want to add another cmd for the tests then we need another Dockerfile which I don't recommend. Can u adapt the tests to use only one cmd?

Thanks for the review @flacatus let me fix it i will try to make use of the same command

#97


Grass Rendering Pink or Missing

minecraft:short_grass is rendering as pink, no matter the height or biome
minecraft:tall_grass and other biome-specific colored blocks are rendering normally
World version 1.20.4, vanilla

Do you use latest release version of Minutor?
Did you try to update your definition files?
It should look like this:

Latest version yes, outdated definitions, despite a fresh install
Updated them manually and worked fine

They should update automatically every 7 days.
You can force that in "Settings".


PoC for removing check results

Problem
SVM's entry point requires a check result for each transaction. For external users, this may be a burden because it may hinder creating a standard behavior for all executed transactions.
Summary of Changes
I abstracted the check results in a trait TransactionCheckResults that allows a custom implementation to fetch the check result. Such a setting allows external users to customize the behavior or set a default for every transaction in the batch.
This PR is a proof of concept and is not ready to be merged. It is supposed to kickstart a discussion about the solution and possibly devise other changes.

I coded this proof of concept for us to discuss about. Can you @buffalojoec @pgarg66 and @dmakarov share your opinion?

Looks good and nice to me on the first iteration.

@LucasSte Thanks for putting this together! I'm wondering what your thoughts might be on an alternative, one which will effectively remove the parameter from the API completely.
Within Bank, an array of check_results is created, containing results that describe whether or not:

The accounts within a transaction were successfully locked.
The transaction is not expired.
The transaction was not already processed.

Then, within SVM, the provided check results are immediately zipped alongside the provided transactions to return a list of validation_results, and never used again. The returned validation_results is yet another list of check results with the same length as the list of transactions. It's used in two spots, and again just zipped alongside the transactions.
Since Bank creates the list of sanitized_txs right before invoking the SVM API, we could just make the list of sanitized transactions mutable, iterate over it, and apply the necessary check results directly to each transaction. If we're always going to zip results alongside transactions, it makes sense for the transaction to just contain the result info natively.
https://github.com/anza-xyz/agave/blob/82aeef812c484933947694f21dbe45b4f0505d81/runtime/src/bank.rs#L3468-L3475
We could accomplish this by simply adding a method to the SVMMessage trait that vends this result.
pub struct CheckedTransactionDetails {
    pub nonce: Option<NonceInfo>,
    pub lamports_per_signature: u64,
}

pub trait SVMMessage: Debug {
    fn checked_result(&self) -> transaction::Result<CheckedTransactionDetails> {
        Ok(CheckedTransactionDetails {
            nonce: None,
            lamports_per_signature: 0,
        })
    }

    /* ... */
}

We could even further refine it by breaking it up into a few separate methods.
pub trait SVMMessage: Debug {
    fn pre_processing_result(&self) -> transaction::Result<()> {
        Ok(())
    }

    fn lamports_per_signature(&self) -> u64 {
        0
    }

    fn nonce_info(&self) -> Option<NonceInfo> {
        None
    }

    /* ... */
}

With this approach, the result is on the transaction itself, we never have to do any zipping, and we can drop the parameter from the SVM API! What do you think?

Side note: Does anyone know why we have lamports_per_signature in so many places? Perhaps we should unify this?

We could accomplish this by simply adding a method to the SVMMessage trait that vends this result.

If doing this, please create an extension trait like CheckedSVMTransaction.
Otherwise I'll end up creating a trait identical to what SVMTransaction is now that doesn't have that stuff.

We could accomplish this by simply adding a method to the SVMMessage trait that vends this result.

@buffalojoec If doing this, please create an extension trait like CheckedSVMTransaction. Otherwise I'll end up creating a trait identical to what SVMTransaction is now that doesn't have that stuff.

Yeahhh I figured it wouldn't be the most ideal thing to start overloading that trait. But agreed another trait works as well.

@buffalojoec That is a good approach. At first, I wanted to avoid cloning NonceInfo all the time, so I decided to take the other approach. Let me see if I can make the sanitized transaction mutable.

@buffalojoec I don't think it is possible to make SanitizedTransaction mutable, because check_transactions receive a &[impl core::borrow::Borrow<SanitizedTransaction>]. One of its callers is indeed passing a slice of references &[&SanitizedTransaction].
https://github.com/anza-xyz/agave/blob/4a777d1288ec7d935db8d8d45c3eff16a4ade0a3/core/src/banking_stage/transaction_scheduler/scheduler_controller.rs#L224-L232
We can alternatively use a RefCell to make the check results mutable, however I think it is a bit ugly.

Alternatively, we could create another wrapper for SanitizedTransaction in the SVM, which would hold both the transactions and the check results.

Since Bank creates the list of sanitized_txs right before invoking the SVM API, we could just make the list of sanitized transactions mutable, iterate over it, and apply the necessary check results directly to each transaction. If we're always going to zip results alongside transactions, it makes sense for the transaction to just contain the result info natively.

Bank retrieves a reference to a slice from TransactionBatch, which holds a Cow<[SanitizedTransaction]>. Everything is always created from references. Up from ledger's TransactionBatchWithIndexes. Making the list mutable is going to require changes in too many places.

Bank retrieves a reference to a slice from TransactionBatch, which holds a Cow<[SanitizedTransaction]>. Everything is always created from references. Up from ledger's TransactionBatchWithIndexes. Making the list mutable is going to require changes in too many places.

Hmm yeah looks like it might be more trouble than it's worth. Your other suggestion is still aligned with what I was leaning toward though!

Alternatively, we could create another wrapper for SanitizedTransaction in the SVM, which would hold both the transactions and the check results.

It sounds like it wouldn't be super pretty, but basically some struct TransactionWithCheckResult that can hang onto the original reference for the tx but also store a check result. If we use a slice of transactions to make this new slice, perhaps we don't even need anything to be mutable at all. Does that sound right?
The concern I have though is that we're going to need SVM to call this new method somewhere, and for that reason it makes sense to have it live under some trait dubbed "SVM-" something. Making it a separate adjacent trait might confuse people. We might have to bikeshed the trait specifics, but at least with this approach you get rid of this awkward input parameter to the API.

It sounds like it wouldn't be super pretty, but basically some struct TransactionWithCheckResult that can hang onto the original reference for the tx but also store a check result. If we use a slice of transactions to make this new slice, perhaps we don't even need anything to be mutable at all. Does that sound right?

Yes, that is correct. I was thinking of having a struct TransactionWithCheckResult which holds both the check results and a reference to the slice of transaction. You can create a trait to return the NonceInfo and the lamports per signature.
This way, we can call load_and_execute_transactions with the new struct. How does this sound?
I had also thought of wrapping each one of the sanitized transaction with a struct to holds its respective check result, but that would require iterating over the returned results. I am not so keen on adding another pass over the vector.

So load_and_execute_transactions will require a struct that allows implementations of both SVMTransaction and this new trait proposed within it? Something like struct Joe<A, B> where A: SVMMessage, B: SVMCheckResult?

Maybe simpler to just have it as child trait (not sure correct naming)?
i.e. pub trait CheckedSVMTransaction: SVMTransaction {}
this way the method can just take CheckedSVMTransaction, and it will still have access to all the methods of SVMTransaction.
The type itself could just wrap an Tx: SVMTransaction with the check result.
The annoying thing is that we have a bunch of boiler plate in re-impling (really just routing the function calls) of the wrapper type.

So load_and_execute_transactions will require a struct that allows implementations of both SVMTransaction and this new trait proposed within it? Something like struct Joe<A, B> where A: SVMMessage, B: SVMCheckResult?

Maybe simpler to just have it as child trait (not sure correct naming)?
i.e. pub trait CheckedSVMTransaction: SVMTransaction {}
this way the method can just take CheckedSVMTransaction, and it will still have access to all the methods of SVMTransaction.
The type itself could just wrap an Tx: SVMTransaction with the check result. The annoying thing is that we have a bunch of boiler plate in re-impling (really just routing the function calls) of the wrapper type.

You could maybe avoid the routing by just doing trait CheckedSVMTransaction<T: SVMTransaction> {}. Not sure if the generic parameter makes this annoying, though, since the API would then need to shift SVMTransaction to a generic arg, ie. process_txs<CB: Callbacks, T: SVMTransaction>(&self, callbacks: &CB, txs: &[CheckedSVMTransaction<T>]).

I believe we can avoid the extra parameters by doing this (I haven't tested it yet):
struct CheckedSVMTransaction<'a, 'b> {
    transactions: &'a [impl SVMTransaction],
    checked_results: &'b [impl SVMCheckedResults],
}

The struct size is constant because it only holds slices.

Or better:
struct CheckedSVMTransaction<'a, 'b> {
    transactions: &'a [impl SVMTransaction],
    checked_results: Vec<impl SVMCheckedResults>,
}

Or better:
struct CheckedSVMTransaction<'a, 'b> {
    transactions: &'a [impl SVMTransaction],
    checked_results: Vec<impl SVMCheckedResults>,
}

How is this different than the current implementation, though?
process_ixs(
    transactions: &[impl SVMTransaction],
    checked_results: &[impl SVMCheckedResults],
)

How is this different than the current implementation, though?

I had to read through all the messages again to understand the discussion. I thought we were talking about the same constructions, and agreeing on them. My wrapper suggestion was to encapsulate both lists since the beginning. I agree that it is not a strong departure from what is implemented in this PR.
One of the variations I had thought of is the following. The trait could instead be implemented for SVMCheckedTransaction, allowing us to return a zipped iterator for both lists when checks are present and dummy values and the checks are not there.
struct SVMCheckedTransaction<'a, 'b> {
      txs: &'a [impl SVMTransaction],
      checks: Optional<&b [TransactionCheckResults],
}

I wasn't so keen in having a list of a struct to encapsulate each element of SVMTransaction and CheckedResults. That is because the creation of such a structure entails an iteration over the transactions:

I had also thought of wrapping each one of the sanitized transaction with a struct to holds its respective check result, but that would require iterating over the returned results. I am not so keen on adding another pass over the vector.

I also agree with @apfitzge that such an approach would require a lot of repeated code to reimplement the trait SVMTransaction. That would increase the maintenance burden.

@LucasSte there's also another option of internalizing the creation of the check_results list within SVM, and instead using a callback hook on callbacks: &CB that does something like check_transaction. Then Bank can implement this method, and the parameter comes out of the API. What do you think?

@LucasSte there's also another option of internalizing the creation of the check_results list within SVM, and instead using a callback hook on callbacks: &CB that does something like check_transaction. Then Bank can implement this method, and the parameter comes out of the API. What do you think?
Additionally, some of the extra zipping and transforming of the check results could even be combined with this approach, simplifying the internals a bit.

That is a smart alternative. I'll implement it and open a new PR.

We may consider then passing struct TransactionBatch to the SVM

As someone who has recently run into a bunch of trouble with TransactionBatch, please don't.

Changing the SVM API to process single transactions isn't happening soon, although I believe we are going to do it at some point.
The approach I took in this PR is a bit clumsy in that I could return an iterator in consume_check_result (possibly renaming the function too). However, my solution only slightly simplifies the problem and we still need to mock a check result for external usages of SVM, just like creating a vector as we do now.
I couldn't see any other straightforward approach to solve the problem, without requiring major changes everywhere. I am leaning towards waiting until we have a streaming API to fix the problem, instead of pursuing this change.
Any thoughts on that?


Not able to get configuration from  SCS 3.0 config server

We are currently migrating our PCF config server from SCS2 to SCS3.0 and experiencing some issue with retrieving configuration.
With old version of config server (p-config-server), we were able to get configuration without specifying the configuration spring: cloud:config:label in our application.
But with SCS3.0 versin of config server (p.config-server), we are getting a http 404 (NotFound) error if the spring: cloud:config:label is not specified. If this configuration is set to 'dev' (the name of the backing git repo branch name), the configuration is retrieved successfully.
Is this an expected behavior?
When we are creating an instance of config server in PCF, we are specifying the label for config server.

Hello @deepuvikraman.  What version of Steeltoe are you using?  This was resolved in 2.3.0.  See #92 for more info.

Reopen if you still have the issue.  Thank you.

I am using 2.4.1 version of steeltoe. The above mentioned issue #92 was related to not able to retrieve configuration for config server (p.config-server). The issue that I am facing is, I need to have a configuration spring: cloud:config:label in my appsettings.json file. This was not required with SCS2.0

Reopen if you still have the issue. Thank you.

I am not able to reopen the issue. Can you reopen it please

Thank you.  We are taking a closer look.

@deepuvikraman looks like there was an issue with scs 3.0 fixed as of https://docs.pivotal.io/spring-cloud-services/3-0/release-notes.html#3-0-11. It sounds to me like its not automatically defaulting when label is not available. Can you check what version of SCS is running in your environment. Here is a way to be able to check: https://community.pivotal.io/s/article/How-to-Check-Spring-Cloud-Services-Instance-version.
If your environment is not up to the latest, then path forward is to update to latest or later than 3.0.11. The next best workaround is what you have already found.

Closing as resolved.  Reopen if needed.  Thank you.


TOC hyberlink does not work for sections whose names contain latex

For example, such a markdown would fail
# Title
# Formula
## $E=mc^2$

@mistguy fixed ;)

confirm fixed


Can't Bypass XposedDetector from vvb2060

I found a XposedDetector from vvb2060, and test in:
Device : OPPO R9s, Android 6.1, API 23 , Build Number R9s_11_A.11_170160
Others: Xposed 89, DataFilter 1.5, Xposed Detector 1.1
Here is the XposedDetector source code:
https://github.com/vvb2060/XposedDetector

The XposedDetector shows antied xposed which means fake xposed has failed.
https://github.com/vvb2060/XposedDetector/issues/3 this issue may help how to bypass the detector.

There is not much time to maintain it at the moment. More specific rules need to be explored. If there is a good anti-detection implementation, you can submit a pull request.

@hwangjr Can you test the app? https://www.coolapk.com/apk/io.github.vvb2060.mahoshojo
Click the 下载apk button to download the apk, app supports English.


[BEAM-XXX] Port join extensions to Python

This is an attempt to port join extensions (Java SDK) to Python.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Choose reviewer(s) and mention them in a comment (R: @username).
[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

Could anyone point to where

(left, right)
| "Do me" >> LeftOuterJoin(nullValue=None)

could be enabled? I saw that this is done somehow for:

Dict | str >> CoGroupByKey()

But I am not sure how the | gets enabled by code.

[ ] Please create an account at issues.apache.org/jira so we can file a jira and assign it to you
Done. Same username.

@aaltay could you add @abergmeier as a contributor in jira?

Done. Sorry for the delay.
Added both abergmeier and abergmeieratotto. Looks like both are your accounts.

Sorry for not getting back sooner. PTransform has implementations for the operators: :https://github.com/apache/beam/blob/2306bd0733711f8c7807d059256f9c5b0432f5f7/sdks/python/apache_beam/transforms/ptransform.py#L539
It just passes "pvalueish" directly to the PTransform's expand implementation. I don't think it pulls apart tuples or dicts, they're just passed through directly, so you'll need to handle them as CoGroupByKey does: https://github.com/apache/beam/blob/2306bd0733711f8c7807d059256f9c5b0432f5f7/sdks/python/apache_beam/transforms/util.py#L190-L202
It would be worth generalizing this somehow.

@abergmeier - What would be the next step on this PR?

What would be the next step on this PR?

We decided to evolve the code in our internal app first (thus no public code changes for now).
We tested out various API designs and landed on one that we internally find pleasing.
Now we started writing tests to ensure various aspects are working and coverage is there.
In parallel we ensured that the code is already quite well type annotated.
Especially with type annotation we now found several aspects to be lacking in decorator code.
I am currently trying to understand what magic beam is trying to apply and why some of our cases don't work out.
The thing that currently is most annoying to me is that there is no public chat to have a quick talk about things like design decision in Beam. The whole development process seems a bit heavy handed :(

What would be the next step on this PR?

We decided to evolve the code in our internal app first (thus no public code changes for now).
We tested out various API designs and landed on one that we internally find pleasing.
Now we started writing tests to ensure various aspects are working and coverage is there.
In parallel we ensured that the code is already quite well type annotated.
Especially with type annotation we now found several aspects to be lacking in decorator code.
I am currently trying to understand what magic beam is trying to apply and why some of our cases don't work out.
The thing that currently is most annoying to me is that there is no public chat to have a quick talk about things like design decision in Beam. The whole development process seems a bit heavy handed :(

I understand.
We do have a slack channel, but not all relevant people are online there all the time. You should be able to schedule a time with relevant folks to have a quick chat on slack though.

We do have a slack channel

I was under the impression that only "official" devs can join that. But perhaps I missed something...

We do have a slack channel

I was under the impression that only "official" devs can join that. But perhaps I missed something...

Anyone can join. See slack information on this page: https://beam.apache.org/contribute/
(If this is not clear, we can clarify the documents.)

So our code diverged from something general so much that I won't make sense for general use case.
Not even sure this was a good idea to begin with - at least for GCP.
Thus will close this now.

So our code diverged from something general so much that I won't make sense for general use case.
Not even sure this was a good idea to begin with - at least for GCP.
Thus will close this now.

Ack, thank you for following up on this. If you feel anything you've built would make sense to generalize a contribution is always welcome :)


Passwords [Ask users for...]

Ask users for... passwords
Possible overlap with 'create an account' pattern
To do:
Move password component to patterns
Include 'forgot password?' UI in pattern
Include 'creating a password' and 'signing in with password' UI
Comments:
Ask users for password pattern was not prioritised in RAS/RM however I created an prototype to assist users meeting the password criteria Survey data collection
I contacted DAC for assistance and they provided advise (attached)
Email_ Accessible Password Hint feature.rtf
Need more info from RAS etc

On the UCD Board: https://jira.ons.gov.uk/browse/CU-81.

This issue is currently parked on the UCD Board - needs UX and Content Design.


Docs design feedback

Implementing all the design feedback in here: https://www.figma.com/file/JSwLJdQDX5WAbWehfzXCCY/Developer-Docs?node-id=222%3A5263&t=AZZECCQxvl7LejXp-0
Main stuff:

Footer design matches sound.xyz
Added button hover style
'View Docs' button in hero

Too much margin on iPhone 14 pro

@saihaj fixed 👍


XSSApi no longer provided via adaptTo(...)

Compare with https://jira.apache.org/jira/browse/SLING-6793
Instead retrieve via SlingScriptHelper.getService()
This fixes #2220

Pull Request Test Coverage Report for Build 5479

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 56.076%

Totals

Change from base Build 5478:
0.0%

Covered Lines:
15352

Relevant Lines:
27377

💛  - Coveralls


dropwizard-example database setup - migrations.xml does not exist

I'm attempting to follow the readme directions to get the dropwizard-example application running. It appears to generate the jar successfully, but the db migrate fails saying that the migrations.xml file does not exist. I cracked open the generated jar file and it's definitely not there. Is it supposed to be? I'm new to java - I'm probably missing something really obvious.
Here's the output for the migrate command:
java -jar target/dropwizard-example-1.4.0-SNAPSHOT.jar db migrate example.yml
INFO  [2018-06-22 22:31:07,811] liquibase.executor.jvm.JdbcExecutor: SELECT COUNT() FROM PUBLIC.DATABASECHANGELOGLOCK
INFO  [2018-06-22 22:31:07,816] liquibase.executor.jvm.JdbcExecutor: SELECT COUNT() FROM PUBLIC.DATABASECHANGELOGLOCK
INFO  [2018-06-22 22:31:07,820] liquibase.executor.jvm.JdbcExecutor: SELECT LOCKED FROM PUBLIC.DATABASECHANGELOGLOCK WHERE ID=1
INFO  [2018-06-22 22:31:07,859] liquibase.lockservice.StandardLockService: Successfully acquired change log lock
INFO  [2018-06-22 22:31:07,897] liquibase.lockservice.StandardLockService: Successfully released change log lock
liquibase.exception.ChangeLogParseException: migrations.xml does not exist
at liquibase.parser.core.xml.XMLChangeLogSAXParser.parseToNode(XMLChangeLogSAXParser.java:106)
at liquibase.parser.core.xml.AbstractChangeLogParser.parse(AbstractChangeLogParser.java:15)
at liquibase.Liquibase.getDatabaseChangeLog(Liquibase.java:217)
at liquibase.Liquibase.update(Liquibase.java:190)
at liquibase.Liquibase.update(Liquibase.java:179)
at liquibase.Liquibase.update(Liquibase.java:175)
at liquibase.Liquibase.update(Liquibase.java:168)
at io.dropwizard.migrations.DbMigrateCommand.run(DbMigrateCommand.java:68)
at io.dropwizard.migrations.DbCommand.run(DbCommand.java:55)
at io.dropwizard.migrations.AbstractLiquibaseCommand.run(AbstractLiquibaseCommand.java:68)
at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:87)
at io.dropwizard.cli.Cli.run(Cli.java:78)
at io.dropwizard.Application.run(Application.java:93)
at com.example.helloworld.HelloWorldApplication.main(HelloWorldApplication.java:38)

I can't seem to replicate this. Have you tried the following?
cd dropwizard
./mvnw package
cd dropwizard-example
java -jar target/dropwizard-example-1.4.0-SNAPSHOT.jar db migrate example.yml

That's what I needed, thanks! Is it true to assume that most people would know to do that or is that something that should be added to the readme for beginners like me?

What step did you miss? I'm happy to see the dropwizard-example readme amended 😊

I ran mvn not mvnw and I ran it in the dropwizard-example directory and not the root dropwizard directory. That might have been implied for someone not so new to Java - I'm not sure.

Yeah don't worry about it! We want the readme to be approachable to beginners 😄
fd73b20 should close this. Respond back if you have any more questions.


Support synchronization among panes please~

Description of the new feature/enhancement

Please support synchronization among panes, like Shift+Cmd+i in iTerm2 on Mac, and :setw synchronize-panes in tmux, it's quite useful sometimes.
Proposed technical implementation details (optional)

Thanks for the suggestion! This is actually already being tracked by another issue on our repo - please refer to #2634 for more discussion.
/dup #2634


WebRTC doesnt load every time on mobile app

In the HA mobile app for some reason not all streams load, but in the desktop Browser all streams work fine.
Example: I have 3 cameras. every time I opten the camera tab in HA, only one or even no camera-streams load. It hangs on Loading2.
Wehn I open the same Tab on the desktop it takes a second and all strems are there. Form there on the streams are instantly available.
Card code:
type: custom:webrtc-camera
muted: true
ui: true
background: false
entity: camera.XYZ
style: 'video {aspect-ratio: 16/9; object-fit: fill;}'
mode: webrtc

I have set the mode to webrtc, because only then I can get some streams to work, or else it loads a MSE stream and a black picture.
This is with webRTC V3.0.2
Is there any reason for that?

Have you read docs and FAQ?

yes it should work according to the FAQs. Apperently the problem only is one one phone. Other android devices seem to show all streams

Are you doing this on a local network?
Do streams sometimes load and sometimes not on just one phone?

It does seem to be specific to one Phone. I just switched to frigate and the frigate card seems to work. So I think we can close this issue


Add more elements

Hello, It's possible to add more elements, like the name and more fields like in the examples.

cardholder name will be a good addition!

Hi, in v1.0.0 all supported elements can be created using StripeElement component.
<StripeElement type="iban" :elements="elements" />


Jayway's JsonPath returns empty array if key in the predicate is not present in JSON Data

I am trying evaluate a JSON text using the expression $.sessions[?(@.key=='session3')].value using Jayway JsonPath 2.2.0 library.
JsonText = {
"username": xyz,
"empid": "1",
"sessions": [{
"key": "session1",
"value": "java"},
{
"key": "session2",
"value": "C"}]
}
It return empty object instead of null even if I am using Option.DEFAULT_PATH_LEAF_TO_NULL
I tried evaluating this through http://jsonpath.herokuapp.com/ and there also it returns empty array. Please help

An empty list is expected, see https://github.com/json-path/JsonPath#what-is-returned-when. DEFAULT_PATH_LEAF_TO_NULL would only have an effect if your sessions array contained an object that does not have the key property.

Not an issue


Code cleanup and minor fixes

Removed duplicated null checking, fix several potential NullPointerException.
Also fixed NPE when user Ctrl+D in password prompt.

Thank you!
I took a quick look; I will take a more detailed look later.

Codecov Report

Merging #1040 into master will decrease coverage by 0.01%.
The diff coverage is 82.97%.

@@             Coverage Diff              @@
##             master    #1040      +/-   ##
============================================
- Coverage     94.37%   94.35%   -0.02%
  Complexity      443      443
============================================
  Files             2        2
  Lines          6474     6469       -5
  Branches       1728     1726       -2
============================================
- Hits           6110     6104       -6
- Misses           96       98       +2
+ Partials        268      267       -1

Impacted Files
Coverage Δ
Complexity Δ

src/main/java/picocli/CommandLine.java
94.19% <82.97%> (-0.03%)
304.00 <0.00> (ø)

Continue to review full report at Codecov.

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

Reverted those changes.

Merged into master.
Thank you for the pull request!


[Question] Exporting annotations / images in specific format

Is there an option to export the auto-annotated image annotations in a specific output format? say coco / yolo / voc etc.

Hi @M-Asad-Bin-Hameed 👋🏻 !
I noticed that you are talking about supervision. Let me clarify a few things:

Supervision supports loading and saving in PASCAL VAC and YOLO formats. Both boxes and segmentations. We will work on adding support for more dataset formats.
You can load datasets with from_yolo and from_pascal_voc, and save with as_yolo and as_pascal_voc.
If you require support for different formats, feel free to submit an issue with a feature request here.

Thank you both @yeldarby  @SkalskiP. Did not realize it was supervision in the background for this stuff. Got the idea of how to work with it now.


Wrong preview rotation when on landscape

Steps to Reproduce

Run the example app on a phone.
Pass DeviceOrientation.landscapeLeft as an argument to the CameraAwesome fullscreen widget.

Expected results
The camera preview should have a correct rotation
Actual results
The preview is sideways
About your device

Brand
Model
OS

Android
Moto G5 Plus
11

Did you manually lock the rotation on your app?

ios has same problem here

Did you manually lock the rotation on your app?

No, it's free rotation, but with the UI corner to change the rotation manually.

Did you manually lock the rotation on your app

I passed the orientation parameter, which under the hood lock it, but I didn't do it from outside

Where can i set this orientation in 2.0.0 version?


nRF sys event latency

Initial support for nordic system events which allows for runtime configuration of latency management.

extended sample to build for multiple boards, for both cpunet/rad/app if appropriate :)

@ping @hubertmis @ppryga-nordic

@bjarki-andreasen, this feature will have to wait for the 4.1 release as we only merging documentation updates and bug fixes.


.vscode should be ignored by .gitignore

.vscode should be configured for each development environment and should be in the .gitignore, IMO. It might helpful people configure their own configuration without committing their change to the repo.

this should be fixed as part of #387

Great. Now I can't see .vscode on the master branch. Thank you for letting me know.