Crash in image rendering during abstract generation

Describe the bug
Run:
make DESIGN_CONFIG=designs/asap7/mock-array-big/config.mk

Output:
[deleted]
==========================================================================
finish report_design_area
--------------------------------------------------------------------------
Design area 24 u^2 17% utilization.

Signal 11 received
Stack trace:
 0# 0x00005592FCB6B8A5 in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 1# 0x00007F67A863BCF0 in /lib/x86_64-linux-gnu/libc.so.6
 2# gui::DbInstDescriptor::getInstanceType(odb::dbInst*) const in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 3# gui::DisplayControls::getInstRow(odb::dbInst*) const in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 4# non-virtual thunk to gui::DisplayControls::isInstanceVisible(odb::dbInst*) in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 5# gui::RenderThread::drawBlock(QPainter*, odb::dbBlock*, odb::Rect const&, int) in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 6# gui::RenderThread::draw(QImage&, QRect const&, std::set<gui::Selected, std::less<gui::Selected>, std::allocator<gui::Selected> > const&, std::array<std::set<gui::Selected, std::less<gui::Selected>, std::allocator<gui::Selected> >, 8ul> const&, std::vector<std::unique_ptr<gui::Ruler, std::default_delete<gui::Ruler> >, std::allocator<std::unique_ptr<gui::Ruler, std::default_delete<gui::Ruler> > > > const&, double, QColor const&) in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 7# gui::RenderThread::run() in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 8# 0x00007F67A94CCC51 in /lib/x86_64-linux-gnu/libQt5Core.so.5
 9# 0x00007F67A8690402 in /lib/x86_64-linux-gnu/libc.so.6
10# 0x00007F67A871F590 in /lib/x86_64-linux-gnu/libc.so.6
Command terminated by signal 11
Elapsed time: 0:01.44[h:]min:sec. CPU time: user 1.30 sys 0.05 (94%). Peak memory: 259348KB.
make[1]: *** [Makefile:696: logs/asap7/mock-array-big_Element/base/6_report.log] Error 139
make[1]: Leaving directory '/home/oyvind/OpenROAD-flow-scripts/flow'
make: *** [Makefile:329: results/asap7/mock-array-big_Element/base/Element.lib] Error 2
o

Expected Behavior
No segfault
Environment
$ etc/Env.sh
Git commit: 2ccc898ac585790bc8aa1ddd9e823e2439b250cd
kernel: Linux 5.19.0-43-generic
os: Ubuntu 22.10 (Kinetic Kudu)
cmake version 3.24.2
-- The CXX compiler identification is GNU 12.2.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- OpenROAD version: v2.0-8554-g2ccc898ac
-- System name: Linux
-- Compiler: GNU 12.2.0
-- Build type: RELEASE
-- Install prefix: /usr/local
-- C++ Standard: 17
-- C++ Standard Required: ON
-- C++ Extensions: OFF
-- Found GTest: /usr/lib/x86_64-linux-gnu/cmake/GTest/GTestConfig.cmake (found version "1.12.1")
-- The C compiler identification is GNU 12.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Performing Test C_COMPILER_SUPPORTS__-Wall
-- Performing Test C_COMPILER_SUPPORTS__-Wall - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wall
-- Performing Test CXX_COMPILER_SUPPORTS__-Wall - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-array-bounds
-- Performing Test C_COMPILER_SUPPORTS__-Wno-array-bounds - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-array-bounds
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-array-bounds - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-nonnull
-- Performing Test C_COMPILER_SUPPORTS__-Wno-nonnull - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-nonnull
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-nonnull - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-maybe-uninitialized
-- Performing Test C_COMPILER_SUPPORTS__-Wno-maybe-uninitialized - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-maybe-uninitialized
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-maybe-uninitialized - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format-overflow
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format-overflow - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format-overflow
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format-overflow - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-variable
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-variable - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-variable
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-variable - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-function
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-function - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-function
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-function - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-write-strings
-- Performing Test C_COMPILER_SUPPORTS__-Wno-write-strings - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-write-strings
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-write-strings - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-sign-compare
-- Performing Test C_COMPILER_SUPPORTS__-Wno-sign-compare - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-sign-compare
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-sign-compare - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-deprecated
-- Performing Test C_COMPILER_SUPPORTS__-Wno-deprecated - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-deprecated
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-deprecated - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-c++11-narrowing
-- Performing Test C_COMPILER_SUPPORTS__-Wno-c++11-narrowing - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-c++11-narrowing
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-c++11-narrowing - Failed
-- Performing Test C_COMPILER_SUPPORTS__-Wno-register
-- Performing Test C_COMPILER_SUPPORTS__-Wno-register - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-register
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-register - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format CMake Error at src/CMakeLists.txt:230 (find_package):
  By not providing "Findspdlog.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "spdlog", but
  CMake did not find one.

  Could not find a package configuration file provided by "spdlog" with any
  of the following names:

    spdlogConfig.cmake
    spdlog-config.cmake

  Add the installation prefix of "spdlog" to CMAKE_PREFIX_PATH or set
  "spdlog_DIR" to a directory containing one of the above files.  If "spdlog"
  provides a separate development package or SDK, be sure it has been
  installed.

- Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal
-- Performing Test C_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal - Failed
-- Performing Test C_COMPILER_SUPPORTS__-fpermissive
-- Performing Test C_COMPILER_SUPPORTS__-fpermissive - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-fpermissive
-- Performing Test CXX_COMPILER_SUPPORTS__-fpermissive - Success
-- Performing Test C_COMPILER_SUPPORTS__-x
-- Performing Test C_COMPILER_SUPPORTS__-x - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-x
-- Performing Test CXX_COMPILER_SUPPORTS__-x - Failed
-- Performing Test C_COMPILER_SUPPORTS__c++
-- Performing Test C_COMPILER_SUPPORTS__c++ - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__c++
-- Performing Test CXX_COMPILER_SUPPORTS__c++ - Failed
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-but-set-variable
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-but-set-variable - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-but-set-variable
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-but-set-variable - Success
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- TCL readline library: /usr/lib/x86_64-linux-gnu/libtclreadline.so
-- TCL readline header: /usr/include/x86_64-linux-gnu
-- Found SWIG: /usr/bin/swig4.0 (found suitable version "4.0.2", minimum required is "3.0")
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake (found version "1.74.0")
-- boost: 1.74.0
-- Found Python3: /usr/include/python3.10 (found version "3.10.7") found components: Development Development.Module Development.Embed
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11")
-- Configuring incomplete, errors occurred!

To Reproduce
Run above
Relevant log output
No response
Screenshots
No response
Additional Context
No response

