Using CC to build C sources complicates cross-compilation

While testing cross compilation (#177) I encountered a failure wherein a stage0 C source file would fail to build,
/--------------------------------------------------------\
| Run Cc CompileC Stage0 (stage = Stage0, package = ghc) |
|      input: compiler/cbits/genSym.c                    |
|  => output: _build/stage0/compiler/c/cbits/genSym.o    |
\--------------------------------------------------------/
cc1: all warnings being treated as errors
shakeArgsWith   0.000s    0%
Function shake  0.317s    8%  ==
Database read   0.077s    1%
With database   0.005s    0%
Running rules   3.513s   89%  =========================
Total           3.912s  100%
Error when running Shake build system:
* inplace/bin/check-api-annotations
* _build/stage0/compiler/libHSghc-8.3.a
* _build/stage0/compiler/c/parser/cutils.o
user error (Development.Shake.cmd, system command failed
Command: /usr/bin/gcc -fno-stack-protector -Iincludes -I_build/generated -I_build/stage0/compiler -Icompiler/. -Icompiler/parser -Icompiler/utils -I/mnt/work/ghc/roots/8.0.2/lib/ghc-8.0.2/process-<IP_ADDRESS>/include -I/mnt/work/ghc/roots/8.0.2/lib/ghc-8.0.2/directory-<IP_ADDRESS>/include -I/mnt/work/ghc/roots/8.0.2/lib/ghc-8.0.2/unix-<IP_ADDRESS>/include -I/mnt/work/ghc/roots/8.0.2/lib/ghc-8.0.2/time-<IP_ADDRESS>/include -I/mnt/work/ghc/roots/8.0.2/lib/ghc-8.0.2/bytestring-<IP_ADDRESS>/include -I/mnt/work/ghc/roots/8.0.2/lib/ghc-8.0.2/base-<IP_ADDRESS>/include -I/mnt/work/ghc/roots/8.0.2/lib/ghc-8.0.2/integer-gmp-<IP_ADDRESS>/include -I/mnt/work/ghc/roots/8.0.2/lib/ghc-8.0.2/include -Werror -c compiler/parser/cutils.c -o _build/stage0/compiler/c/parser/cutils.o
Exit code: 1
Stderr:
In file included from includes/Rts.h:181:0,
                 from compiler/parser/cutils.c:6:
includes/rts/storage/Block.h: In function ‘Bdescr’:
includes/rts/storage/Block.h:175:8: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
     ((((W_)p &  MBLOCK_MASK & ~BLOCK_MASK) >> (BLOCK_SHIFT-BDESCR_SHIFT))
        ^

The problem here is that we are using the host's gcc with a hand-crafted set of include-paths to compile this file, whereas the old make build system would use the stage0 ghc,
"/mnt/work/ghc/roots/8.0.2/bin/ghc" -optc-fno-stack-protector -optc-Wall -optc-Icompiler/stage1/build/./autogen -optc-Icompiler/. -optc-Icompiler/parser -optc-Icompiler/utils -optc-Icompiler/stage1 -optc-I'/mnt/work/ghc/roots/8.0.2/lib/ghc-8.0.2/process-<IP_ADDRESS>/include' -optc-I'/mnt/work/ghc/roots/8.0.2/lib/ghc-8.0.2/directory-<IP_ADDRESS>/include' -optc-I'/mnt/work/ghc/roots/8.0.2/lib/ghc-8.0.2/unix-<IP_ADDRESS>/include' -optc-I'/mnt/work/ghc/roots/8.0.2/lib/ghc-8.0.2/time-<IP_ADDRESS>/include' -optc-I'/mnt/work/ghc/roots/8.0.2/lib/ghc-8.0.2/bytestring-<IP_ADDRESS>/include' -optc-I'/mnt/work/ghc/roots/8.0.2/lib/ghc-8.0.2/base-<IP_ADDRESS>/include' -optc-I'/mnt/work/ghc/roots/8.0.2/lib/ghc-8.0.2/integer-gmp-<IP_ADDRESS>/include' -optc-I'/mnt/work/ghc/roots/8.0.2/lib/ghc-8.0.2/include' -optc-Werror=unused-but-set-variable -optc-Wno-error=inline -static  -H32m -O -Wall  -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -package-db libraries/bootstrapping.conf  -this-unit-id ghc-8.3 -hide-all-packages -i -icompiler/backpack -icompiler/basicTypes -icompiler/cmm -icompiler/codeGen -icompiler/coreSyn -icompiler/deSugar -icompiler/ghci -icompiler/hsSyn -icompiler/iface -icompiler/llvmGen -icompiler/main -icompiler/nativeGen -icompiler/parser -icompiler/prelude -icompiler/profiling -icompiler/rename -icompiler/simplCore -icompiler/simplStg -icompiler/specialise -icompiler/stgSyn -icompiler/stranal -icompiler/typecheck -icompiler/types -icompiler/utils -icompiler/vectorise -icompiler/stage1/build -Icompiler/stage1/build -icompiler/stage1/build/./autogen -Icompiler/stage1/build/./autogen -Icompiler/. -Icompiler/parser -Icompiler/utils -Icompiler/stage1    -optP-include -optPcompiler/stage1/build/./autogen/cabal_macros.h -package-id base-<IP_ADDRESS> -package-id deepseq-<IP_ADDRESS> -package-id directory-<IP_ADDRESS> -package-id process-<IP_ADDRESS> -package-id bytestring-<IP_ADDRESS> -package-id binary-<IP_ADDRESS> -package-id time-<IP_ADDRESS> -package-id containers-<IP_ADDRESS> -package-id array-<IP_ADDRESS> -package-id filepath-<IP_ADDRESS> -package-id template-haskell-<IP_ADDRESS> -package-id hpc-<IP_ADDRESS> -package-id transformers-<IP_ADDRESS> -package-id ghc-boot-8.3 -package-id ghc-boot-th-8.3 -package-id ghci-8.3 -package-id unix-<IP_ADDRESS> -package-id terminfo-<IP_ADDRESS> -Wall -fno-warn-name-shadowing -this-unit-id ghc -XHaskell2010 -DSTAGE=1 -Rghc-timing   -no-user-package-db -rtsopts        -c compiler/parser/cutils.c -o compiler/stage1/build/parser/cutils.o

I believe what is happening here is that Hadrian gets the include path wrong, meaning that we end up picking up header files (e.g. ghcautoconf.h) from the tree being built (which is targeting ARM, in this case), whereas we want the headers provided by the stage0 compiler (which targets the host).
I don't think there is a good reason to deviate from the make build system here; it seems like the easiest way to solve this is to simply use the stage0 GHC to build C objects. To do otherwise would essentially require that we be able to anticipate what flags the stage0 GHC would pass to the C compiler, which sounds fragile at best.

Indeed changing Rules.Compile to use Ghc CompileHs instead of Cc CompileC appears to resolve the issue (except for some errors during dependency generation, although this makes sense as I didn't fix the dependency generation rules).

My hope was to get rid of the magic built into the GHC, hence I was trying to build C files directly.
However, I agree that it may be best to stick to how the Make build system works.
@bgamari Could you take care of this issue? I don't know much about subtleties of cross compilation.

This is an interesting finding. I am looking into cross-compilation as well, so I'll keep track of this issue at the same time :)

The changes below can pass the compilation:
diff --git a/src/Rules/Compile.hs b/src/Rules/Compile.hs
index 2d3eb4a..c5155de 100644
--- a/src/Rules/Compile.hs
+++ b/src/Rules/Compile.hs
@@ -28,7 +28,7 @@ compilePackage rs context@Context {..} = do
             buildWithResources rs $ Target context (Ghc CompileHs stage) [src] [obj]

     priority 2.0 $ do
-        nonHs "c"   %> compile (Cc  CompileC ) (obj2src "c"   isGeneratedCFile  )
+        nonHs "c"   %> compile (Ghc CompileHs) (obj2src "c"   isGeneratedCFile  )
         nonHs "cmm" %> compile (Ghc CompileHs) (obj2src "cmm" isGeneratedCmmFile)
         nonHs "s"   %> compile (Ghc CompileHs) (obj2src "S"   $ const False     )

diff --git a/src/Settings/Packages/Rts.hs b/src/Settings/Packages/Rts.hs
index e278204..6e22226 100644
--- a/src/Settings/Packages/Rts.hs
+++ b/src/Settings/Packages/Rts.hs
@@ -49,7 +49,51 @@ rtsPackageArgs = package rts ? do
     ffiIncludeDir  <- getSetting FfiIncludeDir
     ffiLibraryDir  <- getSetting FfiLibDir
     mconcat
-        [ builder Cc ? mconcat
+        [ builder Ghc ? mconcat
+          [ arg "-optc-Irts"
+          , arg $ "-optc-I" ++ path
+          , arg $ "-optc-DRtsWay=\"rts_" ++ show way ++ "\""
+          -- rts *must* be compiled with optimisations. The INLINE_HEADER macro
+          -- requires that functions are inlined to work as expected. Inlining
+          -- only happens for optimised builds. Otherwise we can assume that
+          -- there is a non-inlined variant to use instead. But rts does not
+          -- provide non-inlined alternatives and hence needs the function to
+          -- be inlined. See also #90.
+          , arg "-optc-O2"
+
+          , Debug     `wayUnit` way          ? arg "-optc-DDEBUG"
+          , way `elem` [debug, debugDynamic] ? arg "-optc-DTICKY_TICKY"
+          , Profiling `wayUnit` way          ? arg "-optc-DPROFILING"
+          , Threaded  `wayUnit` way          ? arg "-optc-DTHREADED_RTS"
+
+          , inputs ["//RtsMessages.c", "//Trace.c"] ?
+            arg ("-optc-DProjectVersion=" ++ show projectVersion)
+
+          , input "//RtsUtils.c" ? append
+            [ "-optc-DProjectVersion="            ++ show projectVersion
+            , "-optc-DHostPlatform="              ++ show hostPlatform
+            , "-optc-DHostArch="                  ++ show hostArch
+            , "-optc-DHostOS="                    ++ show hostOs
+            , "-optc-DHostVendor="                ++ show hostVendor
+            , "-optc-DBuildPlatform="             ++ show buildPlatform
+            , "-optc-DBuildArch="                 ++ show buildArch
+            , "-optc-DBuildOS="                   ++ show buildOs
+            , "-optc-DBuildVendor="               ++ show buildVendor
+            , "-optc-DTargetPlatform="            ++ show targetPlatform
+            , "-optc-DTargetArch="                ++ show targetArch
+            , "-optc-DTargetOS="                  ++ show targetOs
+            , "-optc-DTargetVendor="              ++ show targetVendor
+            , "-optc-DGhcUnregisterised="         ++ show ghcUnreg
+            , "-optc-DGhcEnableTablesNextToCode=" ++ show ghcEnableTNC ]
+
+            , inputs ["//Evac.c", "//Evac_thr.c"] ? arg "-optc-funroll-loops"
+
+            , inputs ["//Evac_thr.c", "//Scav_thr.c"] ?
+              append [ "-optc-DPARALLEL_GC", "-optc-Irts/sm" ]
+
+            , input "//StgCRun.c" ? windowsHost ? arg "-optc-Wno-return-local-addr"
+          ]
+        , builder Cc ? mconcat
           [ arg "-Irts"
           , arg $ "-I" ++ path
           , arg $ "-DRtsWay=\"rts_" ++ show way ++ "\""

I didn't delete the Cc's duplicated arguments because Cc FindCDependencies also need them.

@izgzhen In the above code, you probably want to say builder (Ghc CompileC) instead of builder Ghc and builder (Ghc CompileHs)? That is, we probably need to add a new mode CompileC into GhcMode.

That is, we probably need to add a new mode CompileC into GhcMode.

Sure, will do later

The current problem is, after stage0 completed with above patch, we need to build some stage1 packages, and Hadrian errors here:
inplace/bin/ghc-stage1 -Wall -hisuf hi -osuf o -hcsuf hc -static -hide-all-packages -no-user-package-db '-this-unit-id rts' -i -i_build/stage1/rts -i_build/stage1/rts/build/autogen -Iincludes -I_build/generated -I_build/stage1/rts -I_build/generated -optc-I_build/generated -optc-marm -optc-fno-stack-protector -odir _build/stage1/rts -hidir _build/stage1/rts -stubdir _build/stage1/rts -c rts/linker/elf_reloc_aarch64.c -o _build/stage1/rts/c/linker/elf_reloc_aarch64.o -O0 -H32m -optc-Irts -optc-I_build/stage1/rts '-optc-DRtsWay="rts_v"' -optc-O2 -Irts -Wno-deprecated-flags

In file included from includes/Rts.h:181:0: error:
    0,
                     from rts/LinkerInternals.h:11,
                     from rts/linker/elf_reloc_aarch64.h:3,
                     from rts/linker/elf_reloc_aarch64.c:4:
includes/rts/storage/Block.h: In function ‘Bdescr’:

includes/rts/storage/Block.h:175:8: error:
     warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
         ((((W_)p &  MBLOCK_MASK & ~BLOCK_MASK) >> (BLOCK_SHIFT-BDESCR_SHIFT))
            ^
    |
175 |     ((((W_)p &  MBLOCK_MASK & ~BLOCK_MASK) >> (BLOCK_SHIFT-BDESCR_SHIFT))
    |        ^

I checked the old system's way of building, in this case, Hash.o, it is:
"inplace/bin/ghc-stage1" -optc-marm -optc-fno-stack-protector -optc-Wall -optc-Wall -optc-Wextra -optc-Wstrict-prototypes -optc-Wmissing-prototypes -optc-Wmissing-declarations -optc-Winline -optc-Waggregate-return -optc-Wpointer-arith -optc-Wmissing-noreturn -optc-Wnested-externs -optc-Wredundant-decls -optc-Iincludes -optc-Iincludes/dist -optc-Iincludes/dist-derivedconstants/header -optc-Iincludes/dist-ghcconstants/header -optc-Irts -optc-Irts/dist/build -optc-DCOMPILING_RTS -optc-DUSE_LIBFFI_FOR_ADJUSTORS -optc-fno-strict-aliasing -optc-fno-common -optc-Irts/dist/build/./autogen -optc-Werror=unused-but-set-variable -optc-Wno-error=inline -optc-O2 -optc-fomit-frame-pointer -optc-g -optc-DRtsWay=\"rts_v\" -static  -O0 -H64m -Wall   -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Irts -Irts/dist/build -DCOMPILING_RTS -this-unit-id rts -dcmm-lint      -i -irts -irts/dist/build -Irts/dist/build -irts/dist/build/./autogen -Irts/dist/build/./autogen           -O2    -Wnoncanonical-monad-instances  -c rts/Hash.c -o rts/dist/build/Hash.o

However, if I run the same command in Hadrian's tree, it will output the same error.

This means the difference is in the environment -- perhaps, we have a bug in one of the generated C headers? There is a lot of CPP and incorrect settings in headers may break CPP conditionals.

perhaps, we have a bug in one of the generated C headers?

Probably. Although I failed to extract compile-time information about the exact size of StgWord and W_,  I manually modified includes/stg/Types.h and includes/Cmm.h. It looks like the warnings about size incompatibility disappeared, but now there will be seemly random core dump:
Error when running Shake build system:
* _build/stage1/libraries/Cabal/Cabal/HSCabal-<IP_ADDRESS>.o
* _build/stage1/libraries/Cabal/Cabal/Distribution/Simple/Program/Ar.o
* _build/stage1/libraries/Cabal/Cabal/Distribution/Simple/Program/Ar.o _build/stage1/libraries/Cabal/Cabal/Distribution/Simple/Program/Ar.hi
* _build/stage1/libraries/bytestring/Data/ByteString/Char8.hi
* _build/stage1/libraries/bytestring/Data/ByteString/Char8.o _build/stage1/libraries/bytestring/Data/ByteString/Char8.hi
* _build/stage1/libraries/bytestring/Data/ByteString/Internal.hi
* _build/stage1/libraries/bytestring/Data/ByteString/Internal.o _build/stage1/libraries/bytestring/Data/ByteString/Internal.hi
* _build/stage1/libraries/ghc-prim/GHC/CString.hi
* _build/stage1/libraries/ghc-prim/GHC/CString.o _build/stage1/libraries/ghc-prim/GHC/CString.hi
* _build/stage1/libraries/ghc-prim/GHC/Types.hi
* _build/stage1/libraries/ghc-prim/GHC/Types.o _build/stage1/libraries/ghc-prim/GHC/Types.hi
* _build/stage1/rts/libHSrts.a
* _build/stage1/rts/c/ClosureFlags.o
user error (Development.Shake.cmd, system command failed
Command: inplace/bin/ghc-stage1 -Wall -hisuf hi -osuf o -hcsuf hc -static -hide-all-packages -no-user-package-db '-this-unit-id rts' -i -i_build/stage1/rts -i_build/stage1/rts/build/autogen -Iincludes -I_build/generated -I_build/stage1/rts -I_build/generated -optc-I_build/generated -optc-marm -optc-fno-stack-protector -odir _build/stage1/rts -hidir _build/stage1/rts -stubdir _build/stage1/rts -c rts/ClosureFlags.c -o _build/stage1/rts/c/ClosureFlags.o -O0 -H32m -optc-Irts -optc-I_build/stage1/rts '-optc-DRtsWay="rts_v"' -optc-O2 -Irts -Wno-deprecated-flags
Exit code: -11
Stderr:
)

By random, I mean the _build/stage1/rts/c/ClosureFlags.o here can be another *.o in RTS.

I think this is already resolved.

The current configure script gets it's CC env vars a bit confused. I'd like to fix that at some point, in which case it would probably be easy to go back to not using GHC here, which I think would be good. I'd hope the same change wouldn't be too hard in the old build system, so it could be done sooner.

Neat, so cross and native alike would benefit. In general, my first priority is upstreaming some nixpkgs changes for cross-building ghc I've already done, which has taken a while and could take a while longer. But I'd be happy to illustrate the changes needed / just do the configure script part more immediately.

Why not teach ghc to output command ... args for non-HS compilation of files. Then hadrian simply would execute those.
Of course this feature should be part of the bootstrapghc sometime.

@ggreif Interesting idea. Indeed, GHC does need to know how to compile non-HS files, because it has to do it when compiling multi-language projects, so it might as well share this information with the build system. (Or maybe there should be a different source of this information, used both by GHC and Hadrian.)

Yeah when cross compiling I would not trust the stage0 GHC to know about how to properly invoke the stage1 CC. Perhaps I don't understand this "multi-language project" case very well, but I'd think that would be a thing for Cabal, too.

I don't understand this "multi-language project" case very well

I simply meant you can do things like ghc --make Main.hs lib.c and GHC will compile both Haskell and C files. For anything more advanced one would certainly use Cabal.

Ah, right. I'd love to deprecate that :).


Influxdb 2.7.7 - Cannot add new Task via GUI

New to Flux and V2.0 but hitting a weird issue with creating new Tasks via the GUI
I have an existing working task. I want to create an identical one but with a different agent host IP. If I copy and paste the working task config it gives me an error "Failed to create new task: Invalid flux script. Please check your query text." when I try and save it
If I use the clone button on the working one and change the IP, give a different name and save it - it works!!!!
I have changed the Task name and tried with and without adding the "option task = {name: "Test2", every: 15m, offset: 0m}"  as the first line. I have also tried copy / pasting the working config to another Influx 2.7 node and it also gives the same error
I've tried copy and pasting it into Notepad++, directly. IS there an known issue with doing tasks this way?
Below is the working Task config - If i paste this into a new task and change the IP to a different IP that is also in the bucket with the same fields etc it will not save. ANy help appreciated
option task = {name: "Test2", every: 15m, offset: 0m}
from(bucket: "telegraf")
|> range(start: -task.every)
|> filter(fn: (r) => r["_field"] == "cvCallVolPeerOutgoingCalls")
|> filter(fn: (r) => r["agent_host"] == "<IP_ADDRESS>")
|> filter(fn: (r) => r["host"] == "homer")
|> filter(fn: (r) => r["index"] == "1")
|> aggregateWindow(every: task.every, fn: mean)
|> to(bucket: "longterm", org: "TEST", fieldFn: (r) => ({"mean": r._value}))

Getting this too. Even the examples from https://www.influxdata.com/blog/downsampling-influxdb-v2-0/ don't work at all


Add two delegate control read video and loaded video

The example for use two delegate

hey @xhzengAIB thanks for the contribution. will check it out.

@xhzengAIB any chance this could be updated to the latest so it can auto merge?


ice4j 3.0 cannot support video content-add when initial call starts with audio only

In an audio call only session, adding the video (content-add) is not working.
Please refer to ConnectivityCheckClient.java source:
After an audio call setup is completed, Agent proceeds to execute ConnectivityCheckClient#stop(), setting the flag stopped = true;
When a video content-add is initiated, startChecks() does not proceed due to stopped == true. This is fixed with the following source changed.
    /**
     * Starts client connectivity checks for the first {@link IceMediaStream}
     * in our parent {@link Agent}. This method should only be called by
     * the parent {@link Agent} when connectivity establishment starts for a
     * particular check list.
     */
    public void startChecks()
    {
        List<IceMediaStream> streamsWithPendingConnectivityEstablishment
                = parentAgent.getStreamsWithPendingConnectivityEstablishment();

        if (streamsWithPendingConnectivityEstablishment.size() > 0) {
            // cmeng (20220613): must init to false to re-active startChecks(), previously stop() when terminated.
            // Otherwise content-add not working with init with audio call
            stopped = false;
            logger.info("Start connectivity checks. Local ufrag " + parentAgent.getLocalUfrag());
            startChecks(streamsWithPendingConnectivityEstablishment.get(0).getCheckList());
        }
        else {
            logger.info("Not starting any checks, because there are no pending streams.");
        }
    }

Does this happen with the Jitsi desktop client? Do you know what Agent APIs it uses when it does a "content-add"?

The problem is observed on aTalk, development is on Ubuntu 22.04. Jitsi desktop failed to install on this ubuntu platform. When using virtualBox, Jitsi cannot recognise the pass-through camera device. Do I am unable to verify Jitsi desktop. However based on the ice4j source, I believe this should happen on Jisti desktop.
With reference to ice4j 3.0 source:
The Agent will scheduleTermination() at the end of the audio call setup since all remote pairing process has completed.
This will set ConnectivityCheckClient#stopped to true;

    /**
     * Initializes and starts the {@link #terminationFuture}
     */
    private void scheduleTermination()
    {
        /*
         * RFC 5245 says: Once ICE processing has reached the Completed state for
         * all peers for media streams using those candidates, the agent SHOULD
         * wait an additional three seconds, and then it MAY cease responding to
         * checks or generating triggered checks on that candidate.  It MAY free
         * the candidate at that time.
         *

         * This method is scheduling such a termination.
         */
        boolean runTerminationImmediately = false;

        synchronized (terminationFutureSyncRoot) {
            if (terminationFuture == null) {
                long terminationDelay = Integer.getInteger(StackProperties.TERMINATION_DELAY, DEFAULT_TERMINATION_DELAY);

                if (terminationDelay > 0) {
                    terminationFuture = agentTasksScheduler.schedule(
                            terminationRunnable,
                            terminationDelay,
                            TimeUnit.MILLISECONDS);
                }
                else {
                    runTerminationImmediately = true;
                }
            }
        }

        if (runTerminationImmediately) {
            terminationRunnable.run();
        }
    }

When user enables video in a audio only call, the app executes the jingle content-add as aspected. From aTalk logcat, I see that all process in video call setup is working correctly. However it does not proceed with the pairing check after

2022-06-14 07:59:40.180 10876-12288/org.atalk.android I/aTalk: [1310] org.ice4j.ice.ConnectivityCheckClient.log() Start connectivity checks. Local ufrag ps6s1g5fo3vfu.

On debug, the whole process does not proceed is due to stopped flag is set to true as explained above. I see that there is no other area the stopped flag get reinit when the following is being called:

2022-06-14 07:59:40.174 10876-12288/org.atalk.android I/aTalk: [1310] org.ice4j.ice.Agent.log() Start ICE connectivity establishment. Local ufrag ps6s1g5fo3vfu

due to
            if (stopped) {
                return;
            }

    /**
     * Starts client connectivity checks for the {@link CandidatePair}s in <tt>checkList</tt>
     *
     * @param checkList the {@link CheckList} to start client side connectivity checks for.
     */
    public void startChecks(CheckList checkList)
    {
        synchronized (paceMakers) {
            if (stopped) {
                return;
            }
            PaceMaker paceMaker = new PaceMaker(checkList);
            paceMakers.add(paceMaker);
            paceMaker.schedule();
        }
    }

// =========== aTalk logcat ===============
2022-06-14 07:59:40.155 10876-32575/org.atalk.android D/SMACK: RECV (0):
    <iq xml:lang='en'<EMAIL_ADDRESS><EMAIL_ADDRESS>type='set' id='FSEHI-25'>
      <jingle xmlns='urn:xmpp:jingle:1'<EMAIL_ADDRESS>action='transport-info' sid='QD8F57XNFAMQUSA7C4BEKBFZ'>
        <content creator='initiator' name='video' senders='initiator'>
          <transport xmlns='urn:xmpp:jingle:transports:ice-udp:1' ufrag='drdmo1g5fo4355' pwd='6kur1rqvnddla7o8i6rkmmtg91'>
            <rtcp-mux/>
            <candidate foundation='1' component='1' protocol='udp' priority='2130706431' generation='0' id='5' ip='fe80::362d:dff:fe00:ae96' port='5001' type='host' network='0'/>
            <candidate foundation='2' component='1' protocol='udp' priority='2130706431' generation='0' id='6' ip='<IP_ADDRESS>' port='5001' type='host' network='0'/>
            <candidate foundation='4' component='1' protocol='udp' priority='1677724415' generation='0' id='7' ip='<IP_ADDRESS>' port='1404' type='srflx' rel-addr='<IP_ADDRESS>' rel-port='5001' network='0'/>
            <candidate foundation='3' component='1' protocol='udp' priority='2815' generation='0' id='8' ip='<IP_ADDRESS>' port='51007' type='relay' network='0'/>
          </transport>
        </content>
      </jingle>
    </iq>
2022-06-14 07:59:40.161 10876-32575/org.atalk.android D/SMACK: RECV (0):
    <r xmlns='urn:xmpp:sm:3'/>
2022-06-14 07:59:40.162 10876-12288/org.atalk.android D/(OperationSetBasicTelephonyJabberImpl.java:955)#processJingle: ### Processing Jingle IQ (transport-info: FSEHI-25); callPeer<EMAIL_ADDRESS>2022-06-14 07:59:40.162 10876-12288/org.atalk.android D/(OperationSetBasicTelephonyJabberImpl.java:1193)#processTransportInfo: ### Process Jingle transport-info (session-accept) media: []; null
2022-06-14 07:59:40.163 10876-12288/org.atalk.android D/(CallPeerJabberImpl.java:873)#processOfferTransportInfo: ### Processing Jingle (transport-info) for media: [video] : FSEHI-25
2022-06-14 07:59:40.164 10876-32574/org.atalk.android D/SMACK: SENT (0):
    <iq<EMAIL_ADDRESS>id='FSEHI-25' type='result'>
    </iq>

2022-06-14 07:59:40.168 10876-12288/org.atalk.android I/aTalk: [1310] org.ice4j.ice.Component.log() Add remote candidate for video.RTP: [fe80::362d:dff:fe00:ae96]:5001/udp/host
2022-06-14 07:59:40.169 10876-12288/org.atalk.android I/aTalk: [1310] org.ice4j.ice.Component.log() Add remote candidate for video.RTP: <IP_ADDRESS>:5001/udp/host
2022-06-14 07:59:40.171 10876-12288/org.atalk.android I/aTalk: [1310] org.ice4j.ice.Component.log() Add remote candidate for video.RTP: <IP_ADDRESS>:1404/udp/srflx
2022-06-14 07:59:40.172 10876-12288/org.atalk.android I/aTalk: [1310] org.ice4j.ice.Component.log() Add remote candidate for video.RTP: <IP_ADDRESS>:51007/udp/relay
2022-06-14 07:59:40.174 10876-12288/org.atalk.android I/aTalk: [1310] org.ice4j.ice.Agent.log() Start ICE connectivity establishment. Local ufrag ps6s1g5fo3vfu
2022-06-14 07:59:40.175 10876-12288/org.atalk.android I/aTalk: [1310] org.ice4j.ice.Agent.log() Init checklist for stream video
2022-06-14 07:59:40.177 10876-12288/org.atalk.android D/aTalk: [1310] org.ice4j.ice.IceMediaStream.log() Checklist initialized.
2022-06-14 07:59:40.178 10876-12288/org.atalk.android I/aTalk: [1310] org.ice4j.ice.Agent.log() ICE state changed from Waiting to Running. Local ufrag ps6s1g5fo3vfu
2022-06-14 07:59:40.180 10876-12288/org.atalk.android I/aTalk: [1310] org.ice4j.ice.ConnectivityCheckClient.log() Start connectivity checks. Local ufrag ps6s1g5fo3vfu


builder returns success when new release fails to deploy

When deploying a new release of an app but it fails mid-way due to a scheduler error like failed to create some containers, the builder will still return success. The indicator to see if the app failed is by checking which version was deployed. For example, when deploying v2:
done, foo:v1 deployed to Deis

Will be displayed when the app failed to be scheduled.

@krancour We should look into this as part of the battle testing mandated by #4222

@carmstrong-- agreed.

+1 This is also true when the app being updated fail to pass healthchecks

closing as irrelevant for v2


switch linux x64 builds to use docker

Swaps all <15 hotspot builds to use the centos6 build image (https://hub.docker.com/r/adoptopenjdk/centos6_build_image)
Also adds codebuild machines to handle the docker images (saves us maintaining any docker only machines.
This PR technically allows us to use a docker build environment for any architecture that supports docker.
I'm currently not doing this on OpenJ9 because it requires CUDA which bloats the docker image substantially, I'm working on a solution for that.

blocked by https://github.com/AdoptOpenJDK/openjdk-infrastructure/pull/1418

https://ci.adoptopenjdk.net/job/build-scripts-pr-tester/job/openjdk-build-test-pr/375/console

Those failures are not related to my PR, they came in a recent PR which @douph1 is fixing I think

I'm currently not doing this on OpenJ9 because it requires CUDA which bloats the docker image substantially, I'm working on a solution for that.

See the --cuda option of mkdocker.sh which adds about 20MB to the images instead of more than 1GB if built on top of nvidia/cuda:9.0-devel-ubuntu16.04, for example.

See the --cuda option of mkdocker.sh which adds about 20MB to the images instead of more than 1GB if built on top of nvidia/cuda:9.0-devel-ubuntu16.04, for example.

@keithc-ca is there a way of modifying our ansible cuda role to simply do that?
Alternatively, I can add that directly to our dockerfile here (https://github.com/AdoptOpenJDK/openjdk-infrastructure/blob/master/ansible/Dockerfile.CentOS6) but I'mn trying to avoid adding dependencies directly there.

https://ci.adoptopenjdk.net/job/build-scripts-pr-tester/job/openjdk-build-test-pr/375/console

Those failures are not related to my PR, they came in a recent PR which @douph1 is fixing I think

@gdams I really don't know what it is about ..


Let download link points latest release

As @kaunteya mentioned in #4, let download link points latest release
Ref

That was fast. Thank you


Flaky Test: ConnectionResetMidRequestIsLoggedAsDebug

[12:12:42] :		 [Test collection for Microsoft.AspNetCore.Server.Kestrel.FunctionalTests.RequestTests (1)] ConnectionResetMidRequestIsLoggedAsDebug (1m:09s)
[12:12:42] :	 [Step 3/4]   The active test run was aborted. Reason: Unable to communicate with test host process.

ConnectionResetMidRequestIsLoggedAsDebug [FAIL]
  Assert.True() Failure
  Expected: True
  Actual:   False
  Stack Trace:
    RequestTests.cs(441,0): at Microsoft.AspNetCore.Server.Kestrel.FunctionalTests.RequestTests.<ConnectionResetMidRequestIsLoggedAsDebug>d__14.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

Repros
4/25/17: http://aspnetci/viewLog.html?buildId=208284&buildTypeId=Lite_UniverseTest&tab=buildLog&filter=err

I'm guessing this is https://github.com/aspnet/KestrelHttpServer/issues/1761

@mikeharder did you see this after #1761 was resolved?

Still happening a log in Windows kestrel stress test configuration

Just happened again today: http://aspnetci/viewLog.html?buildId=255643&tab=buildResultsDiv&buildTypeId=Lite_UniverseTest

This is causing a lot of failures in our 2.0 builds.  Would be great if this can be fixed before 2.0 RTM.


Feature for supporting hasMany property in text field

Description

Implemented a feature for handling hasMany property for text fields to store array of string.
https://github.com/payloadcms/payload/discussions/4393
[ ] I have read and understand the CONTRIBUTING.md document in this repository.

Type of change

[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Change to the examples directory (does not affect core functionality)
[ ] This change requires a documentation update

Checklist:

[ ] I have added tests that prove my fix is effective or that my feature works
[ ] Existing test suite passes locally with my changes
[ ] I have made corresponding changes to the documentation

I already worked on the same issue and I also reviewed your changes. I noticed that in the payload-types.ts the type for the hasMany, validateHasMany and so on is still string | null in my case it was set to string [] | null as I also included some changes in the "buildObjectType", "configToJSONSchema", and "buildMutationInputType". Maybe you want to have a look at my forked repo or give me access to work on the PR so I can also include those changes and the unit test I wrote @Gokulsck

@Cuzart I gave you the access could you please check?

I handled the cases for the schemas similar to the ones found for number field with has many and fixed the type generation.
I changed some code in validations.ts which was causing an unit test to fail and also added one unit test and an e2e test for hasMany on text fields.
The change for postgres seems pretty straightforward but you might consider renaming hasLocalizedManyNumberField to something more general to include the text field as well.

I already worked on the same issue and I also reviewed your changes. I noticed that in the payload-types.ts the type for the hasMany, validateHasMany and so on is still string | null in my case it was set to string [] | null as I also included some changes in the "buildObjectType", "configToJSONSchema", and "buildMutationInputType". Maybe you want to have a look at my forked repo or give me access to work on the PR so I can also include those changes and the unit test I wrote @Gokulsck

@Cuzart payload-types.ts is auto-generated not modified manually.

Sure, I know I did not manually modify it. I have run the generate-types script and modified the utility that is used to generate the file configToJSONSchema @Gokulsck

Sure, I know I did not manually modify it. I have run the generate-types script and modified the utility that is used to generate the file see configToJSONSchema.ts @Gokulsck

Ok. And the changes for Postgres db adapter is not very straightforward. Could you please check on that?

Yes you are right as I got more into it, it is not really straightforward. I am on it and got it working with postgres now but some tests are still failing so I have to do some more work here.

I tested it with postgres running locally all unit and e2e seem to run fine I guess that should be it and ready to be reviewed @DanRibbens . Hope I did not miss anything.

Just a note that it seems you guys have updated the docs before actually creating a new release with these changes. This caused me a bit of confusion when trying to use the hasMany option as currently documented here


After clicking on a notification, focus on ShellExperienceHost.exe is never relinquished

All the context for this issue can be found here: https://stackoverflow.com/q/68522402/61624
I will inline that information:
I want a cygwin shell script to create a Windows notification (one of those events you see in the lower right-hand corner). When you click on the notification, I want it to bring another application into focus.
Here's how I'll use this: from the command line, I'll run tests. When they finish, I want to be notified by that with the notification.

Okay this was a huge pain to figure out, so it's worth writing down somewhere to help others. It's not hard to create a notification. It's not hard to focus an application. But it is hard to create a notification that focus is a window when clicked.
First I will start with the script:
set -ex

notification_exit_code=0 # default value, exited successfully
# create a notification that says "Build Done". When notifu64 exits, it's exit code tells why it exited (see below)
notifu64.exe /i 'C:\\cygwin64\\Cygwin-Terminal.ico' /t info /p "Build Done" /m "Build Done" || notification_exit_code=$?

# these are some of the ways the notification could have exited
user_clicked_on_notification=3
notification_timeout=4
user_clicked_on_notification_icon=7
if [[ "$notification_exit_code" -eq "$user_clicked_on_notification" ]] || [[ "$notification_exit_code" -eq "$user_clicked_on_notification_icon" ]]
then
  # The order of the steps is very important or else the window will remain in the background. I figured out these steps from here: https://stackoverflow.com/a/59819671/61624
  nircmd win activate process mintty.exe
  nircmd win settopmost process mintty.exe 1
  nircmd win settopmost process mintty.exe 0
  nircmd win focus process mintty.exe
  # I'm not sure why, but "activate" resizes the window. This puts it back the way it always is on my computer: maximized
  nircmd win max process mintty.exe
fi
if [[ "$notification_exit_code" -eq "$notification_timeout" ]]
then
  # this makes the taskbar icon highlighted to remind me that the build is done even if I don't want to look at it immediately
  nircmd win flash process mintty.exe
fi

notifu64.exe is a commandline tool that can create windows notifications.
nircmd is a commandline tool that can control various aspects of the Windows operating system. In this script, I use it to control application windows.

This is 99% of the way there. The problem is the window still doesn't have focus, even though it brings it to the front. You actually have to click on it. It's the ShellExperienceHost.exe that maintains focus, and I can't figure out how to stop that from happening.

I'll see what I can do, running with a message spy. There is a reasonable chance that mintty.exe is part of the problem. I'll compare the Windows messages sent back and forth with plain old cmd.exe.


Tempus-895: hybrid db support for prod

…database setup docker image container name.
Thank you for submitting a contribution to Tempus.
In order to streamline the review of the contribution please
ensure the following steps have been taken:
For all changes:

[x] Is there a Waffle ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with Tempus-XXXX where XXXX is the waffle number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically dev)?

[x] Is your initial contribution a single, squashed commit?

For code changes:

[x] Have you ensured that the full suite of tests is executed via mvn clean install at the root Tempus folder?
[x] Have you written or updated unit tests to verify your changes?
[x] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] Have you added documentation for any UI or API related changes to the /docs folder

For documentation related changes:

[x] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

some more cassandra-setup  occurrences
root@prem-Latitude-5590 /h/p/D/t/Tempus# grep -R "cassandra-setup" .
./docker/k8s/openstack-rancher/cassandra-setup.yml:  name: cassandra-setup
./docker/k8s/openstack-rancher/cassandra-setup.yml:  - name: cassandra-setup
./docker/k8s/openstack-rancher/cassandra-setup.yml:    image: hashmapinc/cassandra-setup:dev
Binary file ./.git/objects/pack/pack-3d802152b75072abf0cf2c2b8a9986dc20447031.pack matches
Binary file ./.git/index matches
./Jenkinsfile:cp $WORKSPACE/application/target/tempus.deb $WORKSPACE/docker/cassandra-setup/tempus.deb'''
./Jenkinsfile:sudo docker build $WORKSPACE/docker/cassandra-setup/ -t hashmapinc/cassandra-setup:dev'''
./Jenkinsfile:sudo docker push hashmapinc/cassandra-setup:dev

to recursively replace all
sed -i -e 's/<search term>/<replace term>/g' <file or directory>


feat(FMP-414): include transaction hashes on job card

Current dependencies on/for this PR:

main

PR #76   👈

This comment was auto-generated by Graphite.


Noticing particular error in Raspberry pi 4 using coral usb accelerator

Memory  :  16gb sd card
Edge Tpu compiler version:  14
Library : pre-build library in this git (arm 7a)
Tensorflow version:  1.15.2
    During inference the following is noticed in raspberry pi(Nuke OS). Following error

ERROR: Failed to execute request. Unable to find input for layer norm_lized_input_image_tensor.
ERROR: Node number 0 (edgetpu-custom-op) failed to invoke
Appreciate if anyone could solve this issue .

@BalajiElumalai27 I havent seen this before, which pi version and OS are you using?

**
Raspberry model =  Pi4
Ram = 8gb ram
OS = noobs
using command cat /etc/os-release it shows
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"**
 I have used for 6 months but currently this issue occurs in rasphberry but same code runs in desktop (x86) working fine. I glad you replied, please let me know how to solve. I debug line by line its show in  **tflite_wrapper.cc** file -> funtion(**TfLiteWrapper::RunInference**)->Line( **m_interpreter->Invoke()**)

@BalajiElumalai27 What happen if you use the CPU model instead of the edgetpu, issue still occurs?

If i use cpu model it works fine. I worried because of that this issue occurs only when i using tpu model. I refer this link as source code  https://github.com/Namburger/edgetpu-detection-camera

Occasionally noticed this issue also  malloc(): unsorted double linked list corrupted
Aborted

just to clarify, this is happening with the CPU model too?

Occasionally noticed this issue also malloc(): unsorted double linked list corrupted
Aborted

just to clarify, this is happening with the CPU model?

Occasionally noticed this issue also malloc(): unsorted double linked list corrupted
Aborted

Yes this happening with CPU model also.

Memory : 16gb sd card
Edge Tpu compiler version: 14
Library : pre-build library in this git (arm 7a)
Tensorflow version: 1.15.2
    During inference the following is noticed in raspberry pi(Nuke OS). Following error

ERROR: Failed to execute request. Unable to find input for layer norm_lized_input_image_tensor. ERROR: Node number 0 (edgetpu-custom-op) failed to invoke
Appreciate if anyone could solve this issue .

Is there any solution for this issue? Please let me know.

@BalajiElumalai27 could you send a stack trace? just want to know the exact point where this error is happening.
Jut run it in gdb until it fails:
$ gdb ./process_name
$ r
# FAILED
$ bt

Then post the outputs here. Thanks

I found the error came, it occurs when edgetpu library installed in system path and i referred in Libpath were different version.
When i remove edgetpu library in system path its working. This solution is for  malloc(): unsorted double linked list corrupted
And when i remove uuid preinstalled in system lib folder application works fine without this issue ERROR: Failed to execute request. Unable to find input for layer norm_lized_input_image_tensor.
ERROR: Node number 0 (edgetpu-custom-op) failed to invoke
Thanks for reply @Namburger

Looks like the issue has been fixed. Marking it closed. Feel free to reopen if the issue still persists.


Landing page: Knowledge resources list

Create a new component to list the available Knowledge Resources in a Knowledge Package. This new component can provide the following features:

sort (e.g., Publication date);
group (e.g., Type, Relation, Date);
filtering (e.g., full text, type).

This will be moved to the geo-deposit-react


Inquiry about the Inclusion of Stitcher Class in opencv-spm

Hello! I have been utilizing the opencv-spm library for an image processing project and came across a requirement to perform image stitching. In the standard OpenCV C++ library, the Stitcher class is typically used for this purpose. However, I noticed that this class seems to be absent from the Swift package.
Could you please confirm whether the Stitcher class is included in the opencv-spm library? If it is not included, are there any plans to support this class in future releases? Alternatively, could you suggest another approach to achieve image stitching within the Swift environment?
Thank you for your time and assistance!

You need to incorporate a wrapper class into your project to make use of it.. I have provided a demonstrative use case of the Stitcher in this sample project: https://github.com/yeatse/opencv-spm-example/tree/stitching


"et al." not applied after the first use of citation

Component:

VSCode Extension

Extension version: 0.13.0
OS version and name: macOS 14.5
I am on the latest stable version of the extension/LSP.
I have searched the issues of this repo and believe that this is not a duplicate.

Issue
If using a style like "apa" in bibliography, the first instance of a citation correctly truncates the number of authors with "et al.", but any additional instances of that citation include all author names.
Thanks very much for your work to maintain this repo! It is much appreciated.

This should probably be transferred to typst/typst, typst/hayagriva or citation-style/styles. Could you provide a MWE?

No, this is not an issue for typst (or tinymist, which I have since switched to because of this issue), just for the typst-lsp vscode extension.
MWE is just as I said, use a citation twice with "apa" for bibliography. For a file citations.yml containing the following:
Roche_2012a:
    type: Article
    title: "Linking community and disease ecology: the impact of biodiversity on pathogen transmission"
    author: ['Roche, Benjamin', 'Dobson, Andrew P.', 'Guégan, Jean-François', 'Rohani, Pejman']
    date: 2012-10
    page-range: 2807-2813
    parent:
        title:
            value: "{Phil. Trans. R. Soc. B}"
        volume: 367

... an a typst file containing the following:
@Roche_2012a

@Roche_2012a

#bibliography(
  "citations.yml",
  style: "apa"
)

... typst online and tinymist both render the two citations as (Roche et al, 2012), but typst-lsp adds all authors but just to the second citation.

No, this is not an issue for typst (or tinymist, which I have since switched to because of this issue), just for the typst-lsp vscode extension.

This is a typst issue. It's just that typst-LSP is still on 0.11.0, where that bug hadn't been fixed yet.

I see, I appreciate the info. Will close this issue.


Subflow - deleting subflows from palette is non-intuitive

I think there is currently no option to remove subflows from the palette.

good to have this thread  to actually do that! Thanks


Update dependency poetry-dynamic-versioning to ^0.23.0

This PR contains the following updates:

Package
Type
Update
Change

poetry-dynamic-versioning
dependencies
minor
^0.22.0 -> ^0.23.0

Release Notes

mtkennerly/poetry-dynamic-versioning
v0.23.0
Compare Source

Added:

CLI enable subcommand to enable the plugin in pyproject.toml.
Support for POETRY_DYNAMIC_VERSIONING_OVERRIDE environment variable.
mode option for substitution to support __version_tuple__ style.

Changed:

CLI: poetry dynamic-versioning now outputs a summary of the changes,
the same way that poetry-dynamic-versioning already did.

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

/lgtm


Cancel "Interactive Pop Gesture" to get into a bad state

@jessesquires
I've encountered a 100% reproducible way to:

Have the scroll to dismiss keyboard stop working
Have the input toolbar detach from the keyboard

Steps:

Pop up keyboard
pull down (to hide) the predictive text
switch to emoji keyboard
start the interactive pop gesture
cancel the interactive pop gesture (do not finish)

Results:

keyboard reset to A-Z, but predictive doesn't reappear, so the toolbar floats detached from keyboard
scroll to dismiss the keyboard will not function

fortunately I know exactly why this is happening.
The fix for #257 introduced this behavior.
Regarding #257
@cswelin

when called from the viewDidDisappear doesn't actually remove the target action as the navigationController is nil by this point.

Great detective work there!
How does the fix for #257 (acb32dc8ae99) cause the issue?
The Interactive Pop gesture recognizer calls viewWillDisappear.
With this change, viewWillDisappear removes our action on the interactive pop gesture recognizer after the Begin state so we never get any changed/ended/cancel states.
Then if the user cancels the Interactive Pop, we do not get the notification.
There is some important logic that goes on in jsq_handleInteractivePopGestureRecognizer under the switch case of UIGestureRecognizerStateCancelled & UIGestureRecognizerStateFailed.
Could we resolve #257 & this issue by capturing the navigationViewController (or the interactivePopGestureRecognizer) at the time we addTarget and then remove-target at viewDidDisappear time ?

FWIW... the Emoji keyboard step is not required to break the scroll-to-dismiss., so please don't pigeon hole this as a "super rarely happens" bug. As often as the interactive pop gesture is cancelled, the JSQ VC is left in a broken state.

Thanks @walsh2000 ! :smile: :tada:


Backslash in windows paths?

When I declare a variable in a justfile like foo = 'C:\bar\baz' and later use it in a recipe, e.g. in a cp command, it gives an error like file 'C:barbaz' not found because it removed the backslashes for some reason.
It works when I replace backslashes by forward slashes but what's the right way to use backslashes?

Currently, just uses sh, the Unix shell to execute commands, which on Windows comes with a compatibility layer to translate unix-style forward slash delimited paths into windows-style backslash delimited paths. So, right now Unix style paths should be used in recipes.
For the c drive, I think it'll be at /c. Relative paths should work if you replace backslashes with forward slashes.

I think the solution I'm leaning towards here is to allow a justfile-wide configuration option that determines the shell that is used to execute commands.
So you could do something like the following to use cmd.exe:
set shell := ["cmd.exe", "/C"]

foo:
  dir

So closing in favor of some combination of #361 and #326.


Add volume snapshots feature

This patch set adds code for the volume snapshots support. The code comes from github.com/rootfs/snapshot master branch. In order to make the new code compile there are updated vendor dependencies. I have also modified the Makefile by adding new target for snapshots and also traditional "all" target to compile everything in the tree.
cc: @rootfs

Sorry for the failed tests. Will fix that.

@tsmetana given how excessive/annoying golint can be, I am going to look into copying upstreams hack/.golint_failures so that we can exempt snapshots from it

OK. Thank you. I will fix the easy ones (gofmt) and the "errors" ignoring the "warnings" for the moment.

i've opened https://github.com/kubernetes/repo-infra/pull/43, if nobody responds today I'll just patch our repo-infra myself

okay, patched
rebase onto master, then add a line snapshots or lines snapshots/foo snapshots/bar to a new file .golintignore at the root of external-storage, and golint will stop complaining.

OK... I definitely must not have done that correctly.

no, it's working, golint isn't running on snapshots anymore. But there's deadcode, vetshadow and gocyclo, which I don't think upstream runs hence the errors

I think upstream only runs govet, of the four gometalinters https://github.com/kubernetes-incubator/external-storage/blob/master/repo-infra/verify/go-tools/verify-gometalinter.sh
have to wonder why repo-infra imposes stricter requirements than upstream but oh well. I guess there needs to be a way to skip  not just golint but the other ones too, I will work on it.

k, https://github.com/kubernetes-incubator/external-storage/pull/342 is merged. next tests should pass...

need boilerplate :( can run make verify locally to see what the ci is complaining about.
Will merge asap afterwards :)

merging, pls consider https://github.com/kubernetes-incubator/external-storage/pull/331#discussion_r137557534 at a later date, a new identity every time means if the snapshot provisioner restarts it will avoid deleting old snapshots which is maybe overly cautious

Thanks. I'll take a look at the provisioner name.


Refactor Dropdowns for Neos 2.0-dev

PS. Watch out not to hit this issue: #27

I now fully understand how it works (thanks to your explanation), but don't understand in what way would you like to refactor it. Of course your solution is rather hackish, but I don't know how to do it better.
I would leave it the way it is.


LED flickering when connected to certain devices.

LEDs rapidly cycle through colors and flash when a controller is connected to specific devices.
Video Example 1 -  0.4.3
(brightness and flashing warning)
Video Example 2 -  0.5.2
This behavior has been found to be exhibited when connected to the following devices.
Thunderbolt 3 Port
Playstation 3
Playstation 4
Toggling X-input/D-input/Switch mode does not alter the behavior. LEDs glitch out on the aforementioned devices, but  behave normally on other platforms.
On 0.5.2 this behavior is consistent across all LED modes and settings. On 0.4.3 it has the same issue, but behaves slightly differently.
(brightness and flashing warning)
Video Example 3 -  0.4.3
The chasing animation plays out, but it stutters and each LED rapidly cycles through colors. The static themes have some degree of stability and only show brief, intermittent flickering. The static rainbow theme is the most stable with little to no flickering.  The static themes will start to destabilize as the brightness is decreased. Low enough brightness settings will present behavior consistent with what occurs on 0.5.2 in all LED modes.

Thank you for the report @SneakySpec ,
We will take a look at this when we have time and I will see if I can replicate on my own.

Hey @SneakySpec,
I went out and bought a PS3 and am not able to replicate this on mine.
I have tried a few different RP2040 setups and all are displaying the LEDs as expected.
Can you please let me know what device you are having this issue with, what mode it is, which plug is being used / etc?

Going to close this as unable to reproduce.  @SneakySpec if you can get in touch with me via Discord we can talk more about it.
I was watching the video again and am wondering if you have some power delivery issues on the 5v line causing this.


memory leak issue

I found that  when finish play sound , the audio clip didn't release, when I check unity profiler , it referenced by ManagedStaticReferentces( ).

I am glad you found what was wrong.
Could you please elaborate what was your mistake? In case others run into the same issue again.


sentry-cli command not found

For some reason, my runner still can not find my sentry cli command...
My github action config:
	- name: Setup Sentry CLI
        uses<EMAIL_ADDRESS>        with:
          version: latest # optional if 'latest'
          url: https://sentry.io
          token: ${{ secrets.SENTRY_AUTH_TOKEN }} # from GitHub secrets
          organization: itexperts
          project: webreporttool

The result in the action runner (which looks good to me):

When actually calling the sentry-cli command:

Am I missing something here?

Please update to the latest version 1.0.0, it may be related to GHSA-mfwh-5m23-j46w](https://github.com/actions/toolkit/security/advisories/GHSA-mfwh-5m23-j46w)

@mathieu-bour
got this exact same issue while using action on mac-runner... works perfectly fine on windows-runner

I'll take a look on this one, seems that this repo need a bit of polish.

This problem should be fixed in<EMAIL_ADDRESS>Feel free to open a new issue @AtiqGauri if you have any further problem.
Thank you for using my action!

I experienced a similar command not found issue running the setup-sentry-cli action inside a separate "setup" composite action and trying to access sentry-cli from within my main workflow. I worked around it by moving setup-sentry-cli action into my main workflow.


Bad type checking for GenericType vs GenericType

TypeScript Version:  3.7.0-dev.20191006

Search Terms: covariance, subtype, inference, value type (... honestly I have no idea what the right term for "false when used as a type"  is, it's... probably not this though).
Code:
class Grid<T> {
    constructor(width: number, height: number, defaultFill: T) { }
    // some function which either behaves as a fill or an in-place equivalent of map, for example
    fillWith(valueOrCallback: T | ((current: T, x: number, y: number, idx: number) => T)) {}
}

function takesBoolGrid(grid: Grid<boolean>) { }
// This causes a type error
takesBoolGrid(new Grid(16, 16, false));

// But this doesn't
let g = new Grid(16, 16, false);
takesBoolGrid(g);

Expected behavior: The code above should typecheck. Or, at the very least, both cases should fail, instead of assigning to an intermediate variable fixing the issue.
Actual behavior: I get an error like the following on the first call to takesBoolGrid:
Argument of type 'Grid<false>' is not assignable to parameter of type 'Grid<boolean>'.
  Types of property 'fillWith' are incompatible.
    Type '(valueOrCallback: false | ((current: false, x: number, y: number, idx: number) => false)) => void' is not assignable to type '(valueOrCallback: boolean | ((current: boolean, x: number, y: number, idx: number) => boolean)) => void'.
      Types of parameters 'valueOrCallback' and 'valueOrCallback' are incompatible.
        Type 'boolean | ((current: boolean, x: number, y: number, idx: number) => boolean)' is not assignable to type 'false | ((current: false, x: number, y: number, idx: number) => false)'.
          Type 'true' is not assignable to type 'false | ((current: false, x: number, y: number, idx: number) => false)'.(2345)

Playground Link: https://www.typescriptlang.org/play/?ts=3.7-Beta&ssl=1&ssc=1&pln=14&pc=1#code/MYGwhgzhAEDiBOBLAJgHgCoD5oG8CwAUNMdMAPYB2EALvAK7DVnwAUA7itQBYBc0FdALYAjAKbwANNC6jEAcy7U+AkeKnJRAMzB0Q1AGKIQIPugCUuaAF9CJaAHp70CGUGjomuhUaJK0NlyIwFzQstzi0GJcYABuojCQ0GAeRiDQzEkU0IgUALQADuDA7qIAjnSIMWAgohTU6ZrQgmD5UpoZogAeYIKForYkmqkA6ojcLFUgdKIA8vAAwtUgwmDAANam0AA+0CwswHTw8LVK0OhSncpCYpLQAJ5Xqrcol-zX4hYAvNjmFjg2BABhE83moviy1DAa3iACEyGQQAgUCw5EhkHwkWhhPCamAKJg-tZCI4zoEYMAdBB4kloNQ7vkSkdmIRIdCIHCEZiWBRRGw4GiWABGABsUhFbWqVLMZgA3IRiU4YXR6txEDBkGR4hQAOTUQg1epyaCffi8-nI8XQS3aEBSuUEVmwnFcuSywhAA
Related Issues:  I looked, but sadly my search terms quickly brought me to a bunch of issues that assume more familiarity with tsc (and type system jargon, probably) than I have. (This is probably because the only terminology I have for describing this problem is, well, type system jargon that I only barely can say I understand).

Some notes that don't fit above which might help, possibly: this code used to work in like, typescript 2.something (I could probably find out which version it was on Monday if it would help).
I updated the code to the new typescript, and got this error, and assumed it was just typescript getting updated with some stricter behavior around variance. I complained online, and was asked to produce an example, and it turned out that the issue was weirder than I had though, as:

It only errored if the fillWith function was present
It didn't error if I assign the Grid to an intermediate variable.

Point 2 seems weird, so I decided to file a bug.
Note that (IMO fairly unsurprisingly) the expression takesBoolGrid(new Grid<boolean>(16, 16, false)) type checks fine, e.g. if the type is listed explicitly, no intermediate variable is needed.  Who knows... (hopefully someone here!)

Could well be caused by #29478, and this may be a duplicate of  #30390.
It seems that the argument type in the signature of takesBoolGrid is contextually typing the argument which prevents widening of false. The problem is that Grid is invariant in T, so restricting to false rather than widening to type boolean makes the types unrelated.
Not really sure how best to fix this. I wonder if variance markers can be used to control widening: a boolean type that instantiates an invariant type parameter should not produce a non-widening contextual type.

type checking for GenericType<boolean> vs GenericType<false> is working as intended. See example here:
type Foo<T> = (x:T) => T // Foo in T is invirant

declare let foo: Foo<false>

declare let bar: Foo<boolean>

foo = bar; // Error;

bar = foo; // Error;

I think both cases should fail. Because Grid is invariant in T.

@xiaoxiangmoe Ideally the type would be inferred as Grid and not Grid here.

This is a duplicate of #30390.


Android - Never-ending loading circle appears above one of images

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Issue found when executing PR https://github.com/Expensify/App/pull/18485
Action Performed:

Login to NewDot
Open any chat
Upload images with width less than 40 pixels
Upload a couple more images

Expected Result:
Images should be well displayed in chat
Actual Result:
Never-ending loading circle appears above one of images
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: No
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/542a7309-56af-4ef1-8598-5759f1be1138
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

maybe same root cause as #16046

Agree @hellohublot - reached out in https://github.com/Expensify/App/issues/16046 to see if these are the same.

Confirmed - This is the same root cause as https://github.com/Expensify/App/issues/16046#issuecomment-1546028232 - closing this without action.


Adding metadata to crossplane.yaml

Adding basic metadata to crossplane.yaml to improve package discovery/browsing in a registry.

I changed the maintainer to Crossplane Maintainers<EMAIL_ADDRESS>are we all set?

Also, did you already say that you tested this and it worked for your scenario @rbwsam?

Also, did you already say that you tested this and it worked for your scenario @rbwsam?

This the format that I have been using yes.


The "current time" green line shows time incorrectly after clicking Back and Next buttons

Hi guys!
I have found a bug.
This is related to the "current time" green line.
You can reproduce it in Demo app here:
http://intljusticemission.github.io/react-big-calendar/examples/index.html
Green line shows time correctly:

But if you click Back button and after that click Next button then green line shows current time incorrectly:

Or may be can somebody suggest a workaround?

See the following issue https://github.com/intljusticemission/react-big-calendar/issues/1081 and the PR https://github.com/intljusticemission/react-big-calendar/pull/1082


wideresnet object has no attribute 'model'

Hello, I'm glad to hear that you found my paper interesting.
Regarding the error I encountered while running the code,
even though I followed the instructions in the readme and made sure the virtual environment version matches,
err message is..
Traceback (most recent call last):
File "/root/workspace/code/rmt/classification/test_time.py", line 483, in
evaluate('"Evaluation.')
File "/root/workspace/code/rmt/classification/test_time.py", line 78, in evaluate
model, param_names = setup_rmt(base_model, num_classes)
File "/root/workspace/code/rmt/classification/test_time.py", line 409, in setup_rmt
rmt_model = RMT(model, optimizer,
File "/root/workspace/code/rmt/classification/methods/rmt.py", line 54, in init
self.feature_extractor, self.classifier = split_up_model(model, arch_name, self.dataset_name)
File "/root/workspace/code/rmt/classification/models/model.py", line 313, in split_up_model
if hasattr(model.model, model.model.pretrained_cfg["classifier"]):
File "/root/anaconda3/envs/rmt/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1269, in getattr
raise AttributeError("'{}' object has no attribute '{}'".format(
AttributeError: 'WideResNet' object has no attribute 'model'
could you please provide more information about the error message and what step you were trying to execute?
best

Hello HoJ00n2,
thank you very much for pointing out the bug. It's fixed now.
Out of curiosity, which paper is yours?
Best,
Rob

thank you for your notice!
oh I'm sorry first line's  "my paper" is mistake.
I mean your paper is very interesting!


Helper class to keep enable autocomplete of the columns in notebooks

When working on the notebook I am always annoyed that column names do not autocomplete in all scenarios.
dataframe = pd.DataFrame({'COL1':[1,2,3],'COL2':[2,3,4]})
When typing
dataframe['CO       <--- The notebook will suggest COL1 and COL2 when pressing TAB
but im lost when using
pd.pivot_table(index='CO   <--- No chance
My workaround is the following class, which creates an object that binds itself to a given DataFrame and keeps track of the columns
class Columns:
    import threading
    def __init__(self, df):
        self._df = df
        self._update()

    def _update(self):
        self.__dict__.update({d:d for d in self._df.columns.tolist()})
        threading.Timer(3, self._update).start()

So now i use the object to autocomplete columns
C= Columns(dataframe)

pd.pivot_table(index=C.CO   <--- Yay! Autocomplete works again

Do you know of any better solution? And if not... maybe something like this can be included out-of-the-box in pandas for notebook users?

Your specific case might be hard since pd.pivot_table is a top-level function, so pretty much anything could go into those arguments.
OTOH something like pd.DataFrame.pivot_table might benefit from a richer tab complete protocol since the suggestions for DataFrame.piviot_table(index=...) could come from self.index. I've looked a bit into  what IPython can offer here, but haven't found much. Would be curious to see if you find anything.

There isn't a hook in IPython for selecting completions specially based on the function or kwarg being completed-for. But for completing on objects, __dir__ is used, so your Columns workaround can at least avoid its thread:
class Columns:
    def __init__(self, df):
        self._df = df

    def __dir__(self):
        return self._df.columns.tolist()

    def __getattr__(self, key):
        if key not in self._df.columns:
            raise AttributeError(key)
        return key

Even if there were a way for pivot_table to say "look at column names of DataFrames", where to find those data frames would be the next hurdle. If it were a method, there's more hope that custom kwarg-complete hook could help, but that doesn't exist, yet.

@minrk  thanks for getting rid of the thread ;).
So shouldnt df.pivot_table as @TomAugspurger  mentions be able to use the autocompletion? Or is it not possible because  pivot_table is a method and not an object itself?
Another workaround is pd.pivot_table(index=df.COL1.name... etc) but it is longer and requires 2 tab completions

Right now tab completion on the arguments to a function look up objects in the global namespace (plus maybe some other things like paths?). Since the index labels aren't in the namespace they aren't available for tab completion.
In principle letting the method say "Hey, I know the argument to index= should come from self.index" is possible, but would require (I'm guessing) a lot of work on the Jupyter and IPython kernel side.

but would require (I'm guessing) a lot of work on the Jupyter and IPython kernel side

Not necessarily a lot, but some. We already find the callable in order to get completion on the keywords:
df.pivot_table(ind<tab> -> df.pivot_table(index=)

which means we should already have a handle on the method and the key. So what's missing is a hook for "I know I'm completing a kwarg value, ask the callable what it should be." I'm not sure what would be a sensible way to ask that question, though. The obvious choice is a _ip_complete_kwarg_(keyword) method on the callable, but that would be a method on the pivot_table method, which is pretty weird.

That's where my mind was going, or some kind of decorator that attaches the relevant completion method to the original method.
@_ipy_complete_kwarg(index, options=lambda self: self.index.tolist())
@_ipy_complete_kwarg(columns, options=lambda self: self.columns.tolist())
def pivot_table(self, index, ...):
   ...

Adding that those to a codebsae would be fun :)
Anyway, something like this would be nice for libraries like pandas that are used interactively, but IMO it's not a essential.

One option in this case - less flexible, but much less code - define a method on index, so df.method(index= <tab> calls in to df.index to get a list of options. That could be defined on any attribute of df; i.e. df.method(foo= <tab> calls df.foo. _ipy_complete_kwarg() or the like.

One issue with that is something like DataFrame.rename(index=...) has a different set of allowed arguments then DataFrame.pivot_table(index=...). Tricky problem.

One issue with that is something like DataFrame.rename(index=...) has a different set of allowed arguments then DataFrame.pivot_table(index=...). Tricky problem.

Ah, good point.
Type annotations could help here...

Adding those to a codebsae would be fun :)

Cant this be a something run only on interactive mode? Monkeypatch? ^^
Btw @_ipy_complete_kwarg(index, options=lambda self: self.index.tolist()) seems wrong to me, as i can put any column in the index, not just the values of the index.


add #casts dynamically

The one concern the Alvin Ailey people had with our demo last week was with the inability to dynamically change the number of casts for a ballet. (This is a feature that was lost in the cast logic rewrite.) This PR restores that lost ability.
I am especially happy that we could do this without affecting the database.
In the process I discovered that there were some old cast editing files hanging around that were not called. I deleted those files.

Let's merge in anything already approved, and resolve merge conflicts on all open PRs before I start reviewing them.

This PR was superseded by PR #21.


uncaughtException in localhost

I was trying to run this locally and got the following error message. Unable to figure out the issue.
Server listening on http://localhost:8000
Application ready to serve requests.
Environment: development
Fri, 15 Jan 2016 03:36:24 GMT uncaughtException ENOENT: no such file or directory, open '/Users/arjunmayilvaganan/Code/personal-project/gitignore.io/models/../data/custom/AppCode.gitignore'
Error: ENOENT: no such file or directory, open '/Users/arjunmayilvaganan/Code/personal-project/gitignore.io/models/../data/custom/AppCode.gitignore'
    at Error (native)
    at Object.fs.openSync (fs.js:584:18)
    at Object.fs.readFileSync (fs.js:431:33)
    at /Users/arjunmayilvaganan/Code/personal-project/gitignore.io/models/datastore.js:32:31
    at FSReqWrap.oncomplete (fs.js:82:15)

Did you install the git submodules?

@joeblau,
Sorry. I'm not aware of that.
I did a git submodule and got an alphanumeric data/gitignore.
Then,
did an internet search and found that a git submodule can be added as follows and so did,
git submodule add https://github.com/github/gitignore.
The issue still remains.

These are the steps you need to perform in this order.
git clone git@github.com:joeblau/gitignore.io.git
cd gitignore.io/
git submodule init
git submodule update
npm install
node server.js

@joeblau, Thank you so much.

I've also updated the README.md to add these steps.

@joeblau, +1.


Make verify ssl optional via requests

A lot of people including me are using development servers which has self signed or no certificate installed for the dev domain.
Would need the verification process of the certificate via requests to be optional.

Solution can be found in the added commit.

See also https://github.com/netbox-community/pynetbox/releases/tag/v5.0.0

Thank you. I am guessing you removed the ssl_verify for a reason so I'll close this issue and continue to implement it by x.http_session.verify = False instead


xcube requirements don't fit with aiobotocore requirements leading to a import error

Initial installation (outside DeepESDL, Ubuntu 24.04.1 LTS, Conda 24.7.1 ) with:
conda create -n xcubetest python pip xcube
conda activate xcubetest

importing of xcube.core.store fails with ImportError: cannot import name 'resolve_auth_type' from 'botocore.auth'
Since this sounded and turned out as an error in aiobotocore/botocore, pip check should show dependencies here:
xcube 1.7.0 has requirement botocore>=1.34.51, but you have botocore 1.34.31.
aiobotocore 2.15.1 has requirement botocore<1.35.24,>=1.35.16, but you have botocore 1.34.31.

Since we're still unable to reproduce the error I'm closing this issue for now. If the solution suggested above didn't help (conda install -c conda-forge botocore=1.35.23) and you still need assistance, you can post an update and we'll reopen the issue and continue debugging.


⚠ SceneTime has degraded performance

In 4e4bca9, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 3964 ms

Resolved: SceneTime performance has improved in ba86a05 after 7 minutes.


Implement mission list and check_socket

And other small fixes
Reviewed version of #28

LGTM. Squash and merge.


About the readme photo

How to make the photo like this，so cool

when move the control block, the photo will change from fuzzy to clear，interesting😀

Thx


Blink Rapsberry Pi LEDs to indicate that routes are processing exchanges

I think we can use via pi4j component and a little hack
https://www.raspberrypi.org/forums/viewtopic.php?f=31&t=12530
https://tasksofohm.wordpress.com/hardware/heartbeat-for-the-raspberry-pi/
I gonna test it this evening
keep in touch


feat: Simplify and improve CRDs

What type of PR is this?
/kind feature

What this PR does / why we need it:
Implements the API changes described by #361.
Which issue(s) this PR fixes:

Fixes # 361
Requirements:

[x] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[ ] tested upgrade from previous version

Special notes for your reviewer:
Release note:
none

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
23 unchanged lines in 1 file lost coverage.
Overall coverage remained the same at 45.154%

Files with Coverage Reduction
New Missed Lines
%

pkg/azdiskschedulerextender/azdiskschedulerextender.go
23
57.19%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
205

Relevant Lines:
454

💛  - Coveralls


Resolve log ambiguity

Howdy. I've been using a lot from esp-rs's work recently, and I've been really impressed! The traits from embedded-hal let me move a device from native SPI to bitbanged SPI, and use the original esp-idf-hal impls as a reference, worked almost first try!.
Back on topic, I wanted to mention something that's disappointed me and I think needs addressed better than it has been before.

There's a module in here named log, and there's an external dependency named log.
This leads to confusion in cases like this one:
use crate::sys::*;

use log::warn;

Whenever the compiler can't fully reason out which log to use (::log: the crate, or sys::log: the module), it halts compilation and throws that up.
I'm writing this now because of this happening again in fatfs.rs.
While I could just throw in a PR that uses ::log in that file, that feels inadequate. I also don't want to alias the log macros in Cargo.toml with
logm = { package = "log", ...

or try to rename the log module without consulting with y'all, so here I am.
My naïve suggestion is to rename the module to perhaps logger, given that's how it's sometimes referred to in that small file.
What do you think is the best solution?

Yes, naming the esp_idf_svc::log module log was a mistake we did early on.
However, now is too late - every single example starts with this line early-on in main and renaming esp_idf_svc::log to something else means we'll just break the world.
If there are resolution issues within some concrete module of the esp-idf-* crates - like as you say - fatfs, these need to be resolved within that module these days.
Btw, glob imports (use esp_idf_svc::sys::*) that we lazily use everywhere aren't helping either.
What compile error do you see in the fatfs module exactly?

Fair enough about wanting to keep existing examples compatible.
Yeah, the globs definitely don't help, but I also don't know if the benefit of denying them is more than keeping them for dev UX. That's up to you guys.
As for the error I get:
(The netif one only is on master, not the rev I was working with)
error[E0659]: `log` is ambiguous
  --> /home/name/.cargo/git/checkouts/esp-idf-svc-a28457b0e32c6283/9e70526/src/fs/fatfs.rs:7:5
   |
7  | use log::warn;
   |     ^^^ ambiguous name
   |
   = note: ambiguous because of a conflict between a name from a glob import and an outer scope during import or macro resolution
   = note: `log` could refer to a crate passed with `--extern`
   = help: use `::log` to refer to this crate unambiguously
note: `log` could also refer to the struct imported here
  --> /home/name/.cargo/git/checkouts/esp-idf-svc-a28457b0e32c6283/9e70526/src/fs/fatfs.rs:10:5
   |
10 | use crate::sys::*;
   |     ^^^^^^^^^^^^^
   = help: consider adding an explicit import of `log` to disambiguate
   = help: or use `self::log` to refer to this struct unambiguously

error[E0659]: `log` is ambiguous
   --> /home/tony/.cargo/git/checkouts/esp-idf-svc-a28457b0e32c6283/9e70526/src/netif.rs:963:9
    |
963 |     use log::debug;
    |         ^^^ ambiguous name
    |
    = note: ambiguous because of a conflict between a name from a glob import and an outer scope during import or macro resolution
    = note: `log` could refer to a crate passed with `--extern`
    = help: use `::log` to refer to this crate unambiguously
note: `log` could also refer to the struct imported here
   --> /home/name/.cargo/git/checkouts/esp-idf-svc-a28457b0e32c6283/9e70526/src/netif.rs:966:9
    |
966 |     use crate::sys::*;
    |         ^^^^^^^^^^^^^
    = help: consider adding an explicit import of `log` to disambiguate
    = help: or use `self::log` to refer to this struct unambiguously

For more information about this error, try `rustc --explain E0659`.
error: could not compile `esp-idf-svc` (lib) due to 2 previous errors

What is really weird is that neither I nor the CI is seeing these errors. Do you enable some extra components in ESP IDF? Or do you have some special sdkconfig.defaults?
Trying to understand what defines the esp_idf_sys::bindings::log symbol, which seems to be the conflict.

It looks like the sdkconfig.defaults line CONFIG_BT_NIMBLE_ENABLED=y is what specifically is causing it, out of the lines I added:
CONFIG_BT_ENABLED=y
CONFIG_BT_BLE_ENABLED=y
CONFIG_BT_BLUEDROID_ENABLED=n
CONFIG_BT_NIMBLE_ENABLED=y

There is the possibility of aliasing the log package to help prevent this in the future. I'd rather have a smart Clippy lint, but that requires more nightly shenanigans that I'm unfamiliar with. My main goal with this issue is wanting to prevent more devs like myself to have to open another issue/PR in a year or so when someone else forgets two colons and it slips through CI.
I originally was running with this commit, but master is also affected (if not more since I didn't have the netif error on that commit.)
And I'm already trying it out, seems to work fine, but I'm having issues with other SPI devices/threads (you might catch me in the matrix channel 😅) so I haven't quite been able to do more than read a sub-kb .txt from the cards.

In the meantime this is fixed with https://github.com/esp-rs/esp-idf-svc/commit/3f2ce04ecc8f076f69c56fe8fa8938294921e638
If you would like to work on a more elaborate solution, we can keep this issue open. But otherwise I would close it.

Thank you very much for the swift action, top notch!

No reply, closing.


Python3.5.2

Hi, i'm martin live in korea
i really appreciate that i get chance studying your contents
but i feel hard that typing code because i used python3.5.2
your code doesn't work in python3.5.2
so, i decided edit your code little bit,
Here is my first piece edited code
i wish that edited code helpful
thank you :)

I did this on the file itself. Thank you.


refactor base merge tree engine to check Iterable value

Thank you. But there are more is_iterable to be replaced. Just search all source code files for is_iterable.

Thank you very much. Could you please format the code:
tox -e format
# or
isort clickhouse_backend example tests


Disable / Prevent Auto Focus❓

Question
Hi,
Recently we've integrated with RNVC & replaced the deprecated RNC. Something that would be great for our use-case, would be to disable autofocus, is this possible out of the box in this library?
Ideally for our use-case, we would like to set a focus point (approx centre of the camera view), and have to remain in that area until otherwise.
I have checked the documentation, I can see you can manually set focus, which we are doing, however it still appears to be automatically trying to focus.
Any information on this would be gratefully  received.
Thanks!
What I tried
No response
VisionCamera Version
2.13.2
Additional information

[ ] I am using Expo
[X] I have read the Troubleshooting Guide
[X] I agree to follow this project's Code of Conduct
[X] I searched for similar questions in the issues page as well as in the discussions page and found none.

Closing as this is a stale issue - this might have been fixed with the full rewrite in VisionCamera V3 (🥳) - if not, please create a new issue.


ArgoCD Vault Plugin secured multitenancy

I've found some configuration working to tackle this issue, and I'd like to have some feedback about it. Do you see any caveat, security risk or issue about this ?
Is your feature request related to a problem?
The need arises when working with multitenancy secrets. The documentation on this subject did not seem as a valid solution, because it gives the possibility to choose in the Application manifest which Vault credential to use.
Thus, in a multi-tenant environment, there is no way to prevent Team A to use the credentials of Team B. In my ArgoCD instance, I chose to give the possibility for the teams to deploy their own Application in their namespaces ( Applications in any namespace feature). The drawback is that the administrator don't have any control on the Applications deployed (other than via the AppProject which defines in which namespace they can deploy to)
Thus, I tried to find a way to :

Give the possibility for any team to have it's own set of Vault AppRole credentials, and store them in K8S.
Make AVP use the correct vault credential to decode secrets depending on the Application namespace
Make sure that it's not possible for any Application to use the credentials of another Application

Describe your solution
The credentials must be declared in secrets names "argocd-vault-plugin-credentials" in the namespace where they are needed. The plugin will be configured to use these credentials instead of 'argocd:argocd-vault-plugin-credentials'. I make use of the $ARGOCD_APP_NAMESPACE environment variable which gives the namespace of the application :
apiVersion: v1
kind: ConfigMap
metadata:
  name: argocd-cm
data:
  configManagementPlugins: |-
    - name: argocd-vault-plugin
      generate:
        command: ["sh", "-c"]
        args: ['argocd-vault-plugin generate ./ -s "$ARGOCD_APP_NAMESPACE:argocd-vault-plugin-credentials"']

For this to work, the argocd-repo-server must be given access to the vault credentials. This is done with the following rbac definitions :

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
# This role is necessary, so that Argocd repo server is able to read Vault credentials.
# They are stored in any namespaces under the name argocd-vault-plugin-credentials
metadata:
  labels:
    app.kubernetes.io/name: argocd-repo-server-secret-read
    app.kubernetes.io/part-of: argocd
    app.kubernetes.io/component: server
  name: argocd-repo-server-secret-read
rules:
- apiGroups:
  - ""
  resources:
  - secrets
  resourceNames:
  - argocd-vault-plugin-credentials
  verbs:
  - get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app.kubernetes.io/name: argocd-repo-server-secret-read
    app.kubernetes.io/part-of: argocd
    app.kubernetes.io/component: server
  name: argocd-repo-server-secret-read
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: argocd-repo-server-secret-read
subjects:
- kind: ServiceAccount
  name: argocd-repo-server
  namespace: argocd

What do you think ?

@Orabig I think this is a valid way to do multi tenancy with AVP. As long as that cluster role is locked down, and there is no way for Team A to put Team Bs approle credentials in there secret, its seems fine.
I think every team has different use cases and solutions that work for them. For example..

Thus, in a multi-tenant environment, there is no way to prevent Team A to use the credentials of Team B.

This is not a concern where maybe a central team controls the Applications and maybe Team A and Team B don't touch the Argo CD stuff. But when each team handles there own Applications, it might might not make sense. So it really depends on the teams/structure/permissions on how to best handle multi tenancy.
We would be glad to put this example into the multi tenancy documentation if you want to create a PR.
Thanks for sharing!

During my tests, I've found a major caveat in my method :(
The environment variable $ARGOCD_APP_NAMESPACE does not contain the namespace of the Application object, but the namespace where the application is deploying the k8s object.
More precisely, if a team has an Application defined like this :
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  namespace: definition-namespace             <<<< Namespace where the Application object is deployed by the user
  name: my-app
spec:
  project: xxx
  source:
    repoURL: xxxx
    plugin:
      name: argocd-vault-plugin-debug
  destination:
    name: my-cluster
    namespace: target-namespace             <<<< Namespace where the manifests are deployed by ArgoCD

Then $ARGOCD_APP_NAMESPACE=="target-namespace" and not "definition-namespace" unfortunately.
Thus, this is an issue in a multi-cluster context, because "target-namespace" may not exist in the K8S cluster where ArgoCD is deployed.
I've looked for another variable that I could use, but it seems that the real "Application namespace" is not exported at all :
For reference, here are the only variables available :
(source https://github.com/argoproj/argo-cd/blob/master/reposerver/repository/repository.go#L1414 )
func newEnv(q *apiclient.ManifestRequest, revision string) *v1alpha1.Env {
	return &v1alpha1.Env{
		&v1alpha1.EnvEntry{Name: "ARGOCD_APP_NAME", Value: q.AppName},
		&v1alpha1.EnvEntry{Name: "ARGOCD_APP_NAMESPACE", Value: q.Namespace},
		&v1alpha1.EnvEntry{Name: "ARGOCD_APP_REVISION", Value: revision},
		&v1alpha1.EnvEntry{Name: "ARGOCD_APP_SOURCE_REPO_URL", Value: q.Repo.Repo},
		&v1alpha1.EnvEntry{Name: "ARGOCD_APP_SOURCE_PATH", Value: q.ApplicationSource.Path},
		&v1alpha1.EnvEntry{Name: "ARGOCD_APP_SOURCE_TARGET_REVISION", Value: q.ApplicationSource.TargetRevision},
	}
}

@Orabig based on your last comment are we ok to close this issue and the corresponding PR?

Well, I don't think so, because even if it's not perfect, the solution works and is a good answer to the initial problem. Most of the time (or with a simple naming strategy), the namespace will be the same in both clusters, so it will be useful anyway.
For now, me and my team are looking for a way to improve argocd itself to add the missing environment variable, which will tackle the issue.


fd_set.fds_bits is not public

Was there a reason for this? I know that there are FD_CLR and friends, but it seems odd that this one field is private while almost all struct fields for all libc types are public.

If it matches libc itself seems fine to export!

I believe this is actually correct, it's just C can't make fields of structs public, but it's the reason why the FD_CLR() macros and friends exist. Since those are now included in libc, we can close this issue.


Warning: "Unexpected input 'github_token'"

I'm using following the README.md example for javascript-example-eslint-and-prettier, but the workflow shows unexpected input, checking the inputs that's correct that input is not expected. Also it's trying to push changes to .github folder but not sure why. It's a private repo
Here is the error:
! [remote rejected] master -> master (refusing to allow a GitHub App to create or update workflow `.github/workflows/Lint.yml` without `workflows` permission)

This is my lint.yml file:
name: Lint
on: [push, pull_request]
jobs:
  node-lint-tests:
    runs-on: ${{ matrix.os }}
    if: "!contains(github.event.head_commit.message, 'ci skip')"

    strategy:
      matrix:
        os: [ 'ubuntu-latest']
        node: [10, 12]

    steps:
      - name: Check out Git repository
        uses: actions/checkout@v2

      - name: Set up Node.js
        uses: actions/setup-node@v1
        with:
          node-version: ${{ matrix.node }}

      - name: install node_modules
        run: yarn install --frozen-lockfile

      - name: Run linters
        uses: samuelmeuli/lint-action@v1
        with:
          github_token: ${{ secrets.github_token }}
          eslint: true
          prettier: true
          auto_fix: true

I've just gotten the same thing pop up, I was testing this last week and wasn't hitting it, all of a sudden it has appeared.

I am having a similar issue. I used git push -mirror to fork a project into a private repository but it shouldn't be a fork now.
When I try to run with auto_fix, I get this error.
    at processTicksAndRejections (internal/process/task_queues.js:93:5) {
  status: 1,
  signal: null,
  output: [
    null,
    '',
    'To https://github.com/camjac251/project\n' +
      ' ! [remote rejected] production -> production (refusing to allow a GitHub App to create or update workflow `.github/workflows/lint.yml` without `workflows` permission)\n' +
      "error: failed to push some refs to 'https://github.com/camjac251/project'\n"
  ],
  pid: 3172,
  stdout: '',
  stderr: 'To https://github.com/camjac251/project\n' +
    ' ! [remote rejected] production -> production (refusing to allow a GitHub App to create or update workflow `.github/workflows/lint.yml` without `workflows` permission)\n' +
    "error: failed to push some refs to 'https://github.com/camjac251/project'\n"
}
/home/runner/work/_actions/samuelmeuli/lint-action/v1/src/index.js:13
	throw new Error(`Exiting because of unhandled promise rejection`);
	^

Error: Exiting because of unhandled promise rejection
    at process.<anonymous> (/home/runner/work/_actions/samuelmeuli/lint-action/v1/src/index.js:13:8)
    at process.emit (events.js:210:5)
    at processPromiseRejections (internal/process/promises.js:201:33)
    at processTicksAndRejections (internal/process/task_queues.js:94:32)
    at processTicksAndRejections (internal/process/task_queues.js:93:5) {
  status: 1,
  signal: null,
  output: [
    null,
    '',
    'To https://github.com/camjac251/project\n' +
      ' ! [remote rejected] production -> production (refusing to allow a GitHub App to create or update workflow `.github/workflows/lint.yml` without `workflows` permission)\n' +
      "error: failed to push some refs to 'https://github.com/camjac251/project'\n"
  ],
  pid: 3172,
  stdout: '',
  stderr: 'To https://github.com/camjac251/project\n' +
    ' ! [remote rejected] production -> production (refusing to allow a GitHub App to create or update workflow `.github/workflows/lint.yml` without `workflows` permission)\n' +
    "error: failed to push some refs to 'https://github.com/camjac251/project'\n"
}
/home/runner/work/_actions/samuelmeuli/lint-action/v1/src/index.js:13
	throw new Error(`Exiting because of unhandled promise rejection`);
	^

Error: Exiting because of unhandled promise rejection
    at process.<anonymous> (/home/runner/work/_actions/samuelmeuli/lint-action/v1/src/index.js:13:8)
    at process.emit (events.js:210:5)
    at processPromiseRejections (internal/process/promises.js:201:33)
    at processTicksAndRejections (internal/process/task_queues.js:94:32)


Fix false on enter trigger when using IME.

The isComposing field tells us if we are using an input method editor (IME) which
will display a menu of characters that can't be represented on a standard QWERTY
keyboard. The user can select from this menu by pressing "enter" or clicking the
menu item. The user will then need to press "enter" to confirm the selection (at
least on MacOS).
If we do not check isComposing on key up, this will trigger the Mesop on enter
event.
If we check isComposing on key up, the enter confirmation will trigger the Mesop
on enter event since isComposing becomes false on key up.
We need to track isComposing with the key down event since this will trigger the
on enter event when "enter" is pressed again (when the IME is inactive and
a selection has been made and applied).
Safari has a bug where the order of operations for isComposing is in a different
order. See https://bugs.webkit.org/show_bug.cgi?id=165004.
In order to work around this issue, we need to count expectedIsComposingCount
equals false twice on Safari rather than just once.
Ref: https://github.com/google/mesop/issues/588

Hmm, I tested on Chrome and Firefox and the behavior was the same. However, Safari didn't work.

Could we add a test for this? at least for the chrome case.

I think that's a bit tricky to do since the IME stuff is OS specific. The user also has to enable a language that would trigger the IME.
So I think it could be possible to do if the VM we're using in playwright for CI had Japanese enabled. But I think in that scenario, we'd skip it for local tests since that means the user needs to enable Japanese on their OS. And the key combination for switching languages may be different in each OS.
So I think for now, I'll skip the Playwright test. I think it may be possible to test some of the behavior in a unit test. But I don't think we currently have examples of testing angular components via unit test. So will skip for now. Maybe can come back to it later.


Cannot pipe model data to socket.io socket

I'm trying to pipe data to a socket.io client using this example: http://sailsjs.org/#!/documentation/reference/waterline/models/stream.html
When I try the example I keep getting this error:
TypeError: undefined is not a function at Stream.pipe (stream.js:65:8)

and the last line of the error shows:
node_modules/sails/node_modules/waterline/lib/waterline/query/finders/operations.js:425:11 [TypeError: undefined is not a function]

This is my code in my UserController:
if (req.isSocket) {
  var getSocket = req.socket;
  User.stream({name: {'contains': req.query.q}}).pipe(getSocket.emit);
}

When I check the stream data, I see all the user records like I should. I'm using in my Sails app:

sails 0.11.0
sails-mongo 0.10.5
socket.io-redis 0.1.4

Anyone ever encountered this error before?

Hi @mlagace! Have you found a solution for your issue or the root cause for it? If not, perhaps you'll have better luck getting an answer in the sails-mongo project or even stackoverflow (tag 'waterline').

Hi @dmarcelino! I wasn't able to find the root cause of the issue. The only way I could stream my data is by doing:
var stream = User.stream(query);
stream.on('data', function(chunk){
    sails.sockets.emit(req.socket.id, chunk.toString());
});

which I'm not sure it's a good thing but for now it works really well.

I see, good to know you found a solution! Maybe it's worth raising an issue in the sails project questioning if their docs are accurate since you had to use a different solution.
I'm closing this for now but feel free to re-open it if you think it's worth further pursuing it.

Ok thanks @dmarcelino when I get more time I'll investigate further.


MSW nodejs 18 support

Hello!
I have been using playwright-msw in a project but after the migration to nodejs 18, it stopped working.
We had to use a msw 'next' version because they don't have plans to support it on 1.x versions https://github.com/mswjs/msw/issues/1388#issuecomment-1617573863. I'm trying to follow the msw migration guide https://github.com/mswjs/msw/blob/feat/standard-api/MIGRATING.md#migration-guide to make 'playwright-msw' support nodejs 18 but I faced a few blockers.
Do you have plans for this migration? I know it's not a stable version yet, but I could help with the PR if I can resolve the doubts I have.
Thanks

This will be closed by #76. MSW 2.0 supports Node.js v18+.