spi_bus_add_flash_device doesn't allocate from internal memory for all SPI buses (IDFGH-2230)

Environment

Development Kit:      Custom PCBA
Module or chip used:  ESP32-WROVER-B
IDF version: v4.1-dev-1086-g93a8603
Build System:         CMake
Compiler version: xtensa-esp32-elf-gcc (crosstool-NG esp32-2019r1) 8.2.0
Operating System:     Linux, via WSL
Power Supply:         external 5V

Problem Description
When adding an external SPI flash part on any bus besides SPI_HOST (in my case, VSPI_HOST), if using PSRAM and SPIRAM_USE_MALLOC is enabled, then spi_bus_add_flash_device() can fail with ESP_ERR_INVALID_ARG, even when the configuration is valid.
spi_bus_add_flash_device() allocates a host_data data structure for the SPI driver, which it passes through memspi_host_init_pointers() which then passes it to spi_flash_hal_init(). spi_flash_hal_init() checks that the host_data data structure is allocated in internal memory and returns ESP_ERR_INVALID_ARG if it is not.
spi_bus_add_flash_device() has a check where it sets MALLOC_CAP_INTERNAL when allocating memory, but it only does so if the SPI bus is SPI_HOST - all other buses use the default MALLOC_CAP_DEFAULT. As a result, for all other SPI buses, when SPIRAM_USE_MALLOC is set, the host data structure can be allocated from external memory instead of internal memory, causing spi_flash_hal_init() to fail.
Patching spi_bus_add_flash_device() apply the malloc caps for SPI_HOST to all buses seemed to fix the issue for me. I tested with a Micron flash chip, but in theory this should be reproducible even without an attached chip, since it fails so early in the driver initialization.
Expected Behavior
spi_bus_add_flash_device() should work with VSPI_HOST.
Actual Behavior
spi_bus_add_flash_device() fails with ESP_ERR_INVALID_ARG when using VSPI_HOST and SPIRAM_USE_MALLOC is set.
Code to reproduce this issue
#include "esp_flash.h"
#include "esp_spi_flash.h"
#include "esp_flash_spi_init.h"
#include "driver/spi_common.h"

void app_main(void)
{
    const spi_bus_config_t bus_config = {
        .mosi_io_num = VSPI_IOMUX_PIN_NUM_MOSI,
        .miso_io_num = VSPI_IOMUX_PIN_NUM_MISO,
        .sclk_io_num = VSPI_IOMUX_PIN_NUM_CLK,
        .quadwp_io_num = -1,
        .quadhd_io_num = -1,
    };

    const esp_flash_spi_device_config_t device_config = {
        .host_id = VSPI_HOST,
        .cs_id = 0,
        .cs_io_num = VSPI_IOMUX_PIN_NUM_CS,
        .io_mode = SPI_FLASH_FASTRD,
        .speed = ESP_FLASH_40MHZ
    };

    // Initialize the SPI bus
    ESP_ERROR_CHECK(spi_bus_initialize(VSPI_HOST, &bus_config, 1));

    // Add device to the SPI bus
    esp_flash_t* ext_flash;

    // This fails if `SPIRAM_USE_MALLOC` is set.
    ESP_ERROR_CHECK(spi_bus_add_flash_device(&ext_flash, &device_config));
}

Debug Logs
ESP_ERROR_CHECK failed: esp_err_t 0x102 (ESP_ERR_INVALID_ARG) at 0x40089260
0x40089260: _esp_error_check_failed at /home/devanl/code/esp-idf/components/esp32/panic.c:739

file: "../main/app_main.c" line 38
func: app_main
expression: spi_bus_add_flash_device(&ext_flash, &device_config)

ELF file SHA256: 0293d8faf09f60f77df80b78d503a6961499512c33bfedbccf0b5cb6a9e85682

Backtrace: 0x40088c9d:0x3ffb1e00 0x40089263:0x3ffb1e20 0x400d6d25:0x3ffb1e40 0x400d0f60:0x3ffb1ea0 0x4008c4a1:0x3ffb1ec0
0x40088c9d: invoke_abort at /home/devanl/code/esp-idf/components/esp32/panic.c:157

0x40089263: _esp_error_check_failed at /home/devanl/code/esp-idf/components/esp32/panic.c:740

0x400d6d25: app_main at /home/devanl/code/secondary/build/../main/app_main.c:38 (discriminator 1)

0x400d0f60: main_task at /home/devanl/code/esp-idf/components/esp32/cpu_start.c:569

0x4008c4a1: vPortTaskWrapper at /home/devanl/code/esp-idf/components/freertos/port.c:143

I have made this issue recurred.
When you use the VSPI_HOST and set the SPIRAM_USE_MALLOC, the check in file spi_flash_hal.c (line 69-71)  may cause a wrong logic. To be detailed, the original check code is:
if(!esp_ptr_internal(data_out)){
   return ESP_ERR_INVALID_ARG;
}

Then the procedure returns ESP_ERR_INVALID_ARG. However, in this circumstance, it does't need to return. Therefore, I suggest you use the code follows instead.
if(!esp_ptr_internal(data_out) && cfg->host_id < SPI3_HOST){
   return ESP_ERR_INVALID_ARG;
}

By the way, I don't know whether you want to run the example named ext_flash_fatfs. If so, you'd better make some adjustments to avoid another bug.

Create a file named partitions_example.csv under folder ext_flash_fatfs, the content need to be:

# Name,   Type, SubType, Offset,  Size, Flags
# Note: if you have increased the bootloader size, make sure to update the offsets to avoid overlap
nvs,      data, nvs,     0x9000,  0x6000,
phy_init, data, phy,     0xf000,  0x1000,
factory,  app,  factory, 0x10000, 1M,
storage,  data, fat,     ,        1M,

Create a file named sdkconfig.default under folder ext_flash_fatfs, the content need to be:

CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions_example.csv"
CONFIG_PARTITION_TABLE_FILENAME="partitions_example.csv"
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y

Delete or annotate the code in file ext_flash_fatfs_main.c (line 46-47):

const char *partition_label = "storage";
example_add_partition(flash, partition_label);


[NEW] make the interface bigger and easier to move statements

the interface is very small, making it cumbersome to move the statements around.
you have to scroll and tow each separate statement if you want to change the order the are portrayed

I guess the 'Zoom' buttons are not (enough) for what you mean?
Would you prefer if e.g. the table view could be hidden/collapsed to give more room on the screen for the diagram view? See mock-up below:


GetCycleRoot -> GetAsyncCycleRoot sync handling fixes

This resolves https://github.com/tc39/proposal-top-level-await/issues/121, where GetCycleRoot contains invalid assertions for the synchronous cycle cases due to AsyncParentModules only representing the async tree.
We do this by renaming GetCycleRoot to GetAsyncCycleRoot and returning in the synchronous / non async parent graph cases.
//cc @Ms2ger review would be much appreciated.

I will try to find time to review this week or next.

Ping @Ms2ger @robpalme, if either of you could help review it would be great to get this merged soon to resolve #121.

I'd like to go ahead and merge this in the next couple of days as it is an important correction and @devsnek has effectively confirmed it in implementation work too.
If there are any concerns or feedback let me know.


Feat

Codecov Report
Base: 83.84% // Head: 84.50% // Increases project coverage by +0.65% :tada:

Coverage data is based on head (98e8858) compared to base (72a3321).
Patch coverage: 73.91% of modified lines in pull request are covered.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@             Coverage Diff             @@
##           develop      #33      +/-   ##
===========================================
+ Coverage    83.84%   84.50%   +0.65%
===========================================
  Files          116      114       -2
  Lines         1647     1639       -8
  Branches        25       20       -5
===========================================
+ Hits          1381     1385       +4
+ Misses         265      253      -12
  Partials         1        1

Flag
Coverage Δ

backend
91.58% <78.57%> (-0.14%)
:arrow_down:

