Reimplement rebuild-index and remove /internal/index

What does this PR change? What problem does it solve?
After #2842 we can as well reimplement rebuild-index to use the same functionality.
This allows to get rid of internal/index which is now no longer used.
Moreover, now existing index entries are used to reduce the number of packs that need to be read.
This improves speed a lot.
The newly added option --read-all-packs implements the previous behavior.
This PR depends on #2842; only the last 6 commits are relevant for this PR.
Was the change discussed in an issue or in the forum before?
closes #2547
Checklist

[x] I have read the Contribution Guidelines
[x] I have enabled maintainer edits for this PR
[x] I have not added tests for all changes in this PR, existing tests still work.
[ ] I have added documentation for the changes (in the manual)
[x] There's a new file in changelog/unreleased/ that describes the changes for our users (template here)
[x] I have run gofmt on the code in all commits
[x] All commit messages are formatted in the same style as the other commits in the repo
[x] I'm done, this Pull Request is ready for review

Also in an future improvement, we could add more functionality to this new rebuild-index: It could load the existing index files and just check which pack files are not (fully) covered. Only those would then need to be read; for all other packs, the existing index can be used.

We should also keep the option to rebuild the index from scratch.

Also in an future improvement, we could add more functionality to this new rebuild-index: It could load the existing index files and just check which pack files are not (fully) covered. Only those would then need to be read; for all other packs, the existing index can be used.

We should also keep the option to rebuild the index from scratch.

I just implemented the improved algorithm to take existing index entries into account. I named the new option --read-all-packs to read all pack headers (and ignore the existing index).

What about calling the option --full-rebuild? That would avoid encoding implementation details into option names.
I still have to think about whether a full or a partial rebuild should be the default. Right now I slightly prefer the former. That way we wouldn't change the current behavior and after all it's the safer option when a repository was damaged.
Apropos, under which conditions would it be safe to use the faster variant? That is probably the case when a pack file (or multiple ones) is for some reason missing from the index. When a pack file does not match the size it should have according to the index, then I'd be very careful, after all that pack file is probably damaged. If you already know which pack file is damaged, then the fast path is definitely useful as it allows quickly removing the damaged file from the index.

Apropos, under which conditions would it be safe to use the faster variant? That is probably the case when a pack file (or multiple ones) is for some reason missing from the index.

I would say the faster variant will give the identical result as the "full rebuild" iff all pack files that are omitted are completely and correctly contained in the index.
So, the questions is under what condition is a pack file omitted: This is the case iff the pack is referenced in the index and the size calculated from the index does match the actual file size.
So, for the faster variant to be unsafe, we basically need to have a pack file with name and size of a correctly indext pack file, but with different contents; i.e. a modified packfile due to manipulation or bit rot.
In that case the faster variant will just keep the index entries while the "full rebuild" variant will read the header. If the modification is in the header, the "full rebuild" will handle the error. If the modification is, however, not in the header, both variants will again give the same result.
I don't think that modification detection should be regarded, that is the job of restic check --read-data..
But actually I remember, that I wanted to work on the error handling when reading a pack file. The rebuild-index of master just ignores errors and builds an index without the pack file contents, while this PR aborts. I wanted to add this and almost forgot it - I'll work on this.

When a pack file does not match the size it should have according to the index, then I'd be very careful, after all that pack file is probably damaged. If you already know which pack file is damaged, then the fast path is definitely useful as it allows quickly removing the damaged file from the index.

When a pack file does not match the size it should have, it will be treated identically for both variants: It will be read and if this succeeds, the contents are added to the newly generated index.

I don't think that modification detection should be regarded, that is the job of restic check --read-data..

There's one special case here: For backends which charge for traffic it's far less expensive to let rebuild-index sort of check that all pack files are still accessible than running check --read-data. And if rebuild-index notices data corruption that it should also report it, but of course actively searching for modifications is the job of check.

(EDIT: one could argue that the faster variant is even more safe in this case; if only the header is corrupted it should be better to just use the correct index entries that are present 😉 )

That depends on what you intend to do: Such a damaged pack file should not at all be used in a backup, but it may still be valuable when restoring files. When rebuild-index notices such a damaged pack header, it could keep the old data for that pack file, finish the rebuild otherwise and then at the end return an error. The exact steps to recover from a error would be slightly different than currently, but that should still be manageable.

But actually I remember, that I wanted to work on the error handling when reading a pack file. The rebuild-index of master just ignores errors and builds an index without the pack file contents, while this PR aborts. I wanted to add this and almost forgot it - I'll work on this soon.

Ideally recovery from repository damages works automatically in large parts (at least in the future). It's not really ideal to require users to manually delete this or that file from the repository. How would aborting the index rebuild on a damaged pack file fit in with that? It's also quite common to have one or another incomplete pack file stored (at least for some backends).

So the faster variant wouldn't detect inaccessible pack files or corrupted pack file headers. And it wouldn't recover from bit flips in the index. (check --read-data currently also does not check that the pack blob list matches the data stored in the index). That leaves e.g. accidental pack deletions, packs deleted during repository recovery and packs which for some mysterious reason are missing from the index (most likely an interrupted backup run. Could be useful when planing to use recover) as use cases for the fast variant.
The full rebuild would recover bit flips and remove damaged/inaccessible packs from the index. That latter step has the benefit that it simplifies recovery: after the damaged pack files are removed from the index, then its safe again to run backups using the repository. It would also allow prune to work again.

There's one special case here: For backends which charge for traffic it's far less expensive to let rebuild-index sort of check that all pack files are still accessible than running check --read-data. And if rebuild-index notices data corruption that it should also report it, but of course actively searching for modifications is the job of check.

Right. Of course, as the faster variant doesn't read as much, there are error cases which can't be detected.

(EDIT: one could argue that the faster variant is even more safe in this case; if only the header is corrupted it should be better to just use the correct index entries that are present wink )
That depends on what you intend to do: Such a damaged pack file should not at all be used in a backup, but it may still be valuable when restoring files. When rebuild-index notices such a damaged pack header, it could keep the old data for that pack file, finish the rebuild otherwise and then at the end return an error. The exact steps to recover from a error would be slightly different than currently, but that should still be manageable.

I agree. The faster variant will just not be able to detect a damaged pack header, the "full rebuild" will be, of course.

So the faster variant wouldn't detect inaccessible pack files or corrupted pack file headers. And it wouldn't recover from bit flips in the index.

Well, it wouldn't detect pack files that are listed in the backend but are not accessible.
About bit flips in the index: Repository.LoadIndex currently aborts if there is a bitflip in the index. Hence the fast variant would simply abort as well as all other command that use LoadIndex. And yes, the only way for users to recover from this would be to use a "full rebuild".  If we would change Repository.LoadIndex to just ignore corrupt index files, the faster variant would also work. To increase resiliance, I would recommend to give a warning, ignore corrupt index files and continue with all operations (and finally exit with an error code at the end). Then both variants can be used to remove broken index files.
Or did you mean bit flips in the pack header here?

(check --read-data currently also does not check that the pack blob list matches the data stored in the index).

You are right - actually we should add that check to check --read-data ...

That leaves e.g. accidental pack deletions, packs deleted during repository recovery and packs which for some mysterious reason are missing from the index (most likely an interrupted backup run. Could be useful when planing to use recover) as use cases for the fast variant.

I would say the use cases of the fast variant are basically all cases where the user wants to rebuild the index as it is not in ideal state. That might be due to an aborted prune (or other aborted commands) or due to (accidentally or intentionally) deleted/added pack or index files directly in the repository backend.

The full rebuild would recover bit flips and remove damaged/inaccessible packs from the index.

Note that the "full rebuild" is not able to remove all kind of damaged packs from the index! As it only reads the header, it is not able to checksum the whole pack file. It is not even able to remove a pack from the index if check --read-data reported an corrupt pack file, but that corruption is a modification in the non-header part. If we are talking about bit rots, those will be most likely not in the pack header as this usually is a very small part of the pack file.
You are right about inaccessible pack files.

That latter step has the benefit that it simplifies recovery: after the damaged pack files are removed from the index, then its safe again to run backups using the repository.

To be really safe, I would say you must run check --read-data before or after rebuild-index. But if check --read-data doesn't give an error, both variants should be equal.

It would also allow prune to work again.
Can you give an example where the "full rebuild" will allow prune to work after whereas the fast variant won't?

About bit flips in the index: Repository.LoadIndex currently aborts if there is a bitflip in the index.