Is ORFS installed with --local or --local --latest?
With --local installation its getting stopped at placement stage.
Elapsed time: 0:02.17[h:]min:sec. CPU time: user 2.05 sys 0.11 (100%). Peak memory: 163348KB.
cp results/asap7/mock-array-big_Element/base/3_5_place_dp.odb results/asap7/mock-array-big_Element/base/3_place.odb
cp: \u2018results/asap7/mock-array-big_Element/base/3_5_place_dp.odb\u2019 and \u2018results/asap7/mock-array-big_Element/base/3_place.odb\u2019 are the same file
make[1]: *** [results/asap7/mock-array-big_Element/base/3_place.odb] Error 1
make[1]: Leaving directory `/home/vijayan/ORFS/OpenROAD-flow-scripts/flow'
make: *** [results/asap7/mock-array-big_Element/base/Element.lib] Error 2

Is ORFS installed with --local or --local --latest? With --local installation its getting stopped at placement stage.

It doesn't crash in Docker, only with --local and commit: 2ccc898ac585790bc8aa1ddd9e823e2439b250cd
I'm pretty sure this has to do with the updates to drawing and that @maliberty will know what it is by looking at it. I speculate that this wasn't caught on the build server because the build server runs in Docker.

I ran with
OR: 1823e2455f32c2eb5104b941e2d57bf254f44abf
ORFS: 7fd48d0e3b557156e56d4370116f1b9d465638ce
and got no crash and image files that look fine. eg:

@maliberty Is the error below relevant?
./build_openroad.sh --local --latest --openroad-args "-DCMAKE_BUID_TYPE=RELEASE -DCMAKE_CXX_FLAGS=-g"

ORFS: 7fd48d0e3b557156e56d4370116f1b9d465638ce
OR: 0994bfdb646b3d71842bd006f98d61c8af42908b
make DESIGN_CONFIG=designs/asap7/mock-array-big/Element/config.mk clean_all generate_abstract
[deleted]
OpenROAD v2.0-8645-g0994bfdb6
[INFO] Writing out GDS/OAS 'results/asap7/mock-array-big_Element/base/6_1_merged.gds'
Elapsed time: 0:01.02[h:]min:sec. CPU time: user 0.89 sys 0.08 (95%). Peak memory: 374432KB.
cp results/asap7/mock-array-big_Element/base/6_1_merged.gds results/asap7/mock-array-big_Element/base/6_final.gds
(/usr/bin/time -f 'Elapsed time: %E[h:]min:sec. CPU time: user %U sys %S (%P). Peak memory: %MKB.' /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad -exit -no_init  ./scripts/generate_abstract.tcl -metrics ./logs/asap7/mock-array-big_Element/base/generate_abstract.json) 2>&1 | tee ./logs/asap7/mock-array-big_Element/base/generate_abstract.log
OpenROAD v2.0-8645-g0994bfdb6
This program is licensed under the BSD-3 license. See the LICENSE file for details.
Components of this program may be licensed under more restrictive licenses which must be honored.
Starting generation of abstract views
Elapsed time: 0:02.76[h:]min:sec. CPU time: user 2.68 sys 0.08 (100%). Peak memory: 207948KB.
``

Then:

make DESIGN_CONFIG=designs/asap7/mock-array-big/config.mk clean_all generate_abstract

[deleted]
-r ./util/def2stream.py) 2>&1 | tee ./logs/asap7/mock-array-big/base/6_1_merge.log
[INFO] Reporting cells prior to loading DEF ...
[INFO] Reading DEF ...
ERROR: Unexpected end of file (line=112133, cell=MockArray, file=MockArray.lef) in Layout.read
./util/def2stream.py:113
Command exited with non-zero status 1
Elapsed time: 0:01.04[h:]min:sec. CPU time: user 0.94 sys 0.08 (98%). Peak memory: 377512KB.
make: *** [Makefile:750: results/asap7/mock-array-big/base/6_1_merged.gds] Error 1

MockArray.lef is truncated:

$ tail -n 10 results/asap7/mock-array-big/base/MockArray.lef
END io_outsUp_7[4]
PIN io_outsUp_7[5]
DIRECTION OUTPUT ;
USE SIGNAL ;
PORT
LAYER M5 ;
RECT  140.16 159.756 140.184 159.84 ;
END
END io_outsUp_7[5]
PIN io$

It looks like something bad happened during the generation of MockArray.lef but that seems unrelated to the image rendering.

Tried from top, doesn't crash.
@maliberty I'm closing, if you want to have a look at that unrelated issue, I'll leave you to it. We're not generating an abstract from mock-array-big, only mock-array-big/Element, so not urgent to fix.

It's back... It comes and goes...
make DESIGN_CONFIG=designs/asap7/mock-array-big/Element/config.mk
[deleted]
OpenROAD v2.0-8655-g6a4ea1ea5
This program is licensed under the BSD-3 license. See the LICENSE file for details.
Components of this program may be licensed under more restrictive licenses which must be honored.
[INFO] Deleted 0 routing obstructions
[INFO RCX-0431] Defined process_corner X with ext_model_index 0
[INFO RCX-0029] Defined extraction corner X
[INFO RCX-0008] extracting parasitics of Element ...
[INFO RCX-0435] Reading extraction model file ./platforms/asap7/rcx_patterns.rules ...
[INFO RCX-0436] RC segment generation Element (max_merge_res 50.0) ...
[INFO RCX-0040] Final 818 rc segments
[INFO RCX-0439] Coupling Cap extraction Element ...
[INFO RCX-0440] Coupling threshhold is 0.1000 fF, coupling capacitance less than 0.1000 fF will be grounded.
[INFO RCX-0043] 1214 wires to be extracted
[INFO RCX-0442] 71% completion -- 865 wires have been extracted
[INFO RCX-0442] 100% completion -- 1214 wires have been extracted
[INFO RCX-0045] Extract 228 nets, 1046 rsegs, 1046 caps, 618 ccs
[INFO RCX-0015] Finished extracting Element.
[INFO RCX-0016] Writing SPEF ...
[INFO RCX-0443] 228 nets finished
[INFO RCX-0017] Finished writing SPEF ...
[INFO PSM-0083] Error file is specified as: ./reports/asap7/mock-array-big_Element/base/VDD.rpt.
[WARNING PSM-0016] Voltage pad location (VSRC) file not specified, defaulting pad location to checkerboard pattern on core area.
[WARNING PSM-0017] X direction bump pitch is not specified, defaulting to 140um.
[WARNING PSM-0018] Y direction bump pitch is not specified, defaulting to 140um.
[WARNING PSM-0063] Specified bump pitches of 140.000 and 140.000 are less than core width of 12.096 or core height of 11.880. Changing bump location to the center of the die at (6.480, 6.480).
[WARNING PSM-0065] VSRC location not specified, using default checkerboard pattern with one VDD every size bumps in x-direction and one in two bumps in the y-direction
[INFO PSM-0076] Setting metal node density to be standard cell height times 5.
[INFO PSM-0031] Number of PDN nodes on net VDD = 2268.
[INFO PSM-0064] Number of voltage sources = 1.
[INFO PSM-0040] All PDN stripes on net VDD are connected.
########## IR report #################
Worstcase voltage: 7.70e-01 V
Average IR drop  : 6.64e-05 V
Worstcase IR drop: 1.12e-04 V
######################################
[INFO PSM-0083] Error file is specified as: ./reports/asap7/mock-array-big_Element/base/VSS.rpt.
[WARNING PSM-0016] Voltage pad location (VSRC) file not specified, defaulting pad location to checkerboard pattern on core area.
[WARNING PSM-0017] X direction bump pitch is not specified, defaulting to 140um.
[WARNING PSM-0018] Y direction bump pitch is not specified, defaulting to 140um.
[WARNING PSM-0063] Specified bump pitches of 140.000 and 140.000 are less than core width of 12.096 or core height of 11.880. Changing bump location to the center of the die at (6.480, 6.480).
[WARNING PSM-0065] VSRC location not specified, using default checkerboard pattern with one VDD every size bumps in x-direction and one in two bumps in the y-direction
[INFO PSM-0076] Setting metal node density to be standard cell height times 5.
[INFO PSM-0031] Number of PDN nodes on net VSS = 2366.
[INFO PSM-0064] Number of voltage sources = 1.
[INFO PSM-0040] All PDN stripes on net VSS are connected.
########## IR report #################
Worstcase voltage: 1.59e-04 V
Average IR drop  : 7.38e-05 V
Worstcase IR drop: 1.59e-04 V
######################################

==========================================================================
finish check_setup
--------------------------------------------------------------------------
Warning: There are 7 input ports missing set_input_delay.
Warning: There are 7 output ports missing set_output_delay.

Signal 11 received
Stack trace:
 0# 0x0000557D189B55C5 in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 1# 0x00007FA45B63BCF0 in /lib/x86_64-linux-gnu/libc.so.6
 2# gui::DbInstDescriptor::getInstanceType(odb::dbInst*) const in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 3# gui::DisplayControls::getInstRow(odb::dbInst*) const in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 4# non-virtual thunk to gui::DisplayControls::isInstanceVisible(odb::dbInst*) in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 5# gui::RenderThread::drawBlock(QPainter*, odb::dbBlock*, odb::Rect const&, int) in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 6# gui::RenderThread::draw(QImage&, QRect const&, std::set<gui::Selected, std::less<gui::Selected>, std::allocator<gui::Selected> > const&, std::array<std::set<gui::Selected, std::less<gui::Selected>, std::allocator<gui::Selected> >, 8ul> const&, std::vector<std::unique_ptr<gui::Ruler, std::default_delete<gui::Ruler> >, std::allocator<std::unique_ptr<gui::Ruler, std::default_delete<gui::Ruler> > > > const&, double, QColor const&) in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 7# gui::RenderThread::run() in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 8# 0x00007FA45C4CCC51 in /lib/x86_64-linux-gnu/libQt5Core.so.5
 9# 0x00007FA45B690402 in /lib/x86_64-linux-gnu/libc.so.6
10# 0x00007FA45B71F590 in /lib/x86_64-linux-gnu/libc.so.6
Command terminated by signal 11
Elapsed time: 0:01.45[h:]min:sec. CPU time: user 1.25 sys 0.05 (90%). Peak memory: 259868KB.
make: *** [Makefile:696: logs/asap7/mock-array-big_Element/base/6_report.log] Error 139

@maliberty Try running rm logs/asap7/mock-array-big_Element/base/6_report.log && make DESIGN_CONFIG=designs/asap7/mock-array-big/Element/config.mk several times...

@maliberty @oharboe You guys might want to try to build OpenROAD under TSAN https://clang.llvm.org/docs/ThreadSanitizer.html

@maliberty @oharboe You guys might want to try to build OpenROAD under TSAN https://clang.llvm.org/docs/ThreadSanitizer.html

I tried the below, but it didn't show anything beyond the null pointer above.
./build_openroad.sh --local --latest --openroad-args "-D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_CXX_FLAGS=-fsanitize=address"

Not sure if was just a copy paste error, but the second line is also running ASAN

@oharboe You might want to pass -g -no-omit-frame-pointer to get better line/function info in the log

Ran into escape hell :-)
$ ./build_openroad.sh --local --latest --openroad-args "-D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_CXX_FLAGS=\"-g -no-omit-frame-pointer -fsanitize=thread\""
[deleted]
[INFO FLW-0018] Compiling OpenROAD.
CMake Error: Unknown argument -fsanitize=thread"
CMake Error: Run 'cmake --help' for all supported options.

I think what @maliberty needs is to reproduce the problem on his machine and while this appear to be a race condition and not easily reproducible, hopefully the sanitizer report is easy to reproduce.

Something similar happened in the CI though I haven't had it happen for me.  The sanitize report doesn't even tell you which mutex or line of code is involved so its a bit frustrating.

I'm trying to run tsan with -g but our setup is fighting me with all sorts of compiler errors.  Would you try it if you have a chance.

I guessing https://github.com/The-OpenROAD-Project/OpenROAD/pull/3473 may fix this.   Please let me as I still can't reproduce the crash.  I'll be watching the CI as well.

rm logs/asap7/mock-array-big_Element/base/6_report.log && make DESIGN_CONFIG=designs/asap7/mock-array-big/Element/config.mk
[INFO][FLOW] Using platform directory ./platforms/asap7
[INFO-FLOW] ASU ASAP7 - version 2
Default PVT selection: BC
(/usr/bin/time -f 'Elapsed time: %E[h:]min:sec. CPU time: user %U sys %S (%P). Peak memory: %MKB.' /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad -exit -no_init  ./scripts/final_report.tcl -metrics ./logs/asap7/mock-array-big_Element/base/6_report.json) 2>&1 | tee ./logs/asap7/mock-array-big_Element/base/6_report.log
OpenROAD v2.0-8702-gccd2fdcdc
[deleted]
Signal 11 received
Stack trace:
 0# 0x000055CD502F72C5 in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 1# 0x00007FDCA303BCF0 in /lib/x86_64-linux-gnu/libc.so.6
 2# gui::DbInstDescriptor::getInstanceType(odb::dbInst*) const in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 3# gui::DisplayControls::getInstRow(odb::dbInst*) const in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 4# non-virtual thunk to gui::DisplayControls::isInstanceVisible(odb::dbInst*) in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 5# gui::RenderThread::drawBlock(QPainter*, odb::dbBlock*, odb::Rect const&, int) in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 6# gui::RenderThread::draw(QImage&, QRect const&, std::set<gui::Selected, std::less<gui::Selected>, std::allocator<gui::Selected> > const&, std::array<std::set<gui::Selected, std::less<gui::Selected>, std::allocator<gui::Selected> >, 8ul> const&, std::vector<std::unique_ptr<gui::Ruler, std::default_delete<gui::Ruler> >, std::allocator<std::unique_ptr<gui::Ruler, std::default_delete<gui::Ruler> > > > const&, double, QColor const&) in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 7# gui::RenderThread::run() in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 8# 0x00007FDCA3ECCC51 in /lib/x86_64-linux-gnu/libQt5Core.so.5
 9# 0x00007FDCA3090402 in /lib/x86_64-linux-gnu/libc.so.6
10# 0x00007FDCA311F590 in /lib/x86_64-linux-gnu/libc.so.6
Command terminated by signal 11
Elapsed time: 0:01.39[h:]min:sec. CPU time: user 1.24 sys 0.06 (94%). Peak memory: 259300KB.
make: *** [Makefile:696: logs/asap7/mock-array-big_Element/base/6_report.log] Error 139

I guessing #3473 may fix this. Please let me as I still can't reproduce the crash. I'll be watching the CI as well.

Unfortunately not it would seem. The log shows I run with a version of OpenROAD that contains the fix.

@maliberty Interesting... It doesn't happen when I compile in debug-mode...
$ ./build_openroad.sh --local --latest --openroad-args "-D CMAKE_BUILD_TYPE=DEBUG"
$ gcc --version
gcc (Ubuntu 12.2.0-3ubuntu1) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Crashes:
./build_openroad.sh --local --latest --openroad-args "-D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_CXX_FLAGS=-O2"

Crashes:
./build_openroad.sh --local --latest --openroad-args "-D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_CXX_FLAGS=-O1"

Thought I saw some new changes, so tried latest:
rm logs/asap7/mock-array-big_Element/base/6_report.log && make DESIGN_CONFIG=designs/asap7/mock-array-big/Element/config.mk
[deleted]
OpenROAD v2.0-8762-g8d56294a5
Signal 11 received
Stack trace:
 0# 0x0000556EFED0F92B in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 1# 0x00007FB331E42520 in /lib/x86_64-linux-gnu/libc.so.6
 2# gui::DbInstDescriptor::getInstanceType(odb::dbInst*) const in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 3# gui::DisplayControls::getInstRow(odb::dbInst*) const in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 4# non-virtual thunk to gui::DisplayControls::isInstanceVisible(odb::dbInst*) in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 5# gui::RenderThread::drawBlock(QPainter*, odb::dbBlock*, odb::Rect const&, int) in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 6# gui::RenderThread::draw(QImage&, QRect const&, std::set<gui::Selected, std::less<gui::Selected>, std::allocator<gui::Selected> > const&, std::array<std::set<gui::Selected, std::less<gui::Selected>, std::allocator<gui::Selected> >, 8ul> const&, std::vector<std::unique_ptr<gui::Ruler, std::default_delete<gui::Ruler> >, std::allocator<std::unique_ptr<gui::Ruler, std::default_delete<gui::Ruler> > > > const&, double, QColor const&) in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 7# gui::RenderThread::run() in /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
 8# 0x00007FB332CCCCA1 in /lib/x86_64-linux-gnu/libQt5Core.so.5
 9# 0x00007FB331E94B43 in /lib/x86_64-linux-gnu/libc.so.6
10# 0x00007FB331F26A00 in /lib/x86_64-linux-gnu/libc.so.6
Command terminated by signal 11
Elapsed time: 0:01.14[h:]min:sec. CPU time: user 1.04 sys 0.05 (95%). Peak memory: 294168KB.
make: *** [Makefile:684: logs/asap7/mock-array-big_Element/base/6_report.log] Error 139

Using https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/pull/1143, I can build with:
./build_openroad.sh --local --latest --openroad-args '-D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_CXX_FLAGS="-O0 -g"'

@maliberty This crashes, but if I attach the debugger, it does not crash...

Hopefully fixed by https://github.com/The-OpenROAD-Project/OpenROAD/pull/3487

This crashed almost every time before:
rm -f logs/asap7/mock-array-big_Element/base/6_report.log && make DESIGN_CONFIG=designs/asap7/mock-array-big/Element/config.mk

This ran without failure.
for i in {1..100}; do  rm -f logs/asap7/mock-array-big_Element/base/6_report.log && make DESIGN_CONFIG=designs/asap7/mock-array-big/Element/config.mk || break;done


Live Share - Sign In Timeout Issue

From https://github.com/Microsoft/vscode/issues/49431
Issue Type: Bug
Install Visual Studio Live Share.
Reload after the extension is installed
Wait for the dependencies install to be complete
Restart Visual Studio Code
See the Signing In message
Getting the Time out error Message.
VS Code version: Code 1.23.0 (7c7da59, 2018-05-03T16:44:55.614Z)
OS version: Windows_NT x64 10.0.17134

@prasadgl Thanks for reporting the issue.  We have seen this happen if your system time is a bit off.  Can you verify that your clock isn't quite off?

@Chuxel I have checked my system time and I have tried to update it with the internet time.  The time is not off ... I am not sure what the problem is.  I have been able to sign in after the update that came out during Build 2018.

@prasadgl We bumped up the timeout for the user code given we found a number of people were hitting this issue.  Does that mean you now unblocked?

@prasadgl We haven't heard back so I am assuming one of our recent releases has solved the problem for you.  We also just released 0.3.125 which has further fixes in this area.  Please feel free to re-open if you are still having trouble.

Yes the issue is resolved.  Thank you.


Phases are getting deactivated as we terminate any of the work

@dinesh-aot how do i check this bug was fixed


fix: Onboarding - Country selected highlighted

What
Fix for #1470
https://user-images.githubusercontent.com/246838/161421669-f958fd8c-071d-40dc-9cbe-e3d1d2e4e895.mp4

Codecov Report

Merging #1471 (4c487b5) into develop (1712a5e) will decrease coverage by 0.01%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           develop   #1471      +/-   ##
==========================================
- Coverage     9.13%   9.12%   -0.02%
==========================================
  Files          158     158
  Lines         6372    6381       +9
==========================================
  Hits           582     582
- Misses        5790    5799       +9

Impacted Files
Coverage Δ

...oth_app/lib/pages/onboarding/country_selector.dart
0.00% <0.00%> (ø)

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 1712a5e...4c487b5. Read the comment docs.


[Bug Bash] Quick Fix button being rendered to wrong spot

Windows Terminal version
1.22.2081.0 (bug bash on 7/30)
Windows build number
No response
Other Software
No response
Steps to reproduce

It's being placed in random positions. However, it'll snap to the cursor if you resize when in that state.
May be similar to this bug:
Opening snippets pane causes prompt to disappear and QF button moved to where the prompt is supposed to be?

Confirmed it's not related to snippets, so there's something weird going on with drawing the QF button.
Expected Behavior
No response
Actual Behavior
x

Oh no, I did a git bisect (a few, actually) and it led me to:
450eec48d A minor ConPTY refactoring: Goodbye VtEngine Edition (#17510)

Flushing in the old VtEngine happened with a 16ms delay (unless the content scrolled) so it's not unlikely that we had a bug already but simply didn't notice due to the delayed output from cmd.
Looking at this image:

Doesn't cmd emit the command-not-found VT sequence when printing that exact message? In that case I think it's just natural that the quick-fix button is possibly on the same line. Without knowing the quick-fix code exactly, I suspect we're using a resume_foreground somewhere, lock the text buffer, ask for the cursor position and then show the bulb next to the cursor, right? That can't work reliably since it's timing sensitive and races with the concurrently running cmd output.
If we're fine with showing the bulb next to the cmd error message, the easiest fix for this may be to transmit the row number with the event that informs the control to show the bulb. Unfortunately, we don't yet have unique row IDs that would make it possible to figure out the vertical offset while the text buffer is possibly concurrently scrolling. In that case I think we should add them.


selectable.MoveTo not exposed anywhere

We'd need MoveTo to scroll things into view.. it isn't exposed.. could we add it to selectable ?

It's exposed as *Selection.MouseToElement() as well as *Page.Session().MoveTo(). Or are you asking for more movetoendpoint functionality thanSelection.MouseToElement()in theagouti` package?


