[ceres + downstreams] Update to ceres to 2.2.0

[x] Changes comply with the maintainer guide.
[x] SHA512s are updated for each updated download.
[x] The "supports" clause reflects platforms that may be fixed by this new version.
[x] Any fixed CI baseline entries are removed from that file.
[x] Any patches that are no longer applied are deleted from the port's directory.
[x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[x] Only one version is added to each modified port's versions file.

@microsoft-github-policy-service agree [company="{your company}"]

Build failures appear to be unrelated to this change? vtk[core]:x64-windows seems to not exist?

Build failures appear to be unrelated to this change? vtk[core]:x64-windows seems to not exist?

They look legitimate to me? A couple of examples.
Direct failures:
REGRESSION: ceres:x86-windows failed with BUILD_FAILED. If expected, add ceres:x86-windows=fail to D:\a\_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.
REGRESSION: ceres:x64-windows failed with BUILD_FAILED. If expected, add ceres:x64-windows=fail to D:\a\_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.

Indirect failures, for instance:
REGRESSION: cartographer:arm64-osx failed with BUILD_FAILED. If expected, add cartographer:arm64-osx=fail to /Users/vcpkg/Data/work/1/s/scripts/azure-pipelines/../ci.baseline.txt.
REGRESSION: openturns:arm64-osx failed with BUILD_FAILED. If expected, add openturns:arm64-osx=fail to /Users/vcpkg/Data/work/1/s/scripts/azure-pipelines/../ci.baseline.txt.
REGRESSION: openmvg:arm64-osx failed with BUILD_FAILED. If expected, add openmvg:arm64-osx=fail to /Users/vcpkg/Data/work/1/s/scripts/azure-pipelines/../ci.baseline.txt.
REGRESSION: vcpkg-ci-itk:arm64-osx cascaded, but it is required to pass. (/Users/vcpkg/Data/work/1/s/scripts/azure-pipelines/../ci.baseline.txt).
REGRESSION: vcpkg-ci-paraview:arm64-osx cascaded, but it is required to pass. (/Users/vcpkg/Data/work/1/s/scripts/azure-pipelines/../ci.baseline.txt).

are downstream broken components:
PS D:\vcpkg> .\vcpkg.exe depend-info cartographer 2>&1 | findstr ceres
ceres[lapack, suitesparse]: eigen3, glog, lapack, suitesparse, vcpkg-cmake, vcpkg-cmake-config
cartographer: boost-iostreams, cairo, ceres, gflags, glog, gtest, lua, protobuf, vcpkg-cmake, vcpkg-cmake-config
PS D:\vcpkg> .\vcpkg.exe depend-info openturns 2>&1 | findstr ceres
ceres: eigen3, glog, vcpkg-cmake, vcpkg-cmake-config
openturns: blas, boost-multiprecision, boost-random, ceres, cminpack, dlib, exprtk, hdf5, lapack, libxml2, mpc, mpfr, muparser, nlopt, pagmo2, pthread, python3, spectra, tbb, vcpkg-cmake, vcpkg-cmake-config
PS D:\vcpkg> .\vcpkg.exe depend-info openmvg 2>&1 | findstr ceres
ceres[cxsparse, lapack, suitesparse]: eigen3, glog, lapack, suitesparse, vcpkg-cmake, vcpkg-cmake-config
openmvg: cereal, ceres, coin-or-clp, coin-or-osi, coinutils, eigen3, flann, libjpeg-turbo, liblemon, libpng, tiff, vcpkg-cmake, vcpkg-cmake-config, vlfeat, zlib
PS D:\vcpkg>

Thank you Johannes, that is a huge amount of work, especially having to fix all of upstream too that still depends on old Ceres syntax.
Could I just ask, could you confirm that we can still use Ceres with Eigensparse but without METIS, as I've described here
https://github.com/microsoft/vcpkg/pull/35021#issuecomment-1851871588?
Thank you!

@patrikhuber If you don't select the "ceres[suitesparse]" feature, ceres can use the eigen sparse solver without the need for metis.

@BillyONeal @JonLiu1993 This has been a deeper rabbit hole than expected. This should be ready to review and merge.

@patrikhuber If you don't select the "ceres[suitesparse]" feature, ceres can use the eigen sparse solver without the need for metis.

Thank you, that's fantastic!

@pmloulon FYI. I did a best effort in updating to latest openmvg. You may want to apply some of the patches upstream. Most of them should be useful independent of vcpkg.

Hi there!
Thanks for all the downstream fixes! Unfortunately the resulting patches are huge :(. Can you make sure these are submitted upstream? With changes this big we want to give them an opportunity to respond before 'putting words in their mouth'. Thanks!

Hi there!
Thanks for all the downstream fixes! Unfortunately the resulting patches are huge :(. Can you make sure these are submitted upstream? With changes this big we want to give them an opportunity to respond before 'putting words in their mouth'. Thanks!

The patches look bigger than they are. They are mostly the same but with the following changes: (1) Some of the patches were combined into a single logical patch instead of applying a chain of patches on top of the same files (which becomes very hard to maintain). (2) Other changes are incurred by slightly changed underlying source code as the updated library versions had some small changes in the files themselves. The reason I went with updating the downstream library versions was that some of the breaking changes by Ceres have already been addressed by the upstream repos. Otherwise, the patches in this PR would have had much bigger changes.
As for upstreaming the patches, the plan was to follow up for openmvg (whose maintainer @pmoulon I already tagged above), rtabmap and openturns. However, theia and cartographer are both unmaintained codebases. I don't think anybody will merge these. I would argue that these shouldn't be packages in vcpkg in the first place, given the maintenance burden they impose on the contributors here.

CMake Error at F:/Feature-test/ceres/scripts/buildsystems/vcpkg.cmake:639 (_add_library):
_add_library cannot create ALIAS target "gflags" because another target
with the same name already exists.
Call Stack (most recent call first):
CMakeLists.txt:402 (add_library)

This look like an error in your test project.

@JonLiu1993 This should be fixed now.

@BillyONeal I am also working on unrolling the patches into a series of upstream pull requests, but this will take time and largely also depends on the maintainers.

Whene I tested the usage of cartographer, I get thie error, please take a look:
CMakeLists.txt:
cmake_minimum_required(VERSION 3.5)

project(test)

find_package(cartographer CONFIG REQUIRED)

add_executable(test CMakeProject1.cpp)

target_link_libraries(test PRIVATE cartographer)

Cofig:
1> CMake generation started for default configuration: 'x64-Debug'.
1> Found and using vcpkg toolchain file (F:/Feature-test/ceres/scripts/buildsystems/vcpkg.cmake).
1> Command line: "C:\WINDOWS\system32\cmd.exe" /c "%SYSTEMROOT%\System32\chcp.com 65001 >NUL && "C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\COMMUNITY\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\CMake\bin\cmake.exe"  -G "Ninja"  -DCMAKE_BUILD_TYPE:STRING="Debug" -DCMAKE_INSTALL_PREFIX:PATH="C:\Users\test\source\repos\CMakeProject1\out\install\x64-Debug" -DCMAKE_C_COMPILER:FILEPATH="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.41.34120/bin/Hostx64/x64/cl.exe" -DCMAKE_CXX_COMPILER:FILEPATH="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.41.34120/bin/Hostx64/x64/cl.exe"   -DCMAKE_MAKE_PROGRAM="C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\COMMUNITY\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\Ninja\ninja.exe" -DCMAKE_TOOLCHAIN_FILE="F:/Feature-test/ceres/scripts/buildsystems/vcpkg.cmake" "C:\Users\test\source\repos\CMakeProject1" 2>&1"
1> Working directory: C:\Users\test\source\repos\CMakeProject1\out\build\x64-Debug
1> [CMake] -- The C compiler identification is MSVC 19.41.34123.0
1> [CMake] -- The CXX compiler identification is MSVC 19.41.34123.0
1> [CMake] -- Detecting C compiler ABI info
1> [CMake] -- Detecting C compiler ABI info - done
1> [CMake] -- Check for working C compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.41.34120/bin/Hostx64/x64/cl.exe - skipped
1> [CMake] -- Detecting C compile features
1> [CMake] -- Detecting C compile features - done
1> [CMake] -- Detecting CXX compiler ABI info
1> [CMake] -- Detecting CXX compiler ABI info - done
1> [CMake] -- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.41.34120/bin/Hostx64/x64/cl.exe - skipped
1> [CMake] -- Detecting CXX compile features
1> [CMake] -- Detecting CXX compile features - done
1> [CMake] -- Looking for sgemm_
1> [CMake] -- Looking for sgemm_ - found
1> [CMake] -- Found BLAS: F:/Feature-test/ceres/installed/x64-windows/debug/lib/openblas.lib
1> [CMake] -- Using VCPKG FindLAPACK from package 'lapack-reference'
1> [CMake] -- Looking for cheev_
1> [CMake] -- Looking for cheev_ - found
1> [CMake] -- A library with LAPACK API found.
1> [CMake] -- Found CUDAToolkit: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.5/include (found suitable version "12.5.40", minimum required is "12.5.40")
1> [CMake] -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
1> [CMake] -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
1> [CMake] -- Looking for pthread_create in pthreads
1> [CMake] -- Looking for pthread_create in pthreads - not found
1> [CMake] -- Looking for pthread_create in pthread
1> [CMake] -- Looking for pthread_create in pthread - not found
1> [CMake] -- Found Threads: TRUE
1> [CMake] -- Found required Ceres dependency: Eigen version 3.4.0 in F:/Feature-test/ceres/installed/x64-windows/share/eigen3
1> [CMake] -- Found Ceres version: 2.2.0 installed in: F:/Feature-test/ceres/installed with components: [EigenSparse, SparseLinearAlgebraLibrary, LAPACK, SuiteSparse, SchurSpecializations]
1> [CMake] -- Configuring done (15.8s)
1> [CMake] CMake Error at F:/Feature-test/ceres/installed/x64-windows/share/cartographer/CartographerTargets.cmake:61 (set_target_properties):
1> [CMake]   The link interface of target "cartographer" contains:
1> [CMake]
1> [CMake]     Boost::iostreams
1> [CMake]
1> [CMake]   but the target was not found.  Possible reasons include:
1> [CMake]
1> [CMake]     * There is a typo in the target name.
1> [CMake]     * A find_package call is missing for an IMPORTED target.
1> [CMake]     * An ALIAS target is missing.
1> [CMake]
1> [CMake] Call Stack (most recent call first):
1> [CMake]   F:/Feature-test/ceres/installed/x64-windows/share/cartographer/cartographer-config.cmake:72 (include)
1> [CMake]   F:/Feature-test/ceres/scripts/buildsystems/vcpkg.cmake:859 (_find_package)
1> [CMake]   CMakeProject1/CMakeLists.txt:7 (find_package)
1> [CMake] -- Generating done (0.0s)
1> [CMake] CMake Generate step failed.  Build files cannot be regenerated correctly.
1> 'C:\WINDOWS\system32\cmd.exe' '/c "%SYSTEMROOT%\System32\chcp.com 65001 >NUL && "C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\COMMUNITY\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\CMake\bin\cmake.exe"  -G "Ninja"  -DCMAKE_BUILD_TYPE:STRING="Debug" -DCMAKE_INSTALL_PREFIX:PATH="C:\Users\test\source\repos\CMakeProject1\out\install\x64-Debug" -DCMAKE_C_COMPILER:FILEPATH="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.41.34120/bin/Hostx64/x64/cl.exe" -DCMAKE_CXX_COMPILER:FILEPATH="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.41.34120/bin/Hostx64/x64/cl.exe"   -DCMAKE_MAKE_PROGRAM="C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\COMMUNITY\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\Ninja\ninja.exe" -DCMAKE_TOOLCHAIN_FILE="F:/Feature-test/ceres/scripts/buildsystems/vcpkg.cmake" "C:\Users\test\source\repos\CMakeProject1" 2>&1"' execution failed with error: ''C:\WINDOWS\system32\cmd.exe' '/c "%SYSTEMROOT%\System32\chcp.com 65001 >NUL && "C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\COMMUNITY\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\CMake\bin\cmake.exe"  -G "Ninja"  -DCMAKE_BUILD_TYPE:STRING="Debug" -DCMAKE_INSTALL_PREFIX:PATH="C:\Users\test\source\repos\CMakeProject1\out\install\x64-Debug" -DCMAKE_C_COMPILER:FILEPATH="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.41.34120/bin/Hostx64/x64/cl.exe" -DCMAKE_CXX_COMPILER:FILEPATH="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.41.34120/bin/Hostx64/x64/cl.exe"   -DCMAKE_MAKE_PROGRAM="C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\COMMUNITY\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\Ninja\ninja.exe" -DCMAKE_TOOLCHAIN_FILE="F:/Feature-test/ceres/scripts/buildsystems/vcpkg.cmake" "C:\Users\test\source\repos\CMakeProject1" 2>&1"' returned with exit code: 1'.

@JonLiu1993 Thanks for finding the issue. This should also be fixed now.

The patches look bigger than they are. They are mostly the same but with the following changes: (1) Some of the patches were combined into a single logical patch instead of applying a chain of patches on top of the same files (which becomes very hard to maintain).

What matters is the total size of the patches, not how many files it's split into; I agree separating them would be bad.

However, theia and cartographer are both unmaintained codebases.

Hmmmm.... they also have very high port-versions suggesting that they are painful. Perhaps we should deindex them.

The patches look bigger than they are. They are mostly the same but with the following changes: (1) Some of the patches were combined into a single logical patch instead of applying a chain of patches on top of the same files (which becomes very hard to maintain).

What matters is the total size of the patches, not how many files it's split into; I agree separating them would be bad.

That's not what I meant to say. To clarify: what I meant is that I only added a relatively small delta of new changes to the existing patches. The main change I made was to reapply them to the updated underlying sources and combined them into fewer patch files. The only project with somewhat significant changes is rtabmap, for which I already upstreamed the changes in a PR. It will take time for these to be consumable here though. I would argue that, if we were fine accepting these patches in the past, then we should be fine again now. It would be unfortunate if we delay the update of ceres much longer. Many external projects rely on it and would greatly benefit from this update.
I still recommend decommissioning the theia and cartographer ports, given that the upstream projects are not maintained anymore.

That's not what I meant to say. To clarify: what I meant is that I only added a relatively small delta of new changes to the existing patches.

I guess, what I mean is, I don't think we should have accepted a 1500 line patch in the first place. That's well outside of our normal patch guidelines, and it's unwarranted if there is no universe where upstream could someday accept it.

I still recommend decommissioning the theia and cartographer ports, given that the upstream projects are not maintained anymore.

Yes, those are the two in question here. @AugP @ras0219-msft @JavierMatosD @vicroms and I discussed today and agree these should be removed from the index. I'll push that into this PR shortly.

Whene I tested the usage of cartographer, I get thie error, please take a look:

I deindexed cartographer entirely and have an action item to update the maintainer guide about these cases where large patches are necessary to get unmaintained downstream dependents functional. Do you have other concerns here @JonLiu1993 ?
@ahojnnes Are you happy with this 'the ports got deindexed' outcome?

Tested usage successfully by ceres:x64-windows
All features are tested successfully in the following triplet:

x86-windows
x64-windows

Whene I tested the usage of cartographer, I get thie error, please take a look:

I deindexed cartographer entirely and have an action item to update the maintainer guide about these cases where large patches are necessary to get unmaintained downstream dependents functional. Do you have other concerns here @JonLiu1993 ?
@ahojnnes Are you happy with this 'the ports got deindexed' outcome?

Thank you, sounds good to me!

Looks there is a error in x64-linux, this is error log:
install-x64-linux-dbg-out.log

@JonLiu1993 Shouldn't have removed the openmvg:x64-linux from the ci exclusions :-) I'll see if I can fix it, but otherwise will revert back to the previous state and skip it.

@JonLiu1993 @BillyONeal All checks should be green now. Thank you for your reviews and support.

@JavierMatosD @BillyONeal @JonLiu1993 I'd appreciate if we could merge this update, so I don't run into further merge conflicts. Thank you.

That is amazing, thank you very much @ahojnnes for the work!


[BUG] - Error Edge Runtime Build

NextUI Version
2.3.6
Describe the bug
when I build with edge runtime, it will error

01:49:23.259
▲  Failed to compile.

01:49:23.259
▲

01:49:23.259
▲<EMAIL_ADDRESS>

01:49:23.259
▲  Attempted import error: 'useContext' is not exported from 'react' (imported as '$bx7SL$useContext').

01:49:23.260
▲

01:49:23.260
▲  Import trace for requested module:

01:49:23.260
▲<EMAIL_ADDRESS>

01:49:23.260
▲<EMAIL_ADDRESS>

01:49:23.260
▲<EMAIL_ADDRESS>

01:49:23.260
▲  ./app/layout.tsx

01:49:23.260
▲  ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Ftournament%2F%5Bsport%5D%2F%5Bid%5D%2Fpage&page=%2Ftournament%2F%5Bsport%5D%2F%5Bid%5D%2Fpage&pagePath=private-next-app-dir%2Ftournament%2F%5Bsport%5D%2F%5Bid%5D%2Fpage.tsx&appDir=%2Fopt%2Fbuildhome%2Frepo%2Fapp&appPaths=%2Ftournament%2F%5Bsport%5D%2F%5Bid%5D%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!./app/tournament/[sport]/[id]/page.tsx?next_edge_ssr_entry

01:49:23.260
▲

01:49:23.260
▲<EMAIL_ADDRESS>

01:49:23.261
▲  Attempted import error: 'useState' is not exported from 'react' (imported as '$bx7SL$useState').

01:49:23.261
▲

01:49:23.261
▲  Import trace for requested module:

01:49:23.261
▲<EMAIL_ADDRESS>

01:49:23.261
▲<EMAIL_ADDRESS>

01:49:23.261
▲<EMAIL_ADDRESS>

01:49:23.261
▲  ./app/layout.tsx

01:49:23.261
▲  ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Ftournament%2F%5Bsport%5D%2F%5Bid%5D%2Fpage&page=%2Ftournament%2F%5Bsport%5D%2F%5Bid%5D%2Fpage&pagePath=private-next-app-dir%2Ftournament%2F%5Bsport%5D%2F%5Bid%5D%2Fpage.tsx&appDir=%2Fopt%2Fbuildhome%2Frepo%2Fapp&appPaths=%2Ftournament%2F%5Bsport%5D%2F%5Bid%5D%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!./app/tournament/[sport]/[id]/page.tsx?next_edge_ssr_entry

01:49:23.262
▲

01:49:23.262
▲<EMAIL_ADDRESS>

01:49:23.262
▲  Attempted import error: 'useRef' is not exported from 'react' (imported as '$bx7SL$useRef').

01:49:23.262
▲

01:49:23.262
▲  Import trace for requested module:

01:49:23.262
▲<EMAIL_ADDRESS>

01:49:23.262
▲<EMAIL_ADDRESS>

01:49:23.262
▲<EMAIL_ADDRESS>

01:49:23.263
▲  ./app/layout.tsx

01:49:23.263
▲  ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Ftournament%2F%5Bsport%5D%2F%5Bid%5D%2Fpage&page=%2Ftournament%2F%5Bsport%5D%2F%5Bid%5D%2Fpage&pagePath=private-next-app-dir%2Ftournament%2F%5Bsport%5D%2F%5Bid%5D%2Fpage.tsx&appDir=%2Fopt%2Fbuildhome%2Frepo%2Fapp&appPaths=%2Ftournament%2F%5Bsport%5D%2F%5Bid%5D%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!./app/tournament/[sport]/[id]/page.tsx?next_edge_ssr_entry

01:49:23.263
▲

01:49:23.263
▲<EMAIL_ADDRESS>

01:49:23.263
▲  Attempted import error: 'useEffect' is not exported from 'react' (imported as '$bx7SL$useEffect').

01:49:23.264
▲

01:49:23.264
▲  Import trace for requested module:

01:49:23.264
▲<EMAIL_ADDRESS>

01:49:23.264
▲<EMAIL_ADDRESS>

01:49:23.264
▲<EMAIL_ADDRESS>

01:49:23.264
▲  ./app/layout.tsx

01:49:23.264
▲  ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Ftournament%2F%5Bsport%5D%2F%5Bid%5D%2Fpage&page=%2Ftournament%2F%5Bsport%5D%2F%5Bid%5D%2Fpage&pagePath=private-next-app-dir%2Ftournament%2F%5Bsport%5D%2F%5Bid%5D%2Fpage.tsx&appDir=%2Fopt%2Fbuildhome%2Frepo%2Fapp&appPaths=%2Ftournament%2F%5Bsport%5D%2F%5Bid%5D%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!./app/tournament/[sport]/[id]/page.tsx?next_edge_ssr_entry

01:49:23.264
▲

01:49:23.265
▲<EMAIL_ADDRESS>

01:49:23.265
▲  Attempted import error: 'useRef' is not exported from 'react' (imported as '$bx7SL$useRef').

01:49:23.265
▲

01:49:23.265
▲  Import trace for requested module:

01:49:23.265
▲<EMAIL_ADDRESS>

01:49:23.265
▲<EMAIL_ADDRESS>

01:49:23.265
▲<EMAIL_ADDRESS>

01:49:23.265
▲  ./app/layout.tsx

01:49:23.265
▲  ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Ftournament%2F%5Bsport%5D%2F%5Bid%5D%2Fpage&page=%2Ftournament%2F%5Bsport%5D%2F%5Bid%5D%2Fpage&pagePath=private-next-app-dir%2Ftournament%2F%5Bsport%5D%2F%5Bid%5D%2Fpage.tsx&appDir=%2Fopt%2Fbuildhome%2Frepo%2Fapp&appPaths=%2Ftournament%2F%5Bsport%5D%2F%5Bid%5D%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!./app/tournament/[sport]/[id]/page.tsx?next_edge_ssr_entry

01:49:23.265
▲

01:49:23.265
▲

01:49:23.266
▲  > Build failed because of webpack errors

01:49:23.325
▲  error Command failed with exit code 1.

01:49:23.326
▲  info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

01:49:23.342
▲  Error: Command "yarn run build" exited with 1

01:49:23.423

01:49:23.424
⚡ The Vercel build (npx vercel build) command failed. For more details see the Vercel logs above.

01:49:23.424
⚡ If you need help solving the issue, refer to the Vercel or Next.js documentation or their repositories.

01:49:23.424

01:49:23.449
Failed: Error while executing user command. Exited with error code: 1

01:49:23.458
Failed: build command exited with code: 1

01:49:24.844
Failed: error occurred while running build command

Your Example Website or App
No response
Steps to Reproduce the Bug or Issue

using NextUIProvider component in Layout.ts
yarn build

Expected behavior
It shoud build compleate
Screenshots or Videos
No response
Operating System Version
Linux, Cloudflare Worker
Browser
Chrome

Can you share your project repo?
Are you able to build locally?

same issue here
▲  ../../node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fvictor%2Froot%2Fvcctm%2Fzowe%2Fapps%2Fbye%2Fapp&appPaths=%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!./app/page.tsx?__next_edge_ssr_entry__
▲
▲<EMAIL_ADDRESS>▲  Attempted import error: 'useContext' is not exported from 'react' (imported as '$87RPk$useContext').
▲
▲  Import trace for requested module:
▲<EMAIL_ADDRESS>▲<EMAIL_ADDRESS>▲<EMAIL_ADDRESS>▲<EMAIL_ADDRESS>▲<EMAIL_ADDRESS>▲  ./app/providers.tsx
▲  ./app/layout.tsx
▲  ../../node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fvictor%2Froot%2Fvcctm%2Fzowe%2Fapps%2Fbye%2Fapp&appPaths=%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!./app/page.tsx?__next_edge_ssr_entry__
▲
▲<EMAIL_ADDRESS>▲  Attempted import error: 'useEffect' is not exported from 'react' (imported as '$87RPk$useEffect').
▲
▲  Import trace for requested module:
▲<EMAIL_ADDRESS>▲<EMAIL_ADDRESS>▲<EMAIL_ADDRESS>▲<EMAIL_ADDRESS>▲<EMAIL_ADDRESS>▲  ./app/providers.tsx
▲  ./app/layout.tsx
▲  ../../node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fvictor%2Froot%2Fvcctm%2Fzowe%2Fapps%2Fbye%2Fapp&appPaths=%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!./app/page.tsx?__next_edge_ssr_entry__
▲
▲<EMAIL_ADDRESS>▲  Attempted import error: 'useState' is not exported from 'react' (imported as '$28AnR$useState').
▲
▲  Import trace for requested module:
▲<EMAIL_ADDRESS>▲<EMAIL_ADDRESS>▲<EMAIL_ADDRESS>▲<EMAIL_ADDRESS>▲<EMAIL_ADDRESS>▲  ./app/providers.tsx
▲  ./app/layout.tsx
▲  ../../node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fvictor%2Froot%2Fvcctm%2Fzowe%2Fapps%2Fbye%2Fapp&appPaths=%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!./app/page.tsx?__next_edge_ssr_entry__
▲
▲<EMAIL_ADDRESS>▲  Attempted import error: 'useEffect' is not exported from 'react' (imported as '$28AnR$useEffect').
▲
▲  Import trace for requested module:
▲<EMAIL_ADDRESS>▲<EMAIL_ADDRESS>▲<EMAIL_ADDRESS>▲<EMAIL_ADDRESS>▲<EMAIL_ADDRESS>▲  ./app/providers.tsx
▲  ./app/layout.tsx
▲  ../../node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fvictor%2Froot%2Fvcctm%2Fzowe%2Fapps%2Fbye%2Fapp&appPaths=%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!./app/page.tsx?__next_edge_ssr_entry__
▲
▲  > Build failed because of webpack errors
▲  error: script "build" exited with code 1
▲  Error: Command "bun run build" exited with 1

⚡ The Vercel build (`bunx vercel build`) command failed. For more details see the Vercel logs above.
⚡ If you need help solving the issue, refer to the Vercel or Next.js documentation or their repositories.

error: script "pages:build" exited with code 1

please share the minimal reproducible example.

Closing due to inactivity.

is solved using "use client";


Constant<PHONE_NUMBER> overflows int on 32-bit builds

When compiling for a 32-bit platform I get:
..\..\go\pkg\mod\github.com\open2b\scriggo@v0.52.2\internal\compiler\builder.go:580:18: constant<PHONE_NUMBER> overflows int
The problematic code is:
if len(fn.Body) > math.MaxUint32 {
len(n) returns an int, not an unsigned int, which raises the compiler error.

Thanks for the quick incoming fix.
I see in the notes that 32-bit is not officially supported, yet you still choose to fix this (super!). Is there any technical reason for 32-bit not to be supported?


[ENHANCEMENT]

Problem
When clicked on Gherkin steps, IDE does not forward us to the related method/code unlike Cucumber.
Suggested Solution
Clicking on Gherkin steps user is forwarded to related code in the IDE.
Reproduce Steps

Open a .feature extended file in an IDE (ex: VsCode)
Click one of the Scenario steps (ex: Given I log in to Facebook)
Check if the IDE screen switches to the related file/code

I am going to be developing a solution.


Error(s) in loading state_dict for PatchcoreLightning

Describe the bug
Running  tools/inference/torch_inference.py throws:
Traceback (most recent call last):
  File "/workspace/tools/inference/torch_inference.py", line 97, in <module>
    infer()
  File "/workspace/tools/inference/torch_inference.py", line 73, in infer
    inferencer = TorchInferencer(config=args.config, model_source=args.weights)
  File "/workspace/anomalib/deploy/inferencers/torch_inferencer.py", line 54, in __init__
    self.model = self.load_model(model_source)
  File "/workspace/anomalib/deploy/inferencers/torch_inferencer.py", line 85, in load_model
    model.load_state_dict(torch.load(path)["state_dict"])
  File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1497, in load_state_dict
    raise RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format(
RuntimeError: Error(s) in loading state_dict for PatchcoreLightning:
	Unexpected key(s) in state_dict: "normalization_metrics.min", "normalization_metrics.max".

To Reproduce

Using default patchcore/config.yaml
Train the model: python tools/train.py --config anomalib/models/patchcore/config.yaml
Use trained model for torch_inference:

python tools/inference/torch_inference.py \
--config anomalib/models/patchcore/config.yaml \
--weights results/patchcore/mvtec/bottle/weights/model-v14.ckpt \
--input datasets/MVTec/bottle/test/broken_large/000.png \
--output results/patchcore/mvtec/bottle/images

Additional context
Error is present since commit d6951ebaaf36477bf245b17b5b6a563d35892e81

@ashwinvaidya17 can you have a look at this? It seems to be related to the normalization redesign

I'm having a simlar issue, here the runtime error:
RuntimeError: Error(s) in loading state_dict for PatchcoreLightning:
	Missing key(s) in state_dict: "model.feature_extractor.feature_extractor.conv1.weight", "model.feature_extractor.feature_extractor.bn1.weight", "model.feature_extractor.feature_extractor.bn1.bias", "model.feature_extractor.feature_extractor.bn1.running_mean", "model.feature_extractor.feature_extractor.bn1.running_var", "model.feature_extractor.feature_extractor.layer1.0.conv1.weight", "model.feature_extractor.feature_extractor.layer1.0.bn1.weight", "model.feature_extractor.feature_extractor.layer1.0.bn1.bias", "model.feature_extractor.feature_extractor.layer1.0.bn1.running_mean", "model.feature_extractor.feature_extractor.layer1.0.bn1.running_var", "model.feature_extractor.feature_extractor.layer1.0.conv2.weight", "model.feature_extractor.feature_extractor.layer1.0.bn2.weight", "model.feature_extractor.feature_extractor.layer1.0.bn2.bias", "model.feature_extractor.feature_extractor.layer1.0.bn2.running_mean", "model.feature_extractor.feature_extractor.layer1.0.bn2.running_var", "model.feature_extractor.feature_extractor.layer1.0.conv3.weight", "model.feature_extractor.feature_extractor.layer1.0.bn3.weight", "model.feature_extractor.feature_extractor.layer1.0.bn3.bias", "model.feature_extractor.feature_extractor.layer1.0.bn3.running_mean", "model.feature_extractor.feature_extractor.layer1.0.bn3.running_var", "model.feature_extractor.feature_extractor.layer1.0.downsample.0.weight", "model.feature_extractor.feature_extractor.layer1.0.downsample.1.weight", "model.feature_extractor.feature_extractor.layer1.0.downsample.1.bias", "model.feature_extractor.feature_extractor.layer1.0.downsample.1.running_mean", "model.feature_extractor.feature_extractor.layer1.0.downsample.1.running_var", "model.feature_extractor.feature_extractor.layer1.1.conv1.weight", "model.feature_extractor.feature_extractor.layer1.1.bn1.weight", "model.feature_extractor.feature_extractor.layer1.1.bn1.bias", "model.feature_extractor.feature_extractor.layer1.1.bn1.running_mean", "model.feature_extractor.feature_extractor.layer1.1.bn1.running_var", "model.feature_extractor.feature_extractor.layer1.1.conv2.weight", "model.feature_extractor.feature_extractor.layer1.1.bn2.weight", "model.feature_extractor.feature_extractor.layer1.1.bn2.bias", "model.feature_extractor.feature_extractor.layer1.1.bn2.running_mean", "model.feature_extractor.feature_extractor.layer1.1.bn2.running_var", "model.feature_extractor.feature_extractor.layer1.1.conv3.weight", "model.feature_extractor.feature_extractor.layer1.1.bn3.weight", "model.feature_extractor.feature_extractor.layer1.1.bn3.bias", "model.feature_extractor.feature_extractor.layer1.1.bn3.running_mean", "model.feature_extractor.feature_extractor.layer1.1.bn3.running_var", "model.feature_extractor.feature_extractor.layer1.2.conv1.weight", "model.feature_extractor.feature_extractor.layer1.2.bn1.weight", "model.feature_extractor.feature_extractor.layer1.2.bn1.bias", "model.feature_extractor.feature_extractor.layer1.2.bn1.running_mean", "model.feature_extractor.feature_extractor.layer1.2.bn1.running_var", "model.feature_extractor.feature_extractor.layer1.2.conv2.weight", "model.feature_extractor.feature_extractor.layer1.2.bn2.weight", "model.feature_extractor.feature_extractor.layer1.2.bn2.bias", "model.feature_extractor.feature_extractor.layer1.2.bn2.running_mean", "model.feature_extractor.feature_extractor.layer1.2.bn2.running_var", "model.feature_extractor.feature_extractor.layer1.2.conv3.weight", "model.feature_extractor.feature_extractor.layer1.2.bn3.weight", "model.feature_extractor.feature_extractor.layer1.2.bn3.bias", "model.feature_extractor.feature_extractor.layer1.2.bn3.running_mean", "model.feature_extractor.feature_extractor.layer1.2.bn3.running_var", "model.feature_extractor.feature_extractor.layer2.0.conv1.weight", "model.feature_extractor.feature_extractor.layer2.0.bn1.weight", "model.feature_extractor.feature_extractor.layer2.0.bn1.bias", "model.feature_extractor.feature_extractor.layer2.0.bn1.running_mean", "model.feature_extractor.feature_extractor.layer2.0.bn1.running_var", "model.feature_extractor.feature_extractor.layer2.0.conv2.weight", "model.feature_extractor.feature_extractor.layer2.0.bn2.weight", "model.feature_extractor.feature_extractor.layer2.0.bn2.bias", "model.feature_extractor.feature_extractor.layer2.0.bn2.running_mean", "model.feature_extractor.feature_extractor.layer2.0.bn2.running_var", "model.feature_extractor.feature_extractor.layer2.0.conv3.weight", "model.feature_extractor.feature_extractor.layer2.0.bn3.weight", "model.feature_extractor.feature_extractor.layer2.0.bn3.bias", "model.feature_extractor.feature_extractor.layer2.0.bn3.running_mean", "model.feature_extractor.feature_extractor.layer2.0.bn3.running_var", "model.feature_extractor.feature_extractor.layer2.0.downsample.0.weight", "model.feature_extractor.feature_extractor.layer2.0.downsample.1.weight", "model.feature_extractor.feature_extractor.layer2.0.downsample.1.bias", "model.feature_extractor.feature_extractor.layer2.0.downsample.1.running_mean", "model.feature_extractor.feature_extractor.layer2.0.downsample.1.running_var", "model.feature_extractor.feature_extractor.layer2.1.conv1.weight", "model.feature_extractor.feature_extractor.layer2.1.bn1.weight", "model.feature_extractor.feature_extractor.layer2.1.bn1.bias", "model.feature_extractor.feature_extractor.layer2.1.bn1.running_mean", "model.feature_extractor.feature_extractor.layer2.1.bn1.running_var", "model.feature_extractor.feature_extractor.layer2.1.conv2.weight", "model.feature_extractor.feature_extractor.layer2.1.bn2.weight", "model.feature_extractor.feature_extractor.layer2.1.bn2.bias", "model.feature_extractor.feature_extractor.layer2.1.bn2.running_mean", "model.feature_extractor.feature_extractor.layer2.1.bn2.running_var", "model.feature_extractor.feature_extractor.layer2.1.conv3.weight", "model.feature_extractor.feature_extractor.layer2.1.bn3.weight", "model.feature_extractor.feature_extractor.layer2.1.bn3.bias", "model.feature_extractor.feature_extractor.layer2.1.bn3.running_mean", "model.feature_extractor.feature_extractor.layer2.1.bn3.running_var", "model.feature_extractor.feature_extractor.layer2.2.conv1.weight", "model.feature_extractor.feature_extractor.layer2.2.bn1.weight", "model.feature_extractor.feature_extractor.layer2.2.bn1.bias", "model.feature_extractor.feature_extractor.layer2.2.bn1.running_mean", "model.feature_extractor.feature_extractor.layer2.2.bn1.running_var", "model.feature_extractor.feature_extractor.layer2.2.conv2.weight", "model.feature_extractor.feature_extractor.layer2.2.bn2.weight", "model.feature_extractor.feature_extractor.layer2.2.bn2.bias", "model.feature_extractor.feature_extractor.layer2.2.bn2.running_mean", "model.feature_extractor.feature_extractor.layer2.2.bn2.running_var", "model.feature_extractor.feature_extractor.layer2.2.conv3.weight", "model.feature_extractor.feature_extractor.layer2.2.bn3.weight", "model.feature_extractor.feature_extractor.layer2.2.bn3.bias", "model.feature_extractor.feature_extractor.layer2.2.bn3.running_mean", "model.feature_extractor.feature_extractor.layer2.2.bn3.running_var", "model.feature_extractor.feature_extractor.layer2.3.conv1.weight", "model.feature_extractor.feature_extractor.layer2.3.bn1.weight", "model.feature_extractor.feature_extractor.layer2.3.bn1.bias", "model.feature_extractor.feature_extractor.layer2.3.bn1.running_mean", "model.feature_extractor.feature_extractor.layer2.3.bn1.running_var", "model.feature_extractor.feature_extractor.layer2.3.conv2.weight", "model.feature_extractor.feature_extractor.layer2.3.bn2.weight", "model.feature_extractor.feature_extractor.layer2.3.bn2.bias", "model.feature_extractor.feature_extractor.layer2.3.bn2.running_mean", "model.feature_extractor.feature_extractor.layer2.3.bn2.running_var", "model.feature_extractor.feature_extractor.layer2.3.conv3.weight", "model.feature_extractor.feature_extractor.layer2.3.bn3.weight", "model.feature_extractor.feature_extractor.layer2.3.bn3.bias", "model.feature_extractor.feature_extractor.layer2.3.bn3.running_mean", "model.feature_extractor.feature_extractor.layer2.3.bn3.running_var", "model.feature_extractor.feature_extractor.layer3.0.conv1.weight", "model.feature_extractor.feature_extractor.layer3.0.bn1.weight", "model.feature_extractor.feature_extractor.layer3.0.bn1.bias", "model.feature_extractor.feature_extractor.layer3.0.bn1.running_mean", "model.feature_extractor.feature_extractor.layer3.0.bn1.running_var", "model.feature_extractor.feature_extractor.layer3.0.conv2.weight", "model.feature_extractor.feature_extractor.layer3.0.bn2.weight", "model.feature_extractor.feature_extractor.layer3.0.bn2.bias", "model.feature_extractor.feature_extractor.layer3.0.bn2.running_mean", "model.feature_extractor.feature_extractor.layer3.0.bn2.running_var", "model.feature_extractor.feature_extractor.layer3.0.conv3.weight", "model.feature_extractor.feature_extractor.layer3.0.bn3.weight", "model.feature_extractor.feature_extractor.layer3.0.bn3.bias", "model.feature_extractor.feature_extractor.layer3.0.bn3.running_mean", "model.feature_extractor.feature_extractor.layer3.0.bn3.running_var", "model.feature_extractor.feature_extractor.layer3.0.downsample.0.weight", "model.feature_extractor.feature_extractor.layer3.0.downsample.1.weight", "model.feature_extractor.feature_extractor.layer3.0.downsample.1.bias", "model.feature_extractor.feature_extractor.layer3.0.downsample.1.running_mean", "model.feature_extractor.feature_extractor.layer3.0.downsample.1.running_var", "model.feature_extractor.feature_extractor.layer3.1.conv1.weight", "model.feature_extractor.feature_extractor.layer3.1.bn1.weight", "model.feature_extractor.feature_extractor.layer3.1.bn1.bias", "model.feature_extractor.feature_extractor.layer3.1.bn1.running_mean", "model.feature_extractor.feature_extractor.layer3.1.bn1.running_var", "model.feature_extractor.feature_extractor.layer3.1.conv2.weight", "model.feature_extractor.feature_extractor.layer3.1.bn2.weight", "model.feature_extractor.feature_extractor.layer3.1.bn2.bias", "model.feature_extractor.feature_extractor.layer3.1.bn2.running_mean", "model.feature_extractor.feature_extractor.layer3.1.bn2.running_var", "model.feature_extractor.feature_extractor.layer3.1.conv3.weight", "model.feature_extractor.feature_extractor.layer3.1.bn3.weight", "model.feature_extractor.feature_extractor.layer3.1.bn3.bias", "model.feature_extractor.feature_extractor.layer3.1.bn3.running_mean", "model.feature_extractor.feature_extractor.layer3.1.bn3.running_var", "model.feature_extractor.feature_extractor.layer3.2.conv1.weight", "model.feature_extractor.feature_extractor.layer3.2.bn1.weight", "model.feature_extractor.feature_extractor.layer3.2.bn1.bias", "model.feature_extractor.feature_extractor.layer3.2.bn1.running_mean", "model.feature_extractor.feature_extractor.layer3.2.bn1.running_var", "model.feature_extractor.feature_extractor.layer3.2.conv2.weight", "model.feature_extractor.feature_extractor.layer3.2.bn2.weight", "model.feature_extractor.feature_extractor.layer3.2.bn2.bias", "model.feature_extractor.feature_extractor.layer3.2.bn2.running_mean", "model.feature_extractor.feature_extractor.layer3.2.bn2.running_var", "model.feature_extractor.feature_extractor.layer3.2.conv3.weight", "model.feature_extractor.feature_extractor.layer3.2.bn3.weight", "model.feature_extractor.feature_extractor.layer3.2.bn3.bias", "model.feature_extractor.feature_extractor.layer3.2.bn3.running_mean", "model.feature_extractor.feature_extractor.layer3.2.bn3.running_var", "model.feature_extractor.feature_extractor.layer3.3.conv1.weight", "model.feature_extractor.feature_extractor.layer3.3.bn1.weight", "model.feature_extractor.feature_extractor.layer3.3.bn1.bias", "model.feature_extractor.feature_extractor.layer3.3.bn1.running_mean", "model.feature_extractor.feature_extractor.layer3.3.bn1.running_var", "model.feature_extractor.feature_extractor.layer3.3.conv2.weight", "model.feature_extractor.feature_extractor.layer3.3.bn2.weight", "model.feature_extractor.feature_extractor.layer3.3.bn2.bias", "model.feature_extractor.feature_extractor.layer3.3.bn2.running_mean", "model.feature_extractor.feature_extractor.layer3.3.bn2.running_var", "model.feature_extractor.feature_extractor.layer3.3.conv3.weight", "model.feature_extractor.feature_extractor.layer3.3.bn3.weight", "model.feature_extractor.feature_extractor.layer3.3.bn3.bias", "model.feature_extractor.feature_extractor.layer3.3.bn3.running_mean", "model.feature_extractor.feature_extractor.layer3.3.bn3.running_var", "model.feature_extractor.feature_extractor.layer3.4.conv1.weight", "model.feature_extractor.feature_extractor.layer3.4.bn1.weight", "model.feature_extractor.feature_extractor.layer3.4.bn1.bias", "model.feature_extractor.feature_extractor.layer3.4.bn1.running_mean", "model.feature_extractor.feature_extractor.layer3.4.bn1.running_var", "model.feature_extractor.feature_extractor.layer3.4.conv2.weight", "model.feature_extractor.feature_extractor.layer3.4.bn2.weight", "model.feature_extractor.feature_extractor.layer3.4.bn2.bias", "model.feature_extractor.feature_extractor.layer3.4.bn2.running_mean", "model.feature_extractor.feature_extractor.layer3.4.bn2.running_var", "model.feature_extractor.feature_extractor.layer3.4.conv3.weight", "model.feature_extractor.feature_extractor.layer3.4.bn3.weight", "model.feature_extractor.feature_extractor.layer3.4.bn3.bias", "model.feature_extractor.feature_extractor.layer3.4.bn3.running_mean", "model.feature_extractor.feature_extractor.layer3.4.bn3.running_var", "model.feature_extractor.feature_extractor.layer3.5.conv1.weight", "model.feature_extractor.feature_extractor.layer3.5.bn1.weight", "model.feature_extractor.feature_extractor.layer3.5.bn1.bias", "model.feature_extractor.feature_extractor.layer3.5.bn1.running_mean", "model.feature_extractor.feature_extractor.layer3.5.bn1.running_var", "model.feature_extractor.feature_extractor.layer3.5.conv2.weight", "model.feature_extractor.feature_extractor.layer3.5.bn2.weight", "model.feature_extractor.feature_extractor.layer3.5.bn2.bias", "model.feature_extractor.feature_extractor.layer3.5.bn2.running_mean", "model.feature_extractor.feature_extractor.layer3.5.bn2.running_var", "model.feature_extractor.feature_extractor.layer3.5.conv3.weight", "model.feature_extractor.feature_extractor.layer3.5.bn3.weight", "model.feature_extractor.feature_extractor.layer3.5.bn3.bias", "model.feature_extractor.feature_extractor.layer3.5.bn3.running_mean", "model.feature_extractor.feature_extractor.layer3.5.bn3.running_var", "model.anomaly_map_generator.blur.kernel".

And this is the code I'm using:

        config = get_configurable_parameters(config_path=my_args['config'])
        config.trainer.resume_from_checkpoint = str(my_args['weights'])
        config.visualization.show_images = my_args['show']
        config.visualization.mode = my_args['visualization_mode']
        if my_args['output']:  # overwrite save path
            config.visualization.save_images = True
            config.visualization.image_save_path = my_args['output']
        else:
            config.visualization.save_images = False

        model = get_model(config)
        callbacks = get_callbacks(config)

        trainer = Trainer(callbacks=callbacks, **config.trainer)

        transform_config = config.dataset.transform_config.val if "transform_config" in config.dataset.keys() else None
        dataset = InferenceDataset(
            my_args['input'], image_size=tuple(config.dataset.image_size), transform_config=transform_config
        )
        dataloader = DataLoader(dataset)
        trainer.predict(model=model, dataloaders=[dataloader])

With weights trained on Colab, and doing inference on CPU. This is the models/patchcore/config.yaml file, almost standard:
dataset:
  name: mvtec #options: [mvtec, btech, folder]
  format: mvtec
  path: ./datasets/Tesmec
  task: segmentation
  category: rocks
  image_size: 448
  train_batch_size: 32
  test_batch_size: 1
  num_workers: 8
  transform_config:
    train: null
    val: null
  create_validation_set: false
  tiling:
    apply: false
    tile_size: 64
    stride: null
    remove_border_count: 0
    use_random_tiling: False
    random_tile_count: 16

model:
  name: patchcore
  backbone: wide_resnet50_2
  pre_trained: true
  layers:
    - layer1
    - layer2
    - layer3
  coreset_sampling_ratio: 0.1
  num_neighbors: 9
  normalization_method: min_max # options: [null, min_max, cdf]

metrics:
  image:
    - F1Score
    - AUROC
  pixel:
    - F1Score
    - AUROC
  threshold:
    image_default: 0
    pixel_default: 0
    adaptive: true

visualization:
  show_images: False # show images on the screen
  save_images: True # save images to the file system
  log_images: True # log images to the available loggers (if any)
  image_save_path: null # path to which images will be saved
  mode: full # options: ["full", "simple"]

project:
  seed: 42
  path: ./results

logging:
  logger: [] # options: [tensorboard, wandb, csv] or combinations.
  log_graph: false # Logs the model graph to respective logger.

optimization:
  export_mode: null # options: onnx, openvino

# PL Trainer Args. Don't add extra parameter here.
trainer:
  accelerator: auto # <"cpu", "gpu", "tpu", "ipu", "hpu", "auto">
  accumulate_grad_batches: 1
  amp_backend: native
  auto_lr_find: false
  auto_scale_batch_size: false
  auto_select_gpus: false
  benchmark: false
  check_val_every_n_epoch: 1 # Don't validate before extracting features.
  default_root_dir: null
  detect_anomaly: false
  deterministic: false
  devices: 1
  enable_checkpointing: true
  enable_model_summary: true
  enable_progress_bar: true
  fast_dev_run: false
  gpus: null # Set automatically
  gradient_clip_val: 0
  ipus: null
  limit_predict_batches: 1.0
  limit_test_batches: 1.0
  limit_train_batches: 1.0
  limit_val_batches: 1.0
  log_every_n_steps: 50
  log_gpu_memory: null
  max_epochs: 1
  max_steps: -1
  max_time: null
  min_epochs: null
  min_steps: null
  move_metrics_to_cpu: false
  multiple_trainloader_mode: max_size_cycle
  num_nodes: 1
  num_processes: null
  num_sanity_val_steps: 0
  overfit_batches: 0.0
  plugins: null
  precision: 32
  profiler: null
  reload_dataloaders_every_n_epochs: 0
  replace_sampler_ddp: true
  strategy: null
  sync_batchnorm: false
  tpu_cores: null
  track_grad_norm: -1
  val_check_interval: 1.0 # Don't validate before extracting features.

@alevangel you might have not installed the same anomalib version on colab and locally where your are running your inference

@alexriedel1 on Colab I'm doing:
!git clone https://github.com/openvinotoolkit/anomalib
While on local I'm on the last commit of the main branch, SHA:
bd369190cdb49f22a22ebd058ea4af46f50aee26
Those versions are not the same?

@alexriedel1 I'm quite sure that I'm on the same commit on both sides:
!git checkout bd369190cdb49f22a22ebd058ea4af46f50aee26
And I'm training on colab with the method:
!python tools/train.py --model "patchcore"

Do you have weights for leather/patchcore trained with the most recent version? So that maybe I can try on my local.

Unfortunately I don't. Can you show the code you are using for loading the trained model?

This is the full code that I'm using in local:
        my_args = {'config': 'anomalib/models/patchcore/config.yaml',
                   'weights': f'results/patchcore/mvtec/leather/weights/model.ckpt',
                   'input': file_path,
                   'output': 'app/static/results/',
                   'visualization_mode': 'simple',
                   'show': False}

        config = get_configurable_parameters(config_path=my_args['config'])
        config.trainer.resume_from_checkpoint = str(my_args['weights'])
        config.visualization.show_images = my_args['show']
        config.visualization.mode = my_args['visualization_mode']
        if my_args['output']:  # overwrite save path
            config.visualization.save_images = True
            config.visualization.image_save_path = my_args['output']
        else:
            config.visualization.save_images = False

        model = get_model(config)
        callbacks = get_callbacks(config)

        trainer = Trainer(callbacks=callbacks, **config.trainer)

        transform_config = config.dataset.transform_config.val if "transform_config" in config.dataset.keys() else None
        dataset = InferenceDataset(
            my_args['input'], image_size=tuple(config.dataset.image_size), transform_config=transform_config
        )
        dataloader = DataLoader(dataset)
        trainer.predict(model=model, dataloaders=[dataloader])

Also I had to change this line:
https://github.com/openvinotoolkit/anomalib/blob/bd369190cdb49f22a22ebd058ea4af46f50aee26/anomalib/utils/callbacks/model_loader.py#L38
to:
pl_module.load_state_dict(torch.load(self.weights_path, map_location=torch.device('cpu')["state_dict"])
This is also my env:
absl-py==1.2.0
aiohttp==3.8.1
aiosignal==1.2.0
albumentations==1.2.1
analytics-python==1.4.0
-e git+https://github.com/openvinotoolkit/anomalib@bd369190cdb49f22a22ebd058ea4af46f50aee26#egg=anomalib
antlr4-python3-runtime==4.9.3
anyio==3.6.1
async-timeout==4.0.2
attrs==22.1.0
backoff==1.10.0
bcrypt==4.0.0
cachetools==5.2.0
certifi==2022.6.15
cffi==1.15.1
charset-normalizer==2.1.1
click==8.1.3
colorama==0.4.5
cryptography==37.0.4
cycler==0.11.0
docker-pycreds==0.4.0
docstring-parser==0.14.1
einops==0.4.1
fastapi==0.81.0
ffmpy==0.3.0
Flask==2.2.2
fonttools==4.37.1
frozenlist==1.3.1
fsspec==2022.8.2
gitdb==4.0.9
GitPython==3.1.27
google-auth==2.11.0
google-auth-oauthlib==0.4.6
gradio==3.2
grpcio==1.47.0
h11==0.12.0
httpcore==0.15.0
httpx==0.23.0
idna==3.3
imageio==2.21.2
imgaug==0.4.0
importlib-metadata==4.12.0
itsdangerous==2.1.2
Jinja2==3.1.2
joblib==1.1.0
jsonargparse==4.13.2
kiwisolver==1.4.4
kornia==0.6.7
linkify-it-py==1.0.3
Markdown==3.4.1
markdown-it-py==2.1.0
MarkupSafe==2.1.1
matplotlib==3.5.3
mdit-py-plugins==0.3.0
mdurl==0.1.2
monotonic==1.6
multidict==6.0.2
networkx==2.8.6
numpy==1.23.2
oauthlib==3.2.0
omegaconf==2.2.3
opencv-python==<IP_ADDRESS>
opencv-python-headless==<IP_ADDRESS>
orjson==3.8.0
packaging==21.3
pandas==1.4.4
paramiko==2.11.0
pathtools==0.1.2
Pillow==9.2.0
promise==2.3
protobuf==3.19.4
psutil==5.9.1
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycparser==2.21
pycryptodome==3.15.0
pydantic==1.10.1
pyDeprecate==0.3.2
pydub==0.25.1
PyNaCl==1.5.0
pyparsing==3.0.9
python-dateutil==2.8.2
python-multipart==0.0.5
pytorch-lightning==1.6.5
pytz==2022.2.1
PyWavelets==1.3.0
PyYAML==6.0
qudida==0.0.4
requests==2.28.1
requests-oauthlib==1.3.1
rfc3986==1.5.0
rsa==4.9
scikit-image==0.19.3
scikit-learn==1.1.2
scipy==1.9.1
sentry-sdk==1.9.6
setproctitle==1.3.2
Shapely==1.8.4
shortuuid==1.0.9
six==1.16.0
smmap==5.0.0
sniffio==1.2.0
starlette==0.19.1
tensorboard==2.10.0
tensorboard-data-server==0.6.1
tensorboard-plugin-wit==1.8.1
threadpoolctl==3.1.0
tifffile==2022.8.12
timm==0.5.4
torch==1.11.0
torchmetrics==0.9.1
torchtext==0.12.0
torchvision==0.12.0
tqdm==4.64.0
typing_extensions==4.3.0
uc-micro-py==1.0.1
urllib3==1.26.12
uvicorn==0.18.3
wandb==0.12.17
websockets==10.3
Werkzeug==2.2.2
yarl==1.8.1
zipp==3.8.1

@alexriedel1 actually I think as you that is a version problem, running inferences on Colab seems work:
!python tools/inference/lightning_inference.py \
    --config anomalib/models/patchcore/config.yaml \
    --weights results/patchcore/mvtec/leather/weights/model.ckpt \
    --input datasets/MVTec/leather/test/cut/000.png \
    --output test_results

But I am pretty sure that is the same commit on both side... where is the trick?! :'(

Hm. can you please show the output of
import anomalib
print(anomalib.__version__)

on both colab and your local machine?

@alexriedel1 on both sides is
__version__ = "0.3.5"

@alexriedel1 oh gosh! It was a messy with the colab versions, I found the problem where was... In the big block of isntalling libraries I also installed anomalib (while also cloning the git), and this created an overlapping in the versions.
Now it works :') Thanks!!


python37:AttributeError: '_shims' object has no attribute 'InstallRequirement'

Be sure to check the existing issues (both open and closed!), and make sure you are running the latest version of Pipenv.
Check the diagnose documentation for common issues before posting! We may close your issue if it is very similar to one of them. Please be considerate, or be on your way.
Make sure to mention your debugging experience if the documented solution failed.
Issue description
pipenv install tornado failed
Expected result
Describe what you expected.
Actual result
Installing tornado…
Adding tornado to Pipfile's [packages]…
✔ Installation Succeeded
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
✘ Locking Failed!
Traceback (most recent call last):
  File "/home/zhaodachuan/zhaodachuan/anaconda3/lib/python3.7/site-packages/pipenv/resolver.py", line 126, in <module>
    main()
  File "/home/zhaodachuan/zhaodachuan/anaconda3/lib/python3.7/site-packages/pipenv/resolver.py", line 119, in main
    parsed.requirements_dir, parsed.packages)
  File "/home/zhaodachuan/zhaodachuan/anaconda3/lib/python3.7/site-packages/pipenv/resolver.py", line 85, in _main
    requirements_dir=requirements_dir,
  File "/home/zhaodachuan/zhaodachuan/anaconda3/lib/python3.7/site-packages/pipenv/resolver.py", line 69, in resolve
    req_dir=requirements_dir
  File "/home/zhaodachuan/zhaodachuan/anaconda3/lib/python3.7/site-packages/pipenv/utils.py", line 726, in resolve_deps
    req_dir=req_dir,
  File "/home/zhaodachuan/zhaodachuan/anaconda3/lib/python3.7/site-packages/pipenv/utils.py", line 477, in actually_resolve_deps
    deps, index_lookup, markers_lookup, project, sources,
  File "/home/zhaodachuan/zhaodachuan/anaconda3/lib/python3.7/site-packages/pipenv/utils.py", line 224, in get_resolver_metadata
    req = Requirement.from_line(dep)
  File "/home/zhaodachuan/zhaodachuan/anaconda3/lib/python3.7/site-packages/pipenv/vendor/requirementslib/models/requirements.py", line 1068, in from_line
    if isinstance(line, pip_shims.shims.InstallRequirement):
  File "/home/zhaodachuan/zhaodachuan/anaconda3/lib/python3.7/site-packages/pipenv/vendor/pip_shims/shims.py", line 254, in __getattr__
    return super(_shims, self).__getattribute__(*args, **kwargs)
AttributeError: '_shims' object has no attribute 'InstallRequirement'
File "/home/zhaodachuan/zhaodachuan/anaconda3/lib/python3.7/site-packages/pipenv/resolver.py", line 126, in <module>
    main()
  File "/home/zhaodachuan/zhaodachuan/anaconda3/lib/python3.7/site-packages/pipenv/resolver.py", line 119, in main
    parsed.requirements_dir, parsed.packages)
  File "/home/zhaodachuan/zhaodachuan/anaconda3/lib/python3.7/site-packages/pipenv/resolver.py", line 85, in _main
    requirements_dir=requirements_dir,
  File "/home/zhaodachuan/zhaodachuan/anaconda3/lib/python3.7/site-packages/pipenv/resolver.py", line 69, in resolve
    req_dir=requirements_dir
  File "/home/zhaodachuan/zhaodachuan/anaconda3/lib/python3.7/site-packages/pipenv/utils.py", line 726, in resolve_deps
    req_dir=req_dir,
  File "/home/zhaodachuan/zhaodachuan/anaconda3/lib/python3.7/site-packages/pipenv/utils.py", line 477, in actually_resolve_deps
    deps, index_lookup, markers_lookup, project, sources,
  File "/home/zhaodachuan/zhaodachuan/anaconda3/lib/python3.7/site-packages/pipenv/utils.py", line 224, in get_resolver_metadata
    req = Requirement.from_line(dep)
  File "/home/zhaodachuan/zhaodachuan/anaconda3/lib/python3.7/site-packages/pipenv/vendor/requirementslib/models/requirements.py", line 1068, in from_line
    if isinstance(line, pip_shims.shims.InstallRequirement):
  File "/home/zhaodachuan/zhaodachuan/anaconda3/lib/python3.7/site-packages/pipenv/vendor/pip_shims/shims.py", line 254, in __getattr__
    return super(_shims, self).__getattribute__(*args, **kwargs)
AttributeError: '_shims' object has no attribute 'InstallRequirement'

Steps to replicate
Provide the steps to replicate (which usually at least includes the commands and the Pipfile).

Please run $ pipenv --support, and paste the results here. Don't put backticks (`) around it! The output already contains Markdown formatting.
$ pipenv --support
Pipenv version: '2018.11.26'
Pipenv location: '/home/zhaodachuan/zhaodachuan/anaconda3/lib/python3.7/site-packages/pipenv'
Python location: '/home/zhaodachuan/zhaodachuan/anaconda3/bin/python'
Python installations found:

3.7.1: /home/zhaodachuan/.local/share/virtualenvs/back-end-9PQNjTVn/bin/python
3.7.1: /home/zhaodachuan/zhaodachuan/anaconda3/bin/python
2.7.5: /usr/bin/python

PEP 508 Information:
{'implementation_name': 'cpython',
 'implementation_version': '3.7.1',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '3.10.0-693.2.2.el7.x86_64',
 'platform_system': 'Linux',
 'platform_version': '#1 SMP Tue Sep 12 22:26:13 UTC 2017',
 'python_full_version': '3.7.1',
 'python_version': '3.7',
 'sys_platform': 'linux'}

System environment variables:

XDG_SESSION_ID
HOSTNAME
PIP_PYTHON_PATH
SHELL
TERM
HISTSIZE
SSH_CLIENT
CONDA_SHLVL
CONDA_PROMPT_MODIFIER
SSH_TTY
USER
LS_COLORS
CONDA_EXE
VIRTUAL_ENV
PIPENV_ACTIVE
PATH
MAIL
CONDA_PREFIX
PWD
LANG
PS1
PYTHONDONTWRITEBYTECODE
HISTCONTROL
HOME
SHLVL
CONDA_PYTHON_EXE
LOGNAME
PIP_DISABLE_PIP_VERSION_CHECK
SSH_CONNECTION
CONDA_DEFAULT_ENV
LESSOPEN
XDG_RUNTIME_DIR
_
PIP_SHIMS_BASE_MODULE
PYTHONFINDER_IGNORE_UNSUPPORTED

Pipenv–specific environment variables:

PIPENV_ACTIVE: 1

Debug–specific environment variables:

PATH: /home/zhaodachuan/.local/share/virtualenvs/back-end-9PQNjTVn/bin:/home/zhaodachuan/zhaodachuan/anaconda3/bin:/mnt/data/zhaodachuan/anaconda3/bin:/home/zhaodachuan/zhaodachuan/anaconda3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
SHELL: /bin/bash
LANG: zh_CN.UTF-8
PWD: /home/zhaodachuan/zhaodachuan/code/data_show_proj/back-end
VIRTUAL_ENV: /home/zhaodachuan/.local/share/virtualenvs/back-end-9PQNjTVn

Contents of Pipfile ('/mnt/data/zhaodachuan/code/data_show_proj/back-end/Pipfile'):
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
tornado = "*"

[requires]
python_version = "3.7"

(1) I meet the same problem.  My environment is
python:   3.6.8
anaconda: 4.6.2
Maybe there is some conflict between anaconda_python and pipenv
(2) If I install pipenv with "--user" argument, then "pipenv install numpy" will report another error
liangjie@hb1:~/myproject/python/flask/pipenv_flask$ pipenv install
Creating a virtualenv for this project…
Pipfile: /home/liangjie/myproject/python/flask/pipenv_flask/Pipfile
Using /home/liangjie/anaconda3/bin/python3 (3.6.8) to create virtualenv…
⠴ Creating virtual environment...Using base prefix '/home/liangjie/anaconda3'
New python executable in /home/liangjie/.local/share/virtualenvs/pipenv_flask-88yYFRdh/bin/python3
Also creating executable in /home/liangjie/.local/share/virtualenvs/pipenv_flask-88yYFRdh/bin/python
Installing setuptools, pip, wheel...
done.
Running virtualenv with interpreter /home/liangjie/anaconda3/bin/python3
✔ Successfully created virtual environment!
Virtualenv location: /home/liangjie/.local/share/virtualenvs/pipenv_flask-88yYFRdh
Pipfile.lock (4fccdf) out of date, updating to (ca72e7)…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
✘ Locking Failed!
[pipenv.exceptions.ResolutionFailure]:   File "/home/liangjie/.local/lib/python3.6/site-packages/pipenv/resolver.py", line 69, in resolve
[pipenv.exceptions.ResolutionFailure]:       req_dir=requirements_dir
[pipenv.exceptions.ResolutionFailure]:   File "/home/liangjie/.local/lib/python3.6/site-packages/pipenv/utils.py", line 726, in resolve_deps
[pipenv.exceptions.ResolutionFailure]:       req_dir=req_dir,
[pipenv.exceptions.ResolutionFailure]:   File "/home/liangjie/.local/lib/python3.6/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps
[pipenv.exceptions.ResolutionFailure]:       resolved_tree = resolver.resolve()
[pipenv.exceptions.ResolutionFailure]:   File "/home/liangjie/.local/lib/python3.6/site-packages/pipenv/utils.py", line 395, in resolve
[pipenv.exceptions.ResolutionFailure]:       raise ResolutionFailure(message=str(e))
[pipenv.exceptions.ResolutionFailure]:       pipenv.exceptions.ResolutionFailure: ERROR: ERROR: Could not find a version that matches numpy
[pipenv.exceptions.ResolutionFailure]:       No versions found
[pipenv.exceptions.ResolutionFailure]: Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
First try clearing your dependency cache with $ pipenv lock --clear, then try the original command again.
Alternatively, you can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
Hint: try $ pipenv lock --pre if it is a pre-release dependency.
ERROR: ERROR: Could not find a version that matches numpy
No versions found
Was https://pypi.org/simple reachable?
[pipenv.exceptions.ResolutionFailure]:       req_dir=requirements_dir
[pipenv.exceptions.ResolutionFailure]:   File "/home/liangjie/.local/lib/python3.6/site-packages/pipenv/utils.py", line 726, in resolve_deps
[pipenv.exceptions.ResolutionFailure]:       req_dir=req_dir,
[pipenv.exceptions.ResolutionFailure]:   File "/home/liangjie/.local/lib/python3.6/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps
[pipenv.exceptions.ResolutionFailure]:       resolved_tree = resolver.resolve()
[pipenv.exceptions.ResolutionFailure]:   File "/home/liangjie/.local/lib/python3.6/site-packages/pipenv/utils.py", line 395, in resolve
[pipenv.exceptions.ResolutionFailure]:       raise ResolutionFailure(message=str(e))
[pipenv.exceptions.ResolutionFailure]:       pipenv.exceptions.ResolutionFailure: ERROR: ERROR: Could not find a version that matches numpy
[pipenv.exceptions.ResolutionFailure]:       No versions found
[pipenv.exceptions.ResolutionFailure]: Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
First try clearing your dependency cache with $ pipenv lock --clear, then try the original command again.
Alternatively, you can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
Hint: try $ pipenv lock --pre if it is a pre-release dependency.
ERROR: ERROR: Could not find a version that matches numpy
No versions found
Was https://pypi.org/simple reachable?

I test several releases of pipenv, and none of them could work with conda-python.
version 2018.11.14  reports error:  AttributeError: '_shims' object has no attribute 'InstallRequirement'
version 2018.10.13  reports error:  ImportError: cannot import name 'InstallRequirement'
version 2018.10.9  reports error:  ImportError: cannot import name 'InstallRequirement'
version 2018.7.1  reports error:  ImportError: cannot import name 'HTTPSHandler'
version 2018.6.25  reports error:  ModuleNotFoundError: No module named 'pip.basecommand'
version 2018.5.18  reports error:  ImportError: cannot import name 'HTTPSHandler'
from the python 2018 report(https://www.jetbrains.com/research/python-developers-survey-2018/),  there are 22% pythoners are using conda-python.    We hope admins could add this support.

I dont realy know what is causing this but came up with a workaround:
https://gist.github.com/etele/599828d3a446532dd194b88d175f972a (it deletes the lib-dynload dir and recreates it as a symlink)
the problem what is causing it, is the that the lib-dynload is now as a directory and the files within are symlinked and it somehow matters.

Thanks for @etele workaround.   It solves my issue.

with a little typo we noticed that without creating the link on the directory it worked too.
and it would be good to know what is the real problem

it appears that creating virtualenvs with anaconda is causing substantial problems, i'll try to triage this for the next release
thanks for the report!

It looks like this was a bug in virtualenv, one of these two: pypa/virtualenv#1327 pypa/virtualenv#1282 and it should be fixed now.  Let me know if you continue to experience issues


Implement sendfile on FreeBSD and Darwin

This PR exposes the sendfile system call on libc's supported BSD-likes:

FreeBSD
Darwin (macOS/iOS)

DragonFly could be supported in the future, but I was unable to build rustc to test.
Note that NetBSD has no equivalent system call.

Thanks for the very quick feedback! I'll update this PR soon.

I would still like to see some doc comments and a CHANGELOG entry.  I would consider Dragonfly support to be optional, since we don't test that platform anyway.

I haven't been able to build rustc on DragonFly after several tries, so I will not implement that in this PR. I'll add the doc comments, add the change log entry, clean up my TODOs, rebase, and ping you when it's ready. Thanks again!

@asomers and @Susurrus this is ready for re-review! I believe it's complete.

@asomers ready for another look!

@Susurrus style comments addressed! Ready for another look.

bors r+

The test failure is weird.  It looks like Nix's code is wrong, and AFAICT this should've been failing ever since 53789456df265e685475f8eeeea956d8ec92ded9, but it never failed until now.  There have been no recent changes in either libc or japaric/cross that look related.  I don't know why it just began to fail.

A recent PR merged into libc changed the libc::bind function signature for 64-bit Android. That's what's causing the build failure. I'm quite confident it's unrelated to these changes.

You're right; I just couldn't find that with git blame for some reason.

Please see #906 for a fix.

bors r+


Teaspoon fails to run on unicorn server

System info:
Teaspoon-qunit v1.18
Unicorn v4.8
Ruby 2.2.0
Rails 4.1.0
Teaspoon runs fine from the command line using the default Webrick server but when I change the server to Unicorn, either in the teaspoon-env.rb file to config.server = :unicorn or by using the cli command teaspoon --server unicorn, I get the following error:

Starting the Teaspoon server... /Users/sid/specx/vendor/ruby/2.2.0/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:247:in require': cannot load such file -- rack/handler/unicorn (LoadError)
from /Users/sid/specx/vendor/ruby/2.2.0/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:247:in block in require' 	from /Users/sid/specx/vendor/ruby/2.2.0/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:232:in load_dependency'
from /Users/sid/specx/vendor/ruby/2.2.0/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:247:in require' 	from /Users/sid/specx/vendor/ruby/2.2.0/gems/rack-1.5.3/lib/rack/handler.rb:76:in try_require'
from /Users/sid/specx/vendor/ruby/2.2.0/gems/rack-1.5.3/lib/rack/handler.rb:16:in get' 	from /Users/sid/specx/vendor/ruby/2.2.0/gems/rack-1.5.3/lib/rack/server.rb:268:in server'
from /Users/sid/specx/vendor/ruby/2.2.0/gems/rack-1.5.3/lib/rack/server.rb:264:in start' 	from /Users/sid/specx/vendor/ruby/2.2.0/gems/teaspoon-1.0.2/lib/teaspoon/server.rb:19:in block in start'`

(Note that I can use Teaspoon in the browser with Unicorn, this just happens when I try to run Teaspoon with Unicorn from the CLI)

Hmm.. so, there is the ability to run teaspoon against an already running server -- it's not the solution potentially, but gets you a working version in the interim... start the server on whatever port you want, and you can then specify the already running server in the CLI arguments. You may also want to look at configuring/setting your server via the CLI or configuration:
https://github.com/modeset/teaspoon/wiki/Teaspoon-Configuration#console-runner-specific
I'd guess you must've set it to unicorn in your configuration? I'm unsure what you're getting by doing that, and so letting it run with something like thin (or even Rack::Server) would probably fix your problem. Any reason you need it to run with unicorn, or is it just improperly configured?

oh, didn't read the issue fully. heh, sorry about that. Yeah, rack doesn't know about unicorn, cause that's not how unicorn and rack interact because of the nature of unicorn. I'd say don't set your configuration to something that doesn't work. ;-P


Is there any way to read the HTTP Response Header of a WebView?

It goes like this. I open a URL in a WebView which does authentication. It returns a success page with a token in the response header. Is there anyway to access the response header? I'm open to Custom widgets if that can help. Thanks!

Currently that is not possible. We would need to add that as separate feature.

I see, noted.

You wouldn't necessarily need to close the issue. The request is valid.

Roger that. I managed resolved my problem through other means (external to tabris.js), so it's not crucial to me for now. But it would be really useful for more complex use cases in future.

Please note that there would be no way to support this in winRT.

Reading the headers if also not possible on Android. Only if we were to proxy all requests that go to the webview.

Unfortunately, this has came back to haunt me. The vendor for the authentication service has changed and my previous workaround no longer works, so now I'm back to having to need access to the response header, namely the Set-Cookie header. It basically boils down to the fact that the WebView does not share the same session as the (tabris.js) application, so even after having authenticated through the WebView, requests sent from the application will fail without the cookie.
I understand the proxy solution won't be coming anytime soon, but I was wondering if anyone has any suggestions as to how I could obtain the HttpOnly cookie? I know this sounds like cookie hijacking, but it's unfortunately how the authentication service is implemented.

@wilsonna Seems like we are just working on the very issue :) The proxy solution might not be that far-fetched after all. You can expect some news in the next days.

@wilsonna Just a stab in the dark, but is it possible for you to interact with your authentication services without a web view?  In other words, would this work?

Create a pair of TextInput widgets for the username and password
Use request to send that information to the server
Read the headers of the response

And based on the text in the Set-Cookie header you can store it in the "session", local storage, etc.

@cookieguru Thanks for your suggestion. Unfortunately, technical feasibility aside, that would mean the login credentials of the user would have to be made known to the app, which I suspect may be a security violation as the authentication service is a nation-wide single sign-on system to access all government eServices. Furthermore, it also involves 2-factor authentication and a series of redirects, which complicates things further.

@gosia-eclipsesource I'm really glad to hear that, thanks! :+1:

@gosia-eclipsesource May I know if there are any estimated time when this will be implemented? Or is there an intermediate solution which I can use? Sorry for bugging.

@wilsonna Access to HTTP headers won't make it into the 1.8 release, it will be published in 1.9 together with some other new WebView features. However, you can use the experimental property headers on WebView to set an object of additional HTTP headers for requests and you should be able to access response headers in the load event as event.headers.

@ralfstx Thanks. Sorry if this sounds noobish, but how do I go about testing this experimental property?

@wilsonna I have not tried it, but this should work:
var webview = new tabris.WebView({
  layoutData: {left: 0, top: 0, right: 0, bottom: 0},
  "url": "http://tabrisjs.com/"
}).on("navigate", function(event) {
  console.log(event.headers);
}).appendTo(page);

Actually, on second look,
@ralfstx Are you sure that's on the load event?  According to the docs there is no event parameter that comes with the load event.  But there is one on navigate.

@wilsonna And in addition to selecting to build against nightly make sure you're pointing to nightly in your package.json:
"dependencies": {
  "tabris": "https://tabrisjs.com/downloads/nightly/tabris.tgz"
}

@cookieguru Thanks for providing the snippet.
The headers should be available on load event, not navigate. The documentation will be adjusted once the API is finalized.

@ralfstx Sorry for the late reply, only just gotten the opportunity to test this. I updated package.json as described by cookieguru, did an "npm install tabris", verified in node_modules that it's indeed the WebView code that contains the "headers" property, then fired up the Developer app to try it out. However, I'm getting "undefined"  for the console log below. I suppose it would minimally be return an empty object if there are no headers? Is there anything else I should be doing?
var webView = tabris.create("WebView", {
	layoutData: {top:0, bottom:0, left:0, right:0},
	url: "http://........"
}).on("load", function(widget, event) {
	console.log(event.headers);
    });

The Developer app is running 1.7 of the native code, so while your JS code is listening for the load event and expecting two paramaters, the native code is only going to send one.  The only way to test out this feature would be to build the APK/IPA against nightly and include the nightly JS.  I'll have to defer to someone else as to why that's not working.

@cookieguru Thanks for the explanation. I've done both, so hopefully there's an explanation for this. I'll remain hopeful :pray:

@cookieguru Sorry for the confusion. Access to headers is only implemented on iOS yet. It turned out that it cannot be implemented in this manner on Android, so the API might change, or, in the worst case, we may even have to drop this feature. /cc @mpost

That's really bad news for me :disappointed:

There is no way to get the response headers from a WebView on Android. There however a few workarounds that can be implemented in Tabris.js.

Use fetch() to get the page and than but the html in the webview.
use embedded javascript inside the webview to make the request to the target page and intercept the headers that way.

See http://stackoverflow.com/questions/3134389/access-the-http-response-headers-in-a-webview and

Unfortunately, the tricky thing about this is that the Response Header can only be read after I've authenticated with the page within the WebView (I'm actually trying to catch the Set-Cookie header). So (1) would not work as there're alot of redirections happening during the authentication process. (2) would also not work as Javascript is not allowed to access the Set-Cookie header. And because it's a httpOnly cookie, I'm also not able to retrieve the cookie with Javascript. I understand that all these limitations on Javascript were enforced for security reasons, to prevent cookie hijacking. I know of other apps who have circumvented this by implementing native code to sniff the cookie at the WebView. But there doesn't seem to be any way for me to work around this issue.

@wilsonna fetch can follow redirects; there's even a module that makes it easy: go-fetch-js/follow-redirects

@cookieguru I'm not sure if follow-redirects works with tabris.js as it has a number of dependencies on node's libraries. Furthermore, aside from redirections, the login page has client side encryption as well as 2FA, so it's not really feasible to "spoof" the login page. As mentioned earlier, this login page is actually a nation-wide single sign-on system which grants access to many government services, as such, the credentials are highly sensitive and I am quite uncomfortable capturing the credentials with a spoofed page and submitting it on-behalf of the original login page.
Thanks for all you patience. If anyone else has any other ideas to share the session (Secure HttpOnly session cookie) between the WebView and the rest of the app, I would really be happy to hear about it. Meanwhile, I'll have to continue cracking my brain over this....

I'm now considering proxying all my requests through the WebView by appending my JSON into the URL query string. I will then create a servlet to take in these requests, convert them into normal REST requests, listen for the response, then finally redirecting it to a result page with the response JSON in the URL for my app to pickup. I'm guessing this should work.

I did a POC and in theory, it works. The downside is that I could only execute one query at a time, but that's not such a big problem. The problem is there being a limit to how long the URL can be (in the region of 2000-ish I believe). Even after compressing the JSON, I have a string that's 90,000 characters long, which can't be contained in the URL. Any plans to allow the app to read the body of the WebView? Right now, webview.get("html") only returns the HTML that was set programmatically, and not the contents loaded by the "url" property.

@mpost Thanks for pointing me in that direction. I suppose I would need to create a custom WebView widget? Would appreciate if you could help with the below before I begin:

Do I have to implement my own WebViewOperator from scratch (like the sample CalendarOperator), or is there one which I can extend from?
Do I have to upgrade to Pro plan (I'm currently on Developer Legacy) to create a custom widget as stated here https://tabrisjs.com/documentation/latest/custom-widgets-android?

@wilsonna: Regarding 2., you don't need to upgrade. All you need is local build, which is now available for all accounts. Thanks, we will fix that in the docs.

@gosia-eclipsesource Thanks for the clarification :smile:

@wilsonna We have discussed to add api to access the cookies but can't commit to a timeline yet.
Regarding creating your own widget... Yes you could start with a barebone operator like in the calendar example but (if you are adventures) you could also extend the BrowserOperator which is internal API. In there you can overwrite the call method and listen to your custom calls (like getCookie).
From the WebView in js you can write webView._nativeCall("getCookie", {})

@mpost Thanks for the really useful info. I'll explore the BrowserOperator when I have the opportunity. Meanwhile, I'll work on the barebone one first.

I've created a custom Browser widget (also called BrowserOperator but not extending from the internal API) at https://github.com/wilsonna/tabris-browser2. It's largely copied from the tabris-calendar widget. I'm able to get it to build with my app, but when it tries to create the widget, it'll throw the error Could not create object "com.wna.Browser" (reason: Could not find IOperationDelegate for null). After some trial and error, I'm guessing that my type "com.wna.Browser" is somehow not mapped to the BrowserOperator. Could someone be kind enough to take a look at my code and let me know where I've gone wrong?

@wilsonna The getType() method of your operator has to return the internal type used in JS: com.wna.Browser.

Btw... One thing that came to my mind... Since the CookieManager is not directly tied to a WebView instance you could actually create a Tabris.js "widget" called CookieManager. That will only deal with the cookies instead of the WebView.

@mpost I've actually made some changes since my last post and reverted everything to tabris-calendar, followed by incremental changes to try to identify the problem. The type is now called "ESBrowser" (both in getType() and _type). Pardon for using the com.eclipsesource package name for now. I'll rename it once I get this to work.
I'm still getting the same error though. I've narrowed the problem down to either the Javascript (looks unlikely since it's largely copied from tabris.js), or the way I implement the BrowserOperator, because the error only occurred when I replaced both of these. i.e. I think it's safe to rule out any configuration issue.
Regarding the CookieManager (I'm using java.net's CookieManager by the way), does that mean I would be able to get all cookies, no just for the app, but even those within the WebViews?

I was thinking about the android.webkit.CookieManager. I think it shares the cookies between all instances of android.webkit.WebView inside one app.

I started with android.webkit.CookieManager as well, but realised it could only return cookies if I were to pass it a URL. I read that java.net.CookieManager works the same, but allows listing of all cookies. Unfortunately, I haven't got to the stage to verify this yet.

Okay... that took me a while to spot...  :) The BrowserOperator takes either the constructor with BrowserOperator(TabrisActivity) or BrowserOperator(Activity, TabrisContext). You are using a constructor BrowserOperator(TabrisActivity, TabrisContext).

After getting my custom widget to work (java.net.CookieManager doesn't work, I had to revert to java.net.CookieManager), I later discovered that the Cordova Plugin CookieMaster (https://github.com/kristianhristov/cordova-cookie-master) actually works equally well, and it supports iOS too! :tired_face: I'm not sure why it didn't work the first time I tried it, but I'm sure glad it works now! I'll just put this here in case anyone needs it in future.
config.xml
<plugin name="com.cordova.plugins.cookiemaster" />

And in your js.
tabris.create("WebView", {
	layoutData: {top:0, bottom:0, left:0, right:0},
	url: 'http://your.login.url'
}).on("load", function(widget, event) {
	var url = widget.get("url");
	if (url.indexOf('a-string-in-the-url-that-signals-login-successful') >= 0) {
		cookieMaster.getCookieValue(url, 'MyCookieName', function(data) {
			var cookieValue = data.cookieValue;
			// do whatever you want with the cookie value
		}, function(error) {
			if (error) {
				console.log('error: ' + error);
			}
		});
	}
}).appendTo(page);

It wasn't the end of the story for me at this point, because in order to pass this cookie value in my XHR, I had to override the default XMLHttpRequest that came with tabris.js, to remove the restriction on setting the Cookie request header.
Thanks @mpost for your patience in helping me out. At least now, I know a little about creating custom widgets! :smile:

@wilsonna Glad that you managed to bring this functionality to work. We realize that reading the cookie store of an application is very valuable for login scenarios and we are working on a "native" implementation ourselfs. In the meantime it is good to hear that the plugin workes for you. :)
As you have seen we are also working on relaxing the XHR restrictions to be more usable in the Native app scenario. https://github.com/eclipsesource/tabris-js/issues/904

Just another update for the benefit of anyone who's interested.
While cookie-master works in retrieving the cookie from the WebView for Android, it does not work for iOS because I believe tabris.js uses the WKWebView (introduced from iOS 8 onwards) for its WebView, while cookie-master only works for UIWebView (introduced since iOS 2). It's close to impossible to get the cookies out of WKWebView as there is no API to do so.
Instead, I had to use the Cordova InAppBrowser in place of tabris.js's WebView, since it uses the UIWebView and works nicely with cookie-master.
I'm now happy to report that I was finally able to retrieve the session cookie which I needed for both Android and iOS and my authentication problems are truly and finally over :smile:
But of course, a native implementation would be very much preferred, but I foresee some difficulties with WKWebView, as I've experienced.


Audio cuts out when starting on Android

While listening to Bitcoin Audible on AntennaPod, I start Hexa and my audio from AntennaPod stops. Why does this happen?
Also, I'm listening with a bluetooth headphones.
Can Hexa not stop my podcast audio when it starts?

We will test it out. Thanks for reporting.
Do you have an Android or iOS device? Also any other I formation about your device that you can provide will be helpful.

As @antuz123 would be great to get more information about your device.
I suppose it’s Android as AntennaPod is only for Android AFIK.
While we investigate it might be worth keeping an eye on this particular issue as well https://github.com/AntennaPod/AntennaPod/issues/4530

Sure. I'm happy to provide information. I download the apps from the Google Play Store. I'm on an up-to-date Pixel 2 android phone. I am on Android version 11.

-Unable to replicate this issue on SAMSUNG A70

I tried to reproduce today and the issue didn't occur for me! Closing.


[WM-2642] submission scaling metrics

@mspector it seems there are 3 SonarCloud issues. Not sure how easy it might be to address them.

@salonishah11 about the sonarcloud issues: one is easy, but the other two might require a somewhat involved refactor. I'll take a look and see what I can do


Uploading files (not images) gives a 400 popup error

I am bale to upload images, but uploading a PDF gives an error:
HTTP error occurred during file upload (error status: 400).
This is easy to test because same issue happens on the demo site.

Hi @olia-bn
Currently only images are allowed, as you can see valides Mime types are 'image/jpeg', 'image/png', 'image/gif', 'image/svg+xml'. at src/Controller/Action/Admin/UploadEditorImageAction.php#L67
Do you want to create a PR to add the ability of uploading PDFs ?

I see. This action makes sense when inserting an image, but uploading files is also enabled when inserting a link.
So how I see it, it is WAI when accessed via "Insert image" but a bug when accessed via "Insert link".
This would probably call for a separate action when inserting a link, how would you get around doing that?

Extend WysiwygType.php and split actions for upload image and upload file
https://github.com/BitBagCommerce/SyliusCmsPlugin/blob/a9e908c97e02010ccfb87b047d2a6495a704e478/src/Form/Type/WysiwygType.php#L35
'filebrowserUploadUrl' => $this->urlGenerator->generate('app.cms.admin.upload_editor_file'),                 'filebrowserImageUploadUrl' => $this->urlGenerator->generate('bitbag_sylius_cms_plugin_admin_upload_editor_image'),

Hello @olia-bn,
Closing because it's an old issue, by default we only allow adding photos.


Evernote bug bounty - $300

Bounty
See the Contribution guidelines for how to claim this bounty.
Bounty: $300 USD
Timeframe: 10 days
Requirements
Bug bounty including the following Evernote bugs. Most of them are related to improper formatting, or missing conditions in file names.

[ ] #24
[ ] #187
[ ] #26
[ ] #184
[ ] #185
[ ] #190
[ ] #194
[ ] #200
[ ] #201

@akosbalasko let us know if you're interested in picking this up!

Hi @kepano ,
Thanks for tagging me!
Sure, I'm definitely interested, let me check the issues and get back to you tomorrow! (It's almost midnight here)

Hi @kepano ,
According to the contribution description, here is my formal application to the bounty:
Why would I be the best fit to the job:
Because I developed and actively maintain Yarle, I know what is where and how it is structured logically.
How I would approach the requirements:
This batch contains different type of issues: features(#200, #26) or bugs( #184, #185, #190), and  detailed in various level.

Some of them can be achieved as they are.
Some others (like #24  or #187 ) phisically cannot (Evernote does not export the required information into the enex). Therefore these latter issues would require workarounds involving manual pre-steps from the users at Evernote-side.
Some others are more general (#194 #201), I'd need more info about the problem. For instance I tested #201 , but it importing DFX works for me totally, so I think the problem is not related to the extension of the attachment.

Thanks again!

I have assigned the bounty to you. Please submit your initial PR by end of day February 6th.
Let's start with the easiest and most obvious ones first. If you have any questions about requirements on specific issues please post them here.
It sounds like we should consider ignoring #24 and #187, unless you can think of a way to support those?

Hi @kepano ,
I have some questions about some of the issues:
#184 : I cannot reproduce the problem, $ sign within note title works (it contain an image as well), linked.
#201 : same, it looks like that the issue description (e.g. the DFX extention causes problems) doesn't point the real problem.
What is your expectation, may I contact with the reporters and ask for more details?
Regarding #24 and #187, I think there is a workaround to achieve the expected result, but it requires manual modification within Evernote: as enex doesn't contain neither the hierarchy of tags nor the notebook stacks, tags and notebook names could be "flat" out with some predefined delimiter, and we could use that property to store the full-path of the notebooks and tags respectively. But this must be done by the import within Evernote. The preferred delimiter could be highlighter in the documentation of the Importer.
So assuming that the delimiter would be "<YARLE_DELIMITER>" and we have tag1 -> tag2 in notebookStack -> notebookA , the notebook should be renamed to notebookStack<YARLE_DELIMITER>notebookA and the tags to tag1<YARLE_DELIMITER>tag2.
I'm afraid this is the best what we can do with this badly designed enex export of Evernote.
What do you think, is it acceptable for Obsidian users to do?

@akosbalasko please go ahead and get additional detail from the users on issues #184, #194, #201
For #24 and #187 it sounds acceptable, but can you start by writing a bullet point version of the documentation first? I don't use Evernote myself so I am not clear how the user would go about doing this. What would the steps be for the user to add the delimiter?

@kepano , sure sure I'll start with the bullet points then.
One other thing: during the implementations I realized that generating the title "inside" the note with header1 doesn't look good as the filename itself appears at the top. May/Should I remove it?

Yes, we should remove the H1 title. It's not necessary and it's also different from how all other Importer formats work. Later we can add a generic option for all import types to add an H1, since this isn't Evernote-specific.
Regarding unit tests, I will leave this up to @lishid. I don't think it's necessary but he may disagree. In general we prefer to avoid external dependencies.

I think we are ok to not have tests for now. Importer isn't really a moving target unlike a living and frequently updated app so I think it would be ok for now to keep it simple. We could include some test cases in the /tests folder though.

@akosbalasko Yes, that makes sense to me. Go ahead. The tag notation seems intuitive enough. I don't have a strong opinion about the right delimiter for notebook stacks, what you have proposed sounds okay to me.


Use combine_first

Codecov Report

Merging #37 into master will decrease coverage by 0.06%.
The diff coverage is 92.85%.

@@            Coverage Diff            @@
##           master     #37      +/-   ##
=========================================
- Coverage   61.16%   61.1%   -0.07%
=========================================
  Files           7       7
  Lines         636     635       -1
  Branches      109     109
=========================================
- Hits          389     388       -1
  Misses        228     228
  Partials       19      19

Impacted Files
Coverage Δ

pybmpdb/summary.py
56.72% <92.85%> (-0.13%)
:arrow_down:

Continue to review full report at Codecov.

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


Google Storage Plugin for Snakemake

I pushed a first draft here https://github.com/snakemake/snakemake-storage-plugin-gs still under development.

I have now finalized and released that draft.


Tool tips

Added tooltips
I Need help with some of the tooltips

I do not know where to place it inside the GradeOrRmpRow function

@RVC13850 take a look at this code in the searchResultsTable.tsx file for an example of how to put a tooltip on a TableSortLabel: https://github.com/UTDNebula/utd-trends/blob/41ae833a6286939162489f1ac7ef28fea2d972d8/src/components/common/SearchResultsTable/searchResultsTable.tsx#L442-L457

Great job @RVC13850 Rithwik!


[hid] Add chrome.hid.getUserSelectedDevices

Hey @reillyeon,
This CL simply adds the "Add device" button with chrome.hid.getUserSelectedDevices. I've also removed the "usb_devices" permissions from the manifest file since I think they don't matter anymore.
BUG=#396

I've set minimum_chrome_version to 45.0.2439.3 and removed check for chrome.hid.getUserSelectedDevices


Removed self-inconsistency in README.md

The second rule is no semicolons on lines without multiple statements, the line itself has only one statement, yet some bozo put a semicolon at the end of it! This is clearly a MASSIVE oversight and must be resolved ASAP! I honestly can't believe the creators of a linter would make such a sloppy mistake. Don't you have linters for your markdown? If not you should invest in one. This one looks good from a quick Google search.
If you ever need your README reviewed in the future don't hesitate to call, I'm quite cheap at only $420,000/hr.

I'm sorry but if I merge this in OCD-part of me won't be able to fall asleep knowing there is ; missing in the README. It's bad enough I know it's missing in your fork...


Route being created in CCDB even cloud controller throwing CF-NotAuthorized

Issue
Route is being created in ccdb even though cloud foundry throws error for the user who dont have access for route creation to specific space.
Context
If space auditor try to create a route for a space then he gets
{
  "description": "You are not authorized to perform the requested action",
  "error_code": "CF-NotAuthorized",
  "code": 10003
}

but eventually route being created in ccdb.
Steps to Reproduce
Scenario 1. Create route with space auditor via cli
Scenario 2. Create route with any non-admin user who dont have any role in space via postman by providing
{
	"host": "testroute",
	"domain_guid": "1bb42e92-454e-4fb8-8d3a-b57cc2ee9829",
	"path":"",
	"space_guid":"6dd872c5-085d-42f1-8c71-4ff3036acd6b"
}

Expected result
Route should not be created
Current result
Cloud controller throwing error as below
{
"description": "You are not authorized to perform the requested action",
"error_code": "CF-NotAuthorized",
"code": 10003
}
But route created in ccdb.

@MuraliMolluru thanks for finding and filing this issue with us. We've addressed it with this story.

fix will be available in the next capi-release, thanks for the report!


Feature: Get routingkey&exchange from MessagePostProcessor

Currently, MessagePostProcessor provides two parameters :Message and Correlation, can the routingkey and exchange be passed in as well?

We could do that; in the meantime, you can simply subclass the CorrelationData and add the information there.


update devel_feedback_pipeline.py, feedback_pipeline.py

Fix to sort config alphabetically by name

Thanks for the PR! And congrats for being the first contributor who sent a PR to this project! :-)
Looking at your changes, that's an interesting approach to sort the configs first. I like that you only did one sort and it works for all the views. However, it basically works by accident — let me explain:
Doing the sorting this very early in the process means that all the operations that happen after that must respect this sorting. And that is not guaranteed, especially when storing data as dictionaries. Dictionaries, unlike lists, do not guarantee ordering.
So I suggest the following change: do the sorting as late in the process as possible, likely in the generate_pages function or in the html templates themselves. Remember that only lists guarantee items to be sorted, not dictionaries.
Hint: Rather than manipulating the data variable containing all the data as dictionaries, I'd create lists with the data I want to render, sort those, and work with these lists in the html templates.
What do you think?
Let me know if you have any questions.

Or this might be an even better approach that should work in the templates directly: https://stackoverflow.com/questions/16710112/python-iterate-over-dictionary-sorted-by-key/16710216


is the firmware still working anymore? I can't get the light turn solid

is the firmware still working anymore? I can't get the light turn solid,
I tried both v2, and v3 camera, seems like holding the setup only end up "ready to connect"

Are you holding the setup button while it is plugged in?

Having the same issue. I am holding down the setup button. It just seems to reset the camera and kicks it off the app. If I abandon the set up the app has dropped the connection. Tried multiple times. New Camera and its set up on app easily.

Try downgrading first to firmware <IP_ADDRESS>2 using the same procedure
https://support.wyze.com/hc/en-us/articles/360024852172
https://s3.us-west-2.amazonaws.com/download.wyzecam.com/firmware/v2/demo_<IP_ADDRESS>2.bin.zip
Then I was able to flash the rtsp firmware ok.

Interesting I have a Wyze Pan v2 - I have tried to downgrade my firmware (used different SD cards as well) - tried to downgrade to :
<IP_ADDRESS> (March 17, 2022)
<IP_ADDRESS> (February 17, 2022)
No matter what I try (different SD cards FAT32) power off, hold setup button, add power. Orange light stays on for about 10secs then it goes to flashing between orange and blue and just goes back into normal operation.
Doesnt seem like its allowing the downgrade of the firmware. They must of blocked it?

Like I said in the other thread, this is old firmware.  I think Wyze changed their bootloaders with one of the upgrades that would prevent downgrades.  I found some evidence to support this in their SW release notes.

Just tried with a v3 as well. Seems like we may be stuck.
Their docs suggest this is feasible still, as of April 2023. See https://support.wyze.com/hc/en-us/articles/360031490871-How-to-flash-your-Wyze-Cam-firmware-manually
Nonetheless, I failed to succeed. Tried looking thru the bin on a hex editor too, trying to find a version number in there. Probably could give it more of a deeper go--we could try fiddling with that, seeing if we can find a bypass.

RTSP is supported for all Wyze cameras with Scrypted:
https://docs.scrypted.app/add-camera.html
Additionally, Wyze Docker Bridge supports some camera models too.
Check compatibility:
https://github.com/mrlt8/docker-wyze-bridge?tab=readme-ov-file#supported-cameras
Both Available in Home Assistant as an addon.


Task handle order taxi post method

there's no need for taxiviewmodel, there's already a taxi model in database model we can use, apart from that your pull request does not contribute anything