Install fails in Proxmox LXC

Hi there.
I'm trying to spin up an LXC with LibrePhotos, but I get stuck on the same issue each time. Here is the output where it fails:
Making install in fuzz
make[1]: Entering directory '/opt/librephotos-linux/vips-8.12.1/fuzz'
make[2]: Entering directory '/opt/librephotos-linux/vips-8.12.1/fuzz'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/opt/librephotos-linux/vips-8.12.1/fuzz'
make[1]: Leaving directory '/opt/librephotos-linux/vips-8.12.1/fuzz'
make[1]: Entering directory '/opt/librephotos-linux/vips-8.12.1'
make[2]: Entering directory '/opt/librephotos-linux/vips-8.12.1'
make[2]: Nothing to be done for 'install-exec-am'.
 /usr/bin/mkdir -p '/usr/local/lib/pkgconfig'
 /usr/bin/install -c -m 644 vips.pc vips-cpp.pc '/usr/local/lib/pkgconfig'
make[2]: Leaving directory '/opt/librephotos-linux/vips-8.12.1'
make[1]: Leaving directory '/opt/librephotos-linux/vips-8.12.1'
+ ldconfig
+ echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib'
+ cd ..
++ which bash
+ su - -s /usr/bin/bash librephotos
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 81.0M  100 81.0M    0     0  72.2M      0  0:00:01  0:00:01 --:--:--  111M
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  241M  100  241M    0     0  93.8M      0  0:00:02  0:00:02 --:--:--  111M
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  374M  100  374M    0     0  87.5M      0  0:00:04  0:00:04 --:--:-- 97.9M
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  230M  100  230M    0     0  96.9M      0  0:00:02  0:00:02 --:--:-- 96.9M
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.

    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.

    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.

    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
Cloning into 'backend'...
remote: Enumerating objects: 7518, done.
remote: Counting objects: 100% (7515/7515), done.
remote: Compressing objects: 100% (2239/2239), done.
remote: Total 7518 (delta 5268), reused 7437 (delta 5219), pack-reused 3
Receiving objects: 100% (7518/7518), 79.56 MiB | 39.19 MiB/s, done.
Resolving deltas: 100% (5268/5268), done.
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.

    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

Anyone familiar with this error?