frontend
40.00% <66.66%> (+0.97%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

backend/src/settings.py
100.00% <ø> (ø)

frontend/src/app/services/login.service.ts
12.76% <ø> (+0.26%)
:arrow_up:

backend/src/apps/orders/api/viewsets.py
88.46% <66.66%> (-11.54%)
:arrow_down:

frontend/src/app/checkout/checkout.component.ts
37.93% <66.66%> (+9.35%)
:arrow_up:

backend/src/apiurls.py
100.00% <100.00%> (ø)

backend/src/apps/orders/api/serializers.py
100.00% <100.00%> (ø)

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

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Project template complete

Hi all,
The project template has been completed. Each team members' feature has a seperate working route, you can use this route to write your code in. This way we can keep all our code seperated in different files, even though we'll be working in different branches.
Speaking of branches, there is now a branch for each team member and his/her feature. Everyone will work in their own branch and their own file, this will make the merging process a lot easier.
All you have to do is clone the repository,  add the .env file that I sent privately and install all the packages mentioned in the package.json. If this doesn't work, if you don't have a node_modules folder, run npm init and retry the previous steps. This should work.
When all is done you can check into your own branch and start implementing your feature into this code.

Followed all steps and starting with making the register route

Hi Team, everyone integrated the template and is starting with building out the routes. Part succesful so closing issue!


blog: athens is not a microsoft project

In the recent modules article it suggests that the Athens project is a Microsoft project .
Although there are a few people at Microsoft who contribute to Athens. The project is wholly run and maintained by the community. Furthermore, its maintainers and deciders come from the community. We have all this documented here https://docs.gomods.io

CC @rsc @spf13

Microsoft employee and Athens core maintainer here. I wholly agree. We started and open sourced Athens with the explicit goal of growing a diverse community of Gophers around it and I believe we’ve succeeded.

(Fixed in https://go-review.googlesource.com/c/blog/+/155757)


make macaron setup public

This allows embedding Gogs in a custom HTTP server, eliminating the need for proxying access to it.

Thanks, but I do not think Macaron is a good name.

And, why is it a good idea to make it public?

It's handy for serving Gogs while also serving other content without configuring a proxy. One simply takes the returned *macaron.Macaron and tosses it into the http.Handler multiplexer. This essentially makes Gogs usable as a plugin/library, rather than as a standalone executable.
For naming it I simply thought "it returns a Macaron, let's call it Macaron.

Thanks your explanation!
But all code in Gogs are supposed to be internal use only, things could break because you suddenly to able to change public objects on sub-package which should only be used by Gogs itself.

I see your point, and I won't mind maintaining this tiny patch out of tree.
I don't think exposing a single function to the public will make things overly unstable, though. While cmd might not quite be the proper place for exposing public API calls, it's where the concerned code currently lives. If you're worried about people taking the *macaron.Macaron and doing bad things with it, changing the function's return type to http.Handler might make you feel better.

It's not just about a small thing, it's about people should never ever use internal code of an independent app, because Gogs is never considered to be used as a library.
And of course, you can maintain this little patch in your own copy, which is one of the good things about open source.


Update cut_release_branch.yml with write permissions

Normally, I'd expect us to get this by default but we may be restricting it with apache org policies.
If this doesn't work, we may need to turn this workflow into one that creates a pr instead

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

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

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

R: @riteshghorse


K3s v1.20.0+k3s2: Client.Timeout exceeded while awaiting headers

Environmental Info:
K3s Version:
k3s version v1.20.0+k3s2 (2ea6b163)
go version go1.15.5
Node(s) CPU architecture, OS, and Version:
3x Raspberry Pi 4, 4GB, running "minimal" 32-bit Raspbian
Linux pico1 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l GNU/Linux
Linux pico2 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l GNU/Linux
Linux pico3 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l GNU/Linux

Cluster Configuration:
1 master, 2 workers
Describe the bug:
The following error is returned when running "sudo kubectl get nodes -o wide":
Unable to connect to the server: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
Steps To Reproduce:

Installed K3s:

master: curl -sfL https://get.k3s.io | sh -
workers: curl -sfL https://get.k3s.io | K3S_URL=https://<master_ip>:6443 K3S_TOKEN=<TOKEN> sh -
run sudo kubectl get nodes -o wide from CLI

Expected behavior:
$ sudo kubectl get nodes -o wide
NAME                   STATUS   ROLES                  AGE   VERSION        INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                         KERNEL-VERSION   CONTAINER-RUNTIME
pico3   Ready    <none>                 10m   v1.20.0+k3s2   <IP_ADDRESS>     <none>        Raspbian GNU/Linux 10 (buster)   5.4.83-v7l+      containerd://1.4.3-k3s1
pico2   Ready    <none>                 10m   v1.20.0+k3s2   <IP_ADDRESS>     <none>        Raspbian GNU/Linux 10 (buster)   5.4.83-v7l+      containerd://1.4.3-k3s1
pico1   Ready    control-plane,master   12m   v1.20.0+k3s2   <IP_ADDRESS>     <none>        Raspbian GNU/Linux 10 (buster)   5.4.83-v7l+      containerd://1.4.3-k3s1

Actual behavior:
Commands such as sudo kubectl get nodes -o wide are initially OK. After a few minutes they consistently fail with the error below:
Unable to connect to the server: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
The error can be temporarily recovered if K3s is restarted, such as sudo systemctl restart k3s. Invariably, after a short time, the error pops up again.
The dashboard also appears to be in a lock.
The issue goes away if K3s v1.20.0+k3s2 is removed and v1.19.7+k3s1 is installed instead. The issue seems to be present in v1.20.
Additional context / logs:
On a different tab where sudo k3s kubectl proxy is run, the following errors appear:
E0119 15:54:28.828995   18538 proxy_server.go:144] Error while proxying request: context canceled

Please try with v1.20.2. See: https://github.com/kubernetes/kubernetes/pull/97860

Please try with v1.20.2. See: https://github.com/kubernetes/kubernetes/pull/97860

Many thanks for your kind response. Upgrading to v1.20.2+k3s1 seems to have resolved the issue. kubectl get is much more stable now.
I seem to have a side problem now, in that the dashboard doesn't seem to work any more.
I've deployed the dashboard according to instructions found at: https://rancher.com/docs/k3s/latest/en/installation/kube-dashboard/.
It's been working find previously with both v1.19.7 and v1.20.0. Now it just throws this message:
{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {

  },
  "status": "Failure",
  "message": "no endpoints available for service \"kubernetes-dashboard\"",
  "reason": "ServiceUnavailable",
  "code": 503
}

I've done a little, newbie-level, debugging but I'm unable to find a way to resolve this. I'd appreciate any suggestions.
sudo kubectl get endpoints -o wide --all-namespaces
NAMESPACE              NAME                        ENDPOINTS        AGE
default                kubernetes                  <IP_ADDRESS>:6443   15m
kube-system            kube-dns                    <none>           15m
kube-system            metrics-server              <none>           15m
kubernetes-dashboard   kubernetes-dashboard        <none>           12m   <<< ???
kubernetes-dashboard   dashboard-metrics-scraper   <none>           12m   <<< ???

sudo kubectl get services -o wide --all-namespaces
NAMESPACE              NAME                        TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                  AGE   SELECTOR
default                kubernetes                  ClusterIP   <IP_ADDRESS>       <none>        443/TCP                  17m   <none>
kube-system            kube-dns                    ClusterIP   <IP_ADDRESS>      <none>        53/UDP,53/TCP,9153/TCP   17m   k8s-app=kube-dns
kube-system            metrics-server              ClusterIP   <IP_ADDRESS>   <none>        443/TCP                  17m   k8s-app=metrics-server
kubernetes-dashboard   kubernetes-dashboard        ClusterIP   <IP_ADDRESS>    <none>        443/TCP                  14m   k8s-app=kubernetes-dashboard   <<< ???
kubernetes-dashboard   dashboard-metrics-scraper   ClusterIP   <IP_ADDRESS>      <none>        8000/TCP                 14m   k8s-app=dashboard-metrics-scraper   <<< ???

sudo ss -tunap | grep 8001
tcp   LISTEN 0      4096             <IP_ADDRESS>:8001               <IP_ADDRESS>:*      users:(("kubectl",pid=3974,fd=7))

Many thanks for your kind response. Upgrading to v1.20.2+k3s1 seems to have resolved the issue. kubectl get is much more stable now.
I seem to have a side problem now, in that the dashboard doesn't seem to work any more.
I've deployed the dashboard according to instructions found at: https://rancher.com/docs/k3s/latest/en/installation/kube-dashboard/.
It's been working find previously with both v1.19.7 and v1.20.0. Now it just throws this message:
{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {

  },
  "status": "Failure",
  "message": "no endpoints available for service \"kubernetes-dashboard\"",
  "reason": "ServiceUnavailable",
  "code": 503
}

I've done a little, newbie-level, debugging but I'm unable to find a way to resolve this. I'd appreciate any suggestions.
sudo kubectl get endpoints -o wide --all-namespaces
NAMESPACE              NAME                        ENDPOINTS        AGE
default                kubernetes                  <IP_ADDRESS>:6443   15m
kube-system            kube-dns                    <none>           15m
kube-system            metrics-server              <none>           15m
kubernetes-dashboard   kubernetes-dashboard        <none>           12m   <<< ???
kubernetes-dashboard   dashboard-metrics-scraper   <none>           12m   <<< ???

sudo kubectl get services -o wide --all-namespaces
NAMESPACE              NAME                        TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                  AGE   SELECTOR
default                kubernetes                  ClusterIP   <IP_ADDRESS>       <none>        443/TCP                  17m   <none>
kube-system            kube-dns                    ClusterIP   <IP_ADDRESS>      <none>        53/UDP,53/TCP,9153/TCP   17m   k8s-app=kube-dns
kube-system            metrics-server              ClusterIP   <IP_ADDRESS>   <none>        443/TCP                  17m   k8s-app=metrics-server
kubernetes-dashboard   kubernetes-dashboard        ClusterIP   <IP_ADDRESS>    <none>        443/TCP                  14m   k8s-app=kubernetes-dashboard   <<< ???
kubernetes-dashboard   dashboard-metrics-scraper   ClusterIP   <IP_ADDRESS>      <none>        8000/TCP                 14m   k8s-app=dashboard-metrics-scraper   <<< ???

sudo ss -tunap | grep 8001
tcp   LISTEN 0      4096             <IP_ADDRESS>:8001               <IP_ADDRESS>:*      users:(("kubectl",pid=3974,fd=7))

Looks like you don't have any pods serving the dashboard?

Looks like you don't have any pods serving the dashboard?

Please excuse my lack of familiarity with K3s, I'm still learning :)
You're right:
sudo kubectl get pods -o wide
No resources found in default namespace.

The long and the short of it is that with either v1.19.7 or v1.20.0 the dashboard would work out of the box.
With v1.20.2+k3s1, while kubectl get looks stable, the dashboard just stopped working. And, of course, I've followed the same simple steps from the Rancher Docs:
GITHUB_URL=https://github.com/kubernetes/dashboard/releases
VERSION_KUBE_DASHBOARD=$(curl -w '%{url_effective}' -I -L -s -S ${GITHUB_URL}/latest -o /dev/null | sed -e 's|.*/||')
sudo k3s kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/${VERSION_KUBE_DASHBOARD}/aio/deploy/recommended.yaml

I've taken a look at https://raw.githubusercontent.com/kubernetes/dashboard/v2.1.0/aio/deploy/recommended.yaml but I'm unable to spot anything that would make it work with one version but not with another.
Any troubleshooting steps you can recommend?

Please excuse my lack of familiarity with K3s, I'm still learning :)
You're right:
sudo kubectl get pods -o wide
No resources found in default namespace.

The long and the short of it is that with either v1.19.7 or v1.20.0 the dashboard would work out of the box.
With v1.20.2+k3s1, while kubectl get looks stable, the dashboard just stopped working. And, of course, I've followed the same simple steps from the Rancher Docs:
GITHUB_URL=https://github.com/kubernetes/dashboard/releases
VERSION_KUBE_DASHBOARD=$(curl -w '%{url_effective}' -I -L -s -S ${GITHUB_URL}/latest -o /dev/null | sed -e 's|.*/||')
sudo k3s kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/${VERSION_KUBE_DASHBOARD}/aio/deploy/recommended.yaml

I've taken a look at https://raw.githubusercontent.com/kubernetes/dashboard/v2.1.0/aio/deploy/recommended.yaml but I'm unable to spot anything that would make it work with one version but not with another.
Any troubleshooting steps you can recommend?

On a second thought, default namespace may be the key here. The following output is more relevant IMHO:
sudo kubectl get pods -o wide --all-namespaces
NAMESPACE              NAME                                         READY   STATUS    RESTARTS   AGE     IP       NODE     NOMINATED NODE   READINESS GATES
kube-system            metrics-server-86cbb8457f-w7lk8              0/1     Pending   0          4h51m   <none>   <none>   <none>           <none>
kube-system            local-path-provisioner-7c458769fb-5pdps      0/1     Pending   0          4h51m   <none>   <none>   <none>           <none>
kube-system            coredns-854c77959c-rvtkx                     0/1     Pending   0          4h51m   <none>   <none>   <none>           <none>
kubernetes-dashboard   dashboard-metrics-scraper-79c5968bdc-2h6jz   0/1     Pending   0          4h48m   <none>   <none>   <none>           <none>
kubernetes-dashboard   kubernetes-dashboard-7448ffc97b-vhlbx        0/1     Pending   0          4h48m   <none>   <none>   <none>           <none>
kube-system            helm-install-traefik-t927p                   0/1     Pending   0          4h51m   <none>   <none>   <none>           <none>

READY = 0/1 doesn't look good, correct? I'll try uninstalling/reinstalling to see if the issue gets resolved.

On a second thought, default namespace may be the key here. The following output is more relevant IMHO:
sudo kubectl get pods -o wide --all-namespaces
NAMESPACE              NAME                                         READY   STATUS    RESTARTS   AGE     IP       NODE     NOMINATED NODE   READINESS GATES
kube-system            metrics-server-86cbb8457f-w7lk8              0/1     Pending   0          4h51m   <none>   <none>   <none>           <none>
kube-system            local-path-provisioner-7c458769fb-5pdps      0/1     Pending   0          4h51m   <none>   <none>   <none>           <none>
kube-system            coredns-854c77959c-rvtkx                     0/1     Pending   0          4h51m   <none>   <none>   <none>           <none>
kubernetes-dashboard   dashboard-metrics-scraper-79c5968bdc-2h6jz   0/1     Pending   0          4h48m   <none>   <none>   <none>           <none>
kubernetes-dashboard   kubernetes-dashboard-7448ffc97b-vhlbx        0/1     Pending   0          4h48m   <none>   <none>   <none>           <none>
kube-system            helm-install-traefik-t927p                   0/1     Pending   0          4h51m   <none>   <none>   <none>           <none>

READY = 0/1 doesn't look good, correct? I'll try uninstalling/reinstalling to see if the issue gets resolved.

All of your pods are pending, not a single one has run yet. Have you looked at the k3s logs? Or described any of the pods to see what they're waiting for?

All of your pods are pending, not a single one has run yet. Have you looked at the k3s logs? Or described any of the pods to see what they're waiting for?

Everything is running fine now. There must have been something with my upgrade to v1.20.2+k3s1 that had gone awry.
I've documented the procedure, repeated it a few times and the new version looks pretty stable and operational now.
Thanks for your help!

Everything is running fine now. There must have been something with my upgrade to v1.20.2+k3s1 that had gone awry.
I've documented the procedure, repeated it a few times and the new version looks pretty stable and operational now.
Thanks for your help!


"TypeError: %d format: a number is required, not tuple" after a number of iteration

I define a model to be optimized by SkOpt gp_minimize according to this: http://slashtutorial.com/ai/tensorflow/19_hyper-parameters/
def create_model(cdepth1,cdepth2,cdepth3,cdepth4,cdepth5,dense1,csize1,csize2,csize3,csize4,csize5,max3,max4):
    input = Input(shape=(img_height, img_width, img_channels))
    x = Conv2D(cdepth1, csize1, padding='same')(input)
    x = ELU(alpha=1.0)(x)
    x = BatchNormalization(axis=channel_axis)(x)

    x = Conv2D(cdepth2, csize2, padding='same')(x)
    x = ELU(alpha=1.0)(x)
    x = BatchNormalization(axis=channel_axis)(x)
    x = MaxPooling2D(pool_size=(3,3))(x)

    x = Conv2D(cdepth3, csize3, padding='same')(x)
    x = ELU(alpha=1.0)(x)
    x = BatchNormalization(axis=channel_axis)(x)
    x = MaxPooling2D(pool_size=(3,3))(x)

    x = Conv2D(cdepth4, csize4, padding='same')(x)
    x = ELU(alpha=1.0)(x)
    x = BatchNormalization(axis=channel_axis)(x)
    x = MaxPooling2D(pool_size=max3)(x)

    x = Conv2D(cdepth5, csize5, padding='same')(x)
    x = ELU(alpha=1.0)(x)
    x = BatchNormalization(axis=channel_axis)(x)
    x = MaxPooling2D(pool_size=max4)(x)

    x = Flatten()(x)
    x = Dense(dense1)(x)
    x = ELU(alpha=1.0)(x)
    x = BatchNormalization(axis=channel_axis)(x)

    x = Dropout(0.5)(x)
    output = Dense(classes_num, activation='softmax')(x)
    model = Model(inputs=input, outputs=output)

    adam = optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=None, decay=0.00005, amsgrad=False)

    model.compile(loss='categorical_crossentropy',
                  optimizer=adam,
                  metrics=['accuracy'])

    return model

