AudioStreamPlayer will play upon re-entering tree even if paused

Godot version:

364ea7f / 3.3
Steps to reproduce:

Add audio stream player (any)
Make it autoplay
Remove it from tree
Pause
Re-add it to tree
It will play even though it should be paused

Minimal reproduction project:

AudioRepro.zip
Space to toggle pause
Z to remove player from tree for 1 second
Try pausing while player is outside tree.

Seems like this was fixed on master.

A work-around I've been using is to set stream_paused = true, then immediately call play():
$IntroMusic.stream_paused = true
$IntroMusic.play()
The stream will remain paused until the game is unpaused as the play() function respects the paused state.


Add BorderColor3 to GuiObject

Coverage increased (+0.007%) to 97.903% when pulling 6f0dd0990b55cfe0bce5b951964e09f770011a54 on CodeKingdomsTeam:bordercolor3 into b42d32f690e330a170b10561710fc1f081285e3d on LPGhatguy:master.

Thanks!


XPackSecurityPutUserResponse.User.Created always false.

Please use the following questions as a guideline to help me answer
your issue/question without further inquiry. Thank you.
Which version of Elastic are you using?
[X] elastic.v7 (for Elasticsearch 7.x)
[ ] elastic.v6 (for Elasticsearch 6.x)
[ ] elastic.v5 (for Elasticsearch 5.x)
[ ] elastic.v3 (for Elasticsearch 2.x)
[ ] elastic.v2 (for Elasticsearch 1.x)
Please describe the expected behavior
I expected Created=true when create a user and false when update the user.  Like this: https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-put-user.html
Please describe the actual behavior
XPackSecurityPutUserResponse.User.Create always false however I create or update the user.
Any steps to reproduce the behavior?
Just create a user which XPackSecurityPutUser.

Yeah, that looks like a bug. Thanks for reporting.
The PutUserResponse should just be ...
type PutUserResponse struct {
  Created bool `json:"created"`
}

... docs but we have defined it like this.
That's a quick fix, but I would like to add an integration test so that it won't happen again.


RTT_INIT_RIPAS error due to some garbage in the delegated granule for RTT.

Once a granule is delegated to RMM for RTT purpose, Islet RMM wipe its contents out.
However, during the RTT_INIT_RIPAS process, Islet RMM sees garbages in RTT. Because of this, Islet RMM handles the intialization in an unexpected way.
How to reproduce.

Use https://github.com/islet-project/islet/tree/eac5-issue1.
Build and run ccs-acs-test with modification to run cmd_rec_create only.

diff --git a/val/host/src/val_host_framework.c b/val/host/src/val_host_framework.c
index dfb2494d25c3..81e95342a276 100644
--- a/val/host/src/val_host_framework.c
+++ b/val/host/src/val_host_framework.c
@@ -376,6 +376,9 @@ static void val_host_test_dispatch(bool primary_cpu_boot)
             test_num_end = test_info.end_test_num;
         }

+        // 17: problem
+        test_num_start = 12;
+        test_num_end = 12;

Result seen at the ccs-test terminal
output 1:

        Check 23 : realm_state; intent id : 0x16
        val_host_ripas_init, ipa=0x400000 top=0x4C0000
        val_host_ripas_init, max_level=3 page_size=0x1000
GIC Initialisation started
GICv3 mode detected
GICv3 local and global initialisation done
GIC Initialisation completed
Result => Error (Error code=244)

output2: Sometimes it generates another message saying that ripas_init has failed.

Result seen at RMM side
output 1: RMM kept receiving RTT_INIT_RIPAS command from nw, RMM stopped at handling at 0x402000 ipa.

[TRACE]islet_rmm::event -- RMI: GRANULE_DELEGATE     [884AF000] > [0]
[DEBUG]islet_rmm::exception::trap::syndrome -- Data Abort without a change in Exception level
[DEBUG]islet_rmm::exception::trap -- Data Abort (higher), far:884AF008
[DEBUG]islet_rmm::exception::trap -- translation, level:3, esr:96000047
[TRACE]islet_rmm::event -- RMI: RTT_CREATE           [8846A000, 884AF000, 400000, 3] > [0]
[TRACE]islet_rmm::event -- RMI: RTT_INIT_RIPAS       [8846A000, 400000, 4C0000] > [0, 402000]
[TRACE]islet_rmm::event -- RMI: RTT_INIT_RIPAS       [8846A000, 400000, 4C0000] > [0, 402000]
[TRACE]islet_rmm::event -- RMI: RTT_INIT_RIPAS       [8846A000, 400000, 4C0000] > [0, 402000]
[TRACE]islet_rmm::event -- RMI: RTT_INIT_RIPAS       [8846A000, 400000, 4C0000] > [0, 402000]
[TRACE]islet_rmm::event -- RMI: RTT_INIT_RIPAS       [8846A000, 400000, 4C0000] > [0, 402000]
[TRACE]islet_rmm::event -- RMI: RTT_INIT_RIPAS       [8846A000, 400000, 4C0000] > [0, 402000]
[TRACE]islet_rmm::event -- RMI: RTT_INIT_RIPAS       [8846A000, 400000, 4C0000] > [0, 402000]
...

output2: INIT_RIPAS returns with failure.

[TRACE]islet_rmm::event -- RMI: GRANULE_DELEGATE     [884AF000] > [0]
[DEBUG]islet_rmm::exception::trap::syndrome -- Data Abort without a change in Exception level
[DEBUG]islet_rmm::exception::trap -- Data Abort (higher), far:884AF008
[DEBUG]islet_rmm::exception::trap -- translation, level:3, esr:96000047
[TRACE]islet_rmm::event -- RMI: RTT_CREATE           [8846A000, 884AF000, 400000, 3] > [0]
[TRACE]islet_rmm::event -- RMI: RTT_INIT_RIPAS       [8846A000, 400000, 4C0000] > [304, 0]

[ Analysis ]

The exception handler missed to store and resume some registers that might be overwritten during handling the exceptions.
Since we've added the neon support for the half crate that the cose crate depends on, the compiler is utilizing NEON registers as well, while we don't store their context at the exception handler.
We may simply store them too, but storing neon context together costs too much:

solution 1: Limit the neon instruction usage (use them only where it is required and prevent exceptions during the operation) and use the gp regs only.
solution 2: Only use the crates that doens't use neon.

In case of DABT with page faults taken from the same execption level, EL2 in Realm World, should not increase ELR_EL2 for the execution resume. It should execute the instruction that had the failure again.
Some of page table updates are not accompanied by the tlb/cache invalidation. Although, not triggered by this setup, potentially problematic.


FPS Evaluation

This PR reworks and refines the FPS processing.
Addition:

New heuristics.fps Node that logs:

Global cumulative average when pipeline_end
Moving average per frame via a bool threshold in config heuristics.fps.yml
returns FPS per frame to data-pool

Unit Test for new heuristics.fps Node:

Asserts FPS is float
Asserts FPS > 0 (is positive)

Rework:

Removed calculation of FPS from draw.fps
draw.fps now only draws FPS

Closes #249

Usage (run_config.yml):
nodes:

input.live
model.yolo
draw.bbox
heuristic.fps
draw.fps
output.screen


Run Swift linter on CI using a Docker container

Describe the feature
We are currently running Swiftlint on a Github Mac runner because the SwiftLint action that we previously used (norio-nomura/action-swiftlint) seems to be no longer supported, and does not run latest SwiftLint.
Running the linter on a Mac is not preferable because Mac minutes are more expensive, and requiring a Mac to lint limits our flexibility on where we can run CI.
Use Case
To provide for economical, flexible linting of the project code.
Proposed Solution
Create a Dockerfile or other configuration to install SwiftLint into a container, then use the container to perform linting on CI.
Other Information
No response
Acknowledgements

[ ] I may be able to implement this feature request
[ ] This feature might incur a breaking change

Thinking rationally, we might just not do it. Run CI on all platforms but linter can keep running on macOS.

Completed using "official" SwiftLint Docker containers provided by the SwiftLint project.


Fix(1.6spec): Fixed typo in componentEvidence description

@stevespringett LGTM

Thanks for the correction and PR.


Add Ptr::destroy method

This method drops and deallocates the object pointed to.
cc crossbeam-rs/rfcs#11

How about updating existing codes to use Ptr::destroy() rather than dropping-after-boxing?  For example: https://github.com/crossbeam-rs/crossbeam-epoch/blob/master/src/mutator.rs#L267


allow to unenroll even after the enrollment period has past

Pre-Flight checklist

[ ] Screenshots and design review for any changes that affect layout or styling

[ ] Desktop screenshots
[ ] Mobile width screenshots

[ ] Migrations

[ ] Migration is backwards-compatible with current production code

[ ] Testing

[ ] Code is tested
[ ] Changes have been manually tested

[ ] Settings

[ ] New settings are documented and present in app.json
[ ] New settings have reasonable development defaults, if applicable
[ ] Opened issue for DevOps regarding necessary configuration changes to deployed environments

What are the relevant tickets?
fixes #403
What's this PR do?
allow to unenroll even after the enrollment period has past
How should this be manually tested?
(Required)
Where should the reviewer start?
(Optional)
Any background context you want to provide?
(Optional)
Screenshots (if appropriate)
(Optional)

Codecov Report

Merging #404 (691c16d) into main (79717c3) will increase coverage by 5.42%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #404      +/-   ##
==========================================
+ Coverage   91.44%   96.87%   +5.42%
==========================================
  Files         230      127     -103
  Lines        7049     3007    -4042
  Branches      616        0     -616
==========================================
- Hits         6446     2913    -3533
+ Misses        509       94     -415
+ Partials       94        0      -94

Impacted Files
Coverage Δ

static/js/containers/pages/DashboardPage_test.js
100.00% <ø> (ø)

static/js/containers/pages/DashboardPage.js
93.82% <100.00%> (+1.60%)
:arrow_up:

ecommerce/urls.py

authentication/strategy.py

authentication/api.py

users/views.py

authentication/serializers.py

main/context_processors.py

cms/conftest.py

ecommerce/views/v0/__init__.py

... and 95 more

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 79717c3...691c16d. Read the comment docs.


Initialization fails with 0.50 and nightly

After installing, using MIDI throws some errors on latest versions of Julia:
ERROR: LoadError: LoadError: UndefVarError: Uint8 not defined
 in include_from_node1(::String) at .\loading.jl:532
 in include(::String) at .\sysimg.jl:14
 in include_from_node1(::String) at .\loading.jl:532
 in eval(::Module, ::Any) at .\boot.jl:236
 in require(::Symbol) at .\loading.jl:446
while loading C:\Users\user\.julia\v0.6\MIDI\src\midievent.jl, in expression starting on line 1
while loading C:\Users\user\.julia\v0.6\MIDI\src\MIDI.jl, in expression starting on line 4

Which version of the library are you using? I'm fairly sure this issue has already been fixed, but I don't think it's available in the version on the package manager. Does checking out the master branch work instead?

I was using the version from the package manager, so I guess it was just stale.


ionic 3 installation

NPM version: 5.6.0
Node version: v10.1.0
During installing ionic3

<EMAIL_ADDRESS>install C:\Users\marcos\Documents\projects\tBook\node_modules@ionic\app-scripts\node_modules\node-sass
node scripts/install.js

Downloading binary from https://github.com/sass/node-sass/releases/download/v4.7.2/win32-x64-64_binding.node
Cannot download "https://github.com/sass/node-sass/releases/download/v4.7.2/win32-x64-64_binding.node":
HTTP error 404 Not Found
Hint: If github.com is not accessible in your location
try setting a proxy via HTTP_PROXY, e.g.
  export HTTP_PROXY=http://example.com:1234