Yes, I am having the same problem (I think it is because python 3.11?). I am manually inputting the arguments, but you can search this error up and there are a few workarounds. (https://stackoverflow.com/questions/75608323/how-do-i-solve-error-externally-managed-environment-every-time-i-use-pip-3), I went the virtual environment road

To confirm this is not an LXC issue, I have this issue on ubuntu 23.10 in a VM.

Seems to be addressed by #66


automate changelog management

PR o'clock
Description
This is a first draft to get feedbacks. There are still some questions about:

How to manage old changelog ? Put it in the template ?
How can I skip new release commits (or "update changelog") in the changelog ? Use skip/changelog commit prefix ?
Ho to ensure that PR titles follow gidelines ? Use something like https://github.com/apps/semantic-pull-requests ?

cc @max-rocket-internet @antonbabenko @js-timbirkett
Resolves https://github.com/terraform-aws-modules/terraform-aws-eks/issues/781
Todo

[ ] Manage old changelog (Should be added in template ?)
[ ] Avoid adding "Update changelog" or new release commits in the changelog
[ ] Tests to ensure that no one modify the changelog in PRs

@antonbabenko @js-timbirkett With your experience with git-chglog, do you have any advice for these questions ?

How to manage old changelog ? Put it in the template ?
How can I skip new release commits (or "update changelog") in the changelog ? Use skip/changelog commit prefix ?
Ho to ensure that PR titles follow gidelines ? Use something like https://github.com/apps/semantic-pull-requests ?

I don't have a lot of advanced experience with git-chglog but here are my thoughts:

I would put the current changelog into changelog-before-10.md or something like that, and use the tool for the whole changelog creation with the default template.
Maybe we can amend git commits, but I am not sure how to do this for various scenarios. I agree that it does not look nice to have that one commit every time, but I don't know a good solution.
We can enable that GitHub app to give it a try and see what happens.

@max-rocket-internet @antonbabenko So far here are my feebacks and propositions:

How to manage old changelog ? Put it in the template ?

I use placeholders in the CHANGELOG.md file and replace it with the generated changelog from git tag v10.0.0

How can I skip new release commits (or "update changelog") in the changelog ? Use skip/changelog commit prefix ?

Using skip as PR or commit prefix and I don't catch them in git-chglog configuration.

Ho to ensure that PR titles follow gidelines ? Use something like https://github.com/apps/semantic-pull-requests ?

I'll try this bot during the weekend.

@max-rocket-internet  After some discussions with @antonbabenko, we decided to move the old changelog into a different file. So the CHANGELOG.md will contain every release notes from v11.0.0 and will be generated from git commits. Are you ok with that ?


Roll engine 6801b4dae791..0078a6c6afcd (1 commits)

https://github.com/flutter/engine/compare/6801b4dae791...0078a6c6afcd
git log 6801b4dae791..0078a6c6afcd --first-parent --oneline
2020-03-16<EMAIL_ADDRESS>Roll src/third_party/dart 7079c49b054e..d2950737b8a2 (2 commits) (flutter/engine#17167)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

Commit queue failed; closing this roll.


Too slow when loading inception model on windows server

Hi, after training, I tried to use eval.py to do evaluation.
Eval on my win10 PC works perfectly, but pretty slow on windows server.
After dubugging, I found that it takes about 20 minutes when loading inception model on windows server.

@elepherai Hi. Thank you for posting a problem here. Actually all my experiments were done on an ubuntu based server, and no model-loading problems occurred on my platform. I suggest you to post the problem to other community for help, because it seems more like a system problem or pytorch problem on windows server.

Thanks~

To chime in here - are you sure that this is not due to https://discuss.pytorch.org/t/loading-inceptionv3-taking-a-lot-of-time/68067?

To chime in here - are you sure that this is not due to https://discuss.pytorch.org/t/loading-inceptionv3-taking-a-lot-of-time/68067?

Downgrade scipy to 1.3.3 works. Thank you.
pip install --upgrade scipy==1.3.3


figure out hosting

I think firebase & mongo have free server and database hosting?

also, for static FE hosting I can use github pages :P


HTTP Header directive not used for RSC requests

Describe the bug
When I add a http header to a page, the header is added to the page request but not to the RSC request.
This is specifically a problem for HTTP Cache headers which define how long a content can be cached on the client side and at the proxy (CDN).
I am not sure if there are other header which need to be set on RSC streams. Maybe a simple optional option {"rsc":true} on the existing function could solve this:
headers(
  { "Cache-Control": "s-maxage=1" } ,
  {"rsc":true}
);

Or maybe a specific cacheHeader function?
It looks like you currently merge the new entry to the existing one as the result is:
Cache-Control: must-revalidate, s-maxage=1
Maybe a second option to define this would help to replace the must-revalidate:
headers({
      "Cache-Control": "s-maxage=1",
    },{"replace":true});

Reproduction
https://d53oahuh7w7td.cloudfront.net/s/page/hello
Steps to reproduce

add a cache header to a non static page:

  import { headers } from "@lazarv/react-server";

  export default async function HelloPage() {
    headers({
      "Cache-Control": "s-maxage=1",
    });

    return (

request the page e.g. https://d53oahuh7w7td.cloudfront.net/s/page/hello - this is OK:

go to an other page and come back - or load this url:

System Info
System:
    OS: macOS 15.2
    CPU: (12) arm64 Apple M4 Pro
    Memory: 3.07 GB / 48.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 23.4.0 - /opt/homebrew/bin/node
    Yarn: 1.22.22 - /opt/homebrew/bin/yarn
    npm: 10.9.2 - /opt/homebrew/bin/npm
    pnpm: 9.15.0 - /opt/homebrew/bin/pnpm
    bun: 1.1.40 - /opt/homebrew/bin/bun
  Browsers:
    Chrome: 131.0.6778.140
    Safari: 18.2
    Safari Technology Preview: 18.2
  npmPackages:
    @lazarv/react-server: workspace:^ => 0.0.0
    @lazarv/react-server-adapter-aws: workspace:^ => 0.0.0

Used Package Manager
pnpm
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion.
[X] The provided reproduction is a minimal reproducible example of the bug.

The issue is that the default Cache-Control header is set by using the lowercase key cache-control, while the headers() function used a non-lowercased version of it, resulting in multiple entries in the headers object with different casing, like this:
{
  "cache-control": "must-revalidate",
  "Cache-Control": "s-maxage=1"
}

I was not able to reproduce any issues with the headers regarding the response type being HTML or RSC. In both cases, the headers were applied properly. But when the page or RSC is static exported, these headers will not be applied. This could be an enhancement in the SSG feature set: store the response headers besides the HTML or RSC payload and use that information when serving the static files. If this is the requested feature, then I would suggest to move the feature request into a separate issue.

there is no need to set header for static rendered pages
RSC Cache-Control
The response of this url https://d53oahuh7w7td.cloudfront.net/s/page/hello is dynamical rendered by the react-server framework as you can see at the timestamp in the page content changes on each request.
The repose of the related RSC Uri https://d53oahuh7w7td.cloudfront.net/s/page/hello/rsc.x-component should provide the same timestamp changes on each request.
But because the header in the RSC response is missing the additonal entry s-maxage=1 in the Cache-control and no other cache directive e.g. s-max-age=0, the CDN sends the cached value and does not forward the request to the lambda function.

Handling cookies is a very specific use case, there's an API for it just exposing the HatTip cookie store. https://react-server.dev/framework/http#cookies
In the linked PR, there's a minimal resolution to the case-sensitivity issue, which only affects headers that are also handled by the framework and not just the developer using it, in cases like Cache-Control or Content-Type and only when using SSR (both in HTML or RSC).
But you're right regarding the store for the headers as the case-sensitivity issue could be an error in the app using the framework, not just inside the framework and the framework should prevent this issue. So I'm thinking about a new API similar to the cookie handling functions, setHeader, appendHeader and deleteHeader and it will use the Header object to store and to merge the response headers when sending the response during SSR rendering. This is not an issue on the API route level or in middlewares as it's totally up to the developer to send a new Response in these use cases.

I found the problem, I build my apps with defining root in the react-server.config.json:
{
  "root": "src"
}

you find my example here:
https://github.com/aheissenberger/rs-header-cache-Kopie
react-server build
react-server start

get the RSC response with wrong Cache-Control header:
curl 'http://localhost:3000/s/page/hello/rsc.x-component' \
  -H 'Accept: text/x-component,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' -vv
* Host localhost:3000 was resolved.
* IPv6: ::1
* IPv4: <IP_ADDRESS>
*   Trying [::1]:3000...
* Connected to localhost (::1) port 3000
> GET /s/page/hello/rsc.x-component HTTP/1.1
> Host: localhost:3000
> User-Agent: curl/8.7.1
> Accept: text/x-component,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
>
* Request completely sent off
< HTTP/1.1 200 OK
< cache-control: must-revalidate
< content-type: text/x-component; charset=utf-8
< last-modified: Thu, 19 Dec 2024 17:49:42 GMT
< Date: Thu, 19 Dec 2024 17:49:42 GMT
< Connection: keep-alive
< Keep-Alive: timeout=5
< Transfer-Encoding: chunked
<
0:[[],"$L1"]
1:[[],["$","div",null,{"children":"Hello"}]]
* Connection #0 to host localhost left intact

I can also replicate the problem if I build an app without specifying a root file when calling react-server build. The app will not response to / but to all other roots but without sending the correct cache header.
I can even reproduce the problem without using the  react-server.config.json config:

add a second page called hello.jsx to your example
run build without specifying a root file pnpm react-server build
start the app pnpm react-server start

curl 'http://localhost:3000/hello/rsc.x-component' \
-H 'Connection: keep-alive' \
-H 'React-Server-Outlet: PAGE_ROOT' \
-H 'Referer: http://localhost:3000/' \
-H 'accept: text/x-component' \
-vv
* Host localhost:3000 was resolved.
* IPv6: ::1
* IPv4: <IP_ADDRESS>
*   Trying [::1]:3000...
* Connected to localhost (::1) port 3000
> GET /hello/rsc.x-component HTTP/1.1
> Host: localhost:3000
> User-Agent: curl/8.7.1
> Connection: keep-alive
> React-Server-Outlet: PAGE_ROOT
> Referer: http://localhost:3000/
> accept: text/x-component
>
* Request completely sent off
< HTTP/1.1 200 OK
< cache-control: must-revalidate
< content-type: text/x-component; charset=utf-8
< last-modified: Thu, 19 Dec 2024 17:59:14 GMT
< Date: Thu, 19 Dec 2024 17:59:14 GMT
< Connection: keep-alive
< Keep-Alive: timeout=5
< Transfer-Encoding: chunked
<
0:[[],"$L1"]
1:[[],"$L2"]
2:["$","div",null,{"children":"Hello World 02"}]
* Connection #0 to host localhost left intact

What is very dangerous that any file called page.jsx in a folder is used for the directory index.


Declarative test initial framework

This PR adds a declarative testing layer on top of the core of the new test framework (which was introduced in https://github.com/Azure/azure-storage-azcopy/pull/842).  The declarative layer adds:

A declarative style, in which we come closer to specifying what should be tested without having to to write code (in the test itself) for how
The ability to cover multiple scenarios in a single test.  Specifically, a single test can cover both copy and sync (when applicable), and can cover all source-destination pairs.  The declarative layer expands each test out into a set of subtests, to cover copy/sync and all the specified source-destination pairs.
"Pseudo-suites", in which the framework enforces that each test must begin with a suite name, and that the suite name must match the filename that contains the tests (for flexibility, it must match one word in the filename).  E.g. TestFilter_IncludePattern is a valid test name, if it appears in a file named "enumeration_filter_test.go" because the suite name, which is the bit that appears between "Test" and the first _ matches a word in the filename.  This approach is used because the more detailed suite features in gocheck and testify/suite were both, for different reasons, unsuitable.
As a bonus feature, it allows semi-automated debugging into AzCopy when running inside the test harness. See azcopyDebugHelper.go

Goals

To have one declarative syntax that covers most scenarios that we need to test.
Each test focusses on one thing that AzCopy can do, e.g. filter by filename pattern, and tests that one feature in all scenarios where is applies.
To have a syntax that emphasizes what its unique about each test, with minimal boiler-plate.
The same verifier code is used by all tests so there is one source of truth about what constitutes a successful job, that one source of truth contains all our rules, and does not have to copied or or-re-written in each test. (Instead, the dev just specifies which files should succeed and fail, and the verifier does the rest.)
The tests, and the declarative framework, should explain to devs what they are doing, through their code structure and comments.
To organize our tests into an understandable structure (hence the "pseudo-suites").
To stay true to the intent of the underlying imperative layer, so that the benefits of that layer (as described here https://github.com/Azure/azure-storage-azcopy/pull/842) can be achieved.
(Not in the initial draft of this PR) To have clear strategy for how to approach tests that don't fit this framework. The primary intention is to have this framework be enhanced so that it can cover most cases that we want to test.  With falling back to the underlying imperative layer (from https://github.com/Azure/azure-storage-azcopy/pull/842) being a last resort.

var name, key string

I think we should add service principal auth, so that we have the ability to test OAuth end-to-end.

Refers to: e2etest/config.go:38 in 8c8b7e8. [](commit_id = 8c8b7e87ae6bf0420c5dfe7e50d3fb6ba310419f, deletion_comment = False)

After discussion with @zezha-msft  and @nakulkar-msft , we've decided to merge this now.  There e2etests themselves are not yet mature, but merging them now doesn't impact on AzCopy itself.
Work will be performed in new branches to flesh out the test harness and add tests.


How to use droid data and local data for co training?

I set up:
DATA_PATH = "/home/eai/Dev-Code/droid_policy_learning"    # UPDATE WITH PATH TO RLDS DATASETS
EXP_LOG_PATH = "/home/eai/Documents" # UPDATE WITH PATH TO DESIRED LOGGING DIRECTORY
EXP_NAMES = OrderedDict(
    [
        # Note: you can add co-training dataset here appending
        # a new dataset to "datasets" and adjusting "sample_weights"
        # accordingly
        ("droid_100", {"datasets": ["droid_100"],
                   "sample_weights": [1]}),
        ("droid_local", {"datasets": ["droid_local"],
                   "sample_weights": [1]})
    ])

when I run python robomimic/scripts/config_gen/droid_runs_language_conditioned_rlds.py
I get
python robomimic/scripts/config_gen/droid_runs_language_conditioned_rlds.py --wandb_proj_name ljm-2022
Num exps: 2
generated_json_paths=================== ['/home/eai/Documents/tmp/autogen_configs/ril/diffusion_policy/droid/im/04-04-None/04-04-24-14-52-45/json/bz_128_noise_samples_8_sample_weights_1_dataset_names_droid_100_cams_2cams_goal_mode_None_truncated_geom_factor_0.3_ldkeys_proprio-lang_visenc_VisualCore_fuser_None.json', '/home/eai/Documents/tmp/autogen_configs/ril/diffusion_policy/droid/im/04-04-None/04-04-24-14-52-45/json/bz_128_noise_samples_8_sample_weights_1_dataset_names_droid_local_cams_2cams_goal_mode_None_truncated_geom_factor_0.3_ldkeys_proprio-lang_visenc_VisualCore_fuser_None.json']

python /home/eai/Dev-Code/droid_policy_learning/robomimic/scripts/train.py --config /home/eai/Documents/tmp/autogen_configs/ril/diffusion_policy/droid/im/04-04-None/04-04-24-14-52-45/json/bz_128_noise_samples_8_sample_weights_1_dataset_names_droid_100_cams_2cams_goal_mode_None_truncated_geom_factor_0.3_ldkeys_proprio-lang_visenc_VisualCore_fuser_None.json

python /home/eai/Dev-Code/droid_policy_learning/robomimic/scripts/train.py --config /home/eai/Documents/tmp/autogen_configs/ril/diffusion_policy/droid/im/04-04-None/04-04-24-14-52-45/json/bz_128_noise_samples_8_sample_weights_1_dataset_names_droid_local_cams_2cams_goal_mode_None_truncated_geom_factor_0.3_ldkeys_proprio-lang_visenc_VisualCore_fuser_None.json

Which Python code command should I execute?

The first command corresponds to training on droid_100, which is a small subset of DROID that could be useful if you want to do a quick sanity check (see the droid_100 identifier in the generated command).  The second command corresponds to training on all of DROID (see the droid_local identified in the generated command).

You can see the robomimic documentation for more information on how the config_gen files work more generally, but the idea is that you can define a number of different hyperparameters that you want to sweep over in robomimic/scripts/config_gen/droid_runs_language_conditioned_rlds.py and then when you run this script, it will generate commands corresponding to every experiment you need to run.

You can see the robomimic documentation for more information on how the config_gen files work more generally, but the idea is that you can define a number of different hyperparameters that you want to sweep over in robomimic/scripts/config_gen/droid_runs_language_conditioned_rlds.py and then when you run this script, it will generate commands corresponding to every experiment you need to run.

hi, I add a co-data in /robomimic/scripts/config_gen/droid_runs_language_conditioned_rlds.py, then I get two exps commands. Am I supposed to run the two commands one by one? or what should I do then?


Please rebuild crates depending on rlottie

Crate name
rlottie, rlottie-sys, lottieconv, mstickerlib
Build failure link
https://docs.rs/crate/rlottie-sys/0.2.4/builds/651006
Additional details
These crates were previously unable to build as the system library rlottie wasn't installed. The library is now available (https://github.com/rust-lang/crates-build-env/pull/124#issuecomment-1416685736), so they should compile now.

A rebuild for all 4 have been queued.

😆

I just did the same

Thanks


Fan error in log

I have a couple of fans that are being controlled with RRD-2ANF fan controls. When I tap the controls on the wall, I get this error in the log:
Error                           device "Kitchen - Fan 19 - Office Fan" state key ActualSpeed not defined (ignoring update request)
Not sure if this was introduced with 7.2 or if it existed before.
I'm running Indigo 7 with the 7.2.0. Lutron plugin. My Lutron system is a full RadioRA 2 system with a main repeater (not Select).

Try editing the Fan devices.  Just open up the edit device dialog, then save it.

That fixed it. Strange, as the plugin created those devices. But perhaps it was a beta that created them.


Generate bindings for Go

https://golang.org/cmd/cgo/

I've had a preliminary go. Go has no destructors so destroying things non-trivially is hard.
I have nothing useful to show.

It's possible to do one (or both) of two things:

Set a finalizer (called when the object is GCd)
defer a call to some function

It looks like most people using Cgo take some combination of these to do what they need. It's not going to be completely seamless, but Go programmers are presumably used to having to close files and handle cleanup manually. So we should do something like:

Wrap the object in a Go struct with a finalizer
Provide a Close / Destroy / Cleanup / whatever function that calls the C++ dtor and frees the memory
Use a finalizer to call the above if the object is GCd before it was called manually

We won't catch everything; if the program exits then the GC won't run and the finalizer might not be called, so behaviour that relies on a dtor being called (flushing buffers, committing DB transactions, ...) might not work properly unless the Go code manually invokes the "end of days" method... but again, Go programmers should be used to this.

Sounds like a solid plan to me. Tempted?

Yeah, I'll give it a go.

These exist now, although they are a work in progress. I'm closing this ticket because there are new tickets for specific features to improve the Go bindings.


Replace spaces with dash in the Slug

@shenzhaoyan: PR needs rebase.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@shenzhaoyan: PR needs rebase.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@shenzhaoyan: PR needs rebase.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@shenzhaoyan: PR needs rebase.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@shenzhaoyan: PR needs rebase.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@shenzhaoyan: PR needs rebase.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.


[Question]: Image from Readme not embedded in LlamaHub page

Question Validation

[X] I have searched both the documentation and discord for an answer.

Question
Hi everyone! recently we added WordLift Vector Store to the integrations. Checking the LlamaHub page of the WordLift Vector Store I noticed that the logo from the readme is not rendered. How can I fix this?

I suggest linking to a publicly hosted image instead -- llamahub is just pulling readmes from the GitHub repo, pulling images as well would be quite a bit more complex 😅


Fix change token in cloud view

Description
The token cannot be updated when it is done from the cloud view
To Reproduce
Go to cloud view, then user settings and change the token
Expected behavior
change token
Details

Affected Component: [e.g. Sunstone, Scheduler or Storage]
Hypervisor: [e.g. KVM]
Version: [e.g. 5.4.12 or development]

Additional context
Add any other context about the problem here.

Progress Status

[ ] Branch created
[ ] Code committed to development branch
[ ] Testing - QA
[ ] Documentation
[ ] Release notes - resolved issues, compatibility, known issues
[ ] Code committed to upstream release/hotfix branches
[ ] Documentation committed to upstream release/hotfix branches

Code
Docs


cmd/compile: named return values produce functionally different code

This might be a duplicate of #20859. Filing it separately because the discussion in #20859 is mostly about code-generation, not functional differences.
What version of Go are you using (go version)?
go version go1.8.1 darwin/amd64

What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/aron/dev/rstudio/connect/_vendor:/Users/aron/dev/rstudio/connect"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/ts/s940qvdj5vj1czr9qh07fvtw0000gn/T/go-build120790787=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"
PKG_CONFIG="pkg-config"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"

What did you do?
https://play.golang.org/p/Ig-Jnvz07B
package main
import (
  "errors"
  "fmt"
)
func ModifyErr(perr *error) {
  *perr = errors.New("this err was modifed")
}
func Foo() (err error) {
  err = errors.New("Foo error")
  defer ModifyErr(&err)
  return err
}
func Bar() error {
  var err error
  err = errors.New("Bar error")
  defer ModifyErr(&err)
  return err
}
func main() {
  fmt.Printf("Foo: %s\n", Foo())
  fmt.Printf("Bar: %s\n", Bar())
}

What did you expect to see?
The same behavior from both Foo and Bar; probably Bar is correct.
What did you see instead?
This code produces:
Foo: this err was modifed
Bar: Bar error

The example given was derived from some error logging/reporting code. Here is an example that uses primitives (int) and might make for simpler analysis.
https://play.golang.org/p/nQ_z0ScUsm

This is working as intended.
These are actually different.
In your Foo func, the return statement is modifying the named return value before it returns, per the spec:
https://golang.org/ref/spec#Return_statements

A "return" statement that specifies results sets the result parameters before any deferred functions are executed.

@bradfitz Both Foo and Bar are attempting to modify err; only the Foo example succeeds (the one with the named return value).

The only difference between Foo and Bar is how err is declared.

No, that's not true. They really are different err variables.
The err in defer ModifyErr(&err) in Foo is referring to the return value err.
The err in defer ModifyErr(&err) in Bar is referring to the local variable err.
Think of your Bar func like this to see what it's actually doing:
func Bar() (err error) {
	var otherErr error
	otherErr = errors.New("Bar error")
	defer ModifyErr(&otherErr)
	err = otherErr  // runs before ModifyErr
	return
}

Again, this is all per the language spec I linked above. See also the scope sections.

@bradfitz Thanks. That example helped. I expected it had something to do with the scoping of the named return parameter. I didn't see that in the Bar case, there's an implicit result parameter (which can often be optimized away).

@frankandrobot It's true that this is something one needs to learn about Go, but I don't think it is any more subtle than other aspects of the language.  The odd thing is naming a result parameter: when you name a result parameter, you have to consider any references to that result parameter in deferred functions.  That is one of the major uses of named result parameters: being able to change them in a deferred function.

I would say that forgetting to name the result variable is the normal case.
I understand you to be saying is that if you want to do something fancy--to use a deferred function to change the result--then it is possible to accidentally refer to a local variable rather than to a named result variable.  That is true.  But I don't see that as any more subtle than any other sort of variable shadowing.


Docs(messaging-api): add messaging api markdown docs

Ticket:

20293

Description
Added the Markdown file related to the messaging API
Type

[ ] Dependency upgrade
[ ] Bug fix
[ ] New feature
[ ] Dev change
[ ] Additional tests
[x] Documentation
[ ] Other

I wonder if we should move all the docs to azure devops and remove docusarus from the repo

I wonder if we should move all the docs to azure devops and remove docusarus from the repo

Let's keep the technical documentation here, and duplicate it to ADO if needed. It's an open source project, technical docs should be public


Added a ppt

@bharath-acchu Sorry PowerPoint files are not allowed in the docs repo. I don't think this file is related to Microsoft documentation. Thanks, Jason


Add support for Structured Data

I have added support for Structured Data.  Currently incomplete is ensuring that the encoding (seven bit ASCII in an eight bit field) is correct but for normal usage, this should work.

Thanks @bbergquist0930 !


Use K8sNameDescriptionField in connection type page

Closes https://issues.redhat.com/browse/RHOAIENG-13400
Description

Use the new K8sNameDescriptionField component. This prevents the user from entering a too long of a name which causes a resource name error when saving.

How Has This Been Tested?

Tested locally by running through the different connection type operations.
For the bug referenced in the jira issue, paste a lot of text https://www.lipsum.com/feed/html and click save. It will now truncate the resource name
Test Impact

No updates, existing tests cover the previous functionality. (and the long name is a server side error)
Request review criteria:

Self checklist (all need to be checked):

[X] The developer has manually tested the changes and verified that the changes work
[X] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[X] The developer has added tests or explained why testing cannot be added (unit or cypress tests for related changes)

If you have UI changes:

[X] Included any necessary screenshots or gifs if it was a UI change.
[ ] Included tags to the UX team if it was a UI/UX change.

After the PR is posted & before it merges:

[ ] The developer has tested their solution on a cluster by using the image produced by the PR to main

/lgtm
/approve


Style/AccessorGrouping doesn't take access control into account.

I have a class that has an attr_reader call at the top (default public access), and then again underneath private - essentially:
class Foo
  attr_reader :alpha, :beta

  private

  attr_reader :gamma, :delta
end

I would expect this to be fine - I only want the accessors underneath private to be available internally to the class instances - but the new Style/AccessorGrouping cop says they should all be grouped together. So, I'm guessing it's not picking up on the different access control levels? This feels like a bug to me, unless I'm missing something.
$ rubocop -V
0.87.0 (using Parser <IP_ADDRESS>, rubocop-ast 0.1.0, running on ruby 2.6.6 x86_64-darwin19)

$ rubocop --only Style/AccessorGrouping
Inspecting 1 file
C

Offenses:

foo.rb:2:3: C: Style/AccessorGrouping: Group together all attr_reader attributes.
  attr_reader :alpha, :beta
  ^^^^^^^^^^^^^^^^^^^^^^^^^
foo.rb:6:3: C: Style/AccessorGrouping: Group together all attr_reader attributes.
  attr_reader :gamma, :delta
  ^^^^^^^^^^^^^^^^^^^^^^^^^^

Sounds like a job for @fatkodima.

Will look into this.


Slow Repaint, Screen 1/3 white when scrolling a notebook

I'm experiencing extremely slow repaint on recent Jupyterlab, in particular in notebook,
Hard to record but still:
https://youtu.be/172Mmr8VjXE
With a casual scrolling I (especially scrolling up) I get up to 1/3 of my screen not repainted using a "standard" notebook with only ~30 cells, and only text output which is max ~10 lines.
The repainting issue does not seem to appear in the classic notebook app, or at least much less and only for codemirror text.
Am I the only one that experiences that ? It seem to me that's is recent as I don't remember having seen that. Machine is not under normal usage load and only Notebook-Lab seem to suffer as well at full window resize when there is a notebook open, but there I guess there is a lot of relayout to do.

Can you test this in a different browser, and/or compare to classic notebook in another recording. To me, this looks like the browser is being slow to update its backbuffer.
I've seen what you show in your video on other Macs before, but have never seen it on my own machine.

To be clear, scrolling shouldn't be triggering any relayouts. Most browsers will render the entire scrollable area into an offscreen buffer, and then bitblt the visible region into the viewport.

Things are better in classic notebook:
https://youtu.be/Mxg86-wyc8A you can see the blitting if you look for it.
I won't bother record in FF as if works flawlessly and I see no defects.

Thanks. Do you mean JLab works flawlessly in Firefox? What browser is the troubled one?

Do you mean JLab works flawlessly in Firefox

Scrolling with JupyterLab works flawlessly, FF complain regularly about a stalled script on resize of any panel and then freeze for a few second then works again. But that's a separate issue.
Chrome is the troubled one with painting/blitting.

stalled script on resize of any panel
Can you open an issue for this? And if its not too much trouble, include an animated capture.

I'm seeing the same scrolling problems as @Carreau - on OS X 10.10.5 (14F1909), Chrome Version 52.0.2743.116 (64-bit) (Macbook pro), scrolling a notebook with dozens of empty cells quickly will paint slowly, often showing a third of the tab area as blank until it catches up. I don't see this with, for example, scrolling the csv. I've attached a gif that illustrates the problem (exaggerated since it's not recording 30fps...)

Oh, and like Matthias, Firefox 48.0.1 seems to work fine.

This may have to do also with the hidpi screen on a macbook pro. I notice that if I scroll on an external 1440p display, there is no problem with the painting in Chrome, but it is quite noticeable on the laptop screen.

Here is the paint profiling results scrolling on an external 1440p display. This does not show any lagging of the rendering of the cells as I scroll:

Here is the paint profiling results scrolling on the Macbook Pro hidpi screen. This did show lots of lagging of the rendering of cells as I scrolled:

@jasongrout can you perform the same tests and profiling with the classic notebook?

Can you open an issue for this? And if its not too much trouble, include an animated capture.

I will but I want to update/check my FF, and say and try to debug which thing does that.

Classic notebook: I saw some flickering while scrolling on the hidpi screen but very minor and I didn't see white space where rendering lagged. I didn't see any lag or flickering on the 1440p external screen.
1440p external screen:

hidpi laptop screen:

Interesting. The timelines look similar between the two.
Are we doing any sort of custom scroll listener stuff in jlab?

that shouldn't change between the two displays, should it?

I wouldn't expect it to. But who knows. I just want to make sure it's not due to anything that we have control over.

It looks like there are quite a few more layers in the jlab notebook (It looks like at least one more per cell, of not more, if I understand the layer boundary view correctly).

I don't think we're doing any custom scroll listener stuff. https://github.com/jupyter/jupyterlab/search?utf8=✓&q=Scroll doesn't show anything that looks relevant.

More experiments - when I disable the overflow:hidden or the position:relative css attributes of phosphor widgets, the number of layers looks like it goes way down and scrolling becomes fluid again. This is on the hidpi screen.

Interesting. I wonder how that plays out for older versions of Chrome. Like maybe they added some new optimization which is countering out attempts at optimization.
The extra layers will definitely affect the fill-rate.

Looking more into it, it appears that every codemirror has about 10 layers, and the widgets have one or two. I think having statically rendered cells would go a long ways towards solving this issue.

We have this issue marked 0.9, #958 marked 1.0, and #25 marked 2.0 that are all pointing to the same root cause.  I propose that I finish the work started in https://github.com/jasongrout/jupyterlab/commit/e296cb7a6c3a4cc122df08e9689e0ce5db3c635f and close all three issues.

Removed the "bug" label, since this is more of an optimization.


ResourceBundle normalize/replace from sr to sh

OpenUI5 version: 1.50 (actually any)
Steps to reproduce the problem:

go to the console: sap.ui.getCore().getConfiguration().setLanguage("sr")

What is the expected result?
the framework loads the i18n resources for sr
What happens instead?
the framework loads the i18n resources for sh
Any other information?
In jquery.sap.resources.js when a Bundle is created "normalize()" is called for the locale which replaces sr to sh due to the definition M_ISO639_NEW_TO_OLD.
As sh has been deprecated in 2000 (see ISO 639-2 Changes and search for [-sh])
My translation process delivers *_sr.properties files which of course fails as the framework tries to load *_sh.properties.
I think it would be proper to remove the replacement and if the content of the ui5 *_sh.properties files is serbian and not croatian rename the files.

We can't simply change this due to compatibility reasons. A change would break all existing applications / libraries that provide texts in an 'sh' file. The currently used locale suffixes are motivated by internal processes that initially produced 'sh' initially.
There's a feature discussed for the future (no target release yet) which would allow to configure a) the supported languages per component / library (using the app descriptor) and b) as a side effect would allow the framework to pick the right suffix for legacy/updated locales like he/iw or sr/sh.
But for now, the mapping can't be changed.


mypy: Add annotations for bots.

Added annotations for
virtual_fs
weather

I've removed any self: Any annotations

Merged!  Thanks @fredfishgames!


Change instructions from PDF to "PDF or to download and e-file"

Question ID
Your form is ready to download and file

language
The instructions say PDF for printing, can we add "or to download and e-file"

Other information

Variable being sought
basic_questions_signature_flow

Package version
0.0.1

Maturity target
Level 1.5 - it works as-is, but this is a significant plain language issue

Tester contact info
Paul Tuttle

This is referring to the below section, which I think is the PDF download table, not sure where we change that.


Log file not streamed during refinement

By streaming the refinement progress a user can check whether MAUD is progressing or if there is an error that is making it hang.

log and error files are now streamed.


SPARKC-32: Added support for pushing down order by clause

With this patch:

added withAscOrder and withDescOrder methods to CassandraRDD, CassandraJavaRDD and CassandraJavaPairRDD
updated CQL generation method in CassandraRDD so that it can use the order by clause
added test cases
updated documentation and CHANGES.txt

+1


Make NGINX controller image configurable and update to the latest image

Fixes #8

The default value for nginx_ingress_controller_version is wrong - it should not start with a v and having the sha in the variable breaks the labels.

I will double check this on my end. Though, I have followed the exact image string that the Kubernetes team has used in the deployment documents they provide.
https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.35.0/deploy/static/provider/aws/deploy.yaml

The default value for version is set to v0.35.0@sha256:fc4979d8b8443a831c9789b5155cded454cb7de737a8b727bc2ba0106d2eae8b which is too long, and the @ is not accepted in a label.
This can be fixed by doing some sanity checking e.g on line 211 in nginx.tf

PS.  I don't have rights to create branches, otherwise I'd have done a PR into your branch....  Thanks for your work on this.

I see what you're saying now. You're right, I had forgotten our use of the version in the metadata. I've updated that in this pull and am double checking that now.

Confirmed the new commit fixes this issue.
I've also changed the nginx_ingress_controller_version variable to be nginx_ingress_controller_image_tag to better fit with the actual usage of the variable now. Since we will allow users to use any arbitrary image here, it's best to not make assumptions about how the tags match up with versions and just allow users to define the full image tag.
The metadata will now strip any added digest from the tag to keep the length low and the metadata more readable.


Can't use if let with ForEach

Description
I'd like to use ForEach with an optional state. In this example I'm using a type RemoteResult.  RemoteResult is annotated with @CasePathable and @dynamicMemberLookup.
The reducer seem to compile fine, but in the view I have the following error: Generic struct 'ForEach' requires that 'Store<IdentifiedArray<UUID, ChildFeature.State>, IdentifiedAction<UUID, ChildFeature.Action>>' conform to 'RandomAccessCollection'
Checklist

[X] I have determined whether this bug is also reproducible in a vanilla SwiftUI project.
[ ] If possible, I've reproduced the issue using the main branch of this package.
[X] This issue hasn't been addressed in an existing GitHub issue or discussion.

Expected behavior
In the AppView I expected that after if let scoping the store I can pass it to ForEach:
@Reducer public struct AppFeature: Sendable {
  public init() {}

  @ObservableState public struct State: Equatable {
    public var childStates: RemoteResult<IdentifiedArrayOf<ChildFeature.State>, AppError>

    public init(
      childStates: RemoteResult<IdentifiedArrayOf<ChildFeature.State>, AppError> = .initial
    ) { self.childStates = childStates }
  }

  public enum Action: Sendable { case childAction(IdentifiedActionOf<ChildFeature>) }

  public var body: some ReducerOf<Self> {
    Reduce { state, action in
      switch action {
      case .childAction: return .none
      }
    }
    .ifLet(\.childStates.success, action: \.childAction) {
      EmptyReducer().forEach(\.self, action: \.self) { ChildFeature() }
    }
  }
}

public struct AppView: View {
  @Bindable var store: StoreOf<AppFeature>

  public init(store: StoreOf<AppFeature>) { self.store = store }

  public var body: some View {
    if let store = self.store.scope(state: \.childStates.success, action: \.childAction) {
      ForEach(store) { ChildView(store: $0) } // expected this to work
    }
  }
}

Actual behavior
In the AppView I get the following error: Generic struct 'ForEach' requires that 'Store<IdentifiedArray<UUID, ChildFeature.State>, IdentifiedAction<UUID, ChildFeature.Action>>' conform to 'RandomAccessCollection'
@Reducer public struct AppFeature: Sendable {
  public init() {}

  @ObservableState public struct State: Equatable {
    public var childStates: RemoteResult<IdentifiedArrayOf<ChildFeature.State>, AppError>

    public init(
      childStates: RemoteResult<IdentifiedArrayOf<ChildFeature.State>, AppError> = .initial
    ) { self.childStates = childStates }
  }

  public enum Action: Sendable { case childAction(IdentifiedActionOf<ChildFeature>) }

  public var body: some ReducerOf<Self> {
    Reduce { state, action in
      switch action {
      case .childAction: return .none
      }
    }
    .ifLet(\.childStates.success, action: \.childAction) {
      EmptyReducer().forEach(\.self, action: \.self) { ChildFeature() }
    }
  }
}

public struct AppView: View {
  @Bindable var store: StoreOf<AppFeature>

  public init(store: StoreOf<AppFeature>) { self.store = store }

  public var body: some View {
    if let store = self.store.scope(state: \.childStates.success, action: \.childAction) {
      ForEach(store) { ChildView(store: $0) } // Generic struct 'ForEach' requires that 'Store<IdentifiedArray<UUID, ChildFeature.State>, IdentifiedAction<UUID, ChildFeature.Action>>' conform to 'RandomAccessCollection'
    }
  }
}

Steps to reproduce
Here's the demo project the example code is from: [TCACasePathIssue](https://github.com/kuglee/TCACasePathIssue)
Here's a simpler demo project with an if let ForEach that also has this issue: TCAForEachIssue
The Composable Architecture version information
1.14.0
Destination operating system
macOS
Xcode version information
Xcode 16.1 beta (16B5001e)
Swift Compiler version information
swift-driver version: 1.113 Apple Swift version 6.0 (swiftlang-<IP_ADDRESS>.6 clang-16<IP_ADDRESS>)
Target: arm64-apple-macosx14.0

I suspect this is because, by nesting your identified array inside your own RemoteResult type that does not conform to ObservableState, you've broken the chain of observability and you're not using the overload of .scope() that you want. If you want to do this, you'll have to conform your RemoteResult type to ObservableState.

Annotating RemoteResult with @ObservableState unfortunately doesn't fix the problem. The same error occurs.

Hi @kuglee, the reason syntax like this works:
ForEach(store.scope(…)) { store in
  …
}

…is because we have a special overload of scope that returns a collection. So, when you if let to unwrap a store.scope(…) you are just getting back a regular store, and that cannot be fed directly to ForEach.
Really this is a domain modeling problem. You shouldn't compose features together like this:
public var childStates: RemoteResult<IdentifiedArrayOf<ChildFeature.State>, AppError>

Not only is RemoteResult not a proper TCA feature, but either is IdentifiedArray. It should probably be better to model this like so:
public var result: RemoteResult<ChildrenFeature.State, AppError>

And then have a dedicated ChildrenFeature that holds onto the IdentifiedArrayOf<ChildFeature.State>. That would allow you to do something like this:
if let store = self.store.scope(state: \.result.success, action: \.result) {
  ForEach(store.scope(state: \.children, action: \.children)) { store in
    …
  }
}

Since this is not an issue with the library I am going to convert it to a discussion. Please feel free to continue the conversation over there.


Add feature state for PodDisruptionBudget

Fixes #20821
By the way, PodDisruptionBudget is missing in the list of feature gates - https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/
Preview -

https://deploy-preview-20833--kubernetes-io-master-staging.netlify.app/docs/concepts/workloads/pods/disruptions/#how-disruption-budgets-work
https://deploy-preview-20833--kubernetes-io-master-staging.netlify.app/docs/tasks/run-application/configure-pdb/

/lgtm
/approve


Create module interface class

Adds classes ModuleInterface and ModuleInterfaces to replace functions interface, request, response. This approach provides more structure to the definition of calculators/modules. This feeds into Karolos' work on cost_aggregator, which I've included and updated to use ModuleInterfaces, making it more generic:

As discussed for the MVP purposes ModuleInterface includes a callback get_total_carbon_kg which takes the calculator's response and returns a single number for use in cost_aggregator. Going forwards this can be replaced with something more intelligent.
Added a function to collect all validation errors to cost_aggregator and raise them in one go.
Include complete responses from individual calculators for presentation an itemised breakdown.

Thanks @F-Ruxton ; this is very nice!
I was going to comment on the uniformisation of computing the total carbon emissions in kg but meanwhile you added get_total_carbon_kg. For me it's good to go!

#12 can be closed

Thanks for the review @kjp good to hear you're ok with the additions to your work


Change chain_id while generating specs

After the plain spec is generated, the chain_id field should be modified to a user provided id


feat: exposed customAntiAffinity

[!warning]
This is a public repository, ensure not to disclose:

[ ] personal data beyond what is necessary for interacting with this pull request, nor
[ ] business confidential information, such as customer names.

What kind of PR is this?
Required: Mark one of the following that is applicable:

[ x] kind/feature
[ ] kind/improvement
[ ] kind/deprecation
[ ] kind/documentation
[ ] kind/clean-up
[ ] kind/bug
[ ] kind/other

Optional: Mark one or more of the following that are applicable:

[!important]
Breaking changes should be marked kind/admin-change or kind/dev-change depending on type
Critical security fixes should be marked with kind/security

[ ] kind/admin-change
[ ] kind/dev-change
[ ] kind/security
[ ] kind/adr

What does this PR do / why do we need this PR?
Fixes #2365, introduced a customLabel to avoid hardcoding given here for exposing customAntiAffinity

...

Fixes #

Information to reviewers

Checklist

[ ] Proper commit message prefix on all commits

Change checks:

[ ] The change is transparent
[ ] The change is disruptive
[ ] The change requires no migration steps
[ ] The change requires migration steps
[ ] The change upgrades CRDs
[ ] The change updates the config and the schema

Documentation checks:

[ ] The public documentation required no updates
[ ] The public documentation required an update - [link to change](set-me)

Metrics checks:

[ ] The metrics are still exposed and present in Grafana after the change
[ ] The metrics names didn't change (Grafana dashboards and Prometheus alerts are not affected)
[ ] The metrics names did change (Grafana dashboards and Prometheus alerts were fixed)

Logs checks:

[ ] The logs do not show any errors after the change

Pod Security Policy checks:

[ ] Any changed pod is covered by Pod Security Admission
[ ] Any changed pod is covered by Gatekeeper Pod Security Policies
[ ] The change does not cause any pods to be blocked by Pod Security Admission or Policies

Network Policy checks:

[ ] Any changed pod is covered by Network Policies
[ ] The change does not cause any dropped packets in the NetworkPolicy Dashboard

Audit checks:

[ ] The change does not cause any unnecessary Kubernetes audit events
[ ] The change requires changes to Kubernetes audit policy

Falco checks:

[ ] The change does not cause any alerts to be generated by Falco

Bug checks:

[ ] The bug fix is covered by regression tests

Hey @robinAwallace can you PTAL if I am going in the right direction?

Hi @kartikaysaxena, thanks for contributing to compliantkubernetes.
The issue that you are working on wants the customAntiAffinity value for opensearch to be exposed in our config values and not really a custom label. Also, we have a policy not to update charts that are located under helmfile.d/upstream. As these are upstream charts, and should as such be updated upstream and not here.
So if you want to, you could update your PR to address the issue and not add labels. Thanks. :slightly_smiling_face:


Error After Removing a Linked Chest

Stack trace
[04:33:38 ERROR]: Could not pass event PlayerInteractEvent to TradeShop v2.6.1-STABLE java.lang.NullPointerException: Cannot invoke "org.bukkit.inventory.Inventory.getStorageContents()" because "shopInventory" is null         at org.shanerx.tradeshop.shop.Shop.updateFullTradeCount(Shop.java:607) ~[TradeShop-2.6.1-STABLE.jar:?]         at org.shanerx.tradeshop.shop.Shop.saveShop(Shop.java:353) ~[TradeShop-2.6.1-STABLE.jar:?]         at org.shanerx.tradeshop.shop.Shop.updateSide(Shop.java:1156) ~[TradeShop-2.6.1-STABLE.jar:?]         at org.shanerx.tradeshop.shop.listeners.ShopTradeListener.onBlockInteract(ShopTradeListener.java:104) ~[TradeShop-2.6.1-STABLE.jar:?]         at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor930.execute(Unknown Source) ~[?:?]         at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[paper-api-1.20.1-R0.1-SNAPSHOT.jar:?]         at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:81) ~[paper-api-1.20.1-R0.1-SNAPSHOT.jar:git-Paper-196]         at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.20.1-R0.1-SNAPSHOT.jar:?]         at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[paper-1.20.1.jar:git-Paper-196]         at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:126) ~[paper-1.20.1.jar:git-Paper-196]         at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:615) ~[paper-api-1.20.1-R0.1-SNAPSHOT.jar:?]         at org.bukkit.craftbukkit.v1_20_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:591) ~[paper-1.20.1.jar:git-Paper-196]         at net.minecraft.server.level.ServerPlayerGameMode.useItemOn(ServerPlayerGameMode.java:537) ~[?:?]         at net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItemOn(ServerGamePacketListenerImpl.java:2015) ~[?:?]         at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:37) ~[?:?]         at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.a(ServerboundUseItemOnPacket.java:9) ~[?:?]         at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:51) ~[?:?]         at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.20.1.jar:git-Paper-196]         at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]         at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]         at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1338) ~[paper-1.20.1.jar:git-Paper-196]         at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:197) ~[paper-1.20.1.jar:git-Paper-196]         at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]         at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1315) ~[paper-1.20.1.jar:git-Paper-196]         at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1308) ~[paper-1.20.1.jar:git-Paper-196]         at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]         at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1286) ~[paper-1.20.1.jar:git-Paper-196]         at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1174) ~[paper-1.20.1.jar:git-Paper-196]         at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:317) ~[paper-1.20.1.jar:git-Paper-196]         at java.lang.Thread.run(Thread.java:833) ~[?:?]
Plugin list
Paper Plugins:

BKCommonLib, HuskHomes
Bukkit Plugins:
AutomaticBroadcast, BlueSlimeCore, ChatControlRed, ChatFeelings, Citizens, ClientDetector, CMILib, CombatLogX, CommandPanels, CommandTimer
ConditionalEvents, CoreProtect, DecentHolograms, DiscordSender, DiscordSRV, Essentials, EssentialsSpawn, EvenMoreFish, FarmControl, FastAsyncWorldEdit
GSit, HeadDatabase, IllegalStack, InteractiveChat, InteractiveChatDiscordSrvAddon, InventoryRollbackPlus, InvisibleItemFrames, ItemEdit, LiteBans, LuckPerms
Multiverse-Core, NametagEdit, OreAnnouncer, PetMaster, PlaceholderAPI, PlayerTitle, PlayerWarps, PlugManX, PremiumVanish, ProtocolLib
QuickShop, Residence, SCore, ServerVariables, ShopItemOnly, Shopkeepers, spark, TabList, TradeMe, TradeShop
Train_Carts, TreeAssist, TryMe, UltimateAutoRestart, Vault, WildLoaders, WorldGuard, WorldGuardExtraFlags

Actions to reproduce (if known)
Steps:

Create a tradeshop with a walled sign and a chest
Complete with using /tradeshop create, /tradeshop addCost and /tradeshop addProduct
Remove the chest which linked with tradeshop
Click that sign and the console shows error