with those parameter space:
dimensions = [Categorical([16, 32, 64], name='cdepth1'),
             Categorical([16, 32, 64], name='cdepth2'),
             Categorical([32, 64, 128], name='cdepth3'),
             Categorical([64, 128, 256], name='cdepth4'),
             Categorical([64, 128, 256], name='cdepth5'),
             Categorical([500, 750, 1000], name='dense1'),
             Categorical([(3, 3), (4, 4), (5, 5)], name='csize1'),
             Categorical([(3, 3), (4, 4), (5, 5)], name='csize2'),
             Categorical([(3, 3), (4, 4), (5, 5)], name='csize3'),
             Categorical([(3, 3), (4, 4), (2, 2)], name='csize4'),
             Categorical([(3, 3), (4, 4), (2, 2)], name='csize5'),
             Categorical([(3, 3), (4, 4), (2, 2)], name='max3'),
             Categorical([(3, 3), (4, 4), (2, 2)], name='max4')]

after 7-8 successful iteration, this error suddenly appears:
Traceback (most recent call last):
  File "/home/cngc3/anaconda3/envs/tensorflow/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2961, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-2-49c8f570da87>", line 175, in <module>
    x0=default_parameters)
  File "/home/cngc3/anaconda3/envs/tensorflow/lib/python3.6/site-packages/skopt/optimizer/gp.py", line 228, in gp_minimize
    callback=callback, n_jobs=n_jobs)
  File "/home/cngc3/anaconda3/envs/tensorflow/lib/python3.6/site-packages/skopt/optimizer/base.py", line 249, in base_minimize
    result = optimizer.tell(next_x, next_y)
  File "/home/cngc3/anaconda3/envs/tensorflow/lib/python3.6/site-packages/skopt/optimizer/optimizer.py", line 443, in tell
    return self._tell(x, y, fit=fit)
  File "/home/cngc3/anaconda3/envs/tensorflow/lib/python3.6/site-packages/skopt/optimizer/optimizer.py", line 486, in _tell
    est.fit(self.space.transform(self.Xi), self.yi)
  File "/home/cngc3/anaconda3/envs/tensorflow/lib/python3.6/site-packages/skopt/learning/gaussian_process/gpr.py", line 195, in fit
    super(GaussianProcessRegressor, self).fit(X, y)
  File "/home/cngc3/anaconda3/envs/tensorflow/lib/python3.6/site-packages/sklearn/gaussian_process/gpr.py", line 217, in fit
    self.kernel_.bounds))]
  File "/home/cngc3/anaconda3/envs/tensorflow/lib/python3.6/site-packages/sklearn/gaussian_process/gpr.py", line 454, in _constrained_optimization
    fmin_l_bfgs_b(obj_func, initial_theta, bounds=bounds)
  File "/home/cngc3/anaconda3/envs/tensorflow/lib/python3.6/site-packages/scipy/optimize/lbfgsb.py", line 199, in fmin_l_bfgs_b
    **opts)
  File "/home/cngc3/anaconda3/envs/tensorflow/lib/python3.6/site-packages/scipy/optimize/lbfgsb.py", line 335, in _minimize_lbfgsb
    f, g = func_and_grad(x)
  File "/home/cngc3/anaconda3/envs/tensorflow/lib/python3.6/site-packages/scipy/optimize/lbfgsb.py", line 285, in func_and_grad
    f = fun(x, *args)
  File "/home/cngc3/anaconda3/envs/tensorflow/lib/python3.6/site-packages/scipy/optimize/optimize.py", line 293, in function_wrapper
    return function(*(wrapper_args + args))
  File "/home/cngc3/anaconda3/envs/tensorflow/lib/python3.6/site-packages/scipy/optimize/optimize.py", line 63, in __call__
    fg = self.fun(x, *args)
  File "/home/cngc3/anaconda3/envs/tensorflow/lib/python3.6/site-packages/sklearn/gaussian_process/gpr.py", line 209, in obj_func
    theta, eval_gradient=True)
  File "/home/cngc3/anaconda3/envs/tensorflow/lib/python3.6/site-packages/sklearn/gaussian_process/gpr.py", line 412, in log_marginal_likelihood
    K, K_gradient = kernel(self.X_train_, eval_gradient=True)
  File "/home/cngc3/anaconda3/envs/tensorflow/lib/python3.6/site-packages/sklearn/gaussian_process/kernels.py", line 679, in __call__
    K1, K1_gradient = self.k1(X, Y, eval_gradient=True)
  File "/home/cngc3/anaconda3/envs/tensorflow/lib/python3.6/site-packages/sklearn/gaussian_process/kernels.py", line 754, in __call__
    K2, K2_gradient = self.k2(X, Y, eval_gradient=True)
  File "/home/cngc3/anaconda3/envs/tensorflow/lib/python3.6/site-packages/skopt/learning/gaussian_process/kernels.py", line 391, in __call__
    (X.shape, len(length_scale)))