or configure npm proxy via
  npm config set proxy http://example.com:8080

<EMAIL_ADDRESS>install C:\Users\marcos\Documents\projects\tBook\node_modules\node-sass
node scripts/install.js

Cached binary found at C:\Users\marcos\AppData\Roaming\npm-cache\node-sass\4.9.0\win32-x64-64_binding.node

<EMAIL_ADDRESS>postinstall C:\Users\marcos\Documents\projects\tBook\node_modules\uglifyjs-webpack-plugin
node lib/post_install.js

<EMAIL_ADDRESS>postinstall C:\Users\marcos\Documents\projects\tBook\node_modules@ionic\app-scripts\node_modules\node-sass
node scripts/build.js

Building: C:\Program Files\nodejs\node.exe C:\Users\marcos\Documents\projects\tBook\node_modules\node-gyp\bin\node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
gyp info it worked if it ends with ok
gyp verb cli [ 'C:\Program Files\nodejs\node.exe',
gyp verb cli   'C:\Users\marcos\Documents\projects\tBook\node_modules\node-gyp\bin\node-gyp.js',
gyp verb cli   'rebuild',
gyp verb cli   '--verbose',
gyp verb cli   '--libsass_ext=',
gyp verb cli   '--libsass_cflags=',
gyp verb cli   '--libsass_ldflags=',
gyp verb cli   '--libsass_library=' ]
gyp info using<EMAIL_ADDRESS>gyp info using<EMAIL_ADDRESS>| win32 | x64
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "python2" in the PATH
gyp verb which failed Error: not found: python2
gyp verb which failed     at getNotFoundError (C:\Users\marcos\Documents\projects\tBook\node_modules\which\which.js:13:12)
gyp verb which failed     at F (C:\Users\marcos\Documents\projects\tBook\node_modules\which\which.js:68:19)
gyp verb which failed     at E (C:\Users\marcos\Documents\projects\tBook\node_modules\which\which.js:80:29)
gyp verb which failed     at C:\Users\marcos\Documents\projects\tBook\node_modules\which\which.js:89:16
gyp verb which failed     at C:\Users\marcos\Documents\projects\tBook\node_modules\isexe\index.js:42:5
gyp verb which failed     at C:\Users\marcos\Documents\projects\tBook\node_modules\isexe\windows.js:36:5
gyp verb which failed     at FSReqWrap.oncomplete (fs.js:165:21)
gyp verb which failed  python2 { Error: not found: python2
gyp verb which failed     at getNotFoundError (C:\Users\marcos\Documents\projects\tBook\node_modules\which\which.js:13:12)
gyp verb which failed     at F (C:\Users\marcos\Documents\projects\tBook\node_modules\which\which.js:68:19)
gyp verb which failed     at E (C:\Users\marcos\Documents\projects\tBook\node_modules\which\which.js:80:29)
gyp verb which failed     at C:\Users\marcos\Documents\projects\tBook\node_modules\which\which.js:89:16
gyp verb which failed     at C:\Users\marcos\Documents\projects\tBook\node_modules\isexe\index.js:42:5
gyp verb which failed     at C:\Users\marcos\Documents\projects\tBook\node_modules\isexe\windows.js:36:5
gyp verb which failed     at FSReqWrap.oncomplete (fs.js:165:21)
gyp verb which failed   stack: 'Error: not found: python2\n    at getNotFoundError (C:\Users\marcos\Documents\projects\tBook\node_modules\which\which.js:13:12)\n    at F (C:\Users\marcos\Documents\projects\tBook\node_modules\which\which.js:68:19)\n    at E (C:\Users\marcos\Documents\projects\tBook\node_modules\which\which.js:80:29)\n    at C:\Users\marcos\Documents\projects\tBook\node_modules\which\which.js:89:16\n    at C:\Users\marcos\Documents\projects\tBook\node_modules\isexe\index.js:42:5\n    at C:\Users\marcos\Documents\projects\tBook\node_modules\isexe\windows.js:36:5\n    at FSReqWrap.oncomplete (fs.js:165:21)',
gyp verb which failed   code: 'ENOENT' }
gyp verb check python checking for Python executable "python" in the PATH
gyp verb which succeeded python C:\Users\marcos\AppData\Local\Programs\Python\Python35\python.EXE
gyp verb check python version C:\Users\marcos\AppData\Local\Programs\Python\Python35\python.EXE -c "import platform; print(platform.python_version());" returned: "3.5.1\r\n"
gyp verb could not find "C:\Users\marcos\AppData\Local\Programs\Python\Python35\python.EXE". checking python launcher
gyp verb could not find "C:\Users\marcos\AppData\Local\Programs\Python\Python35\python.EXE". guessing location
gyp verb ensuring that file exists: C:\Python27\python.exe
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "C:\Users\marcos\AppData\Local\Programs\Python\Python35\python.EXE", you can set the PYTHON env variable.
gyp ERR! stack     at PythonFinder.failNoPython (C:\Users\marcos\Documents\projects\tBook\node_modules\node-gyp\lib\configure.js:483:19)
gyp ERR! stack     at PythonFinder. (C:\Users\marcos\Documents\projects\tBook\node_modules\node-gyp\lib\configure.js:508:16)
gyp ERR! stack     at C:\Users\marcos\Documents\projects\tBook\node_modules\graceful-fs\polyfills.js:284:29
gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:165:21)
gyp ERR! System Windows_NT 10.0.16299
gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Users\marcos\Documents\projects\tBook\node_modules\node-gyp\bin\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd C:\Users\marcos\Documents\projects\tBook\node_modules@ionic\app-scripts\node_modules\node-sass
gyp ERR! node -v v10.1.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
Build failed with error code: 1
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>postinstall: node scripts/build.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR!      C:\Users\marcos\AppData\Roaming\npm-cache_logs\2018-05-15T18_18_08_093Z-debug.log

Node 10 is only supported on 4.9, this is explained in the Issue template


fix: mainnet flag in hardhat cctx

The task expected boolean, but the argument was passed as a string, so it always defaulted to testnet.
 npx hardhat cctx 0xd8d4f6e45057f355ea657def7026aa9c7496f6ad37550b1cd541c2374b1c3851 --mainnet
✓ CCTXs on ZetaChain found.

✓ 0xe031d59358c10b9275c00a955fffaf9fc70bc0cbe501e7c97c6b96a990f347df: 56 → 7000: OutboundMined (Remote omnichain contract call completed)
✓ 0x9902d0752b34d0a9e5ef17bd5ff27dbcfe6a0bcac9879d3d6c8b202fae3d9b6d: 7000 → 137: OutboundMined (ZRC20 withdrawal event setting to pending outbound directly : Outbound succeeded, mined)

@zeta-chain/fullstack please, review.


setting multiple date

Setting multiple dates programetically and disable date selection.

me too

setDateSelected() can do it

you can also use decorators. The sample has an example for this.


loading stash issues

loading stash issues about 3hrs ago

have you downloaded the newest version?

As there are a high number of duplicate reports for this issue, please see the consolidated issue I have created for this here:
https://github.com/Stickymaddness/Procurement/issues/397
Please follow this issue for updates and ask any questions there.


Feature Proposal

Seems redis has a plugin for JSON , what do you think about create that feature using the sqlite json field type? I would like  to help code

Thanks for the suggestion! Yes, Redis has many plugins. The goal for 1.0 is the five core data types: strings, lists, sets, hashes, and sorted sets. After that — we'll see.
I'll close this for now and we can revisit it after 1.0.

I hope this prior/similar art can help you
https://github.com/MirrorFork/redix (note that I'm specifically linking to an old fork and not the latest version from original author)
https://github.com/yob/pgredis

I also remember seeing some of Josh Baker's work which could help you
https://github.com/tidwall/summitdb?tab=readme-ov-file#json-documents
https://github.com/tidwall/redcon
https://github.com/tidwall/resp


genome browser suggestion

It would be really useful if you could click on a gene (or within the pop up window for a gene) and get to the protein page for that gene.

This now works. Click on the feature id at the top.


fix: onPush change detection

When using onPush change detection changes in the editor are currently not triggering change detection in the parent.
I also changed the private access modifiers to protected to make extending the directive easier.

Hi, thanks for the PR. Will check this out.


Potential namespace conflict with a RAJA dependency

I just noticed while refactoring parts of my app ExaConstit that a namespace conflict can exist between the camp/tuple.hpp header file used within RAJA and the mfem/general/hash.hpp header file. It appears that both of them declare a namespace internal within the file.
Now this might be an issue on my end with how some of my header files are either ordered or something to that effect, since I only started running into this issue after I moved some classes into their own header files. So, I might be able to fix this by reordering how the headers are ordered, but I figured it be a good thing to bring up since others might run into similar issues.
I would imagine one simple fix to this issue would be to rename the namespace internal to namespace mfem_internal.

This should be a nested namespace (inside the mfem namespace) so the full name should be mfem::internal and in principle there shouldn't be a conflict.
Can you post the error you see with the relevant code?
Do you by any chance have using namespace mfem; and using namespace raja; in the same file?

So, I'm seeing the following error while compiling:
In file included from /test_dir/raja/install_dir/include/RAJA/util/camp_aliases.hpp:28:0,
                 from /test_dir/raja/install_dir/include/RAJA/RAJA.hpp:33,
                 from /test_dir/exacmech/install_dir/include/ECMech_util.h:18,
                 from /test_dir/exacmech/install_dir/include/ECMech_evptn.h:9,
                 from /test_dir/exacmech/install_dir/include/ECMech_cases.h:5,
                 from /test_dir/ExaConstit/src/mechanics_ecmech.hpp:7,
                 from /test_dir/ExaConstit/src/mechanics_operator.hpp:9,
                 from /test_dir/ExaConstit/src/mechanics_driver.cpp:60:
/test_dir/raja/install_dir/include/camp/tuple.hpp: In function 'std::ostream& operator<<(std::ostream&, const camp::tuple<Args ...>&)':
/test_dir/raja/install_dir/include/camp/tuple.hpp:506:3: error: reference to 'internal' is ambiguous
   internal::print_tuple(os, t, camp::make_idx_seq_t<sizeof...(Args)>{});
   ^~~~~~~~
/test_dir/raja/install_dir/include/camp/tuple.hpp:492:11: note: candidates are: namespace internal { }
 namespace internal
           ^~~~~~~~
In file included from /test_dir/mfem/install_dir/include/mfem/mfem.hpp:21:0,
                 from /test_dir/mfem/install_dir/include/mfem.hpp:2,
                 from /test_dir/ExaConstit/src/mechanics_driver.cpp:56:
/test_dir/mfem/install_dir/include/mfem/general/hash.hpp:231:11: note:                 namespace mfem::internal { }
 namespace internal

The new mechanics_ecmech.hpp file that I've defined which is causing errors:
#include "mfem.hpp"
#include "mechanics_coefficient.hpp"
#include "mechanics_integrators.hpp"
#include "ECMech_cases.h"
#include "ECMech_evptnWrap.h"

using namespace ecmech;

mechanics_integrator.hpp file now:
#include "mfem.hpp"
#include "mechanics_coefficient.hpp"
using namespace mfem;

Old mechanics_integrator.hpp file that worked:
#include "mfem.hpp"
#include "mechanics_coefficient.hpp"
#include "userumat.h"
#include "ECMech_cases.h"
#include "ECMech_evptnWrap.h"

using namespace mfem;

