clang-tidy support followup (actually error travis job with warnings/errors)

As mentioned at https://github.com/mapbox/node-cpp-skel/pull/64#discussion_r133848127 and https://github.com/mapbox/node-cpp-skel/pull/64#discussion_r133848275 when I set up the make tidy target I was unable to find a way to have clang-tidy return non-zero on warnings/errors.
What this means is that the clang-tidy job on travis will only fail when clang tidy notices problems AND fixes them. Then it will leave behind a git diff and the presence of that diff will trigger the job to fail.
But because clang-tidy cannot auto-fix all problems their is a large class of warnings/errors that do not fail the script and therefore may be present but not failing the travis job.
The todo here is to figure out if the usage of clang-tidy can be fixed (are we doing something wrong, forgetting some flag?) to make clang-tidy return a non-zero error code when it encounters warnings/errors.
/cc @GretaCB who saw this recently with shaver - locally @GretaCB saw a number of pretty important clang-tidy warnings that were silently passing on travis since they were not causing the job to fail.

@springmeyer - I believe this is the bug you are referring to. You can see the last comment from a couple months ago says "Should be fixed in r329579" where r329579 refers to a code revision which you can see here. The fix is to have LLVM return a non-zero exit code when it sees a compiler error.
Since this fix is not part of LLVM 6.0.0  we are still coming across this issue. We can test the fix by pointing node-cpp-skel with a dev version of LLVM and its latest changes.

After taking a closer look at the LLVM code change, I see that our issue will not be fixed because we use the -fix-errors flag. And you can see here that if FixErrors is set, clang-tidy will return zero. You can also take a look at that TODO (my vote is for b).
  if (FoundErrors) {
    // TODO: Figure out when zero exit code should be used with -fix-errors:
    //   a. when a fix has been applied for an error
    //   b. when a fix has been applied for all errors
    //   c. some other condition.
    // For now always returning zero when -fix-errors is used.
    if (FixErrors)
      return 0;
    if (!Quiet)
      llvm::errs() << "Found compiler error(s).\n";
    return 1;
  }

Here's a solution proposal until/if LLVM changes clang-tidy so that a zero return code is only returned if all errors have been fixed:
We can pipe output from cmake to a file and then scan it for strings indicating an error.

Looks like we actually pass -fix not -fix-errors: https://github.com/mapbox/node-cpp-skel/blob/master/scripts/clang-tidy.sh#L47 so perhaps the issue is fixed in llvm-dev. We can test that pretty easily but I want to double-check my understanding of the problem first. I think the issue isn't that there should be a diff when this is run in Travis but that we should have a way of detecting and notifying clang-tidy errors that were not automatically fixed. Does this sound correct?
http://clang.llvm.org/extra/clang-tidy/ docs:
  -fix                          -
                                  Apply suggested fixes. Without -fix-errors
                                  clang-tidy will bail out if any compilation
                                  errors were found.
  -fix-errors                   -
                                  Apply suggested fixes even if compilation
                                  errors were found. If compiler errors have
                                  attached fix-its, clang-tidy will apply them as
                                  well.

@allieoop wow, incredible research and digging. Your findings sounds really promising. Overall I think what we ideally want is:

clang-tidy to return non-zero if there are any errors (either fixable or not)
we want to capture the clang-tidy return code and then dump some helpful output (including any diffs) before exiting the overall clang-tidy.sh script with that same error code that run-clang-tidy.py
this way we'll ensure that if any clang tidy warnings or errors (even those automatically fixable) are hit then travis will fail. Then the developer will know that they need to run make tidy locally and commit any changes needed to fix things.

Note: the fact that the current script uses the presence of a diff to decide on return code I consider a workaround that we do not need to keep (Although spitting out a diff still feels valuable).
So it seems like next steps are:

figure out what version of clang-tidy/llvm the fix you found landed in
figure out if we can upgrade to that version (is it released yet?)
start capturing the return code of the run-clang-tidy.py command here using the same bash approach that we do to capture and handle the return code from make here.


Crash when using simd with cargo wasi

Hello!
I am trying to test a library with
RUSTFLAGS="-C target-feature=+simd128" cargo +nightly wasi test --release -- --nocapture

But it crashes on runtime without any diagnostic info:
https://github.com/ozgrakkurt/sbbf-rs/actions/runs/5363148176/jobs/9730524096?pr=4
It works without simd so I am thinking it is because of simd. I installed wasmtime and cargo-wasi via the recommended commands:

curl https://wasmtime.dev/install.sh -sSf | bash
cargo install cargo-wasi

and the file that uses simd intrinsics is here:
https://github.com/ozgrakkurt/sbbf-rs/blob/4648a9c72ccf51c68ed8ee3dd610a0fa7f2b69de/src/arch/wasm.rs
Not sure if I am misusing something related to simd or if this is a bug

seems like the crash only happens when I run it locally on my aarch64 pc, works on a PC with avx2 (github actions)


Download images with PQ import

I got an email to support saying something like. It it possible to just download images when caches are imported from GPX and not refresh all cache details.
I made a PQs myself to test this thing out.
If image is attached to a cache (like spoiler) there is no reference in GPX
If image is displayed in cache there is a reference in GPX and we ca download it (with some yet unimplementef feature)
What do you think?

Inline-images should be downloaded already when displaying the description (we have a loader-task for that).

That is a problem. Why I load GPX c:geo has no images. And when I go to a Germany :) I have no internet connection and no images. A loader task that stores the images to SD card should be implemented for (all, selected) caches in stored list.

To download missing spoilers/images for a selection of stored caches sounds like a pretty useful feature. Saves bandwidth and time and allows more users to use c:geo in a comfortable fashion while still complying to their interpretation of groundspeaks terms of use.

There have already been similar requests with #52 and #810. Would be good to consolidate the 3 issues and to only have 1 remaining issue open.


Add AWS Elastic-Beanstalk configuration file

Basically add support for putting UpLily on AWS Elastic-Beanstalk instances.
Probably mostly a documentation issue.

Done
Work was done in branch uplily-3


[ 1529.661279]  remoteproc0#vdev0buffer: assigned reserved memory node vdev0buffer0@bfff2000
[ 1529.718327] virtio_rpmsg_bus virtio0: rpmsg host is online
[ 1529.718981] virtio_rpmsg_bus virtio0: creating channel rpmsg-tty addr 0x400
[ 1529.722666]  remoteproc0#vdev0buffer: registered virtio0 (type 7)
[ 1529.730217] virtio_rpmsg_bus virtio0: creating channel rpmsg-client-sample addr 0x401
[ 1529.741235] virtio_rpmsg_bus virtio0: creating channel rpmsg-tty addr 0x402
[ 1529.741946] remoteproc remoteproc0: remote processor imx-rproc is now up

Now I have 2 /dev/ttyRPMSG0 and /dev/ttyRPMSG1 showing up if you are using the latest openamp_rsc_table sample that enables the SHELL and SHELL_RPMSG_BACKEND.
To use the shell you can use your TTY terminal of choice like minicom:
su root
minicom -D /dev/ttyRPMSG0

Then press CTRL+C a few times to trigger the shell prompt:
You should see ipc:~$, then you can type kernel version to see that you are currently running Zephyr on the M4 !
Welcome to minicom 2.8

OPTIONS: I18n
Compiled on Jan  1 2021, 17:45:55.
Port /dev/ttyRPMSG0, 06:09:54

Press CTRL-A Z for help on special keys

ipc:~$ kernel version
Zephyr version 3.6.99
ipc:~$

You can also use /dev/ttyRPMSG1 to see the regular TTY echo of the sample when you send data to the tty
Welcome to minicom 2.8

OPTIONS: I18n
Compiled on Jan  1 2021, 17:45:55.
Port /dev/ttyRPMSG1, 06:10:44

Press CTRL-A Z for help on special keys

TTY 0x0402: eTTY 0x0402: eTTY 0x0402: eTTY 0x0402: e

Be aware that the sample uses approximately 48kB of CODE memory so I think you must run the code from OCRAM, but RAM usage is approx 20kB and can fit on any of TCM/OCRAM_S/DDR
[171/171] Linking C executable zephyr/zephyr_openamp_rsc_table.elf
Memory region         Used Size  Region Size  %age Used
 ROMSTART_REGION:         572 B         1 KB     55.86%
           FLASH:       48304 B       128 KB     36.85%

I hope this helps.

@jlh-makeen Tks. But I don't want open /dev/ttyRPMSG0 in minicom or picocom. I want:

open Linux a7 side in picocom usb0
open Zephyr m4 side in minicom usb1
Execute rproc sysfs in linux and in linux -> echo "test" > /dev/ttyRPMSG0.
At that moment I would see the word test next to the Zephyr (in usb1 minicom window)

@jlh-makeen Tks. But I don't want open /dev/ttyRPMSG0 in minicom or picocom. I want:

open Linux a7 side in picocom usb0
open Zephyr m4 side in minicom usb1
Execute rproc sysfs in linux and in linux -> echo "test" > /dev/ttyRPMSG0.
At that moment I would see the word test next to the Zephyr (in usb1 minicom window)
Note: 1) All that remains to be done is resolve this issue at the moment 4)
I try LOG_INF("TTY 0x%04x: ", tty_ept.addr); Result is: TTY 0x401
Nothing to  tty_ept.addr, Why

if (tty_msg.len) {
            LOG_INF("ipc_service_open_instance() 14 failure");
            snprintf(tx_buff, 13, "TTY 0x%04x: ", tty_ept.addr);
            memcpy(&tx_buff[12], tty_msg.data, tty_msg.len);
            LOG_INF("ipc_service_open_instance() 15 failure");
            rpmsg_send(&tty_ept, tx_buff, tty_msg.len + 13);
            rpmsg_release_rx_buffer(&tty_ept, tty_msg.data);
            LOG_INF("ipc_service_open_instance() 16 failure");
        }