TradeShop version and Minecraft version (CraftBukkit/Spigot/Paper/...)
This server is running Paper version git-Paper-196 (MC: 1.20.1) (Implementing API version 1.20.1-R0.1-SNAPSHOT) (Git: 773dd72) You are running the latest version Previous version: git-Paper-65 (MC: 1.20.1)
TradeShop v2.6.1-STABLE
Agreements

[X] I have searched for and ensured there isn't already an open issue regarding this.
[X] My version of Minecraft and TradeShop are supported by the TradeShop Dev Team (when in doubt, first ask on the Discord).

Other
Tried:
Failed to create/edit that sign after restarting the server and remove the sign

You shouldn't be editing trade signs. They update on their own, and any improper changes could have negative effects.
Do you mean that you placed a sign and chest then used the create command, or did you create a sign with [trade] on the first line above a chest then use the create command on that?
This probably is caused by issues related to https://github.com/Tradeshop/TradeShop/issues/159 and should be fixed in the latest dev build. You can try that out, but see my comment in the Ghost Tradeshop thread in the discord before trying that version.


Document Compatible Python Versions

I had a lot of trouble getting this example to work, largely due to the availability of specific packages on specific versions of Python.
I attempted an install in Python versions 3.8 and 3.7 to no avail, but succeeded with 3.6 on a fresh Anaconda environment.
It would be nice to add a quick note in the README about what types of environments are supported.

