In CustomShader , normalized values are wrong when the componentType is "UINT8".

I have a points cloud tileset which has a property named "velocity".
I set the property normalized to true.

In CustomShader, I got the wrong values.
It seems that the original data is not divided by 255.0;
I got the velocity which was not between min and max;

I tested the velocity value;
Its value was original * scale + offset;
But it should be original / 255.0 * scale + offset;
test data: 3dtiles.zip
shader code:
float velocity = fsInput.metadata.velocity;
  if(velocity < 25.0)
  {
    material.diffuse = vec3(1.0, 0.0, 0.0);
    material.alpha = 0.9;
  }
  else
 {
    material.diffuse = vec3(0.0, 1.0, 0.0);
    material.alpha = 0.9;
 }

Sandcastle example:
Browser: edge
Operating System: win10

if I set "scale" to scale / 255.0, the result is right. And at this situation, Even if I set normalized to false, the result is still right.

I believe normalized specifies that the data in the tiles is normalized, not if the values should be normalized at runtime.

The data in the tile is normalized, but the data denormalized in customshader is NOT right.

Yes, this seems like a bug.
One workaround (untested) is to set "normalized": true on the glTF accessor storing the velocity values.
For the actual fix, it would most likely go here. If the vertex attribute is already normalized then we don't need to do anything; otherwise we need to add some normalization code to the generated GLSL.

@lilleyse I use the first method. And it works.
Thank you very much.

@ggetz  I 'm sorry that I am not good at js.


QA: Can we use Seconds_Behind_Master(MariaDB 10.5.x) for ReplicationLagQuery?

Hi, @shlomi-noach.
As described in https://github.com/openark/orchestrator/blob/master/docs/configuration-recovery.md#promotion-actions

FailMasterPromotionOnLagMinutes: defaults 0 (not failing promotion). Can be used to fail a promotion if the candidate replica is too far behind. Example: replicas were broken for 5 hours, and then master failed. One might want to prevent the failover in order to recover the binary logs / relay logs for those lost 5 hours. To use this flag, you must set ReplicationLagQuery and use a heartbeat mechanism such as pt-heartbeat. The MySQL built-in Seconds_behind_master output of SHOW SLAVE STATUS (pre 8.0) does not report replication lag when replication is broken.

I wonder, can we use Seconds_Behind_Master for ReplicationLagQuery to determine replication lagging?
I currently use MariaDB 10.5.11(Release date: 23 Jun 2021)
see: https://mariadb.com/kb/en/show-replica-status/#column-descriptions

I wonder, can we use Seconds_Behind_Master for ReplicationLagQuery to determine replication lagging?

If you don't specify ReplicationLagQuery, then orchestrator uses Seconds_Behind_Master by default.

Thanks for your reply!
One more thing, is Seconds_Behind_Master reliable to determine replication lagging?
I saw some blog posts that said that it's not reliable to use(better to use pt-heartbeat).
Sorry, I'm a newbie.

It is not reliable in my experience. See http://code.openark.org/blog/mysql/seconds_behind_master-vs-absolute-slave-lag

Thanks!

I wonder, can we use Seconds_Behind_Master for ReplicationLagQuery to determine replication lagging?

If you don't specify ReplicationLagQuery, then orchestrator uses Seconds_Behind_Master by default.

Aug 17 11:57:22 a.test.com orchestrator[3040]: 2021-08-17 11:57:22 FATAL nonzero FailMasterPromotionOnLagMinutes requires ReplicationLagQuery to be set
It's not true, I'm using orchestrator 3.2.6 and MariaDB 10.5.12.

Seems that I cannot extract Seconds_Behind_Master solely from the output of SHOW SLAVE STATUS (As of MariaDB 10.5.12)

According to https://github.com/openark/orchestrator/blob/master/go/inst/instance_dao.go#L640-L654
if config.Config.ReplicationLagQuery != "" && !isMaxScale {
	waitGroup.Add(1)
	go func() {
		defer waitGroup.Done()
		if err := db.QueryRow(config.Config.ReplicationLagQuery).Scan(&instance.ReplicationLagSeconds); err == nil {
			if instance.ReplicationLagSeconds.Valid && instance.ReplicationLagSeconds.Int64 < 0 {
				log.Warningf("Host: %+v, instance.SlaveLagSeconds < 0 [%+v], correcting to 0", instanceKey, instance.ReplicationLagSeconds.Int64)
				instance.ReplicationLagSeconds.Int64 = 0
			}
		} else {
			instance.ReplicationLagSeconds = instance.SecondsBehindMaster
			logReadTopologyInstanceError(instanceKey, "ReplicationLagQuery", err)
		}
	}()
}

If we fail db.QueryRow(config.Config.ReplicationLagQuery).Scan(&instance.ReplicationLagSeconds) deliberately, ReplicationLagSeconds will use SecondsBehindMaster as fallback, which is desired.
However, the method aforementioned has one side-effect that, it'll do an error log.

I wonder, can we use Seconds_Behind_Master for ReplicationLagQuery to determine replication lagging?

If you don't specify ReplicationLagQuery, then orchestrator uses Seconds_Behind_Master by default.

Aug 17 11:57:22 a.test.com orchestrator[3040]: 2021-08-17 11:57:22 FATAL nonzero FailMasterPromotionOnLagMinutes requires ReplicationLagQuery to be set
https://github.com/openark/orchestrator/blob/master/go/config/config.go#L544
https://github.com/openark/orchestrator/blob/master/docs/using-the-web-api.md
It's not true, I'm using orchestrator 3.2.6 and MariaDB 10.5.12.

@shlomi-noach, can we propose a way to indicate ReplicationLagQuery to use Seconds_Behind_Master directly? instead of the hacking way.


Add run as user option

Using the authorization system, it should be possible to add a run-as option in cook to submit work that runs as a different user than the one submitting it. This is useful for building services on top of cook as well as removing the assumption that the submitting user exists on the machines running the job.

This feature was implemented in #667 (user impersonation).


Performance - Investigation & Tracking issue

Over the past few days since #2364 was merged, I have been investigating performance again and looking into how we can improve said performance. In this issue, I will be mentioning what I have found and how I have (on specific test documents) doubled the performance of cold compile times and tripled incremental compile performance. I will discuss each optimization, where they came from. For some of these issues I will be opening PRs over the coming days since they're mostly very small changes
Thanks to everybody that helped with this investigation 🎉
Summary
This is a summary of the changes I am suggesting to improve performance, explanations will be in follow up sections:

Adding an allocator like mimalloc
Change .into_iter() to .iter() in bibliography.rs #2398
Change SourceDiagnostic to use EcoVec instead of Vec for cheaper cloning #2420
Remove the Box inside of SourceResult #2420
Change Vec to EcoVec in SourceResult #2420
Use interning of strings for field names (already discussed with @laurmaedje for the type rework)
Pre-hash or intern label names
Cache is_justifiable in shaping.rs as a field in ShapedGlyph #2399 #2426
Make query used hashed label and field names (would be even better with interning)
Add ittapi behind a feature flag for making profiling easier (behind a feature flag on the CLI)
Synthesize the loaded bibliography in BibliographyElem
Memoize PNG, SVG, and (parts of) PDF encoding #2400
Additional query selectors: .rev(), .first(), .last()

Details
I talk a lot about percentages, they are not relative to the current main version, but rather to one another, hence why they add up to more than 100%.
Adding an allocator
While it has been discussed at length of the desire of not adding C dependencies, it is my strong belief that an exception for the CLI only should be made to use a faster allocator. As it turns out, using mimalloc instead of the default allocator provides a 20% compile time decrease on Linux, 30% compile time decrease on Windows, these numbers are repeatable on different CPUs, the gains being bigger on an AMD CPU than an Intel one. These improvements also affect incremental compiles similarly.
Change .into_iter() to .iter()
Calling .into_iter() on an EcoVec that is shared (between the comemo cache and the call site) leads to a complete copy of the entire tree of values, changing it to an iter merely borrows the value, on my thesis that uses a rather large bibliography (around 170 entries), this saves around 20% of the incremental compile times.
SourceDiagnostic cloning
It appears that the SourceDiagnostic struct is being cloned a lot when calling functions. I suspect that this has to do with the delayed error system introduced in 378ebe5, since when using bib elements in locate blocks, it can cause errors to be thrown and somehow cloned. Investigating the source of this clone to eliminate it would be worth it. However, making the elements inside of SourceDiagnostic to EcoVecs mostly solves the issue as well.
Removed Box in SourceResult
The idea was to limit the size of the SourceResult however, in most cases, the value contained in the Ok(T) variant of the result is big enough that this does not matter, but it adds an extra level of indirections that makes cloning the error variants slower than it needs to be.
Hashed/Interned field names & labels
In query heavy documents, the constant string comparisons for field names and labels makes the document compilation far slower than it needs to be, this can be solved by interning these values or pre-hashing them. In my test, when pre-hashing them and using glossarium (or rather the original version I developed for my thesis), this can lead to a huge reduction in compile times and especially incremental times of 15%.
Cached is_justifiable
This function is used for correct CJK text shaping and justification, it is therefore crucial. However, since it is being called multiple times on each character in the text, it becomes incredibly slow. The solution, which also speeds up CJK text, is to simply add a is_justifiable: bool to ShapedGlyph to cache this value. This improves performance tremendously for both CJK and non-CJK text!
Query using hashed labels & fields
This goes with hashed/interned strings, pre-hashing strings before querying also help gaining lots of performance.
Synthesize bibliography elements
Currently the bibliography is re-loaded (although cached by comemo) every time, instead if could be synthesized onto the BibliographyElement fixing the issue completely.
Memoized PNG, SVG, and PDF export
If the frame does not change, PNG and SVG exports don't need to change either. Ideally we would not even write the frame again, in my testing this allows already excellent gains. For PDF, I have only tested caching the compression of content streams, however, rendering frames to a PDF Chunk could further improve this by reusing an entire page's worth of content. This is only useful for incremental compiles, but it does provide about a 30% improvement on my thesis simply be removing the need to re-write/re-compress everything.
Additional query selector
This is specific to glossarium, and likely other packages that are query heavy: by adding the .rev(), .first(), and .last() selector, it makes it possible to optimize queries and decrease the amount of cloning being performance, as well as the number of nodes being checked. I have not yet tested the performance improvement of this, but I know that it will improve, I just need to comprehensively test it.
Conclusion
With these changes, as well as a couple of improvements to comemo, I was able to take the compile time of my thesis from 14.6s down to 6s, and incremental compilations from 2.9s down to just 600ms. On another 2.5k pages long document, it brought compile times down from 2m down to 1m30s, with incremental going from 30s to 15s. These gains are incredible for the little amount of code required to obtain them.
These results are reflected in the number of instructions being executed being halved for my thesis with no changes to either the Typst test suites, nor my thesis' output.