https://developer.nordicsemi.com/nRF_Connect_SDK/doc/2.1.3/zephyr/samples/subsys/ipc/openamp_rsc_table/README.html

Congrats !
I can see in your screenshot here that the Zephyr TTY side has successfully received the message from the Linux and sent the Echo back to Linux ! See the TTY 0x0401: Hello Zephyr so it is working perfectly now !
You don't see anything from your LOG_INF because you have not enabled CONFIG_LOG=y.
Try to add a printk statement instead, like this:
if (tty_msg.len) {
  printk("Linux rx message %*.s\n", tty_msg.len, tty_msg.data);
  snprintf(tx_buff, 13, "TTY 0x%04x: ", tty_ept.addr);
  memcpy(&tx_buff[12], tty_msg.data, tty_msg.len);
  rpmsg_send(&tty_ept, tx_buff, tty_msg.len + 13);
  rpmsg_release_rx_buffer(&tty_ept, tty_msg.data);
}

When you receive a message from Linux, you'll the message content appear in the Zephyr console.
Now it is implementation details you will have to care about by yourself, now that /dev/ttyRPMSG shows in Linux and the RPMSG sample works on your platform I think we should close the issue as it's resolved.
If you encounter application specific requests, feel free to report to the documentation or open a new issue for the new subject.

@jlh-makeen Unfortunately, I still couldn't get echo test > /dev/ttyRPMSG0 to appear in the other window
I am one of the first interested parties to close this topic.
I thought that adding the printk you suggested would solve it (it was the only thing I hadn't tried yet). But unfortunately not yet

if (tty_msg.len) {
            printk("Linux rx message %*.s\n", tty_msg.len, tty_msg.data);
            LOG_INF("ipc_service_open_instance() 14 failure");
            snprintf(tx_buff, 13, "TTY 0x%04x: ", tty_ept.addr);
            memcpy(&tx_buff[12], tty_msg.data, tty_msg.len);
            LOG_INF("ipc_service_open_instance() 15 failure");
            rpmsg_send(&tty_ept, tx_buff, tty_msg.len + 13);
            rpmsg_release_rx_buffer(&tty_ept, tty_msg.data);
            LOG_INF("ipc_service_open_instance() 16 failure");
        }

prj.conf

CONFIG_KERNEL_BIN_NAME="zephyr_openamp_rsc_table"
CONFIG_PRINTK=y
CONFIG_LOG=y
CONFIG_LOG_DEFAULT_LEVEL=0
CONFIG_LOG_MODE_MINIMAL=y
CONFIG_IPM=y
CONFIG_MAIN_STACK_SIZE=1024
CONFIG_HEAP_MEM_POOL_SIZE=1024
CONFIG_OPENAMP=y
CONFIG_OPENAMP_RSC_TABLE_NUM_RPMSG_BUFF=32
CONFIG_OPENAMP_RSC_TABLE=y
CONFIG_OPENAMP_MASTER=n
CONFIG_PLATFORM_SPECIFIC_INIT=n
#CONFIG_NEWLIB_LIBC_FLOAT_PRINTF=y

# CONFIG_LOG=y
# CONFIG_LOG_BACKEND_UART=y
# CONFIG_SERIAL=y

# CONFIG_IPC_SERVICE=ys
# CONFIG_PRINTK=y
# CONFIG_LOG=y # required to allocate virtqueues
# #CONFIG_HEAP_MEM_POOL_SIZE=2048
# CONFIG_IPC_SERVICE_LOG_LEVEL_INF=y

pico_pi_m4.conf
CONFIG_UART_CONSOLE=y
CONFIG_SERIAL=y
CONFIG_UART_INTERRUPT_DRIVEN=y
CONFIG_CONSOLE=y
CONFIG_LOG_PRINTK=y
CONFIG_IPM_IMX_MAX_DATA_SIZE_16=n
CONFIG_IPM_IMX_MAX_DATA_SIZE_4=y
CONFIG_OPENAMP_WITH_DCACHE=y

# CONFIG_IPM=y--> Interrupt-based inter-processor mailboxes
# CONFIG_IPM_IMX=y--> Your IPM driver here for Renesas R-Car
# CONFIG_OPENAMP=y--> Enable OpenAMP IPC library
# CONFIG_OPENAMP_SLAVE=y --> Virtqueue are initialized by the host (Linux)
# CONFIG_OPENAMP_RSC_TABLE=y

@jlh-makeen

open Linux a7 side in picocom usb0
open Zephyr m4 side in minicom usb1
Execute rproc sysfs in linux and in linux write echo "test" > /dev/ttyRPMSG0.
Please let me know if you can see the message test or openamp_rsc_table: platform_ipm_callback:
platform_ipm_callback: msg received from mb 0 in m4 side window

It is weird that printk doesn't display the message can you print the size of the message too ?
printk("Linux rx message [%d] %*.s\n", tty_msg.len, tty_msg.len, tty_msg.data);

@jlh-makeen
Linux rx message [5]

@jlh-makeen ???????

@jlh-makeen???????

@jlh-makeen???????

@jlh-makeen???????

@jlh-makeen
Linux rx message [5]

You succesfully received the "test\n" string so it is working, the length of the message is 5 :)
You don't see the message because I made a mistake with the printk:
I swapped the .* in the printk statement.
printk("Linux rx message [%d] %.*s\n", tty_msg.len, tty_msg.len, tty_msg.data);
See the test here:

@jlh-makeen Tks. With  *printk("Linux rx message [%d] %.s\n", tty_msg.len, tty_msg.len, tty_msg.data); (Without mistakes) I have sucess
Other things I changed (in main remote.c) to have the messages shown in the screenshot below:

LOG_MODULE_REGISTER(openamp_rsc_table, LOG_LEVEL_DBG); to LOG_MODULE_REGISTER(openamp_rsc_table, LOG_LEVEL_INF);

All LOG_DBG from main_remote.c to LOG_INF

Now I have I: mailbox_notify: msg received  and  I: platform_ipm_callback: msg received from mb 0   and  I: mailbox_notify: msg received

https://www.youtube.com/watch?v=V06RC2G_3M8

https://www.youtube.com/watch?v=V06RC2G_3M8

Excellent, here we are finally 👍
Regarding the LOG framework, the default level is INF that's why you had to change the module default level, but you could also have changed the default log level in prj.conf:
#set default level to 4
CONFIG_LOG_DEFAULT_LEVEL=4

Refer to the logging doc:
https://docs.zephyrproject.org/latest/services/logging/index.html
https://docs.zephyrproject.org/latest/kconfig.html#CONFIG_LOG_DEFAULT_LEVEL


Google and others ban keylogger mails

First of all thank you for this awesome project.You are great!
Gmail and other mail server s ban these smtp requests.You use other protocols like HTTP(by using PHP files on the server side)and FTP
Also many people does not insert their passwords every time as they can save passwords on the Web browser.
It can be more better than this if you add some new features like:
Remote control
Taking screenshot
Shellcode execution
CMD commands
File and folder lister
Uploaing and downloading files
And....
I wish you to be successful in your projects.

@Buzgus You don't want to a Keylogger, you want to a C&C. Please stay tuned on github.com/UndeadSec
New tool to do what you want to, are coming from UndeadSec soon.
Thanks,
Alisson Moretto (4w4k3, UndeadSec)


WIP: Update jmx-exporter to 0.3.1

This is the latest release.
Not yet tested- to do so we need to find a Java application (ideally a minimal one that could be used in the molecule test) that exports jmx metrics.

The closest we have is probably apacheds. e.g. with this patch:
apacheds-docker jamoore$ git diff
diff --git a/instance/wrapper-instance.conf b/instance/wrapper-instance.conf
index e9d4610..1afa6d8 100644
--- a/instance/wrapper-instance.conf
+++ b/instance/wrapper-instance.conf
@@ -35,6 +35,13 @@ wrapper.java.additional.2=-Dapacheds.var.dir=%INSTANCE_DIRECTORY%
 wrapper.java.additional.3=-Dapacheds.log.dir=%INSTANCE_DIRECTORY%/log
 wrapper.java.additional.4=-Dapacheds.run.dir=%INSTANCE_DIRECTORY%/run
 wrapper.java.additional.5=-Dapacheds.instance=%INSTANCE%
+wrapper.java.additional.5=-Djava.rmi.server.hostname=<IP_ADDRESS>
+wrapper.java.additional.6=-Dcom.sun.management.jmxremote
+wrapper.java.additional.7=-Dcom.sun.management.jmxremote.port=9001
+wrapper.java.additional.8=-Dcom.sun.management.jmxremote.rmi.port=9001
+wrapper.java.additional.9=-Dcom.sun.management.jmxremote.local.only=false
+wrapper.java.additional.10=-Dcom.sun.management.jmxremote.authenticate=false
+wrapper.java.additional.11=-Dcom.sun.management.jmxremote.ssl=false

then docker run -p 9001:9001 ldap can be monitored externally. We could probably do the same with an official elasticsearch image which could be long-term useful.
There are also a number of simple projects online that we could choose:

https://github.com/cstroe/java-jmx-in-docker-sample-app
https://github.com/nolexa/docker-jmx-demo
https://gist.github.com/sbilinski/24809966114a6b5089c2ada53eb0b4b7/revisions

if you'd rather something lighter weight.

Thanks, didn't realise it's included by default in java apps.

Thanks, didn't realise it's included by default in java apps.

JMX? Yeah, it's a Java core library, but there are remoting libraries like mx4j to simplify all the port management (i.e. not needing the 6+ com.sun.management.jmxremote properties).


Changed postman link to the correct postman collection