Now within ExaCMech we don't have using namespace raja; defined anywhere. Although, we are making use of the library within there. It might be that for these files I'll just need to remove the offending using namespace mfem; and just explicitly define all of the mfem types with the mfem:: namespace.

Something is wrong, there shouldn't be a conflict...
Do you know which versions of RAJA and camp are you using?
Can you grep for using namespace RAJA and using namespace camp in all the headers included by mechanics_operator.hpp (including any headers they include)?

It's generally considered bad practice to place using namespace ... within header files because it can lead to unexpected name clashes.  It's not obvious that this is the cause of this particular error but it may be best to move this directive into a source file.  In your header files you will then need to specify mfem:: but in the source files you should be able to use the shorter names.

I do agree with Mark on that ^^^
Very likely the issue is that there are two "using" clauses: one in your headers (that you may want to consider removing) and one in RAJA and/or camp which could be a bug

I wasn't able to find any using namespace raja or using namespace camp in either  ExaConstit or ExaCMech header files. However, I can definitely remove the using namespace mfem; from the headers, since it appears to be most likely causing issues with how I've now split up the mechanics_integrator.hpp header file now.

@tzanio It looks like removing the using namespace mfem; and specifying mfem types with mfem:: within those headers worked. I'm no longer receiving those compilation errors. I'm going to go ahead and close this as I believe as @mlstowell  put it I was running into unexpected name clashing.


Reduce spec dependencies for ConfigBuilder

This test/code doesn't need the whole Rails framework.
Shave off precious time on focused spec runs :)

:+1: :racehorse:


ASM-7793 Storage Center SCOS 7.x.x support for be added in ASM

Added updated CompCU JAR file compatible with SCOS 7.0 and 7.1
Added Shell script for JAVA invocation instead of calling JAR file directly. This will avoid changes in the JAVA layer for every new JAR file released with CompCU JAR file

Closing in favor of #51 which uses a symlink to point to the jar file instead of a shell script for security reasons.


Convert met data in clowder to netcdf

All met and environmental data should be provided on ROGER, ideally via an opendap / thredds interface #155
This depends on #156
Should use similar BrownDog and leverage PEcAn project met workflow.

As data is added to Clowder
append to netcdf in PEcAn standard met data product
Here is an example: http://file-server.igb.illinois.edu/~dlebauer/met/narr/threehourly/champaign.nc

@Zodiase TODO: schedule a conversation with @robkooper on the browndog workflow and in pecan standard. To learn which lib or tools are avail for outputting the netcdf.

@Zodiase - can you please update this issue?

GeoStream message hooks for triggering the extractor?

@czender Could you tell me how to save a JSON document into a netCDF file? The JSON document would look like:
{
  "stream_id":"???",
  "sensor_id":"???",
  "end_time":"2016-08-30T00:06:24",
  "created":"2016-10-13T16:55:03.295514",
  "geometry":{
    "type":"Point",
    "coordinates":[
      "???",
      "???",
      "???"
    ]
  },
  "start_time":"2016-08-30T00:06:24",
  "sensor_name":"???",
  "type":"Feature",
  "id":"???",
  "properties":{
    "precipitation_rate":0.0,
    "wind_speed":2.45,
    "surface_downwelling_shortwave_flux_in_air":0.0,
    "northward_wind":1.0354147412647137,
    "relative_humidity":27.48,
    "air_temperature":299.89,
    "eastward_wind":2.2204540782397926,
    "surface_downwelling_photosynthetic_photon_flux_in_air":0.0
  }
}

@rachelshekar It makes more sense to manually trigger the processing job or have it triggered periodically with a cron job for example.

@Zodiase, @robkooper had some thoughts on the geostreams database --> netcdf conversion, with respect to making this consistent with the PEcAn and BrownDog utilities.

@Zodiase There is no generic JSON->netCDF converter. We custom wrote one for the Environmental Logger that might give you some ideas...

@dlebauer
@robkooper and I had talked and if I remember correctly the only conclusion is to use netCDF4-python for operating netCDF files. But I know next-to-nothing about netCDF format and don't know the source data should be stored. I just learned the term "Dataset", "Dimension" and "Group" but I have yet any idea what they are used for. Could you or somebody give me an idea how exactly the data should be saved into a netCDF? I think it would be a lot more efficient for somebody who's at least familiar with netCDF to come up with the exact code to store the source data into netCDF files.

@Zodiase @robkooper the environmental logger JSON->netCDF converter uses netcdf4-python:
https://github.com/terraref/extractors-environmental/blob/master/environmentlogger/environmental_logger_json2netcdf.py
Many of the variables it handles are the same as met station data. This converter might be more complex than met stations would require, or it might not. Much of the "complexity" is needed to craft well-designed netCDF files. If you post a complete example of a met station JSON file, then @FlyingWithJerome could look at what it would take to adapt this code to work on those files as well.

@robkooper @Zodiase
Sorry, the environmental_logger_json2netcdf.py in the computing-pipeline master branch is the most up-to-date.
If you have a sample JSON file, we can look at it together and figure out a best solution.

@robkooper we discussed developing download.CLOWDER and met2cf.CLOWDER functions in the PEcAn.data.atmosphere package so that it will fit within the existing BrownDog / PEcAn met workflow (?). That has a lot of tools for unit conversion and standard formatting of netcdf files. Is it otherwise?

@FlyingWithJerome The sample JSON is above here. The format is final except some additional minor fields added (such as the extractor info and a full copy of the raw data).
@max-zilla When you are testing the first-stage extractor, could you get a copy of one output JSON document and post it here?

@dlebauer thanks for the reminder. @Zodiase yes please look at PEcAn code and use R to download the data and process it. To do this there are 2 parts you will need to implement:
download.clowder which just does a query and downloads the geostream to disk, see for example https://github.com/PecanProject/pecan/blob/master/modules/data.atmosphere/R/download.Ameriflux.R
met2CF.clowder which converts the downloaded data to netcdf, for example see https://github.com/PecanProject/pecan/blob/master/modules/data.atmosphere/R/met2CF.Ameriflux.R#L78

@Zodiase can you give me write access to the extractors-meterological repo?
Also we don't have to change this now but there's a typo in repo name (I updated filenames in my local branch im going to push):
extractors-meterological
vvv
extractors-meteorological

@max-zilla I've granted write access to the developer group. You should be able to push now.

@Zodiase do I have this right? there are two extractors for meteorological data being discussed:

read 24 .dat files and add each record to geostream
convert the .dat files to netcdf (?)

So it looks like you've written the first one. I don't totally understand the second one, why is it dependent on the first one?
I'll try to test out the first one - it's in the same place as the geospatial metadata extractor, where we currently only have PostGIS on the dev instance but hope to have time to deploy on production soon.

@max-zilla This issue depends on the first one because it pulls the JSON data stored in the geostream and saves them to some netcdf file. The JSON data in geostream should align to PEcAn format standards. If it's simpler to directly convert .dat files into netcdf them that's certainly better.  I don't know. Wouldn't that repeat the same PEcAn standard conversion again?

@Zodiase yeah, we wouldn't want to redo the PEcAn conversion.
Could we just do both at the same time? Loop over 24 DAT files, send to datapoint for each line, while also saving to netCDF? Then at the end we did both the geostreams + netCDF at once?
It doesn't make for perfectly modular extractor, but since the extractors would need to be chained together anyway (one depends on the other) I think that's OK. The PlantCV extractor is similar in that it generates metadata AND pushes metadata to BETYdb in same process.
I have not looked closely at your code yet so maybe this is difficult for obvious reasons...

@max-zilla Everything could be put into one extractor. I suggested splitting the whole objective into two issues so they could be implemented in parallel. But they both ended up assigned to me so it makes no difference.

@Zodiase let's focus on the tech issue here (only). You said .dat->netcdf needs to get JSON data from geostream in order to convert .dat to netcdf? @max-zilla meant since the JSON data you send to geostream is already generated in the first extractor, we can use that to do .dat->netcdf conversion.
So the only difference is whether we put the 2nd extractor logic inside of the first one since the first one has all the data needed. Am I right ?
How much work is needed to do the extractor part of coding for .dat->netcdf conversion?

@yanliu-chn @Zodiase I think we're on the same page here.
I will test the current .dat -> geostream function on clowder-dev to make sure it works, since Xingchen was getting 502s. I'll commit my branch and that can be new 'base' version.
Then, we can add .dat -> netcdf in that same extractor, building on top off working version.
I should have an update on this tomorrow morning.

@Zodiase just made a pull request, got it working on my local instance but haven't tested on clowder-dev yet. asked you to review

@robkooper OK I'll learn a bit R and netCDF to understand the two functions and then continue from there.

@Zodiase yep the two examples that @robkooper pointed out should work and I can help if you have any questions about how to use R. The part I am not familiar with is how to query and subset from the geostreams API (in download.clowder).

download.clowder which just does a query and downloads the geostream to disk, see for example https://github.com/PecanProject/pecan/blob/master/modules/data.atmosphere/R/download.Ameriflux.R
met2CF.clowder which converts the downloaded data to netcdf, for example see https://github.com/PecanProject/pecan/blob/master/modules/data.atmosphere/R/met2CF.Ameriflux.R#L78

@Zodiase - can you update this?

@robkooper So I know that I could do https://terraref.ncsa.illinois.edu/clowder-dev/api/geostreams/datapoints?stream_id=5&sensor_id=2 to get the the data points filtered by stream and sensor. Now I also need to filter by start_time and end_time, is that supported and how may I do that?

@Zodiase
GET            /api/geostreams/datapoints                                               api.Geostreams.searchDatapoints(operator = "", since: Option[String] ?= None, until: Option[String] ?= None, geocode: Option[String] ?= None,  stream_id: Option[String] ?= None, sensor_id: Option[String] ?= None, sources: List[String] ?= List.empty, attributes: List[String] ?= List.empty, format: String ?= "json", semi: Option[String])

&since=
&until=
are the start/end time I think you want, passed in as a string. In Clowder the PostGres query that's generated:
var query = "SELECT to_json(t) As datapoint FROM " +
      "(SELECT datapoints.gid As id, to_char(datapoints.created AT TIME ZONE 'UTC', 'YYYY-MM-DD\"T\"HH24:MI:SSZ') AS created, to_char(datapoints.start_time AT TIME ZONE 'UTC', 'YYYY-MM-DD\"T\"HH24:MI:SSZ') AS start_time, to_char(datapoints.end_time AT TIME ZONE 'UTC', 'YYYY-MM-DD\"T\"HH24:MI:SSZ') AS end_time, data As properties, 'Feature' As type, ST_AsGeoJson(1, datapoints.geog, 15, 0)::json As geometry, stream_id::text, sensor_id::text, sensors.name as sensor_name FROM sensors, streams, datapoints" +
      " WHERE sensors.gid = streams.sensor_id AND datapoints.stream_id = streams.gid"
//    if (since.isDefined || until.isDefined || geocode.isDefined || stream_id.isDefined) query += " WHERE "
    if (since.isDefined) query += " AND datapoints.start_time >= ?"
    if (until.isDefined) query += " AND datapoints.end_time <= ?"

see also:
http://stackoverflow.com/questions/23335970/postgresql-query-between-date-ranges
I haven't done this query before but the basic idea should work.

Make sure to pass the date time as a iso8601 date to make sure it is parsed correctly