Update
As of #2420 here are the improvements including the latests changes relative to a596663 (before I began). These tests are run on two machines: an Intel i9 12900k running Ubuntu, and an AMD 7950X3D  running Windows. The following table shows a series of tests (I can't be bothered to explained the changes I am doing in my thesis just know that they're always the same) performed on both platforms, and for the 7950X3D executed on both: a core with X3D enabled and a core without.
The tests are as follows: cold compile, 4x an edit and its undo (each edit is different: image PNG, outline, glossary, page break), as well as a test on a document from @Enter-tainer that has 2000 pages: cold compile, an edit and its undo. The tests are ran for each export format: PDF, PNG, and SVG.
As I am collecting these by hands, the number of samples are fairly low, sorry not sorry, I value my sanity, unfortunately my benchmarking harness cannot test typst w :(
For PDF I write to files to nul on Windows and /dev/null on Linux to try and remove I/O operations from the measurement as much as possible, all tests on the R9 7950X3D are executed on the same NVME SSD (PCIe 4.0 x4), for the Linux box I forgot what the drive is, I think it's a PCIe 3.0 x4 NVME SSD but I really don't remember. To try and keep the results as consistent as possible, the processes are always spawned on the same cores, with the highest priority.
Please note that I had to do this by hand and it took hours, if scientific rigour isn't there 100% (looking at you @dccsillag) then so be it 🤷♂  It took ten samples of each except for @Enter-tainer 2.5k pages long document where I limited myself to three samples.
(other results will come in different posts because I need sleep)
PDF results

7950x3D: regardless of cache, a 30% improvement in cold compile time, and a 10% improvement in incremental time for my thesis, and a 20% improvement in cold compile time for @Enter-tainer's doc, and a 5% with 3D-VCache and 20% improvement without for incremental compilation.
12900k: TODO

PNG results
TODO
SVG results
TODO
Conclusion
While I am not done taking all of the measurements, I have been testing extensively lately and I can say: for these first 4 changes, we have already gained a huge amount of performance basically "for free" (the complexity hasn't increase either, nor as memory consumption in any significant way). The next steps involve interning/pre-hashing and a better allocator. With these things we'll almost be there!

I think most of the stuff described in the issue has landed, so we can close this tracking issue as completed!


installation of mongodb for linux added to readMe

Fixes #149
installation of mongodb for debian based system added to readMe

Done Requested Changes But can't find the missing image in the whole project

I used a link on my PR instead of outlining all the steps since that will
a) avoid any errors / allow users to follow more thorough distro-specific instructions
b) reduce the space taken up by the README.md file, although that isn't that big of an issue, it helps in the long run


[BUG] Invoke transaction result missing from add_transaction return type

Python version
n/a
Expected Behavior
Transactions executed on gateway have additional result field in add_transaction return type, which is missing entirely from both client and gateway_client.
Current Behavior
as above
Possible Solution
Add an (optional) transaction result field.
Steps to Reproduce

Execute any transaction that returns a value in @external function

It seems result is only present on devnet. It's missing in testnet, integration - not reason to support it.


Representing NA values

Hi! I think it's useful to have a special NA or NaN value to represent the case where a value cannot be calculated. Other popular data analysis libraries such like numpy/pandas all have it.
One use case is that I want to calculate the difference between today's close price and yesterday's close price for each candle in the time series. Then I want to do dif := techan.NewDifferenceIndicator(today, NewRefIndicator(yday, 1)) but if I accidentally call dif.Calculate(0) it will segfault.
I think we can workaround this problem by other means but I feel the most natural way is to add a NA value. What's your thoughts on this?

Hey @zhengyangfeng00, I like the idea! Definitely an omission from the library in it's current state. How would you feel about collaborating on this? If you send me a PR i'm happy to look at it, otherwise, i'll try to address this as soon as I have time

I'm happy to work on a PR. I'm experimenting with a very simple implementation:
package na

import (
	"math"

	"github.com/sdcoffey/big"
)

var (
	// NA is a decimal object that represents a result that cannot be calculated.
	NA = big.NewDecimal(float64(math.MaxInt64))
)

func IsNA(d big.Decimal) bool {
	return d.EQ(NA)
}

and it worked fine with my use cases. I basically have all indicators be aware of this NaN value. Essentially if an indicator depends on another one, then in its Calculate it first checks if the indicator it depends on calculates to NaN and if so, it returns NaN as well.
The majority of work I image is to update all existing indicators to behave similar?

@zhengyangfeng00 Since this is more of a feature of big, i've moved this ticket here:
https://github.com/sdcoffey/big/issues/3


New file types to add

Add functionality for:

gif
tif
python
pst,
heic
audio/video file types

Support for .pst files is tricky. It must be done through a Python library (libratom, libpff-python, Aspose.Email-for-Python-via-NET, or pywin32). I could only get pywin32 to work, but this one forces Outlook to run in the background. Further, since the File instance is open in the background, File.processor.save() will be unable to copy the file (as it would be currently in-use)

Addressed in PR #126
PST file support is excluded from this PR, but the code is functional and in the enhancement/pst-file-type branch


[v0.9.4.x] Plugin could not be activated because it triggered a fatal error.

Fatal error: Cannot redeclare w3_instance() (previously declared in /home/public_html/wp-content/plugins/w3-total-cache/w3-total-cache-api.php:527) in /home/public_html/wp-content/plugins/w3-total-cache-fixed/inc/define.php on line 1512

Any solution to solve this?

hi @vysegonzo you have installed both w3-total-cache and w3-total-cache-fixed. If you want use w3-total-cache-fixed you must delete w3-total-cache.

Greets @vysegonzo !
To expand on what @nigrosimone is saying ...

W3 Total Cache (Fixed) is this repository's official plugin name -- lets call it W3TC-fixed.
W3 Total Cache is the WordPress official plugin name -- lets call it W3TC

When W3TC-fixed is installed in your WordPress (WP) website it first checks to see if there is an existing W3TC installed already.  If there is then a helpful warning message is displayed alerting you that W3TC-fixed will not activate until you deactivate W3TC.  When you deactivate W3TC you are then free to activate W3TC-fixed.  And everything is now in harmony.  You can even keep W3TC installed -- you don't have to delete it!
However, if you activate W3TC-fixed and then proceed to install W3TC and activate as well then you will see the "Fatal Error" message that you got.
W3TC and W3TC-fixed share a lot of the same common files and naming convention internally.  The problem is W3TC is not aware to end gracefully (e..g block activation) when it sees conflicts, unlike W3TC-fixed which is very much aware.
TL;DR Summary
You can keep both W3TC and W3TC-fixed on your WP sites but only one or the other can be activated at any given time.  When you activate W3TC-fixed while W3TC is already active you get an alert indicating the conflict and a graceful denial to activate W3TC-fixed.  But if you attempt to activate W3TC while W3TC-fixed is already active you get a chaotic Fatal error -- the message you got.


[Feature Request] Add Filament Viewer as additional rendering engine

https://github.com/google/filament would be a great addition to the current rendering engines as it would allow directly checking how models will look on Android SceneViewer.

Hey @cx20, where did you get your example code for loading a glTF into the JS version of Filament?

Oh maybe it was this: https://google.github.io/filament/webgl/helmet.html

Work in progress on a branch named filament.
/cc https://github.com/prideout/gltumble/issues/2


build error