For the Committer

[ ] I made sure that the site looks great and functions perfectly live
[ ] I ran splell check
[ ] I'm ready for these changes to be made live

For the Reviewer
General Review

[ ] All changes/updates requested were intentionally changed or added (no extraneous file or partial updates)
[ ] The live rendered page behaves and looks like intended.
[ ] All links work as intended. (click every link to make sure that it takes the user to the expected place).
[ ] The markdown was rendered to HTML as intended. (Tables look right, code samples are gated properly).
[ ] Any style or CSS changes are tested on multiple different pages to ensure nothing unexpected broke or changed.
[ ] I proof-read the live site (gitbook serve) and there are no oblivious splelling or grammer misteaks.

Gitbook Specific

[ ] Any new documentation pages have been added to the SUMMARY.md file so they are rendered to HTML.
[ ] Any links to other pages within this documentation use relative links ([read more about ...](guides/voice/voicemail.md)).
[ ] Gitbook can install and build the documentation (gitbook install & gitbook build)

Code Specific

[ ] All code has been tested against the live API.
[ ] All code can be run without throwing errors or new warnings.
[ ] All code is formatted correctly and consistently (spaces, tabs).
[ ] All code is legible and idiomatic to the language.
[ ] All code uses sensical method, function, and variable names.
[ ] All code samples use the appropriate syntax highlighting.
[ ] Any examples re-use same phone numbers, uuids, variable names, etc... throughout (IE don't have something like {from: '+19191231234', to: '+19191231234'} unless it's meant to show the same phone number calling/texting itself ).

TL;DR

[ ] I did these things
[ ] I'm ready for these changes to be made live

 Usabilla Feedback Item - mistake in the availableNumbers section of the Bandwidth Postman collection

Preview Changes at:
http://bw-apdocs-fix-postman-bug.s3-website-us-east-1.amazonaws.com/


Intro / Tutorial

Description
Adds a basic tutorial mode that teaches you basic button presses, and shows how to open the quick settings menu and exit a mode. The tutorial automatically starts on first boot, and can be accessed through the main menu at any time.
Screenshots:

Test Instructions
Start the swadge, go through the tutorial, try and break it!
Ticket Links
#224
Readiness Checklist

[x] I have run make format to format the changes
[x] I have compiled the firmware and the changes have no warnings
[x] I have compiled the emulator and the changes have no warnings
[x] I have run make cppcheck and checked that cppcheck_result.txt has no warnings for the changes
[x] I have added doxygen comments to any code used by more than one Swadge mode. This includes /*! \file comments with Design Philosophy, Usage, and Example sections for new headers.
[x] I have run make docs and checked that doxy_warnings.txt has no warnings for the new code

Immediate nitpick, the B and A buttons should be slanted so B is lower than A.

Overall, sweet! Feedback (some more nitpicky than others)
* The B and A buttons should be slanted so B is lower than A.

Oops! That's what I get for laying this out without looking at an actual swadge.

* The progress bar seems to be gone when exiting. Can we get that back to be consistent with all other modes?

Ah yeah, I should add that.

* Titles should be shortened to see the tips of the blue background

Done!

* This will eventually be expanded to cover all hardware features (touch, microphone, speaker), yeah?

Yup, that's the idea. Buttons are just the easiest to start with but I should work on the touchpad next.

Squash and merge at your leisure!

Alright, I think those are the last minor fixes and I'll merge once the build finishes


(GH-455)(GH-432) Sources updates / Chocolatey 0.10.8 updates

Related to #432
Closes #455
This includes some changes that will only work with Chocolatey v0.10.8.

@RichiCoder1 so I'm seeing some weird behavior where a boolean is flagged true, but once it comes over from the subprocess to ChocolateyService for update, it resets to false. This is what I think is why the new settings for sources are not getting applied. I haven't dug in too much, but does that ring a bell at all for you?

This will fail the build until there is a Chocolatey v0.10.8.

Added Chocolatey 0.10.8 and some other fixes to appease the builds. All green!!

@gep13 can you take a closer look at this?

I'm happy to squash/rebase prior to merge as well.


Attribute name checks prevent from using Vue

Hi,
I'd like to use DjangoCMS and Vue along side to deal with events being handled by vue in my page using the "v-on:click" attribute. However DjangoCMS refuses to add such an attribute. Why are colon rejected? Is there any correct way of doing that?
Thanks,
Dom

Hi @domk! Thanks for pointing this out. Can you give some more details? Django CMS is pretty frontend agnostic. So where exactly are you trying to add v-on:click and how does it get rejected?

Hi @fsbraun!
In my base template, I've added the Vue package:
 <script<EMAIL_ADDRESS>
I have some vue initialization code:
    <script>
      const { createApp } = Vue;

      createApp({
        delimiters: ['{(', ')}'],    /* To not mess up with Django templating engine */
        data() {
          return {
            storyVisible: false,
          }
        },
        methods: {
          toggleStory: function (event) {
             this.storyVisible = !this.storyVisible;
          }
        }
      }).mount('#app');
    </script>

Then, I can add a v-if="storyVisible to the tag that will be either displayed or hidden. To make the switch I would like to set the v-on:click attribute to toggleStory on a button. That's where I get the error message:
"v-on:click" is not a valid key. Keys must start with at least one letter and consist only of the letters, numbers, underscores or hyphens.

How do you add v-on:click to that button? Is that in a template or in the edit frontend? If so, which plugin are you using?

Hm. Still, you might want to consider moving to djangocms-frontend. There certainly you can add the vue attributes. djangocms-bootstrap4 will not fully work with the upcoming django CMS 4.


Publish kubernetes-ingress-controller Docker image on Amazon ECR Public Gallery

Is there an existing issue for this?

[X] I have searched the existing issues

Problem Statement
The Docker image for Kong Ingress Controller for Kubernetes  is currently available from Docker Hub.
However, Docker has recently made Docker Official Images, including library/kong, available on Amazon ECR Public.
Amazon ECR Public offers a convenient and secure way to pull images in AWS environments, and having the KIC image hosted on Amazon ECR Public would present several advantages (lower latency, having all resources in the same failure zone etc.) to Amazon customers running Kong and KIC on Amazon EKS.
Please consider publishing the KIC image on Amazon ECR Public.
Proposed Solution
Publish kubernetes-ingress-controller images on Amazon ECR Public.
Additional information
No response
Acceptance Criteria

[ ] kubernetes-ingress-controller images are available from Amazon ECR Public.

hi @pvalkone, we've begun the initial work to have the docker images be available on ECR. Today, they are currently available on DockerHub, we are currently in the process to also have them created on Amazon ECR.

Hi @scseanchow, any updates on this?

Happy New Year, @scseanchow! Have you made any progress on this?


pipelines-api stuck in CrashLoopBackOff

We're deploy and bootstrapping to a k8s cluster on AWS using Juju 2.7.4. Then I'm deploying kubeflow with juju deploy cs:bundle/kubeflow. All units go to 'active' according to Juju, but the pipeline-api App stays in 'waiting' and kubectl shows an issue with the pipeline-api pod. Specifically a failure to create the Minio bucket.
I'm using 8CPU, 16GB memory, 100GB storage for my 3 kubernetes-workers.
Here's some output from kubectl:
ubuntu@aws-cpe:~$ kubectl describe pod pipelines-api-5bd7b89ff8-6b4x6 --namespace controller-foundations-k8s
Name:         pipelines-api-5bd7b89ff8-6b4x6
Namespace:    controller-foundations-k8s
Priority:     0
Node:         ip-172-31-46-57.ec2.internal/<IP_ADDRESS>
Start Time:   Thu, 19 Mar 2020 17:00:41 +0000
Labels:       juju-app=pipelines-api
              pod-template-hash=5bd7b89ff8
Annotations:  apparmor.security.beta.kubernetes.io/pod: runtime/default
              juju.io/controller: 1763004b-11b9-453c-84d5-35efe0dbbc5a
              juju.io/model: 96868d80-461e-4110-862f-2803a36513d6
              juju.io/unit: pipelines-api/0
              seccomp.security.beta.kubernetes.io/pod: docker/default
Status:       Running
IP:           <IP_ADDRESS>
IPs:
  IP:           <IP_ADDRESS>
