CDI: Add nvidia-docker 1.0 directories

Container images that are built to be executed with nvidia-docker 1.0
usually export LD_LIBRARY_PATH pointing to /usr/local/nvidia/lib and
/usr/local/nvidia/lib64 [1]
[1] https://gitlab.com/nvidia/container-images/cuda/-/blob/e3ff10eab3a1424fe394899df0e0f8ca5a410f0f/dist/12.3.1/ubi9/base/Dockerfile#L44
Related: https://github.com/NixOS/nixpkgs/issues/290609
Description of changes

Things done
I have tested that podman run --device=nvidia.com/gpu=all -d -p 11434:11434 --name ollama ollama/ollama works as expected with this change, and is able to use all the GPU's in my system without any change.
My NixOS configuration sets virtualisation.containers.cdi.dynamic.nvidia.enable = true;.

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

If upstream produces a broken image

They are not producing a broken image. When you use CUDA in container images it's common practice to do this. With the nvidia-docker, you would:

Set LD_LIBRARY_PATH to /usr/local/nvidia/lib{,64}
Something --a runtime wrapper,likely-- mounts the required drivers and libraries from the host at /usr/local/nvidia/lib{,64}
Your container runtime hopefully runs

Later on, I don't know exactly the timeline or when that happened, they changed the story a little bit:

You generate a CDI spec, that provides you with the ability to extend OCI hooks and mount other directories from the host.
With CDI, you mount the relevant drivers and binaries from the host on the guest.
An OCI hook, injected by CDI, takes the /etc/ld.so.cache on the container, and updates it, by adding the discovered libcuda.so.* and friends.
Your container starts, and hopefully runs

It's not ideal, it's probably not the most stable thing, but it's that we have. Many, many, many container images use this as of today. Our interest as NixOS developers is to find the balance between a perfect implementation, and letting people run their stuff without getting in their way as much as possible.

If they actually enforce that these paths exist, they are broken:) If they were not broken, their LD_LIBRARY_PATH would be a no-op and you'd not get an error because the ld.so would still look up the ld.so.cache

They are not broken, again. They just took the decision that the container images would place the LD_LIBRARY_PATH at the place where the runtime wrapper will mount the host libraries (or ld.so.conf.d being augmented with it) --see official example of creating a cuda image from nvidia:--

The LD_LIBRARY_PATH set up by the container shouldn't matter at all, we have already informed the dynamic loader about the drivers' location through other means

The LD_LIBRARY_PATH set up by the container shouldn't matter at all, we have already informed the dynamic loader about the drivers' location through other means

For the context of this PR, it doesn't matter whether it's LD_LIBRARY_PATH or ld.so.conf.d. Side note: I think the applications depending on CUDA tend to do a dlopen, that is affected by LD_LIBRARY_PATH. I am not so sure that it should not matter at all, I tend to think otherwise.
In any case, I did show both:

How a CUDA container image should be built according to nvidia:

Setting LD_LIBRARY_PATH
Modifying /etc/ld.so.conf.d

nvidia-docker doing this very same thing

For the context of this PR, it doesn't matter whether it's LD_LIBRARY_PATH or ld.so.conf.d. Side note: I think the applications depending on CUDA tend to do a dlopen, that is affected by LD_LIBRARY_PATH. I am not so sure that it should not matter at all, I tend to think otherwise.

The dlopen should work out of the box regardless of LD_LIBRARY_PATH, because our CDI hook already takes care of this.
Does your example (ollama) actually fail without these extra mounts?

The dlopen should work out of the box regardless of LD_LIBRARY_PATH, because our CDI hook already takes care of this.

No, if the code in the container does a dlopen it's already on its own. Only LD_LIBRARY_PATH will matter.

 No, if the code in the container does a dlopen it's already on its own. Only LD_LIBRARY_PATH will matter.

No, dlopen is handled by the dynamic loader, which follows exactly the same logic as DT_NEEDED: it'll see if the library is already loaded (e.g. by LD_PRELOAD), it'll consult LD_LIBRARY_PATH, it'll consult DT_RUNPATH of the calling process, it'll consult the ld.so.caches

No, dlopen is handled by the dynamic loader, which follows exactly the same logic as DT_NEEDED: it'll see if the library is already loaded (e.g. by LD_PRELOAD), it'll consult LD_LIBRARY_PATH, it'll consult DT_RUNPATH of the calling process, it'll consult the ld.so.caches

Yes, you are right, my bad. In any case, we still need to mount this directory.

Yes, you are right, my bad. In any case, we still need to mount this directory.

Why, have we seen any failures?

As per PR description: podman run --device=nvidia.com/gpu=all -d -p 11434:11434 --name ollama ollama/ollama does not work with GPU acceleration without  this PR.

Very good. Could you publish the logs so we can see what the error was?

Very good, and sorry I missed this. Could you publish the logs so we can see what the error was?

❯ podman run --rm --device=nvidia.com/gpu=all -e OLLAMA_DEBUG="1" -p 11434:11434 --name ollama ollama/ollama serve
Couldn't find '/root/.ollama/id_ed25519'. Generating new private key.
Your new public key is:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAaCxFGYXlp+0XG39EwoWKRXrCqlhbn4rqYwO7d9OdY8

time=2024-02-24T10:50:18.777Z level=INFO source=images.go:710 msg="total blobs: 0"
time=2024-02-24T10:50:18.777Z level=INFO source=images.go:717 msg="total unused blobs removed: 0"
time=2024-02-24T10:50:18.777Z level=INFO source=routes.go:1019 msg="Listening on [::]:11434 (version 0.1.27)"
time=2024-02-24T10:50:18.777Z level=INFO source=payload_common.go:107 msg="Extracting dynamic libraries..."
time=2024-02-24T10:50:20.600Z level=INFO source=payload_common.go:146 msg="Dynamic LLM libraries [cuda_v11 cpu cpu_avx cpu_avx2 rocm_v6 rocm_v5]"
time=2024-02-24T10:50:20.601Z level=DEBUG source=payload_common.go:147 msg="Override detection logic by setting OLLAMA_LLM_LIBRARY"
time=2024-02-24T10:50:20.601Z level=INFO source=gpu.go:94 msg="Detecting GPU type"
time=2024-02-24T10:50:20.601Z level=INFO source=gpu.go:265 msg="Searching for GPU management library libnvidia-ml.so"
time=2024-02-24T10:50:20.601Z level=DEBUG source=gpu.go:283 msg="gpu management search paths: [/usr/local/cuda/lib64/libnvidia-ml.so* /usr/lib/x86_64-linux-gnu/nvidia/current/libnvidia-ml.so* /usr/lib/x86_64-linux-gnu/libnvidia-ml.so* /usr/lib/wsl/lib/libnvidia-ml.so* /usr/lib/wsl/drivers/*/libnvidia-ml.so* /opt/cuda/lib64/libnvidia-ml.so* /usr/lib*/libnvidia-ml.so* /usr/local/lib*/libnvidia-ml.so* /usr/lib/aarch64-linux-gnu/nvidia/current/libnvidia-ml.so* /usr/lib/aarch64-linux-gnu/libnvidia-ml.so* /opt/cuda/targets/x86_64-linux/lib/stubs/libnvidia-ml.so* /usr/local/nvidia/lib/libnvidia-ml.so* /usr/local/nvidia/lib64/libnvidia-ml.so*]"
time=2024-02-24T10:50:20.601Z level=INFO source=gpu.go:311 msg="Discovered GPU libraries: []"
time=2024-02-24T10:50:20.601Z level=INFO source=gpu.go:265 msg="Searching for GPU management library librocm_smi64.so"
time=2024-02-24T10:50:20.601Z level=DEBUG source=gpu.go:283 msg="gpu management search paths: [/opt/rocm*/lib*/librocm_smi64.so* /usr/local/nvidia/lib/librocm_smi64.so* /usr/local/nvidia/lib64/librocm_smi64.so*]"
time=2024-02-24T10:50:20.601Z level=INFO source=gpu.go:311 msg="Discovered GPU libraries: []"
time=2024-02-24T10:50:20.601Z level=INFO source=cpu_common.go:11 msg="CPU has AVX2"
time=2024-02-24T10:50:20.601Z level=DEBUG source=amd.go:32 msg="amd driver not detected /sys/module/amdgpu"
time=2024-02-24T10:50:20.601Z level=INFO source=routes.go:1042 msg="no GPU detected"

So yeah this instance is pretty hardcoded in ollama, what we could fix to make it a better citizen to be honest: https://github.com/ollama/ollama/blob/2a4b128ae3e3a18b10e8701aca2434d401eaa7ba/gpu/gpu.go#L37-L51
But honestly, I think this is a very common practice I fear.

Aha. I'd need to dig deeper, but looking at https://github.com/ollama/ollama/blob/2a4b128ae3e3a18b10e8701aca2434d401eaa7ba/gpu/gpu.go#L38-L50, it's more than likely they do not use dlopen with library names (as they would if they actually targeted nvidia-docker), but hard-code the absolute paths. So there's a possibility we're not even talking about institutionalizing nvidia's broken designs, but about accommodating a single project that fails to integrate with these nvidia's designs

@SomeoneSerge we basically saw the same thing at the same time and wrote the same thing hehe.
I would settle it like this: it makes some broken published software work, and the old wrapper was doing it as well; also, we don't lose much in the process.

I have to say: and thanks for pushing to find the real root cause :)

Ah, you were faster:)

But honestly, I think this is a very common practice I fear.

What I'm thinking is, and this concerns the /usr/bin and /usr/lib paths from the original PR, we could add options like cdi.dynamic.nvidia.mount-usr-local, mount-usr-bin, etc.

What I'm thinking is, and this concerns the /usr/bin and /usr/lib paths from the original PR, we could add options like cdi.dynamic.nvidia.mount-usr-local, mount-usr-bin, etc. I'd set them to false by default

Would you mind if we discuss that at https://github.com/NixOS/nixpkgs/issues/290609? I would like to discuss that a bit more in detail and understand better what you mean by that.

What I'm thinking is, and this concerns the /usr/bin and /usr/lib paths from the original PR, we could add options like cdi.dynamic.nvidia.mount-usr-local, mount-usr-bin, etc. I'd set them to false by default

Just checking in; would you be fine with me adapting this PR to include those two attributes?

Just checking in; would you be fine with me adapting this PR to include those two attributes?

I'd support documenting "a way" of making applications that hard-code these paths (like ollama) "just work", thereby also acknowledging that it's a pattern of abuse that exists.
I haven't considered whether a boolean flag like mount-usr-local is the best way to go, but is "a way".
For example, however, if we moved your mounts from let ... in into options, these boolean flags become kind of "redundant"