@dlebauer
So https://terraref.ncsa.illinois.edu/clowder-dev/api/geostreams/datapoints?stream_id=5&sensor_id=2&since=2016-07-05T17:00:00Z&until=2016-07-05T17:05:00Z should output a JSON document containing the list of data points from sensor 2, stream 5 and within that 5-minute block. I don't know what the value of the stream ID or the sensor ID would be since they are assigned when the sensor and stream records are created. Once you constructed the url, I think this package https://cran.r-project.org/web/packages/jsonlite/vignettes/json-aaquickstart.html might help you download the JSON file and parse it, but you probably know better.
The JSON output should look exactly like the example provided here: https://github.com/terraref/computing-pipeline/issues/156#issuecomment-265682119 except the example doesn't have any ID, stream or sensor info.

@dlebauer
Due to the nature of the raw data from the datasets, along with the aggregation logic, when requesting data points within a certain 5-minute time span, there might be multiple non-overlapping records which should add up to the entire time span needed.

@Zodiase what is the status of this issue? I think we discussed the solution in Dec.

@dlebauer Yes and at the end of the discussion we agreed that if I could get the JSON data into R, it would take very little time for you to come up with the conversion algorithm (to netCDF). And I think my comment above shows how to get the data in JSON, and I pointed a R library that does both downloading and parsing of JSON together. Would it help if I show you a code example for downloading and parsing the JSON data? I didn't include it in my comment above thinking that you might know a better utility for doing that.

@Zodiase got it. I think this is correct. But a few things before getting started

The test data / example api query you posted above no longer works (because I think the database was rebuilt).
The first step will be to find the sensor_id given the sitename (sensor name?) can you post the example queries for this?

@dlebauer
To get the sensor ID from a sensor name, you could use something like: https://terraref.ncsa.illinois.edu/clowder-dev/api/geostreams/sensors?sensor_name=UAMAC, the returned JSON should always be an array/list of 0 or more matched items. Each item should have an id property and a name property. When working on the Meteorological extractor I remember @max-zilla saying that the searching part isn't much important since in production these sensors will be manually created by somebody, and the IDs should be fixed.
Sample result for the aforementioned query:
[
  {
    "id": 2,
    "name": "UAMAC",
    "created": "2016-09-27T15:04:15Z",
    "type": "Feature",
    "properties": {
      "type": {
        "id": "uamac",
        "title": "uamac",
        "sensorType": 6
      },
      "name": "UAMAC",
      "popupContent": "UAMAC",
      "region": "Arizona"
    },
    "geometry": {
      "type": "Point",
      "coordinates": [
        -112.047642,
        33.2918,
        0
      ]
    },
    "min_start_time": null,
    "max_end_time": null,
    "parameters": [
      null
    ]
  }
]

Similarly, stream searching could be done with https://terraref.ncsa.illinois.edu/clowder-dev/api/geostreams/streams?stream_name=weather%20station, and the result for this example should look like:
[
  {
    "id": 14,
    "name": "weather station",
    "created": "2016-10-26T19:35:09Z",
    "type": "Feature",
    "properties": {},
    "geometry": {
      "type": "Point",
      "coordinates": [
        0,
        0,
        0
      ]
    },
    "sensor_id": "1",
    "start_time": null,
    "end_time": null,
    "params": null
  }
]

I'm not sure if there's any data on the dev instance for you to test with, but they should conform the schema indicated here: https://github.com/terraref/computing-pipeline/issues/156#issuecomment-253565713.

Want to push data to geostreams, and have code to go from geostreams to PEcAn netcdf format.

Here is a pull request for the download.clowder and met2cf.clowder functions into PEcAn https://github.com/PecanProject/pecan/pull/1268
Next steps