Me too...I can't run this codes.there is always a error.I don't know what version should I download.
I already downloady python 3.7 3.8 3.10.
still can't run it.


Python CLI PR1

Python CLI for Stratos
( Do not merge )

Thanks Milindu for your contribution! This pull request is now merged to stratos-4.1.x branch. It will be released with 4.1.4.


error issuing get command

I can use the list and set commands, but I can't use the get command, Any idea what could be wrong ?
./pcomfortcloud.py<EMAIL_ADDRESS>$password$ get 1
reading from device 'Bedroom' (c06e5ccb6886fa8eb0e8a18b432402f0f35ee847d6315fe9dd92d4bbaef9d0dd)
Traceback (most recent call last):
File "./pcomfortcloud.py", line 5, in
main.main()
File "/html/panasonic/pcomfortcloud/main.py", line 218, in main
print_result( session.get_device(device['id']) )
File "/html/panasonic/pcomfortcloud/session.py", line 268, in get_device
raise ResponseError(response.status_code, response.text)
File "/html/panasonic/pcomfortcloud/session.py", line 43, in init
self.text = json.loads(text)
File "/usr/lib/python3.6/json/init.py", line 354, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.6/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.6/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

It fails in get_device and I'm thinking this is access right issue. The response code is not 200 but something else, but the error report fails since the body isn't JSON.
I will fix the error report, but the reason behind your issue is still unknown.
Are you able to access the device in the app with the same user and password?