Sorry, I'm not thinking clearly today and I'm not very responsive this week. What do you think about the above points?

Sorry, I'm not thinking clearly today and I'm not very responsive this week. What do you think about the above points?

Let me experiment a little with different options. I am also not completely sold on any of them. The mounts option might seem very powerful because we get out of the equation to the user, however I do wonder if that is the best abstraction.

@SomeoneSerge 👋 I think this has now a good balance: it's possible to disable binary mounting and the container /usr/local/nvidia with mount-nvidia-binaries and mount-nvidia-docker-1-directories.
By default they are enabled so that users that enable virtualisation.containers.cdi.dynamic.nvidia.enable have a very complete experience out of the box, while it also allows more experienced users to mount less on containers if they wish.
I was weighing adding a list of mounts exposed to users, but I think it's better to wait for the use case to show up.
Regarding closureinfo, do you think I can handle that on this PR, or would you prefer to tackle that on a specific PR?
Thanks :)

Hi and thanks! I'll just drop the comments:

I was weighing adding a list of mounts exposed to users, but I think it's better to wait for the use case to show up.

Having to repeat the fairly long names of the boolean flags in all of cdi-generate.nix, callPackage ./cdi-generate.nix, and in options is, to my thinking, a use-case. I think the simplest cdi-generate you can make is the one parameterized by mounts :: List { hostPath, containerPath } (I'd also consider making it an attrset containerPath => { hostPath, containerPath }because attrsets are easier to override). Then the only file "aware" ofmount-nvidia-docker-1-directorieswould be the module itself, and it's there you'd derive mounts` from the booleans.
We still haven't got an escape hatch. IMO we must have one so it doesn't take a PR to nixpkgs to unbreak things. Moving mounts into an option is the obvious candidate

By default they are enabled so that users that enable virtualisation.containers.cdi.dynamic.nvidia.enable have a very complete experience out of the box

The executables... Iirc nvidia-ctk cdi generate mounts them too. Seems excessive, because PATH should be enough, but also I think the executables have a smaller potential for breaking unrelated stuff when compared to shared libraries.
I still think we should not mount {,/usr/}lib, this is just such an odd side-effect. Instead we should verify that the hook generates a valid ld.so cache

Regarding closureinfo, do you think I can handle that on this PR, or would you prefer to tackle that on a specific PR?

A separate PR and I also realized that closureinfo was maybe not the best pointer. We'll need referencesByPopularity or https://github.com/NixOS/nixpkgs/pull/178717

@SomeoneSerge Please have a look when you can. I removed the static and dynamic distinction. I think it's also not worth it for the NixOS user in the end.
It's now hardware.nvidia-container-toolkit only. I added a generic mounts attribute that is populated automatically if mount-nvidia-executables or mount-nvidia-docker-1-directories are true.
Please, let me know if something is not idiomatic or if it could be improved. Thanks :)

