Error with message _Map_base::at

Describe the bug
check_antennas -verbose exits with the mentioned error.
Expected Behavior
A clearer error message or perhaps no exit at all.
OpenROAD Environment
Git commit: 7ff344109037f2ace724a784d4801b691827ea49
kernel: Linux 5.15.0-84-generic
os: Ubuntu 22.04.1 LTS (Jammy Jellyfish)
cmake version 3.25.1
-- The CXX compiler identification is GNU 11.4.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- OpenROAD version: v2.0-10516-g7ff344109
-- System name: Linux
-- Compiler: GNU 11.4.0
-- Build type: RELEASE
-- Install prefix: /usr/local
-- C++ Standard: 17
-- C++ Standard Required: ON
-- C++ Extensions: OFF
-- The C compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found Python: /usr/bin/python3.10 (found version "3.10.12") found components: Interpreter
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Performing Test C_COMPILER_SUPPORTS__-Wall
-- Performing Test C_COMPILER_SUPPORTS__-Wall - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wall
-- Performing Test CXX_COMPILER_SUPPORTS__-Wall - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-array-bounds
-- Performing Test C_COMPILER_SUPPORTS__-Wno-array-bounds - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-array-bounds
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-array-bounds - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-nonnull
-- Performing Test C_COMPILER_SUPPORTS__-Wno-nonnull - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-nonnull
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-nonnull - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-maybe-uninitialized
-- Performing Test C_COMPILER_SUPPORTS__-Wno-maybe-uninitialized - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-maybe-uninitialized
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-maybe-uninitialized - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format-overflow
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format-overflow - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format-overflow
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format-overflow - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-variable
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-variable - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-variable
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-variable - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-function
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-function - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-function
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-function - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-write-strings
-- Performing Test C_COMPILER_SUPPORTS__-Wno-write-strings - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-write-strings
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-write-strings - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-sign-compare
-- Performing Test C_COMPILER_SUPPORTS__-Wno-sign-compare - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-sign-compare
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-sign-compare - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-deprecated
-- Performing Test C_COMPILER_SUPPORTS__-Wno-deprecated - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-deprecated
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-deprecated - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-c++11-narrowing
-- Performing Test C_COMPILER_SUPPORTS__-Wno-c++11-narrowing - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-c++11-narrowing
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-c++11-narrowing - Failed
-- Performing Test C_COMPILER_SUPPORTS__-Wno-register
-- Performing Test C_COMPILER_SUPPORTS__-Wno-register - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-register
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-register - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format -CMake Warning at src/CMakeLists.txt:233 (message):
  spdlog: SPDLOG_FMT_EXTERNAL=ON

 Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal
-- Performing Test C_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal - Failed
-- Performing Test C_COMPILER_SUPPORTS__-fpermissive
-- Performing Test C_COMPILER_SUPPORTS__-fpermissive - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-fpermissive
-- Performing Test CXX_COMPILER_SUPPORTS__-fpermissive - Success
-- Performing Test C_COMPILER_SUPPORTS__-x
-- Performing Test C_COMPILER_SUPPORTS__-x - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-x
-- Performing Test CXX_COMPILER_SUPPORTS__-x - Failed
-- Performing Test C_COMPILER_SUPPORTS__c++
-- Performing Test C_COMPILER_SUPPORTS__c++ - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__c++
-- Performing Test CXX_COMPILER_SUPPORTS__c++ - Failed
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-but-set-variable
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-but-set-variable - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-but-set-variable
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-but-set-variable - Success
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- TCL readline library: /usr/lib/x86_64-linux-gnu/libtclreadline.so
-- TCL readline header: /usr/include/x86_64-linux-gnu
-- Found SWIG: /usr/bin/swig4.0 (found suitable version "4.0.2", minimum required is "3.0")
-- Found Boost: /usr/local/lib/cmake/Boost-1.81.0/BoostConfig.cmake (found version "1.81.0")
-- boost: 1.81.0
-- Found Python3: /usr/include/python3.10 (found version "3.10.12") found components: Development Development.Module Development.Embed
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11")
-- spdlog: 1.9.2
-- Found BISON: /usr/bin/bison (found version "3.8.2")
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- STA version: 2.4.0
-- STA git sha: 68600a2921a47679e1c3a159bdb852df191a0a62
-- System name: Linux
-- Compiler: GNU 11.4.0
-- Build type: RELEASE
-- Build CXX_FLAGS: -O3 -DNDEBUG
-- Install prefix: /usr/local
-- Found FLEX: /usr/bin/flex (found version "2.6.4")
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- SSTA: 0
-- STA executable: /home/karim/work/OpenROAD/src/sta/app/sta
-- GPU is not enabled
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- Found re2: /home/karim/Downloads/or-tools_x86_64_Ubuntu-22.10_cpp_v9.5.2237/lib/cmake/re2/re2Config.cmake (found version "9.0.0")
-- Found Clp: /home/karim/Downloads/or-tools_x86_64_Ubuntu-22.10_cpp_v9.5.2237/lib/cmake/Clp/ClpConfig.cmake (found version "1.17.7")
-- Found Cbc: /home/karim/Downloads/or-tools_x86_64_Ubuntu-22.10_cpp_v9.5.2237/lib/cmake/Cbc/CbcConfig.cmake (found version "2.10.7")
-- Found Eigen3: /usr/share/eigen3/cmake/Eigen3Config.cmake (found version "3.4.0")
-- Found SCIP: /home/karim/Downloads/or-tools_x86_64_Ubuntu-22.10_cpp_v9.5.2237/lib/cmake/scip/scip-config.cmake (found version "8.0.1")
-- GUI is enabled
-- Charts widget is not enabled
-- Found Boost: /usr/local/lib/cmake/Boost-1.81.0/BoostConfig.cmake (found version "1.81.0") found components: serialization
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Could NOT find VTune (missing: VTune_LIBRARIES VTune_INCLUDE_DIRS)
-- Found Boost: /usr/local/lib/cmake/Boost-1.81.0/BoostConfig.cmake (found suitable version "1.81.0", minimum required is "1.78")
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- Found Boost: /usr/local/lib/cmake/Boost-1.81.0/BoostConfig.cmake (found version "1.81.0") found components: serialization system thread
-- TCL readline enabled
-- Tcl Extended disabled
-- Python3 enabled
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/tmp.FwyhqZ4KAP

OpenLane Environment
open_pdks dd7771c384ed36b91a25e9f8b314355fc26561be
Kernel: Linux v5.15.0-84-generic
Distribution: ubuntu 22.04
Python: v3.10.12 (OK)
Container Engine: docker v20.10.22 (OK)
OpenLane Git Version: update-openroad_app-dev
pip: INSTALLED
python-venv: INSTALLED
---
PDK Version Verification Status: OK
---
Git Log (Last 3 Commits)