Linux localhost.localdomain 3.10.0-862.14.4.el7.x86_64 #1 SMP Wed Sep 26 15:12:11 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
目标：x86_64-redhat-linux
配置为：../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
线程模型：posix
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)
cmake --version
cmake version 3.13.1
This is the CMakeCache file.
For build in directory: /root/pistache/build
It was generated by CMake: /root/cmake-3.13.1-Linux-x86_64/bin/cmake
You can edit this file to change values found and used by cmake.
If you do not want to change any of the values, simply exit the editor.
If you do want to change a value, simply edit, save, and exit the editor.
The syntax for the file is as follows:
KEY:TYPE=VALUE
KEY is the name of a variable in the cache.
TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
VALUE is the current value for the KEY.
########################
EXTERNAL cache entries
########################
//Path to a program.
CMAKE_AR:FILEPATH=/usr/bin/ar
//Choose the type of build, options are: None Debug Release RelWithDebInfo
// MinSizeRel ...
CMAKE_BUILD_TYPE:STRING=Release
//Enable/Disable color output during build.
CMAKE_COLOR_MAKEFILE:BOOL=ON
//CXX compiler
CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
//A wrapper around 'ar' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar
//A wrapper around 'ranlib' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib
//Flags used by the CXX compiler during all build types.
CMAKE_CXX_FLAGS:STRING=
//Flags used by the CXX compiler during DEBUG builds.
CMAKE_CXX_FLAGS_DEBUG:STRING=-g
//Flags used by the CXX compiler during MINSIZEREL builds.
CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
//Flags used by the CXX compiler during RELEASE builds.
CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
//Flags used by the CXX compiler during RELWITHDEBINFO builds.
CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
//C compiler
CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc
//A wrapper around 'ar' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar
//A wrapper around 'ranlib' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib
//Flags used by the C compiler during all build types.
CMAKE_C_FLAGS:STRING=
//Flags used by the C compiler during DEBUG builds.
CMAKE_C_FLAGS_DEBUG:STRING=-g
//Flags used by the C compiler during MINSIZEREL builds.
CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
//Flags used by the C compiler during RELEASE builds.
CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
//Flags used by the C compiler during RELWITHDEBINFO builds.
CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
//Flags used by the linker during all build types.
CMAKE_EXE_LINKER_FLAGS:STRING=
//Flags used by the linker during DEBUG builds.
CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during MINSIZEREL builds.
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during RELEASE builds.
CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during RELWITHDEBINFO builds.
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Enable/Disable output of compile commands during generation.
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
//Install path prefix, prepended onto install directories.
CMAKE_INSTALL_PREFIX:PATH=/usr/local
//Path to a program.
CMAKE_LINKER:FILEPATH=/usr/bin/ld
//Path to a program.
CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake
//Flags used by the linker during the creation of modules during
// all build types.
CMAKE_MODULE_LINKER_FLAGS:STRING=
//Flags used by the linker during the creation of modules during
// DEBUG builds.
CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during the creation of modules during
// MINSIZEREL builds.
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during the creation of modules during
// RELEASE builds.
CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during the creation of modules during
// RELWITHDEBINFO builds.
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Path to a program.
CMAKE_NM:FILEPATH=/usr/bin/nm
//Path to a program.
CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
//Path to a program.
CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
//Value Computed by CMake
CMAKE_PROJECT_DESCRIPTION:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_NAME:STATIC=pistache
//Path to a program.
CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
//Flags used by the linker during the creation of shared libraries
// during all build types.
CMAKE_SHARED_LINKER_FLAGS:STRING=
//Flags used by the linker during the creation of shared libraries
// during DEBUG builds.
CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during the creation of shared libraries
// during MINSIZEREL builds.
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during the creation of shared libraries
// during RELEASE builds.
CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during the creation of shared libraries
// during RELWITHDEBINFO builds.
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//If set, runtime paths are not added when installing shared libraries,
// but are added when building.
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
//If set, runtime paths are not added when using shared libraries.
CMAKE_SKIP_RPATH:BOOL=NO
//Flags used by the linker during the creation of static libraries
// during all build types.
CMAKE_STATIC_LINKER_FLAGS:STRING=
//Flags used by the linker during the creation of static libraries
// during DEBUG builds.
CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during the creation of static libraries
// during MINSIZEREL builds.
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during the creation of static libraries
// during RELEASE builds.
CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during the creation of static libraries
// during RELWITHDEBINFO builds.
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Path to a program.
CMAKE_STRIP:FILEPATH=/usr/bin/strip
//If this value is on, makefiles will be generated without the
// .SILENT directive, and all commands will be echoed to the console
// during the make.  This is useful for debugging only. With Visual
// Studio IDE projects all commands are done without /nologo.
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
//build examples alongside the project
PISTACHE_BUILD_EXAMPLES:BOOL=true
//build tests alongside the project
PISTACHE_BUILD_TESTS:BOOL=OFF
//add pistache as install target (recommended)
PISTACHE_INSTALL:BOOL=ON
//The directory containing a CMake configuration file for RapidJSON.
RapidJSON_DIR:PATH=/usr/share/cmake/RapidJSON
//Value Computed by CMake
pistache_BINARY_DIR:STATIC=/root/pistache/build
//Dependencies for the target
pistache_LIB_DEPENDS:STATIC=general;pthread;
//Value Computed by CMake
pistache_SOURCE_DIR:STATIC=/root/pistache
########################
INTERNAL cache entries
########################
//ADVANCED property for variable: CMAKE_AR
CMAKE_AR-ADVANCED:INTERNAL=1
//This is the directory where this CMakeCache.txt was created
CMAKE_CACHEFILE_DIR:INTERNAL=/root/pistache/build
//Major version of cmake used to create the current loaded cache
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
//Minor version of cmake used to create the current loaded cache
CMAKE_CACHE_MINOR_VERSION:INTERNAL=13
//Patch version of cmake used to create the current loaded cache
CMAKE_CACHE_PATCH_VERSION:INTERNAL=1
//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
//Path to CMake executable.
CMAKE_COMMAND:INTERNAL=/root/cmake-3.13.1-Linux-x86_64/bin/cmake
//Path to cpack program executable.
CMAKE_CPACK_COMMAND:INTERNAL=/root/cmake-3.13.1-Linux-x86_64/bin/cpack
//Path to ctest program executable.
CMAKE_CTEST_COMMAND:INTERNAL=/root/cmake-3.13.1-Linux-x86_64/bin/ctest
//ADVANCED property for variable: CMAKE_CXX_COMPILER
CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR
CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB
CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER
CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER_AR
CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB
CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS
CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//Path to cache edit program executable.
CMAKE_EDIT_COMMAND:INTERNAL=/root/cmake-3.13.1-Linux-x86_64/bin/ccmake
//Executable file format
CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
//Name of external makefile project generator.
CMAKE_EXTRA_GENERATOR:INTERNAL=
//Name of generator.
CMAKE_GENERATOR:INTERNAL=Unix Makefiles
//Generator instance identifier.
CMAKE_GENERATOR_INSTANCE:INTERNAL=
//Name of generator platform.
CMAKE_GENERATOR_PLATFORM:INTERNAL=
//Name of generator toolset.
CMAKE_GENERATOR_TOOLSET:INTERNAL=
//Source directory with the top level CMakeLists.txt file for this
// project
CMAKE_HOME_DIRECTORY:INTERNAL=/root/pistache
//Install .so files without execute permission.
CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0
//ADVANCED property for variable: CMAKE_LINKER
CMAKE_LINKER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_NM
CMAKE_NM-ADVANCED:INTERNAL=1
//number of local generators
CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=3
//ADVANCED property for variable: CMAKE_OBJCOPY
CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_OBJDUMP
CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
//Platform information initialized
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
//ADVANCED property for variable: CMAKE_RANLIB
CMAKE_RANLIB-ADVANCED:INTERNAL=1
//Path to CMake installation.
CMAKE_ROOT:INTERNAL=/root/cmake-3.13.1-Linux-x86_64/share/cmake-3.13
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_RPATH
CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STRIP
CMAKE_STRIP-ADVANCED:INTERNAL=1
//uname command
CMAKE_UNAME:INTERNAL=/usr/bin/uname
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
pistache/src/server/router.cc:102:45: 错误：对‘regex_replace(const string&, std::regex&, const char [2])’的调用没有匹配的函数
SegmentTreeNode::multiple_slash, "/");

I have resolve it by use gcc version 5.2


JavaScriptCore compiler error on OS X

Seems like webkitgtk is using <thread> and it's not getting compiled using std=c++11 . Where would be the best place to pass that flag to GCC?
Here's the hemroid log.

What version of the NDK are you using?  I haven't seen this problem.  I have compiled JavaScriptCore at least 30,000 times on both OSX and Linux.  I am using r10e.

Seems to be an NDK bug. Android Studio apparently downloaded 12 beta without listing it as beta... I'll test on r11c.

Did switching back NDKs solve this issue?

This is now updated for NDK 12


HW Translator and Multiple loop sensors incorrectly reported as tampered

Before submitting this form

[X] I have checked that there hasn't been a similar issue submitted in the past

[X] I have updated the issue title to something relevant and clear to understand the bug I'm facing

