Behavioral and MEG sanity-check codeblock

There are some things we should spend a couple of minutes testing in most experiments to save ourselves some pain. These can be optional by kwarg, but here are the ones I can think quickly:

[ ] auditory left/right test: play spoken "left" in left, "center" in center, "right" in right
[ ] visual left/right test: follow the dot (and it moves left/center/right/center 2x; up/center/down/center 2x)
[ ] button press: kwargs determine what to call them, have subjects press buttons (for MEG this would be something like [{1: 1, 2: 2, 3: 3}] * 2, for Ross's stuff it might be [{1: 'Yes', 2: 'No'}] * 2.

Anything else? cc @drammock @rkmaddox @akclee

Chime in with ideas and I'll keep the issue up to date (and hopefully implement for aud_att_int)

Would prefer recordings of spoken "left," "right," and "center" for
auditory side test.
--
Ross Maddox, Ph.D.
Postdoctoral Fellow
Institute for Learning & Brain Sciences
University of Washington
phone:<PHONE_NUMBER>
http://faculty.washington.edu/rkmaddox/
On Thu, Apr 28, 2016 at 11:42 AM, Eric Larson<EMAIL_ADDRESS>wrote:

Chime in with ideas and I'll keep the issue up to date (and hopefully
implement for aud_att_int)
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/LABSN/expyfun/issues/279#issuecomment-215523759

Then poll Yes/No if they actually came from left/center/right?

Yep.
--
Ross Maddox, Ph.D.
Postdoctoral Fellow
Institute for Learning & Brain Sciences
University of Washington
phone:<PHONE_NUMBER>
http://faculty.washington.edu/rkmaddox/
On Thu, Apr 28, 2016 at 11:54 AM, Eric Larson<EMAIL_ADDRESS>wrote:

Then poll Yes/No if they actually came from left/center/right?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/LABSN/expyfun/issues/279#issuecomment-215527322

I am making those sounds now.
--
Ross Maddox, Ph.D.
Postdoctoral Fellow
Institute for Learning & Brain Sciences
University of Washington
phone:<PHONE_NUMBER>
http://faculty.washington.edu/rkmaddox/
On Thu, Apr 28, 2016 at 11:46 AM, Ross Maddox<EMAIL_ADDRESS>wrote:

Would prefer recordings of spoken "left," "right," and "center" for
auditory side test.
--
Ross Maddox, Ph.D.
Postdoctoral Fellow
Institute for Learning & Brain Sciences
University of Washington
phone:<PHONE_NUMBER>
http://faculty.washington.edu/rkmaddox/
On Thu, Apr 28, 2016 at 11:42 AM, Eric Larson<EMAIL_ADDRESS>wrote:

Chime in with ideas and I'll keep the issue up to date (and hopefully
implement for aud_att_int)
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/LABSN/expyfun/issues/279#issuecomment-215523759

Great, thanks. Any other checks you can think of that you've done before or might want going forward?

Do we need an audio record check (at least get an acknowledgment somewhere that verbal response is being recorded) now that we have this for head/foot?
Thanks for implementing these things… it’s probably good to make it available for the MEG center as well...
Cheers
KC
======================================
Adrian KC Lee, ScD
Associate Professor
Department of Speech and Hearing Sciences
Institute for Learning & Brain Sciences (I-LABS)
Portage Bay Bldg. Room 206
University of Washington, Box 357988
Seattle, WA 98195-7988
Phone:<PHONE_NUMBER>; Fax:<PHONE_NUMBER>
Email<EMAIL_ADDRESS>Web: www.akclee.com
On Apr 28, 2016, at 11:59 AM, Eric Larson<EMAIL_ADDRESS>wrote:

Great, thanks. Any other checks you can think of that you've done before or might want going forward?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub

Good call, I'll add something sensible for a verbal response check.

don't forget "blink three times"


Let handler (re)start marathon

When installing marathon it gets (re)started twice, as enabling the service also starts it.
After the role finished the handler also (re)starts the service again.
By removing the optional (when enabled is used) state parameter it does not start at this at this task (but when the role finished), preventing (re)starting twice.

@veger from Ansible documentation http://docs.ansible.com/ansible/service_module.html

started/stopped are idempotent actions that will not run commands unless necessary.

So I assume it only starts Marathon if not started though at the moment this can only be verified empirically.


Angulartics breaks first page

After adding Angulartics to a Meteor app, it breaks the loading of the first page with error
"Error: [angular-meteor][err][404] client/main/main.view.html - HTML template does not exist! You can disable this error by following this guide http://www.angular-meteor.com/api/1.3.11/templates
Well first there's no guide at the following URL, and moreover it works just fine without angulartics.
This bug only happens when I load the the app, as soon as I click on anything it routes fine and displays everything correctly.
I tried setting firstPageView(false) and it removes the error message but does not fix the app.

Found the bug,
Angulartics needs to be loaded AFTER the other angular modules


Multi DUB Order

If I select 2 Dubs e.g. German and Japanese. Then it always takes the Japanese track first.
But I want the German track first.
I have also tried selecting the Japanese track first and then the German track,
but of course the result is the same.
Or is there a setting for the correct order of the audio tracks?
With kind regards LorenorZorro

Would that possibly be a feature you would implement? ^^

it will be sorted in the order you selected the subs/dubs in the settings - v1.5.41

Wow, now it works perfectly.
Thank you so much for integrating the feature!


DIV without identifier doesn’t work in Scala js

Workaround: set div Id manually.
check this and fix

solved with new embedding concept


Update VAT-based refund calculation

Description
Updates:

Update refund calculation to use only the order of the first unused item.
Automatically cancel all permit orders that do not have any other valid permits left in them.
Update OrderAdmin to display all distinct order items VATs

Context
PV-877
How Has This Been Tested?
Manually and through unit tests.
Manual Testing Instructions for Reviewers
Test refund creation in Admin UI.
Screenshots

LGTM!


SAK-48708 Rubrics: Put additional data in PDF download, make PDF available in Samigo

This PR adds a bunch of new data to the Rubrics PDF generator. We've noticed at UD that there was a bunch missing and decided to reconfigure it to have these new fields and better display a couple of existing ones. The full list of changes, and a PDF example, is on the ticket:
https://sakaiproject.atlassian.net/browse/SAK-48708
Also, I noticed that PDFs aren't available when grading a rubric in Tests & Quizzes, so I added the necessary extra attribute there.

@ern I implemented all the changes we talked about yesterday, and made two tests for the contextualFilename method. Thanks so much for the review!


When will the code be released?

When will the code be released for Diversify and Match: A Domain Adaptive Representation Learning Paradigm for Object Detection?

Sorry for the late check. It will be prepared in a week.


[AVR-GCC] Default symbols are not loaded

Describe the bug
Symbols describe in the avr8.pspec are not loaded. At code:0x0, the symbol should be "Reset" but FUN_code_000034 is written.
To Reproduce
Steps to reproduce the behavior:

Compile a simple program with the last version of Arduino IDE
Load the .elf binary in Ghidra
Analyze the binary with the default parameters
Go to code:0x0
See the error

Expected behavior
Load symbols !
Screenshots
Attachments
Environment (please complete the following information):

OS: Windows
Java Version: 11.0
Ghidra Version: 9.4

Additional context

When you add the program to ghidra you need to select options and check to apply processor defined labels.

Oh Thanks. I never see this view before.

Is there a way to re-apply this post loading? E.g. after analysis and modifications have already been completed?

No, you would have to write a script to do it.


[Bug] Image Doesn't Show up on Page 2 of Episodes in List View

Expected behavior
On Page 2 of episodes, the associated banner image doesn't show up.
Actual behavior
Instead, it renders as a broken box. This happens whether there's an image associated with the episode or not.
screenshot
Reproduction Steps
Click through on Page 2 of episodes on Community Pulse: http://communitypulse.io/page/2/
Operating System and Version
macOS Mojave, 10.14.6
Web Browser and Version
Chrome, Version 78.0.3904.87
Hugo Version
I'm personally running 0.36 (I know I need to update) but this is happening no matter who's submitting the PRs, including the latest versions of Hugo.

Well this doesn't sound great :)
I look into this today!

(adding a clarifying note to myself - this happens on all pages after the first page, not just page 2)


Sample definition does not match sample input or output