Sign up page: Image is broken #418

Description

Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update
[ ] Chore: cleanup/renaming, etc
[ ] RFC
[ ] Test

Notes

Acceptance

[x] I have read the Contributing guidelines
[x] I have read the Code of Conduct

Thank you @gvijay4321 !

Thank you @gvijay4321 !

Your welcome


Could not able to send javascript as attachment

Hello,
I am trying to send an email with javascript file as an attachment. I could successfully able to send the mail but the file is not sent as javascript. Instead I receive it as plain text file.
Please find the payload I use for filename and type:
filename: 'somejsfile', type: 'application/javascript',
And if I try to specify file name as somejsfile.js. I am not even receiving the email.
I also tried with type text/javascript, but still facing the same issue.
Note: If I use the same payload with type application/pdf it is working perfectly and I receive pdf file in mail.

sendgrid-nodejs Version: 6.4.0
Node.js Version: 10.15.0

Any help will be highly appreciated.
Thanks in Advance

I'm seeing the same issue. Adding a .js extension to the file name and it never gets received and no errors are reported. Checking internally if this is a known limitation. Note that when I send the file without the extension it is received fine.

Pull requests to add this feature are welcome and will be reviewed based on priority, but Twilio SendGrid is not actively building new functionality for the library.

Nothing on the SendGrid side is blocking the attachment. But, this could be the reason why the email is getting bounced: https://www.pcworld.com/article/3162038/gmail-will-block-javascript-attachments-a-common-source-of-malware.html