I just downloaded and tried this module and after some initial troubles I got it to work.  I can similarly use list and set but the get command comes up with a different error:
matth@Ubuntu:~$ sudo python3 .local/bin/pcomfortcloud<EMAIL_ADDRESS>'password' get 1
reading from device 'Study' (8b9ba922de8289714a5b9d9a12377c04)
Traceback (most recent call last):
  File ".local/bin/pcomfortcloud", line 11, in <module>
    load_entry_point('pcomfortcloud==0.0.15', 'console_scripts', 'pcomfortcloud')()
  File "/home/matth/.local/lib/python3.6/site-packages/pcomfortcloud/__main__.py", line 218, in main
    print_result( session.get_device(device['id']) )
  File "/home/matth/.local/lib/python3.6/site-packages/pcomfortcloud/session.py", line 285, in get_device
    'parameters': self._read_parameters(_json['parameters'])
  File "/home/matth/.local/lib/python3.6/site-packages/pcomfortcloud/session.py", line 436, in _read_parameters
    value['nanoe'] = constants.NanoeMode(parameters['nanoe'])
  File "/usr/lib/python3.6/enum.py", line 293, in __call__
    return cls.__new__(cls, value)
  File "/usr/lib/python3.6/enum.py", line 535, in __new__
    return cls._missing_(value)
  File "/usr/lib/python3.6/enum.py", line 548, in _missing_
    raise ValueError("%r is not a valid %s" % (value, cls.__name__))
ValueError: 4 is not a valid NanoeMode

Is this related or is it a different error?

@MatthK different issue, looks like you have a NanoeMode 4 we haven't seen before. What model do you have?

It's a Panasonic CS-E12VKA.
And wow, that did the trick.
reading from device 'Study' (8b9bf922de8289614a5b9d9a12377c04)
id                       : 8b9bf922de8289614a5b9d9a12377c04
parameters
    temperatureInside    : 25
    temperatureOutside   : 30
    temperature          : 28.0
    power                : On
    mode                 : Cool
    fanSpeed             : Auto
    airSwingHorizontal   : Auto
    airSwingVertical     : Auto
    eco                  : Auto
    nanoe                : Unknown2

Is there somewhere an API description on how to access the comfort cloud? I came across this module when I searched for an API as I ideally would like to integrate it into my custom made "homepage". I want to create a page with some Javascript to get and send the JSON. Alternatively I can try to trigger this module, but I am thinking it might be easier and more elegant if I could send the commands directly, hence the understanding of the API. Since I don't know Python, it might take a bit to understand how your module works.

May you open the Comfort Cloud app and see what mode you have for nanoe or eco? Normally it's just a toggle but I'm starting to think that your model is reporting a combo value. If it's not activated you can do that under "Device list" (hamburger menu).
The module is simple enough and is just using http-requests, take a look at https://github.com/lostfields/python-panasonic-comfort-cloud/blob/master/requests.http using VSCode with extension humao.rest-client

The nanoe as well as the ECONAVI was disabled. I have enabled both now and ran the get again. But the nanoe still shows "Unkown2".
And thanks for the link. That looks quite promising.

Hmm, the product page says something about Nanoe-X and Nanoe-G, can you toggle them with the remote? and dump the value to see if it changes?
1: Off
2: Nanoe-X
3: Nanoe-G or Nanoe-G/Nanoe-X
4: Nanoe-G or Nanoe-G/Nanoe-X

When I turn it off, it shows as Off. When I turn it on, it shows as Unknown2. I don't have any other option.


Switch implicit compile tests to actual compile tests

I'm going to try and develop something that
a) aggregates the tests into fewer cases
b) tests each stage of the pipeline for each case
But merging this for the moment, so we have a better place to put the simple tests


Change apiVersion of external-secrets.io

Looks they beta is used now for ClusterSecretStore.
When alpha1 is used additional (outdated) fields are added causing the ClusterSecretStore object creation to always be in the "pending" state. See the screenshots provided below.

When using beta1, all is fine. Refer to the screenshot below.

LGTM


Align points' normals to an object in scene?

I stumbled upon this awesome asset yesterday and been trying to get all the path normals to look at a given object but I didn't find any way to do that via script, only manually. Is there something I'm missing out or this isn't a feature?

Replace or override this function
public Quaternion GetRotation (float t, EndOfPathInstruction endOfPathInstruction = EndOfPathInstruction.Loop) {
            var data = CalculatePercentOnPathData (t, endOfPathInstruction);
            Vector3 direction = Vector3.Lerp (localTangents[data.previousIndex], localTangents[data.nextIndex], data.percentBetweenIndices);
            Vector3 normal = Vector3.Lerp (localNormals[data.previousIndex], localNormals[data.nextIndex], data.percentBetweenIndices);
            return Quaternion.LookRotation (MathUtility.TransformDirection (direction, transform, space));
        }

in VertexPath.cs.
I removed second argument from LookRotation, so now my object rotates along world's up.


Caller Function Cache

Added caching to the Store for Function and Memory objects. The Caller uses this to retrieve Function/Memory objects, this saves allocating lots of objects in caller contexts.
This is an alternative to #233 and #224. I prefer this approach to #233 since it gives access to the entire Function API, instead of a tiny subset exposed through the Caller. I prefer it to #224 since the Memory object remains a class instead of becoming a struct, which is more idiomatic.

@kpreisser I've updated this PR with some extra work, basically adding the same caching for Memory as well as Function. That means it supersedes #224 as well (and we can conveniently ignore the MacOS CI weirdness).
I'd appreciate your re-review :)

I've addressed those three comments.

However, we will probably need to wait for @peterhuene, to verify e.g. that the usage of only the index field of the ExternXyz is correct/sufficient to match the object from the dictionary (I would think so, as the dictionary will only store objects that belong to the current Store), or if it would technically be required to compare the whole ExternXyz (store + index).

I would like to add a sanity check that extern.store == this_store, but I'm not sure exactly what I should compare with. The docs simply say it's an "internal identifier" and as far as I can see there's no way to retrieve that identifier for a given wasmtime_store*.

So I don't think you'll be able to assert on store ids, but could we assert that the item (memory/function) being return from the cache has the same store object reference as this?

I don't think checking the Store field of the Memory/Function will help much, since those objects are all constructed inside the Store (referencing this) in the first place.
If it's not possible to check then I think we're probably good enough as we are. Any objects constructed in the cache will use the store context internally and will presumably detect errors for us. For example Memory does this:
Native.wasmtime_memory_type(store.Context.handle, this.memory);
Which I assume will internally sanity check if the store context and the memory are mismatched?

👍
Additionally, to be on the safe side regarding the uint64_t store_id (ulong store) value of externs that Wasmtime uses, we could use both fields from the Extern... as key (ValueTuple) for the dictionary, so that we don't need to assume that Wasmtime always uses the same ulong store value for Extern... objects for the current store, but instead we simply use the same values to identify the extern as Wasmtime does. E.g.
private readonly ConcurrentDictionary<(ulong store, nuint index), Function> _funcCache = new();
internal Function GetCachedExtern(ExternFunc @extern)
{
    var key = (@extern.store, @extern.index);
    if (!_funcCache.TryGetValue(key, out var func))
    {
        func = new Function(this, @extern);
        func = _funcCache.GetOrAdd(key, func);
    }

    return func;
}

This should work as ValueTuple<...> provides an implementation of Equals and GetHashCode that combines the members of the tuple.
What do you think?
Thanks!

I've changed the key to a tuple of store/index as @kpreisser suggested.

Would you mind adding tests that...

I've added tests for:

Getting memory multiple times always returns the same object.
Getting a non-existant memory returns null, even after getting something else from the cache.
Getting a function multiple time always returns the same object.
Getting two different functions does not return the same object.

A possible optimization idea ... key of ExternKind

I did look into this but it's made a bit difficult by the way Extern is built at the moment - the ExternUnion doesn't know which variant it represents so equality/GetHashCode can't be implemented on it.
I'll probably come back to look at this again soon. It looks like it can be fixed by merging the fields of ExternUnion into Extern so that all the necessary information is in one place. This would create lots of small changes across the rest of the codebase, so I didn't want to do that in this PR.

Thanks!

I did look into this but it's made a bit difficult by the way Extern is built at the moment - the ExternUnion doesn't know which variant it represents so equality/GetHashCode can't be implemented on it.

Actually, what I meant was to use something like
ConcurrentDictionary<(ExternKind kind, ulong store, nuint index), IExternal> _externCache