Description of the bug
I have a sensor on my hardwire translator that monitors my garage door.  However, in some cases, it stays "open" but with a Tampered condition on qolsysgw, even though the sensor is secure on the IQPanel.  It seems that triggering another sensor at the same time on my HW translator causes this issue.
Also, I have a PG9945 sensor that has a built-in reed switch as well as the AUX input.  Same condition happens, it occasionally reports an Open condition with a Tampered = true, and closing the sensor reports an Open condition with a Tampered = false.  Sometimes it clears itself on its own.
Further research seems to indicate that every time there is a sensor status change from the hardwire translator or a multiple loop sensor like the PG9945, it reports ALL of them through the API even though their status hasn't changed.  This means we get 2 "Open" zone_event messages on an opened sensor on the API which is interpreted as a Tampered condition by qolsysgw.
This means we can't really report tampered conditions reliably on devices that report as multiple sensors/multiple loops.  It just reports as "Open" in the C4 integration anyway, as there is no explicit field in the API for this.
Is there a way to disable Tamper reporting altogether?  Perhaps on individual sensors?
Expected behavior
Garage open = open
Garage closed = closed, no tampered condition :)
Or, a way to disable tamper reporting on selected sensors, if not all of them.
DEBUG logs
Sensor is a PG9945 with ID 101-5348, zone 5 is the built-in reed switch, zone 19 is the aux input.
Z5 CLOSED/Z19 CLOSED -> Z5 OPEN/Z19 CLOSED
2023-07-28 12:48:02.523839 DEBUG qolsys_panel: Data received (len: 154): {"event":"ZONE_EVENT","zone_event_type":"ZONE_ACTIVE","version":1,"zone":{"status":"Open","zone_id":5},"requestID":"0e9f9a67-1911-400d-89de-2b548a33b7d7"}
2023-07-28 12:48:02.530519 DEBUG qolsys_panel: Qolsys callback for event: <QolsysEventZoneEventActive zone=namespace(id=5, status='Open') version=1>
2023-07-28 12:48:02.531320 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'mqtt', 'topic': 'qolsys/qolsys_panel/event', 'payload': '{"event": "ZONE_EVENT", "zone_event_type": "ZONE_ACTIVE", "version": 1, "zone": {"status": "Open", "zone_id": 5}, "requestID": "0e9f9a67-1911-400d-89de-2b548a33b7d7"}'}
2023-07-28 12:48:02.647533 DEBUG qolsys_panel: Received MQTT_MESSAGE with data={'topic': 'qolsys/qolsys_panel/event', 'wildcard': '#', 'payload': '{"event": "ZONE_EVENT", "zone_event_type": "ZONE_ACTIVE", "version": 1, "zone": {"status": "Open", "zone_id": 5}, "requestID": "0e9f9a67-1911-400d-89de-2b548a33b7d7"}'} and kwargs={'topic': 'qolsys/qolsys_panel/event', '__thread_id': 'MainThread'}
2023-07-28 12:48:02.655661 DEBUG qolsys_panel: MQTT callback for event: <QolsysEventZoneEventActive zone=namespace(id=5, status='Open') version=1>
2023-07-28 12:48:02.664906 DEBUG qolsys_panel: ACTIVE zone=namespace(id=5, status='Open')
2023-07-28 12:48:02.673978 DEBUG qolsys_panel: Sensor '101-5348' (PG9945 Reed) status updated to 'Open'
2023-07-28 12:48:02.683379 DEBUG qolsys_panel: Notifying <QolsysSensorDoorWindow id=101-5348 name=PG9945 Reed group=entryexitdelay status=Open state=0 zone_id=5 zone_type=1 zone_physical_type=1 zone_alarm_type=3 partition_id=0> observers with: {'change': 'update_status', 'prev_value': 'Closed', 'new_value': 'Open'}
2023-07-28 12:48:02.692839 DEBUG qolsys_panel: Received update from sensor 'PG9945 Reed' for CHANGE=update_status, from prev_value=Closed to new_value=Open
2023-07-28 12:48:02.702123 DEBUG qolsys_panel: Data received (len: 157): {"event":"ZONE_EVENT","zone_event_type":"ZONE_ACTIVE","version":1,"zone":{"status":"Closed","zone_id":19},"requestID":"af8c070d-ff8f-4f59-8067-d35284b8daae"}
2023-07-28 12:48:02.708797 DEBUG qolsys_panel: Qolsys callback for event: <QolsysEventZoneEventActive zone=namespace(id=19, status='Closed') version=1>
2023-07-28 12:48:02.710199 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'mqtt', 'retain': True, 'topic': 'homeassistant/binary_sensor/pg9945_reed/state', 'payload': 'Open'}
2023-07-28 12:48:02.712239 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'mqtt', 'topic': 'qolsys/qolsys_panel/event', 'payload': '{"event": "ZONE_EVENT", "zone_event_type": "ZONE_ACTIVE", "version": 1, "zone": {"status": "Closed", "zone_id": 19}, "requestID": "af8c070d-ff8f-4f59-8067-d35284b8daae"}'}
2023-07-28 12:48:03.302708 DEBUG qolsys_panel: Received MQTT_MESSAGE with data={'topic': 'qolsys/qolsys_panel/event', 'wildcard': '#', 'payload': '{"event": "ZONE_EVENT", "zone_event_type": "ZONE_ACTIVE", "version": 1, "zone": {"status": "Closed", "zone_id": 19}, "requestID": "af8c070d-ff8f-4f59-8067-d35284b8daae"}'} and kwargs={'topic': 'qolsys/qolsys_panel/event', '__thread_id': 'MainThread'}
2023-07-28 12:48:03.310358 DEBUG qolsys_panel: MQTT callback for event: <QolsysEventZoneEventActive zone=namespace(id=19, status='Closed') version=1>
2023-07-28 12:48:03.317862 DEBUG qolsys_panel: ACTIVE zone=namespace(id=19, status='Closed')

Z5 OPEN/Z19 CLOSED -> Z5 OPEN/Z19 OPEN
2023-07-28 12:48:33.808831 DEBUG qolsys_panel: Data received (len: 154): {"event":"ZONE_EVENT","zone_event_type":"ZONE_ACTIVE","version":1,"zone":{"status":"Open","zone_id":5},"requestID":"b60c3aa2-fb4f-41f1-a3c5-c7540ec37a09"}
2023-07-28 12:48:33.816391 DEBUG qolsys_panel: Qolsys callback for event: <QolsysEventZoneEventActive zone=namespace(id=5, status='Open') version=1>
2023-07-28 12:48:33.817224 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'mqtt', 'topic': 'qolsys/qolsys_panel/event', 'payload': '{"event": "ZONE_EVENT", "zone_event_type": "ZONE_ACTIVE", "version": 1, "zone": {"status": "Open", "zone_id": 5}, "requestID": "b60c3aa2-fb4f-41f1-a3c5-c7540ec37a09"}'}
2023-07-28 12:48:34.012004 DEBUG qolsys_panel: Received MQTT_MESSAGE with data={'topic': 'qolsys/qolsys_panel/event', 'wildcard': '#', 'payload': '{"event": "ZONE_EVENT", "zone_event_type": "ZONE_ACTIVE", "version": 1, "zone": {"status": "Open", "zone_id": 5}, "requestID": "b60c3aa2-fb4f-41f1-a3c5-c7540ec37a09"}'} and kwargs={'topic': 'qolsys/qolsys_panel/event', '__thread_id': 'MainThread'}
2023-07-28 12:48:34.019320 DEBUG qolsys_panel: MQTT callback for event: <QolsysEventZoneEventActive zone=namespace(id=5, status='Open') version=1>
2023-07-28 12:48:34.026595 DEBUG qolsys_panel: ACTIVE zone=namespace(id=5, status='Open')
2023-07-28 12:48:34.200709 DEBUG qolsys_panel: Data received (len: 155): {"event":"ZONE_EVENT","zone_event_type":"ZONE_ACTIVE","version":1,"zone":{"status":"Open","zone_id":19},"requestID":"a4a6becd-2c95-4971-b2ee-5343c3007593"}
2023-07-28 12:48:34.207303 DEBUG qolsys_panel: Qolsys callback for event: <QolsysEventZoneEventActive zone=namespace(id=19, status='Open') version=1>
2023-07-28 12:48:34.208050 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'mqtt', 'topic': 'qolsys/qolsys_panel/event', 'payload': '{"event": "ZONE_EVENT", "zone_event_type": "ZONE_ACTIVE", "version": 1, "zone": {"status": "Open", "zone_id": 19}, "requestID": "a4a6becd-2c95-4971-b2ee-5343c3007593"}'}
2023-07-28 12:48:34.603919 DEBUG qolsys_panel: Received MQTT_MESSAGE with data={'topic': 'qolsys/qolsys_panel/event', 'wildcard': '#', 'payload': '{"event": "ZONE_EVENT", "zone_event_type": "ZONE_ACTIVE", "version": 1, "zone": {"status": "Open", "zone_id": 19}, "requestID": "a4a6becd-2c95-4971-b2ee-5343c3007593"}'} and kwargs={'topic': 'qolsys/qolsys_panel/event', '__thread_id': 'MainThread'}
2023-07-28 12:48:34.611906 DEBUG qolsys_panel: MQTT callback for event: <QolsysEventZoneEventActive zone=namespace(id=19, status='Open') version=1>
2023-07-28 12:48:34.619202 DEBUG qolsys_panel: ACTIVE zone=namespace(id=19, status='Open')
2023-07-28 12:48:34.627165 DEBUG qolsys_panel: Sensor '101-5348' (Front Window) status updated to 'Open'
2023-07-28 12:48:34.635418 DEBUG qolsys_panel: Notifying <QolsysSensorDoorWindow id=101-5348 name=Front Window group=entryexitdelay status=Open state=0 zone_id=19 zone_type=1 zone_physical_type=1 zone_alarm_type=3 partition_id=0> observers with: {'change': 'update_status', 'prev_value': 'Closed', 'new_value': 'Open'}
2023-07-28 12:48:34.643807 DEBUG qolsys_panel: Received update from sensor 'Front Window' for CHANGE=update_status, from prev_value=Closed to new_value=Open
2023-07-28 12:48:34.648373 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'mqtt', 'retain': True, 'topic': 'homeassistant/binary_sensor/front_window/state', 'payload': 'Open'}