Reference implmentation?

Motivation
I saw you have new repo for linting package.json and that kind of duplicated work to  https://npmpackagejsonlint.org/
but of course it would much better if we can do anything with just eslint may be we can refer to existing work and take some rules to eslint here.
Description
E.X prefer-absolute-version was one of rules i always use
Examples

/* ✓ GOOD */
var foo = /regex/

/* ✗ BAD */
var foo = /regex/

Thank you for posting this issue.
I think it's good to add a prefer-absolute-version rule to this plugin.
I'm not sure if all the rules provided by npm-package-json-lint should be added in this plugin. We need to check the rules one by one.
If you have a list of rules that you would like to add with this plugin, please provide it.
If you want to integrate npm-package-json-lint with ESLint, I think it's better to create another eslint-plugin.

FYR
'prefer-absolute-version-dependencies': 'error',
'prefer-absolute-version-devDependencies': 'error',
'require-engines': 'error',
'require-license': 'error',
'require-repository': 'error',
'require-version': 'error',
‘valid-values-license': ['error', ['MIT', 'UNLICENSED']]
I only use rules above in my project

Thank you for listing rules.
I don't want to add any rules other than prefer-absolute-version to this plugin as they have nothing to do with dependencies.
Perhaps those rules can be checked in JSON Schema, so I think you can be checked using eslint-plugin-json-schema-validator.

@ota-meshi Thanks for make our life more easily !
As you suggested, here is my example integration of json-schema-validator
{
      extends: [
        'plugin:jsonc/prettier',
        'plugin:json-schema-validator/recommended',
      ],
      files: ['*.json'],
      parser: require.resolve('jsonc-eslint-parser'),
      rules: {
        'json-schema-validator/no-invalid': [
          'error',
          {
            schemas: [
              {
                fileMatch: ['package.json'],
                schema: {
                  $schema: 'https://json-schema.org/draft/2020-12/schema',
                  properties: {
                    engines: {
                      properties: {
                        node: {
                          const: '>=16',
                          type: 'string',
                        },
                        yarn: {
                          const: 'Use npm',
                          type: 'string',
                        },
                      },
                      required: ['node', 'yarn'],
                      type: 'object',
                    },
                    license: {
                      enum: ['MIT', 'UNLICENSED'],
                      type: 'string',
                    },
                    repository: {
                      oneOf: [
                        {
                          properties: {
                            directory: { type: 'string' },
                            type: { const: 'git', type: 'string' },
                            url: {
                              type: 'string',
                            },
                          },
                          required: ['url', 'type', 'directory'],
                          type: 'object',
                        },
                        {
                          type: 'string',
                        },
                      ],
                    },
                    version: {
                      type: 'string',
                    },
                  },

                  required: ['engines', 'version', 'license'],
                },
              },
            ],
          },
        ],
        'jsonc/sort-keys': 'error',
      },
    }

I've added some rules inspired by npm-package-json-lint.
If you have other rules that you would like us to add, please open an issue separately.


Select: Selected value is not the value that will be submitted

Description of the bug
With v0.11.0 our unit-tests broke. It turns out a <Select> now has the input-field value set to the option label instead of the option value. Meaning that instead of our language selector returning en it now returns English.
I looked over the unit-tests, and tried to create a PR with changes, but I'm really unsure how this was supposed to work, because right now it seems a multi-select never really sets any value in the input field. All your unit-tests are asserting that the correct <button> elements are marked as selected, but that's a part of your UI state, and not a part of what the browser actually submits when a form is submitted.
Where do we go from here? For Altinn/app-frontend-react I would assume a comma-separated string would work for the value in a multi-select, but others might want the value to be JSON encoded. Maybe a multi-select should require you to implement a function to destructure a selected list of options into a string value to put in the <input> field.
Steps To Reproduce

Open Select.test.tsx
Rewrite expectSelectedValue to this:

    const expectSelectedValue = (option: SingleSelectOption) =>
      expect(screen.getByRole('combobox')).toHaveValue(option.value);

Watch the tests break.
Try to figure out what the value should be for multi-select, scratch your head, shrug and write a bug report instead.

Additional Information

https://github.com/Altinn/app-frontend-react/pull/1070

This looks like it's a misunderstanding on my part. We have a unit-test in app-frontend-rect that reaches into the DOM to get the input element value property, and uses it to assert that the correct value is used. With the design system this failed, as the value property was set to the label - but the onClick handler still got the correct selected option (and it's expected that the value in onClick is what's stored and submitted by our application). This just breaks my old-school expectation about what value is used for, but it doesn't break any functionality (as I first expected).


handle ctl&tty serial port in pod init

Signed-off-by: Gao feng<EMAIL_ADDRESS>

Hold on this pr right now, Maybe other features need current frame.


Index as function

Allow to define a function to generate the content of directory indexes

Hi again, @piranna ! Thanks for this pull request! Currently, this module sports an event emitter-driven interface (for better or worse). With the existing interface, this functionality already exists and is well supported (in fact, is being done on other modules on npm). Adding yet another way to do the same thing, especially where the interface is oddly different from the rest of the module, would be weird to accept.
I would recommend you use the existing functionality at hand. If you have suggestion on making the EE interface better, it would be welcome! Here is the functionality from your test done using the existing interface (your test is the only communication we've had in regards to this, so that's the only example I have from you to use):
send(req, req.url, {index: false})
.on('directory', function () {
  // send your index from here, as the req.url provided ended up being a directory
  this.res.end('
tobi
');
})
.pipe(res);

Hi @dougwilson :-) I have review the code (again ;-) ) and the directory event is only emited when the "file" we are trying to access is in fact a directory, and the current behaviour is to redirect it the slash-ended path, that I think is a good feature that I would loose by attaching to the directory event. In this case, what we would need is an index event, this way we could have the redirection and the custom index rendering.
I'm totally +1 to the event-driven APIs, I'll update the pull-request to add an index event and use it :-)

Seems GitHub don't allow to push new commits to a pull-request if it's clossed, so I've open a new one with the index event.
Just a question: shouldn't this and the directory be better managed with a callback on the constructor? There should be only just one function to render them... This way the current behaviour would be enclosed in their own functions and set as default ones, too.


Can I change image url to download from a mirror or internal private repository?

It's very slow to download images of kubernets in China. All images need are as follows.
$ docker images
REPOSITORY                                 TAG                 IMAGE ID            CREATED             SIZE
mirantis/kubeadm-dind-cluster              v1.10               345643cfa096        3 days ago          1.4GB
k8s.gcr.io/kube-proxy-amd64                v1.10.0             bfc21aadc7d3        7 weeks ago         97MB
k8s.gcr.io/kube-apiserver-amd64            v1.10.0             af20925d51a3        7 weeks ago         225MB
k8s.gcr.io/kube-controller-manager-amd64   v1.10.0             ad86dbed1555        7 weeks ago         148MB
k8s.gcr.io/kube-scheduler-amd64            v1.10.0             704ba848e69a        7 weeks ago         50.4MB
k8s.gcr.io/kube-addon-manager              v8.6                9c16409588eb        2 months ago        78.4MB
k8s.gcr.io/pause-amd64                     3.1                 da86e6ba6ca1        4 months ago        742kB
k8s.gcr.io/kubernetes-dashboard-amd64      v1.8.1              e94d2f21bc0c        5 months ago        121MB
k8s.gcr.io/kube-addon-manager              v6.5                d166ffa9201a        6 months ago        79.5MB
gcr.io/k8s-minikube/storage-provisioner    v1.8.0              4689081edb10        6 months ago        80.8MB
k8s.gcr.io/k8s-dns-sidecar-amd64           1.14.4              38bac66034a6        10 months ago       41.8MB
k8s.gcr.io/k8s-dns-kube-dns-amd64          1.14.4              a8e00546bcf3        10 months ago       49.4MB
k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64     1.14.4              f7f45b9cb733        10 months ago       41.4MB
k8s.gcr.io/etcd-amd64                      3.0.17              243830dae7dd        14 months ago       169MB
k8s.gcr.io/pause-amd64                     3.0                 99e59f495ffa        2 years ago         747kB

I  already using a proxy to download all images to my laptop, and I want to push these images to our internal private repository to share with other guys. The images in our repository will have a different url prefix, but I can't change the image url in dind-cluster-v1.10.sh.
The only way I found out is using docker image save to export image on my laptop and using docker image load to import image on the target server. But it's not so convenient.

