disallow partial_evaluation extension in schemas

Description of changes
Disallows the partial_evaluation extension type in schemas.  This extension is only for partial evaluation and doesn't make sense in schemas.
I'm unclear if this is a breaking change, because while this was previously allowed in schemas, I'm unclear if you could successfully use the resulting schema for anything (like validating policies using the partial_evaluation type, validating requests, schema-based parsing of entities, etc).
Issue #, if available
Checklist for requesting a review
The change in this PR is (choose one, and delete the other options):

[ ] A breaking change requiring a major version bump to cedar-policy (e.g., changes to the signature of an existing API).
[ ] A backwards-compatible change requiring a minor version bump to cedar-policy (e.g., addition of a new API).
[ ] A bug fix or other functionality change requiring a patch to cedar-policy.
[ ] A change "invisible" to users (e.g., documentation, changes to "internal" crates like cedar-policy-core, cedar-validator, etc.)
[ ] A change (breaking or otherwise) that only impacts unreleased or experimental code.

I confirm that this PR (choose one, and delete the other options):

[ ] Updates the "Unreleased" section of the CHANGELOG with a description of my change (required for major/minor version bumps).
[ ] Does not update the CHANGELOG because my change does not significantly impact released code.

I confirm that cedar-spec (choose one, and delete the other options):

[x] Does not require updates because my change does not impact the Cedar formal model or DRT infrastructure.

It looks good to me. Nit: should we add something like Extensions::all_available_for_schema in additional to existing all_available so that we do not have to special-case partial_evaluation everywhere?

At the very least, you could use partial_evaluation in some entity type you never use anywhere else. I'd also expect that equality between two partial_evaluation attributes would validate (principal.a == resource.a).

Given this, I think we should consider this breaking.  The existing behavior is probably benign, just strange; I can't see it causing any real problems (please correct me if wrong).  So I don't see a reason to consider this a bug or backport the fix to 3.x / 2.x.
We should probably step back and consider whether it's even worth making this change for 4.0, given that it is technically a breaking change and should be called out as such in changelog and docs.  I'm inclined to think yes, but we should make the decision intentionally

should we add something like Extensions::all_available_for_schema in addition to existing all_available

This is a good suggestion.  While looking at implementing it I realized that existing code is abusing Extensions::ext_names() (which returns the names of extensions) and assuming it represents all available extension types, which is how we got into this mess in the first place -- partial_evaluation was never intended to be a valid extension type.  Perhaps we could fix that as well, or even perhaps fixing that is enough, instead of special-casing partial_evaluation in schemas.

So I don't see a reason to consider this a bug or backport the fix to 3.x / 2.x.

The argument to change it would be that this is morally part of the partial eval experimental feature (even if we forgot to hide it). I don't see any urgent need to fix, but we could fix it and still be nice by keeping the current behavior when the partial-evaluation is turned on.
In the end, there's not harm caused by this bug, and it's less work for us and users if we don't backport, so my final vote would be to not do it.

We should probably step back and consider whether it's even worth making this change for 4.0, given that it is technically a breaking change and should be called out as such in changelog and docs.

I'm pretty confident we should make it.

partial_evaluation was never intended to be a valid extension type. Perhaps we could fix that as well, or even perhaps fixing that is enough, instead of special-casing partial_evaluation in schemas.

This might also change policy validation. This file exists, so I expect you can call unknown in a policy and have it validate. I don't think we want that, unless there's a partial eval use case I'm not aware of

Working on that

Pushed another revision where the human schema parser now also depends on the active Extensions instead of a hardcoded list. Review appreciated, it was a somewhat larger change.


ARROW-8304: [Flight][Python] Fix client example with TLS

The get command wouldn't use the adequate TLS root certs when fetching a Flight from its endpoints.
Also fix style in the Python examples and configure archery lint to check them.

AppVeyor build: https://ci.appveyor.com/project/pitrou/arrow/builds/31902885

+1, merging.


错误报告（openwrt22.03.3）

错误报告（openwrt22.03.3）
作者有没有打算适配一下官方的luci

/usr/lib/lua/luci/ucodebridge.lua:14: /usr/lib/lua/luci/model/cbi/argon-config.lua:3: module 'luci.model.ipkg' not found:
no field package.preload['luci.model.ipkg']
no file './luci/model/ipkg.lua'
no file '/usr/share/lua/luci/model/ipkg.lua'
no file '/usr/share/lua/luci/model/ipkg/init.lua'
no file '/usr/lib/lua/luci/model/ipkg.lua'
no file '/usr/lib/lua/luci/model/ipkg/init.lua'
no file './luci/model/ipkg.so'
no file '/usr/lib/lua/luci/model/ipkg.so'
no file '/usr/lib/lua/loadall.so'
no file './luci.so'
no file '/usr/lib/lua/luci.so'
no file '/usr/lib/lua/loadall.so'

In h(), file [C]
called from function [anonymous function] (/usr/lib/lua/luci/ucodebridge.lua:14)
called from function ((tail call))
In [anonymous function](), file /usr/share/ucode/luci/runtime.uc, line 148, byte 45:
  called from function [arrow function] (/usr/share/ucode/luci/dispatcher.uc:794:4)
  called from function render ([C])
  called from function render_action (/usr/share/ucode/luci/dispatcher.uc:768:24)
  called from function run_action (/usr/share/ucode/luci/dispatcher.uc:795:4)
  called from function [anonymous function] (/usr/share/ucode/luci/dispatcher.uc:998:48)
  called from anonymous function (/www/cgi-bin/luci:39:12)

 `        return lcall.call(modname, method, ...args);`
  Near here ----------------------------------------^

luci-app-argon 主题运行正常

same problem here...

Same issue.

same problem here... and luci-lib-ipkg, luci-compat and luci-lua-runtime are all installed

Same issue, i tried to install luci-lib-ipkg manually, then the plugin worked fine

same problem here... and luci-lib-ipkg, luci-compat and luci-lua-runtime are all installed

Please check the ipkg.lua
path: /usr/lib/lua/luci/model/ipkg.lua

same problem here... and luci-lib-ipkg, luci-compat and luci-lua-runtime are all installed

Same issue, i tried to install luci-lib-ipkg manually, the plugin worked fine.
Please check the ipkg.lua path: /usr/lib/lua/luci/model/ipkg.lua

ipkg is not present....
e8450@/usr/lib/lua/luci/model # opkg list-installed | grep ipkg
luci-lib-ipkg - git-22.281.42660-4ee170d
e8450@/usr/lib/lua/luci/model # ll
drwxrwxr-x    1 root     root           224 Mar  7  2021 ./
drwxr-xr-x    1 root     root           496 Mar  6 18:53 ../
drwxrwxr-x    1 root     root           312 Mar  6 18:38 cbi/
-rw-r--r--    1 root     root          8061 Mar  5 19:23 firewall.lua
drwxr-xr-x    2 root     root           364 Mar  5 19:23 network/
-rw-r--r--    1 root     root         29388 Mar  5 19:23 network.lua
-rw-r--r--    1 root     root          6417 Mar  5 19:23 uci.lua
e8450@/usr/lib/lua/luci/model #