i.e. add the ExternKind to the key, which I think should work since all externs have the same fields (ulong store and nuint index), so that only a single ConcurrentDictionary would be needed. The functions could then look like this:
internal Function GetCachedExtern(ExternFunc @extern)
{
    var key = (ExternKind.Func, @extern.store, @extern.index);

    if (!_externCache.TryGetValue(key, out var func))
    {
        func = new Function(this, @extern);
        func = _externCache.GetOrAdd(key, func);
    }

    return (Function)func;
}

internal Memory GetCachedExtern(ExternMemory @extern)
{
    var key = (ExternKind.Memory, @extern.store, @extern.index);

    if (!_externCache.TryGetValue(key, out var mem))
    {
        mem = new Memory(this, @extern);
        mem = _externCache.GetOrAdd(key, mem);
    }

    return (Memory)mem;
}

However, a downside is the additional cast e.g. to Function or Memory, since the dictionary's value type parameter is IExtern.
What do you think?

Actually, what I meant was...

That's much simpler than what I had in mind, good idea. I've added that.


permit minimum query length of 0

By default, if no minQueryLengthis set, it defaults to 2. Suggestions begin to show after two characters are typed.
I would like to set this to 0 so that suggestions display immediately; however, by doing so the following code evaluates to false so it defaults to 2.
https://github.com/prakhar1989/react-tags/blob/master/lib/Suggestions.js#L32

As a workaround, it looks like -1 is valid input and would result in the desired behavior.

Although, @jacobcarpenter's method is a hack, I support this! Thanks @jacobcarpenter's for sharing 👍


stylesheet loading with file and webicity scheme

I couldnt find anything about that in specs besides that i should return NetworkError so i handled it that way

I think that i dont need a protocol registry to do this because then i still have to check if it is webicity or file or http scheme. i cant use HTTP protocol because there is HTTPfetch to retrieve data. And also webicity protocol should then be changed because there is this .html adding to the file name and i would change that to load just .css files


Fix performance-history-scripting.md Example Scripts

Updated example script for Sample 3: Noisy neighbor? That's write! as the current implementation didn't work.

Moved Format-Iops function into the context of the invoke-command so that it could actually be called on the remote machine.
Added an if statement to the do loop in Format-Iops so that if the initial raw value is less than 1000, it doesn't end up being output as 0 K.
Changed values passed to Format-Iops in the PsCustomObject block to actually be raw values rather than full MSCluster_HealthMetric objects.
Changed Sort-Object statement in final output to be descending to actually output the Top 10 rather than the Bottom 10.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: comnam90 sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Updated example script for Sample 6: Memory hog, you can run but you can't hide as the current implementation didn't work.

Moved Format-Bytes function into the context of the invoke-command so that it could actually be called on the remote machine.
Added an if statement to the do loop in Format-Bytes so that if the initial raw value is less than 1024, it doesn't end up being output as 0 KB.
Changed values passed to Format-Bytes in the PsCustomObject block to actually be raw values rather than full MSCluster_HealthMetric objects.
Changed Sort-Object statement in final output to be descending to actually output the Top 10 rather than the Bottom 10.

Changes look good to me. Thanks very much, Ben!


Yii got 2 versions

Yii version 1 is very popular so i thing is good to be in list

+1

Thanks for the suggestion.


ScoreTxt and TimerTxt cannot be edited or gotten in lua (Pre-Release)

Describe your bug here.
I'm trying to change the font of the texts but it won't allow me because seemingly it is no longer possible to get them in lua.
Command Prompt/Terminal logs (if existing)
No response
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows
Did you edit anything in this build? If so, mention or summarize your changes.
No

Lua text functions are currently a bit broken and only work for lua texts as they only check for lua texts
I do have a pull request that fixes this which I'm hoping gets accepted
For now though, use setProperty and getProperty

Approved a PR that should fix this issue


Rework Storage API

There are several issue with the storage API:

There are no methods to get access to content without resetting the inner api, thus you can't use content to filter the items (tho you could access it without calling a method)
The comparison function does not compare nested tables, only key (the one in sfutil is better for this purpose)
A lot of code could be simplified (for example, comparing object (ignoring count), then checking count is shorter than comparing name, then count, then parameters, etc.)

Done in branch port


fix: release tool corner case

Need to add all package change before stash
SDKAutomation need to remove tag set in config

[ ] The purpose of this PR is explained in this or a referenced issue.
[ ] The PR does not update generated files.

These files are managed by the codegen framework at Azure/autorest.go.

[ ] Tests are included and/or updated for code changes.
[ ] Updates to CHANGELOG.md are included.
[ ] MIT license headers are included in each file.

/check-enforcer override


[Build] [chip-tool] Building chip-tool always fails on Raspberry pi

Build issue(s)
After following the description at
https://github.com/project-chip/connectedhomeip/blob/master/docs/guides/chip_tool_guide.md
Building of chip-tool always fails at the following step:
[402/2515] ACTION //examples/energy-management-app/energy-management-common:energy-management-common_zapgen_generate(//build/toolchain/linux:linux_arm64_gcc)
FAILED: gen/examples/energy-management-app/energy-management-common/zapgen/zap-generated/access.h gen/examples/energy-management-app/energy-management-common/zapgen/zap-generated/gen_config.h gen/examples/energy-management-app/energy-management-common/zapgen/zap-generated/endpoint_config.h gen/examples/energy-management-app/energy-management-common/zapgen/zap-generated/IMClusterCommandHandler.cpp
python3 ../../third_party/pigweed/repo/pw_build/py/pw_build/python_runner.py --gn-root ../../ --current-path ../../examples/energy-management-app/energy-management-common --default-toolchain=//build/toolchain/linux:linux_arm64_gcc --current-toolchain=//build/toolchain/linux:linux_arm64_gcc --capture-output --python-dep-list-files gen/examples/energy-management-app/energy-management-common/energy-management-common_zapgen_generate_metadata_path_list.txt -- ../../scripts/tools/zap/generate.py --no-prettify-output --templates /home/ubuntu/chip_git/connectedhomeip/src/app/zap-templates/app-templates.json --output-dir /home/ubuntu/chip_git/connectedhomeip/out/host/gen/examples/energy-management-app/energy-management-common/zapgen/zap-generated --lock-file /home/ubuntu/chip_git/connectedhomeip/out/host/zap_gen.lock --parallel /home/ubuntu/chip_git/connectedhomeip/examples/energy-management-app/energy-management-common/energy-management-app.zap
🚀 Executing: git log -1 --format={"hash": "%H","timestamp": %ct}
🔍 Git commit: 309238bb4dea36dfa87baed4eefc34e9dd4d189a from Fri Sep 13 2024 15:31:16 GMT+0000 (Coordinated Universal Time)
🔍 Current src hash: UXLQRBDOwI9GXtZcvtJlFZe8nP0=
🔍 Current src-shared hash: Fwbu7CwefZXOH5LqawYL+8aAyqY=
👎 Error reading old hash file: /home/ubuntu/zap_src/zap/spa/hash.json
🐝 Front-end code changed, so we need to rebuild SPA.
🚀 Executing: npx quasar build
.d88888b.
d88P" "Y88b
888     888
888     888 888  888  8888b.  .d8888b   8888b.  888d888
888     888 888  888     "88b 88K          "88b 888P"
888 Y8b 888 888  888 .d888888 "Y8888b. .d888888 888
Y88b.Y8b88P Y88b 888 888  888      X88 888  888 888
"Y888888"   "Y88888 "Y888888  88888P' "Y888888 888
Y8b
Build mode................ spa
Pkg quasar................ v2.16.8
Pkg @quasar/app-webpack... v3.13.5
Pkg webpack............... v5
Debugging................. no
Publishing................ no
Configured browser support (>= 64.69% of global marketshare):
· Chrome for Android >= 127
· Firefox for Android >= 127
· QQ for Android >= 14.9
· UC for Android >= 15.5
· Android >= 127
· Chrome >= 127
· Edge >= 127
· Firefox >= 128
· IE >= 11
· iOS >= 17.5
· Kaios >= 3.0-3.1
· Opera Mini >= all
· Opera Mobile >= 80
· Opera >= 111
· Safari >= 17.5
· Samsung >= 25
App • Running "@quasar/testing" Quasar App Extension...
App • Running "@quasar/testing-unit-jest" Quasar App Extension...
App • Running "@quasar/testing-e2e-cypress" Quasar App Extension...
App • Extending "UI" Webpack config
App • Cleaned build artifact: "/home/ubuntu/zap_src/zap/spa"
App •  WAIT  • Compiling of "UI" in progress...
App •  DONE  • "UI" compiled with errors • 185275ms
⇝
⇝  App •  ERROR  •  UI  in ./src/App.vue?vue&type=script&lang=js
⇝
⇝ Module not found: Can't resolve imported dependency "querystring"
⇝ Did you forget to install it? You can run: npm install --save querystring
⇝
⇝  App •  ERROR  •  UI  in ./src/boot/ws.js
⇝
⇝ Module not found: Can't resolve imported dependency "events"
⇝ Did you forget to install it? You can run: npm install --save events
⇝
App •  COMPILATION FAILED  • Please check the log above for details.
👎 Program npx exited with error code: 1
Platform
No response
Anything else?
No response

@renu285 This seems like an issue with the ZAP setup you have, so you might want to file it in https://github.com/project-chip/zap/actions/
That said:

Have you tried the npm install --save events it suggests?
What version of node are you using?

Yes I have tried doing both npm install --save events and npm install --save querystring and still complains the same. The node version i am using is v20.14.0.

OK.  Then please report in this in the ZAP repo, since it's the ZAP node setup that's having problems.

This is a ZAP issue, please open in zap repository.


[DISCUSSION] Determining Bridge Connection for Substrate <> EVM Transactions

Is your feature request related to a problem? Please describe.
Currently, the bridge dapp detects bridge connections by the anchor addresses. However, this approach will not work if we include Substrate in the connection because Substrate does not have an anchor address. Instead, it only has a tree id which is not the same as the anchor address.
Describe the solution you have
To resolve the issue, we can use the APIs provided by the protocols (EVM or Substrate) to get the connection between the anchor address and tree id dynamically queried by the bridge dapp.
Describe alternatives you've considered
We also considered hardcoding the bridges connection in a new configuration in the ApiConfig class. However, this approach has the disadvantage of requiring updates whenever the anchor address or tree id changes. Therefore, it is not a desirable solution.
cc: @drewstone @shekohex.