determine how to integrate into PEcAn met workflow (deal with this in PEcAn PR https://github.com/PecanProject/pecan/pull/1268)
make Environmental sensor and met stations consistent with this

datalogger --> geostreams --> netcdf (rather than datalogger --> geostreams + netcdf in one script)

@dlebauer - can this be closed?

Yes, these functions have been added to the PEcAn.data.atmosphere package. https://github.com/PecanProject/pecan/tree/develop/modules/data.atmosphere/R
Thanks @infotroph!


text classification on 3 classes

Has any one tried this model on classification into three classes? positive , Negative and Neutral class

Yes, I'm currently deploying such a model.

@Harry-Kouraklis do you have any updates? or a link to share with us please your notebook?


EKF2 Replay: Display RMS innovation values to assist with tuning

Displaying the RMS innovation values at the end of each replay enables rapid iteration for time delay parameter tuning. Here's a screenshot showing the displayed values

This is excellent! I'll definitely find this useful :)


not enough arguments in call to redshift.NewRedshift

When calling NewRedshift from main.go there are no args passed:
if *updateRS {
		r, err := redshift.NewRedshift()

https://github.com/Clever/postgres-to-redshift/blob/master/main.go#L45
However, from the redshifter library it looks like all the connection args are required:
func NewRedshift(host, port, db, user, password string, timeout int, s3Info S3Info) (*Redshift, error) {

https://github.com/Clever/postgres-to-redshift/blob/master/vendor/github.com/Clever/redshifter/redshift/redshift.go#L79

Hey @harlow this should be fixed by https://github.com/Clever/postgres-to-redshift/pull/35, but please let us know if that's not the case. Thank you for pointing it out!


Fibaro Smoke Detector FGSD002 additional devices

In OZW I had several more devices, now I only have

sensor_temperature_air
sensor_battery_level
binary_sensor_battery_islow

Is it possible to add a device that switched when the alarm goes? And maybe also a switch that could turn it off again.
The debug info of the smoke detector is:

{
"id": 11,
"name": "Rookmelder WK",
"loc": "Woonkamer",
"values": [
{
"id": "11-49-0-Air temperature",
"nodeId": 11,
"commandClass": 49,
"commandClassName": "Multilevel Sensor",
"endpoint": 0,
"property": "Air temperature",
"propertyName": "Air temperature",
"type": "number",
"readable": true,
"writeable": false,
"label": "Air temperature",
"ccSpecific": {
"sensorType": 1,
"scale": 0
},
"stateless": false,
"commandClassVersion": 8,
"unit": "°C",
"list": false,
"value": 21.5,
"lastUpdate":<PHONE_NUMBER>854,
"newValue": 21.5
},
{
"id": "11-114-0-manufacturerId",
"nodeId": 11,
"commandClass": 114,
"commandClassName": "Manufacturer Specific",
"endpoint": 0,
"property": "manufacturerId",
"propertyName": "manufacturerId",
"type": "number",
"readable": true,
"writeable": false,
"label": "Manufacturer ID",
"stateless": false,
"commandClassVersion": 2,
"min": 0,
"max": 65535,
"list": false,
"value": 271,
"lastUpdate":<PHONE_NUMBER>865,
"newValue": 271
},
{
"id": "11-114-0-productType",
"nodeId": 11,
"commandClass": 114,
"commandClassName": "Manufacturer Specific",
"endpoint": 0,
"property": "productType",
"propertyName": "productType",
"type": "number",
"readable": true,
"writeable": false,
"label": "Product type",
"stateless": false,
"commandClassVersion": 2,
"min": 0,
"max": 65535,
"list": false,
"value": 3074,
"lastUpdate":<PHONE_NUMBER>871,
"newValue": 3074
},
{
"id": "11-114-0-productId",
"nodeId": 11,
"commandClass": 114,
"commandClassName": "Manufacturer Specific",
"endpoint": 0,
"property": "productId",
"propertyName": "productId",
"type": "number",
"readable": true,
"writeable": false,
"label": "Product ID",
"stateless": false,
"commandClassVersion": 2,
"min": 0,
"max": 65535,
"list": false,
"value": 4099,
"lastUpdate":<PHONE_NUMBER>878,
"newValue": 4099
},
{
"id": "11-128-0-level",
"nodeId": 11,
"commandClass": 128,
"commandClassName": "Battery",
"endpoint": 0,
"property": "level",
"propertyName": "level",
"type": "number",
"readable": true,
"writeable": false,
"label": "Battery level",
"stateless": false,
"commandClassVersion": 1,
"min": 0,
"max": 100,
"unit": "%",
"list": false,
"value": 100,
"lastUpdate":<PHONE_NUMBER>884,
"newValue": 100
},
{
"id": "11-128-0-isLow",
"nodeId": 11,
"commandClass": 128,
"commandClassName": "Battery",
"endpoint": 0,
"property": "isLow",
"propertyName": "isLow",
"type": "boolean",
"readable": true,
"writeable": false,
"label": "Low battery level",
"stateless": false,
"commandClassVersion": 1,
"list": false,
"value": false,
"lastUpdate":<PHONE_NUMBER>890,
"newValue": false
},
{
"id": "11-134-0-libraryType",
"nodeId": 11,
"commandClass": 134,
"commandClassName": "Version",
"endpoint": 0,
"property": "libraryType",
"propertyName": "libraryType",
"type": "number",
"readable": true,
"writeable": false,
"label": "Library type",
"stateless": false,
"commandClassVersion": 2,
"list": true,
"states": [
{
"text": "Unknown",
"value": 0
},
{
"text": "Static Controller",
"value": 1
},
{
"text": "Controller",
"value": 2
},
{
"text": "Enhanced Slave",
"value": 3
},
{
"text": "Slave",
"value": 4
},
{
"text": "Installer",
"value": 5
},
{
"text": "Routing Slave",
"value": 6
},
{
"text": "Bridge Controller",
"value": 7
},
{
"text": "Device under Test",
"value": 8
},
{
"text": "N/A",
"value": 9
},
{
"text": "AV Remote",
"value": 10
},
{
"text": "AV Device",
"value": 11
}
],
"value": 3,
"lastUpdate":<PHONE_NUMBER>897,
"newValue": 3
},
{
"id": "11-134-0-protocolVersion",
"nodeId": 11,
"commandClass": 134,
"commandClassName": "Version",
"endpoint": 0,
"property": "protocolVersion",
"propertyName": "protocolVersion",
"type": "string",
"readable": true,
"writeable": false,
"label": "Z-Wave protocol version",
"stateless": false,
"commandClassVersion": 2,
"list": false,
"value": "4.24",
"lastUpdate":<PHONE_NUMBER>904,
"newValue": "4.24"
},
{
"id": "11-134-0-firmwareVersions",
"nodeId": 11,
"commandClass": 134,
"commandClassName": "Version",
"endpoint": 0,
"property": "firmwareVersions",
"propertyName": "firmwareVersions",
"type": "string[]",
"readable": true,
"writeable": false,
"label": "Z-Wave chip firmware versions",
"stateless": false,
"commandClassVersion": 2,
"list": false,
"value": [
"3.3",
"3.3"
],
"lastUpdate":<PHONE_NUMBER>910,
"newValue": [
"3.3",
"3.3"
]
},
{
"id": "11-134-0-hardwareVersion",
"nodeId": 11,
"commandClass": 134,
"commandClassName": "Version",
"endpoint": 0,
"property": "hardwareVersion",
"propertyName": "hardwareVersion",
"type": "number",
"readable": true,
"writeable": false,
"label": "Z-Wave chip hardware version",
"stateless": false,
"commandClassVersion": 2,
"list": false,
"value": 2,
"lastUpdate":<PHONE_NUMBER>917,
"newValue": 2
}
],
"groups": [],
"neighbors": [],
"ready": true,
"available": true,
"hassDevices": {
"sensor_temperature_air": {
"type": "sensor",
"object_id": "temperature_air",
"discovery_payload": {
"value_template": "{{ value_json.value }}",
"device_class": "temperature",
"unit_of_measurement": "°C",
"state_topic": "zwave/Rookmelder_WK/49/0/Air_temperature",
"json_attributes_topic": "zwave/Rookmelder_WK/49/0/Air_temperature",
"device": {
"identifiers": [
"zwavejs2mqtt_0xce6518d0_node11"
],
"manufacturer": "Fibargroup",
"model": "Smoke Detector (FGSD002)",
"name": "Rookmelder WK",
"sw_version": "3.3"
},
"name": "Rookmelder WK - temperature_air",
"unique_id": "zwavejs2mqtt_0xce6518d0_11-49-0-Air_temperature"
},
"discoveryTopic": "sensor/Rookmelder_WK/temperature_air/config",
"values": [
"49-0-Air temperature"
],
"persistent": false,
"ignoreDiscovery": false
},
"sensor_battery_level": {
"type": "sensor",
"object_id": "battery_level",
"discovery_payload": {
"value_template": "{{ value_json.value }}",
"device_class": "battery",
"unit_of_measurement": "%",
"state_topic": "zwave/Rookmelder_WK/128/0/level",
"json_attributes_topic": "zwave/Rookmelder_WK/128/0/level",
"device": {
"identifiers": [
"zwavejs2mqtt_0xce6518d0_node11"
],
"manufacturer": "Fibargroup",
"model": "Smoke Detector (FGSD002)",
"name": "Rookmelder WK",
"sw_version": "3.3"
},
"name": "Rookmelder WK - battery_level",
"unique_id": "zwavejs2mqtt_0xce6518d0_11-128-0-level"
},
"discoveryTopic": "sensor/Rookmelder_WK/battery_level/config",
"values": [
"128-0-level"
],
"persistent": false,
"ignoreDiscovery": false
},
"binary_sensor_battery_islow": {
"type": "binary_sensor",
"object_id": "battery_islow",
"discovery_payload": {
"payload_on": true,
"payload_off": false,
"value_template": "{{ value_json.value }}",
"device_class": "battery",
"state_topic": "zwave/Rookmelder_WK/128/0/isLow",
"json_attributes_topic": "zwave/Rookmelder_WK/128/0/isLow",
"device": {
"identifiers": [
"zwavejs2mqtt_0xce6518d0_node11"
],
"manufacturer": "Fibargroup",
"model": "Smoke Detector (FGSD002)",
"name": "Rookmelder WK",
"sw_version": "3.3"
},
"name": "Rookmelder WK - battery_islow",
"unique_id": "zwavejs2mqtt_0xce6518d0_11-128-0-isLow"
},
"discoveryTopic": "binary_sensor/Rookmelder_WK/battery_islow/config",
"values": [
"128-0-isLow"
],
"persistent": false,
"ignoreDiscovery": false
}
},
"failed": false,
"inited": true,
"eventsQueue": [
{
"time": "2022-11-19T16:28:22.816Z",
"event": "sleep",
"args": [
0
]
},
{
"time": "2022-11-19T16:28:23.001Z",
"event": "ready",
"args": []
}
],
"hexId": "0x010f-0x0c02-0x1003",
"dbLink": "https://devices.zwave-js.io/?jumpTo=0x010f:0x0c02:0x1003:3.3",
"manufacturerId": 271,
"productId": 4099,
"productType": 3074,
"deviceConfig": {
"filename": "/usr/src/app/store/.config-db/devices/0x010f/fgsd002.json",
"isEmbedded": true,
"manufacturer": "Fibargroup",
"manufacturerId": 271,
"label": "FGSD002",
"description": "Smoke Detector",
"devices": [
{
"productType": 3074,
"productId": 4098
},
{
"productType": 3074,
"productId": 4099
},
{
"productType": 3074,
"productId": 16386
}
],
"firmwareVersion": {
"min": "0.0",
"max": "255.255"
},
"paramInformation": {
"_map": {}
}
},
"productLabel": "FGSD002",
"productDescription": "Smoke Detector",
"manufacturer": "Fibargroup",
"firmwareVersion": "3.3",
"protocolVersion": 3,
"zwavePlusVersion": 1,
"zwavePlusNodeType": 0,
"zwavePlusRoleType": 6,
"nodeType": 1,
"endpointsCount": 0,
"endpointIndizes": [],
"isSecure": true,
"security": "S0_Legacy",
"supportsSecurity": false,
"supportsBeaming": true,
"isControllerNode": false,
"isListening": false,
"isFrequentListening": false,
"isRouting": true,
"keepAwake": false,
"maxDataRate": 100000,
"deviceClass": {
"basic": 4,
"generic": 7,
"specific": 1
},
"deviceId": "271-4099-3074",
"status": "Asleep",
"interviewStage": "Complete",
"minBatteryLevel": 100,
"batteryLevels": [
100
],
"_name": "Rookmelder WK (Woonkamer)",
"statistics": false
}

@roblomq are you using home assistant integration?

I'm using the auto discovery function in Domoticz.
But in the home assistant settings in Zwave-JS-UI are only 3 devices, battery level, battery empty and temperature. So I assumed that as the smoke alarm switch is not in this menu it will not be created in auto discovery and therefore the source it's missing is in Zwave-JS-UI.

Ok so you are using mqtt discovery (you didn't mention it on your issue). In that case you can do a manual discovery of missing devices, check: https://zwave-js.github.io/zwave-js-ui/#/homeassistant/homeassistant-mqtt

I'm sorry, I've red the documentation several times and also googled on it but I have no clue what to do.
The device works fine and the battery status and temperature is updated regularly but I'm missing the switches (one for the Enclosure opening and one for the actual smoke alarm). I think I have to look in the custom components section of the above link. But where is the customDevices.js located (I used docker for the installation of zwavejs2mqtt)?
I have the node ID (271-4099-3074)  but then what?
I found most surprising that this isn't already working. The Fibaro smoke sensors are widely used and for me it's quite logic to have something triggered in your home automation system when there is a fire detected....

Click on a node in the table and go to home hassistant tab, there you should find all the sensors discovered, if them are there you should ask to domoticz devs to help you understand why them are not present in domoticz as I never used it

The ones that are listed there are shown in Domoticz. But there are only 3 devices listed on the Homeassistant tab, as shown below.

COud you tell me the exact valueId that you would like to have discovered?

I don't know what the valueId is because it is not listed, or is there another way to find this besides the debug info? What Would be nice is if the things below where discovered

FIRE ALARM broadcast
Enclosure opening / closing state
Exceeding temp threshold

I don't know what the valueId is because it is not listed

As I said, if it's not listed, it's a node notification. You should handle it manually, If you go to node events tab you will see the events that are triggered by the node, then identify the topic using mqtt explorer and create the entity on domoticz

There are moments that I feel stupid, this is such a moment. You are trying to make things clear for me but I don't understand what. You suggest I need to do something manually but if there are no values other than the above shown 3, what do I need to handle manually?
When I go to the ZWaveJS2MQTT control panel, scroll to the Fibaro Smoke sensor and click on the events tab, there is only the "Air temperature" listed. No other values are listed even when I remove the sensor from it's socket so the "Enclosure open" is triggered. Also not when I rediscover the node or update the values.

So because there is nothing shown in ZWaveJS2MQTT I doubt highly there is something send to MQTT ut to be sure I checked also but as expected only the 3 values that are listed in the "Home assistant" tab are shown in MQTT Explorer.

When I go to the ZWaveJS2MQTT control panel, scroll to the Fibaro Smoke sensor and click on the events tab, there is only the "Air temperature" listed.

If so there must be a problem and the notification is not correctly handled/catched by zwave-js driver. Could you upload
zwave-js driver logs please?

zwavejs_2022-12-27.zip

zwavejs2mqtt-store.zip
I hope this one is better...

I added it with the option "Force security", I did a test, when I use that option then I only get the 3 devices I mentioned earlier. When I include it without the "Force security" I get all the devices I expected (see below).

But now there is no security used, I'm not sure if that's a problem but it sounds less secure :-)
I also included the logs.
zwavejs2mqtt-store (2).zip

Seems like there is still a problem. Now the device goes continuous into interview mode. When I wake-up the device the protocoll info is send and the status become "Complete". But after a while (5 - 10 minutes or so) it is in "Protocollinfo" again.
zwavejs2mqtt-store (3).zip

There should be a way to put device in secure inclusion mode instead normal inclusion mode (at least some devices could work like this), do you have all the Security keys correctly set on settings?

Yes I have all 4 security keys set (generated at installation of zwavejs2mqtt). Other devices work with security on.

Try to check in device manual if there is a special combination of keys to press in order to put it in secure inclusion

Another thing I can imagine is that the device does not reset its stored security keys after excluding, but they are different than the ones configured in Z-Wave JS.
Try exclusion, factory reset, then include again.


Docs: Clarify language about path and root in VNames. [phab:D731]

Created by fromberger at 2016-02-18 23:46:04:

zarko commented inline (context lost during migration) at 2016-02-19 00:07:10:
Should we be explicit as to whether pathy corpus names have path semantics?

zarko commented inline (context lost during migration) at 2016-02-19 00:07:10:
s/e.g./like/

zarko commented inline (context lost during migration) at 2016-02-19 00:07:10:
for example,

zarko commented inline (context lost during migration) at 2016-02-19 00:07:10:
stores

zarko commented inline (context lost during migration) at 2016-02-19 00:07:10:
Are Roots pathy?

zarko commented inline (context lost during migration) at 2016-02-19 00:07:10:
Do you mean a root directory or a Root here? If it's the latter, must Roots be pathy? (Otherwise, what does it mean to normalize a path against something that isn't a path?) If it's the former, maybe it would be better to avoid re-using "root" and instead refer to e.g. "a directory in the corpus".
This is really easy to confuse (see changes like #994) and I'm glad we're clarifying things!

fromberger wrote at 2016-02-19 01:17:28:

Update with fixes from code review.

fromberger commented inline (context lost during migration) at 2016-02-19 01:17:31:
I don't think we need to say that yet, and I'm not sure what that would even mean.
I tried to be a little more specific, though. What do you think?

fromberger commented inline (context lost during migration) at 2016-02-19 01:17:31:
This is the one I mentioned earlier. :)

fromberger commented inline (context lost during migration) at 2016-02-19 01:17:31:
They can be, but I'd say it's not required. I think of root as being basically "sub-corpus". (Maybe that would have been a better name, though I am slightly allergic to compounds).

fromberger commented inline (context lost during migration) at 2016-02-19 01:17:31:
Both. I tried to clarify which I meant in each case, please take another look.

fromberger wrote at 2016-02-19 01:29:04:

Further clarifications based on review notes.

zarko commented inline (context lost during migration) at 2016-02-19 18:04:02:
Maybe include (as you have for Root) language like:
"If a corpus name denotes a path, it should be cleaned as described under Path."

zarko commented inline (context lost during migration) at 2016-02-19 18:04:02:
I like the approach you took (where data generators are responsible for doing their own cleaning).

zarko commented inline (context lost during migration) at 2016-02-19 18:04:02:
Maybe capitalize Root here since I think it's intended to be the VName root field. Other VName field names are capitalized in the document.

zarko commented inline (context lost during migration) at 2016-02-19 18:04:02:
LGTM

fromberger wrote at 2016-02-19 18:41:23:

Update with fixes from code review.
Further clarifications based on review notes.
Additional fixes from code review.

fromberger commented inline (context lost during migration) at 2016-02-19 18:41:28:
Hm. I'd slightly rather not suggest that option, since it's basically useless outside one person's machine. That said, I agree if someone is going to do that, this would be good advice.
How's this?

zarko wrote at 2016-02-19 18:43:02:
Excellent, thanks!

zarko accepted this revision at 2016-02-19 18:43:02

fromberger closed via commit a7b90a3edd0807e8ce70a01341c04b55af9e230c at 2016-02-19 18:47:13


allow manual setting of credential IDs and descriptions

Adds the ability to manually set the id of a credential on creation (which remains immutable on edits), as there might be a use case for needing a predictable credential name, like CasC. Uses the jelly for BaseStandardCredentials. Also adds the ability to edit the description rather than using the same one every time, as that's also provided by the BaseStandardCredentials jelly include
Testing done

### Submitter checklist
- [ ] Make sure you are opening from a **topic/feature/bugfix branch** (right side) and not your main branch!
- [ ] Ensure that the pull request title represents the desired changelog entry
- [ ] Please describe what you did
- [ ] Link to relevant issues in GitHub or Jira
- [ ] Link to relevant pull requests, esp. upstream and downstream changes
- [ ] Ensure you have provided tests - that demonstrates feature works or fixes the issue

Copying the logic from BaseStandardCredentials as our Descriptor's (GoogleRobotPrivateKeyCredentials and GoogleRobotMetadataCredentials) doesn't extend it, but rather extending AbstractGoogleRobotCredentialsDescriptor which doesn't include the validation for id uniqueness.
if this is unnecessary, I will remove the validation

instead of copying the logic how about you extend AbstractGoogleRobotCredentialsDescriptor from BaseStandardCredentialsDescriptor rather than just CredentialsDescriptor?

Two questions from my side.

When I save creds with empty description, it gets populated for some reason with default string, is it expected?
I'm also thinking do we need "Project name" field anymore? The description field have the same meaning now. Functionally I don't see where "Project name" is used. But we can't simply remove as it break backward compatibility. WDYT?

When I save creds with empty description, it gets populated for some reason with default string, is it expected?

I think I'm the one who did that to not leave it empty/have a default. But if this is not what we want then okay

I'm also thinking do we need "Project name" field anymore? The description field have the same meaning now. Functionally I don't see where "Project name" is used. But we can't simply remove as it break backward compatibility. WDYT?

Perhaps it is used someplace where the credentials are being used, not this plugin itself?.. I think it's useful for organizing, if anything. And I'd expect the removal would probably cause much more breakage than it's worth.

And I'd expect the removal would probably cause much more breakage than it's worth.

I agree, it is better not to make any new breaking changes.

java.lang.NoSuchMethodError: 'void com.google.jenkins.plugins.credentials.oauth.GoogleRobotPrivateKeyCredentials.<init>(com.cloudbees.plugins.credentials.CredentialsScope, java.lang.String, java.lang.String, com.google.jenkins.plugins.credentials.oauth.ServiceAccountConfig, com.google.jenkins.plugins.credentials.oauth.GoogleRobotCredentialsModule)'
	at com.google.jenkins.plugins.computeengine.ComputeEngineCloudTest.construction(ComputeEngineCloudTest.java:66)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.jvnet.hudson.test.JenkinsRule$1.evaluate(JenkinsRule.java:607)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.lang.Thread.run(Thread.java:833)

Note that this is an incompatible change for credentials defined as code: whereas before an id was inferred from projectId and thus could be relied upon in credentialsIds elsewhere, now it is a random UUID.


From private repo

@msmbaldwin : Thanks for your contribution! The author, @mlottner, has been notified to review your proposed change.


server_default documentation examples and read-only field

Hey, found this library through your comment in orm repo, want to try it, as it seems it is not abandoned :smile:
I want to set field that is updated by PostgreSQL triggers, not directly, so I thought that server_default would be the option I need to pass to just ignore the field when creating/updating object. But I found no examples in documentation that I can just grab and try.
So, my field is defined in database as:
dt_changed timestamp with time zone NOT NULL DEFAULT NOW()

How can I pass NOW() function to server_default?
Related feature proposal: Can we introduce something like "read-only" field (so that it does not try to create/update it)?
Can submit PR for documentation and/or "read-only" field if you like the idea

Hi,
I remember messing around with server_default when I was setting pydantic.ModelField default values so I conducted some tests and fixed the server_default parameter and in the so called mean time updated the documentation in this regard.
Was fixed in #26, please update and check.
So answering your question directly you need to pass sqlalchemy.func.now() to server_default to achieve this functionality.
As for the read_only - I assume you want something like server_default field that cannot be updated.
Some requirements/ specs to consider:

If a field is read_only it has to have server_default set (maybe also allow default?). Otherwise it will be useless if cannot be used during creation/update
Field need to be excluded from query in model save/update but also in QuerySet level create, update etc. ManyToMany models also expose QuerySet API but it's delegated to actual QuerySet later so that should be fine.
Should we just exclude the field or raise Exception if someone wants to update/set read_only field?

Sure might be useful as some kind of 'security' feature to not allow overwriting the field, if you wish to create a PR it will be welcomed.

Thank you, will check tomorrow and re-open if something does not work :smile:
About read_only - yes, if I have triggers on PostgreSQL side - there is no need to write field value on update as it will be overwritten, example:
I have a dt_changed on model, it is set to "5 seconds ago" when I create or load object, but will it try to write this "5 seconds ago" value on subsequent updates? If it will not try, then no writes would be wasted and everything is ok :+1:
Though it was more for cases when you already have a database and do not create schema through Python.

If you provide a value both default and server_default are ignored so if you write model to db first you will get model with this field populated so for any subsequent call the value provided will be used. If you save again this value will be passed to updates so any function will not run, but the column will be included in update query.
If this affect performance depends on the backend - i.e. mysql will recognize that you want to update the column to value it currently has and will do nothing, didn't dig deeper into other backends behavior.
If that is what you meant than setting server_default should probably be optional for read_only fields.


why not use helm chart to define the rsource?

which kind of resource do you mean?

@junneyang , there is an open PR to add Helm chart support:
https://github.com/Altinity/clickhouse-operator/pull/358


custom log - tail existing files is not showing up in datadog log/dashboard

Datadog agent is configured on Windows 2016 instance in AWS.
demo.d folder is setup in conf.d with below conf.yaml
logs:
 - type: file
    path: c:/logs/*.log
    service: demo
    source: custom

datadog.yaml   (Full datadog.yaml config)

log_file: ""
log_format_json: false
log_level: debug
log_payloads: false
log_to_console: true
log_to_syslog: false
logging_frequency: 20
logs_config:
  container_collect_all: false
  dd_port: 10516
  dd_url_443: agent-443-intake.logs.datadoghq.com
  dev_mode_use_proto: true
  frame_size: 9000
  logs_no_ssl: false
  open_files_limit: 100
  run_path: C:\ProgramData\Datadog\run
  socks5_proxy_address: ""
  stop_grace_period: 30
  use_port_443: false
logs_enabled: true
logset: ""
metrics_port: "5000"

I see from log demo.log is being talied

log
2019-03-26 12:08:24 GMT | INFO | (pkg/logs/scheduler/scheduler.go:52 in Schedule) | Received a new logs config: demo
2019-03-26 12:08:24 GMT | INFO | (pkg/logs/input/file/tailer.go:106 in setup) | Opening  c:\logs\demo.log
2019-03-26 12:08:24 GMT | WARN | (pkg/metadata/resources/resources.go:21 in GetPayload) | Failed to retrieve processes metadata:  Not implemented on Windows
2019-03-26 12:08:24 GMT | INFO | (pkg/serializer/serializer.go:271 in SendMetadata) | Sent host metadata payload, size: 1946 bytes.
2019-03-26 12:08:24 GMT | INFO | (cmd/agent/app/dependent_services.go:31 in startDependentServices) | Service process is disabled, not starting
2019-03-26 12:08:24 GMT | INFO | (pkg/forwarder/transaction.go:193 in Process) | Successfully posted payload to "https://x-xx-x-app.agent.datadoghq.com/intake/?api_key=*************************asdflkj", the agent will only log transaction success every 20 transactions

I do see my instance in the datadog dashboard but I do not see logs from tail existing files. Below are the screenshots.
Infra-showing-instance-with-no-log
no-logs
What configuration am I missing?

I think I know what is going on here.
I see some weird behavior when I manually update the log file with new logs and save it.
So, I tested with an application like .net application, which programmatically writes logs to the file and I   see the logs are showing up fine.  I think it might be a timing between manual edits to log file and the Datadog agent file handler.
I also think there might be a corner case where when a log file is in place before Datadog agent is   installed and configured, in which case the very first time when dd agent is started, it just open the file and start listening but doesn’t reads the file (very first time), there onwards, any new log is added, it streams previous lines from log file.
That’s my observations.
I now see the logs based on the way we are installing and configuring the agent.


⚠ Bofrost.at has degraded performance

In 6219566, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 936 ms

Resolved: Bofrost.at performance has improved in a7896bb.


Client stops receiving updates

Regarding this post and my reply.
There seems to be something happening that makes the client stop receiving updates.
In jop9888 case it happens with FCNPC_AimAt. In my case it happens with PutPlayerInVehicle and somewhere else that's difficult to describe (when the NPC's position is set too close to a certain vehicle).
I will try to isolate the bug in a small filterscript and if needed make a video to demonstrate the weird behaviour.

Yep, just tested.


As an editor, Turn AutoAliasing off/on

After content is published, we track all changes to the url and automatically create redirects from old urls to new ones.
Sometimes it might be usefull to be able to turn that mechanism off (for example ehen moving a large sub-tree of pages that I know have not been referenced/indexed anywhere).
This can be either a global switch (turn this on/off for all editors) or even better something I can do for my user/session.


Add named symbols: ⌈, ⌉, ⌊, ⌋

This pr closes #4265 .
#align(center, table(
  columns: 4,
  align: center + horizon,
  table.cell(colspan: 2)[In Markup Mode], table.cell(colspan: 2)[In Math Mode],
  ```typst #sym.bracket.floor.l```, sym.bracket.floor.l, ```typst $bracket.floor.l$```, $bracket.floor.l$,
  ```typst #sym.bracket.floor.r```, sym.bracket.floor.r, ```typst $bracket.floor.r$```, $bracket.floor.r$,
  ```typst #sym.bracket.ceil.l```, sym.bracket.ceil.l, ```typst $bracket.ceil.l$```, $bracket.ceil.l$,
  ```typst #sym.bracket.ceil.r```, sym.bracket.ceil.r, ```typst $bracket.ceil.r$```, $bracket.ceil.r$,
))

$ round(A) $

$ bracket.floor.l A bracket.ceil.r $

$ bracket.ceil.l A bracket.floor.r $

I prefer the names floor.l and floor.r. To use these without conflict we would need to generalize the callable symbols from just accents to something more generic.

I prefer the names floor.l and floor.r. To use these without conflict we would need to generalize the callable symbols from just accents to something more generic.

If I got it correctly, we need to distinguish different objects from the same name depending on their different types.

What I meant is that symbols could get a generic way to be callable just like functions and we would put the current floor function implementation into the floor symbol.

What I meant is that symbols could get a generic way to be callable just like functions and we would put the current floor function implementation into the floor symbol.

Thanks! I got it. I will try to implement it in another PR and mark this one as draft.

symbols could get a generic way to be callable just like functions

Before implementation, some details I wonder:

Shall we get all symbols callable? Like floor.l(), floor.r(). Or we just get some specific symbols callable? Like floor().
If we define floor in SYM table, shall floor (without paren) be allowed? Or we just allow floor().

My opinions:

Shall we get all symbols callable? Like floor.l(), floor.r(). Or we just get some specific symbols callable? Like floor().

No, just a few ones. For floor() it makes sense due to how it surrounds the content. For accents like arrow(), it makes sense as they appear above the content. But I don't think this would apply to e.g. square, gradient and so on.

If we define floor in SYM table, shall floor (without paren) be allowed? Or we just allow floor().

This is something I wondered as well, because naturally floor (without paren)  would then correspond to floor.l if we added the symbols. But IMHO floor by itself shouldn't really correspond to anything, maybe just returns the "symbol function".

What syntax would you like to implement function in (or out of) the SYM table?

I don't have strong opinions here, but here are two possible approaches I could think of:

Move "functional symbols" out of the symbol table and use a separate macro to declare them in the compiler's source code. This, however, might make it harder or less consistent to declare "sub-symbols".
Add a way to specify a function's name in the symbol table in place of the symbol's string contents (could be some special notation or keyword for it). I think this might compose better with the rest of symbols.

I see current floor function is defined only for math mode. If we merge its definition into symbol table, shall we allow floor be called in markup mode?

I see current floor function is defined only for math mode. If we merge its definition into symbol table, shall we allow floor be called in markup mode?

Any opinions about this?

Is this one finished?

Oh, now I see why you did this in the first place. I'll check whether your change had the intended effect on the rendered docs.

Oh, now I see why you did this in the first place. I'll check whether your change had the intended effect on the rendered docs.

Would you like me to reapply the change, or will you handle it?

Probably it will work, so feel free to make the change and if it turns out that it doesn't work, I'll come up with something when I test it.

Docs look good. Thanks!


mslso.dll missing

I'm using vs2013 on windows 10 v1607.  When I upgraded to v 10.0.15063 from 10.0.14393.1, I get an error message saying "the program can't start because mslso.dll is missing from your computer".  Version 10.0.14393.1 works just fine.
It happens when I call ...
IWebDriver Driver= new EdgeDriver();
What am I missing?

I experience the same issue. However, I've tried downloading MicrosoftWebDriver.exe directly from https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ with the same issue.

As usual, right after posting a comment, I found possible cause myself.
It appears that the latest driver might not work as it is targeted to Edge 15063 which comes with Win 10 Creators Update. I still have older one, 14393. The dll in question probably comes with this update.


Parsing linebreaks in NewsWCL50

Because of the way in which I am using context, I noticed the that linebreaks are encoded into the dataset.conll file of NewsWCL50
#begin document (3/3/3_RR); part 0
3/3/3_RR	0	0	DESPERATION	-
3/3/3_RR	0	1	:	-
3/3/3_RR	1	0	DNC	(3_USA_Democrats_GROUP)
3/3/3_RR	1	1	files	-
3/3/3_RR	1	2	multi	(3_Lawsuit_MISC
3/3/3_RR	1	3	-	-
3/3/3_RR	1	4	million	-
3/3/3_RR	1	5	dollar	-
3/3/3_RR	1	6	lawsuit	3_Lawsuit_MISC)
3/3/3_RR	1	7	against	-
3/3/3_RR	1	8	Russia	(3_RUS_COUNTRY)
3/3/3_RR	1	9	,	-
3/3/3_RR	1	10	Trump	(3_Trump_campaign_EVENT
3/3/3_RR	1	11	campaign	3_Trump_campaign_EVENT)
3/3/3_RR	1	12	for	-
3/3/3_RR	1	13	collusion	(3_RUS_interference_into_USA_election_MISC)
3/3/3_RR	1	14	.	-
3/3/3_RR	2	0	\n	-
3/3/3_RR	3	0	The	(3_USA_Democrats_GROUP
3/3/3_RR	3	1	Democratic	-
3/3/3_RR	3	2	National	-
This is only one case that I find particularly problematic because the linebreak is encoded as the whole sentence (sentence_id=2) but there are over a thousand occurrences of \n in the dataset.conll file. I warn in case it is not the intended behaviour

Hi,
To parse this line break you need to split over \n\n. We are working on the new version of the dataset, and we have a standardized format for all datasets to spare you from the parsing details :)


TCP bus does not properly route messages from single server to multiple clients

The server-side implementation of the TCP message bus broadcasts all outgoing messages to all clients, instead of routing them to the appropriate client.
With Events it's tough to know where a given message should be routed unless it has a non-empty causation ID that can be matched up with the message ID of a received message.
With Commands, it's quite a bit more straightforward. Servers should never initiate the sending of a Command, but should be able to handle Commands received from clients and then route each CommandResponse to the appropriate client.

#110 Resolves this for Commands and their CommandResponses. Routing of Events that are published server-side still needs to be addressed.


Setup auto merging of dependabot PR's

https://github.com/marketplace/actions/fetch-metadata-from-dependabot-prs

Only auto merge dev dependencies


Async scheduler diagnostics

The dask.async scheduler could support a callback during execution.  This could be useful for real-time visualization (as suggested by @jcrist) or for profiling (as suggested by @rhattersley) or for a variety of other unforeseen applications.
There is currently a kludgy debug_counts keyword argument to the single-machine scheduler that triggers a slow visualization step.  This hard-coded call to visualize should probably be replaced with a user-supplied callback.
We would have to think about what inputs we provide to that callback, possibly the dask graph, state, newly finished task and newly started task.
This work could be enhanced by a couple of particular callbacks.  I would personally be interested in a function that recorded the start and end times of every task.  This could be coupled with a visualization of these task-durations, stacked up as necessary for the different threads/processes.

a visualization of these task-durations, stacked up as necessary for the different threads/processes.

That's something we find very useful when using IPython Parallel.


Tweak the hash map

Caching the hash value in the entry to speeds up the lookup operation for non-integer keys.
Tweak the hash calculation to let the higher 16 bits of the hash value participate in the calculation.

I think you should check the capacity passed in instead of setting it directly. I feel that much of your code assumes that the capacity is 2^n, which does not always hold.
test "remove_unexist_key" {
  let m : HashMap[String, Int] = HashMap::new(
    ~hasher=Some(fn(k) { k.length() }),
    ~capacity=7
  )
  m.set("a", 1)
  m.set("ab", 2)
  m.set("abc", 3)
  m.remove("d")
  @assertion.assert_eq(m.size(), 3)?
  @assertion.assert_eq(
    m.debug_entries(),
    "_,(0,a,1),(0,ab,2),(0,abc,3),_,_,_,_",
  )?
}

LGTM, thanks for the PR


Great Expectations SqlAlchemyExecutionEngine won't work with sqlalchemy==1.3.24

Describe the bug
The current (0.8.36) datahub[great-expectations] package requires sqlalchemy==1.3.24 which won't work with great expectations when using redshift as a datasource.
To Reproduce
Steps to reproduce the behavior:

run poetry install with the following toml file

[tool.poetry.dependencies]
python = ">=3.7.1,<3.8"
great-expectations = "0.15.1"
mistune = "0.8.4"
black = "^22.3.0"
pyathena = "^2.9.1"
psycopg2-binary = "^2.9.3"
sqlalchemy-redshift = "^0.8.9"
psycopg2 = "^2.9.3"
acryl-datahub = {extras = ["great-expectations"], version = "^0.8.36"}

Setup GE using poetry run great_expectations init
Connect to a Redshift datasource and build an expectation for it
Try to run a checkpoint

import great_expectations as ge
from great_expectations.core.batch import RuntimeBatchRequest
from great_expectations.checkpoint import SimpleCheckpoint
from ruamel.yaml import YAML

yaml = YAML()

context = ge.get_context()

batch_request = RuntimeBatchRequest(
    datasource_name="redshift",
    data_connector_name="default_runtime_data_connector_name",
    data_asset_name="public.daily_data",
    runtime_parameters={
        "query": "select * from public.daily_data",
    },
    batch_identifiers={"default_identifier_name": "default_identifier_name"},
    batch_spec_passthrough={"create_temp_table": False, "table_name": "daily_data", "schema_name": "public"},
)

checkpoint_config = {
    "class_name": "SimpleCheckpoint",
    "run_name_template": "data-daily",
    "validations": [
        {
            "batch_request": batch_request,
            "expectation_suite_name": expectation_suite_name
        },
    ],
    "action_list": [
        {
            "name": "store_validation_result",
            "action": {
                "class_name": "StoreValidationResultAction"
            },
        },
        {
            "name": "store_evaluation_params",
            "action": {
                "class_name": "StoreEvaluationParametersAction"
            },
        },
        {
            "name": "update_data_docs",
            "action": {
                "class_name": "UpdateDataDocsAction",
                "site_names": []
            },
        },
        {
            "name": "datahub_action",
            "action": {
                "module_name": "datahub.integrations.great_expectations.action",
                "class_name": "DataHubValidationAction",
                "server_url": "https://datahub.data.zapier-staging.com/"
            },
        },
    ],
}
checkpoint = SimpleCheckpoint(
    "daily_data.warning",
    context,
    **checkpoint_config
)
checkpoint_result = checkpoint.run()

Most expectations fail with 'TextAsFrom' object has no attribute 'subquery'
Delete acryl-datahub[great-expectations] and run poetry update
rerun the checkpoint. All expectations pass

Expected behavior
All expectations pass
Desktop (please complete the following information):

OS: MacOS Catalina

Hi @mayurinehate! Can you take a look at this issue, please?

Hey @ramonprieto There is an open issue with same error on Great Expectations, when using BigQuery with sqlalchemy 1.3.24 - https://github.com/great-expectations/great_expectations/issues/3571
I believe this issue (support for sqlalchemy 1.3.24) needs to be addressed in Great Expectations code. Can you please share the full error stack trace here ? It will help confirm the cause. Meanwhile let me check if I can figure out something to relax the sqlalchemy version restriction, when using DatahubValidationAction.

Thanks for looking into this @mayurinehate . Here's the stack trace
Traceback (most recent call last):
File "/Users/ramonprieto/src/zapier/great-expectations-zapier/venv/lib/python3.8/site-packages/great_expectations/execution_engine/execution_engine.py", line 398, in resolve_metrics
new_resolved = self.resolve_metric_bundle(metric_fn_bundle)
File "/Users/ramonprieto/src/zapier/great-expectations-zapier/venv/lib/python3.8/site-packages/great_expectations/execution_engine/sqlalchemy_execution_engine.py", line 860, in resolve_metric_bundle
selectable = self.get_domain_records(
File "/Users/ramonprieto/src/zapier/great-expectations-zapier/venv/lib/python3.8/site-packages/great_expectations/execution_engine/sqlalchemy_execution_engine.py", line 507, in get_domain_records
selectable = selectable.columns().subquery()
AttributeError: 'TextAsFrom' object has no attribute 'subquery'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Users/ramonprieto/src/zapier/great-expectations-zapier/venv/lib/python3.8/site-packages/great_expectations/validator/validator.py", line 1265, in resolve_validation_graph
self._resolve_metrics(
File "/Users/ramonprieto/src/zapier/great-expectations-zapier/venv/lib/python3.8/site-packages/great_expectations/validator/validator.py", line 2173, in _resolve_metrics
return execution_engine.resolve_metrics(
File "/Users/ramonprieto/src/zapier/great-expectations-zapier/venv/lib/python3.8/site-packages/great_expectations/execution_engine/execution_engine.py", line 401, in resolve_metrics
raise ge_exceptions.MetricResolutionError(
great_expectations.exceptions.exceptions.MetricResolutionError: 'TextAsFrom' object has no attribute 'subquery'

We have now moved to GE version >=0.5.12. Closing.


Should CF be must_read (not maybe_read) for bslr, blsi and blsmsk?

These seem wrong to me, can somebody confirm this?  When I look at the specification, it seems like the CF is always set.

You're probably right.


Multiverse Timeline?

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Summary 💡
The timeline component is awesome, but could it support the concept of a multiverse?
That is, multiple timelines branching off a single starting timeline?
This could be useful for things like trying to visualize multiple possible outcomes, demonstrating git branching, and more.
Examples 🌈
Not really a great example, but here's an image from the show "Loki" which sort-of demonstrates this idea:
http://fishstreamtv.com/wp-content/uploads/2021/06/loki-timeline-branches-700x300.jpg
Motivation 🔦
This would be useful for things like visualizing multiple outcomes.
Obviously this is just a fun idea, and feel free to close if not useful!

I am getting 404 on the link. Would be useful if you can share more benchmarks.

Here's a rough example screenshot:

Another is maybe even the Pull Request icon on Github, showing 2 timelines converging into one:

Perfect, thanks for sharing these. Let's see if someone from the community would like to give this a try. I can certainly help with the review and give guidance

Hi @mnajdova, maybe each 'TimelineItem' can have a reference to its parent to link together?
for example:

I would love to work on developing this new feature. Could you assign it to me? Although this would be my first contribution, I am a full-time frontend engineer and I have been heavily reliant on MUI. I want to contribute and be of assistance.

Just wanted to throw in a very rough proposal on what the usage syntax could be. I haven't dived that deep into the implementation of Timeline yet so this may not be technically feasible as I am just approaching this from a usage point of view first, thus feedback 100% welcome.
For a simple one-node parent with two diverging outcomes like below:

I'm thinking of something like:
    <Timeline>
       {/* Singular parent timeline */}
       <TimelineItem>
          {/* ...Timeline separators, dots, connectors, and content here... */}
       </TimelineItem>

       {/* Diverging alternative timeline outcomes */}
       <AlternativeOutcomes>

        {/* Left alternative timeline */}
        <TimelineItem>
           {/* ...Timeline separators, dots, connectors, and content here... */}
        </TimelineItem>

        {/* Right alternative timeline */}
        <TimelineItem>
           {/* ...Timeline separators, dots, connectors, and content here... */}
        </TimelineItem>

      </AlternativeOutcomes>
    </Timeline>

And then inside <AlternativeOutcomes /> adding more <TimelineItem /> component children would simply add more diverging outcomes at the same level, stemming from the same parent.

This starts to look like out of scope of what the component is. What you are describing is a tree view (with a bit of a different visuals). I am not sure if we'll have the bandwidth to implement and maintain this, but I am curious to see what will the community say


Why honcho in particular?

Why is honcho in particular used here?

What's the neccessity? Why not run all of them without honcho, as ordinary processes? Is it specific to the fact that it's all done in Docker?

Honcho allows orchestrating several processes in parallel using a single and simple configuration file (profile).
It's not specific to Docker. Of course, you don't have to use honcho and similar tools, but, in that case, you have to orchestrate all processes manually. For example, if one of the processes failed to start, you have to stop all other processes. Honcho can simplify this as much, as possible.


U5 Support

Hi,
Please support ST U5 series.
https://www.st.com/en/microcontrollers-microprocessors/stm32u5-series.html#cad-resources
https://www.st.com/resource/en/svd/stm32u5_svd.zip

Sweet. I guess there's no reason not to now that the SVD's out. I'll have a crack at it when I find time.

Upon further consideration, I'd like to wait until it's supported in the stm32-rs repo, since this library is an abstraction upon the PACs these generate.

Hi together,
just wanted to give a heads up on that the stm32u5 PAC has been merged: https://github.com/stm32-rs/stm32-rs/pull/744

Any plans or progress here?

Hey! I don't have the time ATM to add support for this, but you are welcome if you'd like! It will probably be a bit tedious, but doable.


Secret.verification_material poorly named

Apologies for the nitpick but I think Secret.verification_material is poorly named. From the docstring:
verification_material (VerificationMaterial): A verification material representing a private key.

I would consider "verification material" to be the key material used to verify a signed message i.e. the public key, not the private key. Would there be any objections to be me changing this value to private_key or something similarly clear?

Yeah, I ran into this too after doing a quick probe at what changing it would look like. I think this is worth revisiting at some point but probably low on the list of things to worry about. I'll close this for now. Thanks.


Walkthrough Video

Requirements

A walkthrough video that demonstrates the functionality of the README generator must be submitted and a link to the video should be included in your README file.
The walkthrough video must demonstrate how a user would invoke the application from the command line.
The walkthrough video must demonstrate how a user would enter responses to all of the prompts in the application.
The walkthrough video must demonstrate a generated README that matches the user input and has a functioning table of contents.

Video has been made. need to add to google drive


README

README
User Issue
As a boot camp student,
I want the prework notes to be structured on a webpage,
So that I can easily find and read the information.
Acceptance Criteria
GIVEN the prework project repository,
WHEN I view the README for the repository,
THEN I can see a professional README that provides information on the project and how to use it

created professional README up to criteria


Hoist resource variables using a global initializer function correctly

Fixes: #4874
Goal:
Hoist resource variables using a global initializer function in such a way that any global with initializer function has any possible resource variables hoisted into their use location directly (otherwise many targets won't work).
Changes:

If legalize a global kIROp and it creates a global, make a GlobalVar

[only done for resource variables for simplicity of legalization pass]

Add a legalization pass that moves any global GlobalVar stores (initializers) into the GlobalVar init block
If we have a GlobalVar which is computed to be an alias (direct assignment to another variable), hoist the alias's value into IRGlobalVar use-sites.

Reading at the code here, it seems clear to me that we need to legalize out the resource typed global variable out of existence before we reach legalizeType, instead of letting legalizeType doing weird things such as inserting a store in global scope and then try to clean up that mess in a separate pass.
In this case, the global static const should have been lowered into a IRGlobalConstant whose value is an IRCall. We should then recognize these IRGlobalConstants and IRCalls and inline them before hitting legalization.

In this case, the global static const should have been lowered into a IRGlobalConstant whose value is an IRCall. We should then recognize these IRGlobalConstants and IRCalls and inline them before hitting legalization.

I will work on this solution 👍

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


feat($httpUrlParams): introduce new service abstracting params serialization

This is the first step of the changes planned for $http's params serialization. For now a simple refactoring that moves serialization logic to a dedicated service. Even if simple, this first moves already solves some long-opened issues:
Closes #7429
Closes #9224

maybe we should also move the parseKeyValue method into this service as a deserialize function?

@shahata yes, my bigger plan is to expand this service to handle deserialization in the future and - why not - turn it into a generic URLs params handling service. But I'm taking baby steps with those PRs so those are easier to review and getting merge faster.
In short: yes, definitively you remark make sense - it is mid-term plan, but doesn't have to be handled in this PR (I'm planning to send several focused PRs like this one in the coming days)

Thnx @caitp !

things that I immediately don't like about this:

This makes it difficult to use multiple query string serialization techniques in a single app --- sometimes apps need to talk to multiple backends.
I think jQuery's strategy is cleaner, and allows multiple serialization strategies with less code.

I guess that "jQuery" strategy you mean their traditional switch, right? Would you add it to the config object? If so, this approach doesn't help with testing, does it?
Regarding support for  multiple query string serialization techniques in a single app - it is true, this proposal doesn't address this issue (but also doesn't change anything as compared to the today's situation).
Could iterate on this and your proposal to work out something that covers most of the problem people face? Or decide which problem(s) are more important (for now it seems like there is a tension between making testing easier vs. having multiple strategies in one app).
I will think of something that tries to cover both testing and multiple strategies in one app...

I'm going to close this one for now and try to implement @caitp suggestion. Will open a new PR when ready.

I've had some ideas, but most likely the simplest / most performant approach would be selecting which method to use in the http config object (using either a boolean flag to flip between "traditional" mode and not, or using a closure or a string to lookup a pre-registered serializer). The boolean flag is the least flexible but by far the simplest and fastest.
A slower approach would be having a good "default", and being able to select an alternative strategy based on the domain name of the host you're sending the request to.
Yet another one (which is probably not tenable in 1.x, but could be possible in 2.x) is just subclassing Http and setting a new default in the child class.
But yeah, I tend to prefer the boolean switch

@caitp thnx for the additional input. Personally I'm leaning towards string flag as I think a boolean one - although the simplest, is probably too restrictive. But yeh, we need to have some default + ability to select an alternative in the config object.


Add ssh_config to support ssh via taskrole and taskrole index

use ssh [taskrole]-[taskrole index] to ssh to other job containers

Coverage remained the same at 50.409% when pulling 044f2282bdd56969108e3d949dceb6fc2b725379 on diawang/pure-k8s-ssh-fix into 03fc241d8d1f4ce4d509595f08d17116f5aad26c on feature/pure-k8s.


Support for recursive Objects

Very often there is a need for Nested structures in data models.
Example 1: Comments:
GraphQLObjectType commentType = newObject()
                        .name("Comment")
                        .field(newFieldDefinition()
                                .type(new GraphQLList(commentType))
                                .name("replies")
                                .build())
                        .build();

Example 2: Friends:
GraphQLObjectType personType = newObject()
                        .name("Person")
                        .field(newFieldDefinition()
                                .type(new GraphQLList(commentType))
                                .name("friends")
                                .build())
                        .build();

These fairly common use-cases current seem impossible with GraphQL-Java. This is because the type field cannot be null. GraphQL-js gets around this problem by letting you define your fields as a function:
var CommentsType = new GraphQLObjectType({
  name: 'Comments',
  fields: () => ({
    humanName: {type: GraphQLString},
    replies: {type: new GraphQLList(GreetingsType)}
  }),
});

Is something like this possible with GraphQL-java? If not can it be added??
I recommend, overloading the .type to accept a lambda Function. I'll try to make a pull request, that fill probably not work, but with your help it may be possible to make it work.

I think this solves your problem:
https://github.com/andimarek/graphql-java#recursive-type-references

This is awesome. Thanks!


Add context to logs

Tamer tends to be used concurrently and in swarm in a cluster. The logs don't include contextual information about who is doing what. Starting from https://github.com/laserdisc-io/tamer/blob/0c0322bee21fa3031f0cec426f9ed7838b16b9cb/rest/src/main/scala/tamer/rest/TamerRestJob.scala#L230 add information about the name of the current job.

This is done


Allow passing unparsed response body to error handler

I've this specific backend that returns 400 but also a payload (i.e body) indicating the errors. Dropping this library into the project prevents me from doing further processing of that body as I would do with native fetch's catch right before parsing. Error handler only seems to be given a message (since respInfo is broken, as you need to add it as a property or make a custom Error class), and even then no response body that I can continue processing on after checking the status code (i.e calling .json() on it).

@blackxored , thanks for the suggestion. I'll try to fix this bug once I have time 👍

@blackxored , I've change the error handling on native side, I think it should works as expected now. Please try upgrade to 0.10.0-beta.2 and see if it works propery 😄


Engine::create_job() throws the Job struct and only store the id

line 245 of job.c:
        // Insert into job queue
        //
        let mut jobs = self.jobs.write().unwrap();
        jobs.push_back(nextid);

as you see, we store nextid but not the job itself.
It works as it is because we are single job anyway here.  This is just plain wrong.

Fixed in #bc78fd6534c4b8ef5cb7181f6ed5f9add9ee6644


[CI] Fix travis osx python 2.7

This PR makes use of the previous default osx worker as the new default osx worker that was just introduced does not seems to provide (yet?) pip.
Related to #1373

LGTM