Thanks! I finally resolve this problem by set proxy for the system wide. Just prepare images is not enough, It will check new images when start up.


Update UI guidelines & UI development docs

Addresses #8044. This ties together a lot of recent UI architecture updates, with the general goal of providing a clearer baseline for UI development in Wagtail. I wasn’t able to write as many documentation as I would like for now, but I think this is still worth adding in as-is.
The headline changes are:
Design tokens for reuse
In Storybook:

Auto-generated documentation for our design system’s colors, with a basic semi-manual contrast checking setup using Contrast Grid.
Auto-generated documentation for our major text styles, with utility classes to use for reuse.
Updated auto-generated icons list.

The point of this is to have reference material for contributors / general maintenance. We’ll need to figure out how to then integrate this with our Wagtail documentation (iframes? Markdown export? links to Storybook).
Improved Django Templates support in Storybook
I have updated storybook-django to offer a more refined setup, which Wagtail can then benefit from. The headline change is the addition of documentation extraction from {% comment "text/markdown" %} comment blocks, though I’ve kept this undocumented for the time being so we trial this further during development.
UI contributing docs shuffle

Moving all to Markdown
Adding a new "Multilingual" placeholder section

[x] Do the tests still pass?[^1]
[x] Does the code comply with the style guide?

[x] Run make lint from the Wagtail root.

[ ] For Python changes: Have you added tests to cover the new/fixed behaviour?
[ ] For front-end changes: Did you test on all of Wagtail’s supported environments?[^2]
[ ] For new features: Has the documentation been updated accordingly?

Should we include JS custom event naming conventions?
As per description here.
https://github.com/wagtail/wagtail/pull/7534#issue-1005342855
Or wait until we resolve what kind of frontend lightweight framework we will use (e.g. Stimulus has a built in convention that is easy to use but slightly different. )

Thank you both for the excellent feedback :) I’m looking forward to rolling out all of this even further.


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-yml-archive-non-versioning-archive/pull/369 is merged into live branch.
Auto archive content to https://github.com/huangmin-ms/docs-yml-archive-non-versioning-archive.git

Docs Build status updates of commit af739c8:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

docs/TOC.yml
:white_check_mark:Succeeded
View

docs/index.yml
:white_check_mark:Succeeded
View

docs/to-be-archive/level1/article3-1-1.md
:white_check_mark:Succeeded
View

docs/to-be-archive/level1/article3-1-2.md
:white_check_mark:Succeeded
View

docs/to-be-archive/level1/article3-1-3.yml
:white_check_mark:Succeeded
View

docs/to-be-archive/level1/sql-database-engine.png
:white_check_mark:Succeeded

docs/to-be-archive/level2/article3-2-1.md
:white_check_mark:Succeeded
View

docs/to-be-archive/level2/article3-2-2.md
:white_check_mark:Succeeded
View

docs/to-be-archive/level2/article3-2-3.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


New: order-member-rule