Can't we just detect that it's not an anchor address and a tree instead and switch to the Substrate chain? Do we have resource IDs corresponding to the anchor in question? If so, we can just parse the chain ID from it and figure out how to switch based on that.

The issue here is to determine the available destination chains for the current active source chain. Currently, we detect these chains by anchor address and display the available destination chains that share the same anchor address as the source chain. However, the Substrate chain does not have an anchor address.
If we use resource IDs, how can we find the connected resource IDs with the current resource ID?

We query the anchor for its linked Edges, parse the resource ID from the edge data, then parse the typed chain IDs from the resource IDs.

The proposed approach works! We will proceed with the approach and submit a PR 👍.


Create milestones for the future

there is a tutorial https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/creating-and-editing-milestones-for-issues-and-pull-requests

Created 3 milestones for now. Will do :)


Python process creation fails silently due to "python3" argument

Hi,
In the runAngr method that's part of the AngryGhidraProvider.java file, a python3.exe process is created.
Since this executable is not available for all python versions > 3.4 (these versions contain the "regular" python.exe), executing the plugin will just end up always printing the
"No solution found" string immediately.
That said, maybe a check for the python version could be added prior to the process creation so the user would not be left wondering why the plugin cant find any solution...
Thanks

Hi!
Try current master and let me know if it works fine.

Great - works as expected,
Thanks for the quick fix!


This is a back port work from Upstream Icehouse to Cis-Havana.

Update block_device_info to contain swap and ephemeral disks
An ephemeral or swap disk is attached to an instance on boot
as follows: nova boot --flavor FLAVOR --image IMAGE_ID
--swap 512 --ephemeral size=2 INSTANCE.  When a hard reboot is
performed on the instance, nova fails to recreate the
appropriate libvirt XML definition, containing the ephemeral
disk.  This is because the correct block_device_info dict that
is passed to the compute manager's reboot_instance method does
not contain swap or ephemeral disk key values that are necessary
to recreate those disks.  In addition to nova boot, the correct
block_device_info dict is also needed by nova rebuild, reboot,
resize, and migrate to recreate those disks.  This patch updates
_get_instance_volume_block_device_info (renamed
_get_instance_block_device_info) to return the swap and ephemeral
disk key values, in addition to the block_device_mapping it
already returns today.
Change-Id: I7341877c01183d374e4539f112c0f56bb9338500
Closes-bug: #1305423
Closes-rally-bug: DE2633
Not-in-upstream: True
Co-Authored-By: Thang Pham
Backported-from: icehouse

Please change the commit message,
Remove the "Not-in-upstream", add "Upstream-review: https://review.openstack.org/#/c/100362/"

Something is not right here, looks like 2 tests are failing:
Switched to branch 'bug/1305423'
abelopez@ABELOPEZ-M-610Q:~/git/cisco/nova  (bug/1305423)$ ./run_tests.sh nova.tests.compute
...
Ran 959 tests in 43.583s
FAILED (failures=2)
FAIL: nova.tests.compute.test_compute.ComputeTestCase.test_pre_live_migration_works_correctly
FAIL: nova.tests.compute.test_compute.ComputeTestCase.test_post_live_migration_working_correctly
Tracebacks at
Traceback (most recent call last):
File "/Users/abelopez/git/cisco/nova/nova/tests/compute/test_compute.py", line 4647, in test_post_live_migration_working_correctly
mock.call(c, inst_ref, {'block_device_mapping': []})])
File "/Users/abelopez/git/cisco/nova/.venv/lib/python2.7/site-packages/mock.py", line 863, in assert_has_calls
'Actual: %r' % (calls, self.mock_calls)
AssertionError: Calls not found.

The test failure fix is in this version:
https://github.com/CiscoSystems/nova/commit/010d735d12fe9e6f8bfb0c0741fac74c87bac9fa
Thanks.

Can you please push 010d735 to bug/1305423 ? That will add it to this pull request

Ran 959 tests in 46.224s
OK
:+1:

LGTM - but someone else must merge

Can you see if this actually works? I tried back porting this before exactly the same way, but it didn't work. AFAIK in icehouse  def _get_instance_block_device_info()  was refactored with creating a block_device_object  bdms = (block_device_obj.BlockDeviceMappingList.get_by_instance_uuid(context, instance['uuid'])) and removing _get_volume_bdm, _get_volume_bdms.
As Kevin said in the upstream bug "... discovered that in _get_volume_bdms we only return volumes with a volume_id" Unless we fix that I think we're in the same boat.


cargo install flutter_rust_bridge_codegen needs nightly rustc

trying to run cargo install flutter_rust_bridge_codegen on my system fails with this error:
error[E0658]: use of unstable library feature 'bool_to_option'

@ those 3 locaions:
~/.cargo/registry/src/github.com-1ecc6299db9ec823/flutter_rust_bridge_codegen-1.48.0/src/generator/rust/mod.rs:369:44
~/.cargo/registry/src/github.com-1ecc6299db9ec823/flutter_rust_bridge_codegen-1.48.0/src/ir/func.rs:118:34
~/.cargo/registry/src/github.com-1ecc6299db9ec823/flutter_rust_bridge_codegen-1.48.0/src/ir/ty.rs:119:18

after switching to rustc nightly using:
rustup toolchain install nightly
rustup default nightly

it compiles fine again:
Replaced package `flutter_rust_bridge_codegen v1.30.0` with `flutter_rust_bridge_codegen v1.48.0` (executable `flutter_rust_bridge_codegen`)

Either the code should be adapted for it to compile with the stable rust compiler, or the documentation should be adapted to tell users that nightly is required, for example here: http://cjycode.com/flutter_rust_bridge/integrate/deps.html

Seems only need stable 1.64.0? could you please try that :)

ah, you're right, sorry! I should have tried updating to latest stable first!
$ rustup default stable
stable-x86_64-unknown-linux-gnu unchanged - rustc 1.60.0 (7737e0b5c 2022-04-04)

$ rustup update
stable-x86_64-unknown-linux-gnu updated - rustc 1.64.0 (a55dd71d5 2022-09-19) (from rustc 1.60.0 (7737e0b5c 2022-04-04))

$ rustc --version
rustc 1.64.0 (a55dd71d5 2022-09-19)

$ cargo install --force flutter_rust_bridge_codegen
Replaced package `flutter_rust_bridge_codegen v1.48.0` with `flutter_rust_bridge_codegen v1.48.0` (executable `flutter_rust_bridge_codegen`)


Advanced issue search box

It should be great to have a simple textbox to filter issues on their title in the issue list. Search could be as simple as showing all issues having at least a word from the box in their title.

+1. Without this feature it's difficult to work when you have a lot of issues.

+1, already 350 issues and it's already hell.

Duplicate of #13

Closed as duplicate of #13


Fcntl extension

This pull request exposes the variadic fcntl() API to Swift for both OS X and Linux.  It adds 3 different forms of the fcntl() API to the Swift stdlib. Tested on both OS X and Linux (Ubuntu 15.10).

Since this is a change to the library API, so it should follow the Swift Evolution Process.  Please write an informal proposal and send it to<EMAIL_ADDRESS>For the PR itself, please clang-format the C sources, and add tests for the new APIs.

This document provides a thorough guide on submitting a proposal: https://github.com/apple/swift-evolution/blob/master/process.md

All recommended changes complete and tested.

Could you squash everything into one commit and resolve conflicts against master?

Sure.    I find it safe to do it this way.  Anyway, I resubmitted the PR here --> https://github.com/apple/swift/pull/413
Should be good to go.


[API-UI] [LB Config] Error when trying to create a LBConfig with only a name

Version: v0.14.2
Steps to Reproduce:

Go to API for LoadBalancerConfigs
Try to create a LB Config with only a name.

Error:

You should be able to create a LB Config without those fields.

I wasn't at the top level /v1/loadbalancerconfigs, which is why I was getting the error. I am able to create a config when I am at the right location.


Add file tester

Should be useful for onboarding to package managers. Does non-trivial testing on the files, but doesn't actually launch fzf.

How should I use it? That's what I'm getting:
$ pwd
/Users/bartek/dev/random/purr
$ ./tests/tester/validate_files.sh -p ./out/purr -a ./tests/mocks/adb_mock.sh -X
purr
[-q: Sets the default query]
[-i: Disables the instruction header]
[-a: Set custom adb parameters as a string]
[-f: Set custom fzf parameters as a string]
[-v: Get version number]
[-V: Get version of all dependencies]
grep: /tmp/purr.xTOgMk9aTO/serial-cache.purr: No such file or directory

out/file_tester -a out/adb_mock -p out/purr

Works for me. Let me know it's being problematic.

It works!
Thanks for all your amazing work on this.

You can merge this and release 2.0.2 and I'll use that test in the homebrew formula.

Merged and released. Thanks!


JSL: Archive xml test results

Implemented by https://github.com/sdgtt/jenkins-shared-library/commit/da1b0bf50c635bb11e60152936f9df37cd900ad3


Add files via upload

What type of PR is this?
tests
What this PR does / why we need it:
Update of feature file as per API-testing-guidelines.md
Which issue(s) this PR fixes:

Fixes #
Special notes for reviewers:
Changelog input
 release-note

Additional documentation
This section can be blank.
docs

@hdamker @akoshunyadi @shilpa-padgaonkar FYI


chore: fix some comments

Will make changes to saparate PR: https://github.com/bluealloy/revm/issues/1348


Continuous algebra equivalences

We don't have ContinuousAlgEquiv in mathlib as far as I can see: this is the structure whose terms are continuous R-algebra isomorphisms with continuous inverses. We do have ContinuousLinearEquiv though, so it's just a case of putting together this and AlgEquiv.
The reason we need it: we want to state that if L/K is a finite extension of number fields and v is a finite place of K, then the algebra isomorphism L tensor_K K_v = prod_{w|v} L_w is bicontinuous.

claim

(My current plan is to get to this "somewhen this week". If this is more urgent, let me know and I can prioritise this, or disclaim the task.)

I'm just seeing this now, I have an API for ContinuousAlgEquiv in my repo that I worked on last week. I can PR it!

Sure, that sounds good - I'll be happy to review.


flag disabling assertion checks once all functional.

          For later probably, it might be worth having a flag or something that can disable these checks. Again, they are great, but in production they can slow things down a lot. Like I said though this bridge can be crossed later/only if needed.

Originally posted by @azane in https://github.com/BasisResearch/cities/pull/14#discussion_r1365936540

no longer relevant