I had bitflips in mind which happened before the index was hashed and written to the backend. For these indexes there would only be some flipped bits in the index entries such that the blob size (easy to detect), offset (not that simple) or hash (the blob you just appear as missing) would differ. But these are probably very, very rare (even though we've had a few reports about bitflips in packfiles).
Just printing a warning when an index can't be loaded should be fine. It won't break backups and prune checks beforehand that it finds all necessary blobs.

It would also allow prune to work again.

Can you give an example where the "full rebuild" will allow prune to work after whereas the fast variant won't?

It depends on the exact behavior of the fast variant when a pack file suddenly is shorter than expected and has now a damaged pack header. If the fast repack keeps the old blob list for that pack, then prune will also detect the discrepancy and abort. If it doesn't, then prune will work. Your earlier comments sounded like this PR uses the former variant, I haven't looked at the implementation itself yet.

I rebased this PR and changed it according to #3022
Note that the tests fail until #3025 has been merged.

It depends on the exact behavior of the fast variant when a pack file suddenly is shorter than expected and has now a damaged pack header. If the fast repack keeps the old blob list for that pack, then prune will also detect the discrepancy and abort. If it doesn't, then prune will work. Your earlier comments sounded like this PR uses the former variant, I haven't looked at the implementation itself yet.

The faster variant will remove all contents of the current index for packs that are either read or exist in the index but not in the repository and add all contents of the pack headers which are read.

I rebased this. As #2842 now counts pack files when building the new index, I now determine the number of packs. This simplified the code a bit.

After the discussion about calling Backend.List() twice, I realized that this might be also an issue here. So I changed this PR such that now at most one List() per filetype is needed. Also added this to the ListOnce tests.

rebased after #2718 has been merged.

rebased after #2842 has been merged

For this PR, only documentation is open. I just noticed that there yet exists no documentation for the rebuild-index command and it might anyway better fit in an troubleshooting documentation (see e.g. #2683).
So from my side, this PR is ready to merge.

Rebased this after #3058 has been merged.
Also made index saving parallel (see last added commit).

@MichaelEischer Were your concerns about which variant should be the default resolved?


mjpeg encoding framerate

I saw in issue https://github.com/raspberrypi/libcamera-apps/issues/23 that @davidplowman mentioned 10 FPS MJPEG encoding at 12 MP -- and I'm wondering how to achieve that (or near that).  On my CM4 testing with the HQ camera I can get ~5.8 FPS encoding when cropping to 4056 x 2160.  Frame rate is calculated from the average frame time reported by mjpeg_encocer.cpp when the verbose flag is on.
I've tried various settings on denoise and image quality, but none have helped to increase encoding rate.  Are there other parameters which I should be using to help increase encoding rate?
Thanks in advance for any ideas.

Hi, thanks for the question. Could you maybe post the command line you're using, that would make it easier for us to know exactly what you've tried.
Secondly, those times that come out of mjpeg_encoder.cpp are probably not reliable because it's counting the frames for only one thread (of four, I think) but measures total elapsed time. So you might need to find a different way to measure that. One thing to try is the --framerate option (e.g. --framerate 5.0) and crank the number up until the console starts producing  messages about "unmatched frames".

With 6 FPS, I start seeing dropping unmatched input frame messages.   I am estimating encoding FPS as FPS = 1000/SUM(average times) * 4 (as there are 4 encoding threads
Test argument to reproduce:
./libcamera-vid -n --codec mjpeg --segment 0 -o video.mjpeg --width 4056 --height 2160 --framerate 6 --timeout 60000 -v --save-pts times.pts

I've experimented with --denoise off and --denoise cdn_off and --quality set to 20, 80, 100 -- but no real change in encoding rate.
Encode 78 frames, average time 750.81ms
Encode 81 frames, average time 728.522ms
Encode 81 frames, average time 730.149ms
Encode 81 frames, average time 729.356ms

If you graph the saved PTS file you'll see vertical jumps as frames are missed.  Blue line here is IDX*1000/6, green line is times from the PTS file.

So I've just tried this on my regular Pi 4 and it sustains 10fps with no frame drops. However, my system may be slightly different to yours. Here are some things to check and some possible differences.

I've compiled libcamera as a release build (some of our instructions historically have not done this - check that the meson command includes --buildtype=release).
libcamera-apps are release builds too, though our instructions have got this right, I believe.
My Pi is overclocked to 2GHz. At 1.5GHz I very occasionally see it drop a frame (at 10fps), but most runs don't.
I have a fan on my Pi. It comes on pretty quickly at 2GHz. At 1.5GHz, disabling the fan, I see temperatures up to the low 70s on repeated runs, but not near throttling.
I'm running with an SSD. You could try if the behaviour of yours improves if you omit the -o video.mjpeg parameters. That would cause the output to be dropped which would obviously be a clue.

Interesting.  I have recompiled libcamera with:
meson build --buildtype=release -Dpipelines=raspberrypi -Dipas=raspberrypi -Dv4l2=true -Dgstreamer=disabled -Dtest=false -Dlc-compliance=disabled -Dcam=disabled -Dqcam=disabled -Ddocumentation=disabled
ninja -C build
sudo ninja -C build install

and apps with
cd ~/libcamera-apps/build
cmake -DCMAKE_BUILD_TYPE=Release ..
make

But there is no change.  Still seeing dropped frames at 6 FPS.  CPU freq ramps to 1.5 GHz and stays there the whole test.  CPU temperature (via vcgencmd measure_temp) maxes out at 45.7 C.
Removing the output file has the same result.  Dropped frames and average encoding time of ~730 ms.  Also pulled the most recent libcamera and rebuilt again -- no improvement.

Strangest thing to me is the vastly different CPU temperatures (you see 70C and I see 45 to 46 C).

Yes, it's all getting a bit puzzling. Let me try and find a CM4 tomorrow and I'll see how that goes.

I flashed a PI4 with recent raspbian and installed libcamera-app via apt -- and I am able to do 10 FPS with zero dropped frames.  Load average about 2.1 and CPU temp around 45C.
Viewfinder frame 590
Viewfinder frame 591
Viewfinder frame 592
Camera stopped!
Encode 164 frames, average time 245.4ms
Encode 172 frames, average time 248.752ms
Encode 76 frames, average time 249.474ms
Encode 180 frames, average time 246.576ms
MjpegEncoder closed
Closing Libcamera application(frames displayed 591, dropped 0)
Camera stopped!
Tearing down requests, buffers and configuration
Camera closed

I'll setup a new CM4 and see what happens there.  Maybe there is some strange library or install issue with the CM4 I've been developing on.

That's interesting. Well I suppose it's good that you have something there that behaves as expected, but I'll see if I can try a CM4 in the morning. As you've discovered, installing via apt is convenient - the preparations for Bullseye have involved making proper packages which can now be installed on Buster too.

The PI4 showed similar results after using libcamera and libcamera-apps installed from git (instead of apt), so I kept digging.  I starting looking for system differences between the PI4 and the CM4 and this difference between the two was the "ah ha!" moment:
pi@PI4:~ $ cat /proc/cpuinfo
processor	: 0
model name	: ARMv7 Processor rev 3 (v7l)
BogoMIPS	: 108.00
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32

pi@CM4:~ $ cat /proc/cpuinfo
processor	: 0
BogoMIPS	: 108.00
Features	: fp asimd evtstrm crc32 cpuid

uanme -a showed armv7l and aarch64 respectively.
I changed arm_64bit from 1 to 0 in /boot/config.txt and the CM4 now does frame encoding at ~250ms like the PI4.
I have no idea why the CPU is missing the acceleration features when in 64-bit mode.  Is this expected behavior?  Lack of NEON and the other features definitely explains the performance difference.

The cpuinfo output is showing the optional features that are present in 64-bit mode. aarch64 makes many of the optional armv7 CPU features standard - NEON, for example - so the fact that it isn't listed there doesn't mean it isn't available.
The arm64 cpuinfo support contains the following table of known features:
	[KERNEL_HWCAP_FP]		= "fp",
	[KERNEL_HWCAP_ASIMD]		= "asimd",
	[KERNEL_HWCAP_EVTSTRM]		= "evtstrm",
	[KERNEL_HWCAP_AES]		= "aes",
	[KERNEL_HWCAP_PMULL]		= "pmull",
	[KERNEL_HWCAP_SHA1]		= "sha1",
	[KERNEL_HWCAP_SHA2]		= "sha2",
	[KERNEL_HWCAP_CRC32]		= "crc32",
	[KERNEL_HWCAP_ATOMICS]		= "atomics",
	[KERNEL_HWCAP_FPHP]		= "fphp",
	[KERNEL_HWCAP_ASIMDHP]		= "asimdhp",
	[KERNEL_HWCAP_CPUID]		= "cpuid",
	[KERNEL_HWCAP_ASIMDRDM]		= "asimdrdm",
	[KERNEL_HWCAP_JSCVT]		= "jscvt",
	[KERNEL_HWCAP_FCMA]		= "fcma",
	[KERNEL_HWCAP_LRCPC]		= "lrcpc",
	[KERNEL_HWCAP_DCPOP]		= "dcpop",
	[KERNEL_HWCAP_SHA3]		= "sha3",
	[KERNEL_HWCAP_SM3]		= "sm3",
	[KERNEL_HWCAP_SM4]		= "sm4",
	[KERNEL_HWCAP_ASIMDDP]		= "asimddp",
	[KERNEL_HWCAP_SHA512]		= "sha512",
	[KERNEL_HWCAP_SVE]		= "sve",
	[KERNEL_HWCAP_ASIMDFHM]		= "asimdfhm",
	[KERNEL_HWCAP_DIT]		= "dit",
	[KERNEL_HWCAP_USCAT]		= "uscat",
	[KERNEL_HWCAP_ILRCPC]		= "ilrcpc",
	[KERNEL_HWCAP_FLAGM]		= "flagm",
	[KERNEL_HWCAP_SSBS]		= "ssbs",
	[KERNEL_HWCAP_SB]		= "sb",
	[KERNEL_HWCAP_PACA]		= "paca",
	[KERNEL_HWCAP_PACG]		= "pacg",
	[KERNEL_HWCAP_DCPODP]		= "dcpodp",
	[KERNEL_HWCAP_SVE2]		= "sve2",
	[KERNEL_HWCAP_SVEAES]		= "sveaes",
	[KERNEL_HWCAP_SVEPMULL]		= "svepmull",
	[KERNEL_HWCAP_SVEBITPERM]	= "svebitperm",
	[KERNEL_HWCAP_SVESHA3]		= "svesha3",
	[KERNEL_HWCAP_SVESM4]		= "svesm4",
	[KERNEL_HWCAP_FLAGM2]		= "flagm2",
	[KERNEL_HWCAP_FRINT]		= "frint",
	[KERNEL_HWCAP_SVEI8MM]		= "svei8mm",
	[KERNEL_HWCAP_SVEF32MM]		= "svef32mm",
	[KERNEL_HWCAP_SVEF64MM]		= "svef64mm",
	[KERNEL_HWCAP_SVEBF16]		= "svebf16",
	[KERNEL_HWCAP_I8MM]		= "i8mm",
	[KERNEL_HWCAP_BF16]		= "bf16",
	[KERNEL_HWCAP_DGH]		= "dgh",
	[KERNEL_HWCAP_RNG]		= "rng",
	[KERNEL_HWCAP_BTI]		= "bti",
	[KERNEL_HWCAP_MTE]		= "mte",

Notice the absence of neon.
An import aspect of the MJPEG encoding performance is where the encoding takes place - is it in a kernel driver or in a userspace module? I ask because unless you have installed a trial 64-bit OS then your userland is still running in 32-bit mode.
You can query the CPU capabilities while running in 32-bit by running any 32-bit executable (we'll use sleep) with a magic environment variable set:
pi@raspberrypi:~$ LD_SHOW_AUXV=1 sleep 1
AT_HWCAP:        half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt lpae evtstrm
AT_PAGESZ:            4096
AT_CLKTCK:            100
AT_PHDR:              0x10034
AT_PHENT:             32
AT_PHNUM:             9
AT_BASE:              0xf7e58000
AT_FLAGS:             0x0
AT_ENTRY:             0x11188
AT_UID:               1000
AT_EUID:              1000
AT_GID:               1000
AT_EGID:              1000
AT_SECURE:            0
AT_RANDOM:            0xffb9f62c
AT_HWCAP2:       crc32
AT_EXECFN:            /usr/bin/sleep
AT_PLATFORM:          v8l

Here you see a list much closer to that reported by cpuinfo on the 32-bit kernel.
So - where is the MJPEG encoding performed?

mjpeg encoding is performed by the standard libjpeg library, in userspace.

It would be helpful to be able to isolate the MJPEG encode performance from the rest of the system - is there a way to encode  from a file of raw image data?

Hmm, I don't think the code lends itself very directly to benchmarking libjpeg on its own, though libjpeg is very widely used so maybe there are benchmarks out there. I'll have a look around.
Chris, could you perhaps say where the image was coming from that you were using on your CM4? Was it a 64-bit beta image, or did you add the 64-bit flag manually? That would make it easier for me to try and copy the procedure. I tried our latest 64-bit test image but that appears to run fine at 10fps.

I'm currently using 2021-05-07-raspios-buster-armhf-lite.img, with 5.10.17-v7l+ and 5.10.63-v7l+ kernels.   I changed the 64bit flag myself during my initial system setup (when I was adding the IMX477 dtoverlay, changing the GPU memory size, etc).
I take it that I should be using 2021-05-07-raspios-buster-arm64-lite.img instead?  Until just now I didn't realize there was a separate OS image for 64 bit.

It shouldn't be necessary to run the full 64-bit OS - both ought to work, but in general you are still more likely to encounter problems on 64-bit.

I've gone through the procedure installing a 32-bit OS and then setting arm_64bit=1 before building all the apps. As we've discovered, it runs poorly. However, if I try this
setarch linux32 ./libcamera-vid ...

then it runs fine again. So it sounds like there might be some confusion within libjpeg and it's incorrectly using the kernel architecture to decide the available optimisations at runtime? I'm not sure what to suggest as the best workaround...

FYI the 32-bit kernel uses a feature called Large Physical Address Extension that allows it to address more than 4GB of RAM. Individual processes can't exceed 3GB, but its perfectly possible to use all the available RAM across a whole system, e.g. 3 chromium tabs (joke, ish).


Modify demo site configurations to enable improved monorepo support on Netlify

We've rolled out improved monorepo support on Netlify. Bring the Next.js runtime repository in line with these improvements.
All configuration paths will need to be relative to the monorepo root.

The team at Netlify have now released the new v5 Next.js runtime which has support for both pages and app router, on-demand and time-based revalidation, automatic fine-grained cache control, and automatic image optimization using Netlify's image CDN.
You can find the documentation and additional information on the v5 runtime here: Next.js on Netlify
The v4 runtime is now in the maintenance support phase, with no new features being added. Occasional bug fixes and security patches will be applied when needed.
Thanks!!
The team at Netlify have now released the new v5 Next.js runtime which has support for both pages and app router, on-demand and time-based revalidation, automatic fine-grained cache control, improved monorepo support, and automatic image optimization using Netlify's image CDN.
You can find the documentation and additional information on the v5 runtime here: Next.js on Netlify
The v4 runtime is now in the maintenance support phase, with no new features being added. Occasional bug fixes and security patches will be applied when needed.
Thanks!


Don't fail builds when tests don't have a default constructor or don'…

…t have javadoc comments on methods

I was playing with the services generated from founder to make sure they passed with the new checks and I started getting javadoc errors for public methods in integration tests, and complaints about the base integration test being a utility class. I don't think we want those checks in place for tests.

@jgashe do you know if _'s in test function names will fail?  I know that for the long test case naming convention, some of those have _'s to separate words, and I think that would normally fail checkstyle

@brentsowers1 we have MethodNameCheck already in there to cover that - method names in tests should be ignored


The 'AWSToolkitPackage' package did not load correctly

Describe the bug
Today AWS Toolkit extension can load properly on launching Visual Studio 2022. AWS Explorer is an empty pane. It is not even listed in Extension Manager anymore and cannot be uninstalled or overwritten by AWS Toolkit with Amazon Q.

Microsoft Visual Studio
The 'AWSToolkitPackage' package did not load correctly.
The problem may have been caused by a configuration change or by the installation of another extension. You can get more information by examining the file 'C:\Users\USERNAME\AppData\Roaming\Microsoft\VisualStudio\17.0_45cd6749\ActivityLog.xml'.
Restarting Visual Studio could help resolve this issue.
Continue to show this error message?
Yes   No

To Reproduce
Launch Visual Studio. Alone or with solution. Above error will pop up.
Expected behavior
AWS Explorer load up properly with all service nodes.
Screenshots

Toolkit Logs
ActivityLog.xml
  <entry>
    <record>1901</record>
    <time>2024/07/03 09:25:29.750</time>
    <type>Error</type>
    <source>VisualStudio</source>
    <description>SetSite failed for package [AWSToolkitPackage]Source: 'Microsoft.VisualStudio.Composition' Description: Expected 1 export(s) with contract name "Amazon.AWSToolkit.Context.IToolkitContextProvider" but found 0 after applying applicable constraints.
Microsoft.VisualStudio.Composition.CompositionFailedException: Expected 1 export(s) with contract name "Amazon.AWSToolkit.Context.IToolkitContextProvider" but found 0 after applying applicable constraints.

   at Microsoft.VisualStudio.Composition.ExportProvider.GetExports(ImportDefinition importDefinition)

   at Microsoft.VisualStudio.Composition.ExportProvider.GetExports[T,TMetadataView](String contractName, ImportCardinality cardinality)

   at Microsoft.VisualStudio.Composition.ExportProvider.GetExport[T,TMetadataView](String contractName)

   at Microsoft.VisualStudio.Composition.ExportProvider.GetExportedValue[T]()

   at Microsoft.VisualStudio.ComponentModelHost.ComponentModel.GetService[T]()

   at Amazon.AWSToolkit.VisualStudio.AWSToolkitPackage.<GetMefComponentAsync>d__72`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---

   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   at Amazon.AWSToolkit.VisualStudio.AWSToolkitPackage.<InitializeToolkitContextProviderAsync>d__71.MoveNext()
--- End of stack trace from previous location where exception was thrown ---

   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   at Amazon.AWSToolkit.VisualStudio.AWSToolkitPackage.<InitializeAsync>d__69.MoveNext()
--- End of stack trace from previous location where exception was thrown ---

   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   at Microsoft.VisualStudio.Shell.AsyncPackage.<>c__DisplayClass21_0.<<Microsoft-VisualStudio-Shell-Interop-IAsyncLoadablePackageInitialize-Initialize>b__1>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---

   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   at Microsoft.VisualStudio.Services.VsTask.RethrowException(AggregateException e)

   at Microsoft.VisualStudio.Services.VsTask.InternalGetResult(Boolean ignoreUIThreadCheck)</description>
    <guid>{0B82CB16-0E52-4363-9BC0-61E758689176}</guid>

0x80131500

    <errorinfo></errorinfo>
  </entry>

Development System (please complete the following information):

Windows Version: Windows 11 23H2 22631.3737
Visual Studio Version: 17.10.3
AWS Toolkit for Visual Studio Version: Unknown - not listed in Extension Manager

Additional context
AWS Toolkit with Amazon Q cannot be installed over.

VSIX Installer
This extension is already installed to all applicable products.
OK

I also have this issue. I believe I was using the most recent toolkit version prior to it breaking today, but I'm not completely sure. I've definitely updated it within the last few months.
Windows 11 Pro 23H2 22631.3810
Visual Studio 17.9.5
Initially the AWS Explorer tab was simply empty, but it now doesn't appear at all. The old version of the extension isn't visible anywhere I'm able to find in the Visual Studio UI, and the "AWS Toolkit with Amazon Q" appears as an installable extension (but doesn't install successfully.) Restarting Visual Studio does not solve the issue, nor does restarting my computer.
The current extension version (<IP_ADDRESS>, "AWS Toolkit with Amazon Q") does seem to exist in %ProgramFiles%\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions

I am also having this issue,  If I try and use "AWS Toolkit with Amazon Q" version It doesn't allow me to install.  with the "This extension is already installed to all applicable products."    Also getting the same "SetSite failed for package [AWSToolkitPackage]"
Please look at this!!!
Im on windows 10 Pro

I also have this issue.
Windows 11 Pro 23H2
VS 2022

Myself and a colleague have the same issue too!

Exactly same issue for developers at my org as of today (oh, hi Tony!)
Cannot see the old extension listed in extension manager anymore, though the AWS Explorer still appears (if blank).
SetSite error appear in the ActivtyLog.xml.
Cannot install the new version (with added Q!) as vsix installer says the extension is already installed.

Hi, and thank you for sharing details (particularly the ActivityLog.xml contents) relating to installing version <IP_ADDRESS>. We are actively looking into this at the moment.

So the extension gets installed into %ProgramFiles%\Microsoft Visual Studio\2022\XXX\Common7\IDE\Extensions , where XXX is your Visual Studio edition (like Community, Professional, or Enterprise). Do not delete folders from within here, this can put Visual Studio into a state where it is unable to load extensions.
Each version of the extension gets installed into a new folder within this location.

<IP_ADDRESS> is installed to nymh0jqm.iwp
<IP_ADDRESS> is installed to p42bfph5.ab4
if you didn't have <IP_ADDRESS> previously installed, you'll have to search the folders for a file like AWSToolkitPackage.v17.dll in order to see which folder contains the Toolkit extension

I'd be interested to know if any of your systems currently has more than one of these folders existing at the same time.

Same issue here.
Windows 11 Pro 23H2
VS 2022 Version 17.10.3
Unable to uninstall even with CLI comments.
Reinstallation is not possible as it detects as installed!
Note: I have that file under only one location...
C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\p42bfph5.ab4

The Toolkit writes a log per session of Visual Studio to %localappdata%\AWSToolkit\logs\visualstudio\17.0 - any logs that can be shared from a session where the extension cannot be loaded would be appreciated.

log_2024-07-03_10-31-56_27244.txt
This is my latest log.

Here is the error from ActivityLog.xml  (referenced in pop-up error):
SetSite failed for package [AWSToolkitPackage]Source: 'Microsoft.VisualStudio.Composition' Description: Expected 1 export(s) with contract name "Amazon.AWSToolkit.Context.IToolkitContextProvider" but found 0 after applying applicable constraints.

Microsoft.VisualStudio.Composition.CompositionFailedException: Expected 1 export(s) with contract name "Amazon.AWSToolkit.Context.IToolkitContextProvider" but found 0 after applying applicable constraints.
at Microsoft.VisualStudio.Composition.ExportProvider.GetExports(ImportDefinition importDefinition)
at Microsoft.VisualStudio.Composition.ExportProvider.GetExports[T,TMetadataView](String contractName, ImportCardinality cardinality)
at Microsoft.VisualStudio.Composition.ExportProvider.GetExport[T,TMetadataView](String contractName)
at Microsoft.VisualStudio.Composition.ExportProvider.GetExportedValueT
at Microsoft.VisualStudio.ComponentModelHost.ComponentModel.GetServiceT
at Amazon.AWSToolkit.VisualStudio.AWSToolkitPackage.d__72`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Amazon.AWSToolkit.VisualStudio.AWSToolkitPackage.d__71.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Amazon.AWSToolkit.VisualStudio.AWSToolkitPackage.d__69.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.Shell.AsyncPackage.<>c__DisplayClass21_0.<b__1>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.VisualStudio.Services.VsTask.RethrowException(AggregateException e)
at Microsoft.VisualStudio.Services.VsTask.InternalGetResult(Boolean ignoreUIThreadCheck)

First log file that I noticed the issue: toolkit-crash-log.txt
Same solution, previous launch, which seemed to work fine: toolkit-ok-log.txt

Facing the exact same issue as mentioned above by everyone.

Earlier atleast I was able to see this pop up window when I tried opening the project.

but presently nothing happens when I try opening the AWS explorer. I don't see any pop-up anymore

Can't find AWS Toolkit for Visual Studio 2022 extension under Manage Extensions.

Cannot install the new version (AWS Toolkit with Amazon Q) as VSIX installer says the extension is already installed.

As mentioned above by @awschristou , I can only find p42bfph5.ab4 file within this location %ProgramFiles%\Microsoft Visual Studio\2022\XXX\Common7\IDE\Extensions

Here is the error from ActivityLog.xml (referenced in pop-up error):
SetSite failed for package [AWSToolkitPackage]Source: 'Microsoft.VisualStudio.Composition' Description: Expected 1 export(s) with contract name "Amazon.AWSToolkit.Context.IToolkitContextProvider" but found 0 after applying applicable constraints.
Microsoft.VisualStudio.Composition.CompositionFailedException: Expected 1 export(s) with contract name "Amazon.AWSToolkit.Context.IToolkitContextProvider" but found 0 after applying applicable constraints.
at Microsoft.VisualStudio.Composition.ExportProvider.GetExports(ImportDefinition importDefinition)
at Microsoft.VisualStudio.Composition.ExportProvider.GetExports[T,TMetadataView](String contractName, ImportCardinality cardinality)
at Microsoft.VisualStudio.Composition.ExportProvider.GetExport[T,TMetadataView](String contractName)
at Microsoft.VisualStudio.Composition.ExportProvider.GetExportedValueT
at Microsoft.VisualStudio.ComponentModelHost.ComponentModel.GetServiceT
at Amazon.AWSToolkit.VisualStudio.AWSToolkitPackage.d__72`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Amazon.AWSToolkit.VisualStudio.AWSToolkitPackage.d__71.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Amazon.AWSToolkit.VisualStudio.AWSToolkitPackage.d__69.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.Shell.AsyncPackage.<>c__DisplayClass21_0.<b__1>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.VisualStudio.Services.VsTask.RethrowException(AggregateException e)
at Microsoft.VisualStudio.Services.VsTask.InternalGetResult(Boolean ignoreUIThreadCheck)

Here is the latest log file from this location - %localappdata%\AWSToolkit\logs\visualstudio\17.0
log_2024-07-03_23-27-14_9504.txt

We have published a new version (<IP_ADDRESS>) to the extension marketplace.
With this release,

we have added some safeguards that should prevent the extension's startup from failing
we have added more logging to help diagnose if a similar problem persists

Please share whether or not you have been able to start using the updated extension. If you had issues installing and starting version <IP_ADDRESS> of the extension, and also continue to see problems with version <IP_ADDRESS>, please try the following:

from a Visual Studio Developer Command prompt, run VSIXInstaller.exe /u:0B82CB16-0E52-4363-9BC0-61E758689176 to uninstall the extension.
restart your system
ensure that Visual Studio starts up clean (without any extension start-up issues or messages)
confirm that Visual Studio does not report the AWS Toolkit as installed in the Extension Manager
try installing the AWS Toolkit

The <IP_ADDRESS> version installed with no issues for me from within Visual Studio and seems to be working properly again.

So the extension gets installed into %ProgramFiles%\Microsoft Visual Studio\2022\XXX\Common7\IDE\Extensions , where XXX is your Visual Studio edition (like Community, Professional, or Enterprise). Do not delete folders from within here, this can put Visual Studio into a state where it is unable to load extensions.
Each version of the extension gets installed into a new folder within this location.

<IP_ADDRESS> is installed to nymh0jqm.iwp
<IP_ADDRESS> is installed to p42bfph5.ab4
if you didn't have <IP_ADDRESS> previously installed, you'll have to search the folders for a file like AWSToolkitPackage.v17.dll in order to see which folder contains the Toolkit extension

I'd be interested to know if any of your systems currently has more than one of these folders existing at the same time.

Mine only has p42bfph5.ab4 (which appears to be Amazon Q). Visual Studio now launches without the pop-up error, but AWS Explorer does not appear when I choose it from View.
Extension Manager still doesn't show its presence.

<IP_ADDRESS> has fixed this. AWS Explorer now loads properly. Thanks.

Im still having some issues.
I uninstalled as was suggested and reinstalled version (<IP_ADDRESS>)
When I load the following is displayed,

If I attempt to deploy to AWS it fails after a while with the following error

Log is here :
log_2024-07-04_09-04-03_25752.txt

Hi @awschristou,
I followed your instructions and:

Launched a Visual Studio Developer Command Prompt from within Visual Studio ->Tools -> Command Line -> Developer command Prompt
uninstalled the extension using the VSIXInstaller.exe /u:0B82CB16-0E52-4363-9BC0-61E758689176 command from the Visual Studio Developer Command Prompt
closed down Visual Studio
waited for the extension to uninstall
restarted my machine
relaunched Visual Studio and reinstalled the AWS Toolkit from within the Extensions -> Managed Extensions window
closed down Visual Studio
Saw the extension window launch and install itself
relaunched Visual Studio again.

I can confirm that the AWS Explorer is now back (under the View menu) and that AWS Toolkit appears as a menu item under Extensions.
I couldn't see the AWS Toolkit extension in the installed tab within the Extensions -> Managed Extensions window though.
By the looks of it, everything appears to be working correctly again.
Thank you for getting a fix out so quickly.

@tony-snoop hi are you able to deploy? ie when you right click a project and select "Publish to AWS" do you get all your options appear?

@tony-snoop hi are you able to deploy? ie when you right click a project and select "Publish to AWS" do you get all your options appear?

Hi @Reynolds80 - We use an alternate method of publishing content to AWS using GIT and build triggers. So unfortunately I'm not sure if this works after uninstalling and re-installing the new AWS Toolkit update.

@tony-snoop Thanks for checking!  it fails for me before that point.  This may point to maybe a role missing from my permissions, or something like that.  More digging!!

I've updated https://github.com/aws/aws-toolkit-visual-studio/issues/441#issuecomment-2207475901 with a suggestion to Repair your Visual Studio installation if you are seeing problems reported in this issue.

@awschristou Hi I just did a Repair,  and the Publish to AWS still fails.
Error : "Publish to AWS failed to load publish details using the current credentials:
Unable to start a deployment session:"
AWS Explorer connects, and I'm able to see my databases/instances etc
If I validate the connection I receive a Connection is Valid.
Ill try the Publish to Elastic beanstalk (Legacy) next to see if that works.

Hi @Reynolds80 , if you are referring to the issue where you're seeing "Unable to start a deployment session" "A task was canceled" messages in Publish to AWS, can you please file that as a separate issue?

The suggested fix - uninstalling the extension from a Visual Studio command prompt, rebooting, then re-installing from the marketplace, did appear to work.  Until I then closed Visual Studio, and from a Unity project, double-clicked a script, which launches Visual Studio (and opens the project), at which point the toolkit was back in the broken state again, where it does not show as installed, and Q does not work (no "Q" icon at bottom), however in the Extensions menu, it still shows "AWS Toolkit".
I tried exiting Visual Studio, and restarting with a non-Unity project, and it was still broken. I then uninstalled the extension from VS developer command prompt again, and re-installed from the .visx file (without rebooting) and it appears to be fixed again. I'm reluctant to launch it again from Unity for fear of breaking it again.

It is broken again for me, completely.  Uninstalling the extension from the command prompt and reinstalling no longer fixes it.  Not sure whether it's VS 17.10.4 or AWS Toolkit 1.55.00 that's broken it,  I haven't tried reinstalling VS, but that seems a rather heavy handed fix.

Hi @paulguz-datapa , reinstalling VS would be heavy handed, and we don't know that it would definitely solve the problem, which we're still investigating.
Something you can try is to have Visual Studio rebuild its cache of MEF components (the AWS Toolkit is partially composed of MEF components, and this is where we're seeing failures). If you install the Clear MEF Component Cache extension and run it (as shown on the marketplace page) and then restart Visual Studio, it would be useful to know if there is any change in the Toolkit's ability to initialize properly.

Thanks @awschristou, but clearing the component cache has had no effect.

Hi @paulguz-datapa , thanks for letting us know that you still have problems. We are now going to consolidate similar issues on an issue representing the core problem.
Can you please have a look at https://github.com/aws/aws-toolkit-visual-studio/issues/452, and if your system is still in a bad state, please follow through the "help us out" section to help us collect more data about the problem.
If you are getting the "Some Toolkit components could not be initialized. Some functionality may not work during this IDE session." message, please comment on that issue going forward. Otherwise, please file a new issue, but try going through the guidance in 452.

@awschristou OK, I've submitted the requested information to Microsoft.  But when I run Visual Studio from the command prompt as requested, I don't get the AWS Toolkit error, so I'm not sure how much use that will be.
After going through the full process as described in the MS ticket, Amazon Q was briefly working again.  But after signing in to give Amazon Q permission, the next time I started VS, Amazon Q failed again.


Dropdown double-tap in mobile view with is_hover:true option

If set is_hover:true, in mobile version is double-tap needed to display the dropdown.
Drop

Opt1

Opt2

Opt3

I think this is the code that needs to be looked at. If Modernizr detects a touch device, the hover should be removed.

I was not able to reproduce this in the docs. Any chance for a codepen?

Open this with a mobile:
http://codepen.io/anon/pen/QjgByN

Mobile as in iPhone? Android? Or just small?

In a tap device. Whatever size.


CI runs fail with charms in error: ImagePullBackOff": Back-off pulling image "registry.jujucharms.com

It seems like there is an intermittent issue when deploying charms from Charmhub in GH runners, which fail to deploy with the status message: unknown container reason "ImagePullBackOff": Back-off pulling image "registry.jujucharms.com/charm/4jn95wlrsfo1po9wfu....
This error message suggests there is an error when pulling the image from the registry.jujucharms.com/ container registry, but this information has to be confirmed because these  are sometimes linked to low storage.
Important to note, this error goes away after re-running the CI, as mentioned before, it seems like an intermittent issue, but has happened consistently across other PRs at least once.
Environment
This has only happened in GH runners during integration test execution and has only been observed in the kfp-operators repository.

NOTE: if this issue happens in other repositories, please transfer to canonical/bundle-kubeflow.

Possible causes
It can be either the registry is not working correctly OR we could be running out of storage in the GH runners.
Examples of CIs where this behaviour has been observed

https://github.com/canonical/kfp-operators/actions/runs/5716319711/job/15514631356#step:8:38
https://github.com/canonical/kfp-operators/actions/runs/5726957265/job/15518414482#step:8:28
https://github.com/canonical/kfp-operators/actions/runs/5730163441/job/15533052295#step:5:77

On track/2.0 the following failures observed:
Model Controller Cloud/Region Version SLA Timestamp
test-charm-yjgo github-pr-77e6a-microk8s microk8s/localhost 2.9.44 unsupported 11:52:17Z
App Version Status Scale Charm Channel Rev Address Exposed Message
grafana-k8s 9.2.1 active 1 grafana-k8s latest/stable 81 <IP_ADDRESS> no
kfp-api waiting 1 kfp-api 0 <IP_ADDRESS> no installing agent
kfp-db mariadb/server:10.3 active 1 charmed-osm-mariadb-k8s latest/stable 35 <IP_ADDRESS> no ready
kfp-viz res:oci-image@3de6f3c blocked 0/1 kfp-viz 2.0/stable 476 <IP_ADDRESS> no 0/1 nodes are available: 1 node(s) had untolerated taint {node.kubernetes.io/disk-pressure: }. preemption: 0/1 nodes ...
minio res:oci-image@1755999 blocked 0/1 minio ckf-1.7/stable 186 <IP_ADDRESS> no 0/1 nodes are available: 1 node(s) had untolerated taint {node.kubernetes.io/disk-pressure: }. preemption: 0/1 nodes ...
mysql-k8s 8.0.32-0ubuntu<IP_ADDRESS> waiting 1 mysql-k8s 8.0/edge 88 <IP_ADDRESS> no waiting for units to settle down
prometheus-k8s 2.33.5 active 1 prometheus-k8s latest/stable 103 <IP_ADDRESS> no
prometheus-scrape-config-k8s n/a active 1 prometheus-scrape-config-k8s latest/stable 39 <IP_ADDRESS> no
Unit Workload Agent Address Ports Message
grafana-k8s/0\* active idle <IP_ADDRESS>
kfp-api/0\* blocked idle <IP_ADDRESS> Please add required database relation: eg. relational-db
kfp-db/0\* active idle <IP_ADDRESS> 3306/TCP ready
kfp-viz/0 unknown lost <IP_ADDRESS> 8888/TCP agent lost, see 'juju show-status-log kfp-viz/0'
minio/0 unknown lost <IP_ADDRESS> 9000/TCP,9001/TCP agent lost, see 'juju show-status-log minio/0'
mysql-k8s/0\* error idle <IP_ADDRESS> hook failed: "database-relation-changed"
prometheus-k8s/0\* active idle <IP_ADDRESS>
prometheus-scrape-config-k8s/0\* active idle <IP_ADDRESS>

Thanks @i-chvets, I was exactly looking for this kind of log minio res:oci-image@1755999 blocked 0/1 minio ckf-1.7/stable 186 <IP_ADDRESS> no 0/1 nodes are available: 1 node(s) had untolerated taint {node.kubernetes.io/disk-pressure: }. preemption: 0/1 nodes .... That is a symptom of the machine running out of resources. We shall investigate a bit more.

Something feels a bit funny here.  afaik these VMs should consistently get the same disk space, so it feels odd that we'd have an intermittent disk space error.  But I don't have a better idea of what is going on

Other components also can experience similar issues:
kfp-viz                       res:oci-image@3de6f3c    blocked    0/1  kfp-viz                       2.0/stable      476  <IP_ADDRESS>   no       0/1 nodes are available: 1 node(s) had untolerated taint {node.kubernetes.io/disk-pressure: }. preemption: 0/1 nodes ...
minio                         res:oci-image@1755999    blocked    0/1  minio                         ckf-1.7/stable  186  <IP_ADDRESS>  no       0/1 nodes are available: 1 node(s) had untolerated taint {node.kubernetes.io/disk-pressure: }. preemption: 0/1 nodes ...

Something feels a bit funny here. afaik these VMs should consistently get the same disk space, so it feels odd that we'd have an intermittent disk space error. But I don't have a better idea of what is going on

It is not really a VM disk issue, but storage in MicroK8s.

but storage in MicroK8s.

I want a cookie for that :)

Another random error in KFP:
kfp-profile-controller   python:3.7             error        1  kfp-profile-controller                    0                 no       creating or updating custom resources: getting custom resources: attempt count exceeded: getting custom resource defi...

This is our charm that tries to apply K8S resources and fails after many attempts. I will add more logs, when they are uploaded. test is still going and failing all over the place.

Latest in KFP:
minio/0*                 error        idle   <IP_ADDRESS>  9000/TCP,9001/TCP  unknown container reason "ImagePullBackOff": Back-off pulling image "registry.jujucharms.com/charm/81j63o4a2ldarn1umc...

Interestingly enough, I ran into something very similar today in the dex-auth-operator repo. Look at this CI execution.

I came across this error here with argo-server. Attaching any logs I find related but if you think there are more, let me know.
Error:
argo-server/0*           error        idle        <IP_ADDRESS>  2746/TCP  unknown container reason "ImagePullBackOff": Back-off pulling image "registry.jujucharms.com/charm/hs4bjttgix7e2kf318...

juju status logs-unit-argo-server-0
04 Aug 2023 11:15:15Z  juju-unit  executing    running config-changed hook
04 Aug 2023 11:15:18Z  workload   maintenance  Setting pod spec
04 Aug 2023 11:15:21Z  juju-unit  executing    running start hook
04 Aug 2023 11:15:24Z  juju-unit  idle
04 Aug 2023 11:17:25Z  juju-unit  error        OCI image pull error: rpc error: code = Unknown desc = failed to pull and unpack image "registry.jujucharms.com/charm/hs4bjttgix7e2kf3188j168vjafe2mfmr8m16/oci-image@sha256:576d03880b4d608b00607902be8f52692e2b8d40f9fdc21992b65447a93614c2": failed to copy: httpReadSeeker: failed open: unexpected status code https://registry.jujucharms.com/v2/charm/hs4bjttgix7e2kf3188j168vjafe2mfmr8m16/oci-image/blobs/sha256:164db2618c02555da834fe4893b2922dba49f830ff886a4084ad515a2365a19e: 502 Proxy Error
04 Aug 2023 11:17:25Z  workload   error        OCI image pull error: rpc error: code = Unknown desc = failed to pull and unpack image "registry.jujucharms.com/charm/hs4bjttgix7e2kf3188j168vjafe2mfmr8m16/oci-image@sha256:576d03880b4d608b00607902be8f52692e2b8d40f9fdc21992b65447a93614c2": failed to copy: httpReadSeeker: failed open: unexpected status code https://registry.jujucharms.com/v2/charm/hs4bjttgix7e2kf3188j168vjafe2mfmr8m16/oci-image/blobs/sha256:164db2618c02555da834fe4893b2922dba49f830ff886a4084ad515a2365a19e: 502 Proxy Error
04 Aug 2023 11:17:38Z  juju-unit  error        unknown container reason "ImagePullBackOff": Back-off pulling image "registry.jujucharms.com/charm/hs4bjttgix7e2kf3188j168vjafe2mfmr8m16/oci-image@sha256:576d03880b4d608b00607902be8f52692e2b8d40f9fdc21992b65447a93614c2"
04 Aug 2023 11:17:38Z  workload   error        unknown container reason "ImagePullBackOff": Back-off pulling image "registry.jujucharms.com/charm/hs4bjttgix7e2kf3188j168vjafe2mfmr8m16/oci-image@sha256:576d03880b4d608b00607902be8f52692e2b8d40f9fdc21992b65447a93614c2"

Couldn't find anything that could be useful in juju debug-log but let me know if you 'd like to investigate yourself.

Just bumped into this for a different charm in a VM of my own running MicroK8s:
juju show-status mlflow-minio
Model     Controller       Cloud/Region        Version  SLA          Timestamp
kubeflow  uk8s-controller  microk8s/localhost  2.9.44   unsupported  08:28:37Z

App           Version                Status   Scale  Charm  Channel       Rev  Address         Exposed  Message
mlflow-minio  res:oci-image@1755999  waiting      1  minio  ckf-1.7/edge  186  <IP_ADDRESS>  no

Unit             Workload  Agent  Address       Ports              Message
mlflow-minio/0*  error     idle   <IP_ADDRESS>  9000/TCP,9001/TCP  unknown container reason "ImagePullBackOff": Back-off pulling image "registry.jujucharms.com/charm/81j63o4a2ldarn1umc...

So this is neither KFP nor GH runner specific.


Allow to set or override "preserveAspectRatio" attribute

It can be useful for normalizing svg files or for fixing this bug https://stackoverflow.com/questions/26263550/css-svg-background-strange-transparent-line-around

It's not just for that. preserveAspectRatio can be used to align the SVG content, regardless of how wide the outer canvas is. Let's say I have an SVG with content that's 64x64 pixels, but the outer element (in this case the  containing the ) is 100px wide. I can then use preserveAspectRatio to align the SVG content top left, so I can resize the outer element (using CSS) without worring about flow. Right now, the content is centered no matter what I do, and this is not really great for my current use-case.
It's not just an editor-thing, because SVGO strips the tag off the incoming SVG-files, and there's currently no way to add them again (also, addAttributesToSVGElement doesn't seem to let me add values, and even if it did, I'd want to control this on a per-SVG basis instead of adding a blanket-statement, which would be a lot easier in the source file than in the setup for SVGO); nor is there a way to control this with styling from a browser. So I would say this is a needed feature.

Turns out, effectively:
viewBox := fmt.Sprintf("viewBox=\"%d %d %d %d\"",
	vbMinX, vbMinY, (vbMaxX - vbMinX), (vbMaxY - vbMinY))
aspect := "preserveAspectRatio=\"none\""
canvas.Start(width, height, viewBox, aspect)


suggestions in text-form-field & can navigate with arrows in flutter web

Like in google search, showing suggestion from a predefined list & can navigate through the suggestion with up-down arrow keys

Use case

Proposal

Hi @anandsubbu007 ,
follow up on https://github.com/flutter/flutter/issues/46824, closing current issue as duplicate


Fix types and shorten subsection names in the "Browsers and the Web" chapter

Simple enough to merge without review, can fix suggestions post-hoc.


handleInputBlur function is not working

Bind myself function on handleInputBlur, but can not working

Hi @wendylw, thanks for opening the issue. If you look at the code for handleInputBlur, you'll see that the handler is triggered only when the textfield is not blank. Did you try out this scenario too?
I've created a webpackbin example for you to see how this works. You can try this here: http://www.webpackbin.com/4yzaRtA9b (click on "Log" button in the menubar to see the output)

Thank you for solution my problem
On Tue, Aug 30, 2016 at 11:24 PM, Prakhar Srivastav <
<EMAIL_ADDRESS>wrote:

Hi @wendylw https://github.com/wendylw, thanks for opening the issue.
If you look at the code for handleInputBlur
https://github.com/prakhar1989/react-tags/blob/9de77b8b9c823a7c498168c4fba6f5db4d34d44d/lib/ReactTags.js#L120-L126,
you'll see that the handler is triggered only when the textfield is not
blank. Did you try out this scenario too?
I've created a webpackbin example for you to see how this works. You can
try this here: http://www.webpackbin.com/4yzaRtA9b (click on "Log" button
in the menubar to see the output)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/prakhar1989/react-tags/issues/105#issuecomment-243477380,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AENlR9CfjdRADDEnvsW9x20or9aRpZmSks5qlEspgaJpZM4JwV1_
.

Hi @prakhar1989, I was playing around with your component today (good work btw) and am surprised by the above onBlur behaviour. I'm curious why it shouldn't call the passed handleOnBlur if the field is empty?

Hi @ntsim, interesting question. I had to check the history to answer that, and it seems the answer lies in this issue by @Wildhoney.
The idea behind this change was to automatically convert the text in the input field in case the user tabs over and hence it makes sense to trigger in when the field is non-empty.
Thinking about it now though, I feel the event should always be triggered irrespective of whether the field is empty or not so that it's consistent with what developers expect. The overriding function can then accordingly deal with the empty value scenario. What do you think?

Sounds like a great idea. A validation check in the passed handleInputBlur function would be trivial for a developer to implement, but having such a check baked into the API would considerably reduce the amount of control they would have over the behaviour. Generally fewer assumptions are better for building generic components :+1:

Will open a PR for the modified behaviour 👍


What do I install to allow GPU acceleration on windows with an AMD graphics card?

title

Unfortunately, ML in general has poor support for AMD Cards so there's nothing you can really do right now


Booking acceptance

According to @buckwierd, it looks like the publican cannot accept a booking.

Here is the issue. Apparently the commission line of the breakout isn't there.

I will try with the staging version to avoid testing in real life.

Please let me know if additional information is needed, since you’ve already found the issue 🙂

The issue is also there on staging.

Aoife forwarded me the email. The issue is a broken link.
We had this before:
marketplace.url is using Whichost.com
Our domain is still market.whichost.com
I’ll quick fix it later like the other emails yesterday

If it's of any value, I remember when testing in the test environment, I was able to accept or reject a booking request.

So after I fixed the commission according to those instruction, the LineItemProviderComissionMaybe isn't giving anything (and for cause, there is no provider commission at all, so why is it triggered?>

@buckwierd @RohrerHope It is working on staging and I just pushed it to master. Could you check that the issue is fixed?

I'll quick fix it over the transaction emails. One moment.

@lcoenen I've quick fixed it by replacing {{marketplace.url}} with https://market.whichost.com
It's pushed to you. Please send it to master so we can test it.

Dude, wrong issue again.

 This was fixed now with the quick fix.
Please let me now when it was pushed to master.

Aoife has the listings with the booking requests. In
I can't test that now.

Sorry

@buckwierd on which branch did you pushed it?

As we agreed for small changes:
4-adjust-the-static-centent

There is two different issue: the one with the blank page when going to Inbox and the one with the email. Please create a different one.

This have been fixed the branch booking-acceptance-issue. It is fixed


Pre conditions check before updating weighted routing metadata

Description
PR scope -

Earlier, we blocked weight updates if any attribute is undergoing decommission action. This PR tries to modify the behaviour and will allow weight updates as long as weights of a decommissioned attribute is not modified.
Weight update should be done for all discovered zones and force zone values
Relax two zones having zero weight check

Issues Resolved
[List any issues this PR will resolve]
Check List

[X] New functionality includes testing.

[X] All tests pass

[ ] New functionality has been documented.

[x] New functionality has javadoc added

[X] Commits are signed per the DCO using --signoff
[X] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

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

Codecov Report

Merging #4955 (34dbe80) into main (782dc59) will decrease coverage by 0.55%.
The diff coverage is 88.88%.

:exclamation: Current head 34dbe80 differs from pull request most recent head 16f6c74. Consider uploading reports for the commit 16f6c74 to get more accurate results

@@             Coverage Diff              @@
##               main    #4955      +/-   ##
============================================
- Coverage     71.37%   70.81%   -0.56%
+ Complexity    58338    57906     -432
============================================
  Files          4689     4689
  Lines        277022   277009      -13
  Branches      40315    40314       -1
============================================
- Hits         197718   196167    -1551
- Misses        63304    64544    +1240
- Partials      16000    16298     +298

Impacted Files
Coverage Δ

...search/cluster/routing/WeightedRoutingService.java
87.69% <88.88%> (-0.24%)
:arrow_down:

...g/opensearch/index/analysis/CharFilterFactory.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...adonly/AddIndexBlockClusterStateUpdateRequest.java
0.00% <0.00%> (-75.00%)
:arrow_down:

...readonly/TransportVerifyShardIndexBlockAction.java
9.75% <0.00%> (-58.54%)
:arrow_down:

...ava/org/opensearch/action/NoSuchNodeException.java
0.00% <0.00%> (-50.00%)
:arrow_down:

...search/search/aggregations/pipeline/EwmaModel.java
24.44% <0.00%> (-44.45%)
:arrow_down:

...adcast/BroadcastShardOperationFailedException.java
55.55% <0.00%> (-44.45%)
:arrow_down:

...rch/client/transport/NoNodeAvailableException.java
28.57% <0.00%> (-42.86%)
:arrow_down:

.../admin/cluster/reroute/ClusterRerouteResponse.java
60.00% <0.00%> (-40.00%)
:arrow_down:

...opensearch/index/reindex/BulkByScrollResponse.java
48.38% <0.00%> (-39.52%)
:arrow_down:

... and 486 more

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

Do we need similar changes in Decommission Service as well, wondering if we should have a common service that links Weighted Routing with Decommission Service to make sure they are always in sync. Can we move all the validation logic to a common place to make it inline with decommission requirements as well

These changes are already done in DecommissionService which ensures the zone getting decommissioned has a weight zero. Are you talking about any other specific change needed in DecommissionService?

Lets also raise a backport PR


chore: Add size labels to GitHub configuration

Pull Request
Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

#56
#55  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @JackPlowman and the rest of your teammates on  Graphite

Merge activity

Oct 26, 4:06 PM EDT: A user started a stack merge that includes this pull request via Graphite.


Can awless support  creating elasticache? like redis-cluster?

from awless command help. I can not found any docs for create elasticache service?  can it supported?

No it is not. Note also that awless itself is not supported anymore.

No it is not. Note also that awless itself is not supported anymore.

OK.. thanks


support drop table

Support Drop Table
In some use case,
NSString *tableName = [NSString stringWithFormat:@"book_%@",@(book.bookId)]
Put article object of the book in each table.
When clear date, we should drop table '%@'  instead of DELETE from %@
All.

thanks!


Font not rendering correctly in WIndows 10 - MacBookPro 2017

Issue Type: Bug
When opening VSCode insiders, the font doesn't render correctly. This happens intermittently.
See image here:
https://jstoppa.github.io/images/vscodeissue.png
This started happening since the new change on the icons on the left hand bar.
I'm running VSCode Insiders in Windows 10 - MacBookPro 2017
VS Code version: Code - Insiders 1.37.0-insider (46cc0a1670b7047e610aaef1bf84f1190802e9ec, 2019-07-11T05:39:42.001Z)
OS version: Windows_NT x64 10.0.17134

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz (8 x 2904)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwareoop_rasterization: disabled_offprotected_video_decode: unavailable_offrasterization: enabledskia_deferred_display_list: disabled_offskia_renderer: disabled_offsurface_synchronization: enabled_onvideo_decode: enabledviz_display_compositor: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
15.90GB (8.88GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (10)

Extension
Author (truncated)
Version

githistory
don
0.4.6

xml
Dot
2.5.0

gitlens
eam
9.8.5

prettier-vscode
esb
1.9.0

beautify
Hoo
1.5.0

graphql-for-vscode
kum
1.14.2

mssql
ms-
1.6.0

powershell
ms-
2019.5.0

vscode-typescript-tslint-plugin
ms-
1.2.2

debugger-for-chrome
msj
4.11.6

Seen the same in Discord, I think this is electron bug.

I found a dependency, this happens when using an AMD video card (RX570).
When using solutions from Intel, this problem is not observed.
And yes, I use the stable version, not insider.

@jstoppa how is the behavior when you launch code with --disable-gpu ?

Ping

If no one is against, I will answer, when I started with the attribute --disable-gpu, the problem disappeared.

How do I set --disable-gpu flag by default to run vscode?

@Sovgut you can't, you should upvote https://github.com/microsoft/vscode/issues/15211 if you want it

@Tyriar thank you.

@Sovgut sorry for not getting back to you before and thanks for looking at this.
I haven't had the issue for a few weeks now, I'm running VS Code insiders (setup below). I'll report back if I get the issue again and see if --disable-gpu solves the issue as @deepak1556 suggested
Version: 1.39.0-insider (user setup)
Commit: d157c2e941cae17acb79bf26a70bbfad732bdc83
Date: 2019-09-16T06:06:10.647Z
Electron: 6.0.9
Chrome: 76.0.3809.146
Node.js: 12.4.0
V8: 7.6.303.31-electron.0
OS: Windows_NT x64 10.0.17134

This happened again today, I tried the --disable-gpu option but then I saw @Tyriar comments.
Bottom line is that I closed VSCode, reopened a blank project and the problem went away.
I'll try to collect more info if I manage to reproduce it again
Here are the latest details of my VSCode setup.
Thanks
VS Code version: Code - Insiders 1.39.0-insider (c8252b63f547674d2faf361d4181bb76b0b5f81a, 2019-10-04T09:24:45.690Z)
OS version: Windows_NT x64 10.0.17134

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz (8 x 2904)

GPU Status
2d_canvas: unavailable_softwareflash_3d: disabled_softwareflash_stage3d: disabled_softwareflash_stage3d_baseline: disabled_softwaregpu_compositing: disabled_softwaremultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwareoop_rasterization: disabled_offprotected_video_decode: disabled_offrasterization: disabled_softwareskia_deferred_display_list: disabled_offskia_renderer: disabled_offsurface_synchronization: enabled_onvideo_decode: disabled_softwareviz_display_compositor: disabled_offwebgl: unavailable_softwarewebgl2: unavailable_software

Load (avg)
undefined

Memory (System)
15.90GB (6.96GB free)

Process Argv
--disable-gpu

Screen Reader
no

VM
0%

Extensions (12)

Extension
Author (truncated)
Version

ng-template
Ang
0.802.3

githistory
don
0.4.6

xml
Dot
2.5.0

gitlens
eam
10.1.0

prettier-vscode
esb
2.3.0

beautify
Hoo
1.5.0

graphql-for-vscode
kum
1.15.1

mssql
ms-
1.6.0

powershell
ms-
2019.9.0

vscode-typescript-tslint-plugin
ms-
1.2.2

debugger-for-chrome
msj
4.12.0

angular-console
nrw
8.1.2

Can you also try our exploration builds to see if the situation is any better ? Thanks!

macOS: Download
Linux (DEB): Download
Linux (RPM): Download
Windows: Download

Thanks @deepak1556
What is the exploration build? does it have the same functionality as of insiders?

ok, I downloaded it now. I'll start using the exploration build too. I'm not getting the issue at the moment but I'll le you know if I do

@jstoppa thanks for confirming! exploration builds contain a more recent version of electron that will be the candidate for next insiders. The exploration update has been merged into master today https://github.com/microsoft/vscode/pull/81644, you can expect this in next insiders.


Merge global and default options with user-supplied options

This way one can override or add arbitrary keys and values to the
global_options and defaults_options hashes without having to reproduce
the whole hash.
This is done by merging the default hashes for global_options and
defaults_options specified in haproxy::params with their pendants
specified as the class parameters. Values supplied by the user will
"win" over any default values from haproxy::params. Uses the merge()
function from puppetlabs-stdlib.
Also allows "unsetting" default values from haproxy::params by using
the special value absent. Parameters set thus will not appear in the
resulting configuration file.
Contains updated spec tests and documentation.
Discussed in PR #121.

Sweet! Re-reading the code, I realized that there is another -easily solvable- hitch: in its current form, this PR will change the configuration of user's system when upgrading. The solution is an additional merge_options param defaulting to false, which toggles between the two behaviours. In the case of it being set to false, emit a warning that the default will change in the next major release. That way people can prepare without having their systems disrupted.
Please use undef as special value instead of 'absent'. It will be passed through as :undef into the template and will never collide when someone really wants to have 'absent' in the config file.

Sweet! Re-reading the code, I realized that there is another -easily solvable- hitch: in its current form, this PR will change the configuration of user's system when upgrading.

Are you sure about that? The default configuration of global_options and defaults_options in params.pp remains unchanged, and any user that customised either of those already had to recreate the entire hash to change or add options (which was the point of the original PR #121).
So for users that didn't touch the module defaults nothing will happen, and for those that did change the defaults nothing will happen either, because their changes already had to cover all the defaults anyway.
This PR should be 100% backwards compatible. I'll do some more tests in our own infrastructure but I am almost certain a merge_options parameter isn't needed.

Please use undef as special value instead of 'absent'. It will be passed through as :undef into the template and will never collide when someone really wants to have 'absent' in the config file.

Will do!

Instead of removing values from the passed hashes, they now have to be set
to absent/undef.
Apologies for being so unspecific in my first comment.
On Oct 23, 2015 18:05, "Andreas Ntaflos"<EMAIL_ADDRESS>wrote:

Sweet! Re-reading the code, I realized that there is another -easily
solvable- hitch: in its current form, this PR will change the configuration
of user's system when upgrading.
Are you sure about that? The default configuration of global_options and
defaults_options in params.pp remains unchanged, and any user that
customised either of those already had to recreate the entire hash to
change or add options (which was the point of the original PR #121
https://github.com/puppetlabs/puppetlabs-haproxy/pull/121).
So for users that didn't touch the module defaults nothing will happen,
and for those that did change the defaults nothing will happen either,
because their changes already had to cover all the defaults anyway.
This PR should be 100% backwards compatible. I'll do some more tests in
our own infrastructure but I am almost certain a merge_options parameter
isn't needed.
Please use undef as special value instead of 'absent'. It will be passed
through as :undef into the template and will never collide when someone
really wants to have 'absent' in the config file.
Will do!
—
Reply to this email directly or view it on GitHub
https://github.com/puppetlabs/puppetlabs-haproxy/pull/202#issuecomment-150634724
.

@DavidS can you tell me what to use at https://github.com/antaflos/puppetlabs-haproxy/blob/merge-defaults-and-global-options-with-defaults/spec/classes/haproxy_spec.rb#L379 instead of 'absent'? It probably should be nil, shouldn't it?
And in the template at https://github.com/antaflos/puppetlabs-haproxy/blob/merge-defaults-and-global-options-with-defaults/templates%2Fhaproxy-base.cfg.erb#L4 I should be able to compare with :undef instead of 'absent', right?

puppet's undef value (in contrast to the string 'undef') is translated to :undef the ruby symbol in all places where ruby is evaluated.

I can't get the spec tests to work with anything other than nil when removing an option from one of the hashes. See https://gist.github.com/antaflos/dc4910058eb316029036 for what happens when using :undef.
I have updated the PR thus now, please have another look :)

@DavidS After some more testing I realise that you are of course right, and the user should be able to toggle the merging behaviour.
The problem is that merging the defaults from params.pp with the user-supplied options can result in additional, probably unwanted options ending up in the final configuration file; specifically options that the user chose not to include in their own haproxy::global_options and haproxy::defaults_options hashes.
For example we set this in our haproxy profile:
  $defaults_options = {
    'log'     => 'global',
    'mode'    => 'http',
    'retries' => '3',
    'option'  => [
      'redispatch',
      'abortonclose',
      'logasap',
      'dontlognull',
      'httplog',
      'http-server-close',
      "forwardfor except ${haproxy_defaults_forwardfor_except}",
    ],
    'timeout' => [
      'http-request 10s',
      'queue 1m',
      'connect 5s',
      'client 1m',
      'server 1m',
    ]
  }

Merging this user-supplied hash with the defaults from params.pp will result in the maxconn 8000 and stats enable options to be included in the final defaults section of haproxy.cfg, which is not what we want (at least not without warning).
So I will update the PR again with your suggested merge_options param.

Updated again. This is turning out to be a schwere Geburt :)

It'll be well worth the effort :-) The README still says absent instead of undef, otherwise, :+1: !

Thanks for catching that! Updated once more :)

Thanks for doing all the hard work :-)

Excellent, thanks for merging!


Use SwaggerUI 3.25.0: better compatibility with OpenAPI 3.0.x

When trying new features of OpenAPI, I've realized some JSON could be valid and supported by the editor at https://editor.swagger.io/ but not by Kitura-OpenAPI UI. This is due to some issues/bug in the version 3.18 and/or higher.
I've update some files in SwaggerUI (not sure if this all needed or not) and it fixes the issue.
The new page keeps the Kitura logo instead of the SwaggerUI logo (as before).

@mbarnach Other than the comment above about the templating of the index.html, this looks good to me.

I've removed the index.html file. No changes were needed I think in template.html.

This is now tagged in Kitura-OpenAPI 1.4.0


fix(versions): update Activiti/activiti-cloud-dependencies versions into develop

UpdateBot pushed maven dependency: org.activiti.cloud.rb:activiti-cloud-runtime-bundle-dependencies to: 7.1.121

UpdateBot commands:
updatebot push-version --kind maven org.activiti.cloud.rb:activiti-cloud-runtime-bundle-dependencies 7.1.121


Feature/add client binding

this branch adds the ability to use mongoc driver mongoc_client_new method.
Also adds the missing mongoc_cleanup method thats clean allocated memory by the mongoc_init method.

Thanks! Just adding these functions to the bindings doesn't expose the functionality, are you planning to add these to the wrappers too?

Yes, i already did it, but i'm testing before submitting the PR.

Ok! I'm closing this for now, feel free to reopen once this is ready to be considered for merging.


Template for website with multiple marp slides

I'm not sure where to post this but basically here my main issue is that PITCHME.md is nice but only one slide show.
I am currently using marp to run a biweekly class and have a new slideshow for each day plus an index homepage. I've hosted it on Netlify here and repo here.
Right now I just make a new .md for each page, and then keep doing the marp command every time I change up something and manually add the link to the html part. I think it'll be nicer if there was some autobuild and update for many slides like how this manages it for PITCHME.md

Sorry, I'm just showing the simplest and well-working one for Marp beginner. I'm taking a stance to leave some step-up examples, such as publishing multiple slides, to Marp community.
It would hardly get multi-deck build in this template because of losing the best SEO setting.
Wait someone to create the template, or try finding out the repository with similar usage that uses Marp CLI in wild.

I ended up using the Marp Github Action and a marp cli command call giving an input and output directory. Netlify points to the Github and auto updates based on that.

because of losing the best SEO setting

If one were to make a template, how would it work with SEO settings?

Check out metadata section in Marp CLI documentation.
This repository is configured to set the canonical URL of slide deck from Netlify deploy environment automatically, and that requires single slide deck. (If changed this template to suit to multiple slide decks, a canonical URL of each decks may point to the wrong URL)


Extension host terminated unexpectedly.please reload the window to recover

VSCode Version: Code 1.13.0 (376c52b955428d205459bea6619fc161fc8faacf, 2017-06-08T16:43:13.058Z)
OS Version: Windows_NT ia32 10.0.15063
Extensions:

Extension
Author
Version

code-runner
formulahendry
0.6.19

cpptools
ms-vscode
0.11.4

Steps to Reproduce:
1.run Code.exe ,show error Extension host terminated unexpectedly.please reload the window to recover.
2.reload the window ,the error message show again.

This may be related to #28452
Does this issue go away if you follow the instructions here: https://github.com/Microsoft/vscode/issues/26628#issuecomment-307709404?

@q7q7w8 Can you try the latest insider release? Once the error happens, open the Developer tools and show me a screenshot of what appears in there.

FWIW @joaomoreno , @ramya-rao-a
I had the same issue but with a different extension. I tracked it down to this rogue extension html-css-class-completion Zignd v1.7.0 (Intellisense for CSS Class Names). With it enabled, I'd get the error after approx 2-3 minutes of use. After disabling it, I haven't had the error after a few hours of use.
Unfortunately a lot of Windows users are probably experiencing this as it is a popular extension with approx 1/2 million downloads.
Maybe there is something in common with this extension and the code-runner or cpptools extension.

cc @alexandrudima @jrieken Random extensions are crashing the extension host


InconclusiveDimensionOperation: Cannot divide evenly the sizes of shapes (3958, 3) and (8, -1, 3)

Hi, during demo in jupyter notebook there is a shape error occuring when the code goes into rendering.
Any clue to fix this error?
9 frames
/usr/local/lib/python3.7/dist-packages/hypernerf/evaluation.py in render_image(state, rays_dict, model_fn, device_count, rng, chunk, default_ret_key)
    114         lambda x: x[(proc_id * per_proc_rays):((proc_id + 1) * per_proc_rays)],
    115         chunk_rays_dict)
--> 116     chunk_rays_dict = utils.shard(chunk_rays_dict, device_count)
    117     model_out = model_fn(key_0, key_1, state.optimizer.target['model'],
    118                          chunk_rays_dict, state.extra_params)

/usr/local/lib/python3.7/dist-packages/hypernerf/utils.py in shard(xs, device_count)
    287   if device_count is None:
    288     jax.local_device_count()
--> 289   return jax.tree_map(lambda x: x.reshape((device_count, -1) + x.shape[1:]), xs)
    290
    291

/usr/local/lib/python3.7/dist-packages/jax/_src/tree_util.py in tree_map(f, tree, is_leaf, *rest)
    176   leaves, treedef = tree_flatten(tree, is_leaf)
    177   all_leaves = [leaves] + [treedef.flatten_up_to(r) for r in rest]
--> 178   return treedef.unflatten(f(*xs) for xs in zip(*all_leaves))
    179
    180 tree_multimap = tree_map

/usr/local/lib/python3.7/dist-packages/jax/_src/tree_util.py in <genexpr>(.0)
    176   leaves, treedef = tree_flatten(tree, is_leaf)
    177   all_leaves = [leaves] + [treedef.flatten_up_to(r) for r in rest]
--> 178   return treedef.unflatten(f(*xs) for xs in zip(*all_leaves))
    179
    180 tree_multimap = tree_map

/usr/local/lib/python3.7/dist-packages/hypernerf/utils.py in <lambda>(x)
    287   if device_count is None:
    288     jax.local_device_count()
--> 289   return jax.tree_map(lambda x: x.reshape((device_count, -1) + x.shape[1:]), xs)
    290
    291

/usr/local/lib/python3.7/dist-packages/jax/_src/numpy/lax_numpy.py in _reshape(a, order, *args)
   1727
   1728 def _reshape(a, *args, order="C"):
-> 1729   newshape = _compute_newshape(a, args[0] if len(args) == 1 else args)
   1730   if order == "C":
   1731     return lax.reshape(a, newshape, None)

/usr/local/lib/python3.7/dist-packages/jax/_src/numpy/lax_numpy.py in _compute_newshape(a, newshape)
   1723   return tuple(- core.divide_shape_sizes(np.shape(a), newshape)
   1724                if core.symbolic_equal_dim(d, -1) else d
-> 1725                for d in newshape)
   1726
   1727

/usr/local/lib/python3.7/dist-packages/jax/_src/numpy/lax_numpy.py in <genexpr>(.0)
   1723   return tuple(- core.divide_shape_sizes(np.shape(a), newshape)
   1724                if core.symbolic_equal_dim(d, -1) else d
-> 1725                for d in newshape)
   1726
   1727

/usr/local/lib/python3.7/dist-packages/jax/core.py in divide_shape_sizes(s1, s2)
   1407   s2 = s2 or (1,)
   1408   handler, ds = _dim_handler_and_canonical(*s1, *s2)
-> 1409   return handler.divide_shape_sizes(ds[:len(s1)], ds[len(s1):])
   1410
   1411 def same_shape_sizes(s1: Shape, s2: Shape) -> bool:

/usr/local/lib/python3.7/dist-packages/jax/core.py in divide_shape_sizes(self, s1, s2)
   1322       return 1
   1323     if sz1 % sz2:
-> 1324       raise InconclusiveDimensionOperation(f"Cannot divide evenly the sizes of shapes {tuple(s1)} and {tuple(s2)}")
   1325     return sz1 // sz2
   1326

InconclusiveDimensionOperation: Cannot divide evenly the sizes of shapes (3958, 3) and (8, -1, 3)

If I guess right, you used 8 gpus to run the code.
An annoying alternative is change 8 to 2, making 3958 could divide 2 evenly .
Hoping anyone could give a better solution :(


Added app groups capabilities check

Added check for app groups capabilities to aid in troubleshooting.
Added section in readme displaying how a project will look if correctly configured or incorrectly configured.

:+1:


AdMob cannot show on a certain circumstance

Hi there
at first, I apologize my posting on this issue board.
we are providing our apps in Japan.
Of course, we are using MAX for our monetization.
One day, AdMob Rewarded Video wasn't shown.
We tested many times with the following apps, but AdMob's rewarded video wasn't shown.
-Applovin-MAX-React-Native 1.1.1
-Max Android demo app 9.14.6-Java
-AdMob SDK 19.5.0
-AdMob Max adapter <IP_ADDRESS>
-Google Play service 20.45.12
Did you see or experience the same issue?
if you have any kind of information about this, could you please share it to me?

Hi @naohiro-kitaya - this is a known issue that AdMob is actively working on to resolve. We can only suggest turning AdMob off in the meantime, and I will provide more updates as they come.

Hi Thomas-san
Thank you for your quick reply.
I am glad to hear that you and your team already knew this issue and contacted AdMob side to resolve it.
I did AdMob off on our Android App.
I am waiting any updates about this if you get.
Best regards
Nao
Increment P corporation
Naohiro<EMAIL_ADDRESS>18F Bunkyo Green Court Center Office,
2-28-8 Honkomagome,Bunkyo-ku,Tokyo,
113-0021 Japan 　Tel.: +81-3-6629-4830
From: Thomas So<EMAIL_ADDRESS>Sent: Thursday, November 12, 2020 4:30 AM
To: AppLovin/AppLovin-MAX-React-Native<EMAIL_ADDRESS>Cc: Kitaya Naohiro（北谷 尚大）<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [AppLovin/AppLovin-MAX-React-Native] AdMob cannot show on a certain circumstance (#5)
Hi @naohiro-kitayahttps://github.com/naohiro-kitaya - this is a known issue that AdMob is actively working on to resolve. We can only suggest turning AdMob off in the meantime, and I will provide more updates as they come.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/AppLovin/AppLovin-MAX-React-Native/issues/5#issuecomment-725616830, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AO2X2PRQERXCQ4BZWX3SGELSPLQ4FANCNFSM4TR7VZKA.

This issue has been resolved now - please feel free to turn AdMob back on if you havn't already.


chore: bdd-nh-1585693004 to 0.0.1

chore: Promote bdd-nh-1585693004 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Local receipt validation

The App Store developer documentation describes validating receipts with the App Store as deprecated, and recommends performing the validation on the server locally:

To validate receipts on your server, follow the steps in Validating receipts on the device on your server.

- https://developer.apple.com/documentation/storekit/in-app_purchase/original_api_for_in-app_purchase/validating_receipts_with_the_app_store

Validating the receipt locally requires you to develop or use code to read and decode the receipt as a PKCS #7 container, as defined by RFC 2315.

- https://developer.apple.com/documentation/appstorereceipts/validating_receipts_on_the_device
The README describes using ReceiptUtility.extract_transaction_id_from_app_receipt, but this only gets the transaction ID, and does not perform any validation:

Extracts a transaction id from an encoded App Receipt [...] NO validation is performed on the receipt

The example goes on to use AppStoreServerAPIClient.get_transaction_history, which seems to contradict the advice of performing the validation locally, and makes the receipt signing entirely redundant.
Does this library provide any way of performing this validation and extracting the fields of the receipt locally?
Also, given a receipt from a customer device, can I safely call AppStoreServerAPIClient.get_transaction_history when no validation of the receipt has taken place? Could the transaction ID in this case not have been spoofed?
Perhaps there's a different library I need. Any help on this is greatly appreciated.

Generally we recommend the device to send the signed JWS from StoreKit 2 (https://developer.apple.com/documentation/storekit/verificationresult/3868429-jwsrepresentation), which can be directly validated using this library as part of the SignedDataVerifier. If there are devices that have not yet been upgraded to StoreKit 2, this library allows extracting the transaction id and then calling the history endpoint to support those installs.


Input team/clan search UI and UX

Context
This is the user facing component of the fuzzy clan search.
Intention is for anyone to be able to find the team they are looking for.
Whether it is a school, district, custom team or anything in between.
This team search component has been placed on the global league page (codecombat.com/league) between the global stats and the rankings. This is consistent with where the subclan search appears when you are viewing a network or subnetwork team.
How
The server endpoint is done. This is a very similar Vue component to the ChildClanDetailDropdown, but simplified as any clan can be retrieved.
UI / UX demo

In the context of the global league page:

Testing
The manual component can be tested by using a local database with your local clans collection filled.
Run the server on master branch and this branch as the client.
You cannot test with proxy yet as the server hasn't shipped.
Then navigate to localhost:3000/league and use the input component.
It should allow fuzzy searching of the clan collection in your local database.
Risks
The UI/UX risk is relatively low. This is a much lower risk PR than the server endpoint.
We can measure performance on staging environment.

@nwinter took a look. Merging to check.


UML-2799: Add country to address data for use use and view

Purpose
https://opgtransform.atlassian.net/browse/UML-2799
Fixes UML-2799
Checklist

[X] I have performed a self-review of my own code
~* [ ] I have added relevant logging with appropriate levels to my code~
~* [ ] New event_codes have been documented on the [wiki page]~(https://opgtransform.atlassian.net/wiki/spaces/LSML2/pages/3277881441/Understanding+the+event+logs)
~* [ ] I have updated documentation (Confluence/GitHub wiki/tech debt doc) where relevant~
~* [ ] I have added tests to prove my work~
~* [ ] I have added welsh translation tags and updated translation files~
[X] I have run an accessibility tool on any pages I have made changes to and fixed any issues found
~* [ ] I have notified the Interaction Designer of any content changes so that appropriate screenshots/flow diagram changes can be made~
[ ] The product team have tested these changes

Add country to LPAExtesion test


add Vlad Korovin

@KorovinVA You were granted with write access to the repository, This allows you to assign yourself to one of the issues. Please revise our contribution rules before submitting a pull request.