Z5 OPEN/Z19 OPEN -> Z5 CLOSED/Z19 OPEN - REPORTS TAMPER ON Z19 DUE TO DUPLICATE OPEN MESSAGE
2023-07-28 12:49:38.603432 DEBUG qolsys_panel: Data received (len: 156): {"event":"ZONE_EVENT","zone_event_type":"ZONE_ACTIVE","version":1,"zone":{"status":"Closed","zone_id":5},"requestID":"65ae136b-00ff-4c92-886c-71eb7080168f"}
2023-07-28 12:49:38.610909 DEBUG qolsys_panel: Qolsys callback for event: <QolsysEventZoneEventActive zone=namespace(id=5, status='Closed') version=1>
2023-07-28 12:49:38.611732 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'mqtt', 'topic': 'qolsys/qolsys_panel/event', 'payload': '{"event": "ZONE_EVENT", "zone_event_type": "ZONE_ACTIVE", "version": 1, "zone": {"status": "Closed", "zone_id": 5}, "requestID": "65ae136b-00ff-4c92-886c-71eb7080168f"}'}
2023-07-28 12:49:38.701221 DEBUG qolsys_panel: Received MQTT_MESSAGE with data={'topic': 'qolsys/qolsys_panel/event', 'wildcard': '#', 'payload': '{"event": "ZONE_EVENT", "zone_event_type": "ZONE_ACTIVE", "version": 1, "zone": {"status": "Closed", "zone_id": 5}, "requestID": "65ae136b-00ff-4c92-886c-71eb7080168f"}'} and kwargs={'topic': 'qolsys/qolsys_panel/event', '__thread_id': 'MainThread'}
2023-07-28 12:49:38.709461 DEBUG qolsys_panel: MQTT callback for event: <QolsysEventZoneEventActive zone=namespace(id=5, status='Closed') version=1>
2023-07-28 12:49:38.716922 DEBUG qolsys_panel: ACTIVE zone=namespace(id=5, status='Closed')
2023-07-28 12:49:38.725071 DEBUG qolsys_panel: Sensor '101-5348' (PG9945 Reed) status updated to 'Closed'
2023-07-28 12:49:38.733649 DEBUG qolsys_panel: Notifying <QolsysSensorDoorWindow id=101-5348 name=PG9945 Reed group=entryexitdelay status=Closed state=0 zone_id=5 zone_type=1 zone_physical_type=1 zone_alarm_type=3 partition_id=0> observers with: {'change': 'update_status', 'prev_value': 'Open', 'new_value': 'Closed'}
2023-07-28 12:49:38.742336 DEBUG qolsys_panel: Received update from sensor 'PG9945 Reed' for CHANGE=update_status, from prev_value=Open to new_value=Closed
2023-07-28 12:49:38.751839 DEBUG qolsys_panel: Data received (len: 155): {"event":"ZONE_EVENT","zone_event_type":"ZONE_ACTIVE","version":1,"zone":{"status":"Open","zone_id":19},"requestID":"7a748498-f3db-4c1e-aedc-e65ffcf1b3dc"}
2023-07-28 12:49:38.758535 DEBUG qolsys_panel: Qolsys callback for event: <QolsysEventZoneEventActive zone=namespace(id=19, status='Open') version=1>
2023-07-28 12:49:38.759868 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'mqtt', 'retain': True, 'topic': 'homeassistant/binary_sensor/pg9945_reed/state', 'payload': 'Closed'}
2023-07-28 12:49:38.761730 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'mqtt', 'topic': 'qolsys/qolsys_panel/event', 'payload': '{"event": "ZONE_EVENT", "zone_event_type": "ZONE_ACTIVE", "version": 1, "zone": {"status": "Open", "zone_id": 19}, "requestID": "7a748498-f3db-4c1e-aedc-e65ffcf1b3dc"}'}
2023-07-28 12:49:38.778754 DEBUG qolsys_panel: Received MQTT_MESSAGE with data={'topic': 'qolsys/qolsys_panel/event', 'wildcard': '#', 'payload': '{"event": "ZONE_EVENT", "zone_event_type": "ZONE_ACTIVE", "version": 1, "zone": {"status": "Open", "zone_id": 19}, "requestID": "7a748498-f3db-4c1e-aedc-e65ffcf1b3dc"}'} and kwargs={'topic': 'qolsys/qolsys_panel/event', '__thread_id': 'MainThread'}
2023-07-28 12:49:38.786190 DEBUG qolsys_panel: MQTT callback for event: <QolsysEventZoneEventActive zone=namespace(id=19, status='Open') version=1>
2023-07-28 12:49:38.794447 DEBUG qolsys_panel: ACTIVE zone=namespace(id=19, status='Open')
2023-07-28 12:49:38.802455 DEBUG qolsys_panel: Sensor '101-5348' (Front Window) tampered updated to 'True'
2023-07-28 12:49:38.810802 DEBUG qolsys_panel: Notifying <QolsysSensorDoorWindow id=101-5348 name=Front Window group=entryexitdelay status=Open state=0 zone_id=19 zone_type=1 zone_physical_type=1 zone_alarm_type=3 partition_id=0> observers with: {'change': 'update_tampered', 'prev_value': False, 'new_value': True}
2023-07-28 12:49:38.819214 DEBUG qolsys_panel: Received update from sensor 'Front Window' for CHANGE=update_tampered, from prev_value=False to new_value=True
2023-07-28 12:49:38.827417 DEBUG qolsys_panel: Notifying <QolsysSensorDoorWindow id=101-5348 name=Front Window group=entryexitdelay status=Open state=0 zone_id=19 zone_type=1 zone_physical_type=1 zone_alarm_type=3 partition_id=0> observers with: {'change': 'update_attributes'}
2023-07-28 12:49:38.835806 DEBUG qolsys_panel: Received update from sensor 'Front Window' for CHANGE=update_attributes, from prev_value=None to new_value=None
2023-07-28 12:49:38.840286 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'mqtt', 'retain': True, 'topic': 'homeassistant/binary_sensor/front_window/attributes', 'payload': '{"group": "entryexitdelay", "state": "0", "zone_type": 1, "zone_physical_type": 1, "zone_alarm_type": 3, "tampered": true}'}`

Additional context
No response

What happens when you do tamper sensors ?

So I had a sensor that had the reed switch open but the aux switch closed, and when it got tampered, both sensors were marked open, both tampered = false.
How does qolsysgw decide if a sensor is tampered if it's not reported by the API?

BTW, looking at the logs, I've noticed that I get a LOT of tampered sensor messages in the logs.  The only reason why I noticed it is that I have a push notification every time the garage door status changes (open/close/unavailable).
After all, this may not be limited only to dual sensors, as my PIRs routinely report tampered conditions and I know for a fact that they aren't tampered with, otherwise I would see messages on the IQP2 or on MobileTech!

It seems to happen when some sensors stay open for a very long time; it seems like the panel is sending a redundant zone_action message when a status changes after a while...

I documented in this document: https://github.com/XaF/qolsysgw/blob/main/docs/qolsys-panel-interactions.md (search "tamper") how I've identified (tests and checks) that the panel reports tampered sensors through the control4 API.
I've not had any issue with that, even when keeping my windows open for a while, it does not seem to repeat-report the open status or send redundant messages through ZONE_ACTIVE. The ZONE_UPDATE messages are the ones being used generally to resync the status of sensors that have not reported in a while.
I'm not familiar with dual sensors: how are they working? I would have expected two sensors in the panel, if coming from the same physical sensor, to have zone ids that follow each other but it's not the case in your situation?
I'm also curious why the sensor tampering seems to be an issue for all of your sensors: could it be a panel configuration option somewhere?

I've looked at this further, and I still don't know why it reports that.  Manually overriding the trouble check in the code fixed my issue.  I've looked at panel config options and can't find anything, and MobileTech does not report any trouble conditions at this time.

Same issue here with my multi-input sensors, like the PG9945 with reed + aux, and PG9WLSHW8 (8 inputs) also runs into this issue.
If you have a sensor with multiple inputs on the same device ID, it'll create that problem.  The only way to fix this is to bypass the trouble reporting in the code.


fix ClientAuthenticationFilter.checkTimestamp

What's the purpose of this PR
return false when timestamp - currentTimeMills > 60 seconds
Which issue(s) this PR fixes:
Fixes #
Brief changelog
replace the code x <= TIMESTAMP_INTERVAL with x >= -TIMESTAMP_INTERVAL && x <= TIMESTAMP_INTERVAL
Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Read the Contributing Guide before making this pull request.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit tests to verify the code.
[x] Run mvn clean test to make sure this pull request doesn't break anything.

Codecov Report

Merging #3029 into master will decrease coverage by 0.03%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master    #3029      +/-   ##
============================================
- Coverage     51.29%   51.25%   -0.04%
+ Complexity     2232     2231       -1
============================================
  Files           432      432
  Lines         13382    13382
  Branches       1374     1374
============================================
- Hits           6864     6859       -5
- Misses         6042     6047       +5
  Partials        476      476

Impacted Files
Coverage Δ
Complexity Δ

...nfigservice/filter/ClientAuthenticationFilter.java
91.30% <100.00%> (ø)
14.00 <0.00> (+1.00)

...work/apollo/biz/message/DatabaseMessageSender.java
56.25% <0.00%> (-10.42%)
6.00% <0.00%> (-2.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 faa0921...66bf44e. Read the comment docs.

why not make  TIMESTAMP_INTERVAL configable，1 minute is too strick

Sorry to see this PR now.
This implement was written by me, I once realized that TIMESTAMP_INTERVAL=60s is not the best way, and I agreed with what @zhaolin81 said, to make it configurable!
I don't agree with this PR solution. Maybe we can polish this logic soon.


Feature: Enabled option to exit application directly from taskbar tray.

This feature update allows users to exit the application directly from the taskbar tray instead of launching it and then closing it.
When the feature "Minimize to Tray on Close" is enabled, the only way to close the application was to launch it first and then close it by right-clicking on the application from the taskbar and then exiting it.
Or by using task manager or the terminal. With this feature update, it's a lot easier to exit the application.
Additional options, such as start, pause, and reset can also be added to the tray menu options with ease.

Fixes #166.

@SVijayB Thank you for the contribution!

Thank you! 😃


Uncaught ReferenceError: goog is not defined

I tried to follow README, but all I get is Uncaught ReferenceError: goog is not defined.
Here is my webpack config:
var path = require('path');
var webpack = require('webpack');

module.exports = {
  context: path.join(__dirname, '/src'),

  entry: {
    app: [
      'webpack-dev-server/client?http://localhost:8080/assets/',
      'webpack/hot/only-dev-server',
      './app.js'
    ]
  },

  output: {
    filename: '[name].js',
    path: path.join(__dirname, '/dist'),
    publicPath: '/assets/'
  },

  plugins: [
    new webpack.optimize.OccurenceOrderPlugin(),
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoErrorsPlugin()
  ],

  module: {
    loaders: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loaders: ['react-hot', 'babel-loader', 'closure-loader']
      },
      {
        test: /\.html$/,
        loader: "file?name=[name].[ext]"
      }
    ]
  },

  closureLoader: {
    paths: [
      path.join(__dirname, 'node_modules', 'google-closure-library', 'closure'),
      path.join(__dirname, '/src')
    ],
    es6mode: true
  }
}

Hi, I'll have a look at this tonight, but here is a quick guess:
The closure-loader only manages dependencies via goog.provide and goog.require.
If you want to use any other features from the closure library you'll have to require it somehow. You could try using the expose-loader to expose the global goog variable in every module.

Thanks. The error is for goog.provide

I think I know what your problem is. I wasn't able to get this 100% working with the whole closure lib yet though.
In your case you excluded the node_modules directory from the closure loader:
{
        test: /\.js$/,
        exclude: /node_modules/,
        loaders: ['react-hot', 'babel-loader', 'closure-loader']
}

That's probably why you get the error on goog.provide. Please either remove/change the exclude or add another loader for your node_modules/google-closure-library directory and see if that helps you. Please come back with further problems you encounter.

You're right. I tried to separate the loaders like this:
module: {
  loaders: [
    {
      test: /\.js$/,
      loaders: ['closure-loader']
    },
    {
      test: /\.js$/,
      exclude: /node_modules/,
      loaders: ['react-hot', 'babel-loader']
    }
  ]
}

and I now I get this error:
Unhandled rejection TypeError: Cannot read property 'goog.string.linkify' of undefined
    at createRequire (.../node_modules/closure-loader/index.js:99:20)

Looks like provideMap in that line is not defined.

Sorry, forgot to update the pattern, I set it to node_modules/google-closure-library as you instructed:
module: {
  loaders: [
    {
      test: /node_modules\/google-closure-library\/.*\.js$/,
      loaders: ['closure-loader']
    },
    {
      test: /\.js$/,
      exclude: /node_modules/,
      loaders: ['react-hot', 'babel-loader']
    }
  ]
}

and now I'm back to the initial error of goog is not defined.

You need to use the closure-loader for all files that contain a goog.require or goog.provide.
So if you use one of those statements in your own project files (those that are loaded via the second loader definition), then you need to also add the closure-loader to that second definition like you had before.
The next problem will occur once you try to use other goog functions like goog.inherits or goog.base. The problem here is, that you would need to to access the global goog variable inside your modules. This is not in the scope of this loader though. I am currently looking into this though and maybe I'll be able to put together a small example application or two on how to use this loader in conjunction with the closure library, either with ES6 or without.

Thanks, I wait for your working examples.

I have created some examples, hopefully they help you getting your project running. I also found a bug that might have been the source of your problems and fixed that. I also found some other bugs (and created issues for them) and I will see to get them fixed at some point. But if you keep to the examples you should get this running. I'll close this issue for now, but please come back if you encounter any further problems.


Better undo/redo icons in level editor

This is okay, but could be better:

Too bad Bootstrap doesn't (appear to?) have undo/redo icons.

I know this is old, but it's the first result when I google "glyphicon undo" so I'm going to put this here. You can use glyphicon-repeat (like the redo button shown at the top of this issue) and reverse it with the CSS transform: scale(-1, 1); and then it looks like a decent undo button.

I actually think a reversed glyphicon-share-alt looks more like an undo button. It's crazy that they failed to include undo / redo in glyphicons!

Adding on to @alexmojaki 's solution. You can also extend glyphicon-repeat and give it transform: rotateY(180deg). Not sure if works across  all browsers


fix: make clean error(#376)

What type of PR is this?
bug

What this PR does / why we need it:
Fix make clean errros.
Which issue(s) this PR fixes:
Fixes #376
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.

Flag
Coverage Δ

unittests
31.25% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.


Escape branch names, workflow names, and Appveyor job envs with percent encoding

Some repos use / in their branch names, which tinuous currently uses as-is, creating another directory level.  This PR escapes / characters (and other troublesome characters) using percent-encoding, and also adjusts the escaping of workflow names and Appveyor job envs (which currently just replace troublesome characters with underscores) to match.

Codecov Report

Merging #123 (fdd0cc2) into master (d0fe8eb) will decrease coverage by 1.87%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #123      +/-   ##
==========================================
- Coverage   70.84%   68.96%   -1.88%
==========================================
  Files          10       10
  Lines         926      928       +2
  Branches      138      140       +2
==========================================
- Hits          656      640      -16
- Misses        215      234      +19
+ Partials       55       54       -1

Impacted Files
Coverage Δ

src/tinuous/base.py
87.40% <100.00%> (-0.79%)
:arrow_down:

src/tinuous/util.py
86.66% <100.00%> (+0.30%)
:arrow_up:

src/tinuous/travis.py
56.36% <0.00%> (-7.28%)
:arrow_down:

src/tinuous/appveyor.py
71.42% <0.00%> (-4.77%)
:arrow_down:

src/tinuous/github.py
46.41% <0.00%> (-2.40%)
: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 042fca1...fdd0cc2. Read the comment docs.


[Bug]  Import Chinese meet bad encode with csv file in hubble (乱码)

Bug Type (问题类型)
dashboard render (前端渲染问题)
Before submit

[X] I had searched in the issues and found no similar issues.

Environment (环境信息)

Server Version: v0.12.x
Loader Version: v0.12.x
Data Size:  xx vertices, xx edges

Expected & Actual behavior (期望与实际表现)
copied from https://github.com/hugegraph/hugegraph-hubble/issues/355
Vertex/Edge example (问题点 / 边数据举例)
No response
Schema [VertexLabel, EdgeLabel, IndexLabel] (元数据结构)
No response

@wanganjuan not sure is it a fe problem?

@wanganjuan not sure is it a fe problem?
i test is ok

@wanganjuan not sure is it a fe problem?

If you reproduce the problem, please contact me and give me test files.

@wanganjuan not sure is it a fe problem?

If you reproduce the problem, please contact me and give me test files.

@ZilinCui @b1tkeeper could u upload or leave a test file, thanks (and with the browser & hubble version)

hugegraph-1.2.0
hubble-1.2.0
For Chinese property fields, click Edit without making any changes and then click Save, the Chinese will become garbled.


GetWinsize: inappropriate ioctl for device

Any idea why I get errors like these?
dave@tripper:goterm $ go run examples/chart_example.go
Error: GetWinsize: inappropriate ioctl for device
dave@tripper:goterm $ go run examples/table_example.go
Error: GetWinsize: inappropriate ioctl for device
dave@tripper:goterm $ go run examples/time_example.go
Error: GetWinsize: inappropriate ioctl for device
Error: GetWinsize: inappropriate ioctl for device
Error: GetWinsize: inappropriate ioctl for device
Error: GetWinsize: inappropriate ioctl for device

Running on openbsd, if it matters.  I've tried xterm, urxvt, tmux session - same error in each.
Thanks for any help.

Hello! Can you clarify if it is 32 or 64 bit os?
On Sat, Aug 13, 2016 at 10:35 AM, dncohen<EMAIL_ADDRESS>wrote:

Any idea why I get errors like these?
dave@tripper:goterm $ go run examples/chart_example.go
Error: GetWinsize: inappropriate ioctl for device
dave@tripper:goterm $ go run examples/table_example.go
Error: GetWinsize: inappropriate ioctl for device
dave@tripper:goterm $ go run examples/time_example.go
Error: GetWinsize: inappropriate ioctl for device
Error: GetWinsize: inappropriate ioctl for device
Error: GetWinsize: inappropriate ioctl for device
Error: GetWinsize: inappropriate ioctl for device
Running on openbsd, if it matters. I've tried xterm, urxvt, tmux session -
same error in each.
Thanks for any help.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/buger/goterm/issues/6, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAA2uYjzQMqL9TmHSgCJCRbZH9T19O7Nks5qfXPbgaJpZM4JjoOC
.

--
Sincerely yours Leonid Bugaev
http://gortool.com - test your system with real data

64-bit openbsd.  Was running go 1.6.2.
Upgraded to go 1.7, same problems.
dave@tripper:goterm [master] $ go run examples/chart_example.go
Error: GetWinsize: inappropriate ioctl for device
dave@tripper:goterm [master] $ go version
go version go1.7 openbsd/amd64

64-bit Ubuntu 14.04 running into the same issue.

I have the same issue with code in attachement.
test.zip
Unzip the archive, go in created directory and run 'go run test.go'. The library should look if parent is running in a terminal.

I have the same issue, but only when running my program to the right of a Unix pipe.

https://github.com/buger/goterm/blob/master/terminal_sysioctl.go#L26 uses os.Stdin as an argument to the ioctl system call. When the standard input is not a terminal then os.Stdin is useless to ioctl hence inappropriate ioctl for device error.
The fix is to check whether os.Stdin is a tty, and if not, try os.Stdout or os.Stderr (vim does something like this https://github.com/vim/vim/blob/master/src/os_unix.c#L3861).
It's not perfect though, as it can still fail if those three were not ttys.

updating the module worked for me go get -u github.com/buger/goterm


1.0 Migration Guide use_entities deprecated

Rasa version: 1.1.13
Issue:
The 1.0 migration guide needs to point out that this syntax for use_entities is no longer supported:
  - chitchat: null
    use_entities: false

This is a duplicate of #3796

#3796 is a report of an issue with the code. This issue is a problem with the documentation.


Clean up IDS modules

Feature Request
I took a look at the current IDS capabilities and the module seems like a mess. We have to remove unused code (considered to stay unused), address open TODOs, and stabilize the IDS messaging (serializer usage, validation, properties etc.).
Which Areas Would Be Affected?
mainly :data-protocols:ids
Why Is the Feature Desired?
Keep the code lean and working
Solution Proposal
I would propose to derive several issues from this. (Feel free to extend the list)

[x] #1466
[x] #1471
[x] Remove unused package descriptor from ids-spi and ids-core
[x] Restructure existing spi directory structure (group identifier, protocols)
[x] #1473
[x] #1600
[x] #1610
[x] #236
[x] Clean up ids modules (e.g. some multipart-related classes are located in the core module)
[x] #1152
[x] #1474
[x] #918
[x] #1727
[x] Clean up transformers
[x] #2022

Type of Issue
improvement, cleanup, ids
Checklist

[x] assigned appropriate label?
[x] Do NOT select a milestone or an assignee!

All story items have been completed.


Make RxBinding dependency optional

The RxBinding library contains over 600 methods. That's about five times the total number of methods in the RxLifecycle base + components libraries. It's unfortunate that this library pulls in that many extra methods, especially when it appears that library is only used for one line of code.
Would it be possible to split out the RxBinding-related functionality into an optional module?

You basically want another module e.g. rxlifecycle-view which does the complete Lifecycle View binding related stuff?

Alternatively, we could make RxBinding an optional dependency such that that method only works if you have actually provided RxBinding.

Question: How many people use RxLifecycle but not RxBinding?

I guess not that many. I do use both. So I need the dependency anyways.
On 8 December 2015 17:54:10 CET, Daniel Lew<EMAIL_ADDRESS>wrote:

Question: How many people use RxLifecycle but not RxBinding?

Reply to this email directly or view it on GitHub:
https://github.com/trello/RxLifecycle/issues/66#issuecomment-162943580

--
Sent from my Android device with K-9 Mail. Please excuse my brevity.

I'm comfortable with depending on RxBinding for this library. If you're using this lib, you're (at least) using an Activity already, which implies Views, in which case RxBinding seems like a natural fit regardless.


Add Jenkinsfile for participation infrastructure

(did this on master branch the first time, bad idea)

This is ready for review

r+wc


Duplicate Javascript tag in the filter

Description
I think that it is useless to have the same programming language tag repeated twice as a filter with one being "Javascript" and the other "JavaScript". I see that selecting one selects the other automatically as their state is bound but from a user experience point of view it is still redundant.
Screenshots

Additional information
No response

Hey I think I can help out with this can you please assign it to me

This issue seems to be a duplicate of #4676

We can make every tag to lowercase and remove space to avoid duplicates.
I would like to work on this.

closing this issue as a duplicate of #4676


'/usr/lib/jvm/java-17-openjdk-amd64' does not provide the required capabilities: [JAVA_COMPILER]

Current Behavior
'/usr/lib/jvm/java-17-openjdk-amd64' does not provide the required capabilities: [JAVA_COMPILER]
Expected Behavior
same repo same device things are happy with 8.9
Context (optional)
No response
Steps to Reproduce
clone https://github.com/rusefi/rusefi with submodules
cd firmware
make
(yes make would invoke gradle wrapper sorry about that)
Gradle version
8.10
Gradle version that used to work
8.9
Build scan URL (optional)
No response
Your Environment (optional)
$ java --version
openjdk 17.0.12 2024-07-16
OpenJDK Runtime Environment (build 17.0.12+7-Ubuntu-1ubuntu220.04)
OpenJDK 64-Bit Server VM (build 17.0.12+7-Ubuntu-1ubuntu220.04, mixed mode, sharing)

fun fact https://www.google.com/search?q=openjdk+gradle+"does+not+provide+the+required+capabilities"

This looks very similar to

#30264

which we decided to accept as a regression.
If you believe this is different, can you share a full stack trace of the error?
Could you also run /usr/lib/jvm/java-17-openjdk-amd64/bin/java --version? And confirm that folder has  javac executable.
The reproducer you shared is far from minimal and figuring out where is the problem, especially as it has a chance to be environment specific, would be quite a time sink.
Without an answer within 7 days, this issue will be closed.

@ljacomet I believe that's a different issue since we successfully use the compiler with 8.9
what would be a way to produce a more detailed stack trace?
> Configure project :core_io
gradle says: ABSOLUTE_BOARD_DIR=null

FAILURE: Build failed with an exception.

* What went wrong:
Configuration cache state could not be cached: field `javaCompiler` of task `:logging-api:compileJava` of type `org.gradle.api.tasks.compile.JavaCompile`: error writing value of type 'org.gradle.api.internal.provider.DefaultProperty'
> Toolchain installation '/usr/lib/jvm/java-17-openjdk-amd64' does not provide the required capabilities: [JAVA_COMPILER]

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

BUILD FAILED in 1s
Configuration cache entry discarded due to serialization error.
make: *** [../java_tools/java_tools.mk:29: ../java_tools/configuration_definition_base/build/libs/config_definition_base-all.jar] Error 1
make: *** Waiting for unfinished jobs....
Calculating task graph as no cached configuration is available for tasks: :enum_to_string:shadowJar

> Configure project :core_io
gradle says: ABSOLUTE_BOARD_DIR=null

FAILURE: Build failed with an exception.

* What went wrong:
Configuration cache state could not be cached: field `javaCompiler` of task `:logging-api:compileJava` of type `org.gradle.api.tasks.compile.JavaCompile`: error writing value of type 'org.gradle.api.internal.provider.DefaultProperty'
> Toolchain installation '/usr/lib/jvm/java-17-openjdk-amd64' does not provide the required capabilities: [JAVA_COMPILER]

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

BUILD FAILED in 1s
Configuration cache entry discarded due to serialization error.
make: *** [../java_tools/java_tools.mk:32: ../java_tools/enum_to_string/build/libs/enum_to_string-all.jar] Error 1
Calculating task graph as no cached configuration is available for tasks: :config_definition:shadowJar

> Configure project :core_io
gradle says: ABSOLUTE_BOARD_DIR=null

FAILURE: Build failed with an exception.

* What went wrong:
Configuration cache state could not be cached: field `javaCompiler` of task `:logging-api:compileJava` of type `org.gradle.api.tasks.compile.JavaCompile`: error writing value of type 'org.gradle.api.internal.provider.DefaultProperty'
> Toolchain installation '/usr/lib/jvm/java-17-openjdk-amd64' does not provide the required capabilities: [JAVA_COMPILER]

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

BUILD FAILED in 1s
Configuration cache entry discarded due to serialization error.
make: *** [../java_tools/java_tools.mk:26: ../java_tools/configuration_definition/build/libs/config_definition-all.jar] Error 1

/usr/lib/jvm/java-17-openjdk-amd64/bin/java --version
openjdk 17.0.12 2024-07-16
OpenJDK Runtime Environment (build 17.0.12+7-Ubuntu-1ubuntu220.04)
OpenJDK 64-Bit Server VM (build 17.0.12+7-Ubuntu-1ubuntu220.04, mixed mode, sharing)

Producing a full stacktrace is done by passing --stacktrace or -s to the Gradle invocation, as indicated in the output.
Thanks for taking the time to look into this and confirm your setup has some issues.
Closing as an environment problem.

@rusefillc I have the exact same issue . can you help me with how this can be resolved  ?


test: Log for each tablet its alias, pid and a shell pattern to the l…

This makes it easier to find the corresponding tablet log when debugging an issue.
The message is both printed to the debug logging facility and the stderr logfile of the tablet.
@alainjobart @enisoc

LGTM great!


Tailwind 2.x upgrade

this can be an ongoing pr

upgrade tailwind to 2.x
allow postcss to run through
fixes some class name differences between versions

On the M1, I think only node 15 was available, so it pulled in npm@7 which caused there to be new package lock file. I did not commit that with this branch. Instead @BrianMitchL can update the lock file from package.json.

A few notable inconsistencies I see between the current site and this:

The text size classes adjust the line-height now, so we might want to explore something like the leading-normal class to give a little more height back to some headings maybe? If you don't like this idea, that's totally fine with me too 😜
Sponsorship Opportunities: the emoji icons have the text-8xl class, which resets line-height to 1 now, causing there to be not enough space between the "Best Value" label and the emoji

Should we remove those custom fonts? They're really niche... Additionally, "New York" needs to be "New York Medium" or something too, and only works on macOS/iOS. I don't think we're even using any mono or serif text on the site either 😅

Yeah, tailwind 2 apply a line height now with font sizes. I'd have to stare at it more. I did notice it a couple places.
I'll see if the 7xl is good enough for the best value emoji and if not add 8xl back in.
The fonts could be fine, kind of a fun easter egg.

Today's updates:

Fixed various issues in the sponsorship page
Tweaked some issues with the footer

Footer had very close links in mobile mode, so added spacers
Footer had a border that was almost invisible from our initial rollout design, removed the border, it was not useful

Adjusted leadings on pages with the signature slanted box header

Forgot about this:

Changed "Learn more" on main page to "Speak at JSMN!"

Tried adding an icon into the button none looked good

Looks good, I committed a small tailwind config cleanup too. Do you want to let this sit for a little more, or merge it in?

I just ran a local build and then served it to check everything worked out. It looks good to me. Here's to hoping Tailwind 2 doesn't churn a ton!

Only time will tell!


remove ImGui::StyleColorsDark()

Remove ImGui::StyleColorsDark() and placed in the application level. This PR is coupled with #223.

I have removed the ImGui::StyleColorsDark() as it's now the default. I have done this is commit:
608c4f3cec281751338d50a0267c7148867d4d9c rather than merging this PR because this PR adds in reformatting changes are are irrelevant to actual functional change.


Update Managed Services Runs to not to be concurrents

@morenod Is there some "airflow thingy" that prevents concurrent runs of a dag as well. Since users could manually trigger the same dag concurrently.

Concurrent builds of the same DAG are disabled by default on airflow. if somebody trigger a DAG when there is another one running, it will be waiting until the running one ends

@morenod Is there some "airflow thingy" that prevents concurrent runs of a dag as well. Since users could manually trigger the same dag concurrently.

Concurrent builds of the same DAG are disabled by default on airflow. if somebody trigger a DAG when there is another one running, it will be waiting until the running one ends

Gotcha, but what is someone triggers rosa ovn and rosa sdn at the same time. We would still run into the osdCcsAdmin credentials issue right?

@smalleni Mind giving this a quick review/merge please. The hope is that with STS we can work around the simultaneous install issue but its not in code yet.

@smalleni Mind giving this a quick review/merge please. The hope is that with STS we can work around the simultaneous install issue but its not in code yet.

I can merge if I'm given those permissions :)


Anatomy: Use AYON template categories

Changelog Description
Modify Anatomy to use AYON structure of anatomy templates.
Additional info
AYON does support categories of templates which was "hacked" for OpenPype to work the same way as did in OpenPype, from this PR that changes and AYON structure is default behavior of Anatomy. That required to add additional level to anatomy data, but rather than using the templates structure as dictionary were added some methods that could help with that. Anatomy file was changed to a folder module to avoid huge single file content.
Instead of using anatomy["publish"]["default"]["path"] it is used anatomy.get_template("publish", "default", "path"). Changed default template keys to be "default" instead of "publish", "hero" etc. . Rename "folder" key to "directory" to match project entity model, but both are compatible for now. Key "path" is added automatically.
Settings for publish templates should be backwards compatible so "publish_render" should still work instead of "render".
Byproduct changes
Removed TemplatesDict from ayon_core.lib.path_templates as it was used only by Anatomy but is not needed anymore and moved TemplatesResultDict to anatomy.
Testing notes:

Template profiles can from now on use template key names without prefixes (publish_ or hero_) but old setting should work too.
Workfile paths should be filled correctly.
Publish standard and hero versions should use correct templates and output paths.

Giving me error during Ayon Launcher loading...
==============================
expected an indented block (templates.py, line 383)
==============================
Traceback (most recent call last):
  File "C:\Work\REPO\ayon-core\client\ayon_core\modules\loader_action.py", line 16, in tray_init
    from ayon_core.tools.loader.ui import LoaderWindow
  File "C:\Program Files\Ynput\AYON 1.0.1\vendor\python\shiboken2\files.dir\shibokensupport\__feature__.py", line 142, in _import
    return original_import(name, *args, **kwargs)
  File "C:\Work\REPO\ayon-core\client\ayon_core\tools\loader\__init__.py", line 1, in <module>
    from .control import LoaderController
  File "C:\Program Files\Ynput\AYON 1.0.1\vendor\python\shiboken2\files.dir\shibokensupport\__feature__.py", line 142, in _import
    return original_import(name, *args, **kwargs)
  File "C:\Work\REPO\ayon-core\client\ayon_core\tools\loader\control.py", line 7, in <module>
    from ayon_core.pipeline import Anatomy, get_current_context
  File "C:\Program Files\Ynput\AYON 1.0.1\vendor\python\shiboken2\files.dir\shibokensupport\__feature__.py", line 142, in _import
    return original_import(name, *args, **kwargs)
  File "C:\Work\REPO\ayon-core\client\ayon_core\pipeline\__init__.py", line 9, in <module>
    from .anatomy import Anatomy
  File "C:\Program Files\Ynput\AYON 1.0.1\vendor\python\shiboken2\files.dir\shibokensupport\__feature__.py", line 142, in _import
    return original_import(name, *args, **kwargs)
  File "C:\Work\REPO\ayon-core\client\ayon_core\pipeline\anatomy\__init__.py", line 7, in <module>
    from .anatomy import Anatomy
  File "C:\Program Files\Ynput\AYON 1.0.1\vendor\python\shiboken2\files.dir\shibokensupport\__feature__.py", line 142, in _import
    return original_import(name, *args, **kwargs)
  File "C:\Work\REPO\ayon-core\client\ayon_core\pipeline\anatomy\anatomy.py", line 15, in <module>
    from .templates import AnatomyTemplates
  File "C:\Program Files\Ynput\AYON 1.0.1\vendor\python\shiboken2\files.dir\shibokensupport\__feature__.py", line 142, in _import
    return original_import(name, *args, **kwargs)
  File "C:\Work\REPO\ayon-core\client\ayon_core\pipeline\anatomy\templates.py", line 383
    class AnatomyTemplates:
    ^
IndentationERROR: expected an indented block

Now Loader is working but another error when trying to launch maya host app...
*** WRN: >>> { app_maya/2024 }: [  ERROR in anatomy.format: 'NoneType' object has no attribute 'format_strict'  ]
==============================
ERROR in anatomy.format: 'NoneType' object has no attribute 'format_strict'
==============================
Traceback (most recent call last):
  File "C:\Work\REPO\ayon-core\client\ayon_core\lib\applications.py", line 1746, in prepare_context_environments
    workdir = get_workdir_with_workdir_data(
  File "C:\Work\REPO\ayon-core\client\ayon_core\pipeline\workfile\path_resolving.py", line 140, in get_workdir_with_workdir_data
    output = template_obj.format_strict(workdir_data)
AttributeERROR: 'NoneType' object has no attribute 'format_strict'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Work\REPO\ayon-core\client\ayon_core\tools\launcher\models\actions.py", line 126, in process
    self.application.launch(
  File "C:\Work\REPO\ayon-core\client\ayon_core\lib\applications.py", line 361, in launch
    return self.manager.launch(self.full_name, *args, **kwargs)
  File "C:\Work\REPO\ayon-core\client\ayon_core\lib\applications.py", line 506, in launch
    return self.launch_with_context(context)
  File "C:\Work\REPO\ayon-core\client\ayon_core\lib\applications.py", line 482, in launch_with_context
    return launch_context.launch()
  File "C:\Work\REPO\ayon-core\client\ayon_core\lib\applications.py", line 1291, in launch
    self.run_prelaunch_hooks()
  File "C:\Work\REPO\ayon-core\client\ayon_core\lib\applications.py", line 1275, in run_prelaunch_hooks
    prelaunch_hook.execute()
  File "C:\Work\REPO\ayon-core\client\ayon_core\hooks\pre_global_host_data.py", line 46, in execute
    prepare_context_environments(temp_data)
  File "C:\Work\REPO\ayon-core\client\ayon_core\lib\applications.py", line 1754, in prepare_context_environments
    raise ApplicationLaunchFAILED(
ayon_core.lib.applications.ApplicationLaunchFAILED: ERROR in anatomy.format: 'NoneType' object has no attribute 'format_strict'

It looks like I forgot to push some changes last week.

Getting error in maya and model publishing on Integrate Asset
DEBUG: Establishing staging directory @ C:\Users\lbate\AppData\Local\Temp\pyblish_tmp_9m6r1umu
DEBUG: Looking for matching profile for: hosts: "maya" | product_types: "model" | task_names: "modeling" | task_types: "Modeling"
DEBUG: "model" not found in "product_types": ['review', 'render', 'prerender']
DEBUG: "maya" not found in "hosts": ['standalonepublisher']
DEBUG: "model" not found in "product_types": ['staticMesh', 'skeletalMesh']
DEBUG: "maya" not found in "hosts": ['traypublisher']
DEBUG: "maya" not found in "hosts": ['max']
DEBUG: "maya" not found in "hosts": ['blender']
DEBUG: Profile selected: {'product_types': [], 'hosts': [], 'task_types': [], 'task_names': [], 'template_name': 'publish'}
DEBUG: Product: modelMain
DEBUG: http://localhost:5000 "POST /graphql HTTP/1.1" 200 380
DEBUG: Response <RestApiResponse [200]>
DEBUG: Prepared product: modelMain
DEBUG: http://localhost:5000 "POST /graphql HTTP/1.1" 200 105
DEBUG: Response <RestApiResponse [200]>
DEBUG: Source: {root[work]}/Ayon_Tests/maya/props/chairA/work/modeling/ATS_chairA_modeling_v020.ma
DEBUG: Creating new version ...
DEBUG: Prepared version: v015
DEBUG: http://localhost:5000 "POST /graphql HTTP/1.1" 200 112
DEBUG: Response <RestApiResponse [200]>
DEBUG: Anatomy template name: publish
CRITICAL: Error when registering
Traceback (most recent call last):
  File "C:\Work\REPO\ayon-core\client\ayon_core\plugins\publish\integrate.py", line 219, in process
    self.register(instance, file_transactions, filtered_repres)
  File "C:\Work\REPO\ayon-core\client\ayon_core\plugins\publish\integrate.py", line 308, in register
    prepared = self.prepare_representation(
  File "C:\Work\REPO\ayon-core\client\ayon_core\plugins\publish\integrate.py", line 670, in prepare_representation
    template = os.path.normpath(path_template_obj)
  File "C:\Program Files/Autodesk/Maya2024\Python\lib\ntpath.py", line 491, in normpath
    path = os.fspath(path)
TypeError: expected str, bytes or os.PathLike object, not AnatomyStringTemplate

Traceback (most recent call last):
  File "C:\Users\lbate\AppData\Local\Ynput\AYON\dependency_packages\ayon_2402141620_windows.zip\dependencies\pyblish\plugin.py", line 527, in __explicit_process
    runner(*args)
  File "C:\Work\REPO\ayon-core\client\ayon_core\plugins\publish\integrate.py", line 232, in process
    six.reraise(*sys.exc_info())
  File "C:\Program Files\Ynput\AYON 1.0.1\dependencies\six.py", line 719, in reraise
    raise value
  File "C:\Work\REPO\ayon-core\client\ayon_core\plugins\publish\integrate.py", line 219, in process
    self.register(instance, file_transactions, filtered_repres)
  File "C:\Work\REPO\ayon-core\client\ayon_core\plugins\publish\integrate.py", line 308, in register
    prepared = self.prepare_representation(
  File "C:\Work\REPO\ayon-core\client\ayon_core\plugins\publish\integrate.py", line 670, in prepare_representation
    template = os.path.normpath(path_template_obj)
  File "C:\Program Files/Autodesk/Maya2024\Python\lib\ntpath.py", line 491, in normpath
    path = os.fspath(path)
TypeError: expected str, bytes or os.PathLike object, not AnatomyStringTemplate

Does not seem like folder is compatible?

You hav eto use both category and template name.
project_name = "demo_Commercial"
category_name = "work"
template_name = "work"
anatomy = Anatomy(project_name)
template_info = anatomy.templates_obj[category_name][template_name]
directory_template = template_info["directory"]

Seems to be an issue when publishing;

Should be fixed.


Add pulumi-kubernetes-operator to CI/CD

Proposed changes

Add pulumi-kubernetes-operator to CI/CD
Cross-ref the pulumi-kubernetes-operator from the other k8s pages

Related issues (optional)
Closes #3885

Some quick preview snippets:
Continuous Delivery Page:

Crosswalk Page:

Cloud Providers Page

PR ready to be merged. Holding off until next week

Let's merge this as soon as it's green.  I believe we have links in #3836 and #3925 that point to this page - so we should merge this ahead of those PRs (i.e. before 4AM PT 8/12).


Add networking section to README.md

This adds a section for network considerations and guidance on disabling unnecessary services that may be bound to all interfaces (and in some cases are listening by default). While the risk is relatively low here, it's always a good idea to disable services that aren't needed or in use.
I've frequently repeated these steps / checks when, for example, running a live OS to download and update firmware over a flat or untrusted network. I didn't see any direct mentions to this in the issues or past pull requests, but it seemed like it could fit with the rest of the guide.

Thanks! Can you move this under Optional hardening, in the interest of keeping the necessary instructions as direct as possible?

You got it. I left a reference to it under Install software, if that works?

Good stuff, thank you for the contribution!