Controlled By:  ReplicaSet/pipelines-api-5bd7b89ff8
Init Containers:
  juju-pod-init:
    Container ID:  containerd://a841de81fb7cbdad37f3244e5057849f3225d8e666455c9e45e01b961a32635d
    Image:         jujusolutions/jujud-operator:2.7.4
    Image ID:      docker.io/jujusolutions/jujud-operator@sha256:aaa1920ddf1eeddf4bf1a2f5bd9cdbc452ad693393ef3dea0ec863ba92927167
    Port:          <none>
    Host Port:     <none>
    Command:
      /bin/sh
    Args:
      -c
      export JUJU_DATA_DIR=/var/lib/juju
      export JUJU_TOOLS_DIR=$JUJU_DATA_DIR/tools

      mkdir -p $JUJU_TOOLS_DIR
      cp /opt/jujud $JUJU_TOOLS_DIR/jujud
      initCmd=$($JUJU_TOOLS_DIR/jujud help commands | grep caas-unit-init)
      if test -n "$initCmd"; then
      $JUJU_TOOLS_DIR/jujud caas-unit-init --debug --wait;
      else
      exit 0
      fi

    State:          Terminated
      Reason:       Completed
      Exit Code:    0
      Started:      Thu, 19 Mar 2020 17:00:44 +0000
      Finished:     Thu, 19 Mar 2020 17:01:15 +0000
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/lib/juju from juju-data-dir (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from pipelines-api-token-m2qw2 (ro)
Containers:
  pipelines-api:
    Container ID:   containerd://ae998843e52a3942cd07f0b4d6ac54dadb4fb3f6c520e8d8c41bafe55c6e3433
    Image:          registry.jujucharms.com/kubeflow-charmers/pipelines-api/oci-image@sha256:9ce417ed6e5a4c2ba2804d4a2694542b8a0cfc50e7a2cc9a0e08053cd06a41d8
    Image ID:       registry.jujucharms.com/kubeflow-charmers/pipelines-api/oci-image@sha256:9ce417ed6e5a4c2ba2804d4a2694542b8a0cfc50e7a2cc9a0e08053cd06a41d8
    Ports:          8887/TCP, 8888/TCP
    Host Ports:     0/TCP, 0/TCP
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Error
      Exit Code:    255
      Started:      Thu, 19 Mar 2020 17:08:30 +0000
      Finished:     Thu, 19 Mar 2020 17:08:30 +0000
    Ready:          False
    Restart Count:  6
    Environment:
      MINIO_SERVICE_SERVICE_HOST:  minio
      MINIO_SERVICE_SERVICE_PORT:  9000
      MYSQL_SERVICE_HOST:          <IP_ADDRESS>
      MYSQL_SERVICE_PORT:          3306
      POD_NAMESPACE:               controller
    Mounts:
      /config from pipelines-api-config-config (rw)
      /samples from pipelines-api-samples-config (rw)
      /usr/bin/juju-run from juju-data-dir (rw,path="tools/jujud")
      /var/lib/juju from juju-data-dir (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from pipelines-api-token-m2qw2 (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  juju-data-dir:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
  pipelines-api-config-config:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      pipelines-api-config-config
    Optional:  false
  pipelines-api-samples-config:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      pipelines-api-samples-config
    Optional:  false
  pipelines-api-token-m2qw2:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  pipelines-api-token-m2qw2
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason     Age                    From                                   Message
  ----     ------     ----                   ----                                   -------
  Normal   Scheduled  <unknown>              default-scheduler                      Successfully assigned controller-foundations-k8s/pipelines-api-5bd7b89ff8-6b4x6 to ip-172-31-46-57.ec2.internal
  Normal   Pulled     10m                    kubelet, ip-172-31-46-57.ec2.internal  Container image "jujusolutions/jujud-operator:2.7.4" already present on machine
  Normal   Created    10m                    kubelet, ip-172-31-46-57.ec2.internal  Created container juju-pod-init
  Normal   Started    10m                    kubelet, ip-172-31-46-57.ec2.internal  Started container juju-pod-init
  Normal   Pulling    10m                    kubelet, ip-172-31-46-57.ec2.internal  Pulling image "registry.jujucharms.com/kubeflow-charmers/pipelines-api/oci-image@sha256:9ce417ed6e5a4c2ba2804d4a2694542b8a0cfc50e7a2cc9a0e08053cd06a41d8"
  Normal   Pulled     8m55s                  kubelet, ip-172-31-46-57.ec2.internal  Successfully pulled image "registry.jujucharms.com/kubeflow-charmers/pipelines-api/oci-image@sha256:9ce417ed6e5a4c2ba2804d4a2694542b8a0cfc50e7a2cc9a0e08053cd06a41d8"
  Normal   Created    8m (x4 over 8m55s)     kubelet, ip-172-31-46-57.ec2.internal  Created container pipelines-api
  Normal   Started    7m59s (x4 over 8m55s)  kubelet, ip-172-31-46-57.ec2.internal  Started container pipelines-api
  Normal   Pulled     5m42s (x5 over 8m53s)  kubelet, ip-172-31-46-57.ec2.internal  Container image "registry.jujucharms.com/kubeflow-charmers/pipelines-api/oci-image@sha256:9ce417ed6e5a4c2ba2804d4a2694542b8a0cfc50e7a2cc9a0e08053cd06a41d8" already present on machine
  Warning  BackOff    33s (x40 over 8m52s)   kubelet, ip-172-31-46-57.ec2.internal  Back-off restarting failed container

ubuntu@aws-cpe:~$ kubectl logs -p pipelines-api-5bd7b89ff8-6b4x6 --namespace controller-foundations-k8s
I0319 17:18:40.236397       6 client_manager.go:123] Initializing client manager
[mysql] 2020/03/19 17:18:40 packets.go:427: busy buffer
[mysql] 2020/03/19 17:18:40 packets.go:408: busy buffer
E0319 17:18:40.462220       6 default_experiment_store.go:73] Failed to commit transaction to initialize default experiment table
[mysql] 2020/03/19 17:18:40 packets.go:427: busy buffer
[mysql] 2020/03/19 17:18:40 packets.go:408: busy buffer
E0319 17:18:40.468786       6 db_status_store.go:71] Failed to commit transaction to initialize database status table
[mysql] 2020/03/19 17:18:40 packets.go:427: busy buffer
[mysql] 2020/03/19 17:18:40 packets.go:408: busy buffer
E0319 17:18:40.474776       6 default_experiment_store.go:73] Failed to commit transaction to initialize default experiment table
F0319 17:18:40.483332       6 client_manager.go:291] Failed to create Minio bucket.  You'll need to either use the script from this repo, or manually run the same steps yourself:
If you're using the stable kubeflow bundle:
https://github.com/juju-solutions/bundle-kubeflow/blob/e9a2775/scripts/cli.py
If you're using the edge kubeflow bundle:
https://github.com/juju-solutions/bundle-kubeflow/blob/master/scripts/cli.py

I'm manually running the same steps and getting the same issue. Here's exactly what I'm doing:
juju add-model kubeflow
juju deploy -m kubeflow kubeflow --channel stable
juju wait -m kubeflow
pub_addr = Public address of kubernetes-worker/0
juju config -m kubeflow ambassador juju-external-hostname={pub_addr}
juju expose -m kubeflow ambassador

Then I'm applying an Ingress:
# https://bugs.launchpad.net/juju/+bug/1849725
# create ambassador_ingress.yaml
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
  name: ambassador
  namespace: kubeflow
spec:
  backend:
    serviceName: ingresssvc
    servicePort: 80
  tls:
  - hosts:
    - {pub_addr}
    secretName: ambassador-tls

kubectl apply -n kubeflow -f ambassador_ingress.yaml

I'm curious if it is related to this issue. Thoughts?
https://github.com/kubeflow/pipelines/issues/3098

The only thing I see that's missing is that you'll need to add an overlay that looks like this, and pass it to the juju deploy command:
https://github.com/juju-solutions/bundle-kubeflow/blob/e9a2775/scripts/cli.py#L220-L228
You'll need to fill in the random values yourself (any random value should work)

That did it. Thanks again for the help! Closing the issue.


Feature Request: Random albums view

Hello! First of all I'd like to thank for this excellent streaming server - finally some proper design!!!
One feature I really miss from other solutions is the random album feature. Similar to album view, but with a randomized order rather than alphabetical order. This makes it easy for people who have large libraries with some unlistened music to discover new things and perhaps some old forgotten records!
I could possibly try coding this myself but I have no experience with either Vue or Laravel... Perhaps if I could be pointed in the right direction?
Thanks!

Hey, thanks for contributing to Koel! To save time for both of us, please make sure these checkboxes are checked before submitting the issue:

[x] You have read and followed closely the Wiki, Upgrade Guide, as well as Troubleshooting
[x] The issue has not been reported before
[x] This is not a "how to install on Windows" or "why is my npm messed up" question
[x] You're a cool person

All checked? Now also make sure your issue

[x] Is associated with a version. Or better yet, a commit.
[x] Is as detailed as possible (ahem... OS, browser, steps to reproduce, maybe?)
[x] Includes the error output if it's a bug/error report ("Whoops!" is not very helpful, you know)
[x] Is in English, 因为我不说中文。

One feature on the list is smart playlists, which will solve this problem. Closing for now.


fix etag propagation in ocis driver

We now use a new synctime timestamp instead of trying to read the mtime to avoid race conditions when the stat request happens too quickly.
fixes https://github.com/owncloud/product/issues/249

@phil-davis @individual-it with this we should be able to runhttps://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavEtagPropagation1/moveFileFolder.feature

Note: we do not see test scenarios starting to pass here, because the core ownCloud10 API tests are only running with OWNCLOUD storage.
They also run with OCIS storage in owncloud/ocis repo - so tests should start passing there, after this code is applied.
I do plan to run the core ownCloud10 API tests with OCIS storage here in cs3org/reva - I just haven't sorted it out yet.


Publish new branch from VS Code with name @JA/feature1 with error

VSCode Version: 1.30.1
OS Version: Windows 10 - build 1803

Steps to Reproduce:

Create new branch "git checkout -b @JA/feature1"
VS Code display branch like below

Click on publish icon, which spins and does nothing and produces this log.

git push -u origin refs/heads/@JA/feature1
To https://xxxxxxx.visualstudio.com/MyProject/_git/MyProject

[new branch]      @JA/feature1 -> @JA/feature1

git status -z -u
git symbolic-ref --short HEAD
git rev-parse --symbolic-full-name @JA/feature1
git rev-parse refs/heads/@JA/feature1
git rev-parse --symbolic-full-name refs/heads/@JA/feature1@{u}
fatal: no such branch: 'refs/heads/@JA/feature1'
git for-each-ref --format %(refname) %(objectname) --sort -committerdate
git remote --verbose

Issues:

Publish works. I can see my branch on server repo but I also get above error. After publish icon remains same.

Icon notifications stop working. I don't see any indication if there is any pending commit to push or pull latest changes.

I think it was working fine until 1.28 or 1.29
Note:
If I create branch with name like "feature1", everything works as expected.

Does this issue occur when all extensions are disabled?: Yes