TypeError: %d format: a number is required, not tuple

I'm quite confused about how this happen, since it can run smoothly before.
Thank you

I recently experienced the same error and under similar circumstances. My solution was to replace Categoricals of integer values to an Integer distribution.
In your case:
Categorical([3, 4, 5], name='csize1') => Integer(3, 5, name='csize1')
I don't know if there's a solution to your other depth Categoricals. Perhaps change (decrease) the iteration size but sample over a similar range?


fixed set_devices error

fixed the error of the function set_devices while keyboard device id = 0

Haha thats a silly mistake, good job catching it!


Change Style/Documentation to not require documentation for ClassMethods modules

Background
It is a common idiom in ruby to define a module named ClassMethods which is automatically extended when it's parent module is included, e.g.:
module Foo
  module ClassMethods
    def bar
      # ...
    end
  end

  def self.included(klass)
    klass.extend(ClassMethods)
  end
end

This inner module does not need additional documentation beyond that of the parent module.
What is this change?
This PR makes it so that Style/Documentation does not register offenses on modules named ClassMethods.

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

Often ClassMethods is a module of ActiveSupport::Concern, so I feel that it is based on Rails. I'm wondering if RuboCop core should support it by default. At least I think it needs to be mentioned in the documentation for users.

I think defining a ClassMethods module is a pattern used outside of Rails too, I'm 👍 with this proposal.

defining a ClassMethods module is a pattern used outside of Rails too

Ah I see! It would be perfect if mentioned in the documentation.

I'm fine with the proposed change, but I also agree it should be documented. I'm also thinking it'd better to have a list of AllowedModules or something like this and just make this the default value for the list.

@Drenmi Ping. :-) If you don't have time to make this configurable you can just resolve the merge conflict and merge it.

It seems someone already beat me to it. 🙂


upwards inference for block bodied lambda returns

From @leafpetersen

A minor annoyance that comes up now and then is that we don't do upwards inference to infer the return type of block-bodied closure literals.  I don't think doing so would be too difficult - we could just keep track of the LUB of the static type of all of the returned values when we visit a function body.

Huh, I could have sworn I filed an issue for this a while back but now I can't find it.
Either way, this was one of the biggest things I noticed when I converted a game of mine to be strong mode clean.

I think we (or I) closed out that bug when I implemented downwards inference for block bodied functions.  This does indeed catch many cases, but there are situations (especially related to generic methods) where it doesn't.  So for example:
List<int> o;
o.map((x) => {return x + 1;});

At the point where we're doing downwards inference, we don't have a useful type to push down into the closure.  Later on when we're instantiating the generic type parameters, we want to use the type of the closure to constrain the type arguments, but here the closure return type will just be dynamic unless we infer based on the returns.

bumping to high, this is coming up in Angular code. Should be an easy fix right?

Might be worth cleaning up: _StaticTypeAnalyzer_computePropagatedReturnTypeOfFunction
It does a full tree traversal looking for return statements in the function. This is not necessary -- the relevant data could be recorded when we visit return statement as part of the original tree walk.
Fortunately, I think it only does the extra walk for local functions & lambdas.

https://codereview.chromium.org/1724543002/


textinput bug

Software Versions

Python: 3.9.6
OS: Windows 10
Kivy: v2.0.0
Kivy installation method: pip install kivy

Describe the bug
the bug happens when I use multiline: False in TextInput.
the problem is that when I write a lot of text, select everything and press Backspace, the cursor comes back outside the widget.
Expected behavior
the cursor must go back within the widget's boundaries
To Reproduce
AnchorLayout:
padding:[200,200,200,200]
TextInput:
multiline:False
Code and Logs and screenshots
https://youtu.be/fscI9hlh9yw
from kivy.app import App
from kivy.lang import Builder

KV = """
AnchorLayout:
    padding:[200,200,200,200]
    TextInput:
        multiline:False
"""
class Program(App):
    def build(self):
        return Builder.load_string(KV)
if __name__ == '__main__':
    Program().run()

This should be fixed in master already.

Ok, thanks!!


Added options to listBranches to filter proteced branches.

Also added getBranchProtection() to retreive protection of a branch.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@24223f7). Click here to learn what that means.
The diff coverage is 83.33%.

@@            Coverage Diff            @@
##             master     #481   +/-   ##
=========================================
  Coverage          ?   90.93%
=========================================
  Files             ?       12
  Lines             ?      408
  Branches          ?        0
=========================================
  Hits              ?      371
  Misses            ?       37
  Partials          ?        0

Impacted Files
Coverage Δ

lib/Repository.js
80.64% <83.33%> (ø)

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 24223f7...76f2f3d. Read the comment docs.

Closing this one. See https://github.com/github-tools/github/pull/483.


Secret Store

This introduces types and hostcalls for the Secret Store, and implements
them in Viceroy, along with configuration to instantiate them.
In Compute@Edge, a Secret Store is an encrypted, read-only key-value
store for sensitive data.  In Viceroy, however, it is a simple
unencrypted in-memory map defined in the fastly.toml file in a
manner similar to Object Stores.
At a high level, a Wasm application using the APIs would:

Open a secret store by name
Get a secret from the store by name
Decrypt the secret by calling its plaintext method.

In Viceroy, Secret Stores are configured in the same way Object Stores
are:
[local_server]
  [local_server.secret_store]
    store_one = [{key = "first", data = "This is some secret data"}, {key = "second", path = "/path/to/secret.json"}]

    [[local_server.secret_store.store_two]]
      key = "first"
      data = "This is also some secret data"

    [[local_server.secret_store.store_two]]
      key = "second"
      path = "/path/to/other/secret.json"

Hey @joeshaw I took a look and this is amazingly well done. I do see it's trying to merge it into the acf/finish-streaming-bodies branch right now so we should probably hold off until that's merged and then set this PR to merge into main instead after that's in, otherwise I think these changes have solid comprehensive test coverage and they're passing so I think we should be okay.

@mgattozzi Sounds good!  Yeah, I wasn't planning this land this until the other branch has landed.  Once that branch is landed, this PR should automatically re-target main.

@mgattozzi With #203 having been merged and the 0.9.1 Rust SDK having been tagged, this should be ready to merge.

Rebased on main, which switched to Wasmtime 4.0.0 and required some tweaks.


Existential subtyping as generic constraint

Updated 'Generalized supertype constraints' section of GenericsManifest based on https://forums.swift.org/t/existential-subtyping-as-generic-constraint/31584.
I think this addresses an important pain point when using protocols and generics together. Maybe this even should be separated from 'Generalized supertype constraints' and placed in 'Removing unnecessary restrictions' section, rather than 'Minor extensions' section.

Can one of the admins verify this patch?

This MR was closed by mistake when gardening branches in my fork. Looks like I cannot edit source branch of the pull request in the GitHub, so I've made a new one - https://github.com/apple/swift/pull/33552


Unable to find uri

I was trying out the TurtleBot3 Gazebo simulation in a VirtualBox, Ubuntu 16.04.
Installations following emanual for PC setup + simulation on https://emanual.robotis.com/docs/en/platform/turtlebot3/simulation/
When I launch Gazebo my TurtleBot burger seems to fall to underground, then I checked my terminal and I think the root cause might be from these two errors.