f32a3908 2023-10-03T12:21:27+03:00 export c++ before python modules installs since libparse requires gcc - kareefardi -  (HEAD -> update-openroad_app, fork/update-openroad_app)
f60fdae9 2023-10-03T11:38:13+03:00 update openroad app - kareefardi -  ()
5771836b 2023-10-01T15:19:35+00:00 Add -skip_io and iterate io and global placement (#1984) - Kareem Farid -  (tag: 2023.10.02, origin/master, master)
---
Git Remotes

donn	git@github.com:donn/openlane.git (fetch)
donn	git@github.com:donn/openlane.git (push)
fork	git@github.com:kareefardi/OpenLane.git (fetch)
fork	git@github.com:kareefardi/OpenLane.git (push)
origin	git@github.com:The-OpenROAD-Project/OpenLane.git (fetch)
origin	git@github.com:The-OpenROAD-Project/OpenLane.git (push)

To Reproduce
issue_reproducible.tar.gz
Extract and run bash run.tcl
Relevant log output
OpenROAD v2.0-10516-g7ff344109
This program is licensed under the BSD-3 license. See the LICENSE file for details.
Components of this program may be licensed under more restrictive licenses which must be honored.
[INFO]: Reading ODB at './results/routing/spm.odb'…
define_corners Typical
read_liberty -corner Typical pdk/sky130A/libs.ref/sky130_fd_sc_hd/lib/sky130_fd_sc_hd__tt_025C_1v80.lib
Using 1e-12 for capacitance...
Using 1e+03 for resistance...
Using 1e-09 for time...
Using 1e+00 for voltage...
Using 1e-03 for current...
Using 1e-09 for power...
Using 1e-06 for distance...
Reading design constraints file at 'home/karim/work/OpenLane/scripts/base.sdc'…
[INFO]: Setting output delay to: 2.0
[INFO]: Setting input delay to: 2.0
[INFO]: Setting load to: 0.033442
[INFO]: Setting clock uncertainty to: 0.25
[INFO]: Setting clock transition to: 0.15
[INFO]: Setting timing derate to: 5.0 %
Error: antenna_check.tcl, 18 _Map_base::at

Screenshots
No response
Additional Context
The same error happened during detailed routing while reading guides file.
issue_reproducible.tar.gz. The workaround is that we no longer have to read guides file before detailed routing if we are using odb. However, as mentioned above the error happens again in a later stage in the flow

@kareefardi I've created a PR to avoid having the map error, but I also found that the issue occurs because the global router doesn't have the min-max routing layers information when executing the check_antennas command. I suggest you add the following command to avoid such errors:
set_routing_layers -signal min-max -clock min-max.
I'll also add a warning in GRT for cases where the layer range is not defined.


request: add --help to cli flags

Just so I don't have to open the docs to find out what the flags are

feel free to make a PR


Update kubectl translation

/remove-lifecycle stale

@feloy On my side it doesn't render properly for the option section. The  are not rendered properly

/lgtm
/approve
Working on the CI


Heat Templates can not be Provisioned using the UI

Changes to the templates need to be made so that, each "resource" or type can be referenced by "name" and as such environment files can be supplied, that point to the resources by file (for console deployments), or with in the UI (by using URL locations).
More on this can be seen in http://docs.openstack.org/developer/heat/template_guide/environment.html

To sum up the problem: we use HOT syntax in heat templates and refer to other files from the top-level openshift.yaml template. Other files are referenced by relative path for obvious reasons (to make sure templates will work no matter where are placed). When a user tries to create a heat stack from Horizon UI, it fails with these templates, in heat-engine log you can find errors like this:
2016-04-06 03:14:45.170 30446 INFO heat.common.urlfetch [req-84300e0b-7f77-4015-87cd-85216e2ce75e db21571aa36742638d003697bdd902b7 8f1373acd2cc481a916fc809f6c63524] Fetching data from infra
.yaml
2016-04-06 03:14:45.170 30446 DEBUG oslo_messaging.rpc.dispatcher [req-84300e0b-7f77-4015-87cd-85216e2ce75e db21571aa36742638d003697bdd902b7 8f1373acd2cc481a916fc809f6c63524] Expected exception during message handling (Could not fetch remote template "infra.yaml": Invalid URL scheme ) _dispatch_and_reply /usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py:145
AIUI the problem is that Horizon can not deal with relative path references properly. This bug describes the same situation:
https://bugs.launchpad.net/python-heatclient/+bug/1467781
IOW the issue has to be fixed on Horizon side.

I don't feel that bug is relevant to the request I am making. What I am suggesting is that you provide 2 files a local resource registry and a remote resource registry. When you use the ue the remote resource registry is used and points or URL based files.
When the local is used it points to relative files paths and is used on the command line.

Re relevancy: what you are describing is a workaround for the bug I linked above - when Horizon fixes loading of referenced files you just pass top-level template URL. The same works in CLI, .e.g:
heat stack-create oshift2 -e ~/openshift-on-openstack/env_origin.yaml -f http://with_openshift_templates/templates/openshift.yaml
And once Horizon starts using "process_multiple_environments_and_files" method, it will work there too and none of this should be needed.
If I understand your proposal you are suggesting we should maintain an extra set of resource overrides for each referenced file, this override would be absolute URL pointing to this github repo. So this couldn't be used anyway in real life because there is often need to tune templates according you your needs, and extra pain for anyone trying to re-use these templates and keep them consistent.


Brooks Wisniewski Brown syndrome and MENTAL RETARDATION, X-LINKED, SYNDROMIC, TURNER TYPE; MRXST

OMIM recently created https://www.omim.org/entry/309590, moving both OMIM:300612 (BROOKS-WISNIEWSKI-BROWN SYNDROME) and  OMIM:300706 into that record.
Both GARD and Orphanet retain a distinction between
X-linked intellectual disability, Brooks type
and
X-linked intellectual disability, Turner type
Is this one disorder or two?

@ahamosh Can you weigh in on this OMIM merge where others have maintained separate records for these X-linked disorders?

cc @galyea-gard

After reviewing these we will retire the Brooks Wisniewski Brown syndrome (when we finish updating) and leave only the Turner type, now that the molecular cause was found.  Thank you Nicole!

@galyea-gard thanks! What is the GARD ID for the Turner type?

Hi Nicole!  It is 5604.  Thank you! Gioconda
From: Nicole Vasilevsky<EMAIL_ADDRESS>Sent: Thursday, November 5, 2020 5:54 PM
To: monarch-initiative/mondo<EMAIL_ADDRESS>Cc: Alyea, Gioconda (NIH/NCATS) [C]<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [monarch-initiative/mondo] Brooks Wisniewski Brown syndrome and MENTAL RETARDATION, X-LINKED, SYNDROMIC, TURNER TYPE; MRXST (#696)
@galyea-gardhttps://github.com/galyea-gard thanks! What is the GARD ID for the Turner type?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/monarch-initiative/mondo/issues/696#issuecomment-722691795, or unsubscribehttps://github.com/notifications/unsubscribe-auth/APG3MG5N2OUJE5FACUL25S3SOMUKBANCNFSM4HL4NQWQ.


DSPDC-181 Add NeMO archive to featured datasets.

The link takes you to the NeMO homepage, which shows some summary info:

From there, users can search for relevant info:

They can then add files to their "Download Cart", and select to export to Terra instead of generating a download manifest:

@zarsky-broad done! Thanks for the suggestion.

@zarsky-broad do you see any errors in your console / network tab when you click the button? It's working for me in both FF and Chrome (there's a slight delay between click and redirect, but it gets there eventually)

My steps: from here click add all files to cart, then click export to Terra. I see a 500 in the console.

Thanks! I'll report it back to NeMO.


Unit test documentation

Add documentation for unit tests using fake client.

PR here: https://github.com/redhat-developer/odo/pull/612


[WIP] convert style1 class tables to form-horizontal class layout

Issue: #3139

Can you rebase and see if the bot plays nice now that #3166 has been merged?

@Fryguy Doesn't seem to have helped

@skateman I'm not sure your changed to the bot worked...I'll check what the bot actually does, but for some reason it doesn't seem to be using the .haml-lint file?

@Fryguy what is the base folder where the haml-lint is called? Because it searches for the .haml-lint.yml only in that folder, but the config file can be also specified explicitly by the -c argument!

@epwinchell Is this PR a WIP (as the title says)?

@chessbyte Yes

@fryguy @skateman any progress with the linter?

@epwinchell I did my best, but I don't know if my fix is used in the running bot

@epwinchell haml-lint works perfectly, you should fix those errors ;)


How can I log off the engine, scenario, instance of Babylon.

I looked up the API and couldn't find what I wanted，I hope you can remind me

I am not totally sure what you are trying to accomplish but as the issue template mentions, we are keeping Github for validated bugs or feature request only.
Please discuss it first in our forum on https://forum.babylonjs.com/


Release droid modifies a release date automatically

Problem
It will save us some time if the release robot automatically updates and commits the release date in the changes file on the RELEASE goal.

Clever idea. But this would be the first time where RD modifies sources.

It means we can add more useful functionality later if this feature works fine


Update link to new org

Why are these changes needed?
Links to new org

Related issue number

Checks

[x] I've included any doc changes needed for https://autogen-ai.github.io/autogen/. See https://autogen-ai.github.io/autogen/docs/Contribute#documentation to build and test documentation locally.
[ ] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[ ] I've made sure all auto checks have passed.

The dotnet CI failed. Shall we move the dotnet code out to a different repo?

The dotnet CI failed. Shall we move the dotnet code out to a different repo?

Yes, we can do that in a different PR.


Create a CI job to run the benchmarks periodically.

Since the benchmarks are going to take a while, it may make sense to run them nightly.

There's a CI process running nightly now.


Reddit NHL Streams - NHL Streams Reddit NHL Streams | Live NHL Streams

The New Jersey Devils (9-5-2) and the New York Islanders (6-6-2) hit the ice in Elmont, New York on November 9, 2024 at UBS Arena, starting at 7:30 PM ET on ESPN+. The Devils are third (with 20 points) and the Islanders ninth (14 points) in the Eastern Conference.
The last time these teams played, New York won 4-3 in overtime.
You can tune in to see the Devils look to take down the the Islanders on MSG.
Watch Devils vs. Islanders and NHL originals on ESPN+!
Devils vs. Islanders TV and live stream details
Date: Saturday, November 9, 2024
Time: 7:30 PM ET
Location: Elmont, New York
Venue: UBS Arena
TV channel: MSG, Available on Fubo (Watch for free)
Watch the NHL on Fubo!
Gannett may earn revenue from sports betting operators for audience referrals to betting services. Sports betting operators have no influence over nor are any such revenues in any way dependent on or linked to the newsrooms or news coverage. Terms apply, see operator site for Terms and Conditions. If you or someone you know has a gambling problem, help is available. Call the National Council on Problem Gambling 24/7 at 1-800-GAMBLER (NJ, OH), 1-800-522-4700 (CO), 1-800-BETS-OFF (IA), 1-800-9-WITH-IT (IN). Must be 21 or older to gamble. Sports betting and gambling are not legal in all locations. Be sure to comply with laws applicable where you reside.

cv

cvcv


(maint) Make it possible to capture logs of test runs

When tests are failing, it is often useful to capture Puppet's logs of the
test run. This change makes it possible to send the log to a file, and to
adjust Puppet's log level.
Thanks to Josh Cooper for pointing out how to do this

$ env PUPPET_TEST_LOG=/tmp/log.txt bundle exec rake parallel:spec
...
Finished in 1 minute 12.57 seconds
18699 examples, 0 failures, 43 pending

generates:
$ head -n 5 /tmp/log.txt
2015-02-03 21:38:58 -0800 Puppet (notice): *** BEGIN TEST ./spec/integration/defaults_spec.rb:63
2015-02-03 21:38:58 -0800 Puppet (notice): *** BEGIN TEST ./spec/integration/defaults_spec.rb:67
2015-02-03 21:38:58 -0800 Puppet (notice): *** BEGIN TEST ./spec/integration/defaults_spec.rb:71
2015-02-03 21:38:58 -0800 Puppet (notice): *** BEGIN TEST ./spec/integration/defaults_spec.rb:75
2015-02-03 21:38:58 -0800 Puppet (notice): *** BEGIN TEST ./spec/integration/defaults_spec.rb:80

CLA signed by all contributors.


JSON decode issues when string entries contain \ characters

Reported by @sysfab: https://discord.com/channels/355905150528913409/766205280353648640/1279112722906353784

@sysfab I did find escaping errors in the encoder.
But, I believe you still need to manually escape the \ in your string, it should be:
"cubic-dungeons\\client.lua > New section \"START\" ...
Imagine if client.lua was tadam.lua, how would the parser make a difference between path separator \ and tab character \t? (cubic-dungeons\tadam.lua)