Add a new rule to order the import member.
e.g.
import { c, b, d, a, e } from 'foo'
becomes
import { a, b, c, d, e } from 'foo'
It's case sensitive by default.
e.g.
import { c, b, d, A, a, Z, e } from 'foo'
becomes
import { A, Z, a, b, c, d, e } from 'foo'
There is a option to make it case insensitive
e.g.
import { c, b, d, A, a, B, e } from 'foo'
becomes (It's stable sort)
import { A, a, b, B, c, d, e } from 'foo'
PR address: https://github.com/benmosher/eslint-plugin-import/pull/1416

This already exists in eslint core: https://eslint.org/docs/rules/sort-imports#import-sorting-sort-imports

This already exists in eslint core: https://eslint.org/docs/rules/sort-imports#import-sorting-sort-imports

Hi, there are quite a few difference between them. Actually I would like to use the one from the eslint core but end up with not possible to do so..

The core rule is doing too much, it sorts not only the import member, but also import source.
Their member sorting is based on local instead of import. e.g. thing after the as
Their source order provide group only, which is not desired by us.
I think import related rules is better to be in this repo.

Since a core rule for this exists, I’d start by pursuing the changes in eslint itself.


feat(registry): Add support for external registry

[Current coverage][cc-pull] is 41.60%

Merging [#389][cc-pull] into [master][cc-base-branch] will decrease coverage by 0.43%

@@             master       #389   diff @@
==========================================
  Files            25         27     +2
  Lines          1144       1269   +125
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            481        528    +47
- Misses          632        707    +75
- Partials         31         34     +3

Powered by Codecov. Last updated by [b583180...d84a91e][cc-compare]
[cc-base-branch]: https://codecov.io/gh/deis/builder/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/deis/builder/compare/b58318052a57b1afafbb49883c276d53d40b9912...d84a91e59f2cb565a49c82c0de8b5557dc7aab92?src=pr
[cc-pull]: https://codecov.io/gh/deis/builder/pull/389?src=pr


fix xen driver compile issue

Ref: #481
Signed-off-by: Crazykev<EMAIL_ADDRESS>

great, thank you @Crazykev

@gnawux I introduced this month ago... sorry for that

I found the building failure when package 0.8, and have not done further investigation on it yet. ref hyperhq/hyperd#591

Oh, I see. We did not include xen in CI, #474 will fix this.
	runv  0.8.0
	build OS:   linux-gnu
	prefix:	    /usr/local
	has go:     yes
	with xen:   no
	with libvirt: yes
	has virtualbox: no

I think neither hykins nor travis support xen hvm mode.


Timesheet - 24/04/2021 - Muhammad Anas Azam Bhatti

Task 1
Gathered feedback from community, reviewed PR, talked with tristan, made an issue for FE
Proof of Work
I gathered feedback from community using all of the conversation in the discord channels. Then I talked with tristan about what is the current contest about and also about the projects server. I also made this issue for FE: https://github.com/thenewboston-developers/Website/issues/1758
. I also reviewed this PR: https://github.com/thenewboston-developers/Website/pull/1733 although havent added my review for this, waiting for justin kim.
Time Spent
4 hours

Task 2
Made an issues for design and education, reviewed github/twitter/instagram/facebook page of thenewboston, talked with bucky, kristy, tristan, justin ndwiga, james and mschrish, worked on job description.
Proof of Work
I made an issue for design: https://github.com/thenewboston-developers/Design/issues/200.
I also reviewed github/twitter/instagram/facebook page of thenewboston(if you want the links to which pages I reviewed I can give that too) and I highlighted the things we need to work on(had a discussion with tristan and then I had a discussion with mschrisha about this).
Then I talked with bucky about the issue with the team on github(topic of discussion=private).
I had a discussion with kristy because we didnt need this board(wont be visible to you though): https://github.com/thenewboston-developers/Design/projects/3. I also talked with justin ndwiga and james about milestone issue(was about to ask question from justin ndwiga but didnt because our api is upto date).
I also created this document: https://docs.google.com/document/d/1RvJOcjreQCpjqCgxUIbOl5bHnsY69yfuTGp8oWwgumI/edit?usp=sharing
Then I created an issue for bucky on education page:  https://github.com/thenewboston-developers/Management/issues/160
And I also reviewed the contest entries in #contest channel of discord as well.
(Jumbled these issue together because most of the time I was working on all most of these side by side, if you need any help in reviewing this let me know)
Time Spent
6 hours

Total Time Spent
10 hours
Account Number
7180f46c4c8dbcffa0945633b03e1dacebf966069d436cb91cf1dde5f1da9fa7

Hey, @ma2b0043 please try to add different tasks separately. So that it would be easy to see which task took how much time.
Approved

Hey, @ma2b0043 please try to add different tasks separately. So that it would be easy to see which task took how much time.
Approved

I'll try to do it but most of the time my work involves talking with people and managing their issues in parallel, which results in my tasks being interlinked and mixed with one another. Sorry about that.

Approved


feat: add golangci/misspell

golangci/misspell: Correct commonly misspelled English words in source files
$ aqua g -i golangci/misspell

How to confirm if this package works well
Reviewers aren't necessarily familiar with this package, so please describe how to confirm if this package works well.
Please confirm if this package works well yourself as much as possible.
Command and output
$ misspell -h
Usage of misspell:
  -debug
        Debug matching, very slow
  -error
        Exit with 2 if misspelling found
  -f string
        'csv', 'sqlite3' or custom Golang template for output
  -i string
        ignore the following corrections, comma separated
  -j int
        Number of workers, 0 = number of CPUs
  -legal
        Show legal information and exit
  -locale string
        Correct spellings using locale perferances for US or UK.  Default is to use a neutral variety of English.  Setting locale to US will correct the British spelling of 'colour' to 'color'
  -o string
        output file or [stderr|stdout|] (default "stdout")
  -q    Do not emit misspelling output
  -source string
        Source mode: auto=guess, go=golang source, text=plain or markdown-like text (default "auto")
  -v    Show version and exit
  -w    Overwrite file with corrections (default is just to display)

Reference

README.md

https://github.com/golangci/misspell/blob/master/README.md

Thank you!

v4.31.0 is out 🎉
https://github.com/aquaproj/aqua-registry/releases/tag/v4.31.0


To-do for SplitPy

[x] Implement Continuous Integration using Travis
[x] Deploy documentation using Travis in gh-pages branch
[ ] Write tests for code coverage
[ ] Write better examples for code usage outside of scripts

Hi,
I am trying to use SplitPy to do teleseismic shear-wave splitting analysis and found it very useful. I also apply OrientPy to measure the misalignment for each station. So I wonder if you can possibly add one module/class to correct the misorientation in your software.
Thanks
Changhui

Hi,
If you are using Z12 channels for data on FDSN archives, the data will be rotated using the azcorr field in the StDb database. In this case, the workflow is to run OrientPy, then edit the StDb database using the edit_stdb script (or manually change the azcorr field in the .csv file, and then run the SplitPy scripts normally.
If you found a misalignment in ZNE data sets, then SplitPy will not use the azcorr field to further rotate the channels. Admittedly, this is a limitation.
Please provide more details of your situation and I can help adapt the code accordingly.

Hi,
Thanks for your reply.
What I hope is to use the azcorr field for ZNE data sets since the misalignment when installing the seismograph. Though it cannot be implemented right now in the codes, I believe it is an important part when doing shear wave splitting analysis. Anyway, thanks for sharing your codes, and hoping to see the update.
Changhui


Added date to deprecation warnings for DownloadPackageV0, NuGetInstallerV0, and NuGetRestoreV1

Added date to deprecation warnings for DownloadPackageV0, NuGetInstallerV0, and NuGetRestoreV1
Task name: DownloadPackageV0, NuGetInstallerV0, and NuGetRestoreV1
Description: Added date of when builds will break to deprecation warnings
Documentation changes required: (Y/N) Y
Added unit tests: (Y/N) N
Attached related issue: (Y/N) N
Checklist:

[x] Task version was bumped - please check instruction how to do it
[x] Checked that applied changes work as expected

Can you link the documentation where the date is from?

Can you link the documentation where the date is from?

I discussed a deprecation timeline with a PM last week, and we are planning to break builds after 11/27/23 and remove functionality after 1/16/24


forum Healthcheck isn't reliable

Expected Behavior
If forum can't talk to its mongodb or opensearch backends, the app should crash / stop outright. Not enter a funky state where the ASG / LB healthcheck passes but the app itself isn't working.
Current Behavior
If forum can't find it's mongodb or opensearch instances for 10 minutes, it just stops looking for them and enters a catatonic state where it is still 'running' good enough for the LB healthchecks to pass but it isn't really working because it won't answer any requests, and the container is possibly stopped / not listening.
Possible Solution
Put traefik infront of the container to create a healthcheck endpoint that works?
Figure out the behavior of forum and adjust the healthcheck status matcher appropriately.
Additional Details
Discussion starting here and going to about 4pm that day. https://mitodl.slack.com/archives/C02QLTAE05S/p1721329113019089

We missed our opportunity with Sumac. The parameters will change if/when we move to forums v2 and mysql instead of mongodb.


puppeteer: Remove waitFors on deletion spinners.

Also added a waitFor for the modal to disappear and removed
waitFor for the spinner to hide which would obviously be hidden
with modal and it also doesn't add much value.

Merged, thanks @chdinesh1089!


fix: invalid field name

BREAKING CHANGES

Codecov Report

Merging #299 (cdde03b) into main (bd569c4) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #299   +/-   ##
=======================================
  Coverage   96.71%   96.71%
=======================================
  Files          60       60
  Lines        2621     2621
=======================================
  Hits         2535     2535
  Misses         58       58
  Partials       28       28

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Add native Android notifications

It would be cool if we could have native android notifications (either push or some custom polling interval) which would mirror github notifications.
Yes, I get them via email, but I refuse to check my email on my phone. Interesting things actually happen on github, so it would be nice to have notifications of them :-)

ZenHub anyone? It would make this thumbs up/+1 much easier.

+1

Anybody interested in this feature can try https://github.com/Daskiworks/ghwatch

+1

See #196 for further discussion


Created Hungarian language file

Hello there!
Make sure you've followed the Contributing guidelines before finalizing your pull request.
TL;DR:

[x] You're opening this PR against the current release branch
[x] Works on both Python 2.7 & Python 3.x
[x] Commits have been squashed and includes the relevant issue number
[x] Pull request description contains link to relevant issue or detailed notes on changes
[x] This must include example code demonstrating your feature or the bug being fixed
[x] All existing tests pass
[x] Your bug fix / feature has associated test coverage
[ ] README.md is updated (if relevant)

closing. duplicate of https://github.com/chriskiehl/Gooey/pull/718


Youtube song is not found

So I'm hosting a NadekoBot locally for my server, it works fine but sometime I queue a song or youtube link and nothing happen, in the cmd it says "Song is not found" without any other error. I enabled all the required API and have ffmpeg installed correctly, being able to stream song from my hdd also.

Update your bot. That bug was solved yesterday in latest dev build (1.1.5a).

Oh I just installed the bot yesterday so not realize that it's not the latest one. Will try.

Then please close this bug report. :P


Support --experimental_allow_proto3_optional option

Is your feature request related to a problem? Please describe.
Since protoc version 3.12.0, --experimental_allow_proto3_optional enables the use of optional in proto3 for explicit field presence.
https://github.com/protocolbuffers/protobuf/blob/master/docs/field_presence.md
When I try to use --experimental_allow_proto3_optional, it’s unrecognized in IntelliJ, and the optional keyword is still forbidden.
Describe the solution you'd like
See screenshots. Ideally there would be no errors.
Additional context

This plugin isn't supported anymore. Maybe add a note to https://github.com/jvolkman/intellij-protobuf-editor/issues/7?

This issue is closed as plugin is not supported anymore.
Please switch to https://github.com/jvolkman/intellij-protobuf-editor.


Playing audio

Is it possible to have an audio element that plays music from local files, urls, and most importantly streams?

There are many npm packages that provide this, such as https://www.npmjs.com/package/stream-player that can then be connected to the GUI.


Improve the grid layout #3

@theshubhagrwl -  fixed #3
I've fixed the issue of the grid layout, now all the cards are having same height. Below is the screenshot of the same.

This looks
I have still left the PR to be open in case anyone wants to add something. 👍


GitHub Code View Support

This PR closes #55
In order to support GitHub's new code view (which is currently only in preview mode and is still potentially subject to change), there was more involved in the icon replacement than simply adding new selectors, which I already mentioned in this comment: https://github.com/Claudiohbsantos/github-material-icons-extension/issues/55#issuecomment-1447100048.
The first change I made was somewhat unrelated, but I felt it was a good choice for consistency. I moved the style injected into the stylesheet on the Azure website into the normal injected stylesheet, which is used for the icon sizing. I think this makes more sense than checking if the style has been added over and over. I did, however, also change the name of the "hide pseudo" class to be more specific to ensure this style doesn't conflict with any other git providers' built in class names.
Next, I added the new selectors required as per usual. I ended up splitting them onto multiple lines, as they were getting really long and difficult to read. This also let me realize that two of the selectors were redundant (probably my fault haha):
.octicon-file, a.tree-browser-result > svg.octicon.octicon-file

so I removed the second of these two.
And then came some complications. Like I mention in the comment above, the nature of the tree view used by the new code view is different from the PR code view. For these, if you replace the icon with the custom icon, React (what GitHub is made with) will break every time you navigate to a new sub-folder, or expand/collapse one of the folders in the sidebar. So I used a similar approach to how I replaced the icons in Azure. Instead of straight up replacing them, I added them as a sibling to the old icon and added a class to the old icon to hide it.
This worked quite well for the most part, except for the open/closed folder icons on the sidebar. When you click on the caret to open them, the selector observer is not triggered, so the new icon never receives the class it needs to hide the old icon.

The way I managed to solve this was simply by adding a global style to hide that specific icon type:
.PRIVATE_TreeView-directory-icon svg {
  display: none !important;
}

The problem with this approach is that on first load, the icons are entirely hidden, which causes a layout shift of the directory names when the icons are replaced... and while writing this, I actually realized a more consistent approach would just be to add a sibling selector from the custom icons. That way, the old icon is only hidden once it is replaced by the new one, and we don't need a custom class on the old icon in order to hide it:
img[data-material-icons-extension='icon'] + svg {
  display: none !important;
}

I would have made the selector more specific, like svg.octicon, but for some reason the icons inside the main body of the code view don't have the same classes as the rest. I don't believe there are any other cases where an SVG immediately follows the custom icons in any of the other Git providers, though, so I think this should be fine.
I also tested this strategy of adding the new icon as a sibling across all the different GitHub pages where this extension functions, and it appears that it works well on all of them.

The one other issue I ran into is the Parent Directory icon isn't replaced in the same way as the others.

It does not follow the same class naming conventions that the rest of the rows in the table do, so it wasn't the simplest thing to target. I did manage to find some selectors that worked, but they feel way too general. Here is what I tried that worked:
  selectors: {
    row: `.js-navigation-container[role=grid] > .js-navigation-item,
      file-tree .ActionList-content,
      a.tree-browser-result,
      .PRIVATE_TreeView-item-content,
      table[aria-labelledby="folders-and-files"] tr`, // This is the closest I could get to a specific selector
    filename: `div[role="rowheader"] > span,
      .ActionList-item-label,
      a.tree-browser-result > marked-text,
      .PRIVATE_TreeView-item-content > .PRIVATE_TreeView-item-content-text,
      tr h3`, // Very general
    icon: `.octicon-file,
      .octicon-file-directory-fill,
      .octicon-file-directory-open-fill,
      .octicon-file-submodule,
      tr svg`, // Also very general
  },
  getIsLightTheme: () => document.querySelector('html').getAttribute('data-color-mode') === 'light',
  getIsDirectory: ({ icon, row }) =>
    icon.getAttribute('aria-label') === 'Directory' ||
    icon.classList.contains('octicon-file-directory-fill') ||
    icon.classList.contains('octicon-file-directory-open-fill') ||
    icon.classList.contains('icon-directory') ||
    row.innerText.includes('directory'), // Used for the "preious directory" link in the code view

I can switch to this approach if you'd like, otherwise I can leave it out! Let me know if you have any thoughts on the way I implemented things as well.

Thanks for getting this started and the in depth description! I only just gleamed through the description so I'll have to come back for the actual code later once I play around with the new view to understand the differences better, but just wanted to comment on some top level thoughts before you get too far:

Since this feature is still in preview I think we have 2 possible approaches to the problem:

Implement changes that work for both the old code view and the new one AND do not change the behavior of the existing standard view. Since most users will likely remain in the standard code view I want to make sure we don't break that experience.
Implement the new code view as an "opt-in" feature that can be toggled via the extension options. This should only be the case if approach *1 is impossible for some reason because it probably introduces a lot of code we now also need to maintain.

I'll try to check back on this PR properly next week when I should have more free time again. Thanks!

i. Implement changes that work for both the old code view and the new one AND do not change the behavior of the existing standard view. Since most users will likely remain in the standard code view I want to make sure we don't break that experience.

I completely get this perspective! Overall, I think this solution shouldn't cause any problems with the existing code views, even though it does change how they function. But this should be tested further to ensure that it's true, because you're right, it would suck if it didn't work for people who aren't even using the new view.
Take your time looking at it, I just figured I'd take a shot at it for fun, so I don't really care when it's merged! I'm also going to be running this version for the foreseeable future to see if it breaks at any point.

@csandman thanks for all the great work here. "Next week" became "in a couple months" but I finally managed to get some time to clean up the cobwebs and test this out for both the beta and the legacy views. This is looking great! I still see some light "blinking" on load on the new code view but I'll merge this as is since this is an infinite improvement over not working at all, so we can tackle that later if it persists.

@csandman thanks for all the great work here. "Next week" became "in a couple months" but I finally managed to get some time to clean up the cobwebs and test this out for both the beta and the legacy views. This is looking great! I still see some light "blinking" on load on the new code view but I'll merge this as is since this is an infinite improvement over not working at all, so we can tackle that later if it persists.

Yeah I still see the blinking as well, especially if the icons aren't cached I think? either way, I think that might just be due to the different way they render the new code view. I think, because it's a much more dynamic view, where new components are loaded in as you navigate, there might be more of a delay in when the plugin sees the icons? Not sure, but this was the closest I could get it, and I still think it looks pretty good, so I'm glad you merged!
Also, I'm not sure if you took a look at the bottom part of my PR description, but I did figure out that roundabout method for getting the "parent folder" icons to change. Do you have any opinions on that part?


Robyn Learn App not working

Project Robyn
Describe issue
Hi,
Whenever I add my own data to the app, I click "Finalize Variable Assignment" and get the following error with nothing loading:

Could someone please assist? The data is all in correct format as far as I am aware.

Hi @jaspertambini I've just deployed a fix to this issue. Can you please update RobynLearn and retry? Thanks.

hey @laresbernardo, thanks for the quick response, it now seems to have an issue with the package and version of R (tried 4.05, 4.1.2, 4.2.2) is there a different one I should be using?

So did you update the package with remotes::install_github("facebookexperimental/Robyn/app"), restarted RStudio and tried loading it with library(RobynLearn) and get that error? I think you're trying to update CRAN version (and we don't have RobynLearn in CRAN yet).

ah yes sorry my mistake, although still seem to be getting the first error again

Can you share you anonymized data so I can replicate this case and help be debug?

if it helps I am on R 4.2.2 and Robyn 3.8.1

test_mmm.csv

sure, here's my example

Hi @jaspertambini I was able to replicate your issue. Can you please update RobynLearn and retry?

Nice one thanks, all working now :)