Error [parser.cc:581] Unable to find uri[model://sun]
Error [parser.cc:581] Unable to find uri[model://ground_plane]

I am not bothered by the sun but I think I atleast need the ground plane since the gravity in physics properties is not 0, and to move the robot around.

seems like the ~/.gazebo/models folder that suppose to have all the default gazebo model is empty. I solved mine by manual adding the gound_plane folder into ~/.gazebo/models.

The Ubuntu 16.04 version is quite outdated, I suggest you switch to a newer version (we teached robotics with ROS melodic on Ubuntu 18.04 and noetic/Ubuntu 20.04 using the turtlebot3-simulation in gazebo in a virtual machine and it loaded the empty-world with the sun and the ground plane correctly)


[Doc] add links for hll functions

What type of PR is this：

[ ] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[x] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[ ] I have checked the version labels which the pr will be auto backported to target branch

[x] 2.5
[x] 2.4
[x] 2.3
[ ] 2.2

run starrocks_admit_test

@mergify backport branch-2.5 branch-2.4 branch-2.3


Job Jar requests

Card to track all the job jar requests posted: https://trello.com/b/QuD7Ykrs/us-beach-job-jar

Set up back-end with best practices (i.e. API framework, CI pipeline, docker setup, other infra setup) https://trello.com/c/39hL4QZK/143-2-week-support-for-social-change-project-for-sr-developer (claimed by Vivian Liao)

Potential ideas:

Do a POC for content management system for form creation
Do a POC for physical letter to case creation

POC for using an OCR to scan handwritten letters and extract useful info from it using Gen AI in order to automate data entry (same concept can be applied to electronic letters w/o the step of using an OCR)

Who is the complainant?
Who is the accused?
Demographic info (i.e. Facility name, address, phone numbers, etc.)
Summary of complaint
Generate a custom response letter

Chatbot to educate several types of audiences about prison/police reform

For Pulomi, build the UI to make it self-service, simple web-app

tracked in v2 board


Namespace missing from update messages

Currently when an update comes across, the message is displayed in slack as:
A pod in namespace has been updated: default/nginxtst-78fd4d557f-2wtrt
What we should expect is
A pod in namespace default has been updated: default/nginxtst-78fd4d557f-2wtrt

is this fixed? If so what release

A pod in namespace default has been deleted: default/eyes-kubewatch-5dc668fb88-5vvnw
A pod in namespace  has been updated: default/eyes-kubewatch-5dc668fb88-5vvnw
getting namespace value for deleted message but not updated:
v0.0.4 for kubernetes v1.9.3

Is this issue resolved? if yes how as I am facing the same issue, not able to see the namespace names while getting update notifications only create notifications shows the namespace name.

I have same issue with chart 3.0.2. Pod's namespace is not displayed.

Env: AKS v1.19.7
Kubewatch version:
  repository: "bitnami/kubewatch"
  tag: "0.1.0"

Also getting the same issue; its intermittent sometimes it correctly populates the namespace but mostly its:

etc.

chart: kubewatch-3.2.2
appVer: 0.1.0


Collapse Adjacent Exents on Cache Fill

on 1.0 when there is a partial cache hit and trickster fetches the missing data, it inserts a new extent into the cache object's extent list for future delta calculations. when trickster is used upstream of a grafana dashboard that reloads frequently, the resulting repeated incremental fill will cause any popular/long running cache object's extent list to eventually match the length of the timeseries itself, thwarting the performance benefits of using extents at all.
when inserting a new extent on cache fill, trickster should check if the new extent is perfectly adjacent to an existing extent and, if so, simply adjust the start and/or end times of the existing adjacent extent to subsume the breadth of the provided extent. extents are already sorted upon insert, so there should be no additional expense for a merge operation.

Fixed in #168


Add support for the EscalatePlugins matching pattern.

 You should sign our Contributor License Agreement in order to get your pull request merged.

I'm not sure for the naming of the new variable but otherwise LGTM


Add the clash-verilog package

I don't really get the error.... none of my packages specify a doctest > 0.10 lower bound... why is doctest-0.10 erroneously selected?

doctest-0.10 and there is no upper bound in place for it yet. This is unrelated to your package. I don't think you need to do anything.

Tested locally and merged, thanks!


SQS adding QueueURL to request returns client exception

Using the <IP_ADDRESS> beta .NET SDK (with .NET Core RC2), when attempting a ReceiveMessageAsync or DeleteMessageAsync with the queueUrl property set to any valid queue URL (including the queue URL set for the AmazonSQSClient), returns a client exception, "the specified queue does not exist or you do not have access to it".
sample client:
var sqsConfig = new AmazonSQSConfig
{
	RegionEndpoint = "RegionEndpoint.USEast1",
	ServiceURL = "https://sqs.us-east-1.amazonaws.com/123456789012/myQueue"
};

var credentials = new AnonymousAWSCredentials();
var client = new AmazonSQSClient(credentials, sqsConfig);

sample delete message request with the queueURL set:
private static DeleteMessageResponse DeleteMessageFromQueue(string receiptHandle)
{
	var request = new DeleteMessageRequest(
		queueUrl: "https://sqs.us-east-1.amazonaws.com/123456789012/myQueue",
		receiptHandle: receiptHandle);

	return _client.DeleteMessageAsync(request).Result;
}

When the DeleteMessageRequest object has the queueURL set as shown above, the indicated client exception is thrown.  When the queueURL is explicitly set to null for the DeleteMessageRequest object, the DeleteMessageAsync operation is successful.
The same case is true for the ReceiveMessageRequest when it has its QueueUrl property set.
Why would setting the client QueueUrl and the DeleteMessageRequest queueUrl properties to the same value cause this exception?  Why do the requests need their QueueUrl properties set to null in order for this to work?

The sample code has a problem where the ServiceURL is malformed.  See the documentation here.  ServiceURL property should be set to "https://sqs.us-east-1.amazonaws.com".  Furthermore, since RegionEndpoint property is specified, setting ServiceURL is redundant in this case.


How easy would it be to port react component to ractive?

Building on this issue : https://github.com/ractivejs/ractive/issues/2443, I would like to know how easy it would be to port react components to ractive? It would really help a lot to have a nice library of reusable components. I am sure the guardian is using some slick components they built over the years of publishing infographics or am I wrong and they do custom work each time?
Anyways, if it is not too hard to port, I would not mind porting some.

I am sure the guardian is using some slick components they built over the years of publishing infographics or am I wrong and they do custom work each time?

From what I see @Rich-Harris posts on Twitter from time to time, they look pretty custom every time. They may have a stash of internally reused components.

I would like to know how easy it would be to port react components to ractive?

Pretty easy, almost too easy even. Both frameworks almost have the same lifecycle events. The only difference I see is that in React, markup can be inlined with logic while in Ractive, markup and data is explicitly separate. Also, two-way binding is by default enabled, but you can disable it. Isolation is disabled by default, but you can also enable it.
Taking a component example in the React documentation.
// tutorial13.js
var CommentBox = React.createClass({
  getInitialState: function() {
    return {data: []};
  },
  componentDidMount: function() {
    $.ajax({
      url: this.props.url,
      dataType: 'json',
      cache: false,
      success: function(data) {
        this.setState({data: data});
      }.bind(this),
      error: function(xhr, status, err) {
        console.error(this.props.url, status, err.toString());
      }.bind(this)
    });
  },
  render: function() {
    return (

Comments

        <CommentList data={this.state.data} />
        <CommentForm />

    );
  }
});

The equivalent Ractive would be something like the following:
var CommentBox = Ractive.extend({
  twoway: false,
  isolated: true,
  data(){
    return {
      data: []
    }
  },
  onrender(){
    $.ajax({
      url: this.get('url'),
      dataType: 'json',
      cache: false,
      success: data => this.set('data', data),
      error: (xhr, status, err) => console.error(this.get('url'), status, err.toString())
    });
  },
  template: `

Comments

      <CommentList data="{{ data }}" />
      <CommentForm />

  `
});

Great! I will experiment. Closing this for now.


rm TransactionError

This was always a fairly clunky API. Its main upside was that type
inference was able to figure out the error type in more cases than the
current implementation does. It has much larger downsides though. The
most common case is that you're just returning diesel::result::Error
anyway, so this enum was just an annoyance. If you weren't returning
that, you were probably returning an application specific error which
has a variant for diesel::result::Error, and now also had to handle
this additional type. It also turns out that
TransactionError<Box<::std::error::Error>> doesn't implement
::std::error::Error.
The new API might require explicitly stating the error type in a few
more places (in particular try!(conn.transaction(|| try!(query); Ok(()))); Ok(...) stopped inferring), but I think that this will end up
being more ergonomic for most uses.

@killercup re-review?


onChangeListener called earlier than the completion of the transaction

getDatabase().beginTransaction();
......
document.putProperties(map);......
-> onChangeListener -> Document changed
..... sleep
getDatabase().endTransaction(true);
It's normal work? If I do not want to confirm the transaction and will do getDatabase().endTransaction(false); I also got an event(((

version 0.0.0-503

Hi @QRPro You don't explicitly need to call Database.beginTransaction() and Database.endTransaction(). CBL Android/Java internally calls it when user saves a document.

We use beginTransaction() and getDatabase().endTransaction(); to roll back the transaction if we have a problem. document.putProperties not always succeeds!
Example:
getDatabase().beginTransaction();
......
Boolean r1 = document.putProperties(map);
Boolean r2 = document.putProperties(map2);
if (r1 && r2)
getDatabase().endTransaction(true);
else {
getDatabase().endTransaction(flase);
ShowReport("Error: try again");
}

try {
document.putProperties(map);
return true;
}
catch (Exception e) {
return false;
}

If app calls beginTransaction() and endTransaction(), it makes nested transaction. I believe it might work, but it is not expected way to use Couchbase Lite.
ChangeListener is not fired from endTransaction(). So if app calls beginTransaction() and endTransaction(), changeEvent could be fired between them.


Report collector command to add DP noise

This adds a new command to the report collector binary that takes the output file created by IPA commands and applies noise according to (epsilon, delta, cap) values provided as arguments to this command.
After discussing this with @bmcase I got convinced that we need unsigned integers to represent values with added noise because otherwise we may introduce bias to the results (moving mean to the right) that may prevent further aggregations.
Sample command
 ./target/release/report_collector --input-file /tmp/breakdowns.log --output-file /tmp/noise.log apply-dp-noise -e 1.0 -e 2.0 -e 3.0 -c 5

Sample output
+---------+----------+-------+-----+-----+-----+-----+-----+-----+-----+----+-----+-----+-----+----+-----+-----+----+-----+-----+----+-----+-----+
| Epsilon | Variance | Mean  | 1   | 2   | 3   | 4   | 5   | 6   | 7   | 8  | 9   | 10  | 11  | 12 | 13  | 14  | 15 | 16  | 17  | 18 | 19  | 20  |
+================================================================================================================================================+
| -       | -        | -     | 103 | 120 | 119 | 151 | 84  | 0   | 0   | 0  | 0   | 0   | 0   | 0  | 0   | 0   | 0  | 0   | 0   | 0  | 0   | 0   |
|---------+----------+-------+-----+-----+-----+-----+-----+-----+-----+----+-----+-----+-----+----+-----+-----+----+-----+-----+----+-----+-----|
| 3.000   | 9.528    | 0.000 | 110 | 123 | 113 | 145 | 108 | -20 | -11 | -8 | -6  | -6  | -3  | 14 | 9   | 5   | -3 | -10 | 6   | 14 | -4  | 4   |
|---------+----------+-------+-----+-----+-----+-----+-----+-----+-----+----+-----+-----+-----+----+-----+-----+----+-----+-----+----+-----+-----|
| 2.000   | 14.292   | 0.000 | 108 | 117 | 118 | 168 | 80  | -1  | 8   | 14 | -19 | -14 | 1   | 12 | -15 | -3  | 19 | 17  | -18 | 8  | -4  | 12  |
|---------+----------+-------+-----+-----+-----+-----+-----+-----+-----+----+-----+-----+-----+----+-----+-----+----+-----+-----+----+-----+-----|
| 1.000   | 28.584   | 0.000 | 89  | 65  | 155 | 150 | 87  | -1  | -18 | -9 | 17  | -18 | -31 | -7 | -18 | -13 | 30 | 20  | -42 | 28 | -19 | -20 |
+---------+----------+-------+-----+-----+-----+-----+-----+-----+-----+----+-----+-----+-----+----+-----+-----+----+-----+-----+----+-----+-----+

json file
{
  "1": {
    "breakdowns": [
      89,
      65,
      155,
      150,
      87,
      -1,
      -18,
      -9,
      17,
      -18,
      -31,
      -7,
      -18,
      -13,
      30,
      20,
      -42,
      28,
      -19,
      -20
    ],
    "mean": 0.0,
    "std": 28.584295690354633
  },
  "2": {
    "breakdowns": [
      108,
      117,
      118,
      168,
      80,
      -1,
      8,
      14,
      -19,
      -14,
      1,
      12,
      -15,
      -3,
      19,
      17,
      -18,
      8,
      -4,
      12
    ],
    "mean": 0.0,
    "std": 14.292147845177317
  },
  "3": {
    "breakdowns": [
      110,
      123,
      113,
      145,
      108,
      -20,
      -11,
      -8,
      -6,
      -6,
      -3,
      14,
      9,
      5,
      -3,
      -10,
      6,
      14,
      -4,
      4
    ],
    "mean": 0.0,
    "std": 9.528098563451545
  }
}

After discussing this with @bmcase I got convinced that we need unsigned integers to represent values with added noise because otherwise we may introduce bias to the results (moving mean to the right) that may prevent further aggregations.

I think you mean we need signed integers

revealing the standard deviation doesn't leak additional info right?

revealing the standard deviation doesn't leak additional info right?
yea we reveal aggregates in the clear and we are not supposed to run this DP in prod. This command exists to illustrate the effects of adding noise to real data

revealing the standard deviation doesn't leak additional info right?
No, you can get this directly from epsilon, delta, and sensitivity.  It's just shown for convenience in interpreting the results when playing with different epsilons and caps.


Permissions

Just curious if theres functionality to allow like a dj role the ability to use the bot.

No, and there are no plans to add this feature, sorry.


Exalate Testing Ticket

This is synced with exalate

Testing bi-directional sync.

Stephen Kirby commented: Can I tag @stirby?


Web Deploy to Azure Linux Web Apps Causes Random Exceptions

Not sure if this is the correct place. If not please advise.
When deploying ASP.NET Core 3 websites to Azure Web Apps on Linux using Visual Studio 2019's Web Deploy, random, arbitrary exceptions come up. I have not seen any method to the madness. This started about 2 months ago.
It seems to publish code "partially" or somehow malformed. Across 10 different sites, I have seen errors from BadFormatType, to null objects, to other errors I have never seen before. But the rest of the site will work just fine. It's just one code path that fails (or multiple).
Easy 100% Fix:

Stop the app service,
Deploy (same way, same code), No changes
Start the app service

My solution is now to stop the service, deploy and then start it. I am not sure if this happens when deploying via any other method.
Latest Example
System.BadImageFormatException:
   at System.Runtime.CompilerServices.RuntimeHelpers._CompileMethod (System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Reflection.Emit.DynamicMethod.CreateDelegate (System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Linq.Expressions.Compiler.LambdaCompiler.Compile (System.Linq.Expressions, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)
   at System.Linq.Expressions.Expression`1.Compile (System.Linq.Expressions, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)
   at Microsoft.Extensions.Internal.ObjectMethodExecutor..ctor (Microsoft.AspNetCore.Mvc.Core, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at Microsoft.Extensions.Internal.ObjectMethodExecutor.Create (Microsoft.AspNetCore.Mvc.Core, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvokerCache.GetCachedResult (Microsoft.AspNetCore.Mvc.Core, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvokerProvider.OnProvidersExecuting (Microsoft.AspNetCore.Mvc.Core, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionInvokerFactory.CreateInvoker (Microsoft.AspNetCore.Mvc.Core, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at Microsoft.AspNetCore.Mvc.Routing.ActionEndpointFactory+<>c__DisplayClass7_0.<CreateRequestDelegate>b__0 (Microsoft.AspNetCore.Mvc.Core, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke (Microsoft.AspNetCore.Routing, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware+<Invoke>d__5.MoveNext (Microsoft.AspNetCore.Authorization.Policy, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware+<Invoke>d__6.MoveNext (Microsoft.AspNetCore.Authentication, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware+<<Invoke>g__Awaited|6_0>d.MoveNext (Microsoft.AspNetCore.Diagnostics, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60)

Hi @tbasallo, this repo is used to track issues with the "Deploy" GitHub Action for Azure App Service which uses Zip Deploy, not Web Deploy to deploy code to your app.  Also Linux apps don't even support Web Deploy so even if we're not talking about GitHub Actions, it wouldn't work.  Can you clarify which client you're using to deploy from?  Is it GitHub Actions?  Or something else?

I am using "Web Deploy" to an Azure App Service on Linux from within VS2019.


Forbade usage of function with an error union return type

Possible way of fixing #3
This however has the downside that all error union functions are now disallowed. I don't think there is a way to tell whether an error set is in inferred or not
I've included an example file which will panic during compilation before this change, whereas now it gives you a proper error message and diagnostic.
Up to the library maintainers whether this is an appropriate trade off or not.

I believe the value of the ErrorSet switch is null if it's inferred. I've implemented a fix, but I still need to make sure that's actually true before I push my changes.

After trying to figure it out, as far as I can tell, there really is no way to detect if an error set is inferred. For now, I'll add it to #1 and hope the Zig devs implement a way to do that, and add some documentation about using errors in an interface.
I don't want to disallow using errors in an interface as they are quite useful. So for now as long as people know they can't use inferred error sets, that should be a workable solution for now.


Transpose sign ' recognized as string

(Original issue 1070 created by innerlee on 2015-01-02T03:13:40.718319+00:00)
In matlab, the transpose of a matrix A is written as A' while pygments regard that ' as the start of a string. This is wrong.
You can see what's wrong in the attached img.
thx.

(Original issue 1070 last updated on 2015-03-08T06:43:46.439117+00:00)
(Issue automaticaly closed due to status in Bitbucket: resolved)

(Original comment by birkenfeld on 2015-03-08T06:43:46.451421+00:00)
Thanks for the report, this is fixed in the latest version.


Send email notification

Hi, I can't configure sending notifications via email
the system does not send any emails even if I have set my provider correctly
can you help me?

Can you show what is the configuration for that provider?

Yes I'm using a Google SMTPS
my env:
MAIL_MAILER=smtp
MAIL_HOST=smtps.aruba.it
MAIL_PORT=587
<EMAIL_ADDRESS>MAIL_PASSWORD=xxxxxxxxxxxx
MAIL_ENCRYPTION=ssl

Can you check the queue? In some cases all the emails that needs to be sent are put in the queue.

the queue shows me some running and Done activities on the notification part but I don't know if they also concern emails or just the notification filament

I saw and received two emails to change the status of the ticket
However, they don't arrive due to ticket modification, ticket manager appointment, new ticket creation, new user addition... maybe I'm doing something wrong in the helper configuration

Here is the list of all notifications on project:

Also you can look on the Ticket model on boot method. There you can see all the events that are generatiing.

ticketComment had the commented notification function... I was stupid not to check it, thanks for the help now the emails are sent
Thank you


month should be initialized with the first day of the month

Worthwhile change.
Are you seeing this actually break something? The only places month gets used are to retrieve the actual month, so it shouldn't really matter.

@ChiperSoft Actually the users of our system found this bug.
The next month button was getting disabled on 'today-past' mode even though it still has one month ahead.

Ah, I think somebody had reported that bug a long time ago but I couldn't reproduce it.
Thank you!

0.6.1 is published with this fix.


defaults: bind alt+f4 to closeWindow

Summary of the Pull Request
This was missed in #754.
PR Checklist

[x] CLA signed. If not, go over here and sign the CLA

/azp run


Added basic readme file for bgp-agent root

and fixed png graphics for readme in bgp/gobgp package


tar.gz that is created for specific version accumulates previous tar.gzs, making filesize grow each time

Hello!
This may be the intended behavior, but I wanted to ask in case there is something I could do.
When a make a release (which has been going very smoothly now, thank you :) ) it generates the
tar ball  at:
rel/blockytalky/releases/0.1.4/blockytalky.tar.gz or whatever version number I am on.
I noticed that each time I make a release, this file gets a lot bigger (it was ~40MB the first time, now it is 100MB the second time). I see it has inside of it the tarballs for its own version and the previous versions. This results in the large increase in size each time (I am just worried about sustaining that level of redundancy 5-6 builds in.) I was wondering:
What is the proper thing for me to do if I just want the 0.1.4 tarball and not the history for deployment purposes? I would like to be able to drop the simple, 40MB tarball on my raspberry pis without the history unpacking with it.
Should I get the inner tarball from this one? or is there another way to disable the accumulation?
Thanks!
Edit: I renamed the tar file manually. I changed the question to reflect the tarball name that is generated by mix release

@mpahrens Yeah this is definitely not intended, The tarball should only contain the current release, I'll do a bit of digging :)

I'm not totally satisfied with my solution to this one, but it works as intended and fixes another bug which was also introduced by the same change that introduced this one. It's pushed to master, once the build passes I'll push to hex!

Thanks!!


Consider changing signature of by(String) to by(Key[T])

Is there a technical reason the current implementations only support using String? Or is it just a todo?

Noting there's a whole bunch of the elementPropertyKey like parameters that are String rather than Key[T].

by can be used in conjunction with lot's of different steps in gremlin-groovy.
For gremlin-scala it's a bad idea though because it's important for the type inference to know which step it's being used with. That's why I provide orderBy and want to deprecate order.by. Same for group.by, better use groupBy.
So basically I want to get rid of all by variants. Maybe now we're at a point where we can make that keen move... thoughts?

based on #143 there might actually be a need for by. So maybe we should just add by(Key) as you suggested.

If orderBy(A) translates into the TP equivalent order().by(A), is there a semantic (or performance) difference between order().by(A).by(B) vs. order().by(A).order().by(B) when writing orderBy(A).orderBy(B) in GS?
Personally, I'd argue for sticking with mirroring TP Gremlin as closely as possible, rather than introducing new functions.

In the case of order.by that completely makes sense. the by step was only annoying in a different context: group.by. I apologise, little by step! :)


Update fmt to 10.0.0

Fix build for fmt 10.x and update the bundled version to 10.0.0.

Thanks!

Out of curiosity, are there any specific reason to forward-declare the fmt structures/class over including an fmt header ?
While this patch addresses the issue at hand by adding support for fmt 10, it drops support for fmt 9 and will not be compatible with next major release until a similar change moves support from 10-only to 11-only.


HLS videos don't work in some RSS readers

Example of blogpost containing a video (https://xeiaso.net/blog/hls-experiment):

Inspecting the video element reveals that it's just an empty <video width="100%" controls=""></video> tag.
What are the advantages of MPEG2-TS HLS (with H264 inside) for non-live videos compared to a <video> tag with a static {VP8+Opus} WebM container or {H264+AAC} MP4 container?
For iOS support, did you try HLS with another container (such as MP4 using {H264+AAC} codecs)?

I just pushed most of a fix in this commit: https://github.com/Xe/site/commit/0dec562c15add115377fe6905b43f3b33d735079
There are some cases I just won't be able to support, and I fear that RSS readers may be one of them unless your browser is able to understand the mime type application/vnd.apple.mpegurl. I don't know what else to suggest.
I added a fallback video too: https://cdn.xeiaso.net/file/christine-static/blog/HLSBROKE.mp4
I hope this at least fixes the bleeding.

What are the advantages of MPEG2-TS HLS (with H264 inside) for non-live videos compared to a  tag with a static {VP8+Opus} WebM container or {H264+AAC} MP4 container?

XeDN works better with many smaller files than fewer big files. I need to fix a lot of XeDN's fundamental design, but this is mostly a hack designed to allow me to just get things working.


Add get_leaf_depth method to MerkleStore

This method is needed to support MASM implementation of Tiered STM. The signature of the method could be:
pub fn get_leaf_depth(&self, root: Word, index: u64) -> Result<u8, MerkleError>

This method would traverse the tree specified by the root from the top and return as soon as it finds a leaf node (i.e., node with no children) or a root of an empty subtree.
The error conditions would be:

There is no tree for the specified root in the store.
We got to depth 64 but the node at that depth is not a leaf.

To disambiguate, I renamed index to path so we don't mix with the depth/index pair

There is a odd behavior with the store (or maybe I'm just overlooking something). I think this test shouldn't pass
#[test]
fn node_path_should_be_truncated() {
    let keys: &[u64] = &[
        0b11010010_11001100_11001100_11001100_11001100_11001100_11001100_11001100,
        0b00000000_11010010_11001100_11001100_11001100_11001100_11001100_11001101,
    ];

    let mut store = MerkleStore::new();
    let root: Word = EmptySubtreeRoots::empty_hashes(64)[0].into();

    // insert first node - works as expected
    let key = keys[0];
    let depth = 64;
    let node = [Felt::new(key); WORD_SIZE];
    let index = NodeIndex::new(depth, key);
    let root = store.set_node(root, index, node).unwrap().root;
    let result = store.get_node(root, index).unwrap();
    let path = store.get_path(root, index).unwrap().path;
    assert_eq!(node, result);
    assert!(path.verify(index.value(), result, &root));

    // insert second node on a different depth - works as expected
    let key = keys[1];
    let depth = 56;
    let node = [Felt::new(key); WORD_SIZE];
    let index = NodeIndex::new(depth, key);
    let root = store.set_node(root, index, node).unwrap().root;
    let result = store.get_node(root, index).unwrap();
    let path = store.get_path(root, index).unwrap().path;
    assert_eq!(node, result);
    assert!(path.verify(index.value(), result, &root));

    // attempt to fetch a path of the second node to depth 64
    // note: there is no such pre-image, this command shouldn't pass as the path will fail!
    let index = NodeIndex::new(64, key);
    let result = store.get_node(root, index).unwrap();
    let path = store.get_path(root, index).unwrap().path;
    assert!(path.verify(index.value(), result, &root));
}

I also probably need to update this
https://github.com/0xPolygonMiden/crypto/blob/9389f2fb40bce30b5429a7d3820416f1f8e723ed/src/merkle/store/mod.rs#L314
to
let mut index = NodeIndex::new(path.depth() as u8, index_value);

Closed by #125.


Terminal themes use ANSI colors

Setting ANSI colors is a critical part of a theme looking good. Instead of allowing the user to customize the ANSI theme colors, the theme itself should set the colors, as most terminal themes do (besides the osx default themes).
Examples of before and after with this PR:
Solarized Dark

Dracula

One Dark

Merged, thanks! ae4dee7269471a1448c2f3d23996448d4a978d66
I added the themes back in too.


Do you have Dropdown-sidebar?

Just like materializecss.com, the dropdown sidebar

mdl-layout__drawer

The expansion panel component coming in the next (and final) release will fill this use-case. Might need some extra tweaking in an app to be used in a drawer with the right UX.

Thx man @Garbee

Since that will fill the case I'm going to close this out.
Thank you.


Flutter3.7.3 fails to compile 'flutter build web' on linux

I compile flutter web in linux, it works when flutter3.0.1, when I upgrade to 3.7.3 it doesn't work. I noticed that dart2js does not work after dart2.18.0, is it related to this? https://dart.dev/tools/dart2js.

I try to use dart compile js -O2 -o out/main.js web/main.dart, but I get a lot of errors.

I also didn't find an answer for dart:ui for the web, anyone have any suggestions, thanks！

Hi @HSCOO
I don't see the issue with flutter build web command on the latest Flutter stable channel. Can you share the complete output of flutter build web -v? (Please provide the the output in text format instead of a screenshot for better readability and investigation)
Also, please retry on the latest stable and master channels to see if the issue still persists or not.


Don't create a "styles.bundle.js" if entry point is a style file treated by a plugin ("extract-text-webpack-plugin" in this case)

Do you want to request a feature or report a bug?
[x] bug

What is the current behavior?
Given the following config, which has a "styles" entry, that points to a "scss" file: https://gist.github.com/MrCroft/9a1b1039ab44e5a4bb829abb663f85bb#file-webpack-config-js
Webpack generates a styles.min.css file in the dist/css folder, which is exactly what is desired.
But it also creates a styles.bundle.js file inside the dist/ folder - which isn't needed.
If the current behavior is a bug, please provide the steps to reproduce.
It can be reproduced by simply running webpack on this config.
And this is my package.json file.

What is the expected behavior?
If an entry is a file (or an array of files) that is treated by a plugin (in this case - the "extract-text-webpack-plugin"), with the plugin generating the output, there shouldn't exist a styles.bundle.js file in addition to the css file.
If this is a feature request, what is motivation or use case for changing the behavior?
I'm not sure if this would fall under the "feature request" or under the "bug" category. I've filled it as a "bug".
Please mention other relevant information such as the browser version, Node.js version, webpack version and Operating System.
Node.js: 8.5.0
Webpack: 3.6.0
OS: Windows 10

css-only is not supported currently. It may be supported with the next major version when CSS support is added.

I had the same "issue"! But I figured it out:
If I have entrypoints defined like this:
  entry: {
    main: ["./src/scripts/main.js"],
    style: ["./src/styles/main.scss"]
  }

Then the output is:
Asset       Size  Chunks             Chunk Names
index.html  200 bytes          [emitted]
main.bundle.js  987 bytes       0  [emitted]  main
style.bundle.js  966 bytes       1  [emitted]  style
style.css   22 bytes       1  [emitted]  style

But if I define my entrypoints as:
  entry: {
    main: ["./src/scripts/main.js", "./src/styles/main.scss"]
  },

Then the output is:
Asset        Size  Chunks             Chunk Names
index.html   137 bytes          [emitted]
main.bundle.js  1010 bytes       0  [emitted]  main
main.css    22 bytes       0  [emitted]  main

Which is good! ✅
But I'm not sure exactly why.. 🤔 It's not specified in the docs https://webpack.js.org/configuration/entry-context/#entry


Unable to test a component

http://stackoverflow.com/questions/37479892/fixture-detectchanges-behaves-in-a-strange-way-when-i-add-service-to-the-constru

This is outside of the scope of this repo and without an explanation of how it applies.


macOS (Catalina) xrdp building error

When building under MacOS Catalina I get the following error :
[…]
  CCLD     xrdp-xcon
Making all in chansrv
  CC       chansrv.o
In file included from chansrv.c:32:
In file included from ./devredir.h:24:
In file included from ./irp.h:30:
./chansrv_fuse.h:30:5: error: unknown type name 'off_t'
    off_t           size;              /* Size of file, in bytes.           */
    ^
./chansrv_fuse.h:103:34: error: unknown type name 'off_t'
                                 off_t offset,
                                 ^
2 errors generated.
make[3]: *** [chansrv.o] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Help will be appreciated. Thanks.

Hi @Peter-J-Jansen
Can you try adding this line to xrdp/sesman/chansrv/chansrv_fuse.h above the line #include "arch.h":-
#include <sys/types.h>

That's where off_t is defined according to the POSIX standard. So if it's available of MacOS, that's where it will be.
Let me know if that gets you going, and if so I'll submit a PR to get it into devel. I don't have access to an installation of MacOS myself, so I can't test it here.
HTH

Dear HTH,
Thanks for your speedy help, and it worked ! This is what I did :
hercules@pjmacz390 xrdp % git diff sesman/chansrv/chansrv_fuse.h
diff --git a/sesman/chansrv/chansrv_fuse.h b/sesman/chansrv/chansrv_fuse.h
index 9a94900e..80cc3e2d 100644
--- a/sesman/chansrv/chansrv_fuse.h
+++ b/sesman/chansrv/chansrv_fuse.h
@@ -19,6 +19,7 @@
 #ifndef _CHANSRV_FUSE_H
 #define _CHANSRV_FUSE_H

+#include "sys/types.h"
 #include "arch.h"

 #include "ms-erref.h"
hercules@pjmacz390 xrdp %

And as a result, the make (and sudo make install) worked perfectly. I can now try to configure and see if I can get xrdp to work on MacOS Catalina.
Cheers,
Peter

The xrdp installation appears to work. After starting xrdp (sudo /usr/local/sbin/xrdp), ticking Screen Sharing for all users, and setting a  VNC password, I can successfully RDP from a Windows (10, build 1909) PC to this macOS xrdp, but ... ONLY using "vnc-any". Neither the "Xorg" for "Xvnc" session managers work. I presume this is as expected with what I have currently installed.
In order to try getting "Xorg" to work, I then moved on to the "xorgxrdp" installation, and this is the new problem where I got stuck :
git clone https://github.com/neutrinolabs/xorgxrdp.git
cd xorgxrdp
./bootstrap
./configure
[...]
checking for pkg-config... /usr/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for xorg-server >= 0... no
configure: error: please install xserver-xorg-dev, xorg-x11-server-sdk or xorg-x11-server-devel

Is the above "missing" Xorg perhaps because I installed XQuartz (using XQuartz-2.7.11.dmg) instead of for example "xorg-server" from MacPorts ? For me Quartz is working just fine (e.g. for "x3270" which I use a lot).
Any help will be appreciated !
Thanks,
Peter

Hi Peter,
Glad the fix worked. I'll submit a PR with it soonish, family commitments permitting!

xorgxrdp is highly dependent on Xorg, so that will need to be available for you to compile xorgxrdp. You'll need development files in addition to the runtime files.
To get the Xvnc backend working you'll need a working installation of the Xvnc server

I'm afraid I can't be much more help than that as I don't have access to a MacOS installation. I hope that's useful.
I suggest raising a separate issue if you get further and need more advice so we can keep this one dedicated to your original problem
Matt

Hi Matt,
Thanks for your update. I agree with you that this xrdp issue can be closed. I just opened a new issue, neutrinolabs/xorgxrdp 155. It shows that I was able to correct my xorgxrdp configure problem like this :
./configure PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig

which resulted in a successful building of "xorgxrdp" based on my XQuartz installation, but then a more serious error developed as "Xorg" reports a fatal error at startup, "Cannot run in framebuffer mode", which I somehow suspect to be a tougher problem.
At any rate, thanks for your support, xrdp works for me, albeit only using the vnc-any session manager, which has some of the known VNC drawbacks. (I think I prefer TeamViewer, but that's just a personal opinion.)
Cheers,
Peter

I have problem when run ./configure PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig
It error
configure: error: please install xserver-xorg-dev, xorg-x11-server-sdk or xorg-x11-server-devel

I have problem when run ./configure PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig
It error
configure: error: please install xserver-xorg-dev, xorg-x11-server-sdk or xorg-x11-server-devel

Take a look at config.log and see if there are any errors. For me I had the following:
Package xproto was not found in the pkg-config search path.
Perhaps you should add the directory containing `xproto.pc'
to the PKG_CONFIG_PATH environment variable
Package 'xproto', required by 'xorg-server', not found
configure:12955: $? = 1
configure:12969: $PKG_CONFIG --exists --print-errors "xorg-server >= 0"
Package xproto was not found in the pkg-config search path.
Perhaps you should add the directory containing `xproto.pc'
to the PKG_CONFIG_PATH environment variable
Package 'xproto', required by 'xorg-server', not found

So I ran:
brew install xorgproto
Then I got:
In file included from rdpDraw.c:44:
/opt/X11/include/xorg/dixfontstr.h:30:10: fatal error: 'X11/fonts/libxfont2.h' file not found
#include <X11/fonts/libxfont2.h>
         ^~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

So I ran:
sudo nano /opt/X11/include/xorg/dixfontstr.h
Changed the following lines:
//#include <X11/fonts/libxfont2.h>
#include "../X11/fonts/libxfont2.h"

Now it compiles

have you been able to expand the xrdp session over multiple displays?

Oh I have confige successful on MAC Bigsur
But when connect via remote desktop we only see black screen. How to fix the problem?


test: preserve identifiers in source maps

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Please rename the plugin to something relate with sylius.

Firstly, Thank you for your great work.
But The name "google-tag-manager-enhanced-ecommerce-plugin" make a little confuse. Please rename it to something relate with Sylius.
It will help other people easy find this plugin and easy recognize it when read the title ( a plugin for sylius). Thanks

Hi @tuanphpvn. Thanks for your message.
I must say I totally agree with you. I would like to put 'sylius' in front of the repository name, e.g. 'sylius-google-tag-manager-enhanced-ecommerce-plugin' which I would also like to do with some other plugins. When developing, the instructions from Sylius team were clear to not do that. I also agree it's less clear to potential users. The type of the package in composer.json is set to 'sylius-plugin' which makes it discoverable, but it's less easy.
I'll get in contact with Sylius team to see if views have changed.


Remove, or at minimum, deprecate Http2Client.SSL

In light 1.6.11, the static variable Http2Client.SSL is no longer eagerly initialized. This is a functionally breaking change from light 1.6.10.
https://github.com/networknt/light-4j/pull/612/files#diff-905ed9c154545ecedeab300229fa9b99
Applications that assume the SSL variable is initialized, may fail mysteriously. I suggest that either:

Http2Client.SSL is deleted from Http2Client in light 1.6.12
Http2Client.SSL is deprecated

In either case, the changelog (and also possible deprecation comments) should contain documentation stating that SSL is no longer eagerly initialized, and that the Http2Client.getDefaultXnioSSL method should be used instead (https://github.com/networknt/light-4j/pull/624).
My team would personally like to see option 1. While it could cause build failures in user applications, we believe that this is an appropriate result, as it will force end users to examine their use of the SSL variable and save them having their code build, but then fail mysteriously when run.

@miklish It can be removed. For normal applications, they are using the connect method of Http2Client so nobody realized that the SSL is lazily initialized. In my mind, it won't break existing applications. The only application that is impacted is the light-router which is using the Http2Client.SSL for the Undertow Client used in the router. It was a hack in my mind and the risk is controlled.

Ok cool. I will create a PR to make it private. Thanks

 make Http2Client.SSL private to block users to use it directly

 make Http2Client.SSL private to block users to use it directly master


Support no_std

This PR turns downcast-rs into a no_std crate.
Pros: no_std environments could directly use this crate from crates.io.
Cons: Currently the stable branch of Rust cannot compile it because feature(alloc) is unstable now. To compile it using rust stable, one should set env var RUSTC_BOOTSTRAP=1 to turn on the alloc feature gate.
p.s. cargo test would fail at doctest due to missing GlobalAllocator, while cargo doc success.
Signed-off-by: dingelish<EMAIL_ADDRESS>

Thanks for this PR and the considerations you mentioned above!
I'd like to acknowledge that I've seen it and read through it. But before accepting it, I'd like to read up a bit more on #[no_std] and find out whether there's any way to feature gate things so that this still works on stable rust. If that's possible, then I can follow this up with tests. This crate so far is intentionally constrained to safe and stable rust.

Sure. This PR conflicts with stable rust. We can close this now and wait for the stabilization of feature(alloc). 😃

If you don't need the Box downcasting methods, then you could avoid producing them in no_std via a feature flag defined like in https://github.com/rust-lang/rust/issues/42190. Then you should not need alloc. Would that work for your needs?


iml server remove vs force-remove

"iml server remove" requires --delete_hosts where "iml server force-remove" just uses the server to delete.  I'd prefer the "force-remove" style.

@beevans PRs welcome.
This should be a simple fix
https://github.com/whamcloud/integrated-manager-for-lustre/blob/a714020054a429f88726783f24a7d8248316997c/iml-manager-cli/src/server.rs#L81-L86
The Remove variant just needs to be updated to look like the ForceRemove variant.


Implement Breadth-First as alternative to current generation of initial populations

Currently, initial population is generated using a Depth-First Search (DFS) approach (no optimal search, we don't care about initial population performance).
However, this leads to little genetic variety (most paths will be approximately equal) and plateaus in genetic evolution. Combine DFS with a Breadth-First Search (BFS) when generating initial populations, in order to have more genetic variety (also, almost by definition, BFS paths should be much closer to optimum, at least in graphs with large number of edges).
An awesome nice-to-have would be a possible customization of the percentage generated with each approach (for instance, a way to specify "Generate 20% of initial pop using BFS, and 80% using DFS")

There are issues with breadth-first implementation as kshortest due to cycles and further evolution. For now, the issue is in closed standby


Added ubuntu jammy base docker image for modules

go-cover-view

go-cover-view

go-cover-view

go-cover-view

I think we should rather provide binaries which can be included in the module builds rather than having loads of different flavour base images.