First, the skill output of keyPhrases is not documented as it is on some pages.
Second, the sample definition uses /document/content as the input, but the field is actually /document/value/*/data/text, or even just /document/data/text depending on how that input is supposed to be used (sample document input, or sample input send to the skillset itself?). The output also says "myKeyPhrases", but the example output is "keyPhrases", and also does not follow the schema of the sample definition.
If we're going to point customers at these documents to learn how to use the skillsets (based on some studies, this was a point of confusion), we should make sure the documents have samples people can easily follow - i.e. trace skillset input and output fields through a sample definition into a sample index.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: cb91aaa1-bf89-9741-963e-7d3d2c6583c5
Version Independent ID: 73b28f2f-651a-5af4-9b6e-9fd96cf8a659
Content: Key Phrase Extraction cognitive skill - Azure Cognitive Search
Content Source: articles/search/cognitive-search-skill-keyphrases.md
Service: cognitive-search
GitHub Login: @LuisCabrer
Microsoft Alias: luisca

@heaths, the input can be any part of the tree... depending on the data you are parsing, that may be /document/content or something completely different... (depends on the schema of the data source).
So /document/content is based on a blob storage example.
The target name is optional... and essentially becomes the name by which you will refer to the data in the future... (i.e. "/document/myKeyPhrases")
I don't believe the documentation is technically incorrect, but I agree that we should make it easy for people to better understand how each of these components work...  At the //build conference this week we will be introducing the capability to debug skillsets so you can inspect what is happening inside a skillset in real time.  I highly encourage you to look at those changes coming...

That page shows sample input like:
{
    "values": [
      {
        "recordId": "1",
        "data":
           {
             "text": "Glaciers are huge rivers of ice that ooze their way over land, powered by gravity and their own sheer weight. They accumulate ice from snowfall and lose it through melting. As global temperatures have risen, many of the world’s glaciers have already started to shrink and retreat. Continued warming could see many iconic landscapes – from the Canadian Rockies to the Mount Everest region of the Himalayas – lose almost all their glaciers by the end of the century.",
             "language": "en"
           }
      }
    ]
}

This, the sample definition doesn't seem to match this, nor does it match the sample output since the target name is "myKeyPhrases" but the sample output just shows "keyPhrases".

Oh, I see the confusion...
You are confusing the inputs / outputs of the skill itself, with the actual location of the information to enrich in the enriched document...
A bit to explain in text, but take a look at: https://www.youtube.com/watch?v=9GKqhkZWoQU

The name attribute is the skill input (or output), but the source has value "/document/content". That is the selector, is it not? That's what other skillsets' examples show. But whether that's right or wrong, I'm working on the client SDK (Azure.Search.Documents) with @bleroy et. al. and if I'm confused, I imagine our customers trying to use it will be as well. We just had UX studies lately and saw that very thing.

The issue is resolved with https://github.com/MicrosoftDocs/azure-docs-pr/pull/115957
#please-close


2.4.10 Freezing

Hi there,
FBI 2.4.10 is freezing on launch intermittently on a brand new New 3DS XL, running 11.5. Luma 8.1

Can you check whether this occurs with earlier versions?

This occurs for me as well but only if I load up NTR CFW prior to opening FBI. Rebooting 3DS alleviates this problem.

--Sorry for the double post--
Forgot some relevant info
Hardware : Japanese New 3DS LL
Sys: 11.5.0-38J
Homebrew:
-Luma
NTR CFW
FBI 2.4.10

I would suggest not running FBI in NTR CFW, then.

Agreed. That has been my work around.


VFX Impact Effect field is blanked on save

This field is blanked on save:

Not sure if other fields are affected not found any.
As mentioned previously VFX don't export a script constant yet either but can work around that.

Fixed in 0.74


update fr.coffee

Here are the Travis last errors :
(current: {"os":"linux","arch":"x64"})
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm ERR! Linux 4.14.12-041412-generic
npm ERR! argv "/home/travis/.nvm/versions/node/v6.12.2/bin/node" "/home/travis/.nvm/versions/node/v6.12.2/bin/npm" "install"
npm ERR! node v6.12.2
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>postinstall: `bower install && webpack`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script 'bower install && webpack'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the codecombat package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     bower install && webpack
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs codecombat
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls codecombat
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /home/travis/build/codecombat/codecombat/npm-debug.log
The command "eval npm install  " failed. Retrying, 2 of 3.

@clescot Could you sign our CLA so we can accept your PR?

@Bryukh ,
how can i sign your CLA ?
best regards,

i've signed (clicked with my github id) your cla at this address :
https://codecombat.com/cla

Thanks. I've fixed errors. Please be careful with indents and quotes.

@Bryukh thanks for the fix!


Issue-chore: removes additional include

Automated Review Comments
Issues in tsconfig.json:

(5, 'Hardcoded string found')
(6, 'Hardcoded string found')
(7, 'Hardcoded string found')

I got it.


[CPROD-846] Collect metrics for the ic canisters

This is the same as https://github.com/infinity-swap/ic-helpers/pull/56 but without using deriving macros

I don't think it's a good approach for docs. We don't put factory docs, ledger and management API docs in here because there is more appropriate places for them. Same goes with metrics.


Is it possible to search by email and uid at the same time?

I wonder if it is possible to do a search by a specific email and at the same time to fetch from the UID of the saved email onwards, in other words to be able to do a FROM and an overview at the same time in a single query?

Hi @alexv96 ,
many thanks for your question. However I'm not sure what you are asking. Could you provide some example code, to demonstrate, what you would like to archive? :)
Best regards,


Failed to run custom build command for openssl-sys v0.9.39

The command I used to run:
$ docker run --rm -v "$(pwd):/root/src" -w /root/src tomaka/cargo-apk cargo apk build
result:
error: failed to run custom build command for `openssl-sys v0.9.39`
process didn't exit successfully: `/root/src/target/debug/build/openssl-sys-78431d3183627107/build-script-main` (exit code: 101)
--- stdout
cargo:rerun-if-env-changed=ARM_LINUX_ANDROIDEABI_OPENSSL_LIB_DIR
cargo:rerun-if-env-changed=OPENSSL_LIB_DIR
cargo:rerun-if-env-changed=ARM_LINUX_ANDROIDEABI_OPENSSL_INCLUDE_DIR
cargo:rerun-if-env-changed=OPENSSL_INCLUDE_DIR
cargo:rerun-if-env-changed=ARM_LINUX_ANDROIDEABI_OPENSSL_DIR
cargo:rerun-if-env-changed=OPENSSL_DIR
run pkg_config fail: "Cross compilation detected. Use PKG_CONFIG_ALLOW_CROSS=1 to override"

--- stderr
thread 'main' panicked at '

Could not find directory of OpenSSL installation, and this `-sys` crate cannot
proceed without this knowledge. If OpenSSL is installed and this crate had
trouble finding it,  you can set the `OPENSSL_DIR` environment variable for the
compilation process.

Make sure you also have the development packages of openssl installed.
For example, `libssl-dev` on Ubuntu or `openssl-devel` on Fedora.

If you're in a situation where you think the directory *should* be found
automatically, please open a bug at https://github.com/sfackler/rust-openssl
and include information about your system as well as this message.

    $HOST = x86_64-unknown-linux-gnu
    $TARGET = arm-linux-androideabi
    openssl-sys = 0.9.39

', /root/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.9.39/build/main.rs:269:9
note: Run with `RUST_BACKTRACE=1` for a backtrace.

Build failed, waiting for other jobs to finish...
error: build failed

Problem fixed by adding openssl = { version = "0.10", features = ["vendored"] } to the [dependencies] tag in Cargo.toml


Execution failed for task ':app:installDebug'. > com.android.builder.testing.api.DeviceException: Could not create ADB Bridge.

Hey there and thank you for using React Native!
React Native, as you've probably heard, is getting really popular and truth is we're getting a bit overwhelmed by the activity surrounding it. There are just too many issues for us to manage properly.
Do the checklist before filing an issue:

[ ] Is this something you can debug and fix? Send a pull request! Bug fixes and documentation fixes are welcome.
[ ] Have a usage question? Ask your question on StackOverflow. We use StackOverflow for usage question and GitHub for bugs.
[ ] Have an idea for a feature? Post the feature request on Product Pains. It has a voting system to surface the important issues. GitHub issues should only be used for bugs.

None of the above, create a bug report
Make sure to add all the information needed to understand the bug so that someone can help. If the info is missing we'll add the 'Needs more information' label and close the issue until there is enough information.

[ ] Provide a minimal code snippet / rnplay example that reproduces the bug.
[ ] Provide screenshots where appropriate
[ ] What's the version of React Native you're using?
[ ] Does this occur on iOS, Android or both?
[ ] Are you using Mac, Linux or Windows?

Happens when I run react-native run-android . Using Genymotion on Google Nexus 5x - 6.0.0 API 23. Couldn't find any solution on stackoverflow as well. Any idea? Thanks.


Possible to keep unfocused floating windows above focused tiled window?

I often run into the following issue:

I have two windows A and B open, which are managed by default and tile the screen with A left and B right.
Then I change A to floating mode, resulting in the floating window A on top of the B below which fills up the whole screen.
But once I click on the background window B, the floating window A disappears in the background and becomes almost impossible to reach, because it's covered by the full screen window B.

Is it possible always to keep the floating window on top, even if the managed window below has the input focus (like in i3)?

This is the default behaviour, but it needs the scripting-addition to work.

Ah I see, that explains it. Thanks!


Updated scripts to use python3

Updates scripts to python3.  Make sure to update your locale to support UTC-8.

It should be ready for merge now.  Thanks!


Decouple plotting progress tracker from blockchain sync tracker

On client.ts, for the function public async getLocalSegmentCount(): Promise<number>
Nazar suggested the below as a backlog task:

This will work, but there are a few issues:

plot_progress_tracker is a bad name, should be get_plotted_pieces_count() or something like that
256 will work for now, but it is not guaranteed to be that way in the future, the actual value must be extracted from the runtime: https://github.com/subspace/subspace/blob/main/crates/sc-consensus-subspace/src/lib.rs#L913
as the result of above and considering that you should already be connected to local node anyway I suggest the following:

subscribe to events of local node and monitor for root block archiving that contains archived segment in it, making UI reactive rather than relying on timers
remove plot_progress_tracker on backend

Non-blocking, can be done in a separate PR, just don't forget about this.
Thought some more about this. If we care about plotting as such, we do have to inspect the plot and not the chain, but I'm not sure there is a major difference between those right now until we implement DSN sync of the farmer.

Keeping this as an issue to not forget about it

Implementing multi-replica farming will make the plot size configurable by the user and plotting progress will be independent of the blockchain size. However, we sill need to track the status of the blockchain sync from genesis.

[ ] confirm if or where we can retrieve best block height or size of the chain from the local node over the tauri bridge
[ ] remove the WS connection from the Vue frontend to the bootstrap node
[ ] replace with query to the local node
[ ] implement blockchain sync status bar in the dashboard (initial step is to have a textual UI with block xxxx / xxxx, later we can render this through a graphical progress widget)

@isSerge feel free to close this if the last todo in: https://github.com/subspace/subspace-desktop/issues/133#issuecomment-1113234379 is completed


Reading the sensor board with a microcontroller

I'm able to display measurements using a serial to USB adapter, but I am unable to receive data in any UART configuration on the STM32 (DMA/Interrupt/Poll).
I've checked the signal using an oscilloscope and it all looks fine. I'm using the high speed 1000 Hz example code.
Has anyone been successful reading the sensor from a microcontroller?
Any assistance would be appreciated. Apologies if this is the wrong place to post this.
Sebastian Thwaites
University of Newcastle

Hi Sebastian,
thanks for you question but that's a bit difficult to answer without more information.
As you say you can receive data via an serial-to-USB adapter, it's probably an issue with your STM32 board setup.
I guess there is either some issue in pin muxing or UART configuration. Have you initialized the pins to UART mode? Is the UART peripheral correctly enabled (clock gating?) and initialized (115200 bps, 8N1, no handshake, no flow control)?
If this doesn't give you a hint on where to find the issue, please double check the UART of your STM board with the serial-to-USB adapter first. Also you may want to follow some tutorials on how to setup UART, for example: https://wiki.st.com/stm32mcu/wiki/STM32StepByStep:Step3_Introduction_to_the_UART


[NEW ALGORITHM] Minimum Machines for Maximum Output

Issue will be closed if:

You mention more than one algorithm. You can create a separate issue for each algorithm once the current one is completed.
You propose an algorithm that is already present or has been mentioned in a previous issue.
You create a new issue without completing your previous issue.

Note: These actions will be taken seriously. Failure to follow the guidelines may result in the immediate closure of your issue.

Name:
Minimum Machines for Maximum Output]
About:
You are given a list of tasks, each requiring a certain amount of time to complete. You have multiple machines available, each with a specific speed that determines how fast it can complete tasks. Your goal is to determine the minimum number of machines needed to complete all tasks within a given time frame.
Input:
tasks: An array of integers where each element represents the time required for a task.
machines: An array of integers where each element represents the speed of a machine (higher means faster).
max_time: The maximum allowed time to complete all tasks.
Output:
An integer representing the minimum number of machines required to complete all tasks within max_time. If it is impossible, return -1.
Labels:
new algorithm, gssoc-ext, hacktoberfest, level3

Assignees:

[ Yes] Contributor in GSSoC-ext
[Yes ] Want to work on it

Please assign me this task @pankaj-bind

@Rishav123raj assigned


cassandra: 3.0.9 -> 3.11.1

Motivation for this change
Support for SASI index (>3.4)
Things done
Built and run for testing purposes

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

Cassandra 3.0 continues to be supported until after the next major version (which is not planned), so I suggest we keep supporting it too. People often like a very stable database and the 3.0 series seems to be precisely that. I suggest keeping it and pointing the cassandra attribute at 3.15.

@roberth Ok, it sounds better. So. we keep cassandra = cassandra_3_0 and I add the attribute cassandra_3_11.
Is it ok?

Please amend your branch, so a maintainer can merge it if approved.

lgtm, @nckx could you review and merge?

Looks good. Thanks!


How to customize dots and arrows?

How to customize dots and arrows?
my question may seem like a clusterfuck, but i'm having trouble changing it. i'm using SASS and Nuxt. I would be grateful if you could help me figure it out

For arrows, you can see this demo:
https://github.com/BKWLD/vue-ssr-carousel/blob/main/demo/components/demos/ui/custom-arrows.vue
You used the back-arrow and next-arrow slots.
I don't have a demo of dots, but you would do a similar thing, using the dot slot.


[AUTH-388] set pod security admission labels for namespace

This sets pod security admission labels. Currently, none are set and starting with OpenShift 4.13 this generates warnings in Telemetry. This fixes it.
Refer to https://kubernetes.io/docs/concepts/security/pod-security-standards/ to further tighten the labels potentially to the recommended restricted level.
The labels were determined by using the https://github.com/stlaz/psachecker tool.

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@f7a9c0c). Click here to learn what that means.
The diff coverage is n/a.

Additional details and impacted files

@@           Coverage Diff           @@
##             main     #105   +/-   ##
=======================================
  Coverage        ?   50.00%
=======================================
  Files           ?       10
  Lines           ?      446
  Branches        ?        0
=======================================
  Hits            ?      223
  Misses          ?      213
  Partials        ?       10


Fix basic example, parameter mismatch between host and wasm

Problem
When you build the host application located at samples\basic\src\main.c
build the wasm-app located at samples\basic\wasm-apps\testapp.c
and then run the host with wasm app
./basic -f wasm-app/testapp.wasm

you will get an error when calling float_to_string function:
call wasm function float_to_string failed. error: Exception: out of bounds memory access

In my case, I'm compiling the host on Windows, and compiling the wasm-app on Linux.
Solution
After taking a look at the argument array for calling the float_to_string function on the main.c file
I have noticed that the array assignment is not correct.
    argv2[1] = wasm_buffer; // the second argument is the wasm buffer address
    argv2[3] = 1000;         //  the third argument is the wasm buffer size
    argv2[4] = 3; //  the last argument is the digits after decimal point for
                  //  converting float to string

it is supposed to be
    argv2[1] = wasm_buffer; // the second argument is the wasm buffer address
    argv2[2] = 1000;         //  the third argument is the wasm buffer size
    argv2[3] = 3; //  the last argument is the digits after decimal point for
                  //  converting float to string

LGTM


Analyzer 5+ support

Analyzer 5+ is supported by analyzer_plugin 0.11.2.
But analyzer_plugin 0.11.0 introduced a lot of breaking changes.
I tried the migration but lacked some knowledge.
Reference: https://github.com/dart-code-checker/dart-code-metrics/pull/1020/files#diff-8b7e9df87668ffa6a04b32e1769a33434999e54ae081c52e5d943c541d4c0d25

Ok, I will take a look.

@lcdsmao I've published https://pub.dev/packages/flutter_hooks_lint_plugin/changelog#060.


encode docstring with utf-8

I ran into this error running the plugin:
protoc -I. --python_out=$TARGET --pydocstring_out=$TARGET  google/iam/v1/*.proto
Traceback (most recent call last):
  File "/usr/local/google/home/ndietz/Documents/go/src/github.com/googleapis/googleapis/venv/bin/protoc-gen-pydocstring", line 10, in <module>
    sys.exit(main())
  File "/usr/local/google/home/ndietz/Documents/go/src/github.com/googleapis/googleapis/venv/local/lib/python2.7/site-packages/protoc_docs/bin/py_docstring.py", line 54, in main
    docstring=struct.get_python_docstring(),
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2018' in position 371: ordinal not in range(128)
--pydocstring_out: protoc-gen-pydocstring: Plugin failed with status code 1.

The diff here is what I used locally to fix it. Just returns a utf-8 encoded string instead.

libprotoc 3.6.1
https://github.com/googleapis/googleapis/commit/b4c73face84fefb967ef6c72f0eae64faf67895f
v0.3.0 of this tool

I fixed this in #11 by adding from __future__ import unicode_literals to that file.


Release version 4.6.4

4.6.3 was released 10 months ago and there have been a number of PRs merged since then. Is 4.6.4 ready to be released?

We also need Flatpickr month plugin fix.

We also need https://github.com/flatpickr/flatpickr/pull/2095 fix.
So please release a new version, you can make a pre-release to avoid breaking change for old users
Pre-release
Thank you very much 😄

Hey everyone!
v4.6.5 is OUT :tada: I promise the next release will come out much sooner :)


Tracking issue: Dutch auction support for Penumbra

This issue is tracking completion of Dutch Auction for Penumbra:
Design doc and context: https://hackmd.io/@hdevalence/B1RjyYJgR
Implementation plan:
We break the implementation into the following milestones:

Milestone
Deliverable

Component M0
Functional action handlers + basic RPC

Component M1
Value balance accounting /  Full RPC + Events

pcli M0
We can record / execute / retire auctions in CLI

pcli M1
We can pass high-level parameters we want users to specify (time pref) and generate multiple DAs

Prax M0
Update protos, react views for signing, view server updates

Minifront M0
UI for gradual Dutch auctions

Explorer M0
Page displaying a DA

Explorer M1
Listing DAs / integrate into pair view

with the following dependency relations:
graph TD
  CM0(Component M0) --> CM1
  CM1(Component M1) --> EM0
  EM0(Explorer M0) --> EM1
  EM1(Explorer M1)
  CM0 --> PM0
  PM0(pcli M0) --> PM1
  PM1(pcli M1)
  PM0 --> PrM0
  PrM0(Prax M0)
  PrM0 --> MM0
  MM0(Minifront M0)
  PM1 -.- MM0

  style CM0 fill:#f9d4e5,stroke:#333,stroke-width:2px
  style PM0 fill:#f9d5e5,stroke:#333,stroke-width:2px
  style PrM0 fill:#f6cd61,stroke:#333,stroke-width:2px
  style MM0 fill:#fe8a71,stroke:#333,stroke-width:2px

Tracking issue:
Component
Component M0: to build a protocol MVP for DAs

[ ] auction: create component crate scaffolding: events.rs / state_key.rs
[ ] auction: define proto scaffolding
[ ] auction: define domain and proto types

[ ] AuctionId
[ ] AuctionNft
[ ] DutchAuctionDescription
[ ] DutchAuctionState
[ ] DutchAuction
[ ] ActionDutchAuctionSchedule
[ ] ActionDutchAuctionEnd
[ ] ActionDutchAuctionWithdraw
[ ] ActionDutchAuctionWithdrawView
[ ] ActionDutchAuctionScheduleView

[ ] auction: transaction scaffolding IsAction, GasCosts

Note: Prior to doing this, the actions shouldn't be added in the Transaction because they will lack the equivalent trait impl

[ ] auction: define action handlers and validation rules

[ ] ActionDutchAuctionSchedule
[ ] ActionDutchAuctionEnd
[ ] ActionDutchAuctionWithdraw
[ ] end_block handler implementation

[ ] auction: TxV/TxP support to populate the views
[ ] auction: define rpc service in the protos and integrate in pd

pcli M0: to exercise and fill in the RPC impls

[ ] view: extend view service for auctions
[ ] view: add auction support to planner / planner rpc
[ ] pcli: support for auction interactions

[ ] pcli tx auction dutch schedule
[ ] pcli tx auction dutch end
[ ] pcli tx auction dutch withdraw

[ ] pcli: query a user's auction ids

[ ] pcli v auction list [--include-inactive]

[ ] pcli: query an auction state by id

[ ] pcli q auction id AUCTION_ID

Component M1: complete core implementation and enable discoverability

[ ] auction: implement a value breaker
[ ] auction: fill in the remaining rpc functionality
[ ] auction: define and emit events

[ ] EventDutchAuctionScheduled
[ ] EventDutchAuctionUpdated
[ ] EventDutchAuctionEnded

pcli M1: to lay the groundwork for minifront M0

[ ] pcli: design a gradual auction mechanism

Prax M0 (to be tracked in web repos - presented here for context)

[ ] prax: pull in new protos
[ ] prax: define react views for each auction actions:

[ ] ActionDutchAuctionSchedule
[ ] ActionDutchAuctionEnd
[ ] ActionDutchAuctionWithdraw

[ ] prax: update view server for auctions
[ ] prax: add planner support

Implementation strategy notes:

The Component M0 and pcli M0 milestones should be done together, in keeping with our previous practice of using pcli as a testbed for new features. These should be done as soon as possible. Component functionality that doesn't affect the external action interfaces (e.g., value balance accounting, event emission, etc) can be deferred.

Note that pcli M1 is not in itself a valuable product feature; the only reason to do it is to be able to parallelize the work of automatic parameter selection for GDAs so that the Minifront M0 can adapt or copy it.

The proto package for the new component should be v1alpha1; this is still going to cause breaking proto changes because we'll add new Transaction fields that use the v1alpha1 types and then break them to point at the new package, but this shouldn't cause problems because other software won't use them and the entire project will be completed in a short time horizon.

Note on the proto point: I think the right time to switch auction from v1alpha1 to v1 is after the M0 milestone

tracking prax / minifront in this tracking issue


Try to describe Air rate limits

ALTER WORKSPACE AppWorkspaceWS (
  RATE ChangePasswordRate 1 PER MINUTE PER APP; -- currently not per app partition
  LIMIT ChangePasswordLimit EXECUTE ON COMMAND ChangePassword WITH RATE ChangePasswordRate;
);
ABSTRACT WORKSPACE Workspace (
  RATE InitiateEmailVerificationRate 3 PER HOUR PER WORKSPACE;
  RATE IssueVerifiedValueTokenRate 3 PER HOUR PER WORKSPACE;
  LIMIT InitiateEmailVerificationLimit EXECUTE ON QUERY InitiateEmailVerification WITH RATE InitiateEmailVerificationRate;
  LIMIT IssueVerifiedValueTokenLimit EXECUTE ON QUERY IssueVerifiedValueToken WITH RATE IssueVerifiedValueTokenRate;
);


Timber daemonset fails due to path mount

kubectl apply -f https://raw.githubusercontent.com/timberio/agent/master/support/scripts/kubernetes/timber-agent-daemonset-rbac.yaml fails with:
Error: failed to start container "timber-agent": Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "process_linux.go:359: container init caused \"rootfs_linux.go:54: mounting \\\"/etc/hostname\\\" to rootfs \\\"/var/lib/docker/overlay2/1bc84744efebbd2fc263b5cbebce9501f6c204c7dc57265f1cd0d06853e1d914/merged\\\" at \\\"/var/lib/docker/overlay2/1bc84744efebbd2fc263b5cbebce9501f6c204c7dc57265f1cd0d06853e1d914/merged/etc/hostname\\\" caused \\\"not a directory\\\"\""
: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

Kubernetes v1.9.7-gke.7 on GCP

I deployed this by removing the /etc/hostname volume mount, but this should probably be changed for new users attempting to deploy on GCP

@jbunce Thanks for reporting this.
Do you know if/where the hostname is stored on the kubernetes gcp instances? If not, I will look into further.
We use the hostname to populate metadata the agent ships along with the logs and found/thought /etc/hostname was a reliable place to get that info. Either way, I will update the installation documentation and the kubernetes manifests.

@jbunce sorry for the delay in fixing this. The docs have been updated and a kubernetes manifest has been created which removes the /etc/hostname mount.
https://docs.timber.io/platforms/kubernetes/troubleshooting/#google-kubernetes-engine-(gke)---failed-to-create-rbac-resources


Add 0x and GMX contract addresses

Howdy,
Loving your app so I've labelled some contracts from 0x exchange, GMX and Hop exchange that I use.
Let me know if any changes are required.

Hey, thanks for the additions, that's great! I noticed that not all of the addresses are checksummed (some are all-lowercase). I figured I'd create a simple script to automatically checksum all the addresses (which I just committed to master). Could you rebase on top of master and run yarn && yarn lint:checksums and push the new code?

Hey, thanks for the additions, that's great! I noticed that not all of the addresses are checksummed (some are all-lowercase). I figured I'd create a simple script to automatically checksum all the addresses (which I just committed to master). Could you rebase on top of master and run yarn && yarn lint:checksums and push the new code?

It's updated

Perfect, thanks!


event_received emits same event every time?

I'm trying to implement an input buffer in my game. This will allow the player to buffer 'inputs' during an attack animation. In this case however they are really buffering SendEvent() function calls.
In my game there is an intermediary script called StateChartQueue.cs which forwards events to the StateChart node. At any point I can disable the forwarding of events and instead store them into a buffer. This buffer can later be 'flushed' to the StateChart node.
The event_received signal, as emitted by the StateChart node, is used in StateChartQueue.cs to validate the order of events flushed and received. This is so I can truly control the order in which the events are processed when flushing to the StateChart. What I'm trying:

eventList = { "apple", "orange" }
SendEvent("apple")
OnEventRecieved(event)
If event == "apple"
SendEvent("orange")

Relevant code
  partial class DominoRunner : Node
  {
      readonly string[] events;
      readonly StateChart stateChart;

      string topplingEvent;
      int dominoIndex;

      internal DominoRunner(StateChart stateChart, string[] events)
      {
          this.events = events;
          this.stateChart = stateChart;
      }

      void OnEventReceived(StringName @event)
      {
          GD.Print($"Received {@event}.");
          if (@event != topplingEvent)
          {
              GD.Print($"{@event} was not {topplingEvent}.");
              //return;
          }

          dominoIndex++;

          if (dominoIndex >= events.Length)
          {
              GD.Print("Finished domino.");
              QueueFree();
              return;
          }

          topplingEvent = events[dominoIndex];

          GD.Print($"Toppling {topplingEvent}, index {dominoIndex}.");
          stateChart.SendEvent(topplingEvent);
      }

      internal void Topple()
      {
          dominoIndex = 0;
          topplingEvent = events[dominoIndex];

          foreach (string str in events)
          {
              GD.Print($"{str} in domino list.");
          }

          stateChart.Connect("event_received", new Callable(this, nameof(OnEventReceived)));
          GD.Print($"Toppling initial event {topplingEvent}, index {dominoIndex}.");
          stateChart.SendEvent(topplingEvent);
      }

      static string[] SortEventsByWeight(string[] events)
      {
          Dictionary<string, int> weights = new()
      {
          { "usable", 1 }
      };

          return events.OrderBy(item => weights.ContainsKey(item) ? weights[item] : 0).ToArray();
      }
  }

Full StateChartQueue.cs script
using System;
using System.Collections.Generic;
using System.Linq;
using Godot;
using GodotStateCharts;
using Grindle;

public partial class StateChartQueue : Node2D
{
  readonly Dictionary<StateChart, bool> recording = new();
  readonly Dictionary<StateChart, List<string>> events = new();
  readonly Dictionary<StateChart, string[]> eventBlackLists = new();
  bool flushing;

  readonly Godot.Collections.Array<string> baseEventBlacklist = new()
  {
      "restorePlayer"
  };

  public static void SetExpressionProperty(StateChart stateChart, string name, Variant value)
  {
      stateChart.SetExpressionProperty(name, value);
  }

  public void SendEvent(StateChart stateChart, string @event)
  {
      if (!Methods.IsValid(stateChart))
      {
          throw new ArgumentException("StateChart is null.");
      }

      if (!recording.ContainsKey(stateChart))
      {
          GD.Print($"{stateChart.Wrapped} not found in keys, creating keys.");
          recording.Add(stateChart, false);
          events.Add(stateChart, new());
          eventBlackLists.Add(stateChart, Array.Empty<string>());
      }

      if (flushing)
      {
          GD.Print("Cannot send event during flush.");
          return;
      }

      if (recording[stateChart])
      {
          if (eventBlackLists[stateChart].Contains(@event))
          {
              GD.Print($"Bypassing record for blacklisted event {@event}.");
              stateChart.SendEvent(@event);
              return;
          }

          GD.Print($"Recording {@event} to key {stateChart.Wrapped}.");
          events[stateChart].Add(@event);
          return;
      }

      GD.Print($"Not recording on {stateChart.Wrapped}, sending event {@event}.");
      stateChart.SendEvent(@event);

  }

  public void Flush(StateChart stateChart)
  {
      if (!Methods.IsValid(stateChart))
      {
          throw new ArgumentException("Given StateChart is null.");
      }

      if (!recording.ContainsKey(stateChart))
      {
          throw new Exception($"Cannot flush unregistered {stateChart.Wrapped}.");
      }

      recording[stateChart] = false;

      if (events[stateChart].Count == 0)
      {
          GD.Print($"Nothing to flush for key {stateChart.Wrapped}.");
          return;
      }

      flushing = true;

      DominoRunner dominoRunner = new(stateChart, events[stateChart].ToArray());
      dominoRunner.Topple();

      events[stateChart].Clear();

      flushing = false;
  }

  public void Record(StateChart stateChart, Godot.Collections.Array<string> eventBlackList)
  {
      if (!Methods.IsValid(stateChart))
      {
          throw new ArgumentException("StateChart is null.");
      }

      foreach (string str in eventBlackList)
      {
          GD.Print($"{str} is in received blacklist.");
      }

      Godot.Collections.Array<string> _eventBlackList = new();
      _eventBlackList.AddRange(baseEventBlacklist);
      _eventBlackList.AddRange(eventBlackList);

      foreach (string str in _eventBlackList)
      {
          GD.Print($"{str} is in blacklist.");
      }

      if (!recording.ContainsKey(stateChart))
      {
          GD.Print($"{stateChart.Wrapped} not found in keys, adding.");
          recording.Add(stateChart, true);
          events.Add(stateChart, new());
          eventBlackLists.Add(stateChart, _eventBlackList.ToArray());
          return;
      }

      if (recording[stateChart])
      {
          GD.PrintErr($"Already recording {stateChart.Wrapped}.");
          return;
      }

      GD.Print($"{stateChart.Wrapped} now recording.");

      recording[stateChart] = true;
      events[stateChart].Clear();
      eventBlackLists[stateChart] = _eventBlackList.ToArray();
  }

  partial class DominoRunner : Node
  {
      readonly string[] events;
      readonly StateChart stateChart;

      string topplingEvent;
      int dominoIndex;

      internal DominoRunner(StateChart stateChart, string[] events)
      {
          this.events = events;
          this.stateChart = stateChart;
      }

      void OnEventReceived(StringName @event)
      {
          GD.Print($"Received {@event}.");
          if (@event != topplingEvent)
          {
              GD.Print($"{@event} was not {topplingEvent}.");
              //return;
          }

          dominoIndex++;

          if (dominoIndex >= events.Length)
          {
              GD.Print("Finished domino.");
              QueueFree();
              return;
          }

          topplingEvent = events[dominoIndex];

          GD.Print($"Toppling {topplingEvent}, index {dominoIndex}.");
          stateChart.Wrapped.CallDeferred("send_event", topplingEvent);
      }

      internal void Topple()
      {
          dominoIndex = 0;
          topplingEvent = events[dominoIndex];

          foreach (string str in events)
          {
              GD.Print($"{str} in domino list.");
          }

          stateChart.Connect("event_received", new Callable(this, nameof(OnEventReceived)));
          GD.Print($"Toppling initial event {topplingEvent}, index {dominoIndex}.");
          stateChart.SendEvent(topplingEvent);
      }

      static string[] SortEventsByWeight(string[] events)
      {
          Dictionary<string, int> weights = new()
      {
          { "usable", 1 }
      };

          return events.OrderBy(item => weights.ContainsKey(item) ? weights[item] : 0).ToArray();
      }
  }
}

The problem is that OnEventReceived(StringName @event) is being passed the same event string every time it is called, which is mainly what I don't understand. Because of this, I just can't use the event to the effect that I want. Here is a log showing this:

Relevant logs
Not recording on <Node#43671094576>, sending event usable.
restorePlayer is in blacklist.
<Node#43671094576> now recording.
Recording jog to key <Node#43671094576>.
Recording moveUp to key <Node#43671094576>.
Recording stop to key <Node#43671094576>.
Recording jog to key <Node#43671094576>.
Recording moveRight to key <Node#43671094576>.
Recording stop to key <Node#43671094576>.
Bypassing record for blacklisted event restorePlayer.
jog in domino list.
moveUp in domino list.
stop in domino list.
jog in domino list.
moveRight in domino list.
stop in domino list.
Toppling initial event jog, index 0.
Received jog.
Toppling moveUp, index 1.
Received jog.
jog was not moveUp.
Toppling stop, index 2.
Received jog.
jog was not stop.
Toppling jog, index 3.
Received jog.
Toppling moveRight, index 4.
Received jog.
jog was not moveRight.
Toppling stop, index 5.
Received jog.
jog was not stop.
Finished domino.

As you can hopefully see, the StateChart node is passing the first event I sent to it for this entire 'loop'.  There is still so much I don't know about game engines and programming in general, so maybe I'm just dumb. Any idea what the issue might be?
Info: I'm executing Record() and Flush() from an AnimationPlayer.

Sorry, I forgot to check the history debugger tab which indicates that I might be doing something wrong in a way that's unrelated to the StateChart:

Relevant logs
[4118]: Event received: restorePlayer
[4118]: Transition: ToRestorePlayer from Root/UsableAnimations/ShortSword to Root/PlayerRoot/Parallel/Player/RestorePlayer
[4118]: exiT: BasicUp1
[4118]: exiT: ShortSword
[4118]: exiT: UsableAnimations
[4118]: Enter: PlayerRoot
[4118]: Enter: Parallel
[4118]: Enter: Player
[4118]: Enter: States
[4118]: Enter: Behavior
[4118]: Enter: Idle
[4118]: Enter: Animation
[4118]: Enter: Idle
[4118]: Enter: IdleDown
[4118]: Enter: UsableTransitions
[4118]: Enter: Nothing
[4118]: exiT: Idle
[4118]: exiT: Behavior
[4118]: exiT: IdleDown
[4118]: exiT: Idle
[4118]: exiT: Animation
[4118]: exiT: States
[4118]: Enter: States
[4118]: Enter: Behavior
[4118]: Enter: Idle
[4118]: Enter: Animation
[4118]: Enter: Idle
[4118]: Enter: IdleDown
[4118]: Enter: IdleUp
[4118]: exiT: IdleDown
[4118]: Event received: jog
[4118]: Transition: ToJog from Root/PlayerRoot/Parallel/Player/States/Behavior/Idle to Root/PlayerRoot/Parallel/Player/States/Behavior/Jog
[4118]: exiT: Idle
[4118]: Enter: Jog
[4118]: Transition: ToJogUp from Root/PlayerRoot/Parallel/Player/States/Animation/Idle/IdleUp to Root/PlayerRoot/Parallel/Player/States/Animation/Jog/JogUp
[4118]: exiT: IdleUp
[4118]: exiT: Idle
[4118]: Enter: Jog
[4118]: Enter: JogUp
[4118]: Event received: jog
[4118]: Transition: ToJogUp from Root/PlayerRoot/Parallel/Player/States/Animation/Jog to Root/PlayerRoot/Parallel/Player/States/Animation/Jog/JogUp
[4118]: exiT: JogUp
[4118]: Enter: JogUp
[4118]: Event received: jog
[4118]: Transition: ToIdle from Root/PlayerRoot/Parallel/Player/States/Behavior/Jog to Root/PlayerRoot/Parallel/Player/States/Behavior/Idle
[4118]: exiT: Jog
[4118]: Enter: Idle
[4118]: Transition: ToIdleUp from Root/PlayerRoot/Parallel/Player/States/Animation/Jog/JogUp to Root/PlayerRoot/Parallel/Player/States/Animation/Idle/IdleUp
[4118]: exiT: JogUp
[4118]: exiT: Jog
[4118]: Enter: Idle
[4118]: Enter: IdleUp
[4118]: Event received: jog
[4118]: Transition: ToJog from Root/PlayerRoot/Parallel/Player/States/Behavior/Idle to Root/PlayerRoot/Parallel/Player/States/Behavior/Jog
[4118]: exiT: Idle
[4118]: Enter: Jog
[4118]: Transition: ToJogUp from Root/PlayerRoot/Parallel/Player/States/Animation/Idle/IdleUp to Root/PlayerRoot/Parallel/Player/States/Animation/Jog/JogUp
[4118]: exiT: IdleUp
[4118]: exiT: Idle
[4118]: Enter: Jog
[4118]: Enter: JogUp
[4118]: Event received: jog
[4118]: Transition: ToJogRight from Root/PlayerRoot/Parallel/Player/States/Animation/Jog to Root/PlayerRoot/Parallel/Player/States/Animation/Jog/JogRight
[4118]: exiT: JogUp
[4118]: Enter: JogRight
[4118]: Event received: jog
[4118]: Transition: ToIdle from Root/PlayerRoot/Parallel/Player/States/Behavior/Jog to Root/PlayerRoot/Parallel/Player/States/Behavior/Idle
[4118]: exiT: Jog
[4118]: Enter: Idle
[4118]: Transition: ToIdleRight from Root/PlayerRoot/Parallel/Player/States/Animation/Jog/JogRight to Root/PlayerRoot/Parallel/Player/States/Animation/Idle/IdleRight
[4118]: exiT: JogRight
[4118]: exiT: Jog
[4118]: Enter: Idle
[4118]: Enter: IdleRight

Sorry for spam, but I just found the 'solution'... I guess? Basically, I just changed stateChart.SendEvent(topplingEvent); in my code to stateChart.Wrapped.CallDeferred("send_event", topplingEvent); and now everything works perfectly fine. Of course, I've changed the Wrapped property to public. I have zero understanding of threads or anything like that so I don't know why this solves my problem.

You have found a bug! Thank you very much for reporting this.  I have tried to set up a minimal reproducer which looks like this:
extends Node

@onready var chart = $StateChart

func _ready():
	chart.send_event("a")
	chart.send_event("b")
	chart.send_event("c")

func _on_state_chart_event_received(event):
	print("got " , event)
	if event == "a":
		chart.send_event("d")

This should print
got a
got d
got b
got c

but it prints got a in an endless loop. The reason for this is that the library will only process new events once  the currently running event has been fully processed by all states and all callbacks have been called. If it would not do this, we'd get some interesting (read: extremely hard to understand) behaviour when a new event is sent in an event handler . So what the library does is, when it you send a new event while one is currently still being processed, it puts it into an internal queue and then processes them one by one. So what happened was:

test code send a
library processes a  - calls event_received with a
signal handler in our test code sees a- sends d
library queues d because a is not fully processed yet.
library finishes processing of a
library processes d - calls event_received with a (<--- here is the bug, it calls the handler with the original event, not the queued one)
signal handler in our test code sees a- sends d
repeat ad infinitium...

The reason why it works when you do a call_deferred is because in this case you give each event time to fully play out before your insert the new one. So no events are queued and the buggy line in the library is never run.
I'm making a fix for this.

The fix is in and I also submitted it to the asset library. May take a while to materialize there because the approval process is manual there and I'm not sure how many people are currently available to approve it. The fix is really easy so if you want to fix your copy in the meantime, just change line 106 addons/godot_state_charts/state_chart.gd  like this:


Documents?

Thanks for the great work!
Wonder if there will be any documents about this?
I'm confused about several things, what is unique_id, horizontal_len, and what is q-0.1 - q-0.9 in the output?

unique_id = Series identifier id
q-0.X = Quantile N (https://en.wikipedia.org/wiki/Quantile)
horizontal_len = prediction length
context_len = history length


Multiple nbCodeToJsInit can't be interlaced

As has been discussed between me and @pietroppeter, the file size of the final HTML file can grow quite a bit if many nbCodeToJs are used as they will have duplicate code between them that could be reduced. For this, we have the nbCodeToJsInit + addCodeToJs API. But there is one problem with it, namely that we are using a global table https://github.com/pietroppeter/nimib/blob/631ea5520917146ab92c6b5b11ee39fbd8257668/src/nimib/jsutils.nim#L12 which is reset each time nbCodeToJsInit is called (or nbCodeToJs which calls it in turn). Its job is to for every script, rewrite gensymed symbols to a form the compiler will accept in the external nim file. And to make sure different ones are rewritten to the same one, eg a'gensym1 and a'gensym2 are both rewritten to a_1234567. But if the table is reset it won't know that both of them should be rewritten to the same symbol. So this means this code won't work inside a template:
template foo() =
  let script = nbCodeToJsInit:
    let a = 1
  # a will in general be gensymed as it is defined in a template
  nbCodeToJs: # here the table is reset
    discard
  script.addCodeToJs:
    echo a # so it has no idea that a variable `a` was defined in the previous block here

The hard part is that this must be done at compiletime so we can't just assign a random id to each script, because the macro has no idea what script each code block comes from.

I haven't tested it yet but it could perhaps work if we pass in the script variable to nimToJsString and use it as a key for a table containing the existing table for each script. Each script variable, given that it isn't defined in a proc, should then get a unique key to the table. In theory... :sweat_smile:

to be honest this does not seem a big issue for me (but I understand optimistically half of what you say when you talk gensym, so maybe you are onto something good and keep going... ;)).
to recap, the discussion was about the typewriter widget for nimislides, done with karax. My view on that is:

karax should be used more for complete apps that take most of the page (and it is nice to be able to have multiple karax apps on a page mostly to document and explain karax).
for widgets I would say it would be better to use vanilla ~js~ nim

In particular, for a typewriter widget (which is not necessarily specific to nimislides, could be used elsewhere in nimib too), I think a better approach would be to use something like typewriterjs. After all, another advantage of nim is an easy FFI :)
unrelated, can I try turning this into a discussion?

to be honest this does not seem a big issue for me (but I understand optimistically half of what you say when you talk gensym, so maybe you are onto something good and keep going... ;)).

It means that if nimib chooses to use nbCodeToJsInit + addCodeToJs for a component anytime in the future, it would be forbidden for any library or user who wanted to use that feature to use any of nbCodeToJsInit , nbCodeToJs, nbKarax as it would invalidate adding more of that component. So to me, it is a big issue. but yeah I don't understand fully all the stuff I say about gensym either :rofl:
Also something I don't particularly like about the nbCodeToJsInit is that you have to call script.addToDocAsJs at the end. And if we have a component we there is really anywhere we can call it behind the scenes, so we basically have to add a nbBeforeSave template or something that the user must remember to call before nbSave. Unless we create a script-mechanism of some sort like adding a private field nb.scripts which you can add your scripts to with nb.addScript(script) and in nbSave it will just loop through them and add them to the document.

karax should be used more for complete apps that take most of the page (and it is nice to be able to have multiple karax apps on a page mostly to document and explain karax).

I'm not really agreeing, but fair enough :+1: In my case it is really unnecessary to use Karax though.

or widgets I would say it would be better to use vanilla js nim

If it can be easily achievable, then yes :+1:

In particular, for a typewriter widget (which is not necessarily specific to nimislides, could be used elsewhere in nimib too), I think a better approach would be to use something like typewriterjs. After all, another advantage of nim is an easy FFI :)

The reason I rolled my own version was that I wanted to integrate it fully with Reveal's animation system so it only starts when reveal is showing it and fast forwards if one steps forward. But this library seems like it could actually work alongside Reveal as it has quite a lot of methods, so I'll investigate it. Thanks for the tip :D

unrelated, can I try turning this into a discussion?

Sure, go ahead :)

I'm still not sure how to deal with this. My proposed solution probably works, but it is a bit fragile if the user chooses to do anything fancy with the script variable. Our recent discussions about removing the typed branch of the macro don't change this sadly as it's about name mangling. I'll try and implement it in the PR with all the other changes, as it at least would be better than the current state of affairs.

I've hit an obstacle, we are defining the NbBlock first with result = NbBlock() in the nbJsFromCodeInit and the returned one is stored in script. So my original idea of just comparing the symbols won't work :(

Ah, sorry about that. Not sure how can I help I understand very little of this. :/

No worries, I'll try and think something out during your vacation. I'm honestly a bit tempted to make a separate non-mangled version for everything that doesn't need to be compiled in separate files (basically everything except Karax). It would instead be using block: to separate different scripts and all scripts would be compiled in the same file.

Yes I'm starting to convince myself the non-mangling block version should be the norm and Karax the exception (it's hidden inside nbKaraxCode so it doesn't matter if it's uglier). So The general structure would be:
# imports here

block: # script1
  Here we put everything that would have been in the separate file for script1
block: # script2
  Same here

One problem would be that imports must happen at the top-level and not inside a block. So either the init code is in the top-level and users are urged not to define global variables there (easy) or we try and extract the imports from the code blocks and paste them at the top. (hard if the import is in a non-trivial place like inside a template)
Another problem would be how to represent this big script in nimib. Perhaps by having a field nb.scripts: seq[NbBlock] which are processed accordingly in nbSave. This way the user shouldn't have to add the script to doc which is quite nice. A script is "registered" in the init call and added to the seq. Then we can modify the script as we like and the changes will be reflected in the seq as NbBlock is a ref type.

Something that's against the block-approach is that I don't know how {.exportc.} works if inside a block, perhaps it's not visible to the JS library then :thinking:

New idea:

Remove the init + addScript machinery
All nbJsFromCode are compiled in the same file and added to separate blocks. All global code (like imports and definitions of global variables) must be done inside nbJsGlobalFromCode.
nbJsFromCode shouldn't need the advanced gensym logic, it only has to make all gensym'd variables into valid identifiers.
nbKaraxFromCode uses the old advanced gensym logic as it's compiled in different files.

I like the idea but I am still not understanding some (likely basic) stuff:

what is keep us from being able to have nbJsFromCode do the simplest pipeline:

dump all the content of this single block in a single file, compile to js and then put that js in a script tag?
is it because in that way to identical nbJsFromCode would share the variables?
and then having them in a single file in separate blocks would allow us to have gensymed stuff?
I think the "natural" pipeline has a lot of appeal (maybe not the most powerful but easier to reason about) and maybe we can have that as default and add some opt-in features to change and go with a more complicated way (there was a forum thread where juan carlos shared some interesting stuff, but cannot find).

why would nbKaraxFromCode need to be compiled anyway in different files? same reason as for nbJsFromCode but in karax case the block thing would not work?

as for reference this was partly stimulated by the fact that the expectation that a simple three_js.nim example does not work with the current setup: https://pietroppeter.github.io/nblog/drafts/three_js.html

dump all the content of this single block in a single file, compile to js and then put that js in a script tag?
is it because in that way to identical nbJsFromCode would share the variables?

Yes exactly, Nim is very predictable in its naming-scheme so if we have this:
template:
  nbJSFromCode:
    var x: int

then if we compile this piece of code 10x, the variable x will have the same name in all of them, creating collisions/shadowing/chaos. The way we are solving it at the moment is to gensym all identifiers ourselves, so we knew all of them were unique. And thus avoiding collisions. This is the step that causes all of our troubles at the moment as well. And this step will only be needed for nbKarax if all of this works out.

and then having them in a single file in separate blocks would allow us to have gensymed stuff?

The opposite, having them in the same file in separate blocks allows us to "undo" all the gensym that might have been thrown upon us and let Nim redo it when compiling it. The biggest problem with gensym'd variables is that they aren't valid identifiers if you try to compile it. Example of how we won't need gensym:
var longVariableName = 1
block:
  var longVariableName = 2
block:
  var longVariableName = 3

This generates this JS:
var longVariableName_520093697 = [1];
Label1: {
  var longVariableName_520093698 = [2];
};
Label2: {
  var longVariableName_520093699 = [3];
};

They are all different variables without us having to gensym anything.

I think the "natural" pipeline has a lot of appeal (maybe not the most powerful but easier to reason about) and maybe we can have that as default and add some opt-in features to change and go with a more complicated way (there was a forum thread where juan carlos shared some interesting stuff, but cannot find).

The simplest pipeline possible is the following:

Read the code from AST.
Remove all gensyms
Turn code to string
Add code string to the "big js file"
"The big js" file is compiled when we do nbSave and added in a script tag.

why would nbKaraxFromCode need to be compiled anyway in different files? same reason as for nbJsFromCode but in karax case the block thing would not work?

Because to have multiple karax instances in the same page, you need to compile them all using different "karax ids". An you specify this id when you compile the file thorugh -d:kxi=id or something like that. So each karax component needs its own file because they all need unique compiler arguments passed to each and every one of them.
Ask more if anything still seems unclear :smile:

I just got an idea, it's crazy but might have some merit to it. The reason we need the crazy gensym-logic when working with Karax is that Nim will compile scripts in a template to the exact same variable names in the generated JS. This causes conflict if we have multiple of the same components in the same document. Now to the juicy part: what if we managed to get Nim to generate different names for these somehow by for example adding a bunch of no-ops at the top of the document and hoping it causes it to generate new variable names? And if we add different amounts of no-ops to each file, perhaps it could work? I'm going to try at least...

This might actually work! This Nim code produces the below javascript (notice the suffix of numbers for the variables):
let a = 1
let b = 2
let c = 3

var a_452984833 = 1;
var b_452984834 = 2;
var c_452984835 = 3;

Now if we add a new line at the top:
let h = 0

let a = 1
let b = 2
let c = 3

we get this js:
var h_452984833 = 0;
var a_452984834 = 1;
var b_452984835 = 2;
var c_452984836 = 3;

And notice the difference here:
a_452984834 vs a_452984833
By adding an extra line at the top, we have caused the gensym to change and these two files wouldn't conflict with each other. (Unless we are reeeeeaaally unlucky that it shifts the gensym to match another variable with the same name)

And the simplest solution seems to be to create a macro, which generates a new gensym, thus increasing the "counter":
macro bumpGensym() =
  let _ = gensym()

Then all of these files would generate difference variable names for its variables:
bumpGensym()
let a = 1 # a_452984839

bumpGensym()
bumpGensym()
let a = 1 # a_452984840

bumpGensym()
bumpGensym()
bumpGensym()
let a = 1 # a_452984841

I'm rambling like a mad man, but the summary of this rant is:
We can throw the crazy gensym logic in the trash bin!
And instead, we insert a unique number of bumpGensym() into each file.
We could still get into trouble if we have two variables named the same that are close to each other. But that is in my opinion still better than what we currently have.

I like it! It seems to be much better and easier to reason about! Will we apply this also to the JsCode pieces and avoid the global thing?
Is there a way to know what the last id from a previous block is and make sure that there are no overlaps? If we add a parameter startFromGensymId that we could use when compiling to js and we could also retrieve last id, we could be sure to avoid also the unfortunate collisions.

Anyway the idea of bumpGensym is also easier to understand and use by the user for the occasional collision

Will we apply this also to the JsCode pieces and avoid the global thing?

No, this "only" affects code written in different files. We still need the blocks when packing multiple nbJs into the same nim file. And if we use blocks, we will need the global block. And we do want to put them into the same file to reduce the final file size and most importantly the compile time.

Is there a way to know what the last id from a previous block is and make sure that there are no overlaps?

If we insert the bumpGensym() into the code string directly (instead of inserting it in the AST in macro), then I think we should in theory at least, be able to compute it from the generated javascript. It won't be trivial and it won't be perfect, but we would reduce the chance of collisions. Good idea! :D

Anyway the idea of bumpGensym is also easier to understand and use by the user for the occasional collision

Definitely :+1:

Is there a way to know what the last id from a previous block is and make sure that there are no overlaps?

I gave it a few more minutes of thought now, and I'm not so sure that this is feasible. Because we are starting from such random numbers, we don't know at which number we will start when we compile the next file. So we can't really know the needed bump.

The ability to interlace blocks is removed and all blocks are now in the same file so I'd say this issue can be closed as there are alternative ways to achieve the same thing now.


Feature/feature/207 start command

Coverage decreased (-0.8%) to 80.764% when pulling 5e83b15117d272f4280c75f2094e6b582b0b7368 on feature/feature/207_start-command into 356ab525c065a00752fa2e4df77c76b06595abfa on develop.


Adds feature to configure keycloak server with Scopes

This library is indeed really useful.
I was using this library to mock keycloak authorization token behavior. But one use case it was missing like when there is an implementation for getting authorization token with normal OAuth2 request using custom getAccessToken method. The scenario is like I have a project which has a method to provide authorization and it just takes clientId, clientSecret and tokenUrl and it has its own implementation to request JWT token. Here I have to check whether it is able to successfully get the access token and then able to provide access to the secured registry, and the secured registry checks for the required scopes needed to perform certain action (Read/Write etc).
So for this there is a need to configure the realm with clientScopes while configuring the server and by not using TokenConfig.
I have added this feature to initialize and start KeyCloakMock server with clientScopes. I have also added the required test cases to cover this implementation.
Please let me know incase you need further information.
Thanks
Signed-off-by: Mohammad Ghazanfar Ali Danish<EMAIL_ADDRESS>

Dear @ostrya
Did you had some time to check this PR ?
Actually I have another PR on my other project which is dependent on this. If this change is merged that would be easy to update the dependent PR.
Please let me know incase of any further information.
Thanks and Regards

Dear @ostrya @mrmarbury @Achimh3011 @aaschmid ,
Actually we are dependent on this change and our project which is Eclipse Basyx an Industry 4.0 project is pending due to this pull request.
I request you to please look into that change and merge it so that we can use it in our project.

Hi, sorry for the long delay. I had a really busy November and must then have lost track of this PR. I will have a look now.

Dear @ostrya
Many thanks for your suggestion I updated all the changes you requested.
One remark regarding the "please use a solution similar to the "resourcesToMapRolesTo" parameter:" comment:
As per your remarks I created a named singleton inside ServerModule. I tried to inject the named parameter into TokenGenerator's constructor but it was not working because the TokenGenerator is being used in SignatureComponent and due to this it was throwing error as [[Dagger/MissingBinding]](error: [Dagger/MissingBinding] @javax.inject.Named). So I thought that would be a major change because I might have to include the ServerModule.class in SignatureComponent like @Component(modules = {KeyModule.class, ServerModule.class}) . And thatswhy I did the same thing you suggested in TokenHelper class instead, i.e. how "resourcesToMapRolesTo" is also implemented.
Please let me know if this is fine otherwise I will do it in TokenGenerator.
Please review it and let me know for further changes.
Thanks and Regards

I'll just merge and adapt the tests on the main branch.


Remove test_oidc spam

Issue #503
Now looks normal:
$ nosetests -s -v tests/end_to_end/test_oidc.py
testMultipleOidcClients (tests.end_to_end.test_oidc.TestOidc) ... ok
testOidc (tests.end_to_end.test_oidc.TestOidc) ... ok
testOidcBadLoginKey (tests.end_to_end.test_oidc.TestOidc) ... ok
testOidcBadLoginPassword (tests.end_to_end.test_oidc.TestOidc) ... ok

----------------------------------------------------------------------
Ran 4 tests in 20.339s

OK

Looks good @dcolligan --- we need to do something sensible with the warnings from requests though. A CLI option for the server probably isn't a terrible idea.

@jeromekelleher pushed an update

@jeromekelleher pushed an update

Great, thanks @dcolligan. +1.

Looks like we've picked up a merge conflict here @dcolligan --- can you rebase please?

@jeromekelleher rebased and good to go


Quote the URL #23

url style was like this
@"curl -X PUT http://localhost:1213/v1/api/test
and now is changed to
@"curl -X PUT 'http://localhost:1213/v1/api/test'
closed #23

closed: #23


Tree-shaking for production environment drops component referred dynamically

Please provide us with the following information:

OS?

macOS Sierra, Ubuntu 16.04

Versions.

angular-cli: 1.0.0-beta.19-3
node: 6.9.1
os: darwin x64

Repro steps.

I've an angular-2 app build with angular-cli and one of the functionality is to list down a list of all the events and clicking on one event displays event details in 3 tabs - Overview, Photos & Tickets.
The way I've developed this is I've all the events stored in my db and also the content for Overview, Photos and Tickets tabs are in DB. So this way I can just have one component which renders 3 tabs and populates each tab content fetched from DB. Now the interesting bit is most of the events will have same layout and sections for each tab, but for some there can be different layout required. So to address this what I'm doing is along with the content of each tab (overview, photos, tickets), I also store the name of the component which will render this event.
I somehow managed to get the component from the name of the component using ComponentFactoryResolver and ViewContainerRef and all works fine, but problem arises when I try to make a build for  production environment  - ng build --prod - where angular-cli kicks webpack's tree-shaking and with that all my components which are not actually referenced/imported in the code but are dynamically created/rendered based on the data retrieved from db are dropped and my app crashes since it cannot find those components. In my NgModule definition, I've declared these dynamic components under entryComponents as well.

The log given by the failure.

error_handler.js:53Error: No component factory found for undefined
at e [as constructor] (errors.js:24)
at new e (component_factory_resolver.js:21)
at t.resolveComponentFactory (component_factory_resolver.js:30)
at tInjector.t.resolveComponentFactory (component_factory_resolver.js:55)
at t.ngOnChanges (control-factory.directive.ts:29)
at Wrapper_t.detectChangesInternal (wrapper.ngfactory.js:34)
at _View_t1.detectChangesInternal (component.ngfactory.js:146)
at _View_t1.t.detectChanges (view.js:229)
at _View_t0.t.detectContentChildrenChanges (view.js:247)
at _View_t0.detectChangesInternal (component.ngfactory.js:78)

Production builds minify the javascript so you can't and shouldn't rely on the type name.  Also, using a private member of ComponentFactoryResolver will more than likely cause problems in the future.
For your use case (at least from what is described), using an ngSwitch in the template would probably be effective and cut down the complexity as well.

This is the expected Angular behaviour.
You need to add the components to entryComponents property in your @NgModule.
Here's the FAQ for entry components:
https://angular.io/docs/ts/latest/cookbook/ngmodule-faq.html#!#q-entry-component-defined
Relevant quotes from that page:

Most application components are loaded declaratively. Angular uses the component's selector to locate the element in the template. It then creates the HTML representation of the component and inserts it into the DOM at the selected element. These are not entry components.
A few components are only loaded dynamically and are never referenced in a component template.
The bootstrapped root AppComponent is an entry component. True, its selector matches an element tag in index.html. But index.html is not a component template and the AppComponent selector doesn't match an element in any component template.

The compiler can't discover these entry components by looking for them in other component templates. We must tell it about them ... by adding them to the entryComponents list.

If your app happens to bootstrap or dynamically load a component by type in some other manner, you'll have to add it to entryComponents explicitly.

Why does Angular need entryComponents?

Entry components are also declared. Why doesn't the Angular compiler generate code for every component in @NgModule.declarations? Then we wouldn't need entry components.

The reason is tree shaking. For production apps we want to load the smallest, fastest code possible. The code should contain only the classes that we actually need. It should exclude a component that's never used, whether or not that component is declared.

In fact, many libraries declare and export components we'll never use. The tree shaker will drop these components from the final code package if we don't reference them.

If the Angular compiler generated code for every declared component, it would defeat the purpose of the tree shaker.

Instead, the compiler adopts a recursive strategy that generates code only for the components we use.

It starts with the entry components, then it generates code for the declared components it finds in an entry component's template, then for the declared components it discovers in the templates of previously compiled components, and so on. At the end of the process, it has generated code for every entry component and every component reachable from an entry component.

If a component isn't an entry component or wasn't found in a template, the compiler omits it.

@clydin yes ngSwitch is an option, its only that I didnt want to change the parent component structure every time I add a new component for different layout, that just adds more maintenance. And yes I agree using using a private member is not a good idea, when the impl changes and my code will break. Regardless, point remains the same, since the component is imported in @NgModule and is also part of entryComponents, why its dropped when treeshaking kicks in.
@Meligy regarding your suggestion You need to add the components to entryComponents property in your @NgModule., if you see the last line of my comment, I already have it.

The name gets mangled during minification; you can't rely on it.  You'll either need to keep a lookup table to map names to types or use the ngSwitch method.
Personally, I would prefer the minimal extra maintenance to the entire app breaking after a future angular point release.

The name gets mangled during minification

dont understand this quite well (may be because am quite to new to webpack/angular world) hence not sure even if to consider this as a real issue or incorrect way of implementation. I've changed my implementation to have a internal mapping of name to component and moved forward. Anyway thanks for your input @clydin

Very helpful answers from @clydin and @Meligy! I'm closing as you seem to have it sorted and because it's not something CLI specific per se. Most production builds would affect your code in the same way.

Well, I have bad news about this.
I just followed the example on Dynamic Component Loading, and trusting this:

If your app happens to bootstrap or dynamically load a component by type in some other manner, you must add it to entryComponents explicitly.

I expected my ngWizard to work, but nope. When I build it for production with:
ng build -prod -bh ./

My dynamic components are dropped by webpack, and I get the same error reported on this issue:

Error: No component factory found for undefined. Did you add it to @NgModule.entryComponents?

But I did:

@NgModule({
  declarations: [
    AppComponent,
    WizardComponent,
    WizardStepComponent,
    WizardStepDirective,
    InitialStepComponent,
    SecondStepComponent
  ],
  imports: [
    BrowserModule,
    ReactiveFormsModule,
    StoreModule.provideStore(Reducers),
    NgbModule.forRoot()
  ],
  entryComponents: [
    InitialStepComponent,
    SecondStepComponent
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

then I load them with:
loadStep() {
    if (this.step) {
      this.step.destroy();
    }

    let componentFactory = this._componentFactoryResolver.resolveComponentFactory(this.state.component);

    let viewContainerRef = this.stepHost.viewContainerRef;
    viewContainerRef.clear();

    this.step = viewContainerRef.createComponent(componentFactory);
  }

and the bundle for development works, -proddoesn't.
Thanks in advance for any tip @filipesilva

If 'this.state.conponent' is a string then my comment above applies:  the names are mangled in production builds. Good practice is to not rely on them directly as this is intentional and desired; it reduces the deployed size and obfuscates the code.
As to implementation suggestions, you can switch to a declarative approach to defining your wizard or use an API that uses the component types directly instead of their names.  For the second, you could potentially look at material2's dialog API for inspiration.

this.state.component is a Type not a String.
I'm passing InitialStepComponent and SecondStepComponent there.

I'm using ngrx/store to manage the states, and the initial state:
const initial: WizardState = {
  component: InitialStepComponent
}

results in { component: undefined }, but as said, works with ng build without -prod.

Had the exact same issue with similar architecture and had to hack a fix to remove uglify plugin from the build which is a suboptimal measure. Definitely need a more permanent resolution on this as using dynamic components is crucial to many applications.


Tardigrade Finance Doesn't Use Valoper Keys

$ tgrade keys show freshtgrade --bech val | grep address
Enter keyring passphrase:
  address: tgrade17h2x3j7u44qkrq0sk8ul0r2qr440rwgjca5y25

which matches https://tgrade.aneka.io/validators/tgrade17h2x3j7u44qkrq0sk8ul0r2qr440rwgjca5y25.
Despite could not determine bech32 prefix from valoper address: tgrade17h2x3j7u44qkrq0sk8ul0r2qr440rwgjca5y25, the only issue seems to be uptime tracking.

Thanks for the report! I'll look into this, already have code to handle these cases so should be easy to resolve the issue.


Doesn't build on Linux

I'm using Gentoo, and it does this:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Player-Core 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ Player-Core ---
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Player-Core ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 2 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ Player-Core ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 44 source files to /home/silent/JRGSS/Player-Core/target/classes
[WARNING] /home/silent/JRGSS/Player-Core/src/main/java/org/jrgss/api/win32/Win32Util.java:[3,52] com.sun.org.apache.xpath.internal.operations.Bool is internal proprietary API and may be removed in a future release
[WARNING] /home/silent/JRGSS/Player-Core/src/main/java/org/jrgss/Scissors.java:[10,43] com.sun.corba.se.impl.orbutil.graph.Graph is internal proprietary API and may be removed in a future release
[WARNING] /home/silent/JRGSS/Player-Core/src/main/java/org/jrgss/api/win32/User32.java:[8,52] com.sun.org.apache.xpath.internal.operations.Bool is internal proprietary API and may be removed in a future release
[WARNING] /home/silent/JRGSS/Player-Core/src/main/java/org/jrgss/api/win32/Win32Util.java:[3,52] com.sun.org.apache.xpath.internal.operations.Bool is internal proprietary API and may be removed in a future release
[WARNING] /home/silent/JRGSS/Player-Core/src/main/java/org/jrgss/Scissors.java:[10,43] com.sun.corba.se.impl.orbutil.graph.Graph is internal proprietary API and may be removed in a future release
[WARNING] /home/silent/JRGSS/Player-Core/src/main/java/org/jrgss/api/win32/User32.java:[8,52] com.sun.org.apache.xpath.internal.operations.Bool is internal proprietary API and may be removed in a future release
[WARNING] /home/silent/JRGSS/Player-Core/src/main/java/org/jrgss/api/win32/Win32Util.java:[3,52] com.sun.org.apache.xpath.internal.operations.Bool is internal proprietary API and may be removed in a future release
[WARNING] /home/silent/JRGSS/Player-Core/src/main/java/org/jrgss/Scissors.java:[10,43] com.sun.corba.se.impl.orbutil.graph.Graph is internal proprietary API and may be removed in a future release
[WARNING] /home/silent/JRGSS/Player-Core/src/main/java/org/jrgss/api/win32/User32.java:[8,52] com.sun.org.apache.xpath.internal.operations.Bool is internal proprietary API and may be removed in a future release
[WARNING] /home/silent/JRGSS/Player-Core/src/main/java/org/jrgss/api/win32/Win32Util.java:[3,52] com.sun.org.apache.xpath.internal.operations.Bool is internal proprietary API and may be removed in a future release
[WARNING] /home/silent/JRGSS/Player-Core/src/main/java/org/jrgss/Scissors.java:[10,43] com.sun.corba.se.impl.orbutil.graph.Graph is internal proprietary API and may be removed in a future release
[WARNING] /home/silent/JRGSS/Player-Core/src/main/java/org/jrgss/api/win32/User32.java:[8,52] com.sun.org.apache.xpath.internal.operations.Bool is internal proprietary API and may be removed in a future release
[WARNING] /home/silent/JRGSS/Player-Core/src/main/java/org/jrgss/api/win32/Win32Util.java: Some input files use unchecked or unsafe operations.
[WARNING] /home/silent/JRGSS/Player-Core/src/main/java/org/jrgss/api/win32/Win32Util.java: Recompile with -Xlint:unchecked for details.
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ Player-Core ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /home/silent/JRGSS/Player-Core/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ Player-Core ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ Player-Core ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ Player-Core ---
[INFO] Building jar: /home/silent/JRGSS/Player-Core/target/Player-Core-1.0-SNAPSHOT.jar
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ Player-Core ---
[INFO] Installing /home/silent/JRGSS/Player-Core/target/Player-Core-1.0-SNAPSHOT.jar to /home/silent/.m2/repository/org/jrgss/Player-Core/1.0-SNAPSHOT/Player-Core-1.0-SNAPSHOT.jar
[INFO] Installing /home/silent/JRGSS/Player-Core/pom.xml to /home/silent/.m2/repository/org/jrgss/Player-Core/1.0-SNAPSHOT/Player-Core-1.0-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.874 s
[INFO] Finished at: 2017-03-22T18:04:12-07:00
[INFO] Final Memory: 24M/431M
[INFO] ------------------------------------------------------------------------
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Player-Desktop 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ Player-Desktop ---
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Player-Desktop ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /home/silent/JRGSS/Player-Desktop/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ Player-Desktop ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 2 source files to /home/silent/JRGSS/Player-Desktop/target/classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ Player-Desktop ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /home/silent/JRGSS/Player-Desktop/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ Player-Desktop ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ Player-Desktop ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ Player-Desktop ---
[INFO] Building jar: /home/silent/JRGSS/Player-Desktop/target/Player-Desktop-1.0-SNAPSHOT.jar
[INFO]
[INFO] --- maven-shade-plugin:2.3:shade (default) @ Player-Desktop ---
[INFO] Including org.jrgss:Player-Core:jar:1.0-SNAPSHOT in the shaded jar.
[INFO] Including libgdx:gdx:jar:1.6.0 in the shaded jar.
[INFO] Including org.projectlombok:lombok:jar:1.14.0 in the shaded jar.
[INFO] Including org.jruby:jruby-complete:jar:1.7.19 in the shaded jar.
[INFO] Including org.ini4j:ini4j:jar:0.5.2 in the shaded jar.
[INFO] Including libgdx:gdx-freetype:jar:1.6.0 in the shaded jar.
[INFO] Including libgdx:gdx-controllers:jar:1.6.0 in the shaded jar.
[INFO] Including org.jetlang:jetlang:jar:0.2.12 in the shaded jar.
[INFO] Including com.google.guava:guava:jar:18.0 in the shaded jar.
[INFO] Including libgdx:gdx-backend-lwjgl:jar:1.6.0 in the shaded jar.
[INFO] Including libgdx:gdx-natives:jar:1.6.0 in the shaded jar.
[INFO] Including libgdx:gdx-backend-lwjgl-natives:jar:1.6.0 in the shaded jar.
[INFO] Including libgdx:gdx-freetype-natives:jar:1.6.0 in the shaded jar.
[INFO] Including libgdx:gdx-controllers-desktop:jar:1.6.0 in the shaded jar.
[INFO] Including libgdx:gdx-controllers-desktop-natives:jar:1.6.0 in the shaded jar.
[INFO] Replacing original artifact with shaded artifact.
[INFO] Replacing /home/silent/JRGSS/Player-Desktop/target/Player-Desktop-1.0-SNAPSHOT.jar with /home/silent/JRGSS/Player-Desktop/target/Player-Desktop-1.0-SNAPSHOT-shaded.jar
[INFO] Dependency-reduced POM written at: /home/silent/JRGSS/Player-Desktop/dependency-reduced-pom.xml
[INFO]
[INFO] --- maven-antrun-plugin:1.7:run (default) @ Player-Desktop ---
[WARNING] Parameter tasks is deprecated, use target instead
[INFO] Executing tasks

main:
Creating app bundle: Vidar Demo
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.102 s
[INFO] Finished at: 2017-03-22T18:04:20-07:00
[INFO] Final Memory: 25M/337M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (default) on project Player-Desktop: An Ant BuildException has occured: java.nio.file.NoSuchFileException: /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Info.plist
[ERROR] around Ant part ...<bundleapp identifier="org.vidar.VidarDemo" displayname="Vidar Demo" mainclassname="org.jrgss.Desktop" outputdirectory="target" name="Vidar Demo">... @ 6:149 in /home/silent/JRGSS/Player-Desktop/target/antrun/build-main.xml
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

It appears to be looking for an OSX path, Linux doesn't use /Library

yeah, that is coming from that appbuilder jar
seems to make a package for macs
look in the build.sh script, and you will see if simply copies the final .jar out of the Player-Desktop/target/ folder
the .jar should be there ready for you to use


Add Rectified Image Example

Adds a new Example to Glint which demonstrates how to receive rectified leap image data from the GPU with very low performance overhead.   This example also demonstrates how to set up a triple-buffered scheme for receiving images continuously within Glint.   Also the existing example was modified to take advantage of ".LoadRawTextureData()" which results in a ~10x speed-up.
The .dll in this PR has also been modified to support unsigned byte and single-channel float textures (which have significantly lower transfer overhead).
Also the redundant array copy in LeapImageRetriever.cs has been removed as well.

Added raw image visualization
Fixed garbage.


Fixing typos in main.py

There were some minor typos in the code.

Thanks for the pull request, everything looks nice. Will push


Add example_group.remove_example and example_group.add_example

Tests are green. Once the PR passes code review then I'll squash to one commit.

If there's something else I should do for this PR, let me know.

Thanks!

This LGTM, the memory leak could possibly warrant further investigation as I can't see how that's related.

I'll submit a new PR with that change reverted so you can see it fail on Travis.


python312Packages.microsoft-kiota-serialization-json: 1.2.0 -> 1.3.0, python312Packages.msgraph-sdk: 1.4.0 -> 1.5.4

Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 332401 run on x86_64-linux 1

15 packages built:

authentik
prowler
prowler.dist
python311Packages.microsoft-kiota-serialization-json
python311Packages.microsoft-kiota-serialization-json.dist
python311Packages.microsoft-kiota-serialization-multipart
python311Packages.microsoft-kiota-serialization-multipart.dist
python311Packages.msgraph-sdk
python311Packages.msgraph-sdk.dist
python312Packages.microsoft-kiota-serialization-json
python312Packages.microsoft-kiota-serialization-json.dist
python312Packages.microsoft-kiota-serialization-multipart
python312Packages.microsoft-kiota-serialization-multipart.dist
python312Packages.msgraph-sdk
python312Packages.msgraph-sdk.dist


TV2 Sync: Merge current develop into R49

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

This PR merges changes from the current develop branch at TV2 Denmark into the current NRK Release

What is the current behavior? (You can also link to an open issue here)

What is the new behavior (if this is a feature change)?

Other information:

Status

[ ] Code documentation for the relevant parts in the code have been added/updated by the PR author
[ ] The functionality has been tested by the PR author
[ ] The functionality has been tested by NRK

Codecov Report
Base: 67.99% // Head: 67.94% // Decreases project coverage by -0.04% :warning:

Coverage data is based on head (d493c33) compared to base (60f0e0b).
Patch coverage: 34.09% of modified lines in pull request are covered.

:exclamation: Current head d493c33 differs from pull request most recent head 0fce71e. Consider uploading reports for the commit 0fce71e to get more accurate results

Additional details and impacted files
@@              Coverage Diff              @@
##           release49     #810      +/-   ##
=============================================
- Coverage      67.99%   67.94%   -0.05%
=============================================
  Files            283      283
  Lines          34946    35003      +57
  Branches        4621     4623       +2
=============================================
+ Hits           23761    23783      +22
- Misses         10736    10771      +35
  Partials         449      449

Impacted Files
Coverage Δ

meteor/server/api/blueprints/migrationContext.ts
99.33% <ø> (ø)

meteor/server/api/showStyles.ts
14.89% <0.00%> (-5.70%)
:arrow_down:

meteor/server/migration/0_1_0.ts
84.37% <ø> (ø)

meteor/server/api/ingest/rundownInput.ts
16.48% <5.88%> (+<0.01%)
:arrow_up:

meteor/server/migration/X_X_X.ts
60.00% <42.85%> (-40.00%)
:arrow_down:

meteor/lib/api/showStyles.ts
100.00% <100.00%> (ø)

meteor/lib/collections/ShowStyleVariants.ts
100.00% <100.00%> (ø)

...ckages/job-worker/src/ingest/expectedMediaItems.ts
61.15% <100.00%> (+2.56%)
:arrow_up:

packages/job-worker/src/ingest/expectedPackages.ts
58.86% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.