ok. Problem solved !!!
uninstalled luci-lib-ipkg - (git-22.281.42660-4ee170d)
installed luci-lib-ipkg (git-18.318.71164-4bbe325) (https://downloads.openwrt.org/releases/packages-21.02/aarch64_cortex-a72/luci/luci-lib-ipkg_git-18.318.71164-4bbe325_all.ipk)
mi build is OpenWrt SNAPSHOT r22235-a03076cc39

Whether the official openwrt luci has updated the luci-lib-ipkg version (git-18.318.71164-4bbe325)?

Well, I'll try it tomorrow.

ok. Problem solved !!!
uninstalled luci-lib-ipkg - (git-22.281.42660-4ee170d)
installed luci-lib-ipkg (git-18.318.71164-4bbe325) (https://downloads.openwrt.org/releases/packages-21.02/aarch64_cortex-a72/luci/luci-lib-ipkg_git-18.318.71164-4bbe325_all.ipk)
my build is OpenWrt SNAPSHOT r22235-a03076cc39

Whether the official openwrt luci has been updated to luci-lib-ipkg version (git-18.318.71164-4bbe325)？

it is not clear to me. I think the problem has been that my build downloads packages from these repositories, it is likely that one of the two has introduced the "updated" library:
https://github.com/kenzok8/small-package https://github.com/sirpdboy/sirpdboy-package

Well, I'll try it tomorrow.


fix issues with promise resolve in provisioning

fixes #189

this should fix #279 as well?

@wprater this is great! I made a PR which should make our CI happy: https://github.com/wprater/t2-cli/pull/1

Bonus points if you can squash these commits into one for cleanliness.

done!

Perfect! Feel free to merge when you're ready. Thanks for the contribution!


JSC_ILLEGAL_PROPERTY_ACCESS on Map and Set

var m = new Map;
m.set('x', 'x');
m['delete']('x');
var s = new Set;
s.add('x');
s['delete']('x');

nazar-pc@nazar-pc ~/n/google-closure-compiler> java -jar compiler.jar --version
Closure Compiler (http://github.com/google/closure-compiler)
Version: v20170910
Built on: 2017-09-12 14:27
nazar-pc@nazar-pc ~/n/google-closure-compiler> java -jar compiler.jar --compilation_level ADVANCED_OPTIMIZATIONS --language_in ES5 x.js
x.js:3: WARNING - Cannot do '[]' access on a struct
m['delete']('x');
  ^^^^^^^^

x.js:6: WARNING - Cannot do '[]' access on a struct
s['delete']('x');
  ^^^^^^^^

0 error(s), 2 warning(s), 100.0% typed
var a=new Map;a.set("x","x");a["delete"]("x");var b=new Set;b.add("x");b["delete"]("x");

I think ['delete'] is perfectly valid in this case and shouldn't throw any warnings.

I think ['delete'] is perfectly valid in this case and shouldn't throw any warnings.

Yes, it's valid JS, but the typechecker does not accept all valid JS. The error message is saying that you should use a dot when accessing the properties of a set.

Well, it is generated by LiveScript compiler, which I have no control over.
What is the fundamental issue with Map and Set that it doesn't allow [] there and can't be fixed?

They are marked as structs.
Structs are more restrictive than general objects, and as a result they can be checked and optimized better by the compiler. For more, see this.

If the expression under [] is constant string, Closure Compiler should be able to understand Map['delete'] as Map.delete. Don't you think this is a feasible improvement?

The LiveScript compiler is probably doing that because older versions of JS don't allow dotted property access for property names that are also keywords. I bet it would also write promise['catch'] instead of promise.catch. If you're using Maps and Sets then you're not targeting those versions so just outputting .delete makes more sense. Do you think the LiveScript team would be open to changing their output? If not, you could probably write a simple sed replacement or something to do the conversion before passing the code on to Closure Compiler.


Missing dependencies

The latest version from npm (0.6.1) installs javascript-obfuscator 0.6.0 which has babel-loader and source-map-support defined as devDependencies so they don't get installed and this makes webpack-obfuscator break.

I will fix that in the evening

fixed
https://github.com/sanex3339/javascript-obfuscator/commit/a711e1c683a68befebde8e2b33b1733a8128b0e8


[Bug]: A Bug when switched to Dark Mode

What happened?
I found a BUG 🐞

would love to remove this bug
Kindly assign this to me under the GSSOC '23

@amrit2611 Its running properly on the deployed website .
could you provide how to replicate it

@akuldeepj
Kindly check in other browsers as well.
If it works just fine, I'll close this issue.

Yup I checked it in chrome and firefox

Yup I checked it in chrome and firefox

Okay
In that case I'll close this issue.


Quick fix

Quick fix: in UnionRef._to_json() the returned class name should be that of the underlying type.
Without this fix, the returned class name will be that of the UnionRef itself, failing to instantiate a new UnionRef from this json ("TypeError: Uref is not member of <unionref Uref>").
This passed unnoticed as it works correctly for an array of UnionRef, hence I added a test for the bare UnionRef as well to catch this in the future.
As a side remark: it is possible to instantiate an array of UnionRef directly from a list of tuple, though this is not possible for a bare UnionRef where the tuple has to be unpacked. Is this intentional? Similarly, the underlying XoStruct fields can be directly accessed in case of an array of UnionRef, while one has to call .get() on the bare UnionRef.
The difference between these two can be clearly seen in the two tests inside test_to_json.py. This is not an issue, though it might be interesting to homogenise the API.

better
self.get().class.name  -> v.class.name
because self.get() is a little expensive

Replaced the self.get().__class__.__name__ with v.__class__.__name__ as suggested, and also assigned the ._to_json() in the if above to a new variable w (because otherwise, in case the field has indeed a ._to_json() attribute itself, the variable v would now be a dict and the returned class name would be wrong).

Agreed, and implemented.


[release-4.13][manual] test: e2e: import and use the taints pkg from k8s

to remove the last dependency from k8s.io/kubernetes, we import (soft-fork) the taints package, and we fix our imports to use the bundled version.
backport notice: more backport is needed to be able to fully remove the k8s.io/kubernetes dependency

/cherry-pick release-4.12

/cherry-pick release-4.12


Support batched updates

React may sometimes batch updates (e.g. event listeners, maybe more in future). The current implementation of forceUpdate does not work when an even number of updates are batched. The added test fails on master.

this is awesome, thanks! @JeremyRH im on vacation right now but you had access to npm to publish patch versions, correct?

Yes. I've published 1.0.5.

Oops. @drcmda I was not aware you changed the way Zustand is published and I botched 1.0.5. I quickly fixed it in 1.0.6 though 😅


dyld[10175]: Symbol not found: OBJC_CLASS$_GULNetworkInfo

dyld[10175]: Symbol not found: _OBJC_CLASS_$_GULNetworkInfo
Referenced from: <7EFCE371-0EAC-3F87-8683-C6B15DDA9669> /Users/immons/Library/Developer/CoreSimulator/Devices/9948F228-BE7E-4732-A5F7-91302C50CE3E/data/Containers/Bundle/Application/1F806E73-1923-4820-BDA8-7029ED7ECAC6/Mobile.Core.app/Frameworks/FirebaseSessions.framework/FirebaseSessions
  Expected in:     <34E0B44E-4E10-3028-9875-DC18A41938E9> /Users/immons/Library/Developer/CoreSimulator/Devices/9948F228-BE7E-4732-A5F7-91302C50CE3E/data/Containers/Bundle/Application/1F806E73-1923-4820-BDA8-7029ED7ECAC6/Mobile.Core.app/Frameworks/GoogleUtilities.framework/GoogleUtilities

AdamE.Firebase.iOS.Analytics version: 10.24.0
this one shows in Console output, application crashes immediately on simulator when starting.

I had a similar issue with just getting the other Firebase components working, I had to do this to get it working. dotnet add package AdamE.Firebase.iOS.Installations --version 10.24.0

@Immons does the above help?

@AdamEssenmacher no, still crashing immediately

Do you have a repro project?

Any solution to this?

I tried to create a repro only to find out that in a clean repro project the Frameworks/GoogleUtilities.framework/GoogleUtilities file had the missing symbol, so it seems to be some binary file mix-up. Clean build resolved the issue.


[FMV] Runtime Resolver Function

This PR proposes a runtime resolver function that retrieves the environment information. Since this resolver function is expected to be available and interchangeable for both libgcc and compiler-rt, a formal specification for the resolver function interface is necessary.

When generating the resolver function for function multiversioning, a mechanism is necessary to obtain the environment information.
To achieve this goal, several steps need to be taken:

Collect the required extensions for a particular function.
Transform these required extensions into a platform-dependent form.
Query whether the environment fulfills these requirements during runtime.

Step 1 is handled by the compiler, while step 3 must follow the necessary steps from the platform during runtime.
This RFC aims to propose how the compiler and runtime function can tackle step 2.
Here is a example
__attribute__((target_clones("default", "arch=rv64gcv"))) int bar() {
    return 1;
}

In this example, there are two versions of function bar. One for default, another for "rv64gcv".
If the environment meets the requirements, then bar can utilize the arch=rv64gcv version. Otherwise, it will invoke the default version.
This process be controlled by the ifunc resolver function.
ptr bar.resolver() {
   if (isFulFill(...))
      return "bar.arch=rv64gcv";
   return bar.default;
}

The isFulFill should available during the program runtime.

The version arch=rv64gcv require
i, m, a, f, d, c, v, zicsr, zifencei, zve32f, zve32x, zve64d, zve64f, zve64x, zvl128b, zvl32b, zvl64b,

The problem 2 is about where to maintain the relationship between extension names and platform-dependent probe forms.
Here are three possible approach to achieve goal.

Encode all required extensions into a string format, then let the platform implement its own probe approach based on the string inside the runtime function. This approach maintains the relationship between extension names and platform-dependent probe forms inside the runtime function.

ptr bar.resolver() {
   if (isFulFill("i_m_a_f_d_c_v_zicsr_zifencei_zve32f_zve32x_zve64d_zve64f_zve64x_zvl128b_zvl32b_zvl64b"))
      return bar.arch=rv64gcv;
   return bar.default;
}

bool isFulFill(char *ReqExts) {
    if (isLinux())
       return doLinuxRISCVExtensionProbe(ReqExts);
    if (isFreeBSD())
       return doFreeBSDRISCVExtensionProbe(ReqExts);
    // Other platform
    ....
    return false;
}

Pros

Human readable
Relatively high portability
Provides a uniform interface for all platforms

Cons

Requires extra effort for string processing in the runtime function.

Encode all required extensions into a compiler-defined key, then let the platform implement its own probe approach inside the runtime. This approach maintains the relationship between the compiler-defined key for extensions and the platform-dependent probe form inside the runtime function.

// Assume compiler define
// i -> 1
// m -> 2
...

ptr bar.resolver() {
   if (isFulFill([1, 2, 3, 8, ...], length))
      return bar.arch=rv64gcv;
   return bar.default;
}

bool isFulFill(int *ReqExts, length) {
    if (isLinux())
       return doLinuxRISCVExtensionProbe(ReqExts, length);
    if (isFreeBSD())
       return doFreeBSDRISCVExtensionProbe(ReqExts, length);
    // Other platform
    ....
    return false;
}

Pros

Doesn't require string processing during runtime
Provides a uniform interface for all platforms

Cons

Requires maintaining the relationship between the compiler-defined key for extensions and the concrete extension names inside runtime function.

Define a different runtime function for each platform and construct any necessary information during compilation time if necessary for the platform. This approach maintains the relationship between extension names and platform-dependent probe forms inside the compiler.

// If compiler compile for linux, then use bar.resolver.linux
ptr bar.resolver.linux() {
   if (isFulFillLinux(LinuxProbeObject))
      return bar.arch=rv64gcv;
   return bar.default;
}

ptr bar.resolver.freebsd() {
   if (isFulFillFreeBSD(FreeBSDProbeObject))
      return bar.arch=rv64gcv;
   return bar.default;
}

// Other platform bar.resolver
...

bool isFulFillLinux(LinuxProbeObject Obj) {
   return doLinuxProbe(Obj);
}

bool isFulFillFreeBSD(FreeBSDProbeObject Obj) {
   return doFreeBSDProbe(Obj);
}

// Other platform isFulFill
...

Pros

Relatively simple implementation for the runtime function

Cons

Does not provide a uniform interface for all platforms

Relate patch:
https://github.com/riscv-non-isa/riscv-c-api-doc/pull/48
https://github.com/llvm/llvm-project/pull/85790
https://github.com/llvm/llvm-project/pull/85786

cc @kito-cheng

Is two word "FullFill" supposed to be the single word "Fulfill"?

Do we intend to support __builtin_cpu_supports which is built on the same interface as function multiversioning on other targets like X86? That will require a reasonably fast query mechanism. String processing may be too much for that.

Is two word "FullFill" supposed to be the single word "Fulfill"?

Oops, I think there is a typo here. Updated.

Do we intend to support __builtin_cpu_supports which is built on the same interface as function multiversioning on other targets like X86? That will require a reasonably fast query mechanism. String processing may be too much for that.

If we only allow one extension each time. Does it provide a reasonably fast query mechanism? Or must it be some kind of bit operation to determine support?
For example, compiler generate this resolver function base on __builtin_cpu_supports. And compiler-rt/libgcc use the method 1 to implement __builtin_cpu_supports.
ptr bar.resolver() {
   if (__builtin_cpu_supports("i") &&
       __builtin_cpu_supports("m") &&
       __builtin_cpu_supports("a") &&
       __builtin_cpu_supports("f") &&
       __builtin_cpu_supports("d") &&
       __builtin_cpu_supports("c") &&
       __builtin_cpu_supports("v") &&
       __builtin_cpu_supports("zicsr") &&
...
       __builtin_cpu_supports("zvl64b"))
      return bar.arch=rv64gcv;
   return bar.default;
}

Do we intend to support __builtin_cpu_supports which is built on the same interface as function multiversioning on other targets like X86? That will require a reasonably fast query mechanism. String processing may be too much for that.

If we only allow one extension each time. Does it provide a reasonably fast query mechanism? Or must it be some kind of bit operation to determine support?
For example, compiler generate this resolver function base on __builtin_cpu_supports. And compiler-rt/libgcc use the method 1 to implement __builtin_cpu_supports.

ptr bar.resolver() {

   if (__builtin_cpu_supports("i") &&

       __builtin_cpu_supports("m") &&

       __builtin_cpu_supports("a") &&

       __builtin_cpu_supports("f") &&

       __builtin_cpu_supports("d") &&

       __builtin_cpu_supports("c") &&

       __builtin_cpu_supports("v") &&

       __builtin_cpu_supports("zicsr") &&

...

       __builtin_cpu_supports("zvl64b"))

      return bar.arch=rv64gcv;

   return bar.default;

}

My concern is that each time you pass a string into the compiler-rt interface, it will need to execute multiple strcmps to compare the input string against every extension name the library knows about to figure out which extension is being asked for. That gets expensive if called very often.
On x86, builtin_cpu_supports calls the library the first time to update some global variables. After the first time it is a load and a bit test

If you use a sensible data structure like a trie you can do it linearly in the length of the input string

To enhance both the performance(compare to string base) and portability(compare to hwprobe base), I have updated the runtime interface with a new layer for each queryable extension. This approach is similar to approach 2 described in the PR's description. This comment aims to explain it with a concrete example using the IFUNC resolver function and __builtin_cpu_supports.
Two structures are defined in the runtime library to store the status of hardware-enabled extensions:
Each queryable extension has a unique position inside the structure bit to represent whether it is enabled. For example: extension m enable bit could be stored inside __riscv_feature_bit.features[0] & (1 << 5)
struct {
	unsigned length;
    unsigned long long features[MAXLENGTH];
} __riscv_feature_bit;

struct {
    unsigned vendorID;
    unsigned length;
    unsigned long long features[MAXLENGTH];
} __riscv_vendor_feature_bit;

Additionally, there is a function to initialize these two structures using a system-provided mechanism:
void __init_riscv_features_bit();

In summary, this approach uses __riscv_feature_bit and __riscv_vendor_feature_bit to represent whether an extension is enabled. They are initialized by __init_riscv_features_bit. Both structures are defined in compiler-rt/libgcc.

When the compiler emits the IFUNC resolver function, it can use these structures to check whether all extension requirements are fulfilled.
Here is a simple example for a resolver:
; -target-feature +i
__attribute__((target_clones("default", "arch=rv64im"))) int foo1(void) {
  return 1;
}

func_ptr foo1.resolver() {
	__init_riscv_features_bit();
	if (MAX_QUERY_LENGTH > __riscv_feature_bits.length)
		raise_error();

    // Try arch=rv64im
	unsigned long long rv64im_require_feature_0 = constant_build_during_compiation_time();
	unsigned long long rv64im_require_feature_1 = constant_build_during_compiation_time();
	...
	if (
	((rv64im_require_feature_0 & __riscv_feature_bits.features[0]) == rv64im_require_feature_0) &&
	((rv64im_require_feature_1 & __riscv_feature_bits.features[1]) == rv64im_require_feature_1) &&
	...)
		return foo1.rv64im;

	return foo1.default;
}

Who's specifying which bit is what?

My idea is that bit is only meaningful for runtime function and compiler that using __riscv_feature_bits. For function multiversioning, I will allocate non-colliding bits for extensions and remain unchanged. If there is new extension, allocate the available bit or extend the __riscv_feature_bits.features size when it be used by function multiversioning. Vendor extension is guarded by vendorID, so it can be allocated by vendor itself without collosion with other vendor extension.
The remaining problem is how to synchronize the extension bitmask across LLVM, compiler-rt, GCC, and libgcc. I don't have a solution for this yet.
@kito-cheng Any ideas on how we can achieve this synchronization?

Update: add the extension groupid/bitmask definitions for synchronization across LLVM, compiler-rt, GCC, and libgcc.

cc @kito-cheng @topperc

This proposal got positive feedback from RISC-V GNU community :)

IMO it's way simpler to just have the resolver call hwprobe directly, rather than trying to introduce this intermediate format and the associated library helper functions.  We don't even need to specify anything here: the compiler could just generate the hwprobe calls directly and then call into the VDSO via the provided argument to the IFUNC resolver.
That said: this is essentially just duplicating one of the early hwprobe designs, and thus has a bunch of design flaws we spent a few versions sorting out.  So if you want to go with it, probably best to sort out things like:

It's a bitmask, so we can only represent single-bit features.
There's no way to have a sparse bitmask in this format, so callers have to allocate all the earlier-defined 0s for new extensions.
There's no support for heterogeneous-ISA systems or extensions from multiple vendors.
The bit definitions are imprecise.

Performance features aren't defined, and don't naturally fit into a bitmask.
Resolving global symbols during IFUNCs has a long tail of problems.
What's going to call that initialization function?

So I'd recommend doing basically nothing here: we already have all the tools we need to implement FMV at the binary/library level, we just need to mark the multi-target attributes as legal so we can implement them.

IMO it's way simpler to just have the resolver call hwprobe directly, rather than trying to introduce this intermediate format and the associated library helper functions. We don't even need to specify anything here: the compiler could just generate the hwprobe calls directly and then call into the VDSO via the provided argument to the IFUNC resolver.

The resolver isn't the only use of this. I'm assuming we should support __builtin_cpu_supports like other targets?

What's going to call that initialization function?

On X86, it's called by the resolver function. Only the first call does anything real, the other calls early out if its already been done.
I suggested we should cache the information rather than doing a syscall of hwprobe for every multiversion function.

I am not sure if compiler can generate code to invoke vDSO direct, but this part is like optimization on reducing the overhead of query the capability of host machine, I am kinda less concern around this since current proposal can cache that when first call __init_riscv_features_bit.
For other concern:
We intend to add extension first, and we believe bit mask is enough for now, and our goal is reach same capability as IFUNC in glibc, which we don't intend to address heterogeneous-ISA systems or extensions from multiple vendors yet, and we may extend the syntax on future if needed.
And for IFUNC...I believe there are few security issue around that, but I don't see we have other choice for short-term, both LLVM and GCC are didn't provide such infrastructure without IFUNC, and I am not sure it worth to spend another half year to doing that is worth, also we don't document down we use IFUNC, so we can change the implementation to get rid of IFUNC stuffs in future if we think it's necessary, and the __init_riscv_features_bit and __riscv_feature_bits still can be used once we switch to different implementation.

Remove the bitmask that can't be query by hwprobe directly.

A few comments / questions that came to me after taking a closer look at the current implementation in compiler-rt:

What is the intended process for adding to the __riscv_feature_bits bitmask definitions? Will we proactively add extensions to the list as they're ratified? Or wait until someone has a need to probe for them? I note that already there are more extensions in the Linux hwprobe interface than are supported here.
How will bitmasks in  __riscv_vendor_feature_bits be assigned and managed? Is the idea that every vendor effectively has its own namespace? Also, what is vendorID set to? Is the intent that it matches mvendorid (which is the JEDEC manufacturer ID)
The current interface has no way to determine success or failure of __init_riscv_feature_bits. I'd suggest it would be useful to have a way to determine this - even for the function multi-versioning use case it's conceivable a platform might try __init_riscv_feature_bits first and fall back to something else if it wasn't able to retrieve information. But it's also possible we'd want to wrap this function with something more user-facing. I would suggest setting __riscv_feature_bits.length and __riscv_vendor_feature_bits.length to 0 if __init_riscv_feature_bits was unable to extract any information for the current platform.

I agree with earlier comments that it's a shame this doesn't really have a clean way of adding in performance feature or data that doesn't easily fit in a bitmask. The extensibility story for RISC-V hwprobe seems better in that respect with the key/value system. I guess the idea is that we'd add another __init_riscv_foo function along with a new struct if necessary, rather than having __init_riscv_feature_bits learn to fill in newly defined structs in the future?

A few comments / questions that came to me after taking a closer look at the current implementation in compiler-rt:

What is the intended process for adding to the __riscv_feature_bits bitmask definitions? Will we proactively add extensions to the list as they're ratified? Or wait until someone has a need to probe for them? I note that already there are more extensions in the Linux hwprobe interface than are supported here.

I thought the intent was to match hwprobe. What's missing?

How will bitmasks in  __riscv_vendor_feature_bits be assigned and managed? Is the idea that every vendor effectively has its own namespace? Also, what is vendorID set to? Is the intent that it matches mvendorid (which is the JEDEC manufacturer ID)

I expect it should be the vendorid returned from hwprobe which I assume matches mvendorid?

A few comments / questions that came to me after taking a closer look at the current implementation in compiler-rt:

What is the intended process for adding to the __riscv_feature_bits bitmask definitions? Will we proactively add extensions to the list as they're ratified? Or wait until someone has a need to probe for them? I note that already there are more extensions in the Linux hwprobe interface than are supported here.

I thought the intent was to match hwprobe. What's missing?

I guess these
#define		RISCV_HWPROBE_EXT_ZVE32X	(1ULL << 37)
#define		RISCV_HWPROBE_EXT_ZVE32F	(1ULL << 38)
#define		RISCV_HWPROBE_EXT_ZVE64X	(1ULL << 39)
#define		RISCV_HWPROBE_EXT_ZVE64F	(1ULL << 40)
#define		RISCV_HWPROBE_EXT_ZVE64D	(1ULL << 41)
#define		RISCV_HWPROBE_EXT_ZIMOP		(1ULL << 42)
#define		RISCV_HWPROBE_EXT_ZCA		(1ULL << 43)
#define		RISCV_HWPROBE_EXT_ZCB		(1ULL << 44)
#define		RISCV_HWPROBE_EXT_ZCD		(1ULL << 45)
#define		RISCV_HWPROBE_EXT_ZCF		(1ULL << 46)
#define		RISCV_HWPROBE_EXT_ZCMOP		(1ULL << 47)
#define		RISCV_HWPROBE_EXT_ZAWRS		(1ULL << 48)

How will bitmasks in  __riscv_vendor_feature_bits be assigned and managed? Is the idea that every vendor effectively has its own namespace? Also, what is vendorID set to? Is the intent that it matches mvendorid (which is the JEDEC manufacturer ID)

Using mvendorid makes most sense to me, especially given we've aligned with misa.

The current interface has no way to determine success or failure of __init_riscv_feature_bits. I'd suggest it would be useful to have a way to determine this - even for the function multi-versioning use case it's conceivable a platform might try __init_riscv_feature_bits first and fall back to something else if it wasn't able to retrieve information. But it's also possible we'd want to wrap this function with something more user-facing. I would suggest setting __riscv_feature_bits.length and __riscv_vendor_feature_bits.length to 0 if __init_riscv_feature_bits was unable to extract any information for the current platform.

Given at least one extension ('i' if nothing else) should always be set, I suppose checking __riscv_feature_bits.features[0] !=0 would be workable.

This solution seems to me to be a reasonable way forwards - much better than allocating a bit to mean "we initialized the bitmap". This also avoids any issues with the mvendorid actually being zero.

I agree with earlier comments that it's a shame this doesn't really have a clean way of adding in performance feature or data that doesn't easily fit in a bitmask. But I appreciate we're at a point where we need to ship something. The extensibility story for RISC-V hwprobe seems better in that respect with the key/value system. I guess the idea is that we'd add another __init_riscv_foo function along with a new struct if necessary, rather than having __init_riscv_feature_bits learn to fill in newly defined structs in the future?

Performance/metric features (rather than just presence features) are indeed harder, but yes, we do have a route to adding them at some point in the future. This PR seems a good first step, with the additional clarifications you're suggesting.
I think we should probably allocate bits for the hwprobe values that @topperc has listed so we're fully up to date.

How does someone add a vendor extension without having a JEDEC ID then? This is important in the research space, for example.

How will bitmasks in  __riscv_vendor_feature_bits be assigned and managed? Is the idea that every vendor effectively has its own namespace? Also, what is vendorID set to? Is the intent that it matches mvendorid (which is the JEDEC manufacturer ID)
I thought the intent was to match hwprobe. What's missing?

I would say that in more neutral way :P the bit will add if any RISC-V extension exploration scheme has supported, give an example: FreeBSD able to detect A, B, C extensions and  Linux hwprobe able to detect B, C, D extensions, then we will allocate bits for A, B, C, D

How will bitmasks in  __riscv_vendor_feature_bits be assigned and managed? Is the idea that every vendor effectively has its own namespace? Also, what is vendorID set to? Is the intent that it matches mvendorid (which is the JEDEC manufacturer ID)

Yes, vendorID is mvendorid, and then each vendor will has it own namespace, we intend to let each vendor to add that.

How does someone add a vendor extension without having a JEDEC ID then? This is important in the research space, for example.

Define zero or 0x7f7f7f7f as reserved value? each byte is 7 bit data plus one bit odd parity bit, so maybe we can use invalid encoding space in JEDEC ID?

There are two updates

The function __init_riscv_feature_bits has been updated with an extra parameter. This new argument allows the platform to pass pre-computed results for platform feature information.

Relate PR in LLVM: https://github.com/llvm/llvm-project/pull/101472
https://github.com/riscv-non-isa/riscv-c-api-doc/pull/74/commits/13825673357dcef0cad0d53e5f58243f74072f44

A new structure has been defined for CSR-related values (mVendorID, mArchID, mImplID).

Relate PR in LLVM: https://github.com/llvm/llvm-project/pull/101449
https://github.com/riscv-non-isa/riscv-c-api-doc/pull/74/commits/71ef24949612ad51dc4aac7eb188da3f9765128b

TODO:

Allocate bit for latest hwprobe supported extension
More description/example for vendor feature bit

TODO:

Allocate bit for latest hwprobe supported extension

Added and relate LLVM PR https://github.com/llvm/llvm-project/pull/101632

I think this is ready to land, but could you convert this PR into adoc format which used in main branch now....

I think this is ready to land, but could you convert this PR into adoc format which used in main branch now....

Rebased and use the adoc format now.

squash commit and rewrite the commit message

Let move on!


Start dragging after a mousemove event

This library is making the assumption that the user is going to drag an item when they mousedown on an element (https://github.com/bevacqua/dragula/blob/master/dist/dragula.js#L114), except if it is a <a> or <button> (https://github.com/bevacqua/dragula/blob/master/dist/dragula.js#L203).  This prevents the user from dragging an item if they mousedown on a child <a> or <button>.
I think the best solution would be to start the drag event when a drag action takes places (delta in mouse x,y after mousedown).

Yup, but there's an option to override that behavior.

Are you referencing the delay option?

Nope, invalid option

Thanks, @bevacqua.  The invalid function is called on mousedown.  The invalid function seems to give you 2 different options when a <a> is clicked: the browser navigates to the href, or the drag event starts.  I think the more accurate use case coverage would be if the user clicks a <a>, the browser navigates to the href, if the user clicks and drags a <a> the drag event starts.  Do you agree?

That's a very obscure use case. I don't want to build it into dragula (dragula would have to handle the redirection because delay). Outside of dragula, you could set invalid to return false, preventDefault on clicks to the anchor tag, and if after delay the drag event was never fired, then you navigate away.

I might not be describing the use case correctly.  The scenario I'm talking about is inside a container there is a <a> tag with an href attribute and the user clicks it.
Currently, there seem to be at least 2 ways of handling it:

invalid function - you can specify that any mouse events on/over an <a> shouldn't/should trigger dragging events.
delay - add a delay to starting the dragging events so the user who clicks something won't start a drag.  However, there is also a delay when they start dragging.

Why not just start dragging after mousedown AND after mousemove?

Off the top of my head that sounds doable and something I'd like to do. Can't think of any drawbacks right now.

Wow the API is very simplified by doing this. Yay.

Please see: https://github.com/bevacqua/dragula/tree/no-delay-clicks

Implemented in 3.0.0


More Drives

Features to be incorporated into the next major round of drives functionality.

S3 storage
More robust synchronization
More robust end-user implementation

Investigate JuiceFS:
https://juicefs.com/

It would be helpful if zrok drive could additionally handle GET requests. That way, I could share an HTTP link to the files in my zrok drive the same way I do for the zrok web backend, and the same files would still be available in the file explorer/manager/finder app.

I was privately asked for help with drives because it's unclear from the drives doc in https://docs.zrok.io/docs/guides/drives/cli/ (or blog posts) that a zrok drive is not a web site, and visiting the drive in a web browser will get the error "method not allowed" (GET).
The user was confused because they expected to see the drive contents at the private proxy URL provided by zrok access private {drive share token}.
Supporting GET for drives would soften the user experience somewhat, but there also seems to be a need to clarify how accessing a WebDAV drive is different from accessing a website. If we add more types of drives, then we'll at least need a hint about where to get info for each supported drive type (file-like protocol).


Race condition in _methods.rb

I encountered race conditions when running in JRuby where the following code would cause _methods.rb to raise an exception. The part of the code that replaces / wraps the methods with the sig is not thread safe (the action can occur on separate threads)
Input
# typed: true

require 'sorbet-runtime'

class A
  extend T::Sig

  sig {params(a: Integer).void}
  def initialize(a)
  end

  def hello_world
    puts "Hello world"
  end

end

a = Class.new(A) do

  end.new(1)

a.hello_world

a = Class.new(A) do

  end.new('s')

Observed output
Without this change the following failure occurs in run_sig_block_for_key
undefined method `initialize` for `Test::A`

Uncaught exception: A previous invocation of #<UnboundMethod: Test::A#initialize> raised, and the current one succeeded. Please don't do that.

I have previously opened a #2309 with a proposed fix that uses a Mutex to protect the critical section.
There was also a previous issue #2276 i'm closing in favor of this.

I ran into this on mri 2.6

Since this also happens in MRI I believe this is purely a Sorbet bug. The relevant code needs a mutex or something.

Happening to us as well.
RuntimeError: A previous invocation of #<UnboundMethod: #<Class:WebToken>#decode(*args, &blk) /home/tile/app/vendor/bundle/ruby/2.7.0/gems/sorbet-runtime-0.5.9363/lib/types/private/methods/call_validation.rb:89> raised, and the current one succeeded. Please don't do that.
  from types/private/methods/_methods.rb:449:in `run_sig_block_for_key'
  from types/private/methods/_methods.rb:423:in `maybe_run_sig_block_for_key'
  from types/private/methods/_methods.rb:255:in `block in _on_method_added'


Bug: Losing what you type if you move the focus off the window

On Firefox and Chrome, if I click on the Dissenter button, start making a comment, then move the focus off the window and the side bar (and my comment) disappears.
Maybe the extension should somehow save what you type as a draft and then pull it back up when you re-engage with the page?

Thanks for submitting an issue. The reason this happens is due to instantiating the popup every time the popup button is clicked. Will investigate potential fixes.

I think the server will need to be setup to enable CORS because the extension needs to access the content of an iframe. Need to add a storage permission as well, probably, but that doesn't give a warning so it won't scare people away.

I just experienced this as I was typing a reply to a Dissenter comment. I moved to another tab to look at some info to put in the reply and then moved back, and I needed to locate my comment again in the dissenter tab because the reply field had refreshed or something. The content of my draft reply was still there, however... if it can save the content, why can it not save the active reply field?

Is the Dissenter extension even a thing nowadays?


fix: 422 error handling panic

Previously, the error handling code in client.gen.go would panic when a 422 status code was received, because it prioritized calling e.model.Error(), but the 422 error only set the error in e.error, leading to the panic. This PR reverses the checked order for the error, though required a new panic case for if both e.error and e.model.Error() are errorless.

Superseded by #362


Real-time Flag Update via gRPC in Kubernetes

Short Abstract
Flagd must provide near real-time flag updates for secure environments. This enables organizations to update feature flag values, without relying on the Kubernetes API. This ensures that applications are using the correct, most up-to-date feature flags across all environments and instances.
Why
Near real-time flag updates help ensure consistency across environments by pushing changes as soon as they occur. This is critical in many situations such as in environments with multiple instances behind a load balancer where the request may be routed to a different instance that's still using an outdated flag value.
Currently, flagd is able to support near real-time flag updates by subscribing to the Kubernetes API. This works well for demo purposes but often this isn't possible in secure environments that restrict access to the Kubernetes API. It's also means that flagd has a hard dependency on Kubernetes if a near real-time flag update is required.
Functional Requirements

[ ] The OpenFeature Operator must support the new real-time data sync with Flagd.
[ ] The OpenFeature Operator must be able to interchangeably support the real-time sync and the Kubernetes sync.
[ ] The OpenFeature Operator must provide the option of automatically managing certificates for flagd.

Non-Functional Requirements

[ ] It must be possible to encrypt the real-time connection
[ ] Documentation must be updated in flagd and OFO

Progress
Progress can be tracked in a dedicated project board: https://github.com/orgs/open-feature/projects/8/views/3
E2E Demo

Create a new Kubernetes cluster
Install OFO and enable real-time mode
Add a flag configuration
Add a workload that reference the flag configuration
Confirm that the flagd sidecar is use the real-time subscription (not Kubernetes API)
Confirm that OFO did not set Kubernetes API watcher permissions on the workflow
Change a flag value
Confirm that the value if updated in flagd

It's also means that flagd has a hard dependency on Kubernetes if a near real-time flag update is required.

This statement is not clear to me. If we need to watch the for update to a resource in a Kubernetes environment then it will need that dependency, let alone the understanding of the K8s resource.

This statement is not clear to me.

Sorry, this used to be part of a larger story that I split out. That section was referreing to the need for gRPC in general. I've removed that section from this issue.


Update to rolling-spider 1.1, and add ps3 example

Should be able to be merged properly now?

Something not right with my fork. Closing to try this again... sorry!


all chat gone

i purchased an plan pro 50 and used almost all credits and working on the application, and all chat gone, and please give teh credit back and posisble chat back

my chat (i.e. my projects) also disappeared right now. i hope it comes back. i am already on the paid plan

@EricSimons I hope you guys can restore my projects, already invested a substantial amount of time. Thanks a lot!

Hi all,
We are aware of this issue with chat persistence. Temporary workarounds and updates can be found here: #39. Appreciate your patience as improvements continue to be made.

it's worked i had chats and i got throught stackblitz ,

Great, glad to hear it!


build(package-json): add links and fix npm start script

add github repository, issue link and readme link
Closes #8

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[v4] ion-checkbox .checked not reflected in aux-input

Bug Report
Ionic Info
<EMAIL_ADDRESS>
Describe the Bug
I'm using an ion-checkbox inside a form and access the input's checked value, however it always returns false.
Steps to Reproduce
@Component({ tag: 'my-page' })
export class MyPage {
  @Method()
  getData() {
    return { checkbox: this.form.checkbox.checked };
  }

  form: HTMLFormElement | undefined;

  render = () => (
    <form ref={el => (this.form = el)}>
      <ion-checkbox name="checkbox" />
    </form>
  );
}

Expected Behavior
It should return the proper value, i. e. true if checked.
Additional Context
Accessing the value of the input[type="checkbox"] inside the Shadow DOM returns the correct value. Seems that it's not reflected to the input[type="hidden"].aux-input (outside the Shadow DOM) properly. Similar thing might happen with ion-toggle, but haven't tried.
BTW @manucorporat in #16074 you said that value of checkboxes/toggles can only be used inside forms, however that would mean i would need to manually toggle the value property from on to off, right? Because it doesn't just update when toggling the input (as it's an immutable prop within the component).

This should be fixed in beta.16


TS2307: Cannot find module 'Client' or its corresponding type declarations.

Hi,
I have been trying to use the SDK with my firebase Cloud Functions,
I have initialized and exported a new instance of Duffel
import { Duffel } from '@duffel/api';

const duffel = new Duffel({
    token: 'duffel**********************************4J-o3',
});

export default duffel;

which I was using on an express request handler,
const airports = await duffel.airports.list({
        limit: 100,
 });

but when building and testing the code,
I am getting this error
node_modules/@duffel/api/dist/types/index.d.ts:1:36 - error TS2307: Cannot find module 'Client' or its corresponding type declarations.

1 import { Client as Client$1 } from 'Client';

Is this a bug with the SDK or something is wrong on my end

Hi,
Thank you for reaching out. it is indeed a bug in the SDK. We are working on the fix and it should be resolved soon.
You can use v1.7.3 for the time being. Sorry for the inconvenience!

Hi @Rahat47, we deployed a fix for the issue you reported in the latest version (https://github.com/duffelhq/duffel-api-javascript/releases/tag/v1.7.7). Thanks for reporting it and please let us know if you encounter any more issues.


Allow resolving dependencies dynamically

This got a lot more involved than I was hoping for one major reason. Previously param.depends declarations were resolved during instance creation which meant that when making an instance it would search the entire class hierarchy for declared dependencies which were meant to be turned into watchers. If we want to be able to update dependencies dynamically when you assign a subobject it was absolutely not feasible to search the entire class hierarchy for dependencies each time. So I took care of some of the to-do items that Chris had left during initial implementation.
Specifically we now resolve dependencies (partially) in the metaclass ONCE so that during instance creation and parameter value assignment, when we have to actually set up (or update) the watchers, we don't have to repeat all that work. This is done by separating the list of dependencies into those that can be fully resolved and those that cannot.
Fixes https://github.com/holoviz/param/issues/410

[ ] Add (tons of) tests
[ ] Ensure old watchers are cleaned up
[ ] Handle cases where the class has a subobject default
[ ] Ensure this fixes issues with overridden methods
[ ] Ensure that an undecorated overridden method clears watchers

@philippjfr, can you please rebase this on master? There will be a few conflicts.


fixes varying case in grid

build warning

Deploy preview for pf-next ready!
Built with commit 053258e66ceabf4b0391db07847a92b622e9c92c
https://deploy-preview-470--pf-next.netlify.com

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Add an option to build only dependencies or only the current crate

For the purposes of linting plugins for text editors, it would be convenient to have an option that only builds the default crate, or the crate specified by the -p option, and return an error code and/or message that indicates that the build failed because the dependencies are out of date or not built. Alongside this, an option to build only the dependencies of the default crate or the -p crate, since the current crate is much more likely to be in a state that it can't be compiled.

This option would be very helpful to create Dockerfile that caches the dependency retrieval properly (cf. https://users.rust-lang.org/t/creating-official-docker-image-for-rust/4165/4)

My current work-around:
ADD Cargo.toml Cargo.lock /app/
RUN mkdir -p /app/src && echo "fn main() {}" > /app/src/main.rs && \
    cargo build --release

ADD . /app
RUN cargo build --release

CMD ["/app/target/release/BINARY"]

This looks like a duplicate of #2644


test(mongodb): pause between index updates

Codecov Report
Base: 90.63% // Head: 90.63% // No change to project coverage :thumbsup:

Coverage data is based on head (e61d6d5) compared to base (fb8bd93).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##           master      #75   +/-   ##
=======================================
  Coverage   90.63%   90.63%
=======================================
  Files          33       33
  Lines        2477     2477
=======================================
  Hits         2245     2245
  Misses        158      158
  Partials       74       74

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

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


Feature: Adding Bucket Name Parameter to Storage Class to Support Bucket Name of Your Choice

I have added bucket name parameter to support config bucket name in storage class to choose bucket name of your choice while mouting

@majst01 Please help to review this

@majst01 I fixed my code, please help to review

Done fixed as your reviewed @majst01

After thinking again, this PR makes not much sense, because with this only one PVC per storageclass is possible.
What is you exact requirement ?

After thinking again, this PR makes not much sense, because with this only one PVC per storageclass is possible. What is you exact requirement ?

I would like to mount a S3 to my pod with specific S3 bucket name to align with my customer compliance, it would not be good to name S3 bucket as PVC name for my use case.

After thinking again, this PR makes not much sense, because with this only one PVC per storageclass is possible. What is you exact requirement ?

@majst01 I would like to mount a S3 to my pod with specific S3 bucket name to align with my customer compliance, it would not be good to name S3 bucket as PVC name for my use case.

But what happens then if you  create a second PVC ??
So with this the general usability is basically gone

After thinking again, this PR makes not much sense, because with this only one PVC per storageclass is possible. What is you exact requirement ?

@majst01 I would like to mount a S3 to my pod with specific S3 bucket name to align with my customer compliance, it would not be good to name S3 bucket as PVC name for my use case.

But what happens then if you create a second PVC ?? So with this the general usability is basically gone

For my use case is generally specific, I have a use case that one pod will use one pvc for mounting data in the blob storage like S3 (This app has only replica). Another use case is I use statefulset with blob mounting to get JKS files for Kafka

From your mention "because with this only one PVC per storageclass is possible."
For my Kafka use case, that is statefulset, as the statefulset nature, it will create per pod pvc that is mounting to the same blob using storage class. I think this is possibly possible, because we don't share the pvc

From your mention "because with this only one PVC per storageclass is possible."
@majst01 For my Kafka use case, that is statefulset, as the statefulset nature, it will create per pod pvc that is mounting to the same blob using storage class. I think this is possibly possible, because we don't share the pvc and we just mouting the JKS files (not modifying the blob contents)

Sure, this is the contract of a sts. But the contract of csi is that configuration parameters of a storageclass apply to all PVCs created and with your PR you will never be able to create more than one PVC in the whole cluster with this storageclass. Therefore this PR will not be merged.

From your mention "because with this only one PVC per storageclass is possible."
@majst01 For my Kafka use case, that is statefulset, as the statefulset nature, it will create per pod pvc that is mounting to the same blob using storage class. I think this is possibly possible, because we don't share the pvc and we just mouting the JKS files (not modifying the blob contents)

Sure, this is the contract of a sts. But the contract of csi is that configuration parameters of a storageclass apply to all PVCs created and with your PR you will never be able to create more than one PVC in the whole cluster with this storageclass. Therefore this PR will not be merged.

@majst01 How can we change the contract to support multiple PVCs?


Add simple Rust and Motoko examples for the Query Statistics feature

Overview
This MR adds examples for the Query Statistics feature, both in Motoko and in Rust.
The examples are very small and only describe the minimal functionality of generating and then querying some data.
The Rust and Motoko examples are identical.
The Motoko example was written by @crusso , the Rust example was originaly written by @Dfinity-skaestle, and then reduced to a smaller example by me

Hi @Sawchord and thank you for adding this example. As a final step before merging, we need to decide on who will own the examples moving forward.
My suggestion:
rust/query-stats: Team Consensus (@chmllr)
motoko/query-stats: Team Languages (@dfx-json)

@dfx-json Consensus Team is ok with owning the rust example 👍


Google Pay : Bottom Sheet is not showing Order or Receipt details as Readme section showing in it.

No, I want some other details of payment in Google BottomSheet is it possible?

I would assume there would be, I will investigate this for you.


Add vrf arg to ping

Looks like vyos doesn't know about VRF
so these changes should be reflected only
in the method header

Solves https://github.com/napalm-automation/napalm-vyos/issues/11

@mirceaulinic
That's right at this moment vyos doesn't support vrf. It's future request.
Change seems ok. If I modify constant file in napalm_base this method seems to work
Go ahead


Cow: Watch wpmagictricks.com

Cow requests the watch of the watch_keyword wpmagictricks\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

wpmagictricks\.com has been seen in 1 true positive, 1 false positive, and 0 NAAs.

Approved by cigien in Charcoal HQ


Analytics app shouldn't show the "connect your wallet" button

Since it's a read only app.

Is the Analytics app the data page where we are listing the liquidity depths?
It's just another page in the existing app.

Yeah but it's going to be on a different subdomain and it should be treated as a separate app even though it's the same one technically.

So there's going to be a subdomain which defaults to this page? Will it include swap functionality? Or should that be disabled? @yudilevi

@Velua because we have multiple data pages now (details pages for pool and token), I changed the way we determine if showLogin is true/false:
get showLogin() {     return !this.$route.fullPath.includes("data");   }
closing this for now. Please reopen if subdomain is happening @yudilevi

it's not 100% clear if we're gonna use the data subdomain from day 1 or shortly after but it's still the plan to have it.


support functional test for new structure plugins

1. Why is this change necessary?
If you create a functional test in the new structure (custom/plugins) and use Enlight_Components_Test_Plugin_TestCase  the subscriber won’t get called or just once.
2. What does this change do, exactly?
The issue was that the class Enlight_Components_Test_Plugin_TestCase  just calls $container->load('Plugins'); what does not initialize the plugins. I added the code from the kernel, which initializes the plugins and all their subscribers.
3. Describe each step to reproduce the issue or behaviour.
Just create a plugin with a PostDispatch-Function that dies on call.
File: /customer/plugins/FirstPlugin/FirstPlugin.php
<?php
namespace FirstPlugin;

use Shopware\Components\Plugin;

class FirstPlugin extends Plugin
{
    /**
     * @return array
     */
    public static function getSubscribedEvents(): array
    {
        return [
            'Enlight_Controller_Action_PreDispatch_Frontend_Detail' => 'dieInPreDispecth',
        ];
    }
    /**
     * @param \Enlight_Controller_ActionEventArgs $args
     */
    public function dieInPreDispecth(\Enlight_Controller_ActionEventArgs $args)
    {
        die(__FILE__);
    }
}

If you visit a detail page in the browser, you can see the die-Message. So the method get calls.
The test written for the case “fails”. When I dispatch on the detail page I get a full response and don’t die on load.
File: /customer/plugins/FirstPlugin/Test/Functional/FirstPluginTest.php
<?php
namespace FirstPlugin\Test\Functional;

class FirstPluginTest extends \Enlight_Components_Test_Controller_TestCase
{
    public function testDieInPreDispecth()
    {
        $response = $this->dispatch('/detail/index/sArticle/8');
        var_dump($response);
    }
}

4. Please link to the relevant issues (if any).
none
5. Which documentation changes (if any) need to be made because of this PR?
none
6. Checklist

[ ] I have written tests and verified that they fail without my change
[x ] I have squashed any insignificant commits
[ ] This change has comments for package types, values, functions, and non-obvious lines of code
[x ] I have read the contribution requirements and fulfil them.

Hello,
thank you for creating this pull request.
I have opened an issue on our Issue Tracker for you. See the issue link: https://issues.shopware.com/issues/SW-19764.
Please use this issue to track the state of your pull request.

Merged in 2e07caf6baa


Is there a Chinese version?

Is there a Chinese version?
Or how to sinicize?

We don't have a Chinese locale file, but you'd want to add one in here: https://github.com/plotly/react-chart-editor/tree/master/src/locales and then set the locale prop: https://github.com/plotly/react-chart-editor/blob/master/src/PlotlyEditor.js#L67

If i need chinese version, should  i need change /locales/xx.js file ?

Is not this app userd to locales/xx.js  file ?
like this:
import locale from 'locales'

like this:
import locale from 'locales'

You need to provide the locale name, not object, so just "en" for example.
The "xx" locale is a special locale with lots of spacing around the tokens for layout testing.

Also, a sidenote: please do not post a comment and then edit it multiple times, completely changing its contents. Every time you post a comment or edit it, a notification is generated in our systems and it's hard for us to keep track of what you're asking/saying.

Why doesn't it work?

If I change the Chinese version manually, how should I change it?


Feature Request: Upload/Download data from Cloud Storage directly

Recently, many user will have their data on cloud storage like S3/GCS etc.
For that reason, it'll be good to upload data from cloud storage directly, and also save annotated data to it. If this feature implemented, there are no need to have the data on local.

Great idea. I would recommend to use the Apache libcloud library which offers a unified interface to many storage providers like AWS, Azure, GCP, etc.

Use django storages and you are good to go. https://django-storages.readthedocs.io/en/latest/

@Hironsan @icoxfog417 This feature will be very useful for one of my upcoming projects, so I'd like to start working on implementing it.
Here are my initial thoughts, please let me know what you think so that we're aligned on how to best build this feature.
I was thinking of adding a new button next to the file upload button to trigger the cloud upload feature:

This button can open a modal that lets the user input all the data required to connect to the cloud storage via Apache Libcloud:

When the user clicks the upload button, the form is sent to the TextUploadAPI. In this request, there will be no file present so the backend API checks for that. If the file is not present, the API opens the cloud file as a stream and passes it to the parser. The rest of the code doesn't have to change. Something along these lines:
class TextUploadAPI(APIView):
  # ... the code before this point doesn't have to change

  def post(self, request, *args, **kwargs):
        project = get_object_or_404(Project, pk=self.kwargs['project_id'])

        if 'file' in request.data:
            data = request.data['file']
        else:
            libcloud_connector = ... # code to unpack libcloud fields here
            data = ... # code to open file from cloud storage as stream here

        parser = self.select_parser(request.data['format'])
        data = parser.parse(data)
        # ... the rest of the code below this point doesn't have to change

One benefit of this approach is that the cloud upload piece is completely decoupled from the rest of the Django configuration so for each upload the user could select a different cloud storage, e.g. import one set of data from AWS S3 and another from Google Cloud Storage.
Let me know what you think!

See https://github.com/chakki-works/doccano/pull/213 for an implementation of cloud data import via django-cloud-browser.

Just tried out this feature, seems like transfer from AWS still timesout on Heroku 😢

@echan00 I suspect the timeout will be solved by implementing an approach like https://github.com/chakki-works/doccano/issues/241#issuecomment-508139685 which moves the generation of the export file out of the HTTP loop and into a background worker.


Transparency

It doesn't seem like this mod handles transparency. Case in point this no worky worky

I have no idea why the black stuff is happening but here's the skin.
https://ibb.co/HdkQxYD

Transparency works fine for me.

hmm transparency is always a issue with me and I have no idea can you try out my skin to see if its the skin
@Voidliest

My guess then is you saved as an image format that isn't .PNG. That is the only format that is supported I'm pretty sure.

nope its png

2020_11_12_arctic-fox-v3_wo_clothes_ears_comp.png

plus when you save as it saves it as a png

Okay. Well then it's either a bug or when you saved it some errors occurred.

@unascribed any thought I used gimp

Another mod is conflicting with Ears' patches to the skin loader that prevent vanilla from overzealously forcing opacity on the skin. (See the wiki for more info)
Please send your client log.

Well my first thought was first person model. But I got to check

@unascribed its FirstPersionModel
and heres the log
https://pastebin.com/3BxuiTgT


some error occured

hi @juangallostra
when i ran your code, then error occured like below
[ INFO:0] Initialize OpenCL runtime...
Traceback (most recent call last):
File "src/ar_main.py", line 174, in
main()
File "src/ar_main.py", line 40, in main
obj = OBJ(os.path.join(dir_name, 'models/cow.obj'), swapyz=True)
File "/home/hyunjo/Face_Detection/augmented-reality/src/objloader_simple.py", line 16, in init
v = v[0], v[2], v[1]
TypeError: 'map' object is not subscriptable
can you tell me how to fix it ?
in advance, thank you

@juangallostra
it was related to problem of version
i fixed it like list(map ~~)

@jhj7905 yeah, the problem is that in Python 3 map returns an iterable object of type map, and not a subscriptible list. Glad you found the solution!


daily check for broken links

Closes: #1850
What is the purpose of the change

Created a CI job that auto check for broken links in all MD files, and create an Issue of broken links. This can be done automatically every day at 00:00 UTC, or triggered manually

Testing and Verifying
Tested at https://github.com/notional-labs/osmosis/actions/runs/4499627236 and created a new issue https://github.com/notional-labs/osmosis/issues/15

It would be good if some one suggest some labels for the issue


feat(mongol-api): added code of conduct and updated readme

Readme preview:
https://github.com/TRIE-Tech/mongol-api/tree/69-update-readme-and-add-code-of-conduct


There no f_0 orbital in f electron  system

When I use sumo plot pdos, I can not find f_0 orbital, Could you give me some suggestion?
As we know, there are 7 orbitals for f electrons,but I can not find f_0 orbital.
Is it  a bug or something  I did wrong?
please see the following:

This script  I use：
dosplot(filename="/scratch/rqzhang/SmB6/SQS/222/MAE/vasprun.xml",
width=a,height=b, lm_orbitals=({'Sm': ('f')}),elements=({"Sm":'d'}),ylabel='PDOS (a.u.)',
legend_cutoff=3,
xmin=-1.5, xmax=0.5,num_columns=1, plot_total=True,legend_frame_on=True

If you set legend_cutoff=0 that should show all the orbitals. Currently, orbitals with contributions of less than 3% to the DOS in the energy range are not given a label.

Thanks so much for your reply.
So this following figure I set legne_cutoff=0, there is also no f_0 orbitals.

Thanks for your quick feedback. I fixed the bug in the latest version. If you update sumo using the latest version on GitHub, that should fix your problem.
Please let me know if it works.

That is great! Thanks so much, I will test using the latest version. Thanks.

I have tested the pdos using the latest version. It fixed my problem.  Thanks so much for your nice help. By the way, could you tell me which module you changed, I have not find the bug. Thanks!

No problem. The bug was fixed in this commit: c1703b5a896d15f344d718112e9a4ac61811b6c2


WIP: Repository avatars

For issue #2340
Work in progress.
For now done:

show avatar at project page (updated project header template)
add new option for repo avatars location on filesystem
add new fields to repo model
add migration
add url catcher in web.go

No gravatar email in avatar input form yet.

A quick note, I think support upload-only is good enough, no need to support Gravatar. If user does not upload, then generate random avatar. What do you think?

Well, in issue @Dasoren wanted this.
But yes, it matters only for Organization I think.
So better remove AvatarEmail from Repository.

And probably don't double messages in locales.
Just use generic messages for avatar form.

We actually don't need migration here, if the file for avatar does not exist just generate one on the fly.

I see. I'll rewrite things then.

Explore repos:

Home page:

Organization page:

Repo page with avatars, public repo

Repo w/o avatar, private repo

@Unknwon This PR is open for review now.

I have some doubts about changes in Makefile.
What version of lessc do you use to generate gogs.css?
From ruby gems?

I have some doubts about changes in Makefile.
What version of lessc do you use to generate gogs.css?
From ruby gems?

I'm in fact use CodeKit, it really doesn't matter, they should "generally" generate same output.

Ok then. It will fix usage of latest lessc from gems.

@Unknwon Please review.

 GitHub does review well.


fix(ms-sql): added tls/ssl checks

Tested with windows 2019 with sql 2019 Standard and windows 2016 with sql 2019. No errors found with the updated recipe. Created an EC2 instance with windows 2012 R2 SQL server 2016 standard. Failed to create a user with demo deployer. Will raise another PR for fixing windows 2012 R2.

@Julien4218, we validated the changes with recipe that creates Windows Server 2019 and MSSQL 2019. As suggested by you, we will validate these changes against Windows 2016 server and/or Windows 2012 R2 and will let the team know.
cc @amolero-nr @NSSPKrishna

Great thank you. For Windows 2012 R2, you can you just launch an instance in AWS if it's easier. Remember to terminate when you're done testing.

Testing tls13 in Windows Server 2012 R2: a) simple command check, b) in the install command and c) in the infra agent;  it seems to work okay (FYI: @Julien4218, @NSSPKrishna):


Doesn't output HTML Code

when i use this plugin, view code like this:
<%= gravatar_for @user %>
html has been escaped .....
i'm using rails 3.1.3

Are you referring to the ampersand in the middle of the source URL being escaped with &?
<img class="gravatar" alt="" width="50" height="50" src="http://www.gravatar.com/avatar/f5dfb241dbb07b9709e0c44e08318a98?rating=PG&size=50" />

That would be correct escaping:
http://htmlhelp.com/tools/validator/problems.html#amp
Let me know if it's some other problem.

Ahh, actually, I bet it's because rails 3 is automatically escaping all the HTML.
Try this instead and see if it fixes the problem temporarily:
<%= raw gravatar_for @user %>

oh, yeah, i use <%= raw gravatar_for @user %>, then rails work OK now
thank you


Accept xlsx files as animal and sample tables

Summary Change Description
The template animal and sample tables are in a spreadsheet and
researchers find it simpler to provide spreadsheet files instead of csv
files for the animal and sample data, thus accepting those directly is
much simpler.
The default table headers were updated to reflect the standardized
naming conventions and match those in the animal an sample template
files provided to the researchers.
Affected Issue Numbers

Resolves #165

Code Review Notes

The DefaultSampleTableHeaders now match those used in the template file which also match those used in the TraceBase Terms and Definitions
The output from the custom command (some of it, not the parts in utils.py) now uses self.stdout.write instead of print as suggested in the Django Custom Commands documentation.
Errors throw CommandError excptions as specified in the docs.

Checklist

[x] All issue requirements satisfied (or no linked issues)
[x] Linting passes.
[x] Migrations created & committed (or no model changes)
[x] Tests implemented (or no code changes)
[x] All tests pass

@fkang-pu Let me know if you want to take a look at this or if I should just merge it. Thanks!


[5.0] Added a database_path() helper function

Continued from #7117
This mainly to avoid users from using base_path('database') for publishing migration since this path can be modified by extending Illuminate\Foundation\Application.
Of course another way of preventing this is by using $this->app->databasePath() but it seem base_path('database') is the widely used structure now. Even used as the doc example http://laravel.com/docs/5.0/packages#publishing-file-groups
Signed-off-by: crynobone<EMAIL_ADDRESS>

:+1:


How to custom special point in webgl point layer

Hello anyone,
I have a request how to custom special point in WebGL Point Layer
In my understand WebGL just support LiteralStyle with some symbol type so I would like to draw special one like as RegularShape
Example for special icon like this
https://www.marinetraffic.com/en/ais/home/centerx:-28.3/centery:17.1/zoom:6
Please correct me if I'm wrong
Thanks!

You can specify an icon in a literal style object, I think this is the way to go in your case. See:
https://github.com/openlayers/openlayers/blob/fb73bbaa00227f0e45bda58d324a0127f259ae58/examples/webgl-points-layer.js#L15-L24
Unfortunately, there is currently no support for rotation of icons in literal styles. I'll mark this issue as PR accepted as it is an achievable goal IMO.

@jahow Thank you so much
Is there any option to change icon color base on features's attributes

Sure, the color property will be applied as a tint on the icon. So a white square icon with a color of red will appear as a red square.

{   "type":"Feature",   "properties": {     "shape":"sphere",     "color":"#5aca5b"   },   "geometry": {     "type":"Point",     "coordinates":[0, 0]   } }
@jahow so sorry for missing information
I mean each feature will have different color so how to change color base on property color

This should work then:
color: ['get', 'color'],

The webgl styles are not part of the documented API yet, but you can find more info on expressions here:
https://github.com/openlayers/openlayers/blob/master/src/ol/style/expressions.js

@jahow I got an error when was using color: ['get', 'color']

Indeed, this gives an error. Thanks for pointing that out!
What's missing is a way to interpret the features color attribute as a color rather than a string. Not sure what is the best way to go but this would definitely be a worthy improvement. I'll try to work on this in the weeks to come, in the meantime if you feel like contributing please be my guest :)

Sure in next time :)
Thank you so much your kindly support

there is currently no support for rotation of icons in literal styles
BTW this can be done by create 360 icon with different angel and use textureCoord

Indeed, this gives an error. Thanks for pointing that out!
What's missing is a way to interpret the features color attribute as a color rather than a string. Not sure what is the best way to go but this would definitely be a worthy improvement. I'll try to work on this in the weeks to come, in the meantime if you feel like contributing please be my guest :)

I'm running into this exact issue with ['get', 'color'].  It appears the shaders are compiled to varying float v_color;.  Obvious a float is a no go.  I wanted to create the vert/frag shader ala https://openlayers.org/workshop/en/webgl/points.html example but that API no longer works (fails looking for style).

color: ['color', ['get', 'red'], ['get', 'green'], ['get', 'blue']], appears to work but you have to separate the color into components

It appears the shaders are compiled to varying float v_color;

Exactly, strings are "converted" to numbers when sent to the GPU. It's useful for comparison but not for conversion to color. I'm not sure yet what the best solution to this would be.
You can still use the webgl renderer without literal styles though, as in the heatmap layer for example. This will give you more flexibility. You could for example define 3 attributes (red, green and blue), each of them derived from the same feature property.


Allow specifying the output stream

When using RapidCheck, I'd like the option to write to RC_LOG() instead of std::cerr:

Since the property function may be called many times, using classic debugging techniques such as printing to stdout or stderr can prove confusing. The RC_LOG macro provides a better way to log information during the execution of a test case. Information logged this way will only be printed on failure after the minimal test case has been found.

This likely wouldn't be too hard. We could just add #define DBG_OUTPUT std::cerr and then users could override it.

Will you make this change or should I make a PR?

By all means, be my guest. We'd need that definition, with cerr as the default, and to add that information to the readme. As well we'd need a test case for this. I'll certainly review a PR if you make it.
I might mention, in the past the owner of this repo has expressed that they want as few as possible compile time options so it's possible they may reject this change. But seeing as it's fairly simple, it might not be a big issue.

Indeed - I'd prefer a non-preprocessor way to make this work. Maybe this could be an argument to dbg::DebugOutput or to .print(…). This way, we would have
#define dbg(...)                                    \
  dbg::DebugOutput(__FILE__, __LINE__, __func__)    \
      .print(std::cerr, {DBG_MAP(DBG_STRINGIFY, __VA_ARGS__)}, \
             {DBG_MAP(DBG_TYPE_NAME, __VA_ARGS__)}, __VA_ARGS__)

as the default, but users could define their own
#define my_dbg(...)                                    \
  dbg::DebugOutput(__FILE__, __LINE__, __func__)    \
      .print(my_stream, {DBG_MAP(DBG_STRINGIFY, __VA_ARGS__)}, \
             {DBG_MAP(DBG_TYPE_NAME, __VA_ARGS__)}, __VA_ARGS__)

Note: I haven't thought about this in detail. That approach might not work.

What about a variant of dbg like
#define dbg_to(stream, ...)                                    \
  dbg::DebugOutput(__FILE__, __LINE__, __func__)    \
      .print(std::cerr, {DBG_MAP(DBG_STRINGIFY, __VA_ARGS__)}, \
             {DBG_MAP(DBG_TYPE_NAME, __VA_ARGS__)}, __VA_ARGS__)

#define dbg(...) dbg_to(std::cerr, __VA_ARGS__)

and then
#define my_dbg(...) dbg_to(my_stream, __VA_ARGS__)

? It's still a preprocessor solution but less "magical", not a compile-time option, and the users don't need to know internal details (I also haven't yet checked if this works).

@alexeyr I like that :+1:

Then I'll try to make a PR when I have free time.

Good question. Maybe dbg_to should take a third (enum or bool) parameter that enables/disables colors.


Feature/ohe refactor

PR to resolve following issues:
Bring OHE transformer testing setup in line here
Alphabetise minimum attribute dict here
Nothing unusual needed to be done for the OHE testing steup, drop_original mixin already exists, so really just removing redundant implementation tests and removing tests which are covered by the generic test suite. Added a single type test for the separator argument as this didn't exist.

reminder to update changelog :)


Pain points for "divider".

A pain point I've encountered when adding support for dynamic locale is having to deal with separators in control panels. For example, see https://github.com/phetsims/molecule-polarity/issues/147 and https://github.com/phetsims/natural-selection/issues/325.
To address this, the developer needs to make this change:
HSeparator -> VDivider (documented as "a horizontal line")
VSeparator -> HDivider (documented as "a vertical line")
Pain points:
(1) The names for the new "dividers" are super confusing, because they don't match the orientation of their line, or their documentation.  The names are HDivider ("a vertical line") and VDivider ("a horizontal line").   And developers need to change HSeparator to VDivider, and VSeparator to HDivider.  Very confusing, and this sent me down a rabbithole.
(2) Why the name change from "separator" to "divider"?  This will change the PhET-iO API wherever a separator is instrumented - as is the case in molecule-polarity, natural-selection, ...
(3) Why do we need new "divider" classes?  Why not reimplement HSeparator and VSeparator so that developer don't need to do anything to address this?  (And feel free to move HSeparator and VSeparator is scenery.)

I've had to change the PhET-iO API for 3 sims so far, about to have to change a 4th.  And I suspect that I'll be undo those changes when @kathy-phet and @arouinfar weigh in.   So I'm going to pause work on dynamic layout that is related to separator, and raise priority.

(2) Why the name change from "separator" to "divider"? This will change the PhET-iO API wherever a separator is instrumented - as is the case in molecule-polarity, natural-selection, ...

This was not a change that was requested by designers. I prefer the term "separator", and it appears frequently in PhET-iO sims. Is there any reason why we can't keep it that way?
Also, I want to note that GAO includes "separator" terminology, so this issue is fairly time-sensitive.

Also, I want to note that GAO includes "separator" terminology, so this issue is fairly time-sensitive.

It looks like GAO is using the old separators, not the new dividers.   And it's able to do that by having fixed-size control panels that do not resize based on locale.

Some options:
(1) Rename HSeparator and VSeparator to HSeparatorDeprecated and VSeparatorDeprecated. Rename VDivider and HDivider to HSeparator and VSeparator.  Probably the easiset option.
(2) Do what you suggested above. If there's a first numeric arg, it's the static length of the separator. The downside is a developer will need to remember to remove this arg for cases where the separator should resize.
(3) Like (2), but the first arg is the initial length, not a static length. For separators that are children of a layout Node, make them resize as they should.  Downside is that we'll still be computing an unnecessary first arg in a some (many?) cases.
My preference is (1).

@jonathanolson and I changed the names of files and usages as following:

HSeparator => HSeparatorDeprecated
VSeparator => VSeparatorDeprecated
VDivider => HSeparator
HDivider => VSeparator

Assigning back to @pixelzoom  for feedback/review. Feel free to close if all looks good!

Looks great, thanks! Closing.


Is there a way I can find an element in a FlatList using Detox

So while testing my application, I am using a data set. Since the data set has many entries, I am using FlatList to display my list. After creating the list, I want to be able to verify and tap on certain list items. Below, I have attached the code which I am trying to use and it does not work for me. If anyone has a better idea to do this, please let me know.
The approach I think should be taken. I can't think of anything else to make the FlatList scroll and find the item I am looking for.
let isNotFound = true;
while (isNotFound) {
    try {
       await waitFor(element(by.id((edit_details.index).toString()))).toBeVisible().withTimeout(2000)
       isNotFound = false;
    } catch (e) {
       await element(by.id('credit_history_list')).swipe('up', 'slow', 0.2)
    }
}
await element(by.id((edit_details.index).toString())).tap();

It does help scroll the list and it keeps scrolling while it actually finds the entry I am looking for. But the .tap() function does not work. Instead, detox moves on with the next line of code.
Is there a better way to do this?
Thanks in advance!

I have asked this question on Stack Overflow with the detox tag. However, I haven't received anything there. I am posting the link here so maybe someone over here can help me out :(

@HasanKhan999 thanks for posting the link. That was the intent, as the bot explains it 😄


issues when loading a png (corruption?)

The png can be seen here https://v2.vetology.net/patient-manager/image?id=1100414&id2=5367541
Then if you go to the sample page http://rawgit.com/chafey/cornerstoneWebImageLoader/master/examples/index.html
and load the same issue, when it is added to the canvas, the image can't be recognized any longer
Is there some setting I can change so mages display correctly? See screenshot below:

The image at that URL is unreachable to me. Can you post it here or change the link?

I decided to go with jpegs for the mean time so the pngs were deleted, will post back if we start getting this issues after we start generating the new pngs;


[docs][Transitions] Fix typo in code sample

[ ] I have followed (at least) the PR section of the contributing guide.

Nice catch @ZeeshanTamboli
Just found it's possible to add commit from the browser 😍


Question on the structure

Hi,
Thanks for creating this project for us to reference on.
Correct me if I'm wrong, it seems like the bot would have to go through all the plugins, all the outputs, find the output with some values in it and then only the bot will send out the value to the channel.
Just wondering if there is a reason behind this structure, is it possible we only call the plugin when we need it and not go through every single one of them for every message the bot receive?
Thanks!
Zhiquan

Yeah I think this is the way of Slack. Every message gets sent to every bot.

Because this project is structured around plugins, it does what you described above. This is unlikely to be an issue unless you have a lot of bots and messages coming through. You could certainly just use the  https://github.com/slackhq/python-slackclient to write your own tool at a lower level if you want to improve the performance of your bot though.


Accept fileobj in place of filename

In case users don't want to save stuff on the filesystem, the library should accept writable file objects as input and save to them using write method.
Basically, anywhere you accept filename (as str), you could accept a fileobj.

Seems reasonable enough, I'll put in some time on this after I've sorted out the PyPI stuff.

This might not be immediately apparent, and this seems like poor design now that think about it, but the existing code should allow for a slight variation of what you're thinking of:
# Provide the filename yourself (as per the README)
uva.get_camera('Garage').snapshot('garage_snapshot.jpg')

# Get the raw response body
uva.get_camera('Garage').snapshot(True)

With the second one, you can do
file_like_object.write(uva.get_gamera('Garage').snapshot(True))

It does store the whole thing in RAM first though.
All download methods, i.e,

UnifiVideoCamera.snapshot(),
UnifiVideoCamera.recording_between(),
UnifiVideoRecording.download(),
and UnifiVideoRecording.snapshot()

should return the raw response body if you pass True as the filename arg.
(I keep saying should because there's no test for it and I can't verify against my own UniFi Video setup atm.)

That's right, I've read somewhere in the code that filename is passed down to raw and this accepts a bool too.
I'll give this a shot as soon as I can start working on the component :smile:

To my biggest surprise this happens to be exactly what Home Assistant expected as output (raw bytes of the picture of the camera).
Hence i'm fine using this for now (not played with recording manipulation yet). You can close this if you want.

Glad to hear it. It might still make sense to implement this in case anyone wants to do this with a large recording, since you can't really chunk the response as it is atm. I'll keep this open till I've had time to mull it over.


WIP: fix content clipping

related to #147

alignment question before i go too far down this rabbit hole in changes
@michaelthatsit - how strong are we committed to the current manual clipping for the 2d representation - 3d it's useful, but 2d we're currently not taking advantage of threejs's own clipping texture features
you good if make an adjustment for that or would you prefer i update just the current manual setup

alignment question before i go too far down this rabbit hole in changes
@michaelthatsit - how strong are we committed to the current manual clipping for the 2d representation - 3d it's useful, but 2d we're currently not taking advantage of threejs's own clipping texture features
you good if make an adjustment for that or would you prefer i update just the current manual setup

nvm i see the line - all good

putting a pause on this for the time being

unpaused ~

need to merge in refactored main and readjust before continuing this

closing in favor of https://github.com/Volumetrics-io/mrjs/pull/192 since the refactor of https://github.com/Volumetrics-io/mrjs/pull/173


Install Sense

I'm trying to install the sense plugin with
docker run --name kibana --link elasticsearch:elasticsearch -d kibana -p 5601:5601 --plugin elastic/sense
But when I hit : http://<IP_ADDRESS>:5601/app/sense
I got :
{"statusCode":404,"error":"Not Found","message":"Unknown app sense"}
(Also the port the exposing of the port doesn't work, I have to set it up with Kitematic)

I would recommend creating your own docker image that inherits from the official image, if you want to install plugins. Something like this.
Make a Dockerfile in a new folder called mykibana
Dockerfile
FROM kibana:4.5
RUN gosu kibana /opt/kibana/bin/kibana plugin --install elastic/sense

docker build -t mykibana:4.5 .
docker run --name kibana --link elasticsearch:elasticsearch -p 5601:5601 -d mykibana:4.5

You could also run docker exec <name> <cmd> after the docker run command and use the kibana-plugin command
For example
docker exec kibana kibana-plugin install sense
https://www.elastic.co/guide/en/kibana/current/_installing_plugins.html

fyi - sense is built into 5.x

This image is officially deprecated in favor of upstream's images (see https://www.elastic.co/guide/en/kibana/current/_pulling_the_image.html).
For more information, please see docker-library/elasticsearch#160, docker-library/docs#842, and docker-library/docs#945.

This image has been deprecated in favor of the official kibana image provided and maintained by elastic.co. The upstream images are available to pull via docker.elastic.co/kibana/kibana:[version] like 5.4.2. The images found here will receive no further updates once the 5.6.0 release is available upstream. Please adjust your usage accordingly.
Elastic provides open-source support for Kibana via the elastic/kibana GitHub repository and the Docker image via the elastic/kibana-docker GitHub repository, as well as community support via its forums.

Thanks!


Arbitrary number of dimensions - but check they are same over the argument tensors

Consider this function
@typechecked
def mean_squared_error(input: TensorType["batch"], target: TensorType["batch"]):
    d = input - target
    d = d * d
    return torch.mean(d)

The above only allows batches to contain 1-element values (i.e. scalars).
I would like to ensure that the shape of items in the input batch is the same as the shape of items in the target batch, i.e input.shape[1:] == target.shape[1:].
I don't want to hardcode the number of dimensions like for example a batch containing images: input: TensorType["batch", "c", "h", "w"].
Is this currently possible?

So presumably the batch dimensions should match as well: i.e. the full condition you want to match is input.shape == target.shape?
This can be done using by naming a group of dimensions, rather than just a single dimension:
def mean_squared_error(input: TensorType["shape": ...], target: TensorType["shape": ...]):

Using a literal ....
This works because a ... is used to refer to an arbitrary number of dimensions.

Thanks! This is exactly what I needed.


Router: enable preeval for marked functions

What type of PR is this?
Improvement
What does this PR do / why is it needed ?
Enables the router to call preeval to normalize functions prior to being passed to the router.
Only functions marked with NormalizeRequiredFunction stereotype will be processed by preeval
This change removes the need to explicitly call preeval prior to making calls to execute for queries using marked functions.
The change is dependent on https://github.com/finos/legend-pure/pull/694

/easycla


support lang="scss" in external components

I import components from an external library. These components all use <style lang="scss">. I get these errors for all components:
Comments:
 > style:/usr/local/__site/src/node_modules/.pnpm/fulldev-ui@0.3.7_prettier-plugin-astro@0.13.0_prettier@3.2.5_vite@5.3.3_sass@1.77.6_/node_modules/fulldev-ui/src/components/_todo/Prose.astro:3:2: warning: Comments in CSS use "/* ... */" instead of "//"
    3 │   // @include component('prose') {
      ╵   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

@imports:
 > style:/usr/local/__site/src/node_modules/.pnpm/fulldev-ui@0.3.7_prettier-plugin-astro@0.13.0_prettier@3.2.5_vite@5.3.3_sass@1.77.6_/node_modules/fulldev-ui/src/components/typography/ListItem.astro:1:8: error: Could not resolve "../../css/utils.scss" (the plugin "bookshop-astro" didn't set a resolve directory)
    1 │ @import '../../css/utils.scss';
      ╵         ~~~~~~~~~~~~~~~~~~~~~~

other:
  errors: [
    {
      detail: undefined,
      location: {
        column: 8,
        file: 'style:/usr/local/__site/src/node_modules/.pnpm/fulldev-ui@0.3.7_prettier-plugin-astro@0.13.0_prettier@3.2.5_vite<EMAIL_ADDRESS>        length: 19,
        line: 1,
        lineText: "@import '../css/utils.scss';",
        namespace: '',
        suggestion: ''
      },
      notes: [],
      pluginName: '',
      text: `Could not resolve "../css/utils.scss" (the plugin "bookshop-astro" didn't set a resolve directory)`
    },

@ cloudcannon support: full logs on https://swift-tundra.cloudvent.net/

We run into the same problem when we want to import scss variables into bookshop components.


[connectivity] Define clang module for iOS

Define clang modules in connectivity plugin to:

Allow it to be imported into Swift apps as libraries without use_frameworks!.
Allow it to be module imported @import into Objective-C apps.

See further details in https://github.com/flutter/flutter/issues/41007
Steps to Reproduce
Import into Swift app as a library

flutter create test_create_app
Add connectivity to the pubspec.

dependencies:
  flutter:
    sdk: flutter
  connectivity: any

In generated ios/Podfile remove use_frameworks!
flutter build ios
In AppDelegate.swift add import connectivity at the top.
Build.

Compilation error: no such module 'connectivity'
Module import (@import) into Objective-C app

flutter create -i objc test_create_app
Add connectivity.

dependencies:
  flutter:
    sdk: flutter
  connectivity: any

flutter build ios
In AppDelegate.m add @import connectivity; at the top.
Build.

Compilation error: no such module 'connectivity'

is this fixed? i didnt reproduce the steps but mine also gives out module connectivity not found and i didnt modify anything in the PodFile

is this fixed? i didnt reproduce the steps but mine also gives out module connectivity not found and i didnt modify anything in the PodFile, and even in the .symlinks folder the plugin connectivity is there.

@chitgoks connectivity defines a clang module.  Please file a new issue and fill out the template so we can investigate your usecase.


Why using torch.max in LSTMCore

Hello~ @ruotianluo
I am wondering why there is torch.max operation in LSTMCore, rather than a simple narrow.
What is the reason that we max two tensors into one?
The original code is here:
https://github.com/ruotianluo/self-critical.pytorch/blob/5fdf374f1e8f814598ce0b2540c36a047cab2b2a/captioning/models/FCModel.py#L34-L36

It's the model described in the self critical sequence training paper.