@aduermael my string is fine, it already has escaped characters, it the lua it works, but in json it`s not


Fix code of conduct url in README.rst

Hi there ! The link to the code of conduct was broken. This fixes it :)
Successful PR Checklist:

[x] Tests

[x] not applicable

[x] Documentation

[x] not applicable

Thanks again !

Of course ! Thanks for this great project ☺


feat(utils): add custom codes support

According to BAI specification document custom codes are not defined and not necessarily supported, but they may fail the parsing flow. On the other hand, we can't map them to anything specific, since different banks map them to different descriptions and codes.
This PR suggests mapping them to type codes with predefined messages but provided code values

@ushkarev I'll appreciate your review and thoughts on this PR

hi @forforeach, apologies for the super-late reply – unfortunately we don’t often have time to look at pull requests! firstly, thanks for this suggestion! i’ve had a look at the spec you reference and i totally see what you’re getting and think we should handle the custom codes situation if we can, but i’ve got a few questions!
do you have any sample records or files that you can share with custom codes? if you do, please redact any names etc!
i know records to the effect of 16,930,1500000,1,DD1620,,DEALER PAYMENTS appear throughout tests, but who knows how realistic they really are!
when instantiating TypeCodes in the 920-959 range, shouldn’t the second argument be TypeCodeTransaction.credit instead of None? similarly, TypeCodeTransaction.debit in the 960-999 range? or is there a good case to use None instead?
as for the third argument, you always have it to TypeCodeLevel.detail even though the records could be summaries according to the name (i.e. TypeCodeLevel.summary). this might well be the only option and i don’t know the file format at all, but do you know if this could be determined from context? for example: when building TransactionDetail, the transaction level is set to TypeCodeLevel.detail (as you have it now) but when building AccountIdentifier it ought to be set to TypeCodeLevel.summary instead?? i ask because the spec suggests that activity summaries can only appear once in “03” records…


ModuleNotFoundError

Hello. I am trying to run the OP.py file to test out openpose and keep getting an error. I have correctly installed Openpose and have tested it on my computer. I made sure BUILD_PYTHON was enabled and still am getting this error. I believe the error has to do with the file path I am using, however, I'm not sure what the correct path would be. Currently, my tello-openpose-master folder is located in the same folder as my openpose-master folder: D:\Dev. This is the error I am getting:
D:\Dev\Python\python.exe D:/Dev/tello-openpose-master/OP.py
Error: OpenPose library could not be found. Did you enable BUILD_PYTHON in CMake and have this Python script in the right folder?
Traceback (most recent call last):
File "D:/Dev/tello-openpose-master/OP.py", line 33, in
raise e
File "D:/Dev/tello-openpose-master/OP.py", line 24, in
import pyopenpose as op
ModuleNotFoundError: No module named 'pyopenpose'
Process finished with exit code 1
Any help would be appreciated. Thank you!

Probably late on this one, but I had the same issue. Navigating to '../openpose/build/python' and running 'make install' resolved the problem. Basically the python module for pyopenpose was not built and linked.
This is a link to the official doc on the issue.
Hope it helps!


Histogram of counts and bin method

Say you have a two column table of values:

You can draw an overlain histogram (thanks Sam — this PR fixes a weird legend labeling issue):

Now you can also bin all values to create a table of counts:

And a table that contains multiple columns of counts for the same values (or ranges) can be plotted as a histogram. Note that this changes the behavior of the counts argument of hist to actually make sense... now you pass the column of values that are counted rather than the column of counts.

Resolves #54

This looks great! Thanks John.

Looks like we can discard the table2hist branch.  bin does a better job of
creating a histogram table.
David E. Culler
Friesen Professor of Computer Science
Electrical Engineering and Computer Sciences
University of California, Berkeley
On Sun, Sep 27, 2015 at 2:54 PM, Sam Lau<EMAIL_ADDRESS>wrote:

Merged #86 https://github.com/dsten/datascience/pull/86.
—
Reply to this email directly or view it on GitHub
https://github.com/dsten/datascience/pull/86#event-420262528.


fix: enable TeamsInfo methods to work with CloudAdapter

#minor
Description
Many of the TeamsInfo methods fail with "This method requires a connector client." when using CloudAdapter. This is because most of them have a check for adapter.createConnectorClient(), which doesn't exist in CloudAdapter.
Specific Changes
Align JS TeamsInfo with .NET by having the adapter get pulled from the TurnState.
Testing
This also required a lot of testing changes since the adapter didn't exist on the TurnState in the tests. The JS tests now manually add the adapter to the TurnState, as also done in .NET.

Pull Request Test Coverage Report for Build 986804742

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.001%) to 83.752%

Files with Coverage Reduction
New Missed Lines
%

libraries/botbuilder-lg/src/templateExtensions.ts
1
84.48%

Totals

Change from base Build 980695683:
0.001%

Covered Lines:
19517

Relevant Lines:
22078

💛  - Coveralls


Using trickster causes grafana bar graph widths to fluctuate

Has anyone else got this problem? Trickster fixed my issues with graphs fluctuating wildly between refreshes, but now the bar widths themselves fluctuate.
It seems like graphana uses the distance between the first 2 points to get the width? could/should this be fixed?

Hey @frankh  would you mind posting some screen shots to demonstrate the issue?  Thank you!

It is a bug in grafana.
Grafana itself now in master has removed the fluctuating graph problem.

Closing as per Julien's note ^. Thank you!

FTR this is with prometheus+grafana master

Thanks @roidelapluie, would you mind linking the grafana issue/pr/commit for this?

Hi, I realise this is an old issue but it's happening to me now. I can hit refresh over and over and get differing bar widths on each refresh. I'm on Grafana 6.2.5.
My suspicion is that it is something to do with the "Step boundary normalization" stuff, as the width in grafana is based off the aggregation period, which shouldn't be changing on each refresh. If I take trickster out of the equation it all works fine.

After some testing, I've found that the issue is still reproducible, but only on large time ranges > 12 hours. At a lower time interval the graphs look identical to vanilla prometheus.

Disabling the fast-forward feature has no impact

Adding another data point to this issue, also seems related to using fast-forward.
https://github.com/Comcast/trickster/issues/92
Trickster version: 0.1.10
Grafana version: 6.3.5
I'm using a heatmap to visualize a histogram over time, and the following graphical error occurs:

The bars do not fill the whole width of their buckets. When this happens, the query response looks like this:
"url": "api/datasources/proxy/47/api/v1/query_range?query=sum(rate(traefik_backend_request_duration_seconds_bucket%7Bbackend%3D~%22backend-.*%22%2C%20protocol!%3D%22websocket%22%7D%5B300s%5D))%20by%20(le)&start=1569076500&end=1569087300&step=300"
            [
<PHONE_NUMBER>,
              "7785.367134010938"
            ],
            [
<PHONE_NUMBER>,
              "7747.348148148145"
            ],
            [
<PHONE_NUMBER>,
              "7725.307407407405"
            ]

The last data point in the series is not aligned with the query step. Query directly against (another) Prometheus:
"url": "api/datasources/proxy/15/api/v1/query_range?query=sum(rate(traefik_backend_request_duration_seconds_bucket%7Bbackend%3D~%22backend-.*%22%2C%20protocol!%3D%22websocket%22%7D%5B300s%5D))%20by%20(le)&start=1569087300&end=1569088200&step=300"
            [
<PHONE_NUMBER>,
              "0.28421052631578947"
            ],
            [
<PHONE_NUMBER>,
              "0.2631578947368421"
            ],
            [
<PHONE_NUMBER>,
              "0.28421052631578947"
            ]

I suspect this is an artifact caused by fast-forward, because selecting a fixed timespan in the past never causes this. From my limited understanding, fast-forward should only update the value associated with the last point in the series, the timestamp of the point should be fixed and aligned with the step value requested in the query.
Looking forward to being able to run a 1.x release!


How to keep session alive when using async websockets?

I have this code to interact with a websocket api using async and websokets python libraries:
#!/usr/bin/env python3

import sys, json
import asyncio
from websockets import connect

class AsyncWebsocket():
    async def __aenter__(self):
        self._conn = connect('wss://ws.myws.com/v2')
        self.websocket = await self._conn.__aenter__()
        return self

    async def __aexit__(self, *args, **kwargs):
        await self._conn.__aexit__(*args, **kwargs)

    async def send(self, message):
        await self.websocket.send(message)

    async def receive(self):
        return await self.websocket.recv()

class mtest():
    def __init__(self, api_token):
        self.aws        = AsyncWebsocket()
        self.loop       = asyncio.get_event_loop()
        self.api_token  = api_token

        self.authorize()

    def authorize(self):
        jdata = self.__async_exec({
                                    'authorize': self.api_token
                                  })

        try:
            print (jdata['email'])
            ret = True
        except:
            ret = False

        return ret

    def sendtest(self):

        jdata = self.__async_exec({
                                    "hello": 1
                                  })

        print (jdata)

    def __async_exec(self, jdata):
        try:
            ret = json.loads(self.loop.run_until_complete(self.__async_send_recieve(jdata)))
        except:
            ret = None

        return ret

    async def __async_send_recieve(self, jdata):
        async with self.aws:
            await self.aws.send(json.dumps(jdata))
            return await self.aws.receive()

So I have the following in main.py:
from webclass import *

a = mtest('12341234')
print (a.sendtest())

The problem is that it doesn't preserve the authorized session, so this is the output:
root@ubupc1:/home/dinocob# python3 test.py
<EMAIL_ADDRESS>{'error': {'message': 'Please log in.', 'code': 'AuthorizationRequired'}}

As you see, the login call are working ok, but when calling and sending the hello in sendtest function, the session is not the same.

Where is destroyed the session?
How could I preserve it (without drastically
modifying my class structure)?

I'm sorry, I'm not sure how I can help you.
You're going to great lengths to avoid asyncio's coroutine-based programming models, depriving yourself from its benefits — which you then miss.
Generally speaking classes don't work well with asyncio, you should maintain state in the local variables of your coroutines (or explicitly in shared state containers).
Write a corountine that opens the connection and calls other corountines to do whatever it needs to do. Then call asyncio.get_event_loop().run_until_complete(your_coroutine). That must be the entrypoint of your whole program.
Your __async_exec method is actually synchronous, since it blocks until the event loop finishes, so I suspect you're still quite confused about how asyncio works.
Finally I have no idea how the server you're interacting with maintains sessions, making it hand to answer questions like "where is the session detroyed?"

To sum up:

Your class structure may be appropriate for a callback-based programming model.
The point of asyncio is to provide a higher-level, coroutine-based programming model.
The point of websockets is to provide a coroutine-based API for websocket connections.
You should either embrace the coroutine model or not use tools designed for this model.


[FLINK-3919][flink-ml] Distributed Linear Algebra: row-based matrix

First PR of the Distributed Linear Algebra contribution.
It contains a minimal implementation of a row-based distributed matrix and the following operations:
Build from COO
Conversion from distributed to:

local dense format
local sparse format
local COO format.

by-row UDF on two matrices
sum
subtraction

Hi @chobeat, thanks for opening pull request. I would like to shepherd this PR.

There are some public methods (sum, subtract, byRowOperation, etc.) without scaladoc. Please add scaladoc for the methods.

Hi @chobeat, thanks for update PR. After addressing comments on source code, I think the last thing to merge this is adding documentation for this. But you can add the documentation after block-based matrix is merged.

@chiwanpark Yeah I thought I could write the documentation as a third PR but I would like to review the block matrix first because it may change in structure. Anyway I will soon begin working on a doc page with the general structure and some examples for the row-based matrix.

@chiwanpark before merging I need to go over the numRows/numCols issue again because I noticed they create problems in another project of mine. I think that the collect() there is too risky and obscure so I would like to refactor it. I'm working on it right now.

@chiwanpark I think it should be better to leave to the user the computation of the dimensionality. I tried different options and all of them are sub-optimal. I would leave this feature for later as a next step if it's ok.

@chobeat Okay. Then we should force user to calculate dimensionality of matrix by changing type of number parameters in constructor.

Looks good to me, +1. I'll merge this in few hours.
But I think we should change the type of row index to Long in near future. I think we can deal with the incompatibility problem with local matrices by assuming that the number of rows is less than Int.MaxValue and converting row index type from Long to Int in collecting time. I'll submit an issue related to this to JIRA after merge this.


(Re-)activate GitHub Release

Had problems setting up GitHub release, because single src files were added separately instead of zipped src.

closing this as it is not needed really


Swap DH_GOPKG for XS-Go-Import-Path

@mika reports that this breaks building for jessie, because the dh-golang version in jessie is too old: http://paste.grml.org/2611/
@tianon Are there any downsides to generating both statements for backwards-compatibility?


add a remote profiling server for eventlet

This pull request adds a remote profiling server for people using eventlet.  It is similar to the gevent one.

Thanks to send the pull request.
This change spends many lines for re-implementation of parts of gevent. Would you find a more eventlet-ish way?
By the way, we already have SelectProfilingServer. Wasn't it enough for you? I think this can be together with eventlet if it has been monkey-patched.


[website] Using docsy instead GitHub style Note.

What type of PR is this?
/kind documentation

What this PR does / why we need it:
Using docsy instead GitHub style Note.
Which issue(s) this PR fixes:

Fixes #1755
Special notes for your reviewer:
Does this PR introduce a user-facing change?

NONE

/cc @tenzen-y

/approve
/cherry-pick release-0.8

/ approve / cherry-pick release-0.8

Maybe website?

/cherry-pick website

/ approve / cherry-pick release-0.8

Maybe you mean website?

Yes, thanka


Quick questions before using it

Hey! I've been playing with PostGraphQL v2 today to see if I can use it for a project. For now it looks like it's a good fit. But I have a few questions:

I need to limit access to some data depending on the user. For example, a user can only access his projects. What solution do you advise to have ACL using PostGraphQL?
Can we use default GraphQL mutations? I tried but no way to make them work. The only way I've found for mutations is using the PostgreSQL procedures like written in the doc.
Regarding the PostgreSQL procedures, how should we version them? What's your experience about it? I never used it.
Can we have automatic lifecycle events? For example, trigger a createProject mutation every time a createUser mutation is called.

Awesome project!
Thank you for your time.

Hey @mytototo, glad you are interested :blush:
Before I answer your questions, I wasn’t planning on releasing this yet but you have a couple questions which this could answer. With the PostGraphQL 2 release I also want to release a Postgres schema design tutorial which will go over in depth the process of designing a schema for PostGraphQL.  It should be done by next Monday. I’ll reference sections applicable to you in the answers below 👍

Of course! Postgres 9.5+ has rich Row Level Security (RLS) functionality which you can leverage with PostGraphQL. I haven’t gotten to this point in the article I’m writing yet, but there’s a great example of RLS in the Relay example (#66) @ferdinandsalis is working on.
I assume what you mean by this is mutations where the input is flattened out as arguments and the output is returned directly instead of in a payload field? We follow the Relay Input Object Mutations specification when it comes to mutations, but that doesn’t mean you have to use Relay! The thing about Relay specifications, and this includes the connection specification, is that they aren’t just Relay requirements, but also best practice GraphQL. In this case, it is actually incredibly handy that there is only one argument in the input argument because you can just pass in a JavaScript object instead of coordinating arguments in the GraphQL syntax. It may look like query X($a: Int, $b: Int, $c: Int...), but instead it is just query X($input: CreatePersonInput). As for the payload it is incredibly helpful to have the capability to add extra fields. This can allow mutations to return multiple things. I’d love to hear what your idea for what mutations should look like is, and I’d be happy to add a flag if enough people want it. However, I really do think the Relay specification nailed it for mutations.
You’d version your procedures similar to how you version the rest of your schema. When you want to change an implementation, just drop and replace! The CREATE FUNCTION command also lets you specify create or replace function …. In a migration file you can just create or replace your functions as needed. In your “down” migration you’d probably want to copy/paste the old implementation. To be honest, there is no great solution for this, and the SQL migration tool landscape is fragmented. I’d be happy to endorse a solution from the community!
As for automatic lifecycle events, these come native in Postgres. Just use a trigger :blush:. In the article I’m writing there is a section addressing triggers. The command you would use is called CREATE TRIGGER. If you would like to do extra work in a Node.js worker, you could also use the Postgres NOTIFY feature with a package like pg-pubsub. The advantage to this approach is that you get all events generated by Postgres, not just those that go through PostGraphQL. It may also be easier to scale the services separately. I do foresee PostGraphQL adding lifecycle events in the future if we want to support MySQL, but that’s a rather long ways away.

Hope that helps :+1:

Thank you very much for your quick and well detailed answer @calebmer.

If I understand correctly, you advise me to use the PostgreSQL RLS with PostGraphQL, right? I saw the example but it seems a bit abstract for me. Do you have a little example?
I looked for a query using something like CreatePersonInput but I couldn't find one working...
Looks like a good option you're right. Thanks!
Awesome. I'll take a look at it.

Thank you very much.

@calebmer On 2, I was trying to figure out mutations yesterday in GraphiLQ and couldn't get anything to work. Reading the GraphQL docs wasn't working (query X($a: Int, $b: Int, $c: Int...)). Now that you pointed out the Relay link, https://facebook.github.io/relay/graphql/mutations.htm, I might be able to get it to work.
Please inlucde some mutations examples in the forum_example docs:
https://github.com/calebmer/postgraphql/tree/master/examples/forum#sample-queries

@mytototo For 1, take a look at this example: http://postgrest.com/examples/blog/

Thanks @mytototo and @bendiy.
For 1, definitely look at the PostgREST example @bendiy linked, it’s great. Also check out the Postgres documentation for the CREATE POLICY command :+1:
As for example mutations in 2, the queries in the postgraphql/src/postgraphql/__tests__/fixtures/queries directory (yes I know, a little hard to find…) are great working examples. Note that these are tests, so they aren’t always pretty :wink:. I’ll definitely find a place to put good example queries.
I’ll paste some from the tests here though for now:
Updates
mutation {
  a: updatePerson(input: {
    __id: "WyJwZW9wbGUiLDFd",
    personPatch: {
      name: "John Smith Sr."
      about: "An older John Smith"
    }
  }) { ...updatePersonPayload }
  b: updatePerson(input: {
    clientMutationId: "hello"
    __id: "WyJwZW9wbGUiLDJd",
    personPatch: {
      name: "Sarah Smith"
      email<EMAIL_ADDRESS>    }
  }) { ...updatePersonPayload }
  c: updatePerson(input: {
    clientMutationId: "world"
    __id: "WyJwZW9wbGUiLDJd"
    personPatch: {
      about: "Now with an “H.”"
    }
  }) { ...updatePersonPayload }
  d: updatePersonById(input: {
    id: 3
    personPatch: {
      name: "Best Pal"
      about: "I have taken over Budd’s account. Hehehe."
    }
  }) { ...updatePersonPayload }
  e: updatePersonByEmail(input: {
    email<EMAIL_ADDRESS>    personPatch: {
      about: "Make art not friends."
    }
  }) { ...updatePersonPayload }
  f: updateCompoundKey(input: {
    __id: "WyJjb21wb3VuZF9rZXlzIiwxLDJd"
    compoundKeyPatch: {
      personId1: 2
      extra: true
    }
  }) { ...updateCompoundKeyPayload }
  g: updateCompoundKeyByPersonId1AndPersonId2(input: {
    clientMutationId: "hello"
    personId1: 2
    personId2: 2
    compoundKeyPatch: {
      personId1: 3
      extra: false
    }
  }) { ...updateCompoundKeyPayload }
  h: updateCompoundKeyByPersonId1AndPersonId2(input: {
    clientMutationId: "world"
    personId1: 4
    personId2: 3
    compoundKeyPatch: {
      extra: false
    }
  }) { ...updateCompoundKeyPayload }
}

fragment updatePersonPayload on UpdatePersonPayload {
  clientMutationId
  person {
    __id
    id
    name
    email
    about
  }
}

fragment updateCompoundKeyPayload on UpdateCompoundKeyPayload {
  clientMutationId
  compoundKey {
    __id
    personId1
    personId2
    extra
    personByPersonId1 {
      id
      name
    }
    personByPersonId2 {
      id
      name
    }
  }
}

Deletes
mutation {
  a: deletePost(input: { __id: "WyJwb3N0cyIsMV0=" }) { ...deletePostPayload }
  b: deletePost(input: { __id: "WyJwb3N0cyIsMl0=", clientMutationId: "hello" }) { ...deletePostPayload }
  c: deletePost(input: { __id: "WyJwb3N0cyIsMjAwMF0=" }) { ...deletePostPayload }
  d: deletePost(input: { __id: "WyJwb3N0cyIsM10=", clientMutationId: "world" }) { ...deletePostPayload }
  e: deletePostById(input: { id: 6 }) { ...deletePostPayload }
  f: deletePostById(input: { id: 9, clientMutationId: "hello" }) { ...deletePostPayload }
  g: deletePostById(input: { id: 2000 }) { ...deletePostPayload }
  h: deletePostById(input: { id: 11, clientMutationId: "world" }) { ...deletePostPayload }
  i: deleteCompoundKey(input: { __id: "WyJjb21wb3VuZF9rZXlzIiw0LDNd" }) { ...deleteCompoundKeyPayload }
  j: deleteCompoundKeyByPersonId1AndPersonId2(input: { personId1: 2, personId2:3 }) { ...deleteCompoundKeyPayload }
	k: deletePersonByEmail(input: { email<EMAIL_ADDRESS>}) { ...deletePersonPayload }
}

fragment deletePostPayload on DeletePostPayload {
  clientMutationId
  deletedPostId
  post {
    __id
    id
    headline
    authorId
  }
}

fragment deleteCompoundKeyPayload on DeleteCompoundKeyPayload {
  clientMutationId
  deletedCompoundKeyId
  compoundKey {
    __id
    personId1
    personId2
    personByPersonId1 {
      __id
      name
    }
    personByPersonId2 {
      __id
      name
    }
  }
}

fragment deletePersonPayload on DeletePersonPayload {
  clientMutationId
  deletedPersonId
  person {
    __id
    id
    name
    email
  }
}

Creates
mutation {
  a: createType(input: {
    type: {
      id: 201
      smallint: 30
      bigint: 50
      boolean: false
      varchar: "abc"
      enum: RED
      domain: 6
      domain2: 5
      textArray: ["have", "you", "ever", "been", "down", "the", "water", "spout", "?"]
      json: "{\"x\":1,\"y\":2,\"z\":3}"
      jsonb: "{\"a\":1,\"b\":2,\"c\":3}"
      numrange: {
        start: { value: 50, inclusive: true }
      }
      daterange: {
        start: { value: "1927-11-05", inclusive: false }
        end: { value: "1927-11-07", inclusive: false }
      }
      anIntRange: {
        end: { value: 500, inclusive: false }
      }
      timestamp: "2016-10-07 16:12:21.747269"
      timestamptz: "2016-10-09 16:12:45.218676-04"
      date: "2016-10-15"
      time: "19:13:18.625699"
      timetz: "13:13:29.585176"
      interval: {
        seconds: 1
        minutes: 2
        hours: 3
        days: 4
        months: 5
        years: 6
      }
      money: 5000
      compoundType: {
        a: 123,
        b: "abc"
        c: GREEN
        d: "ec4a9fae-4ec5-4763-98eb-0327fb2dc9bf"
        fooBar: 20
      }
      nestedCompoundType: {
        a: {
          a: 456
          b: "def"
          c: BLUE
          d: "79863dcf-0433-4c3d-bc51-978326d4546f"
          fooBar: 42
        }
        b: {
          a: 789
          b: "ghi"
          c: RED
          d: "b687ee42-c515-4544-b742-525e39517e7d"
          fooBar: -8
        }
        bazBuz: 0
      }
    }
  }) {
    clientMutationId
    type {
      __id
      id
      smallint
      bigint
      boolean
      varchar
      enum
      domain
      domain2
      textArray
      json
      jsonb
      numrange {
        start { value inclusive }
        end { value inclusive }
      }
      daterange {
        start { value inclusive }
        end { value inclusive }
      }
      anIntRange {
        start { value inclusive }
        end { value inclusive }
      }
      timestamp
      timestamptz
      date
      time
      timetz
      interval { seconds minutes hours days months years }
      money
      compoundType { a b c d fooBar }
      nestedCompoundType {
        a { a b c d fooBar }
        b { a b c d fooBar }
        bazBuz
      }
    }
  }
  b: createPerson(input: {
    person: {
      id: 9000
      name: "John Smith Jr."
      email<EMAIL_ADDRESS>      about: "Son of Sara and John Smith."
    }
  }) { ...createPersonPayload }
  c: createPerson(input: {
    clientMutationId: "hello",
    person: {
      id: 20
      name: "Best Pal"
      email<EMAIL_ADDRESS>      about: "My archnemisis is Budd Deey."
    }
  }) { ...createPersonPayload }
  d: createCompoundKey(input: {
    clientMutationId: "world",
    compoundKey: {
      personId1: 9000
      personId2: 20
      extra: false
    }
  }) {
    clientMutationId
    compoundKey {
      __id
      personId1
      personId2
      extra
      personByPersonId1 {
        __id
        name
      }
      personByPersonId2 {
        __id
        name
      }
    }
    personByPersonId1 {
      __id
      name
    }
    personByPersonId2 {
      __id
      name
    }
  }
  e: createEdgeCase(input: {
    edgeCase: {
      notNullHasDefault: true
    }
  }) {
    edgeCase {
      notNullHasDefault
    }
  }
  f: createEdgeCase(input: {
    edgeCase: {}
  }) {
    edgeCase {
      notNullHasDefault
    }
  }
}

fragment createPersonPayload on CreatePersonPayload {
  clientMutationId
  person {
    __id
    id
    name
    email
    about
  }
  a: personEdge(orderBy: PRIMARY_KEY_ASC) { ...peopleEdge }
  b: personEdge(orderBy: PRIMARY_KEY_DESC) { ...peopleEdge }
  c: personEdge(orderBy: ID_ASC) { ...peopleEdge }
  d: personEdge(orderBy: ID_DESC) { ...peopleEdge }
  e: personEdge(orderBy: EMAIL_ASC) { ...peopleEdge }
  f: personEdge(orderBy: EMAIL_DESC) { ...peopleEdge }
  g: personEdge(orderBy: NATURAL) { ...peopleEdge }
}

fragment peopleEdge on PeopleEdge {
  cursor
  node {
    __id
    name
  }
}

Using v2.0
Run the forum_example schema:
https://github.com/calebmer/postgraphql/blob/next/examples/forum/schema.sql
See bug here:
https://github.com/calebmer/postgraphql/pull/145#discussion_r83100172

Add data to the tables:
forum_example.person

INSERT INTO person (id, first_name, last_name, about, created_at, updated_at) VALUES
('e5bc0440-7cdc-4bbf-922b-42ece0e7ed01', 'Kathryn', 'Ramirez', NULL, '2016-10-12 14:42:12.267381', NULL)
('96e1d1e2-b291-4e8a-972a-462bd8996b29', 'Johnny', 'Tucker', NULL, '2016-10-12 14:42:12.267381', NULL)
('e71aea31-14e1-4fa0-9c7c-fa0a64349cf2', 'Nancy', 'Diaz', NULL, '2016-10-12 14:42:12.267381', NULL)
('5d1ad664-cb91-482d-b94e-1c1e185da13a', 'Russell', 'Gardner', NULL, '2016-10-12 14:42:12.267381', NULL)
('7e7f2ae2-0248-4324-9be7-2fd329f01999', 'Ann', 'West', NULL, '2016-10-12 14:42:12.267381', NULL)
('dd8b54f8-e4c4-4b78-b733-bae0f94ade90', 'Joe', 'Cruz', NULL, '2016-10-12 14:42:12.267381', NULL)
('62cf9a8e-1be7-4b5f-8241-72d3985677b2', 'Scott', 'Torres', NULL, '2016-10-12 14:42:12.267381', NULL)
('c244d56f-34a5-49de-85bc-2e1b87dbe1e8', 'David', 'Bell', NULL, '2016-10-12 14:42:12.267381', NULL)
('0d6d797d-d689-46fc-80c1-b491d5171736', 'Carl', 'Ward', NULL, '2016-10-12 14:42:12.267381', NULL)
('239f5e8a-1fab-4d40-abc2-2badd03735b7', 'Jonathan', 'Campbell', NULL, '2016-10-12 14:42:12.267381', NULL)
('6b7be995-1347-4391-a44e-ea019019787c', 'Beverly', 'Kelly', NULL, '2016-10-12 14:42:12.267381', NULL)
('9b2c06d4-a6ca-4d2f-9061-07618e81faaf', 'Kelly', 'Reed', NULL, '2016-10-12 14:42:12.267381', NULL)
('7a93ebaa-46cb-4221-bc74-3edc29f500f8', 'Nicholas', 'Perry', NULL, '2016-10-12 14:42:12.267381', NULL)
('d657dbc8-ab82-4415-a52c-1eaa4118eb26', 'Carol', 'Taylor', NULL, '2016-10-12 14:42:12.267381', NULL);

forum_example.post
INSERT INTO post (id, author_id, headline, topic, body, created_at, updated_at) VALUES
('b95287a8-03d3-45c6-91ce-88bb33d49fb8', '239f5e8a-1fab-4d40-abc2-2badd03735b7', 'No… It’s a thing; it’s like a plan, but with more greatness.', NULL, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut ullamcorper, sem sed pulvinar rutrum, nisl dui faucibus velit, eget sodales urna mauris nec lorem. Vivamus faucibus augue sit amet semper fringilla. Cras nec vulputate eros. Proin fermentum purus posuere ipsum accumsan interdum. Nunc vitae urna non mauris pellentesque sodales vel nec elit. Suspendisse pulvinar ornare turpis ac vestibulum. Cras eu congue magna. Nulla vel sodales enim, vel semper dolor. Curabitur pellentesque dolor elit. Aenean cursus posuere dui, vitae mollis felis rhoncus ac. In at orci a erat congue consequat ut sed risus. Etiam euismod elit eu lobortis varius. Praesent lacinia lobortis nisi, vel faucibus turpis sodales in.  It’s just stuff with bits in.', 'inspiration', NULL, '2016-10-12 14:44:19.062302', NULL)
('736de26d-35f8-4cdd-83a5-9fea9d416884', '0d6d797d-d689-46fc-80c1-b491d5171736', 'You hit me with a cricket bat.', NULL, NULL, '2016-10-12 14:44:19.062302', NULL)
('041ce051-5e3f-4e36-a5eb-6d6d0e0c76d8', '6b7be995-1347-4391-a44e-ea019019787c', 'Please, Don-Bot… look into your hard drive, and open your mercy file!', NULL, NULL, '2016-10-12 14:44:19.062302', NULL)
('d3ae23f0-ee30-46c2-8ee4-8ce0b7633969', '5d1ad664-cb91-482d-b94e-1c1e185da13a', 'Stop talking, brain thinking. Hush.', NULL, NULL, '2016-10-12 14:44:19.062302', NULL)
('5d4aa8ae-d861-43b2-bca0-7ed4f57147de', '0d6d797d-d689-46fc-80c1-b491d5171736', 'Large bet on myself in round one.', 'discussion', NULL, '2016-10-12 14:44:19.062302', NULL)
('66d537f4-107f-42e5-8082-1ba425277a8c', '239f5e8a-1fab-4d40-abc2-2badd03735b7', 'It’s a fez. I wear a fez now. Fezes are cool.', 'inspiration', NULL, '2016-10-12 14:44:19.062302', NULL)
('24a75ff8-ec66-4381-9437-0dcdd4fe8885', '5d1ad664-cb91-482d-b94e-1c1e185da13a', 'You know how I sometimes have really brilliant ideas?', NULL, NULL, '2016-10-12 14:44:19.062302', NULL)
('d707dc39-d7fd-4503-b9f1-3a577697e139', '239f5e8a-1fab-4d40-abc2-2badd03735b7', 'What’s with you kids? Every other day it’s food, food, food.', 'discussion', NULL, '2016-10-12 14:44:19.062302', NULL)
('f6e9be1e-1f59-41e0-9d8f-55e44363e1a9', '5d1ad664-cb91-482d-b94e-1c1e185da13a', 'They’re not aliens, they’re Earth…liens!', 'help', NULL, '2016-10-12 14:44:19.062302', NULL)
('b2cbf864-f1b8-4602-b585-fae1fa236cf5', '6b7be995-1347-4391-a44e-ea019019787c', 'You’ve swallowed a planet!', NULL, NULL, '2016-10-12 14:44:19.062302', NULL)
('590d8e09-b679-4ba2-be31-4ddd9cc5546b', '0d6d797d-d689-46fc-80c1-b491d5171736', 'Is that a cooking show?', 'inspiration', NULL, '2016-10-12 14:44:19.062302', '2016-10-13 11:04:37.403943');

Start PostGraphQL server pointing it at the forum_example schema.
Open GraphiQL.
Query all posts:
Query:

query {
  allPosts {
    nodes {
      __id
      id
      authorId
      headline
      topic
      body
    }
  }
}

Results:
{
  "data": {
    "allPosts": {
      "nodes": [
        {
          "__id": "WyJwb3N0cyIsIjA0MWNlMDUxLTVlM2YtNGUzNi1hNWViLTZkNmQwZTBjNzZkOCJd",
          "id": "041ce051-5e3f-4e36-a5eb-6d6d0e0c76d8",
          "authorId": "6b7be995-1347-4391-a44e-ea019019787c",
          "headline": "Please, Don-Bot… look into your hard drive, and open your mercy file!",
          "topic": null,
          "body": null
        },
        {
          "__id": "WyJwb3N0cyIsIjI0YTc1ZmY4LWVjNjYtNDM4MS05NDM3LTBkY2RkNGZlODg4NSJd",
          "id": "24a75ff8-ec66-4381-9437-0dcdd4fe8885",
          "authorId": "5d1ad664-cb91-482d-b94e-1c1e185da13a",
          "headline": "You know how I sometimes have really brilliant ideas?",
          "topic": null,
          "body": null
        },
        {
          "__id": "WyJwb3N0cyIsIjU5MGQ4ZTA5LWI2NzktNGJhMi1iZTMxLTRkZGQ5Y2M1NTQ2YiJd",
          "id": "590d8e09-b679-4ba2-be31-4ddd9cc5546b",
          "authorId": "0d6d797d-d689-46fc-80c1-b491d5171736",
          "headline": "Is that a cooking show?",
          "topic": "INSPIRATION",
          "body": null
        },
...
      ]
    }
  }
}

Mutate a post headline using the GraphiQL QUERY VARIABLES section at the bottom:
Query:

mutation ($input: UpdatePostInput!) {
  updatePost(input: $input) {
    clientMutationId
    post {
      headline
    }
  }
}

QUERY VARIABLES:
{
  "input": {
    "clientMutationId": "something-random-here",
// Note: Get this __id from your allPosts query. It might be different.
    "__id": "WyJwb3N0cyIsIjU5MGQ4ZTA5LWI2NzktNGJhMi1iZTMxLTRkZGQ5Y2M1NTQ2YiJd",
    "postPatch": {
      "headline": "This headline mutated"
    }
  }
}

Result:
{
  "data": {
    "updatePost": {
      "clientMutationId": "something-random-here",
      "post": {
        "headline": "This headline mutated"
      }
    }
  }
}

Alternatively, do it all in the query:
Query:

mutation {
updatePost(input: {
    __id: "WyJwb3N0cyIsIjU5MGQ4ZTA5LWI2NzktNGJhMi1iZTMxLTRkZGQ5Y2M1NTQ2YiJd",
    clientMutationId: "green-slime"
    postPatch: {
      headline: "This headline mutated"
    }
  }) {
    clientMutationId
    post {
      headline
    }
  }
}

Result:
{
  "data": {
    "updatePost": {
      "clientMutationId": "green-slime",
      "post": {
        "headline": "This headline mutated"
      }
    }
  }
}

The documentation article is complete if you want to see it go here: https://github.com/calebmer/postgraphql/blob/787bbe4ee842e0d931989df88acbdb3a88e1c380/examples/forum/tutorial.md
Hopefully it definitely answers some of your questions with examples :blush:
I’m going to close this issue, but feel free to open more as you go :+1:

Thank you all for your answers and support, I appreciate. Your examples definitely helped me a lot. It was a good starting point. However, I'm still wondering: is it possible to perform a mutation using the database id instead of the __id key?

Yes, it is possible. For example a person table with a primay key of id will expose a updatePersonById mutation. This is analogous for delete mutations. Does that answer you question?

Oh I didn't see this one! Thanks a lot, this is what I was looking for.


Build WASM binary for integration test in build script

This improves the process of running integration tests by failing before any tests are run if the're a compilation error in the WASM binary, instead of having them all fail with the once poisoned error.

The build script requires wasm-bindgen, so install it on the Check workflow.


No .d.ts file for typescript

When using typescript, there is no .d.ts type file present anywhere. Adding one would be helpful for other developers.

Would be really helpful indeed to have types provided.

not have type script types in 2023 is pretty poor form ;)

Thanks a lot for your patience @Waterstraal and @bed-sb. We've just pushed a new version that contains a .d.ts file.


Need a simple consultation tdcrypto

@levlam you understand more about message-level crypto.

The user receives a token
Then the user enters an token into the authorization method
It turns out that the token passes there and back through the network
There is a token lifetime
Over the token tls

Now the test:
Users can enter the same token
Maybe somewhere in tdlib there is a scheme for implementing such a mechanism or better.
@levlam How can I protect this token?
Regards

@levlam I'll close it. If you have a good mood, then please respond


Ogre Build failed

C:\Program Files\vcpkg>vcpkg search ogre
ogre                 1.10.11          3D Object-Oriented Graphics Rendering Engine
ogre[d3d9]                            Build Direct3D9 RenderSystem
ogre[java]                            Build Java (JNI) bindings
ogre[python]                          Build Python bindings
If your library is not listed, please open an issue at and/or consider making a pull request:
https://github.com/Microsoft/vcpkg/issues
C:\Program Files\vcpkg>vcpkg install ogre
The following packages will be built and installed:

bzip2[core]:x86-windows
freeimage[core]:x86-windows
freetype[core]:x86-windows
ilmbase[core]:x86-windows
jasper[core]:x86-windows
jxrlib[core]:x86-windows
lcms[core]:x86-windows
libjpeg-turbo[core]:x86-windows
liblzma[core]:x86-windows
libpng[core]:x86-windows
libraw[core]:x86-windows
libwebp[core]:x86-windows
ogre[core]:x86-windows
openexr[core]:x86-windows
openjpeg[core]:x86-windows
tiff[core]:x86-windows
zlib[core]:x86-windows
zziplib[core]:x86-windows
Additional packages (*) will be modified to complete this operation.
Starting package 1/18: zlib:x86-windows
Building package zlib[core]:x86-windows...
A suitable version of git was not found (required v2.17.0). Downloading portable git v2.17.0...
Downloading git...
Downloading git... done.
Extracting git...
A suitable version of 7zip was not found (required v18.1.0). Downloading portable 7zip v18.1.0...
Downloading 7zip...
Downloading 7zip... done.
Extracting 7zip...
A suitable version of nuget was not found (required v4.6.2). Downloading portable nuget v4.6.2...
Downloading nuget...
Downloading nuget... done.
Extracting 7zip... done.
Extracting git... done.
-- CURRENT_INSTALLED_DIR=C:/Program Files/vcpkg/installed/x86-windows
-- DOWNLOADS=C:/Program Files/vcpkg/downloads
-- CURRENT_PACKAGES_DIR=C:/Program Files/vcpkg/packages/zlib_x86-windows
-- CURRENT_BUILDTREES_DIR=C:/Program Files/vcpkg/buildtrees/zlib
-- CURRENT_PORT_DIR=C:/Program Files/vcpkg/ports/zlib
-- Downloading http://www.zlib.net/zlib-1.2.11.tar.gz...
-- Downloading http://www.zlib.net/zlib-1.2.11.tar.gz... OK
-- Testing integrity of downloaded file...
-- Testing integrity of downloaded file... OK
-- Extracting source C:/Program Files/vcpkg/downloads/zlib1211.tar.gz
-- Extracting done
-- Applying patch C:/Program Files/vcpkg/ports/zlib/cmake_dont_build_more_than_needed.patch
-- Applying patch C:/Program Files/vcpkg/ports/zlib/cmake_dont_build_more_than_needed.patch done
-- Downloading https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-win.zip...
-- Downloading https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-win.zip... OK
-- Testing integrity of downloaded file...
-- Testing integrity of downloaded file... OK
-- Configuring x86-windows
-- Configuring x86-windows done
-- Build x86-windows-dbg
-- Build x86-windows-dbg done
-- Build x86-windows-rel
-- Build x86-windows-rel done
-- Installing: C:/Program Files/vcpkg/packages/zlib_x86-windows/share/zlib/copyright
-- Performing post-build validation
-- Performing post-build validation done
Building package zlib[core]:x86-windows... done
Installing package zlib[core]:x86-windows...
Installing package zlib[core]:x86-windows... done
Elapsed time for package zlib:x86-windows: 1.989 min
Starting package 2/18: libjpeg-turbo:x86-windows
Building package libjpeg-turbo[core]:x86-windows...
-- CURRENT_INSTALLED_DIR=C:/Program Files/vcpkg/installed/x86-windows
-- DOWNLOADS=C:/Program Files/vcpkg/downloads
-- CURRENT_PACKAGES_DIR=C:/Program Files/vcpkg/packages/libjpeg-turbo_x86-windows
-- CURRENT_BUILDTREES_DIR=C:/Program Files/vcpkg/buildtrees/libjpeg-turbo
-- CURRENT_PORT_DIR=C:/Program Files/vcpkg/ports/libjpeg-turbo
-- Downloading https://github.com/libjpeg-turbo/libjpeg-turbo/archive/1.5.3.tar.gz...
-- Downloading https://github.com/libjpeg-turbo/libjpeg-turbo/archive/1.5.3.tar.gz... OK
-- Testing integrity of downloaded file...
-- Testing integrity of downloaded file... OK
-- Extracting source C:/Program Files/vcpkg/downloads/libjpeg-turbo-libjpeg-turbo-1.5.3.tar.gz
-- Extracting done
-- Downloading https://github.com/libjpeg-turbo/libjpeg-turbo/commit/bd96b30b74fe166fc94218cfc64a097fafdcc05f.diff...
-- Downloading https://github.com/libjpeg-turbo/libjpeg-turbo/commit/bd96b30b74fe166fc94218cfc64a097fafdcc05f.diff... OK
-- Testing integrity of downloaded file...
-- Testing integrity of downloaded file... OK
-- Applying patch C:/Program Files/vcpkg/ports/libjpeg-turbo/add-options-for-exes-docs-headers.patch
-- Applying patch C:/Program Files/vcpkg/ports/libjpeg-turbo/add-options-for-exes-docs-headers.patch done
-- Applying patch C:/Program Files/vcpkg/ports/libjpeg-turbo/linux-cmake.patch
-- Applying patch C:/Program Files/vcpkg/ports/libjpeg-turbo/linux-cmake.patch done
-- Applying patch C:/Program Files/vcpkg/downloads/libjpeg-turbo-bd96b30b74fe166fc94218cfc64a097fafdcc05f.diff
-- Applying patch C:/Program Files/vcpkg/downloads/libjpeg-turbo-bd96b30b74fe166fc94218cfc64a097fafdcc05f.diff done
-- Downloading http://www.nasm.us/pub/nasm/releasebuilds/2.12.02/win32/nasm-2.12.02-win32.zip...
-- Downloading http://www.nasm.us/pub/nasm/releasebuilds/2.12.02/win32/nasm-2.12.02-win32.zip... OK
-- Testing integrity of downloaded file...
-- Testing integrity of downloaded file... OK
-- Configuring x86-windows
-- Configuring x86-windows done
-- Build x86-windows-dbg
-- Build x86-windows-dbg done
-- Build x86-windows-rel
-- Build x86-windows-rel done
-- Performing post-build validation
-- Performing post-build validation done
Building package libjpeg-turbo[core]:x86-windows... done
Installing package libjpeg-turbo[core]:x86-windows...
Installing package libjpeg-turbo[core]:x86-windows... done
Elapsed time for package libjpeg-turbo:x86-windows: 1.436 min
Starting package 3/18: liblzma:x86-windows
Building package liblzma[core]:x86-windows...
-- CURRENT_INSTALLED_DIR=C:/Program Files/vcpkg/installed/x86-windows
-- DOWNLOADS=C:/Program Files/vcpkg/downloads
-- CURRENT_PACKAGES_DIR=C:/Program Files/vcpkg/packages/liblzma_x86-windows
-- CURRENT_BUILDTREES_DIR=C:/Program Files/vcpkg/buildtrees/liblzma
-- CURRENT_PORT_DIR=C:/Program Files/vcpkg/ports/liblzma
-- Downloading https://github.com/xz-mirror/xz/archive/v5.2.3.tar.gz...
-- Downloading https://github.com/xz-mirror/xz/archive/v5.2.3.tar.gz... OK
-- Testing integrity of downloaded file...
-- Testing integrity of downloaded file... OK
-- Extracting source C:/Program Files/vcpkg/downloads/xz-mirror-xz-v5.2.3.tar.gz
-- Extracting done
-- Configuring x86-windows
-- Configuring x86-windows done
-- Build x86-windows-dbg
-- Build x86-windows-dbg done
-- Build x86-windows-rel
-- Build x86-windows-rel done
-- Performing post-build validation
-- Performing post-build validation done
Building package liblzma[core]:x86-windows... done
Installing package liblzma[core]:x86-windows...
Installing package liblzma[core]:x86-windows... done
Elapsed time for package liblzma:x86-windows: 1.356 min
Starting package 4/18: tiff:x86-windows
Building package tiff[core]:x86-windows...
-- CURRENT_INSTALLED_DIR=C:/Program Files/vcpkg/installed/x86-windows
-- DOWNLOADS=C:/Program Files/vcpkg/downloads
-- CURRENT_PACKAGES_DIR=C:/Program Files/vcpkg/packages/tiff_x86-windows
-- CURRENT_BUILDTREES_DIR=C:/Program Files/vcpkg/buildtrees/tiff
-- CURRENT_PORT_DIR=C:/Program Files/vcpkg/ports/tiff
-- Downloading http://download.osgeo.org/libtiff/tiff-4.0.9.tar.gz...
-- Downloading http://download.osgeo.org/libtiff/tiff-4.0.9.tar.gz... OK
-- Testing integrity of downloaded file...
-- Testing integrity of downloaded file...
Installing package tiff[core]:x86-windows... done
Elapsed time for package tiff:x86-windows: 3.625 min
Starting package 5/18: libpng:x86-windows
Building package libpng[core]:x86-windows...
-- CURRENT_INSTALLED_DIR=C:/Program Files/vcpkg/installed/x86-windows
-- DOWNLOADS=C:/Program Files/vcpkg/downloads
-- CURRENT_PACKAGES_DIR=C:/Program Files/vcpkg/packages/libpng_x86-windows
-- CURRENT_BUILDTREES_DIR=C:/Program Files/vcpkg/buildtrees/libpng
-- CURRENT_PORT_DIR=C:/Program Files/vcpkg/ports/libpng
-- Downloading https://github.com/glennrp/libpng/archive/v1.6.34.tar.gz...
-- Downloading https://github.com/glennrp/libpng/archive/v1.6.34.tar.gz... OK
-- Testing integrity of downloaded file...
-- Testing integrity of downloaded file... OK
-- Extracting source C:/Program Files/vcpkg/downloads/glennrp-libpng-v1.6.34.tar.gz
-- Extracting done
-- Applying patch C:/Program Files/vcpkg/ports/libpng/use-abort-on-all-platforms.patch
-- Applying patch C:/Program Files/vcpkg/ports/libpng/use-abort-on-all-platforms.patch done
-- Applying patch C:/Program Files/vcpkg/ports/libpng/skip-install-symlink.patch
-- Applying patch C:/Program Files/vcpkg/ports/libpng/skip-install-symlink.patch done
-- Configuring x86-windows
-- Configuring x86-windows done
-- Build x86-windows-dbg
-- Build x86-windows-dbg done
-- Build x86-windows-rel
-- Build x86-windows-rel done
-- Performing post-build validation
-- Performing post-build validation done
Building package libpng[core]:x86-windows... done
Installing package libpng[core]:x86-windows...
Installing package libpng[core]:x86-windows... done
Elapsed time for package libpng:x86-windows: 1.306 min
Starting package 6/18: ilmbase:x86-windows
Building package ilmbase[core]:x86-windows...
-- CURRENT_INSTALLED_DIR=C:/Program Files/vcpkg/installed/x86-windows
-- DOWNLOADS=C:/Program Files/vcpkg/downloads
-- CURRENT_PACKAGES_DIR=C:/Program Files/vcpkg/packages/ilmbase_x86-windows
-- CURRENT_BUILDTREES_DIR=C:/Program Files/vcpkg/buildtrees/ilmbase
-- CURRENT_PORT_DIR=C:/Program Files/vcpkg/ports/ilmbase
-- Downloading http://download.savannah.nongnu.org/releases/openexr/ilmbase-2.2.1.tar.gz...
-- Downloading http://download.savannah.nongnu.org/releases/openexr/ilmbase-2.2.1.tar.gz... OK
-- Testing integrity of downloaded file...
-- Testing integrity of downloaded file... OK
-- Extracting source C:/Program Files/vcpkg/downloads/ilmbase-2.2.1.tar.gz
-- Extracting done
-- Applying patch C:/Program Files/vcpkg/ports/ilmbase/fix-parallel-build.patch
-- Applying patch C:/Program Files/vcpkg/ports/ilmbase/fix-parallel-build.patch done
-- Configuring x86-windows
-- Configuring x86-windows done
-- Build x86-windows-dbg
-- Build x86-windows-dbg done
-- Build x86-windows-rel
-- Build x86-windows-rel done
-- Performing post-build validation
-- Performing post-build validation done
Building package ilmbase[core]:x86-windows... done
Installing package ilmbase[core]:x86-windows...
Installing package ilmbase[core]:x86-windows... done
Elapsed time for package ilmbase:x86-windows: 2.934 min
Starting package 7/18: openexr:x86-windows
Building package openexr[core]:x86-windows...
-- CURRENT_INSTALLED_DIR=C:/Program Files/vcpkg/installed/x86-windows
-- DOWNLOADS=C:/Program Files/vcpkg/downloads
-- CURRENT_PACKAGES_DIR=C:/Program Files/vcpkg/packages/openexr_x86-windows
-- CURRENT_BUILDTREES_DIR=C:/Program Files/vcpkg/buildtrees/openexr
-- CURRENT_PORT_DIR=C:/Program Files/vcpkg/ports/openexr
-- Downloading http://download.savannah.nongnu.org/releases/openexr/openexr-2.2.1.tar.gz...
-- Downloading http://download.savannah.nongnu.org/releases/openexr/openexr-2.2.1.tar.gz... OK
-- Testing integrity of downloaded file...
-- Testing integrity of downloaded file... OK
-- Extracting source C:/Program Files/vcpkg/downloads/openexr-2.2.1.tar.gz
-- Extracting done
-- Applying patch C:/Program Files/vcpkg/ports/openexr/add-missing-export.patch
-- Applying patch C:/Program Files/vcpkg/ports/openexr/add-missing-export.patch done
-- Applying patch C:/Program Files/vcpkg/ports/openexr/CMakeLists.txt.patch
-- Applying patch C:/Program Files/vcpkg/ports/openexr/CMakeLists.txt.patch done
-- Applying patch C:/Program Files/vcpkg/ports/openexr/fix-static-linking.patch
-- Applying patch C:/Program Files/vcpkg/ports/openexr/fix-static-linking.patch done
-- Configuring x86-windows
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:56 (message):
Command failed: ninja;-v
Working Directory: C:/Program Files/vcpkg/buildtrees/openexr/x86-windows-rel/vcpkg-parallel-configure
See logs for more information:
C:\Program Files\vcpkg\buildtrees\openexr\config-x86-windows-out.log

Call Stack (most recent call first):
scripts/cmake/vcpkg_configure_cmake.cmake:237 (vcpkg_execute_required_process)
ports/openexr/portfile.cmake:26 (vcpkg_configure_cmake)
scripts/ports.cmake:72 (include)
Error: Building package openexr:x86-windows failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with .\vcpkg update, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
Package: openexr:x86-windows
Vcpkg version: 0.0.113-nohash
Additionally, attach any relevant sections from the log files above.
C:\Program Files\vcpkg>

Command failed: ninja;-v
C:\Program Files\vcpkg\buildtrees\openexr\config-x86-windows-out.log

I tried the same with the x64 and it failed in the same way
config-x64-windows-out.log

Thanks for posting this issue. I cannot reproduce it on the latest vcpkg.
Please open a new issue if this is still a problem for you.


BN_mod_add_quick returns different result since 1.0.2p

Greetings!
We're using OpenSSL with WAPI, and ever since upgrading to 1.0.2p we can't connect to our Certificate based WAPI AP.
We did some deep digging and narrowed the issue down to changes made in 83325a68ad5fdfc359ab9d82a0e0da8e5fe7ede1 (all commits before that one work with our system, and all commits after it don't). Specifically the method BN_mod_add_quick.
More specifically - if we take the final 1.0.2p code and replace its implementation of BN_mod_add_quick with that of 1.0.2o, everything works as expected.
Furthermore, the difference is only in value - the method itself returns "true" (success) in both cases.
Any insights or ideas into this would be greatly appreciated.
Thanks!

Can you give details of specific params that cause the difference in behaviour?

Yes, here's a reproducible example:
BIGNUM* r2 = BN_new();
BIGNUM* a2 = BN_new();
BIGNUM* b2 = BN_new();
BIGNUM* m2 = BN_new();

BN_hex2bn(&r2, "B6FEE0E66D44782A1744F2CD28969C8C1EDEB1CE8AFBF6D5");
BN_hex2bn(&a2, "8CBE73EFDF8441F980C40F0A0107797A8CFB932FF6CD171C");
BN_hex2bn(&b2, "C384D85E8A0426CAD6F8AEDAEE64659D264CA6FAE361CAFE317598D9B79B5B42");
BN_hex2bn(&m2, "BDB6F4FE3E8B1D9E0DA8C0D40FC962195DFAE76F56564677");

TRACE_LOG(OUTPUT_LEVEL_DBG, "R: %s", BN_bn2hex(r2));
TRACE_LOG(OUTPUT_LEVEL_DBG, "A: %s", BN_bn2hex(a2));
TRACE_LOG(OUTPUT_LEVEL_DBG, "B: %s", BN_bn2hex(b2));
TRACE_LOG(OUTPUT_LEVEL_DBG, "M: %s", BN_bn2hex(m2));

BN_mod_add_quick(r2, a2, b2, m2);

TRACE_LOG(OUTPUT_LEVEL_DBG, "RUNNING QUICK MOD ADD!");

TRACE_LOG(OUTPUT_LEVEL_DBG, "R2: %s", BN_bn2hex(r2));
TRACE_LOG(OUTPUT_LEVEL_DBG, "A2: %s", BN_bn2hex(a2));
TRACE_LOG(OUTPUT_LEVEL_DBG, "B2: %s", BN_bn2hex(b2));
TRACE_LOG(OUTPUT_LEVEL_DBG, "M2: %s", BN_bn2hex(m2));

The results in 102o are:
R: B6FEE0E66D44782A1744F2CD28969C8C1EDEB1CE8AFBF6D5
A: 8CBE73EFDF8441F980C40F0A0107797A8CFB932FF6CD171C
B: C384D85E8A0426CAD6F8AEDAEE64659D264CA6FAE361CAFE317598D9B79B5B42
M: BDB6F4FE3E8B1D9E0DA8C0D40FC962195DFAE76F56564677

RUNNING QUICK MOD ADD!

R2: C384D85E8A0426CAA6002DCC8F5D89F89967F530D49FE25F6076449A58122BE7
A2: 8CBE73EFDF8441F980C40F0A0107797A8CFB932FF6CD171C
B2: C384D85E8A0426CAD6F8AEDAEE64659D264CA6FAE361CAFE317598D9B79B5B42
M2: BDB6F4FE3E8B1D9E0DA8C0D40FC962195DFAE76F56564677

And with 102p:
R: B6FEE0E66D44782A1744F2CD28969C8C1EDEB1CE8AFBF6D5
A: 8CBE73EFDF8441F980C40F0A0107797A8CFB932FF6CD171C
B: C384D85E8A0426CAD6F8AEDAEE64659D264CA6FAE361CAFE317598D9B79B5B42
M: BDB6F4FE3E8B1D9E0DA8C0D40FC962195DFAE76F56564677

RUNNING QUICK MOD ADD!

R2: A6002DCC8F5D89F89967F530D49FE25F6076449A58122BE7
A2: 8CBE73EFDF8441F980C40F0A0107797A8CFB932FF6CD171C
B2: C384D85E8A0426CAD6F8AEDAEE64659D264CA6FAE361CAFE317598D9B79B5B42
M2: BDB6F4FE3E8B1D9E0DA8C0D40FC962195DFAE76F56564677

I did notice that in o’s result, the string is much longer, and that the upper (extra) 16 characters seem to be the upper 16 characters of B.

BN_hex2bn(&b2, "C384D85E8A0426CAD6F8AEDAEE64659D264CA6FAE361CAFE317598D9B79B5B42");
BN_hex2bn(&m2, "BDB6F4FE3E8B1D9E0DA8C0D40FC962195DFAE76F56564677");

This looks like an invalid use of the BN_mod_add_quick() function. The preconditions for this function are that both a and b are non-negative and less than m. This is clearly not the case in the above since b is clearly larger than m. If you don't meet the preconditions then you have to use BN_mod_add() instead.

AFAIK only invalid inputs get different results.

Furthermore, wouldn't it be prudent to have the method fail on incorrect or invalid input?

I would be worried about the potential performance impacts of doing so.


Type fixes and dependency updates

Added

.flake8 file to ignore line length and unused import errors in tests
Python versions 3.11, 3.12, and 3.13 to GitHub Actions
BookopsPlatformError as top level import
py.typed file so applications using bookops-nypl-platform will use annotations from this package
added type annotations where they were missing and fixed them where they were incomplete or inaccurate
type annotations to variables in PlatformSession methods where needed
Dev dependencies:

exceptiongroup (1.2.2)

Changed

updated GitHub checkout and setup actions in automated tests (unit-tests.yaml)
if type() is type check syntax changed to isinstance type checks
target python version in pyproject.toml now 3.8-3.13
Updated dependencies:

certifi (2024.8.30)
charset-normalizer (3.4.0)
idna (3.10)
requests (2.32.3)
urllib3 (2.2.3)

Updated dev dependencies:

black (24.8.0)
coverage (7.6.1)
packaging (24.2)
pathspec (0.12.1)
platformdirs (4.3.6)
pluggy (1.5.0)
pytest-cov (5.0.0)
pytest-mock (3.14.0)
pytest (8.3.3)
tomli (2.1.0)
typing-extensions (4.12.2)

authors in pyproject.toml per #9

Fixed

default value for PlatformToken.timeout and PlatformSession.timeout is now (3,3,). Removed conditional check from __init__.py for both classes that set the timeout value if timeout was None
typo in docstring of authorize.py per #6
changed names of variables in PlatformSession methods where they were the same as names of a param passed to that method. Certain variables have different types than the params with the same name which caused errors with the type checker. See keywords param/variable in PlatformToken.search_standardNos and keyword/standardNos variable

Removed

support for Python 3.7
Type no longer used in type annotations
implicit optional types changed to explicit Optional with None as default value
Dev dependencies:

mike
mkdocs
mkapi

pytest.ini file. Moved to pytest.ini_options in pyproject.toml
.coveragerc file. Moved to tool.coverage.run in pyproject.toml

@klinga, these are similar updates to the ones I made to bookops-bpl-solr. Both packages will be fully typed when using them with overload.

Got it. Good work! 🙏


Addiction view padding left

Hello!
When I set this option:
options.tabView.additionView.padding          = .init(top: 0, left: 16, bottom: 0, right: 16)
padding left on start did not apply.
Can you help me to fix this?

Encountering the same issue

Perhaps found solution for this.
fileprivate func resetAdditionViewPosition(index: Int)
function in TabView.swift file, line 398
which is originally looks like
additionView.frame.origin.x = adjustCellWidth * CGFloat(index) - options.additionView.padding.left
but should be
additionView.frame.origin.x = adjustCellWidth * CGFloat(index) + options.additionView.padding.left

Thank You! It works.


NoClassDefFoundError: hibernate's ValidatedValueUnwrapper

Hi! I'm trying to use this bundle to get the Jackson serializers for JSR-310 types. If this is the wrong approach please let me know, I'm new to Dropwizard.
Here is a commit showing the changes I made to the application; its commit message has the full stacktrace but the root cause is a java.lang.NoClassDefFoundError: org/hibernate/validator/spi/valuehandling/ValidatedValueUnwrapper
Is there another bundle I need to add? I'm using Dropwizard 0.7.0.
Thanks!

The class in question has been introduced in Hibernate Validator 5.1.0.Final. Dropwizard 0.7.0 is using Hibernate Validator 5.0.2.Final.
Please upgrade to Dropwizard 0.7.1.


jitter is not updated

The listed jitter values are always 1.0 m/s.
Are they computed at all?

Yes, but I guess you are using the LM minimiser. That method as you know cannot fit for jitter, or the chi^2 will get 0 and the jitter infinity. Switch to Simplex and all will be fine.

Ok, sure!
I do not noticed it in front of the gui.

In general, I might remove the LM method. It converges faster than the simplex, but it has it limitations.
The reason why the LM is still included is that provides instant covariance matrix uncertainties, while I have not yet included uncertainties in the Simplex. The usual scheme is:

Run LM to get the best fit without jitter.
Using the sollution from 1 Run the Simplex with jitter.
Get back to the LM to get errors (but not on the jitters).
Or run mcmc to get error for all parameters.

1-3 are super fast. 4 it depends on your mcmc setup, number of parameters, etc.

Ok the GUI was updated. Now when the "Levenberg-Marquardt" minimization is chosen (by default),
the RV Jitter boxes are de-activated, which should indicate toothe user that these parameters are not fitted. One can still add jitter manually if needed. When the "SImplex" is chosen the boxes are once again active and one can chose to fit, or not to fit the jitter parameters. I hope now is less confusing.

Ok, it works.
But for unexperienced user it will be hard to figure this out. Tooltips might help.


IsLight button is shown in the source code twice.

Just FYI.

Ah yes, I forget to fix the string doc :) Thx for pointed it


Digital Ocean Droplet Installer - Errors After Build Script

I did follow the documentation, but I'm getting build errors at the end of the DO Droplet installer process. I've tried it twice and the web server never ends up starting, I'm guessing due to the build errors. Attaching the output from the tail log trace.

Hi,
Thanks for the detailed bug report!
I think I have just fixed this (04b2652) - the ansible/env_vars/example.yml file had a small error in it.
The lines
rollbar_access_token:
rollbar_access_token_client:

Should be
rollbar_access_token: ''
rollbar_access_token_client: ''

Thanks. Should this work if I build a new Digital Ocean droplet from the installer?

That did it! Thanks for all the help.


Saved Games throwing 404 for ALL newly created apps [Severe]

Component used: Saved Games
Version used: 16.0.1
Devices/Android versions reproduced on: All
If this is a bug in the library, we would appreciate if you could attach:

Sample project to trigger the issue.
A screenrecord or screenshots showing the issue (if UI related).

When saved games is enabled in Google Play Services, it's throwing the below error leading to sign in failure.
BasicNetwork.performRequest: Unexpected response code 404 for https://www.googleapis.com/drive/v2beta/apps/self?prettyPrint=false&fields=id
02-08 20:39:19.423 15985-18876/? W/NetworkResponseErrorDec: StatusCode:404 Reason:[notFound] Location:[app]

@claywilkinson

Any updates on this?


Allow for passing URL Params

In Jotform, to prefill fields in the form, the easiest way is to pass it as a URL param. However, since the code was looking for the "last" thing to be the jotform id, the code was breaking. I've changed form endsWith to includes and haven't seen any adverse effects so far.

Thanks for your contribution !
I see that you changed props.src.endsWith(formId) with props.src.includes(formId).
I'm not sure this is enough : if the id has a variable size, it could match partially the actual id put in the URL.
For the sake of completeness, I would do this instead :
props.src.split('?')[0].endsWith(formId)
If you agree, could you change your code accordingly ?

ah, totally agree! thanks for reviewing. will make the change.


[Fix|DETS] Fixed veracode security issue CVE-2023-6481

Description
Fixed

Logback vulnerabilities issues for CVE-2023-6481

Pre-review checks
Please ensure to do as many of the following checks as possible, before asking for committer review:

[x] DEPENDENCIES are up-to-date. Dash license tool. Committers can open IP issues for restricted libs.
[x] Copyright and license header are present on all affected files

Add 2024 copyright for pom.xml file

Copyright updated with this change


Write the Crew's Logs

Write the log of the crew that we will be scattering throughout the game!

Some Ideas about this one. It'd be cool if the log was written in different perspectives. They would tell an overarching story but from the view points of several different crew members. They would be held together chronologically, by say including the date at the start of every log file, for example.


*: Update dependencies and fix unit test on Windows

What problem does this PR solve?

Update Go dependencies, move TiDB version to v3.1.0-beta
Update NPM dependencies for the web interface
Adjust the unit test so it passes on Windows.

What is changed and how it works?
Check List
Tests

Unit test

Side effects
Related changes

/run-all-tests

PTAL @suzaku @leoppro

/run-all-tests

/run-all-tests

/run-all-tests

Ping @leoppro
/run-all-tests


.exists() isn't counted as an assertion unless a message is defined

F('selection').exists(); // Expected at least one assertion...

F('selection').exists('Selection exists'); // 1 assertions of 1 passed, 0 failed.

I think the same is true for .missing(), though I can't confirm at the moment.

This is definitely true, but it's intentional. It's so you can chain a bunch of stuff and only assert at the end:
F('selection').exists().click().doMoreStuff().foo('ok now assert');

How would counting the message-less .exist() as an assertion prevent you from doing that?

Because FuncUnit works by retrying over and over. So it runs F('selection').exists() until it is true, and then goes on to the next thing (.click()). it only does assertions when it sees the message.

Message
The last (optional) parameter for each wait command is a message. By default, wait conditions will pass silently (without a passed assertion).
If a user provides a message string, the wait condition will pass an assertion with the given message when the wait completes. If the wait fails (the timeout is reached), this message will be provided to the failed assertion.

https://funcunit.com/guides/Guides.waits.html