I have reproed this locally and tracked down the issue.
git.ts:getBranch receives the branch string, @test\test, as an argument, name.
The first thing it does it compare the branch name to 'HEAD', else tests if the name of the branch begins with an '@' using the regex } else if (/^@/.test(name)) {.
In the case of the branch beginning with an '@', it then replaces the name argument to the function with the symbolic full name. resolved by running git rev-parse --symbolic-full-name @test/test.  This resolves to refs/heads/@test/test.  To then compute the rest of the branch information, the upstream/downstream changes, the code then runs git rev-parse --symbolic-full-name <branch>@{u} which in the case of a branch beginning with '@', fails to resolve.  The code catches the git exception, and throws which the calling code treats as if the upstream doesn't exist, hence showing the publish icon still, even though the branch DOES have an upstream and should show the sync icon.
If I remove the initial regex test /^@/.test(name), the code then works correctly, in this case.
This behavior was changed by @joaomoreno in commit https://github.com/Microsoft/vscode/commit/2c0167ef9906e7ee765f99e3b1244de2e56bd4e8.
The simplest workaround is to not use a branch beginning with '@'.  As for a fix, I can't see the context on why the change was made, the description says 'git: getBranch should resolve @ name syntax', but I'm not sure what '@ name syntax' is.  Reverting this commit would fix this issue, but presumably there was another issue somewhere else which warranted the change in the first place. @joaomoreno do you have more context?


Improve code coverage DataChangedEventDispatcher and mock ZookeeperDataChangedListenerTest zkClient

fix #805

Make sure that:

[x] You have read the contribution guidelines.
[x] You submit test cases (unit or integration tests) that back your changes.
[x] Your local test passed mvn clean install -Dmaven.javadoc.skip=true.

Codecov Report

Merging #859 (20d5dc6) into master (c5598c5) will increase coverage by 0.22%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #859      +/-   ##
============================================
+ Coverage     74.39%   74.62%   +0.22%
- Complexity     1716     1726      +10
============================================
  Files           285      285
  Lines          6616     6616
  Branches        756      756
============================================
+ Hits           4922     4937      +15
+ Misses         1294     1277      -17
- Partials        400      402       +2

Impacted Files
Coverage Δ
Complexity Δ

...stener/zookeeper/ZookeeperDataChangedListener.java
97.18% <0.00%> (-1.41%)
24.00% <0.00%> (-1.00%)

.../dromara/soul/admin/listener/DataChangedEvent.java
100.00% <0.00%> (+42.85%)
4.00% <0.00%> (+3.00%)

...oul/admin/listener/DataChangedEventDispatcher.java
90.47% <0.00%> (+61.90%)
8.00% <0.00%> (+6.00%)

Continue to review full report at Codecov.

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


Cachable Queries always hiting the DB. "[KeyHash: xxxx, CacheDependencies: xxx.] Was not present in the cache."

Summary of the issue
The cache seems to be configured and working (no exceptions or errors and is logging fine) but every time I Reload a page the DB gets hit, If I read the cache log it keeps saying "[Entity xxxx] was not present in the cache.", I reload the same page multiple times and  every time i get the same message, then next "added to the cache" but as soon as I reload "was not present in the cache" again and the DB gets hit.
I am not sure this is an issue, more than likely I am doing something wrong or missing a configuration or code line, but after trying multiple things I gave up and any help will be greatly appreciated.
Environment
.NET Core SDK version: 3.1
Microsoft.EntityFrameworkCore version: 3.1.2
EFCoreSecondLevelCacheInterceptor version: 1.5.4

And this is my Startup configuration:
public void ConfigureServices(IServiceCollection services)
        {
           services.AddEFSecondLevelCache(options =>
        options.UseMemoryCacheProvider(CacheExpirationMode.Absolute,TimeSpan.FromMinutes(30))
                       .DisableLogging(false)
                       .CacheAllQueries(CacheExpirationMode.Absolute, TimeSpan.FromMinutes(30))
            );

            services.AddControllersWithViews().AddRazorRuntimeCompilation();
            services.AddOptions();
            services.Configure<AppConfig>(Configuration.GetSection("AppConfig"));

            services.AddDbContext<PetraCMSDbContext>(options =>
                          options.UseSqlServer(Configuration.GetConnectionString("PetraCMSDbContext"))
                          .AddInterceptors(new SecondLevelCacheInterceptor())
             );
}

I also tried adding ".Cachable()" to some of the queries directly  despite having configured the cache to "CacheAllQueries", but with no success:
        public SettingsDto GetSettings()
        {
            Settings settings = _dbContext.Settings.Cacheable().FirstOrDefault();
            if (settings != null)
                return settings.ToSettingsDtoMap();
            return null;
        }

Output:
There are no exceptions or errors, Just that the DB is Hit every single time (tested this with a trace to my local DB) and the EFSecondLevelCacheInterceptor does not seem to find anything on the cache, keeps returning "was not present in the cache".
This is what I get on the logs:
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
[KeyHash: 8C5814DB, CacheDependencies: User.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
TableRows[eecca79c-18b4-4972-b685-04e7a3df5843] added to the cache[KeyHash: 8C5814DB, CacheDependencies: User.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E2FAFD43, CacheDependencies: Page.
[KeyHash: E2FAFD43, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E2FAFD43, CacheDependencies: Page.
TableRows[274d4289-8ea0-4399-9f15-52e27fe01694] added to the cache[KeyHash: E2FAFD43, CacheDependencies: Page.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: A4B849A, CacheDependencies: Page.
[KeyHash: A4B849A, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: A4B849A, CacheDependencies: Page.
TableRows[1f314a3c-67b8-4a95-b4ba-815cdc904981] added to the cache[KeyHash: A4B849A, CacheDependencies: Page.].
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
Invalidated [EFUnknownsCacheDependency, Page] dependencies.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
[KeyHash: 8C5814DB, CacheDependencies: User.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
TableRows[df62fdb3-43a7-42f5-a415-b48743dceee2] added to the cache[KeyHash: 8C5814DB, CacheDependencies: User.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E8A0662F, CacheDependencies: Page.
[KeyHash: E8A0662F, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E8A0662F, CacheDependencies: Page.
TableRows[910c07c3-37cc-4345-bb25-835e56401237] added to the cache[KeyHash: E8A0662F, CacheDependencies: Page.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: EB153BD4, CacheDependencies: Page.
[KeyHash: EB153BD4, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: EB153BD4, CacheDependencies: Page.
TableRows[ee20d2d7-ffc7-4ff9-9484-e8d4eecde53e] added to the cache[KeyHash: EB153BD4, CacheDependencies: Page.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E2FAFD43, CacheDependencies: Page.
[KeyHash: E2FAFD43, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E2FAFD43, CacheDependencies: Page.
TableRows[66d7b258-bad2-46b1-b5b7-c65132f8e47c] added to the cache[KeyHash: E2FAFD43, CacheDependencies: Page.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: EB153BD4, CacheDependencies: Page.
Suppressed result with a TableRows[ee20d2d7-ffc7-4ff9-9484-e8d4eecde53e] from the cache[KeyHash: EB153BD4, CacheDependencies: Page.].
Using the TableRows[ee20d2d7-ffc7-4ff9-9484-e8d4eecde53e] from the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E2FAFD43, CacheDependencies: Page.
Suppressed result with a TableRows[66d7b258-bad2-46b1-b5b7-c65132f8e47c] from the cache[KeyHash: E2FAFD43, CacheDependencies: Page.].
Using the TableRows[66d7b258-bad2-46b1-b5b7-c65132f8e47c] from the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
[KeyHash: 8C5814DB, CacheDependencies: User.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
TableRows[5fb2e0e0-6dfe-440b-8799-4590f1ed8922] added to the cache[KeyHash: 8C5814DB, CacheDependencies: User.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Settings -> CacheDependencies: Settings.
KeyHash: BC1A4D8, CacheDependencies: Settings.
[KeyHash: BC1A4D8, CacheDependencies: Settings.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Settings -> CacheDependencies: Settings.
KeyHash: BC1A4D8, CacheDependencies: Settings.
TableRows[dea139ee-ef27-47fc-9e08-33e6c685b60a] added to the cache[KeyHash: BC1A4D8, CacheDependencies: Settings.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
[KeyHash: 8C5814DB, CacheDependencies: User.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
TableRows[86b744a1-faab-4e63-9cc7-960fa5c26673] added to the cache[KeyHash: 8C5814DB, CacheDependencies: User.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Settings -> CacheDependencies: Settings.
KeyHash: BC1A4D8, CacheDependencies: Settings.
[KeyHash: BC1A4D8, CacheDependencies: Settings.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Settings -> CacheDependencies: Settings.
KeyHash: BC1A4D8, CacheDependencies: Settings.
TableRows[0dc93235-7755-4e8a-b082-67af9e5a3fb2] added to the cache[KeyHash: BC1A4D8, CacheDependencies: Settings.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
[KeyHash: 8C5814DB, CacheDependencies: User.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
TableRows[81f84c59-1280-4ca2-91b1-59b226c8b8a9] added to the cache[KeyHash: 8C5814DB, CacheDependencies: User.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Settings -> CacheDependencies: Settings.
KeyHash: BC1A4D8, CacheDependencies: Settings.
[KeyHash: BC1A4D8, CacheDependencies: Settings.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Settings -> CacheDependencies: Settings.
KeyHash: BC1A4D8, CacheDependencies: Settings.
TableRows[857a6ecf-22a1-4261-b2aa-2e81cc56dd65] added to the cache[KeyHash: BC1A4D8, CacheDependencies: Settings.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
[KeyHash: 8C5814DB, CacheDependencies: User.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
TableRows[c60ee330-fd23-49df-8846-8e1cbf3ba658] added to the cache[KeyHash: 8C5814DB, CacheDependencies: User.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E2FAFD43, CacheDependencies: Page.
[KeyHash: E2FAFD43, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E2FAFD43, CacheDependencies: Page.
TableRows[67293f94-2a0b-4da8-b285-ba4cfbdb5f9b] added to the cache[KeyHash: E2FAFD43, CacheDependencies: Page.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: EB153BD4, CacheDependencies: Page.
[KeyHash: EB153BD4, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: EB153BD4, CacheDependencies: Page.
TableRows[334d4083-3683-4cba-9a55-1115fed9227c] added to the cache[KeyHash: EB153BD4, CacheDependencies: Page.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
[KeyHash: 8C5814DB, CacheDependencies: User.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
TableRows[169eb286-9726-435e-8834-e46491df4ee5] added to the cache[KeyHash: 8C5814DB, CacheDependencies: User.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: EB153BD4, CacheDependencies: Page.
[KeyHash: EB153BD4, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: EB153BD4, CacheDependencies: Page.
TableRows[e01343cc-731e-4d14-b81c-eaf37087d094] added to the cache[KeyHash: EB153BD4, CacheDependencies: Page.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E2FAFD43, CacheDependencies: Page.
[KeyHash: E2FAFD43, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E2FAFD43, CacheDependencies: Page.
TableRows[846b0cb8-fb0a-4ea7-86c5-4b903de0a7bc] added to the cache[KeyHash: E2FAFD43, CacheDependencies: Page.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: A4B849A, CacheDependencies: Page.
[KeyHash: A4B849A, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: A4B849A, CacheDependencies: Page.
TableRows[0ecebb6e-262d-40a7-9448-b590f4c259c4] added to the cache[KeyHash: A4B849A, CacheDependencies: Page.].
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
Invalidated [EFUnknownsCacheDependency, Page] dependencies.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
[KeyHash: 8C5814DB, CacheDependencies: User.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
TableRows[d66e84d2-f6d0-4ec5-a533-48ef2173e341] added to the cache[KeyHash: 8C5814DB, CacheDependencies: User.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E8A0662F, CacheDependencies: Page.
[KeyHash: E8A0662F, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E8A0662F, CacheDependencies: Page.
TableRows[a5e36d45-e284-4d68-bbeb-a92e53b86c48] added to the cache[KeyHash: E8A0662F, CacheDependencies: Page.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: EB153BD4, CacheDependencies: Page.
[KeyHash: EB153BD4, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: EB153BD4, CacheDependencies: Page.
TableRows[b757f503-eb85-43ec-9f2c-9df7e52561e5] added to the cache[KeyHash: EB153BD4, CacheDependencies: Page.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E2FAFD43, CacheDependencies: Page.
[KeyHash: E2FAFD43, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E2FAFD43, CacheDependencies: Page.
TableRows[53dea9c1-838f-4fee-88eb-78fb6fcffd8e] added to the cache[KeyHash: E2FAFD43, CacheDependencies: Page.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: EB153BD4, CacheDependencies: Page.
Suppressed result with a TableRows[b757f503-eb85-43ec-9f2c-9df7e52561e5] from the cache[KeyHash: EB153BD4, CacheDependencies: Page.].
Using the TableRows[b757f503-eb85-43ec-9f2c-9df7e52561e5] from the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E2FAFD43, CacheDependencies: Page.
Suppressed result with a TableRows[53dea9c1-838f-4fee-88eb-78fb6fcffd8e] from the cache[KeyHash: E2FAFD43, CacheDependencies: Page.].
Using the TableRows[53dea9c1-838f-4fee-88eb-78fb6fcffd8e] from the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
[KeyHash: 8C5814DB, CacheDependencies: User.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
TableRows[9ab61d14-7b5d-447e-bd92-e4f1625687d8] added to the cache[KeyHash: 8C5814DB, CacheDependencies: User.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Settings -> CacheDependencies: Settings.
KeyHash: BC1A4D8, CacheDependencies: Settings.
[KeyHash: BC1A4D8, CacheDependencies: Settings.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Settings -> CacheDependencies: Settings.
KeyHash: BC1A4D8, CacheDependencies: Settings.
TableRows[5de34ea8-5a04-4cf2-b59d-3eada8ad4413] added to the cache[KeyHash: BC1A4D8, CacheDependencies: Settings.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
[KeyHash: 8C5814DB, CacheDependencies: User.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
TableRows[532605a1-6710-4441-8077-6d37293304b5] added to the cache[KeyHash: 8C5814DB, CacheDependencies: User.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Settings -> CacheDependencies: Settings.
KeyHash: BC1A4D8, CacheDependencies: Settings.
[KeyHash: BC1A4D8, CacheDependencies: Settings.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Settings -> CacheDependencies: Settings.
KeyHash: BC1A4D8, CacheDependencies: Settings.
TableRows[3e99c350-96bc-4bd9-a8a4-a98ac81963a4] added to the cache[KeyHash: BC1A4D8, CacheDependencies: Settings.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
[KeyHash: 8C5814DB, CacheDependencies: User.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
TableRows[bbbe60e1-67e8-41de-8f62-c7846309781c] added to the cache[KeyHash: 8C5814DB, CacheDependencies: User.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Settings -> CacheDependencies: Settings.
KeyHash: BC1A4D8, CacheDependencies: Settings.
[KeyHash: BC1A4D8, CacheDependencies: Settings.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Settings -> CacheDependencies: Settings.
KeyHash: BC1A4D8, CacheDependencies: Settings.
TableRows[e25a15c5-e480-493b-ba00-91fe3631489c] added to the cache[KeyHash: BC1A4D8, CacheDependencies: Settings.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
[KeyHash: 8C5814DB, CacheDependencies: User.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
TableRows[c36c7da2-35d2-444c-9ee3-03cb96106b6e] added to the cache[KeyHash: 8C5814DB, CacheDependencies: User.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: 41765E39, CacheDependencies: Page.
[KeyHash: 41765E39, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: 41765E39, CacheDependencies: Page.
TableRows[5e636e9c-e239-4774-b488-85914ccfcfbe] added to the cache[KeyHash: 41765E39, CacheDependencies: Page.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: EB153BD4, CacheDependencies: Page.
[KeyHash: EB153BD4, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: EB153BD4, CacheDependencies: Page.
TableRows[c8a16eee-6ba6-45cf-a186-f3f506f58d48] added to the cache[KeyHash: EB153BD4, CacheDependencies: Page.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E7E98500, CacheDependencies: Page.
[KeyHash: E7E98500, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E7E98500, CacheDependencies: Page.
TableRows[cdda302f-2a9c-4aab-9e1c-c4c842bc466f] added to the cache[KeyHash: E7E98500, CacheDependencies: Page.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: EB153BD4, CacheDependencies: Page.
Suppressed result with a TableRows[c8a16eee-6ba6-45cf-a186-f3f506f58d48] from the cache[KeyHash: EB153BD4, CacheDependencies: Page.].
Using the TableRows[c8a16eee-6ba6-45cf-a186-f3f506f58d48] from the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E7E98500, CacheDependencies: Page.
Suppressed result with a TableRows[cdda302f-2a9c-4aab-9e1c-c4c842bc466f] from the cache[KeyHash: E7E98500, CacheDependencies: Page.].
Using the TableRows[cdda302f-2a9c-4aab-9e1c-c4c842bc466f] from the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: 554A9848, CacheDependencies: Page.
[KeyHash: 554A9848, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: 554A9848, CacheDependencies: Page.
TableRows[e57c3c8e-dc60-4cc9-806b-e629070069ed] added to the cache[KeyHash: 554A9848, CacheDependencies: Page.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: 554A9848, CacheDependencies: Page.
Suppressed result with a TableRows[e57c3c8e-dc60-4cc9-806b-e629070069ed] from the cache[KeyHash: 554A9848, CacheDependencies: Page.].
Using the TableRows[e57c3c8e-dc60-4cc9-806b-e629070069ed] from the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E7E98500, CacheDependencies: Page.
Suppressed result with a TableRows[cdda302f-2a9c-4aab-9e1c-c4c842bc466f] from the cache[KeyHash: E7E98500, CacheDependencies: Page.].
Using the TableRows[cdda302f-2a9c-4aab-9e1c-c4c842bc466f] from the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: C867BDA8, CacheDependencies: Page.
[KeyHash: C867BDA8, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: C867BDA8, CacheDependencies: Page.
TableRows[1f68b892-fd3e-4ba8-96b7-56aaa0d6b39a] added to the cache[KeyHash: C867BDA8, CacheDependencies: Page.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E2FAFD43, CacheDependencies: Page.
[KeyHash: E2FAFD43, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E2FAFD43, CacheDependencies: Page.
TableRows[16526b30-c539-49ff-a6c3-6c5aa5a95cf7] added to the cache[KeyHash: E2FAFD43, CacheDependencies: Page.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: EB153BD4, CacheDependencies: Page.
Suppressed result with a TableRows[c8a16eee-6ba6-45cf-a186-f3f506f58d48] from the cache[KeyHash: EB153BD4, CacheDependencies: Page.].
Using the TableRows[c8a16eee-6ba6-45cf-a186-f3f506f58d48] from the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: E7E98500, CacheDependencies: Page.
Suppressed result with a TableRows[cdda302f-2a9c-4aab-9e1c-c4c842bc466f] from the cache[KeyHash: E7E98500, CacheDependencies: Page.].
Using the TableRows[cdda302f-2a9c-4aab-9e1c-c4c842bc466f] from the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: 554A9848, CacheDependencies: Page.
Suppressed result with a TableRows[e57c3c8e-dc60-4cc9-806b-e629070069ed] from the cache[KeyHash: 554A9848, CacheDependencies: Page.].
Using the TableRows[e57c3c8e-dc60-4cc9-806b-e629070069ed] from the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: 554A9848, CacheDependencies: Page.
Suppressed result with a TableRows[e57c3c8e-dc60-4cc9-806b-e629070069ed] from the cache[KeyHash: 554A9848, CacheDependencies: Page.].
Using the TableRows[e57c3c8e-dc60-4cc9-806b-e629070069ed] from the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: 551915EF, CacheDependencies: Page.
[KeyHash: 551915EF, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: 551915EF, CacheDependencies: Page.
TableRows[c4a609f6-4aab-4f1f-9cb0-6013f1b2508a] added to the cache[KeyHash: 551915EF, CacheDependencies: Page.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: 554A9848, CacheDependencies: Page.
Suppressed result with a TableRows[e57c3c8e-dc60-4cc9-806b-e629070069ed] from the cache[KeyHash: 554A9848, CacheDependencies: Page.].
Using the TableRows[e57c3c8e-dc60-4cc9-806b-e629070069ed] from the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: 788B1A84, CacheDependencies: Page.
[KeyHash: 788B1A84, CacheDependencies: Page.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: 788B1A84, CacheDependencies: Page.
TableRows[bf23dc38-e572-4190-9d69-393f320a8beb] added to the cache[KeyHash: 788B1A84, CacheDependencies: Page.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Page -> CacheDependencies: Page.
KeyHash: 554A9848, CacheDependencies: Page.
Suppressed result with a TableRows[e57c3c8e-dc60-4cc9-806b-e629070069ed] from the cache[KeyHash: 554A9848, CacheDependencies: Page.].
Using the TableRows[e57c3c8e-dc60-4cc9-806b-e629070069ed] from the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
[KeyHash: 8C5814DB, CacheDependencies: User.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
TableRows[f7096d2c-fc59-47e1-9f2d-62c73d233cc0] added to the cache[KeyHash: 8C5814DB, CacheDependencies: User.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Settings -> CacheDependencies: Settings.
KeyHash: BC1A4D8, CacheDependencies: Settings.
[KeyHash: BC1A4D8, CacheDependencies: Settings.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Settings -> CacheDependencies: Settings.
KeyHash: BC1A4D8, CacheDependencies: Settings.
TableRows[ae6f90ce-b09a-4d92-ba2e-97a20b66ebac] added to the cache[KeyHash: BC1A4D8, CacheDependencies: Settings.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
[KeyHash: 8C5814DB, CacheDependencies: User.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
TableRows[2276c2c4-6d2d-4b15-8c57-fefbf892c598] added to the cache[KeyHash: 8C5814DB, CacheDependencies: User.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Settings -> CacheDependencies: Settings.
KeyHash: BC1A4D8, CacheDependencies: Settings.
[KeyHash: BC1A4D8, CacheDependencies: Settings.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Settings -> CacheDependencies: Settings.
KeyHash: BC1A4D8, CacheDependencies: Settings.
TableRows[f7be08ba-80cb-423b-9b5c-72cce35231d4] added to the cache[KeyHash: BC1A4D8, CacheDependencies: Settings.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
[KeyHash: 8C5814DB, CacheDependencies: User.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: User -> CacheDependencies: User.
KeyHash: 8C5814DB, CacheDependencies: User.
TableRows[f0fb7bc5-f336-412d-88a8-b7b26fc87a80] added to the cache[KeyHash: 8C5814DB, CacheDependencies: User.].
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Settings -> CacheDependencies: Settings.
KeyHash: BC1A4D8, CacheDependencies: Settings.
[KeyHash: BC1A4D8, CacheDependencies: Settings.] was not present in the cache.
Using EFCachePolicy: EFCachePolicy[(line 0)] --> Absolute|00:30:00|||False
ContextTableNames: Page, Role, Settings, User, PossibleQueryTableNames: Settings -> CacheDependencies: Settings.
KeyHash: BC1A4D8, CacheDependencies: Settings.
TableRows[95ff3ecd-e0b8-4f74-b34c-e0ff1d83f6bd] added to the cache[KeyHash: BC1A4D8, CacheDependencies: Settings.].

You are using the CacheAllQueries setting, so it's normal to see a lot of cache misses at the startup, because the EF-Core is doing some startup checks. After that you can see the caching system is working fine and you have a lot of Suppressed result with messages:
Suppressed result with a TableRows[ee20d2d7-ffc7-4ff9-9484-e8d4eecde53e] from the cache[KeyHash: EB153BD4, CacheDependencies: Page.].
Using the TableRows[ee20d2d7-ffc7-4ff9-9484-e8d4eecde53e] from the cache.

Suppressed result with a TableRows[66d7b258-bad2-46b1-b5b7-c65132f8e47c] from the cache[KeyHash: E2FAFD43, CacheDependencies: Page.].
Using the TableRows[66d7b258-bad2-46b1-b5b7-c65132f8e47c] from the cache.

Suppressed result with a TableRows[cdda302f-2a9c-4aab-9e1c-c4c842bc466f] from the cache[KeyHash: E7E98500, CacheDependencies: Page.].
Using the TableRows[cdda302f-2a9c-4aab-9e1c-c4c842bc466f] from the cache.

Suppressed result with a TableRows[e57c3c8e-dc60-4cc9-806b-e629070069ed] from the cache[KeyHash: 554A9848, CacheDependencies: Page.].
Using the TableRows[e57c3c8e-dc60-4cc9-806b-e629070069ed] from the cache.

If you want to see if these messages are real not, there's only one way to check them:
Start the SQL Server Profiler and then start a new profiling session. Now run you app and let the first page to be loaded completely. Then refresh that page. If you didn't see any extra queries (which are marked to be cached) in logs, it means it's working fine.

Hi Vahid,
Thanks for the fast answer and forgive my ignorance, I thought when a DB memory cache was working the DB trace would not get activated at all, as in the query data is coming from memory so no need to call the DB at all for any reason, that's why I was confused whenI kept seeing action coming on my DB trace.
I can see those "EFCachePolicy" events on the trace, when I see those does it means the data was actually accessed from the cache?

Thanks again for your help! and sorry for wasting your time.

I can see those "EFCachePolicy" events on the trace, when I see those does it means the data was actually accessed from the cache?

No. It's hitting the DB (for the first time). After that (on the subsequent reloads of the page) you shouldn't see that event anymore.
Caching works for your Page table (based on your logs) but not for the Settings table.

I disabled the "CacheAll" setting and just add it manually to the queries I actually want to cache (Like the settings and user ones as they are used a lot)
Still keeps going to the DB no matter how many times I Refresh the page, can you see any potential problems or errors with the "Settings" table and code?
This is the SQL script to create the settings Table:
CREATE TABLE [dbo].[Settings]
(
	[ID] INT NOT NULL PRIMARY KEY IDENTITY,
    [PageNotFoundTemplate] VARCHAR(MAX) NULL DEFAULT 'Error',
    [ServerErrorTemplate] VARCHAR(MAX) NULL DEFAULT 'Error',
    [NoneCMSPageTemplate] VARCHAR(MAX) NULL DEFAULT 'Detail',
    [PageNotFoundTitle] NVARCHAR(50) NULL DEFAULT 'Page Not Found 400',
    [ServerErrorPageTitle] NVARCHAR(50) NULL DEFAULT 'Unexpected Error',
    [PageNotFoundMessage] NVARCHAR(MAX) NULL DEFAULT 'The Resource that you are looking for could not be found.',
    [ServerErrorMessage] NVARCHAR(MAX) NULL DEFAULT 'There was an unexpected Error, we are sorry for the incovenience.',
    [Email] NVARCHAR(200) NULL,
    [FacebookLink] NCHAR(200) NULL,
    [TwitterLink] NCHAR(200) NULL,
    [MainSiteUrl] NVARCHAR(200) NULL,
    [CanonicalURL] BIT NOT NULL DEFAULT 0,
    [CreatedBy] NVARCHAR(50) NOT NULL DEFAULT 'PetraCMS',
    [CreationDate] DATETIME NOT NULL DEFAULT GETDATE(),
    [LastUpdatedBy] NVARCHAR(50) NOT NULL DEFAULT'PetraCMS',
    [LastUpdatedDate] DATETIME NOT NULL DEFAULT GETDATE()
)

And this is the Repository and DB context I am using for the Settings:
    public class SettingsRepository: ISettingsRepository
    {
        private readonly PetraCMSDbContext _dbContext;

        public SettingsRepository(PetraCMSDbContext dbContext)
        {
            _dbContext = dbContext;
        }

        public SettingsDto GetSettings()
        {
            Settings settings = _dbContext.Settings.Cacheable().FirstOrDefault();
            if (settings != null)
                return settings.ToSettingsDtoMap();
            return null;
        }
    }

    public class PetraCMSDbContext : DbContext
    {
        public PetraCMSDbContext(DbContextOptions<PetraCMSDbContext> options)
            : base(options)
        {
        }

        public DbSet<User> User { get; set; }
        public DbSet<Role> Role { get; set; }
        public DbSet<Page> Page { get; set; }
        public DbSet<Settings> Settings { get; set; }
    }

Are you using any third party IoC container here? Because it seems KeyHash: BC1A4D8 was added to the cache (several times) but it can't be accessed after that. It's like having 2 separate IMemoryCache containers/instances.

Hi Vahid,
I am using the IoC that comes with Net Core. Don't know if the problem might be caused because I have my DB context and "Repository" classes in a separate project than the web one, in theory this should not affect anything but I thought it might be worth mentioning.
Apart from EFCoreSecondLevelCacheInterceptor I am also using Nlog, but I don't think that should affect anything.
This are the packages used on my web project:

And this are the packages used on my Repository project:

Please use the V1.6.0. This version uses the true DI for registering of the interceptor and there will be only one instance of it, this time. Now you should configure the AddInterceptors method this way.

Thank you very much that did the trick! working like a charm now, nothing in my trace and everything coming from the cache:
InstanceId: f892b63a-fdd2-43ee-9e78-f909cdbba033, Started @24/04/2020 10:59:33 UTC. Suppressed the result with the TableRows[1f33200a-fa95-46e0-a681-c58082a61af6] from the cache[KeyHash: BC1A4D8, CacheDependencies: Settings.].

Version V1.6.0 and True DI Registration for the Interceptor fixed this issue.


Generate image tiles

Possible using just node? https://github.com/oliver-moran/jimp
An info.json with a level 0 image service would need to be generated in the _canvas folder and referenced in the index.json.

Would make sense to have this as CLI option. -gt (generate tiles) perhaps?

It could also be desirable to include this as an option in the _canvas info.yml - giving you the ability to generate tiles only for specific images.
label: Generate tiles for me
options:
    generateTiles: true

https://www.npmjs.com/package/iiif-image

https://github.com/lovell/sharp/issues/1335

If an info.json is specified in a custom annotation like this:
https://github.com/edsilv/biiif-test-manifests/blob/gh-pages/tetons/_tetons/tiles.yml
With a type of Image, look for an assets/tiles directory. If there is none, automatically generate the tiles?
Use the profile in the info.json to specify the correct profile in the generated image service.

https://github.com/libvips/libvips/issues/1465


wiki: Package Requests

https://nixos.org/wiki/Package_Requests

I think we also have some issues like that. What is the policy? Close if nobody volunteers, but add a label for easy search?

@7c6f434c i think we should document the policy and place where to ask for help to packages something. not sure yet where this would fit in current documentation.

I am additionally not sure what the policy is.


Adding null check on custom message

When falling back to the default custom message, it would throw an exception if the custom message was null.

Related issue: https://github.com/jenkinsci/slack-plugin/pull/466

@timja do you have an ETA of the release date for this fix? Can be considered as hotfix somehow.
Thanks!


initial commit for 3rd-party-plugin

Hi @gr2m
My pull request.
I tried assigning the value of hoodie.plugins array to thirdPartyPlugins, is this the correct way to do it? It gives me error hoodie.plugins module is not present in my locale.

I have edited package.json and bundle.js files. Index.js is pending.

To see if you current changes broke anything unintended, you can always run npm test. If you see an error it means you probably have broken something by accident. It can help you to find the problems early :) but don’t worry, you don’t have to, I’ll walk you trough. And please let me know if there is anything that does not make sense

Hi @gr2m
I'm away for one week on something personal. If anyone wants to take this up during this week, feel free to re-assign.


Add ability to save plots as png, jpg, svg, webp

This commit is introduces the ability to save the plots created by plotly directly to file.
Normally one needs to use the plotly user interface to save the plots. This is

inconvenient if one needs to store more than one or two images
it only allows to store the images as png.

With this somewhat complicated workaround, we can save the images as

png
jpg
webp
svg (as a proper vector graphic!)

It works by injecting a few more lines of Javascript code into the HTML template, which uses Plotly.toImage to create a data packet of the desired size and filetype from the plot. We then open a websocket connection and send the image data to a websocket server, which we start before we open the browser.
That server (see image_retrieve) decodes the image data and saves it to file.
The downside to this implementation is that we have to compile plotly with --threads:on.
Maybe there's an easier way to accomplish this, but I wanted to have the plots as svg files and this was the only way I know to make it work. :)
edit: and of course the the module now depends on websocket.
edit2: ok, this is still problematic. I'm struggling to get it to work properly when there are several plots being created one after another... I'll get back to it in a few days probably.

Ok, that took a lot longer than I wanted, but it seems to be working now. Might still be some issues left. :)
I have way too little experience with the async module... Or I should just properly read the manual cough.

this would be very useful!

So it seems to be working fine on my end now.
The annoying issue right now is that if one compiles a project using plotly without thread support the compiler message isn't very helpful. Because instead of the typical
Error: Threadpool requires --threads:on option.

one is greeted by
plotly/image_retrieve.nim(46, 20) Error: undeclared identifier: 'Channel'

which for the average user is about as helpful as... no error at all.
I'll try to do two things in the next few days:

catch whether the user compiles with --threads:on and only implement the save image functionality in that case.
create an issue at the Nim repo / see if I can improve the error message if Channel is being used without threading support and create a PR.

Ok, I now put the access to the save image feature behind a guard checking for the --threads:on compile flag. If it's not set, the user sees a compiler error with a message that this flag is needed.

Travis fails because example 12 hasn't stopped after 10 minutes. Well, that's expected, because there is no websocket client sending any data to the server.
I don't know whether there is some way to make this work. Otherwise I'd just remove the multithreaded tests from travis.

let's just not run example12 in travis-ci
though I think there may be a way to have travis run a browser for testing...

@brentp there's - look at nim forum

Ok, after probably 20 travis build failures, I finally figured out how to make all tests run in a browser.
For some reason travis has some really weird behavior. It picks google chrome despite me only adding firefox as an addon and the xdg-open call is blocking.
I replaced docker by choosenim and run firefox in a virtual X server using xvfb. In order to get non-blocking behavior for xdg-open I introduced an optional -d:travis flag, which if set will replace Nim's openDefaultBrowser by a version which always appends an ampersand. I didn't want to append  & to the two calls instead, because

it's really not needed when running plotly locally
no idea what other effects it might have.

@brentp Please take a look. :)

now it has a conflict with the other PR I just merged. I am just sniping issues today but can resolve this tomorrow if you don't beat me to it.

Don't worry, I'll rebase it onto the current master later today. :)

Ok, rebasing turned out to be too ugly. Merged master instead.


(fix) partition block overwriting

Detail
When partitioning multi-block datasets, without block index in the prefix blocks overwrite each other. Test case TBC.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: 6b8f8e739a1ecaa1cedce762efb77e881f7345d2
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubLoadTests5656BB24-s6u9F3qN9oFy
Commit ID: 6b8f8e739a1ecaa1cedce762efb77e881f7345d2
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubStandardCodeBuild8C06-llutOAimTATs
Commit ID: 6b8f8e739a1ecaa1cedce762efb77e881f7345d2
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: fd4fd61d1483db2f4e1bdf715b8dec32c9e0769f
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubLoadTests5656BB24-s6u9F3qN9oFy
Commit ID: fd4fd61d1483db2f4e1bdf715b8dec32c9e0769f
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository


GLES2 fullscreen on OSX behaving differently with hiDPI on

Godot version:
3.2.4rc1
OS/device including version:
Macbook Pro 13
GPU: Intel Iris 640
GLES2
Issue description:
When using GLES2 with HiDPI off, the window button to go full screen simply maximises the window without going into full screen.
With HiDPI on the same button produces real full screen (no window decorations or any of the os visible).
NOTE: this happens only with GLES2. With GLES3 the behaviour is the same with both hiDPI on or off (full screen is correct).

Duplicate of https://github.com/godotengine/godot/issues/42085 (same cause).

Duplicate of https://github.com/godotengine/godot/issues/42085 (same cause).

Read that one before posting and this is definitely not the same issue.
I understand how and why HiDpi behaves for screen size, but this is a difference in behaviour of the window button that enables full screen on OSX. Again it happens only in GLES2.
I've recorded a video showing the difference.
https://user-images.githubusercontent.com/46694168/106188052-601a5e80-619e-11eb-9908-2e73fc8b87cb.mov

Read that one before posting and this is definitely not the same issue.
I understand how and why HiDpi behaves for screen size, but this is a difference in behaviour of the window button that enables full screen on OSX. Again it happens only in GLES2.
I've recorded a video showing the difference.
https://user-images.githubusercontent.com/46694168/106188052-601a5e80-619e-11eb-9908-2e73fc8b87cb.mov

Catalina 10.15.7

Might be fixed by #48527. Try using the editor artifact from PR - https://github.com/godotengine/godot/suites/2675083515/artifacts/58954846

Awesome! Will let you know as soon as I can test it

@gianmichelemariani Did you find some time to test https://github.com/godotengine/godot/pull/48527? Note that the CI artifacts expired, so you'll have to build the editor from source to test it. See Testing pull requests in the documentation for more information.

I have tested this on 3.5 beta 1 and it works as expected


BUG:adding header and footer in book recomandation

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
Hello Admin,
I have identified that the book recommendation page is missing a header and footer. Could you please assign this issue to me under GSSoC'24?
Thank you!
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

#919 This is an existing issue where someone is already adding the header and footer to all the pages.


The app crashes when you right-click on a unformatted file

I don't know if "unformatted file" is the correct term, I use google translator

Can you include a sample file?

http://www.mediafire.com/file/08sa2di4ykedb7u/TEST1/file

this no longer happens


Update USQL_Release_Notes_2018_Winter.md

Ok  finished reading this on the plane...my changes are minimal and all editorial. --If I have a question it is in parentheses created by the following characters: "CJC
Voila Hope this helps,
CJC

Let me know if you get these changes


fix: relax allowed ranges to be compatible with linux spec

Note: This should be merged after https://github.com/P4sca1/cron-schedule/pull/238, because that PR contains generic fixes to the codestyle.
This PR fixes https://github.com/P4sca1/cron-schedule/issues/236.

:tada: This PR is included in version 3.0.5 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


fix "request() got an unexpected keyword argument 'excluded_checks'" …

fix "request() got an unexpected keyword argument 'excluded_checks'" when pass excluded_checks in call_and_validate. add arguments (additional_checks, excluded_checks) in call_and_validate and pass them in  validate_response.

Thank you so much for your contribution! Cherry-picked & added a changelog entry in #2516
Will be available in the next release