Sorry was a little hasty to close, have a few errors following this so keeping it under the same issue. Now facing a problem with my holidays when computing

dt_prophet_holidays.csv

Also is it possible to include events when running the explanatory data analysis? Throws an error when I include them but would be very useful as our data is very heteroskedastic due to the high effect of these events

Hey, just wondered if there was any luck with the Holiday file issue?
Really keen to use the app as looks so useful for testing purposes!

I've just deployed version 1.0.1. Can you please update and check if this issue persists? Thanks

Hey, tried using the new version but error seems to persist. Using the same dataset as before.

Closing this task given it's been inactive for some months. Feel free to re-open.


[Bug]: onRegionDidChange callback unreliable on Android

Mapbox Implementation
Mapbox
Mapbox Version
default
Platform
Android
@rnmapbox/maps version
10.0.0-beta.47
Standalone component to reproduce
import React from 'react';
import {
  MapView,
  ShapeSource,
  LineLayer,
  Camera,
} from '@rnmapbox/maps';

const aLine = {
  type: 'LineString',
  coordinates: [
    [-74.00597, 40.71427],
    [-74.00697, 40.71527],
  ],
};

class BugReportExample extends React.Component {
  render() {
    return (
      <MapView style={{flex: 1}} onRegionDidChange={() => console.log('onRegionDidChange')}>
        <Camera centerCoordinate={[-74.00597, 40.71427]} zoomLevel={14} />
        <ShapeSource id="idStreetLayer" shape={aLine}>
          <LineLayer id="idStreetLayer" />
        </ShapeSource>
      </MapView>
    );
  }
}

Observed behavior and steps to reproduce
Once out of every 20 or so times that the region changes, the map takes anywhere from several seconds to more than a minute to fire the onRegionDidChange callback.  This is especially evident when the map is zoomed out.
Expected behavior
The onRegionDidChange callback should be called soon (< 1s) after the map stops moving, as it is on iOS.
Notes / preliminary analysis
No response
Additional links and references
No response

same here, also it's called but visibleBounds from parameter wrong.
Expected: [[-122.44491575397831,37.768458362943534],[-122.45328424602278,37.754140944230755]] on ios
Current: [[180,90],[-180,90],[-180,-90],[180,-90]] on android

Was this solved in later beta versions? can anyone confirm?

Was this solved in later beta versions? can anyone confirm?

My package.json "@rnmapbox/maps": "rnmapbox/maps#main" latest version

Getting this error too again
"@rnmapbox/maps@rnmapbox/maps#main":
  version "10.0.0-beta.46"
...

Just tested something alike with "@rnmapbox/maps": "10.0.0-beta.65":
by logging several of the MapView callback props:
 <MapboxGL.MapView
      style={styles.container}
      styleURL={mapStyle}
      onWillStartLoadingMap={() => {
        console.log('>>>MapView onWillStartLoadingMap ');
      }}
      onDidFinishLoadingStyle={() => {
        console.log('>>>MapView onDidFinishLoadingStyle ');
      }}
      onRegionDidChange={reg => {
        console.log('>>>MapView onRegionDidChange ' , reg);
      }}
      onDidFinishRenderingMapFully={() => {
        console.log('>>>MapView onDidFinishRenderingMapFully ');
      }}
      compassEnabled={false}
      {...props}
    >
      {children}
    </MapboxGL.MapView>
  );

On Android none of the console.logs show up, whereas they do on iOS as expected.
Sidenote: for onDidFinishRenderingMapFully on iOS there is a warning:
WARN  rnmapbox maps: DidFinishRenderingMapFully is not supported

I've also noticed that (on 10.0.10) none of the above console logs show up in Android. Do these functions work in Android?
We have inconsistent initial map load times on different Android devices, and so it seems useful to use ondidfinishrenderingmapfully if it was available.


VMware Browser

VMware Browser - https://github.com/WhichBrowser/Parser-PHP/issues/198

Coverage remained the same at 100.0% when pulling ce96c263de3378cad596bcd65647aa914c947452 on ayumi-cloud:VMware into 4899110cd2f87b01e04ced62dbb9dec541031dee on WhichBrowser:master.


Add support for using 'tags' to organise and navigate between posts

The Becoming a teacher design history, which covers 7 services (depending how you count them) is now old enough and big enough that finding posts can be quite hard.
To resolve this, I’ve added support for tags - which means there’s now a new Tags page as well as pages for individual tags, and links to these from the individual posts.
Getting this to work was more fiddly than I expected, as whilst Eleventy already supports "tags" metadata and creates a collection for each tag, collections are also used for other things, including a special all collection, and we were also already (mis?)using tags to group together posts from the different services. You also don't get tag pages by default, but need to set this up.
Now that it’s done though, I think it’s proving to be quite useful, and we’d like to improve it in future by possibly having additional tag pages that are scoped by service (as well as the global ones), and to support tags within the "search" feature at the top. The tag pages are also currently missing pagination controls.
I think this feature would be a good candidate for upstreaming into the govuk-eleventy-plugin?

Nice!

Getting this to work was more fiddly than I expected, as whilst Eleventy already supports "tags" metadata and creates a collection for each tag, collections are also used for other things

Its for reasons like this that I’m in the process of moving my own site over to Lume, which has taken a far more holistic approach to tagging and pagination, is is far less hacky. govuk-lume? Don’t Paul, please don’t. 😂

Its for reasons like this that I’m in the process of moving my own site over to Lume, which has taken a far more holistic approach to tagging and pagination, and is far less hacky. govuk-lume? Don’t Paul, please don’t. 😂

🤦  I must admit I was kinda surprised that tags were only half a feature in Eleventy, given that it was presumably built for blogging, where tags are quite an old-school feature! (Wordpress and even Moveable Type had em!)


Command line build: codesign error