Rebased this. I would like to include this for NixOS 24.05 (https://github.com/NixOS/nixpkgs/issues/303285). I think removing cdi.static and cdi.dynamic attributes that were included in fd464f0543b9b5370b1b3c165462e9f988d038bb and 8ba61ebb8acb51bf3d249a10a4671c5aaec7d91d.
I think this is a better balance than doing the strict separation of cdi.static and cdi.dynamic for NixOS.

I think removing cdi.static and cdi.dynamic attributes that were included in https://github.com/NixOS/nixpkgs/commit/fd464f0543b9b5370b1b3c165462e9f988d038bb and https://github.com/NixOS/nixpkgs/commit/8ba61ebb8acb51bf3d249a10a4671c5aaec7d91d is a better balance

👍🏻

I think a typed option for CDI specs is still warranted. Note that any custom specs in etc."cdi/..." that specify "hostPaths" will need to handle exportReferencesGraph anyway.

Needs an mkRenamedOptionModule for from ...cdi.dynamic.nvidia to the new service for unstable users

I think a typed option for CDI specs is still warranted. Note that any custom specs in etc."cdi/..." that specify "hostPaths" will need to handle exportReferencesGraph anyway.

I think we can implement the typed option for CDI specs. I would suggest to do so as a follow up after this has been merged, and a way for users to specify their own CDI configurations statically that is properly type checked.

Needs an mkRenamedOptionModule for from ...cdi.dynamic.nvidia to the new service for unstable users

Right, thanks for the reminder. Adding it later today.

Right, thanks for the reminder. Adding it later today.

Just for the sake of notifying; this was pushed that very same day already.
cc/ @SomeoneSerge

@SomeoneSerge: thank you. Splitted in two commits as you suggested.
I will post in https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/ when it's merged.

Notably, we still need to follow up with a fix to the incomplete deployment issue (dependencies of the host drivers and tools not being mounted).

Absolutely, we have to follow up on this. Thanks for your feedback during this process.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/47

I just re-run it, but let me do a more thorough check before finally merging, everything should be fine but will comment here.
I will also double check the Docker issue and if it’s what I presume I will open another PR to fix that so it also makes it for 24.05.

If you've tested the runtime, I'm happy to merge now (I can test later)

Confirmed that it's working fine here in all the cases I tested.


[Extensibility Enhancement] [Event Request] Change Get for the call to a new procedure GetProdOrderRoutingLine in table 83 "Item Journal Line"

Hi, I need a small change in table 83 "Item Journal Line", procedure ItemPosting. Instead of doing a Get, use a procedure with an event, like the codeunit 22 "Item Jnl.-Post Line", this way you can change the Get with an event:
Original:
    procedure ItemPosting(): Boolean
    var
        ProdOrderRoutingLine: Record "Prod. Order Routing Line";
        NextOperationNoIsEmpty: Boolean;
        IsHandled: Boolean;
    begin
        if ("Entry Type" = "Entry Type"::Output) and ("Output Quantity" <> 0) and ("Operation No." <> '') then begin
            ProdOrderRoutingLine.Get(
              ProdOrderRoutingLine.Status::Released, "Order No.", "Routing Reference No.", "Routing No.", "Operation No.");
            IsHandled := false;
            OnAfterItemPosting(ProdOrderRoutingLine, NextOperationNoIsEmpty, IsHandled);
            if IsHandled then
                exit(NextOperationNoIsEmpty);
            exit(ProdOrderRoutingLine."Next Operation No." = '');
        end;

        exit(true);
    end;

Modified:
    procedure ItemPosting(): Boolean
    var
        ProdOrderRoutingLine: Record "Prod. Order Routing Line";
        NextOperationNoIsEmpty: Boolean;
        IsHandled: Boolean;
    begin
        if ("Entry Type" = "Entry Type"::Output) and ("Output Quantity" <> 0) and ("Operation No." <> '') then begin
            >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
            GetProdOrderRoutingLine(ProdOrderRoutingLine, Rec);
            <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
            IsHandled := false;
            OnAfterItemPosting(ProdOrderRoutingLine, NextOperationNoIsEmpty, IsHandled);
            if IsHandled then
                exit(NextOperationNoIsEmpty);
            exit(ProdOrderRoutingLine."Next Operation No." = '');
        end;

        exit(true);
    end;

    local procedure GetProdOrderRoutingLine(var ProdOrderRoutingLine: Record "Prod. Order Routing Line"; ItemJournalLine: Record "Item Journal Line")
    var
        IsHandled: Boolean;
    begin
        IsHandled := false;
        OnBeforeGetProdOrderRoutingLine(ProdOrderRoutingLine, ItemJournalLine, IsHandled);
        if IsHandled then
            exit;

        ProdOrderRoutingLine.Get(
          ProdOrderRoutingLine.Status::Released, ItemJournalLine."Order No.",
          ItemJournalLine."Routing Reference No.", ItemJournalLine."Routing No.", ItemJournalLine."Operation No.");
    end;

    [IntegrationEvent(false, false)]
    local procedure OnBeforeGetProdOrderRoutingLine(var ProdOrderRoutingLine: Record "Prod. Order Routing Line"; ItemJournalLine: Record "Item Journal Line"; var IsHandled: Boolean)
    begin
    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 52887.


Remove: MarekJasinski.FreeCommanderXE version 20.0.810

Checklist for Pull Requests

[X] Have you signed the Contributor License Agreement?
[ ] Is there a linked Issue?

Manifests

[X] Have you checked that there aren't other open pull requests for the same manifest update/change?
[X] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.6 schema?

Note: <path> is the directory's name containing the manifest you're submitting.

This is an old MSI installer from 2020. They no longer publish MSI installers and no longer list this as a downloadable version on their site.
Therefore I think this can be removed. Feel free to close if this is wrong.

Microsoft Reviewers: Open in CodeFlow

URL: https://freecommander.com/downloads/FreeCommanderXE-32-public_810a.msi
OK
(Automated message - build 913)


Add I.E.S La Hontanilla

Official website:
http://ies-lahontanilla.centros.castillalamancha.es/
(caution, is http not https!)
Information about the 2-year Technology Science course. Where subjects such as Computer Science and Programming are taught:
https://www.educa.jccm.es/en/edubachiller
Location:
Street/ Antonio Machado, s/n. 16400, Tarancón (Cuenca-Spain)
Official domain evidence:
The official email portal is located directly above the school's homepage.

Official website:
http://ies-lahontanilla.centros.castillalamancha.es/
Information about the 2-year Technology Science course. Where subjects such as Computer Science and Programming are taught:
https://www.educa.jccm.es/en/edubachiller

Please give me some information.


Unable to install: full installation of Xcode required

Hi! I found very useful your tool and I wanted to give it a try but when I try to install it:
brew install samuelmeuli/tap/tmignore
Homebrew throws this error:
A full installation of Xcode.app 10.0 is required to compile this software. Installing just the Command Line Tools is not sufficient.
Am I doing something wrong or truly I need to have full Xcode installed in order tu install and run tmignore? I'm using MacOSX Mojave.
Thank you very much for your help!

Hi @exhtml, Xcode is required for compiling the tmignore Swift code on your machine. Homebrew downloads the Git repo (not the binary) and builds it locally. You should be able to remove Xcode once tmignore has been installed.
I'm not sure if Swift is included in xcode-select and if that tool would be sufficient to build the binary. But unfortunately, it's not currently possible to specify xcode-select as a dependency for a Homebrew formula.

You can now download a pre-built binary from the Releases page.

Good news! Thank you very much for your work! Hope you are well, I'll give
it a try. Cheers!
El vie., 10 abr. 2020 12:07, Samuel Meuli<EMAIL_ADDRESS>escribió:

You can now download a pre-built binary from the Releases
https://github.com/samuelmeuli/tmignore/releases page.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/samuelmeuli/tmignore/issues/4#issuecomment-611969291,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA6MMVMNX5QZD6N5K2MWX3DRL3VURANCNFSM4KWA3AXA
.


Create static libraries

Create static libraries (see #262) when using "builtin" build mode. Seems to work on Linux, Windows/MinGW, and Windows/VC (I haven't tested linking to the generated static libraries yet ...).
Currently no include files are generated ...

Ping.
Can I use this feature to embed Lua modules? There is a program using a rock which uses built-in build mode (e.g., LPeg). I want to get a static binary with no external dependencies. I see the following general solution (probably partly done in this pull request):

Create a static target in LuaRocks to prevent static-shared mixture. For example, for lua-5.1 the static target is lua-5.1-static.

A rock should produce a static library which incorporates C code and Lua code. Lua code can be converted into C code (lua2c) and linked together. This static library has only one function callable from outside: rockopen_<rock>. When Lua creates new lua_State it calls such a function to preload this module. rockopen function uses well known Lua mechanisms to enable require "rock". For example, modify package.preload.

Finally Lua static executable is built. It is linked with all static libraries produced by rocks used. The only difference from normal lua.exe is that it calls functions rockopen_<rock> after creating a Lua state.

When building libs, C sources are changed to replace lua_newstate (and luaL_newstate) with a wrapper calling the original function plus rockopens. This enables using rocks from modules creating additional Lua states (e.g., llthreads).

Current rockspec format has enough information to implement all these cool features in LuaRocks and to build static executables from Lua scripts with just luarocks make --static without modifying rocks.

Current rockspec format has enough information to implement all these cool features in LuaRocks and to build static executables from Lua scripts with just luarocks make --static without modifying rocks.

...if the rockspec uses the builtin type. This is a big "if" (even if 80% of all rocks are builtin). Torch people use build.type="cmake" a lot, for example.

Merged in luarocks-3 branch! As promised in... 2014 :-P


Signup/login/page

Created frontend pages Login And Signup
Created navbar buttons
Created api calls for integration
Tested api calls

For issue #171

Summary by CodeRabbit
Release Notes

New Features

Introduced a user login and registration functionality with dedicated components for Login and Signup.
Added new routes for the Login and Signup pages, enhancing navigation within the application.
Updated the contributors section in the README to reflect new contributions.

Bug Fixes

Corrected spelling errors and improved clarity in the README installation instructions.

Style

Enhanced the visual layout and styling of the Login and Signup forms for better user experience.

@samar12-rad add only login button there

Cool


support postgres as data storage

Codecov Report

Merging #212 (7a1abf7) into master (0a9dfa6) will increase coverage by 1.18%.
The diff coverage is 73.93%.

@@            Coverage Diff             @@
##           master     #212      +/-   ##
==========================================
+ Coverage   62.76%   63.95%   +1.18%
==========================================
  Files          41       41
  Lines        6371     6628     +257
==========================================
+ Hits         3999     4239     +240
- Misses       1900     1915      +15
- Partials      472      474       +2

Impacted Files
Coverage Δ

storage/cache/database.go
30.00% <ø> (ø)

master/local_cache.go
45.23% <4.34%> (ø)

storage/data/database.go
67.74% <50.00%> (+1.07%)
:arrow_up:

storage/data/sql.go
76.81% <78.29%> (+8.72%)
:arrow_up:

Continue to review full report at Codecov.

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


RFC: API change: Add I2C bus recovery API

Introduction
Add API for recovering an I2C bus. This API can be used to recover from situations where the I2C master and one or more I2C slaves are out of synchronisation.
Problem description
Synchronisation loss can occur e.g. if the I2C master was reset in the middle of an I2C transaction (watchdog timeout, for instance) or if a noise pulse was induced on the SCL line.
Proposed change
Add a new I2C system call int i2c_recover_bus(struct device *dev); for allowing users to initiate an I2C Bus recovery. Extend the I2C controller driver API with methods for performing the bus recovery - either by using a generic, GPIO based approach (likely requires pinmux support) or by I2C controller specific functionality (some I2C controllers support bus recovery).
Detailed RFC
The API proposed is inspired by the Linux kernel counterpart (see e.g. https://elixir.bootlin.com/linux/v5.5.9/source/include/linux/i2c.h#L595) but simplified for use in Zephyr (only support GPIO-based or I2C controller specific implementation, initially no support for controllers, which can control their SCL/SDA lines directly).
Proposed change (Detailed)
Please see proposed API in #23442.
Dependencies
The GPIO-based approach to recovering an I2C bus requires changing the pinmux setup from the driver (in the prepare/unprepare functions) at runtime.
Concerns and Unresolved Questions
None so far.
Alternatives
Custom, board specific I2C Bus recovery routines.

There are many sources for more background information on the I2C synchronisation issue. See e.g. https://community.nxp.com/thread/316813#comment-882281 which explains it very well.

API meeting:
@MaureenHelm:

Should we wait until we have a better overview of pinmux before we introduce this API, since you need to switch the pins from the I2C peripheral to the GPIO one in order to bitbang a reset of the bus.
@pabigot
If we could get the pins and DT flags from the I2C driver this could be done collaboratively with the I2C driver (acquire gpio, release gpio).

PR  #23442 with a proposed API for I2C bus recovery is ready for review.
@carlescufi Can you please include it in the next API meeting agenda?

Following up on a comment in the API meeting yesterday that adding this was not a change to a stable API:

It is backwards compatible, in that 2.2 code will work in 2.3 (because it won't be using the new API).
It is not forwards compatible, in that 2.3 code may not work in 2.2 (where the new API doesn't exist)

So IMO it is a change to a stable API, but it is not an incompatible change.  The process does not describe what's to be done for these changes, but I think it should be mentioned in "API Changes" in the 2.3 release notes, as we don't maintain a version number for APIs that could be incremented per semver.


renovate: 38.105.2 -> 39.42.4

https://docs.renovatebot.com/release-notes-for-major-versions/#version-39
https://github.com/renovatebot/renovate/releases/tag/39.0.0
supersedes #360901
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)

[x] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Oh, I went through my open tabs and added the label to a few of them. I didn't mean to add it here ^^

nixpkgs-review result
Generated using nixpkgs-review.


Slack Invite  Link Not Working

Current State
The slack invite link  is not working
Desired State
It supposed to let me join the slack channel of meshery

Contributor Guides and Handbook

📚 Instructions for contributing to documentation

Meshery documentation site and source

🛠 Meshery Build & Release Strategy
🎨 Wireframes and designs for Meshery UI in Figma (open invite)
🙋🏾🙋🏼 Questions: Discussion Forum and Community Slack

Here is a screenshot

Thankyou for creating issue @vaibhavpnimkar

fixed.
@vaibhavpnimkar is it working for you now?

Thankyou @vishalvivekm

Yes it working now ThankYou @vishalvivekm  and @Yashsharma1911


New function CDB_CreateOverviewsWithToleranceInPixels

This function allows defining the previously fixed parameter grid_px.
The lim parameter used to define the reference Z level is also
correlated to this value.
Fixes #219

@ethervoid can you CR this, please?

:+1:

I do not understand why 7.5 is the default value for this... I would assume 0.5 to be the default value (is the most correct visualization) and you can override it. But I dont see a reason/use case to set actually a value higher than 1. Happy to have it as a parameter, but default should be a reasonable number, and 7.5 does not look like it. Any reason for it?


docfix

Coverage remained the same at 99.279% when pulling ca0525b92b301825d4b7310807b3d0e359a2bd5c on doc-fix into 36772d2f181c747453bf0548fa9c47775bb97e60 on master.


How to increase vm's disk space

Hello, I create a ubuntu vm use vftool, and I find that the space of "/" is 985M, how to increase it? Thanks.

you have to mount an image file via the -c option and then provide kernel parameters for persistent storage when using vftool.
This page describes a method for Ubuntu image, other image has different parameters.
https://iphonesdkdev.blogspot.com/2020/12/20201202.html

Great, it's working now. Thank you very much @javacom .

I am following the instructions in the article at https://iphonesdkdev.blogspot.com/2020/12/20201202.html
It says:
(6) # Attach the vm and create 3 partitions for the created image
sudo fdisk /dev/vda
# Press (n)(p)(1) to create new partition 1
# Press (enter) to accept starting sector and set size to say +25G
# Press (n)(p)(2) to create new partition 2
# Press (enter) to accept starting sector and set size to say +15G
# Press (n)(p)(3) to create new partition 3
# Accept the default options and starting block and ending block
# Press (w) to write to partition

But at step 6 I get:
ubuntu@ubuntu:~$ sudo fdisk /dev/vda

Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): n
All space for primary partitions is in use.

If I press p I see:
Disk /dev/vda: 2.2 GiB,<PHONE_NUMBER> bytes, 4236916 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot   Start     End Sectors  Size Id Type
/dev/vda1            64 4235891 4235828    2G cd unknown
/dev/vda2       4235892 4236915    1024  512K ef EFI (FAT-12/16/32)

so /dev/vda only has 2.2GiB to allocate, and two existing partitions. I can delete them but I can't make either of them bigger than 2.2 GiB.
I after a few different attempts I eventually noticed this while starting up the vm:
Starting version 245.4-4ubuntu3.3
[    0.407550] input: gpio-keys as /devices/platform/gpio-keys/input/input0
[    0.408961] virtio_blk virtio2: [vda] 4236916 512-byte logical blocks (2.17 GB/2.02 GiB)
[    0.409010] vda: detected capacity change from 0 to<PHONE_NUMBER>
[    0.424441] virtio_net virtio0 enp0s1: renamed from eth0
[    0.429104]  vda: vda1 vda2
[    0.429433] virtio_blk virtio3: [vdb] 104857600 512-byte logical blocks (53.7 GB/50.0 GiB)
[    0.429456] vdb: detected capacity change from 0 to<PHONE_NUMBER>0
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/nfs-top ... done.
Begin: Running /scripts/nfs-premount ... done.
[    1.662183] random: fast init done
[    1.662279] /dev/vda2: Can't open blockdev
[    1.754684] overlayfs: "xino" feature enabled using 2 upper inode bits.
[    1.784317] /dev/vda2: Can't open blockdev
[    1.841370] /dev/vda2: Can't open blockdev
[    1.885666] /dev/vda2: Can't open blockdev

So it looks like /dev/vda is the iso itself(?) and /dev/vdb is the 50GB zeroed file we created as data.img
Changing the command to sudo fdisk /dev/vdb I was able to proceed.

If you compile the latest vftool, which has added the ability to add more image files and the order of the mounted device will follow the parameters you passed in.  The article was written using the first version of the vftool and will mount the data.img as the /dev/vda and the cdrom image as /dev/vdb.  So if you use the latest version vftool compiled, you have to check the device name of your mounted data.img.

I am following the instructions in the article at https://iphonesdkdev.blogspot.com/2020/12/20201202.html
It says:

So it looks like /dev/vda is the iso itself(?) and /dev/vdb is the 50GB zeroed file we created as data.img
Changing the command to sudo fdisk /dev/vdb I was able to proceed.

If you compile the latest vftool, which has added the ability to add more image files and the order of the mounted device will follow the parameters you passed in. The article was written using the first version of the vftool and will mount the data.img as the /dev/vda and the cdrom image as /dev/vdb. So if you use the latest version vftool compiled, you have to check the device name of your mounted data.img.

I am following the instructions in the article at https://iphonesdkdev.blogspot.com/2020/12/20201202.html
It says:

So it looks like /dev/vda is the iso itself(?) and /dev/vdb is the 50GB zeroed file we created as data.img
Changing the command to sudo fdisk /dev/vdb I was able to proceed.

Sorry if I sound silly, this is all quite new to me. It sounds fine following the attached guide and using the latest vftool, but if packages are stored (apt-get) in /usr/ - wouldn't I lose all my installation files (including docker and everything else) on reboot, conserving they aren't in /dev/*?

If you follow the guide you will get a docket vm solution temporary with persistence storage.  But I found there is a limitation that the IP segment in the vm is fixed at 192.168.64.x and did not expose to outside world and a bridged network is required to achieve this.
The permanent solution is to use docker natively on M1 Mac.  You can join the beta preview program below to see if the beta functionality for M1 is satisfactory or not.  If you want to to join program preview, you have to join the Docker hub and Docker slack to get Docker ID and docker slack screen display name to fill in the preview program questionnaire.
https://www.docker.com/community/get-involved/developer-preview
I have created a new slack channel called # dockermac to discuss future building docker arm64 images for M1.

Sorry if I sound silly, this is all quite new to me. It sounds fine following the attached guide and using the latest vftool, but if packages are stored (apt-get) in /usr/ - wouldn't I lose all my installation files (including docker and everything else) on reboot, considering they aren't in /dev/*?

If you follow the guide you will get a docket vm solution temporary with persistence storage.  But I found there is a limitation that the IP segment in the vm is fixed at 192.168.64.x and did not expose to outside world and a bridged network is required to achieve this.
The permanent solution is to use docker natively on M1 Mac.  You can join the beta preview program below to see if the beta functionality for M1 is satisfactory or not.  If you want to to join program preview, you have to join the Docker hub and Docker slack to get Docker ID and docker slack screen display name to fill in the preview program questionnaire.
https://www.docker.com/community/get-involved/developer-preview
I have created a new slack channel called # dockermac to discuss future building docker arm64 images for M1.

Sorry if I sound silly, this is all quite new to me. It sounds fine following the attached guide and using the latest vftool, but if packages are stored (apt-get) in /usr/ - wouldn't I lose all my installation files (including docker and everything else) on reboot, considering they aren't in /dev/*?

I already signed up for the beta and I'm waiting on the Slack to be added to the right channel. Hopefully not too long now 👍

Docker M1 preview
https://desktop.docker.com/mac/m1preview/Docker-AppleSilicon-Preview7.dmg

Docker M1 preview
https://desktop.docker.com/mac/m1preview/Docker-AppleSilicon-Preview7.dmg

Yes, very nice.


Fix SLES description

What this PR does / why we need it:
Changing the description of the SLES AMI for aws as the old description for the same image has been updated.
Which issue(s) this PR fixes (optional, in fixes #<issue number> format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Optional Release Note:

None

/retest


Scroll fidgety when react-text-loop present

Having some issues with the scroll on mobile. It's very fidgety on the pages that have react-text-loop active.
The application is built on gatsby.
Bug only appears to be present on mobile. Im using chrome on mobile.

I'm having this same issue 🤕 I thought it had to do with the fact that i had min-height and margins set on the container but removing them hasn't solved the issue.
Has anyone had any luck with solving this?

@nugoo1 @andelh sorry about the delay in the response but would you be able to create a sandbox that reproduces the issue? You can use https://codesandbox.io/s/react-text-loop-playground-br4q1?file=/src/App.tsx as a base.
I'm not aware of any performance issues on scroll so it would be great if we could have a reproduceable example. Thanks!


crahses when trying to open any manga and trying to see about

Steps to reproduce
try to open about
try to open a manga
Expected behavior
see what version im on and open manga
Actual behavior
crash
Crash logs

neko_crash_logs.txt
Neko version
I think it updated to the newest version but I can't check without crashing
Android version
android 13
Device
galaxy tab s7+
Other details
I enabled verbose logging, closed app, reopened, clicked a manga, and dumped from that, the screenshots were from a seperate one
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open issue.
[X] I have written a short but informative title.
[X] I have updated the app to the newest version Latest.
[X] I have filled out all of the requested information in this form.

Same problem but on Samsung S6.

Duplicate of closed #1857
You could check by reading first line of crash log: App version: 2.16.8
You need to (probably manually) update Neko to Latest (2.16.9) version (there was hotfix 7 hours ago)

Manually update to 2.16.9


Sync and backup of database

The database directory contains several files:

I want to sync/backup the database across several machines, which of these files are important enough needs to be backed up for it to work? My current guess is that db should be enough, but the snap.* and conf also seem important. blobs is currently empty.
Could you please explain what these files are? And for future users - maybe add a README.md to that directory to help guide people who'll wonder the same.

The Way uses sled for database support. I skimmed sled's repo a bit and came to the conclusion that db and conf (which is the config file for the database) are the required files for backup. From what I could understand, blobs are for recovering data in a big database if it gets corrupted, and snap.* are snapshots to speed up the database initialization, so I don't think these are needed. I've asked this question over at their Discord to double check and I'll get back to you once they reply.
Good idea about adding a README; I'll do that after confirming that backing up works with these files, thanks!

Okay, got a reply from the sled maintainer and they say you need all the files for a valid backup. I hope that answers your question. I believe some aspects of sled are going to change in the 1.0 release so I think I would prefer to keep this directory as a black box for now. Similarly, if users would need to migrate to a backward-incompatible version of sled I think it would make more sense to run the-way export, the-way clear and the-way import instead of expecting users to have to deal with db migration themselves. What do you think?

Thank you for your effort.
I didn't realize there was the-way {export,clear,import}. That's great! I definitely agree users should rely on that rather than trying to sync the black-box database themselves. That's what I'll do from now on.
Great project by the way, up until now I've been sending my self Slack messages, but this is much nicer.

Thank you, that's great to hear! Let me know if you come up with possible enhancements / features for your workflow.


Claim complete flag handling

Description
Lockdrop UI ignore claim.complete field and propose user to request a claim again.

Fix
Check complete flag and don't do anything if claim finish.

this part should have handled that https://github.com/staketechnologies/lockdrop-ui/blob/master/src/components/ClaimStatus.tsx#L650
Might be issue with updating claim state

Just an optimization, when claim complete we shouldn't handle it at all.


Add web demo with GUI

web demo created with streamlit, streamlit-chat.
enable stream chat of multiple rounds of conversations by joining chat history.

Can you give me your contact information? I can add your wechat or email so we can talk about this. We want to make a web UI for this project.

@chriszhp

Hi,
Feel free to add my wechat, my wechat ID is Chrisp55
Best,
Chris
On Mon, Mar 27, 2023 at 8:25 PM BlairLeng @.***> wrote:

@chriszhp https://github.com/chriszhp
—
Reply to this email directly, view it on GitHub
https://github.com/LC1332/Chinese-alpaca-lora/pull/14#issuecomment-1485046763,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKWG34QQ4MJWKW2KAFHU65DW6GBNFANCNFSM6AAAAAAWI2RUFA
.
You are receiving this because you were mentioned.Message ID:
@.***>


change(ci): Fail CI if there are doc warnings

Motivation
Alfredo and I were talking about doc warnings in PRs. We realised we could merge a PR with doc warnings.
But if we do that, the warnings appear in every new PR until they are fixed.
Instead, we can stop PRs from merging until doc warnings are fixed.
Solution
Make doc warnings into CI errors.
Review
@gustavovalverde does this need to wait until CI is working again?
I don't want to break anything accidentally.
Reviewer Checklist

[ ] Will the PR name make sense to users?

[ ] Does it need extra CHANGELOG info? (new features, breaking changes, large changes)

[ ] Are the PR labels correct?
[ ] Does the code do what the ticket and PR says?
[ ] How do you know it works? Does it have tests?

2 things to consider:
1- This is evaluating all files, even those not being changed in the PR

Yes, that is what we want, changes in one file can cause doc warnings in an unchanged file.

2- If the warnings are not fixed here (in this PR) all PRs will start showing red crosses (❌), and I'm trying to reduce those as much as possilbe.

I'm not sure what you mean?
There are no rustdoc warnings on main or in this PR right now, I'm just trying to work out the right command to use.

There are no rustdoc warnings on main or in this PR right now, I'm just trying to work out the right command to use.

Oh, sorry. I saw the approval and the red cross and I assumed this was failing as expected. Don't mind that comment.

There are no rustdoc warnings on main or in this PR right now, I'm just trying to work out the right command to use.

Oh, sorry. I saw the approval and the red cross and I assumed this was failing "as expected". Don't mind that comment.

That's my bad, this should have been a draft until I got it working.

I'll need to fix the doc warnings in this PR before we can merge it.


Add precommit hooks

Add initial pre-commit hooks for linting, and for validating that the assets compile

Decided not to use pre-commit hooks for now


Disable logs by default

We're affected by https://github.com/actions/setup-python/issues/852 which is why our Mac builds are falling.


Al Khalid Agility, items not appearing correctly

Type
Incorrect behavior
Operating System
MacOS
OS Version
MacOS Ventura
Bug description
Items spawned/dropped on the plate skirts shop of the Al Kahrid agility course do not render, so you cannot pick them up, going to the new official client seems to fix this, also roofs appear messed up.
Screenshots or videos

RuneLite version
RL: <IP_ADDRESS>
Launcher: 2.6.3
Logs
No response

This is the low detail plugin hiding the roof. It is not really fixable easily. Turn off the plugin.


Attachment specifying file as String overrides custom filename argument

Using the method request.attach(field, file, filename) where file argument is of type String has the result that the filename argument is ignored. This happens because filename is overridden if file while the stream is created:
Request.prototype.attach = function(field, file, filename){
  if (!this._formData) this._formData = new FormData();
  if ('string' == typeof file) {
    filename = file; // custom filename is lost here
    debug('creating `fs.ReadStream` instance for file: %s', filename);
    file = fs.createReadStream(filename);
  }
  this._formData.append(field, file, filename);
  return this;
};

(https://github.com/visionmedia/superagent/blob/24cf589ad6ad5348b874a4474a3f7c8af7fab31e/lib/node/index.js)
Unfortunately, even when providing a ReadStream object as file, the filename doesn't make it into my request object on the server. But that is a different matter. I've just spotted this during debugging and thought I'd notify you. If it is intentional some hint in the documentation would help.
Setting the custom filename is also discussed in #381 .

I believe fixed in master.


3517: integrate raven into the rails logger

Now when we send error messages to the Rails logger they will be sent to Sentry
using Raven as well as our other loggers. This should allow us to not have to explicitly capture exceptions
where we are currently logging errors.
In order to integrate with the Rails logger we provider a logger for raven that
implements the ::Logger interface. It is then added to the Rails logger as an
additional output using ActiveSupport::Logger::broadcast.
Also, provided an integration test.

Looks good 👍

👍


Scatter.py concat or assign

For readability and modularity, using concat makes the code easier to understand and maintain. Since the data is small, I think performance is less important.
referring to code snippets such as:
    # Compute errors
    times = ['Daily', 'AM', 'MD', 'PM', 'EV', 'EA']
    error = {col: est_df[col] - obs_df[col] for col in times}
    error_df = pd.DataFrame(error)
    error_squared_df = error_df.pow(2)
    error_percent_df = error_df.divide(obs_df[times]).fillna(0)
    error_percent_df = error_percent_df.apply(lambda x: x * 100, axis=1)

    # Combine dataframes
    combined_df = pd.concat(
        [est_df, obs_df[times], error_df, error_squared_df, error_percent_df], axis=1)
    Select_time_period_df = combined_df.filter(like=chosen_timeperiod)
    specific_columns_combined_df = combined_df[combined_df_cols]
    Select_time_period_loc_df = pd.concat(
        [specific_columns_combined_df, Select_time_period_df], axis=1)

    # Set column names
    calculation_cols = [
        'Estimated Volume',
        'Observed Volume',
        'Errors',
        'Squared Errors',
        'Percent Errors']
    Select_time_period_loc_df.columns = combined_df_cols + calculation_cols

Originally posted by @chunhochow in https://github.com/sfcta/validation_workbook/pull/18#discussion_r1712307425

I feel that in this case, this is actually less robust and slightly goes against the logic flow. Because these are the creation of columns, not the creation of extra dataframes (which is what the code implies here). The (not-)robustness is especially acute here because column names are set separately after the different columns are concatenated (so if e.g. an extra line/column is inserted the whole thing falls apart unless one carefully checks the logic of the middle code block against the column name setting code block.
It seems to me that, since assign() creates a new dataframe, It wouldn't be a problem to do something like the following (and this would leave the original dataframes unchanged):
select_time_period_[loc_]df = (
    pd.concat([est_df, obs_df[times]], axis=1, keys=["Estimated Volume", "Observed Volume"])  # this is a real concat operation, since these are prexisting dataframes that you're combining. Also, rename the columns immediately here instead of doing it 10 lines later, to reduce the chance of error / cognitive workload
    .assign(  # this ensures that the columns are immediately named as the contents are built
        errors=(est_df[col] - obs_df[col]),
        squared_errors=errors.pow(2),
        ...
    )

I'm also fine with:
select_time_period_[loc_]df = pd.concat(...)  # see above
select_time_period_[loc_]df["errors"] = ...   # this also ensures that the columns are immediately named as the contents are built
select_time_period_[loc_]df["squared_errors"] = ...

(I hate modifying state in variables since I prefer to program functionally but I can live with this)
But both options seem to me to be better than creating throwaway-dataframes.


Add a option in the backend to hide unnecessary countries in checkout

Same as for currencies & translations there should be a option to enable/disable countries (channel based).
@devansh-webkul already explained how to do this manually on the forum.
still it would be much more user friendly if this can be done inside the admin panel without having to change any code.

Countries and state data can be editable also for super admin.

Countries and state data can be editable also for super admin.


Update travis yml

Pull Request Test Coverage Report for Build 54

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.008%) to 91.218%

Totals

Change from base Build 53:
0.008%

Covered Lines:
966

Relevant Lines:
1059

💛  - Coveralls


make: *** No rule to make target 'run'.  Stop.

When I try to run the command "cmake --build . --target run" in the hello-decode Sample, I meet an error that make: *** No rule to make target 'run'.  Stop.
How can I deal with this situation?

OneSmpl_Team1 working on this


fix(wsl): remove appending windows path to wsl path

If you have the same applications installed on windows and on the path that numonic uses there will be errors since you are using a windows app in a linux env.
This showed up for me since i had NPM installed on windows and numonic be default would try to add tab completion on start up resulting in the error /usr/local/env 'bash\r' file or directory does not exist not something you want to see when you first load up your brand new shell or any other time for that matter 😉

:tada: This PR is included in version 1.0.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


size: middlewareData is not populated with availableWidth/Height

Is your feature request related to a problem? Please describe.
I'd like to use middlewareData from the size middleware in one of our components in React. Currently, its not possible since middlewareData is always empty.
Describe the solution you'd like
It would be great if besides the apply function I could get access to middlewareData after it's rendered.
Describe alternatives you've considered
I tried creating my own middleware that would call size inside the fn() but that doesn't seem to work.

@okonet can you please describe how to reproduce this issue and i would like to work on it .

You can write the values to a ref or state and use that instead. available{Height,Width} are not returned in data, since they can't be applied after the lifecycle is finished right now.


Bumped version due to lock issue for Python 3.9

Please check if the PR fulfills these requirements

[ ] Tests have been conducted on the PR
[X] Docs have been added / updated

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
A bugfix where Websockets versions < 8 are not compatible with Python 3.9

What is the current behavior? (You can also link to an open issue here)

future: <Task finished name='Task-1' coro=<WSConnection._connect() done,
defined at C:\Users\Koi\Documents\GitHub\TwitchIO\twitchio\websocket.py:101> exception=TypeError("'Lock' object is not iterable")>

What is the new behavior (if this is a feature change)?

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)

Other information:

I've tested on Python 3.6, 3.7, and 3.8 and the issue seems to be resolved.
Below is the full error message:
PS C:\Users\Koi\Documents\GitHub\TwitchIO> py -3.9 .\thing.py
conn
Task exception was never retrieved
future: <Task finished name='Task-1' coro=<WSConnection._connect() done, defined at C:\Users\Koi\Documents\GitHub\TwitchIO\twitchio\websocket.py:101> exception=TypeError("'Lock' object is not iterable")>
Traceback (most recent call last):
  File "C:\Users\Koi\Documents\GitHub\TwitchIO\twitchio\websocket.py", line 127, in _connect
    await self.authenticate(self._initial_channels)
  File "C:\Users\Koi\Documents\GitHub\TwitchIO\twitchio\websocket.py", line 192, in authenticate
    await self.send(f'PASS {self._token}\r\n')
  File "C:\Users\Koi\Documents\GitHub\TwitchIO\twitchio\websocket.py", line 172, in send
    await self._websocket.send(message + "\r\n")
    yield from self.write_frame(True, OP_TEXT, data.encode('utf-8'))
  File "C:\Users\Koi\AppData\Local\Programs\Python\Python39\lib\site-packages\websockets\protocol.py", line 911, in write_frame
    with (yield from self._drain_lock):
TypeError: 'Lock' object is not iterable

Someone is changing it to use Aiohttp which means Websockets is no longer needed.

Someone is changing it to use Aiohttp which means Websockets is no longer needed.


Backup naming problem

The new compressed files are not working as expected
Major renaming issues include :

[ ] compressed file not appearing with ".zip" extension
[ ] backup file name not incremented as expected

These bugs are occurring on my system running macOS, if you are a windows/linux user and did not face these then do let me know.

While working on issue #2 , I noticed several bugs that are causing this. If possible assign this to me as well. To finish #2 ,we'll need to fix this first.

got it!


[BUG] BlobBatchClient.DeleteBlobsAsync fails with "Server failed to authenticate the request" error

Library name and version
Azure.Storage.Blobs.Batch 12.18.1
Describe the bug
A BlobBatchClient created from a BlobContainerClient created from a BlobServiceClient created using TokenCredential does not properly authorize requests to Azure, even if the identity backing the TokenCredential has Storage Blob Data Contributor.
If a connection string is used to create the BlobServiceClient however, the requests are properly authorized.
Very similar to https://github.com/Azure/azure-sdk-for-net/issues/41363
Expected behavior
A BlobBatchClient created from a BlobContainerClient created from a BlobServiceClient created using TokenCredential properly authorizes requests to Azure.
Actual behavior
Exception is thrown
'10 batch operation(s) failed. (Server failed to authenticate the request. Please refer to the information in the www-authenticate header.
RequestId:7235d83e-c01e-003f-5d0e-f4bac51ee63f
Time:2024-08-21T21:09:18.7577518Z
Status: 401 (Server failed to authenticate the request. Please refer to the information in the www-authenticate header.)
ErrorCode: NoAuthenticationInformation

Reproduction Steps
using Azure.Core;
using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Specialized;

// Config (Fill this out)
Uri blobServiceEndpoint = new Uri("<MyStorageAccountBlobEndpoint>");
string storageAccountConnectionString = "<MyStorageAccountBlobConnectionString>";
string tenantId = "<MyAzureTenantId>";
string clientId = "<MyAzureClientId>";
string clientSecret = "<MyAzureClientSecret>";

// BlobServiceClient using ConnectionString
BlobServiceClient connStringBlobServiceClient = new BlobServiceClient(storageAccountConnectionString);

// BlobServiceClient using TokenCredential (using client that has Storage Blob Data Contributor)
TokenCredential credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
BlobServiceClient tokenCredBlobServiceClient = new BlobServiceClient(blobServiceEndpoint, credential);

// Create containers
var connStringContainerClient = connStringBlobServiceClient.GetBlobContainerClient("connection-string");
await connStringContainerClient.CreateIfNotExistsAsync();
var tokenCredContainerClient = tokenCredBlobServiceClient.GetBlobContainerClient("token-credential");
await tokenCredContainerClient.CreateIfNotExistsAsync();

// Create blobs
var connStringBlobUris = new List<Uri>();
var tokenCredsBlobUris = new List<Uri>();
for  (int i = 0; i < 10; i++)
{
    using Stream memoryStream1 = new MemoryStream();
    var connStringBlobClient = connStringContainerClient.GetBlockBlobClient(i.ToString());
    await connStringBlobClient.UploadAsync(memoryStream1);
    connStringBlobUris.Add(connStringBlobClient.Uri);

    using Stream memoryStream2 = new MemoryStream();
    var tokenCredBlobClient = tokenCredContainerClient.GetBlockBlobClient(i.ToString());
    await tokenCredBlobClient.UploadAsync(memoryStream2);
    tokenCredsBlobUris.Add(tokenCredBlobClient.Uri);
}

// Create BlobBatchClients
BlobBatchClient connStringBatchClient = connStringContainerClient.GetBlobBatchClient();
BlobBatchClient tokenCredBatchClient = tokenCredContainerClient.GetBlobBatchClient();

// connStringBatchClient can delete blobs within the container the client is scoped to [Expected]
await connStringBatchClient.DeleteBlobsAsync(connStringBlobUris);

// connStringBatchClient cannot delete blobs outside of the container the client is scoped to [Expected]
try
{
    await connStringBatchClient.DeleteBlobsAsync(tokenCredsBlobUris);
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}

// tokenCredBatchClient cannot delete blobs within the container the client is scoped to [Unexpected]
try
{
    await tokenCredBatchClient.DeleteBlobsAsync(tokenCredsBlobUris);
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}

// tokenCredBatchClientFromBlobServiceClient (not container scoped) can delete blobs within any container [Expected]
var tokenCredBatchClientFromBlobServiceClient = tokenCredBlobServiceClient.GetBlobBatchClient();
await tokenCredBatchClientFromBlobServiceClient.DeleteBlobsAsync(tokenCredsBlobUris);

Environment
.NET 8 Console App Running on Windows

Looks like the same issue as #45469

@messnerdev, what RBAC roles are assigned to your service principal or AAD app? The Least privileged built-in role that is authorized to call Blob Batch is Storage Blob Data Contributor - https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch?tabs=microsoft-entra-id#permissions
Also just to confirm, are you able to perform any other operations with tokenCredentials? Want to make sure if your Entra credentials are set properly.

Yup, the identity has the Storage Blob Data Contributor role. In the provided example I use the identity to create and upload content to blobs.


Implement onRemove function

It would be great if the plugin implemented the onRemove function for controls. That would make it easy to remove the minimap cleanly.
I'm allowing users to toggle whether to see the minimap or not on a project and this issue arose.

I've opened PR for this. This implementation worked for my project.


requirements.txt seems to have alot more dependies than required!

Does the project really requires all those dependencies? If not, it would be great if you could filter out the ones not used...

Hey!
As to my knowledge, the sub-dependencies are also included into the requrements.txt file. Like, dependencies of tensorflow are also included into the file. If you think that there is some dependencies which are not used, make a pull request, I'll check and merge it. Thanks for looking onto the project :)


UK IPs come in on IP not stated in documents

When executing a flow the connector calls aren't coming in on the IP's stated in list. Instead it appears to be coming in on a 51.140.74.x
The flow is in the unitedkingdom region

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 0a7b1f84-92bd-7188-a7d0-359a930525dd
Version Independent ID: dd7d2d01-bdee-b656-ca63-e19305963d28
Content: Limits and configuration - Microsoft Flow
Content Source: flow-docs/limits-and-config.md
Service: flow
GitHub Login: @stepsic-microsoft-com
Microsoft Alias: stepsic

never mind, the IP's are in the azure logic application list, this might need double highlighting in the flow documentation 😄


Support Atlantis

Titan Quest has a new expansion: Atlantis.

[ ] Support the new XPACK3 items

[ ] Using ARZExplorer, there seem to be another relic/charm similar the the Power of Nerthus. Make sure to support it.

[ ] Support the new character file structure

As noted in #106, the character file structure changed, breaking the current release of TQVaultAE

[x] Support the new relics&charms/recipes/artifacts vault (See #108)
[ ] Check for backwards compatibility of existing vault files
[ ] Update documentation

As noted in #106, the data structure of the files changed, breaking TQVault.

Hi, I'll help fixing TQ Vault AE to support the new DLC.
I don't want to waste time redundant work.
Is someone working with the new character save file structure?

Hi, I'll help fixing TQ Vault AE to support the new DLC.
I don't want to waste time redundant work.
Is someone working with the new character save file structure?

Hey Ninakoru, I've done some work so far to support our new save file structure. I'll reference some of our code, then get the fix into TQVaultAE as soon as possible

If items have 2 enchantment slots now, we could support is as part of another ticket. It entails menu changes and such.
It would allow us to release something that's not broken quicker.

Yeah I'm going directly towards a quick version so people does not lose information moving around items.
So far:
Atlantis DLC Discovery, proper text resources loaded conditionally, proper GUI resources (DONE)
New item property RelicBonus2Id (this one will be long, as there are some item craft/GUI involved)
Until I get something that parses everything fully all info and doesn't lose it...

Got it working, tomorrow I will do some extra testing to ensure no data is lost, and I'll make a proper fork -> pull request.

Yesterday I've sent a pull request with a initial support for the new save format.

I have checked it out, part of the changes are very similar to mine, however I handled the conditional parsing for the new atlantis properties a bit different. Also you missed the new text resources. Anyways your edits should let the Vault work properly at first glance, don't know why they were not checked/approved.

The save format changed for everyone, not just for people with DLC.

Even if all the characters were somewhat migrated/imported and backed up with the new patch, the characters I have that I did not open with the game updated still maintain the old save format.

Yes, agree. What I mean it's you don't need to have Atlantis dlc (xpack3 folders) to have a save with new fields (relicName2, etc). A user who dont own the dlc but have game in version 2.1, will have the save in new format.

Let's make the decision to only support the fully patched game: let's assume all characters are in the new format

Waiting for epinter changes to be reflected on the main version, I have some extra goodies to add on top of his work for a more complete DLC support.

I merged just now

Great, working on the tooltip for dual relic, the code for the tooltip generation is a bit of a mess... :)

I've got ready, before commit, @EtienneLamoureux : Do you want me to upgrade the version on my pull request? I guess 2.7.0 should be fitting.

Since this is a breaking change and a big deal, I think I'd want it to go to v3.0.0

Oh boy just seen it, just sent the pull request #113 .
Let me know if you want me to edit to and add the V3.0 upgrade, also there's a mess with resources due to how visual studio mess the resource items when you add one entry using their UI.

Anyone who can add save files from all versions to the repo for references during dev ?
I only have latest versions.

@hguy we'll see what we can do, but support should focus on the latest version only.

Thanks everyone, I created a new release with your changes!


Lunr 2.1 update & configurable indexed and template fields

Hi @slashdotdash  starting from my issue #117 I found that a migration to lunr 2.0.x can reduce the index size much more massively, so I started developing and testing a bit.
Here's the result.   It required a bit of shuffling around in the indexer because the new lunr index is immutable so we need to go via the Builder class if we don't want to store the complete documents in ruby memory in parallel.

Index size in the site I test with reduced from 1.2 MB to 490kb (means we can consider using lunr at all now)
No client JS changes necessary as far as I see - but projects that have a hardcopy of lunr.js in their project will break due to completely incompatible index.   So it should be worth setting a higher version number and some more documentation.    This is a project release policy topic, leave that up to you and I haven't done any changes to the gem description etc. for that reason.

to everyone: please test, this project has no built-in tests so we need a bunch of feeback from real-world sites.

Awesome work @nkuehn. Thanks for taking the time to get this done. I'll test it out locally and get it merged in and released.

Better stop testing in depth - while researching the weird behavior of the results I stumbled over https://github.com/olivernn/lunr.js/issues/263 , there learning that field boosting was moved to query time in the new index structure.
It's an improvement, but leads to no field being boosted at all now, esp. the title not playing any role.
I'll have to touch the client code, too as it looks.

@slashdotdash  Lunr.js has released 2.1 to production now and I am pretty happy with the results I see, especially in comparison to the 2.0.x series.
So I'm skipping 2.0.x altogether for this upgrade.  I have it in use on our site and am happy with the stability, but haven't actively played with other configurations (lack of available sites to test with).
The key changes here are:

(lunr 2.1 incurred): No index-time field boosting available any more.  Boosting can be done query-time in the search expression language, but I have not felt any need in my index since the fields are well balanced automatically in the new index structure.
(indirectly 2.1 incurred): Since lunr 2.1 has a term vector per field, the number of choice of indexed fields becomes more important than other factors.  So I introduced the ability to configure which of the built-in or any other custom front matter fields are indexed at all.  Defaults are backwards-compatible if all is right.
IF a user has overridden the field boosting in _config.yml (possible but not configured) the _config.yml is not compatible any more since the structure is an array now instead of object (to reflect the lunr.js 2.1 config)

Client side was deliberately kept compatible although it would be nice to support some more of the query language features and make it easier to integrate into a bigger site as a JS dependency.

@nkuehn Sorry I haven't made time to merge your pull request.
Would you be interested in becoming a contributor to this project so that you can merge PRs yourself?

Hi @slashdotdash It's pretty sure now that I won't be contributing any more, so that won't help - I have not been able to tune the underlying lunr.js good enough to match the use case and content size of the site that's driving my motivation here. We switched to a SaaS search offering now.

@nkuehn No problem, thanks for letting me know.


Use a better name

 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.You have signed the CLA already but the status is still pending? Let us recheck it.

@idanran looks good to me, but the CLA needs to be signed for this to be merged

@idanran looks good to me, but the CLA needs to be signed for this to be merged

Signed now

@idanran Thanks!

@idanran Thanks!

My pleasure!


The greatest rebalance mod I‘ve ever seen！

Truly there have already existed a lot of mods that want to balance this game，but none of them did as well as yours. I think what brakes this game most is the broken proc chain and the endless growing range of some items，that makes the game so boring in the later period， it‘s also the way how you made balances. However, totally removing the proc chain is not the best way in my view……It’s also a unique feature of this game，isn‘t it？I think the main issue is the clover，how about try to chance it‘s stuck effect？Like add some proc items damage rather than make the proc chain more easily to start？If you are available，I‘m glad to tell more about my idea about the items rebalance，thank a lot.

Sure thing, feel free to tell me what you got.
Clover stacking was something I had in mind since it gets pretty out of hand and laggy once someone gets a bunch, but I wasn't too sure where to go with it.
For proc chains, I feel like there might be a few items that could justify having low proc coefficients (ex. Ukulele), while others (ex. the on-kills, Tesla) end up being too dominant if they have any chance to proc.

Glad to extend some of my opinions.
The first thing is that the Berzerker is too OP，only one can provide 100% attack speed and +50% move speed which last 6s，the time may last too long？I main，I can always hold the Maximum buffs and seldom discontinue in the entire game（except for Mithrix fight）. It‘s contrary to it’s original intention—— kill lots of enemies in a short time that you can gain a nice buff. So what about try to halve it‘s duration OR halve the attack speed and move speed and double the max pile？
The chance of Chronobauble is great，but I think is‘t still too conservative，way not make the Damage Taken can be piled？What I think is，the real balance is，every item is worth to pile ，but not things like“ one Chronobauble is good enough，and now I should get as much ATG as I can."Also the same idea can be used on the Grenade，such as，when I stun an enemy then he takes more damage ect.
So the Leeching Seed is still a junk item……What about get some buffs when you get healed OR get X% heal form damage when the HP lower then a certain point？In my view, it's a quite easy way to enhace a weak item by add some extra effort（mostly，DAMAGE ）on them.
Glad to share these，and thanks for all the work you've again XD

Shortening the duration of Berzerker's is something I could consider doing, since it takes a long time for all stacks of the buff to expire. I'll have to experiment and figure out how much I should lower it though.
I'm hesitant to make Chronobauble's damage bonus stack since it's an item that gives a multiplier to your entire damage output, and stacking it on top of crits and all the other modded items that give raw damage is a bit much. I'll give the stacking behavior some thought, but I'm not in a rush to make changes to it.
I think vanilla stun grenades are fine (and pretty underrated), since being able to stop an Elder Lemurian mid-attack is already a strong effect.
I'll take a look at Leeching Seed. Percent heal is something I originally considered, but was hesitant to do so. Ideally I'd like to leave it as a flat HP heal (like vanilla Scythes), but if I can't make that work I'll look at trying out other things. Right now, at +3HP/stack, it gives a similar amount of HP to Vanilla Scythes when stacking (Vanilla scythes are +4HP/stack) but without needing crits to trigger it.

Long time no see due to some of my work……But I'm still following the mod with interest. Surprised to see this mod have already been updated a lot！And there are some my suggestions for the further update.
First, about the clover changes，I think it can be designed like the Scepter，that more than one clovers will randomly turn into other red items.（But for sure，some changes about the purity also should be done）
Second，can you just add some config to change the teleport/void/mass/ship's radius and charge speed？
Even the rewards of mass charging are given，it's still a little bit unsatisfied. （maybe every full charged mass can have some effection on Mithrix？I think it will be fun）And I think it's OK to add some airflow and jump points in the final stage, just to help these guys who didn't pick enough movement speed items to feel less painful.
Third，some red items are still too weak. What the main problem in red item is that they are so specific. Think that if I played the Loader and only pick up N'Kuhana，Rack or Plant in the entire game, it will be absolutely a bad game experience. ( just an example，we all know the Loader doesn't rely on red items too much……） So, what I said is, the red items are supposed to be more effective for all the survivors due to it's rarity, at least, some won't be entire rubbish for some survivors.
Aegis，N'Kuhana，Rack. They are all seem to be specially designed for Engi. (They don't seem too bad for other survivors since the seed have the percentage healing，but they are still not powerful red items）
Happiest mask makes me upset, it can be a fun item but it's not. So, I think it's OK to give it a 100% chance to trigger, but add a cd (just like 20s). And lower the damage multiply, add some movement speed and attack speed just to make the mob's attack be more effective.
Forth，as the OSP has a long cd，I can hardly survive in a long run，the only choice is to stack Shadowfade（even stacking the bears is still not safe）but in vanilla I can use the combination of Rack and Planula to help me be invincible.（it's a unhealthy mode, but I can see something through this……）, it's that the enemies’damage is rather high after the first loop，if I'm being hit，I can only depend on the OSP.
So that's also why almost everyone runs the later loops in an automatic way（in vanilla，just see the Daggers and Missiles fly in the sky）,cause taking every single damage can be deadly. So，you can see the items on damage and on defense have rather disproportionate growth curve，may it still too cautious for you to enhance the infusion and other defense items？(Or can you rebalance the enemies’ damage growth？）

Glad to hear from you again!
For Clovers, ideally I'd like to see if I can still keep stacking in some way. Making it like Scepter where it caps out at +1 luck is something I've considered, but I'd like to keep it stackable like the other Vanilla items.
A lot of hosts I play with use mods to increase the size of the Moon and Void holdout zones, so I can look at adding those changes into the mod. In the meantime, RiskyArtifacts' Artifact of Expansion has config options for these settings.
N'Kuhana being situational is something that's bugged me for the longest time. I don't really feel it's in dire need of changes compared to other items, but it's something I'll keep in mind. Personally I find Rack fine, if not a bit boring.
Happiest mask being guaranteed but on a cooldown sounds pretty good, I'll look at that.
I find that OSP is fine since it stacks on top of Shield Gating as well. The main issue I've had is enemies being slightly too tanky due to the removal of proc chains, which is something I've been trying to fine-tune. Enemy damage while looping is lower than vanilla due to the linear run scaling, but I'll take a look at how it scales deep in to runs, since I usually only go 10-15 stages in.
I'm definitely not opposed to tweaking Infusion and other defensive items some more. Was considering making Infusion stack infinitely like 1, but every 100 orbs gained causes the health value to diminish (first 100 orbs gives 100hp, next 100 gives 75, etc.)

So，uh，do you still remember what I said before？That I think it's OK to give more items damage bonus as the proc chain has been removed.
Well，after some experimental runs，I think you are right to give OSP a basic CD as now I can always recover form low HP quickly due to the Seed（may it seems a little bit OP now？）
And now I don‘t think too much about items，though they are not totally satisfactory，but，well，some of them are much better then before. ( but，what do you think about medkit and plant？I still don't like them at all……）
As now I see you are working on the survivors tweaks，I have some ideas about it. Like the Loader can be more specific on her speed（like reduce her basic damage but add her damage bonus from speed，and I think her M2 and first shift are in a good situation，may only need some numerical value change）
I’ve seen your another mod called ”savage acrid“，to be honest，I don't think it's the best way to balance him like this，due to this game's environment is much more dangerous to the melee than other similar games（One reason may be the monsters‘ Sight Range ’s change so the players are easier to be exposed under tons of attack）. Like Merc has invincibility to protect himself and Loader is not a traditional melee as she can gather all her damage into one hit，so most of time she is on a safe place，waiting for next punch.
So，I mean，if this kind of problem is not changed，put the key point on Acrid’s poison maybe still the best way……AS to strength his melee ability may create a monster that is built by high figure and hard to balance. （just like the juggernaut in LOL，if you know it）But，anyhow，there still exist some great melee mod such as Sett，maybe you will find some inspiration on it？
As now I will always play this game with banning the printer，scraper and the shop because I think it's too boring to get the any exact item you want，at least，”random“ is the most fun of Rogue，and I will feel even tired to go to the shop after every stage，roll and select the lunar items，or waiting for the 3D printers or scrapers，ect…… All these things destroy the fun of the game. So I may also not good at providing issues about “what if some items stack too high”.
I really say a lot this time，hope you don't mind about some of words I said that you may think they are meaningless……
I will share a interesting video about Engi with you by e-mail，and the last thing I want to ask is what’s the meaning of the Chinese characters on your HAND mod？I‘m a little curious about it. XP

Well, it's a truly funny interact of mask and Engi’s turrets. Though I have find it for a long time, but I can only do this by stacking lots of clovers before.  But now, only one mask can do this well. So want do you think about it？ After all，it's too OP.） or just retain it as a interesting interact of Chaos？
------------------ 原始邮件 ------------------
发件人:                                                                                "Moffein/RiskyMod"                                                                                @.>;
发送时间: 2021年12月8日(星期三) 凌晨1:37
@.>;
@.>;"State @.>;
主题: Re: [Moffein/RiskyMod] The greatest rebalance mod I‘ve ever seen！ (Issue #2)
Glad to hear from you again!
For Clovers, ideally I'd like to see if I can still keep stacking in some way. Making it like Scepter where it caps out at +1 luck is something I've considered, but I'd like to keep it stackable like the other Vanilla items.
A lot of hosts I play with use mods to increase the size of the Moon and Void holdout zones, so I can look at adding those changes into the mod. In the meantime, RiskyArtifacts' Artifact of Expansion has config options for these settings.
N'Kuhana being situational is something that's bugged me for the longest time. I don't really feel it's in dire need of changes compared to other items, but it's something I'll keep in mind. Personally I find Rack fine, if not a bit boring.
Happiest mask being guaranteed but on a cooldown sounds pretty good, I'll look at that.
I find that OSP is fine since it stacks on top of Shield Gating as well. The main issue I've had is enemies being slightly too tanky due to the removal of proc chains, which is something I've been trying to fine-tune. Enemy damage while looping is lower than vanilla due to the linear run scaling, but I'll take a look at how it scales deep in to runs, since I usually only go 10-15 stages in.
I'm definitely not opposed to tweaking Infusion and other defensive items some more. Was considering making Infusion stack infinitely like 1, but every 100 orbs gained causes the health value to diminish (first 100 orbs gives 100hp, next 100 gives 75, etc.)
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
从QQ邮箱发来的超大附件
It's truly THE ”Happiest“ mask.mp4 (336.53M, 2022年01月08日 22:08 到期)进入下载页面：http://mail.qq.com/cgi-bin/ftnExs_download?t=exs_ftn_download&k=3a3363666f11cf8e5cedf91a15620a4b5a50050400015a504e035600064f0c0101034e5e0b005b49570a075200570102060453523346382d1714104647104d081a13372e764299d52b5213165a074b10c283430b5211534a0e4357660e&code=c3cf3b8d

I'm a big fan of Medkits, and I think they're in the right spot of having a strong effect while not being a 100% must-take item like Tri-Tips and Lensmaker Glasses, though they aren't as useful once you start looping and have a ton of healing items. Desk Plant is definitely pretty underwhelming, but I haven't thought of ways it could be tweaked.
As for survivor tweaks, It's likely that Loader/Acrid may end up quite different from their Vanilla versions, as I feel they lack depth, both being entirely based around a single gimmick (Loader being entirely reliant on Grapple+Shift, Acrid simply passively killing the map with R without worrying about items) while not having much nuance to their playstyle.
I've only got a few vague ideas for Loader, but I want to change her so that she's not known as the easy-mode survivor that gets laughed at when people pick her, while still keeping the fun parts of her gameplay (like her Grappling Hook + Shift combo) intact. I'm considering tweaking her M1 and giving her a selectable passive where she chooses between barrier-on-hit or bonus damage while going fast, but nothing is concrete until I actually get to test her out in-game.
For Acrid, I'll likely be going a very different direction from Savage Acrid. I'd like to change his kit to be closer to his RoR1 kit, which was based around stacking multiple different DoTs on enemies, rather than simply pressing R and passively killing the entire map with poison damage. I have a few ideas in mind, but I'll need to actually test them in-game to see if they play well.
I'll take a look at the Happiest Mask when I get the chance. I'll probably increase the cooldown, while keeping the Blast Shower interaction since I like the idea of it interacting with more items than just Elemental Bands.
The HAN-D subtitle is a joke about the poor-quality hardsubs that are often found in bootleg DVDs. I took the phrase "Kill Magma Worm" (since HAN-D was known for being able to deal massive damage to Magma Worms in RoR1), and ran it through Google Translate multiple times until it became something nonsensical, and translated it back to English at the end. I added a bunch of 啊 characters as a reference to the infamous Duwang translation of JoJo's Bizarre Adventure Part 4, where "Ora Ora Ora" is translated as 啊啊啊.

About Plant，I think it can be designed like REX‘s second R（Or Tooth），kill an enemy will possibly drop a “fruit” and pick it up will randomly strengthen your movement/attack/regen speed or give some damage/armor bonus（a little bit like Filial Imprinting in 1）.
And what about make the Medkit's buff can be stacked？（But of cause the healing of per stacked buff should be reduced）Then it may be a balance for those survivors who can‘t easily leave combat.
For survivor tweaks，I approve your opinions on “Depth”，which I my view，It’s a symbol of good combination of each skill，and most skills have a good interaction with enemies that makes the players feel a lot of fun.
Just Like Merc，who depends too much on his R. Though the anniversary update gives his primary skill a new buff，most of players may still press RRRRRRR and forget they have M1 in the late game. What if expose is not only a buff that does damage and reduces CD? Can it have a specific buff on his each skill？Like trigger the expose with R will strengthen this R，etc. (And about his shift, I think it's great to remove attack speed scaling. Dash scale with move speed is OK, a better solution for better melee comboing can be done like shift will end up at finally enemy's back it hit. ）
Loader is a strong survivor due to her high basic stats，I think we should nerf her high stats and encourage some more skillful play ways like using M2 to grab the Pylon and give a punch to enemies at the maximum speed. One idea is her primary skill can charge for her Gauntlet（like add some basic damage or add the speed bonus，what inspired me is Sett‘s Haymaker Grit Bonus Damage），another crazy idea is deleting her Knuckleboom and it will turn to a buff skill which totally serve for the Gauntlet.
Acrid，as you said，don't need too much items and can do tons of damage（especially in monsoon and multi-players eclipse）only by spreading poison and without any risk. I think we can make him a poison master who combines several kinds of poisons（just like what you said，lots of dots，and now I think what about add even more Debuffs？）One primary idea is change his primary skill into poison kinds changing like MULT's R（Which is a way totally give up his melee ability. ) And as you said his R is too easy to spread the poison，it can be designed like a finish skill，it won't add any poison on enemies，but trigger all the remaining dots damages on enemies，so he should add poisons on enemies only by his M2 and shift，and change the poison type，press M2 again……Finally，press R and BOOM！I think it's pretty Cool.
Finally，the reason why I’m curious about these Chinese characters is I‘m a native Chinese speaker，so it may also be the reason why sometimes I select the words that seems not idiomatic. So I also don't know much about the ”infamous Duwang translation“……(In Chinese, star platinum's "Ora" is translated into 欧拉 rather than 啊，which is more similar in the pronunciation ) But whatever，I’m a big fun for JoJo's Bizarre Adventure，who is waiting for the update of stone ocean and the coming soon JoJolands.
Anyway，I‘m pretty glad to talk all of these with you.  :p

Combining Desk Plant with Filial Imprinting sounds interesting, I'll give that some thought.
I'll be leaving Medkit the same as Vanilla, since it's already a decent item.
I think Mercenary is pretty much perfect already. I'd like to add some client-side QoL options to his Shift skills in the config, but I think his kit already has a good amount of depth in how he can combo his skills.
I'll keep your thoughts about Loader/Acrid in mind.
That bit about the proper Chinese translation of "Ora" is interesting! The Duwang translation was the first English translation of Part 4 from over a decade ago, and it ended up becoming a joke due to being really low quality (apparently it was some Chinese student's project for an English class that he ended up failing).


Docker up, i hope :)

Hello Jeremy, i want help to setup achivements for my project.
Your love
Patrick

Your dockerfile looks suspiciously a lot like ours and our was added 11 hours before yours. I would be very dissapointed if it happened to be so that you stole it from us.


nixos doc: document the installation process from other distros as well as NIXOS_LUSTRATE

Also when installing from other distros, I've found that nixos-install
doesn't find [ when chrooting so adding full path to it.
Motivation for this change
The NIXOS_LUSTRATE has been undocumented since it was committed in #17784 (the only documentation was really in the git commit header and github PR).
Installing from a NixOS device is the default but it's also possible to install from other distros (since Nix works there), so I've also documented the steps to do that.
Both ways of installing successfully tested on Ubuntu VMs
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[x] other Linux distributions (Ubuntu)

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

Rebased over the nix-2.0 merge.


Port publishing is lost when restarting container started with -P

How to reproduce
docker run -d --name cassandra01 -P cassandra:2.1.8

you will see in kinematic that all 5 ports are published.
docker restart cassandra01

kinematic still shows the published port same as docker ps
Now in kitematic, press stop followed by start, we are still happy, ports published. (the same is valid with the docker stop / start commands)
Finally, in kinematic, press the restart button...
:( both kinematic and docker ps shows that the list of published ports is inexistent at this point..

#confirmed to be an issue - Thanks for filing the issue, PR should follow

Closing as this was fixed in recent releases


PAPP-21861 - Mark as FIPS compliant

Please ensure your pull request (PR) adheres to the following guidelines:

Please refer to our contributing documentation for any questions on submitting a pull request, link: Contribution Guide

Pull Request Checklist
Please check if your PR fulfills the following requirements:

[X] Testing of all the changes has been performed (for bug fixes / features)
[X] The readme.html has been reviewed and added / updated if needed (for bug fixes / features)
[X] Use the following format for the PR description: <App Name>: <PR Type> - <PR Description>
[X] Provide release notes as part of the PR submission which describe high level points about the changes for the upcoming GA release.
[X] Verify all checks are passing.
[X] Do NOT use the next branch of the forked repo. Create separate feature branch for raising the PR.
[X] Do NOT submit updates to dependencies unless it fixes an issue.

Pull Request Type
Please check the type of change your PR introduces:

[ ] New App
[ ] Bugfix
[ ] Feature
[X] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation
[ ] Other (please describe):

Release Notes (REQUIRED)
Added FIPS compliant flag to true.
What is the current behavior? (OPTIONAL)
Did not have FIPS compliant flag.
What is the new behavior? (OPTIONAL)
Added FIPS compliant flag to true.
Other information (OPTIONAL)

Any other information that is important to this PR such as screenshots of how the component looks before and after the change.

Pay close attention to (OPTIONAL)

Any specific code change or test case points which must be addressed/reviewed at the time of GA release.

Screenshots (if relevant)

Thanks for contributing!

Static test failure: Min phantom version bump.
Not needed for including FIPS flag.


stubFork?

Hey,
I'm currently trying out this package and noticed there is no stubFork in the package. Taking the blind man approach I copied most of the stubCall code and made some minor adjustments to make it work (thus far) for my needs.
So far I haven't encountered any problems, but I also didn't give the implementation much thought. Given that there was already some code related to forks (e.g. forkGeneratorFn) it makes me wonder why stubFork wasn't present. Care to shed a light? Was it just not considered? Perhaps a time constraint, or are there known issues/limitations with the simplistic approach I've taken?
Hope to hear from you.

stubFork was not considered but should be easy to add it, you can submit a pull request. The actual code related to forks is to traverse the tree of effects generated by a fork with a generator function.

I don't think my (PR)[https://github.com/eidoo/redux-saga-mock/pull/2] does what you have in mind. I basically use it like the stubCall where I can return my own value. e.g.
saga
        yield fork(walletUseFlow, params)
        const action = yield take([actionMsg.wallet.LOGOUT, actionMsg.wallet.LOGIN_ERROR])
        if (action.type == actionMsg.wallet.LOGOUT) { // do something }

test specific branch
            testSaga.stubFork(walletUseFlow, () => {
                sagaTester.dispatch({ type: actionMsg.wallet.LOGOUT })
            })


The last arrow is in the wrong column

When moving rules and cron jobs there are these tiny arrows and something that it a bit annoying is that the last arrow is wrong as you can see here in the picture below

So when you start moving it you first have to press in the left column and then in the right. Easy to press the wrong arrow.
Firefox 76.0.1

Good point. Fixed. Thanks!


Extensions

Rolling this forward with a README explaining our agreed-on policy.
@cyrilletuzi we want to find a fair way to include extensions from the community, including yours. We are stuck on how to do this without confusing users with a set of overlapping extensions - we assume that many users will install all of our recommendations. That forces us to pick winners and that's not a good position for us to be in.
The governance constraint is the primary one we'll use for guidance in version 8. So the easiest path to get your code in front of users is to make it first-party.
Happy to discuss further.
/fyi @mrmeku

Not ready to merge, needs more input

Closing since we don't have progress here for the past few months.


TvGuide.com EPG Enhancement Request

Description
Hello, I noticed the EPGs from tvguide will only grab the title, start and stop time.
I noticed that the rest of the program details such as description, rating and episode are saved to a different page. Is there an easy way to collect this information and add it to the EPG?
https://github.com/iptv-org/epg/blob/master/sites/tvguide.com/tvguide.com.config.js

Added.

Thank you!


Dispatcher sends Tasks even if there are no changes

The dispatcher currently watches for task events and sends updates no matter what.
This creates an interesting problem: when the agent reports a Task change, the dispatcher saves it into the store which triggers a watch which triggers the dispatcher to send yet another update:
Agent --> Dispatcher --> Raft --> Dispatcher --> Agent
We should perhaps avoid sending a task list to the agent if nothing changed

@dongluochen @LK4D4 I believe this has been fixed. Closing, please confirm or re-open the issue.
Thanks!