I can build via xcode with Automatically manage signing checked and everything works. When I try to build via the CLI I get these errors:
error: exportArchive: Automatic signing is unable to resolve an issue with the "ShareExt.appex" target's entitlements.
error: exportArchive: Provisioning profile "iOS Team Provisioning Profile: my.app.bundle.shareextension" doesn't match the entitlements file's value for the application-identifier entitlement.
I tried deleting all profiles under ~/Library/MobileDevice/Provisioning Profiles/ but the result stays the same.
Any advice is appreciated

Sorry but signing is always messy with Xcode. Because my app is using an additional extension I always open the project in Xcode anyway to fixing signing issues. Cordova cli build never fully works for me sadly.
Ideally the hooks of this plugin should fix everything automatically and make it work. Are you sure your provisioning profiles are correct and set via the plugin variables in plugin.xml?

@devtobo did you manage to solve it?
I think the problem is with cordova-ios. there's a need to define two provisioning profiles for the extension and the app, cordova-iosseems to create a bad exportOptions.plist file...


Storm 631: refactoring kafka connector code.

This also covers STORM-590. I could not come up with a better name for partitionCoordinator which is more like PartitionManagerCache but it also handles Task to PartitionManager Mapping so any suggestions are welcome.

I also tested the changes against kafka 0.8.2 release candidate and was able to verify that bolts/spouts/trident states/emitter are able to read and write from kafka topics.

Hi
thanks for starting this refactoring, i've had this on my list of things to do but unfortunately have not had the time to do it.
A few suggestions:
It would be nice to break up this change (maybe we can even break up the jira):

ITuple refactoring & renaming of packages
addition of API based PartitionCoordinator

This makes it easier to review.
Also do we really have to make this a breaking change? Could we not just have another implementation of IBrokerReader and PartitionCoordinator, which are fairly clean interfaces. I’ve definitely found the static partition configuration helpful when debugging.
The use of the marker interface is fairly localised (KafkaUtils.makeBrokerReader and KafkaSpout.open) so I don't think it's too big a problem.
If we want to get away from the BrokerHosts marker interface we could add something more explicit to the KafkaConfig (e.g. config.partitionSource() which could return STATIC/ZK/KAFKA) - I think this is more a question of style rather than complexity.
Why did you remove the configuration for the batch coordinator in trident? I’ve found that quite useful when debugging. I also think that mixing trident and non trident configuration can be a bit confusing, some parameters, e.g. stateUpdateIntervalMs do not have a meaning in trident.
Thanks again!

Thanks for the suggestions, I have tried to address all the concerns below.

I can create multiple jiras and separate the refactoring in two parts as you suggested.
I did not remove PartitionCoordinator, just moved it to a package called partition where I moved all the partition management stuff.
I removed IBrokerReader because I felt the recommended way to get the kafka broker host is the only way we should support, like a final method that can not be overridden. The users of this connector should not care how does the connector get internal kafka information like a topics' broker->partition mapping. If others are of the opinion that we should make this extensible I can keep the interface around I personally vote against doing this.
I have worked on few kafka connector issues and everytime I read the code the marker interfaces and alternate configs were actually the things that made reading/understanding the code harder. I could pass an instance of tridentConfig to non trident spout and nothing would work and no compile time errors/warnings will be issued. In my opinion we should not support 3 ways to get internal kafka details,  this does not just make the code harder to read but even the documentation to use the connector gets confusing with so many different ways to achieve something that should be internal to the connector code.

Hi,
i've created a backwards compatible alternative focused on using the Kafka API for reading partition information in https://github.com/apache/storm/pull/407. Please let me know what you think.
Thanks

Hi @Parth-Brahmbhatt ,
Thank you for pointing me to this pull request. I see that my pull request  https://github.com/apache/storm/pull/406 shares part of ideas with your branch  Storm 631 and think it would be nice to join the ideas in one place.
The main point of intersection is isolating failure-related functionality in dedicated class.

The difference in my approach is that I see this class plugable since logic of failure handling can differ from topology to topology. For example, I implemented case when number of retries per message is restricted.  Of course, reasonable default should be provided.  If it is pluggable, the question is how to choose and configure it. I think two main possibilities are: either with extending of KafkaConfig class, or introducing registry that stores appropriate factory. Last  approach can be better in case we speak about choosing approach per topology that works with several KafkaSpouts, listening  to different topics.

One more (minor) point. I would move all fail() event handling to failure handler. Your implementation divides this logic to common part located in PartitionManager class and specific one - in failure handler. I don't see conceptual cause for this division. There is a technical issue related to access level of members in PartitionManager, but this might be changed by slight PartitionManager refactoring.

I'd be glad to see your feedback to these points

@Parth-Brahmbhatt, @wurstmeister, @ogorun, @harshach:
Forgive me for hijacking this pull request discussion, but it seems like we have a number of efforts/JIRAs trying to address multiple points (refactoring, usability, error handling, etc.) with a fair amount overlap.  In the interest of improved communication and collaboration I'd like to create a parent/umbrella JIRA that would allow us to discuss and coordinate such efforts in a central location. Creating a feature branch in the main Storm repo is also an option if it would make collaboration easier/less painful.
I think the first order of business is to define (at a high level) everything we hope to accomplish, then come up with a plan for implementation.
If we're all in agreement, I'll go ahead and create the parent JIRA and get the ball rolling. How does that sound?

@ptgoetz  Makes sense.

sounds good!

@ptgoetz  makes sense. STORM-631 aiming to be a umbrella jira. Creating another jira is fine too.

STORM-650 created. Let's try to focus discussion/efforts there.

Do we want to close this pull request for the time being and re-open after discussion in STORM-650?

@Parth-Brahmbhatt @wurstmeister will this supersede STORM-590? (pull request)

I think we should be able to merge STORM-590 for now given that change is backward compatible and atleast allows users to move on to Kafka broker APIs. Personally I just want to re-write the whole kafka connector code.

@Parth-Brahmbhatt should we close this pull request for now?

closing.


The error message during installation is misleading

Describe the bug

This error message during installation is misleading:
Error: capability 'rollout' was not ready: no matches for flagger.app/, Resource=canaries

To Reproduce

Expected behavior

Warning: installing capability 'rollout' ... expected provider: flagger.app/, Resource=canaries

and timeout if capability installation fail after certain time (let's say 30m).
Screenshots

Cluster information

Additional context

In fact, @wonderflow removed Error from the installation error message by printing it via isStreams.Info at https://github.com/oam-dev/kubevela/pull/637/files#diff-e2bac7c400ef955a432ad1b32b6f241344b8ba98b18ddbd219ca3fd4c176a1a9R159-R160.
So I just refined the error message, increased timeout to 5 minutes from 2 minutes to allow more time for controllers to get ready, and did some code refactoring.


Make public to edit commands_objects

When do not use runCommands or processUpdate,  $command_object cannot be updated so cannot run executeCommand:
It appears like this:

create a new Command
call it by executeCommand
this command's __construct can be run
this commans's execute cannot be run

Due to:
https://github.com/php-telegram-bot/core/blob/0.77.1/src/Telegram.php#L610
https://github.com/php-telegram-bot/core/blob/0.77.1/src/Telegram.php#L661

?
!

Type
improvement

BC Break
no

Fixed issues

Summary

Temp fix (in the project that this core sdk be used):
(fn()=>$this->command_objects = $this->getCommandList())->call($telegram);

Fix way 2:
<?php

namespace App\Common;

use GuzzleHttp\Client;
use Longman\TelegramBot\Entities\ServerResponse;
use Longman\TelegramBot\Exception\TelegramException;
use Longman\TelegramBot\Request;
use Longman\TelegramBot\Telegram as BaseTelegram;

class Telegram extends BaseTelegram
{
    private static function getClient(): Client
    {
        return new Client([
            'base_uri' => env('TELEGRAM_API_BASE_URI'),
            'proxy' => env('TELEGRAM_PROXY'),
            'timeout' => 60,
        ]);
    }

    /**
     * @throws TelegramException
     */
    public static function getTelegram(): Telegram
    {
        $telegram = new self(env('TELEGRAM_BOT_TOKEN'), env('TELEGRAM_BOT_USERNAME'));
        Request::setClient(self::getClient());
        return $telegram;
    }

    public function executeCommand(string $command): ServerResponse
    {
        $this->commands_objects = $this->getCommandsList();
        return parent::executeCommand($command);
    }
}

But this two are not a good way

fix way 3:
$property = new ReflectionProperty(Telegram::class, 'commands_objects');
$property->setValue($telegram, $telegram->getCommandsList());
$telegram->executeCommand($message->getCommand());

Sorry, i think it should be a issue, i don't know how to fix it due to Choice Difficulty and Obsessive-Compulsive Disorder

I’m not understanding what problem you’re trying to solve here.

I’m not understanding what problem you’re trying to solve here.

If i do not use runCommands or processUpdate
I will not go to run something like https://github.com/php-telegram-bot/core/blob/0.77.1/src/Telegram.php#L610
So i cannot run command with only executeCommand
If i did, the Command Class's __construct will be ran, but the execute will not.
That means if i only call executeCommand,
I will not got things like https://github.com/php-telegram-bot/core/blob/0.77.1/src/Telegram.php#L1218 did.

I’m not understanding what problem you’re trying to solve here.

If i do not use runCommands or processUpdate I will not go to run something like https://github.com/php-telegram-bot/core/blob/0.77.1/src/Telegram.php#L610 So i cannot run command with only executeCommand If i did, the Command Class's __construct will be ran, but the execute will not. That means if i only call executeCommand, I will not got things like https://github.com/php-telegram-bot/core/blob/0.77.1/src/Telegram.php#L1218 did.

Then, It is necessary to go back to how i got this matter. Until the root cause is that I want to get rid of the existing commands in the vendor.