Modernize directory structure and refactor chat adapters

Move scripts/stackstorm.js and lib/ into src/
I created the src/ directory and moved the code into it. This is done to separate the code from the repository "metadata" files, like package.json and test files.
Refactor chat provider adapters into their own modules
I broke up post-data.js and format-data.js into modules for their constituent chat providers. All of the provider-specific code is gathered up into one module, and all other modules are agnostic to the chat provider.
Thanks to inheritance, this greatly simplifies all adapters, because now they all inherit from the DefaultMessagingHandler and only override the functions they need to. This is especially true for the Slack-like adapters (Mattermost, Cisco Spark, and Rocketchat), so much so that consolidating and simplifying them down further can be done in the future (once we have a test system for them).
Breaking the adapters up should now also make it more obvious to casual users how to fix things for their provider adpater, and also how to create a new provider adapter from scratch. Hopefully this translates into more "drive by fixes".
Finally, because all of the adapters are broken up and simplified, we can (if we so choose) rewrite individual ones in coffeescript, which might be a bit more readable than Javascript and is reverse-compatible with Javascript. Rewriting them to use ES6 (along with class and "proper" inheritance with the extends keywords) is also a possibility.
Rename tests/ to test/
It's a small change, but I moved the tests from being in tests/ to test/. This makes mocha find the tests automatically.

https://github.com/hubotio/hubot-mock-adapter
http://operatorerror.org/2013/11/create-npm-package-for-hubot-script/
https://github.com/hubot-scripts/hubot-example/tree/d82ade38971b8a22a7eb37aaffc49ccaafd5d05c

Update CHANGELOG.rst to use ReStructured Text syntax
We have been surrounding words with single backticks to indicate fixed-width fonts, which is fine for Markdown files, but doesn't have the same effect for ReStructured Text files. Since the changelog is an RST file, I updated the syntax to be compliant with RST.
Additional Notes
I changed the comments on the copyright notice lines to single-line comments so that gulp lint passes properly. Previously it did not consider the notices when they were within multi-line comments.
Coverage Differential
Test coverage went from:
------------------------|----------|----------|----------|----------|-------------------|
File                    |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
------------------------|----------|----------|----------|----------|-------------------|
All files               |    89.11 |    87.13 |    89.83 |    88.81 |                   |
 lib                    |       99 |    99.57 |    98.86 |    98.96 |                   |
  command_factory.js    |      100 |      100 |      100 |      100 |                   |
  format_command.js     |      100 |      100 |      100 |      100 |                   |
  format_data.js        |      100 |      100 |      100 |      100 |                   |
  post_data.js          |      100 |      100 |      100 |      100 |                   |
  slack-messages.js     |      100 |      100 |      100 |      100 |                   |
  slack_monkey_patch.js |    28.57 |       80 |       50 |    28.57 |    17,18,19,40,41 |
  utils.js              |      100 |      100 |      100 |      100 |                   |
 scripts                |    62.96 |    60.55 |    63.33 |    62.96 |                   |
  stackstorm.js         |    62.96 |    60.55 |    63.33 |    62.96 |... 09,410,411,444 |
------------------------|----------|----------|----------|----------|-------------------|

to:
---------------------|----------|----------|----------|----------|-------------------|
File                 |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
---------------------|----------|----------|----------|----------|-------------------|
All files            |    89.35 |    87.13 |    87.76 |    89.05 |                   |
 src                 |    62.16 |    60.55 |    63.33 |    62.16 |                   |
  stackstorm.js      |    62.16 |    60.55 |    63.33 |    62.16 |... 02,403,404,437 |
 src/lib             |      100 |      100 |      100 |      100 |                   |
  command_factory.js |      100 |      100 |      100 |      100 |                   |
  format_command.js  |      100 |      100 |      100 |      100 |                   |
  slack-messages.js  |      100 |      100 |      100 |      100 |                   |
  utils.js           |      100 |      100 |      100 |      100 |                   |
 src/lib/adapters    |    98.72 |      100 |    97.67 |    98.68 |                   |
  botframework.js    |      100 |      100 |      100 |      100 |                   |
  default.js         |      100 |      100 |      100 |      100 |                   |
  hipchat.js         |      100 |      100 |      100 |      100 |                   |
  index.js           |      100 |      100 |      100 |      100 |                   |
  mattermost.js      |      100 |      100 |      100 |      100 |                   |
  matteruser.js      |      100 |      100 |      100 |      100 |                   |
  msteams.js         |      100 |      100 |      100 |      100 |                   |
  rocketchat.js      |      100 |      100 |      100 |      100 |                   |
  slack.js           |    94.37 |      100 |       90 |    94.12 |       48,49,50,55 |
  spark.js           |      100 |      100 |      100 |      100 |                   |
---------------------|----------|----------|----------|----------|-------------------|

Note that the coverage Slack adapter decreased due to moving the Slack monkey patch out of its own module (used to be lib/slack_monkey_patch.js) into the chat provider constructor.
Further Work
The Slack-like adapters can be simplified even further, primarily the Mattermost adapter since we will eventually have end-to-end tests with that.
Rewriting/refactoring the chat adapters individually with Coffeescript or ES6's class and extends is also now possible and drastically easier to implement than before.
Furthermore, the src/stackstorm.js module can still be simplified, similar to how #133 refactors it. This was not done yet because it did have as good of test coverage as the chat adapters, which would necessitate the need for more manual tests, or a lot more effort put into automated tests. However, if that refactoring is done properly, each function should be easier to test individually (eg: unit tests), instead of testing with integration tests (eg: mocking up an environment and/or HTTP responses and running the code singularly from the src/stackstorm.js entrypoint) like we currently do. Ironically, this should hopefully end up reducing the overall amount of tests we need to write, which would also keep our test configuration simple (eg: do most/all of it with Travis tests), make our tests easier to write (unit tests vs. integration test), more reliable (no reliance on st2cicd for end-to-end tests), and faster (no need to run Travis tests and then kick off end-to-end tests on st2cicd).

@armab Updated to use adapters instead of messaging_handler directory, renamed the classes/functions to match, changed all of the requires around, and updated tests.


Compatibility (Neovim): Glitches in wrapped text rendering and cursor position

Text that wraps to a new line is followed by a number of empty lines (the number of empty lines changes when scrolling up and down.
After the cursor reaches the topmost line, pressing K takes the cursor to the neovim command palette (at the bottom) and messes up the line numbers as well (visible in screenshot, line numbers are relative).
Shell background color is blue.
Neovim background color is black.

I think this should now be fixed. Could you please check, @kunalmohan ?

I think this should now be fixed. Could you please check, @kunalmohan ?

@imsnif Thanks! This issue is now fixed. But I see a couple of new bugs now. I'll create a new issue for them.

@imsnif Thanks! This issue is now fixed. But I see a couple of new bugs now. I'll create a new issue for them.

Fixed by #137

Fixed by #137


Pub install (or update) failed, [-1073741819]

This issue was originally filed by @brunoleguernic

What steps will reproduce the problem?
1.Create a web-ui app
2.run pub install
3. I try remove cache, and same result.
What is the expected output? What do you see instead?
Unable to open file: C:/Users/utilisateur/dart/titi/packages/web_ui/component_build.dart'file:///C:/Users/utilisateur/dart/titi/build.dart': Error: line 2 pos 1: library handler failed
import 'package:web_ui/component_build.dart';
--- 20 août 2013 08:27:17 Running pub install ... ---
Pub install failed, [-1073741819]
What version of the product are you using? On what operating system?
Windows 7 French
version Dart r26297
Please provide any additional information below.
with previous version, no problem.

This issue has been moved to dart-lang/pub#616.


Better vi-mode

This looks like a useful change.
I think you could modify the code a bit to be portable to more terminal types.
if [ "$TERM" = "xterm-256color" ] || [ "$TERM" = "screen-256color" ]; then

These cursor control sequences don't require 256 colors, so they would work with lower-color or b&w xterm and screen variants. And modern urxvt supports them, too. You might want to test for the patterns xterm*, screen*, and rxvt-unicode* instead of just xterm-256color and screen-256color. Especially since several terminal emulators seem to default to declaring $TERM as plain xterm even though they support 256 colors.
bindkey '^[[Z' reverse-menu-complete

The terminfo capability kcbt stands for "back-tab", and shift-tab gets bound to it. So you could do bindkey "$terminfo[kcbt]" reverse-menu-complete instead, for portability (and readability).

I've modified the if statement to match the terminals as you suggested. Unfortunately your other suggestion doesn't seem to work - kcbt is not found in my $terminfo variable...

Darn; I thought kcbt was pretty widely supported. What $TERM value are you using and what OS are you on? (And what distribution/version if Linux?) I found it in most of the entries (and all the ones for common emulators) I checked in OS X 10.9 and Debian 7. (Though they all use the same escape sequence, so there's probably no actual portability impact to not using terminfo.)
I guess you could still use something like bindkey ${terminfo[kcbt]:-^\[\[Z} reverse-menu-complete, which would give you portability to terminals with different sequences, and fall back to the hardcoded xterm style sequence if the terminfo entry is missing kcbt.

This needs to be rebased after the recent vi-mode key-binding changes.

this PR fix issues with shift-tab bug with vim-mode. Anytime to get merged soon?

This PR should be rebased and contextualized to the new PR #5113 by @apjanke.
@dragonxlwang in the meantime, you can add the bindkey command to your zshrc file to get the proper shift-tab behavior:
bindkey '^[[Z' reverse-menu-complete

Consider adding TERM=tmux and TERM=tmux256color terminal types:
https://wiki.archlinux.org/index.php/tmux#256_colors


Update DataResultTree to start at origin, remove "groups", and introduce "projected" subspace

As part of https://github.com/rerun-io/rerun/issues/4899 we need to update the way that the DataResultTree is presented in the UI:

The top-most entity in the group should always be the $origin of the SpaceView.
The existing notion of "Groups" goes away. Every node in the tree is an entity path and the hierarchy should match that of the tree.

Open design question: the group-elements in the current DataQueryResult currently have their override path set to the the recursive override root. Without the existence of selectable group-elements it's unclear how recursive overrides should be set.  Recursive overrides could be a separate section of the selection panel, or a checkbox next to the different UI elements such as "apply to children".

Any items that are not part of the $origin should instead be in a separate "Projected" sub-space that starts at "/" instead of $originl.

Mock-up of future UI:

For visibillity: start with simplest behavior: visibillity for an entity -> hides entity + children.
This regresses our current abillity to hide a parent entity, while leaving the "group" (including children) visible.
We will need to introduce new UI mechanism to handle the complexity of self vs self+children.


Add language Brazilian Portuguese

Here's my cooperation.

@Kyo-70 thanks for merging the Brazilian Portuguese language in the code. I've completed the change and the language is now available as PortugueseBR.
You can find it in the latest version:
https://github.com/yaronzz/Tidal-Media-Downloader-PRO/actions/runs/2708693461

Thank you so much, but I have a question, can I send updates here? because the one I did I found some agreement errors there I wanted to update.

@Kyo-70 you just should clone the code, change what is wrong and send it in.


skywalking maybe not supports some concepts in zipkin: rc rs ss sc

Please answer these questions before submitting your issue.

Why do you submit this issue?
[ ] Question or discussion
Skywalking maybe not supports some concepts in Zipkin: cr cs ss sr

Question

What do you want to know?

Skywalking supports compute the relation in service or endpoint scope. But the latency maybe not successful or not clear.
for computing the endpoint relation:

the latency is only the entry span cost (ss - sr) rather sr - cs in Zipkin.
So we cannot monitor the network latency in Skywalking, is it right? Is there any other way to solve it?.

You should understand what is endpoint relationship. It is not the client server relationship.
It is entrance uri to upstream entrance uri.

sorry, I mistake the relations. But monitor the cost (sr - cs) is also a common condition, especially in MQ condition.  Is there any other way to solve it by Skywalking?

For a trace view, it is easy, same in SkyWalking and Zipkin.
But from my guessing, you are asking the statistics of the MQ consuming. That is not available in the Zipkin too. So, if you want to talk about that, the only high-performance way is to propagate the sending time(header injecting timestamp) in the extension header, https://github.com/apache/skywalking/blob/master/docs/en/protocols/Skywalking-Cross-Process-Propagation-Headers-Protocol-v3.md#extension-header-item.
If you are going to implement this, we should consider making it optional, such as

sw8-x = 0-mq_timestamp or -mq_timestamp
sw8-x = 0

FYI @arugal Would this be a break for the go2sky side if we enhance in this way?

For a trace view, it is easy, same in SkyWalking and Zipkin.
But from my guessing, you are asking the statistics of the MQ consuming. That is not available in the Zipkin too. So, if you want to talk about that, the only high-performance way is to propagate the sending time(header injecting timestamp) in the extension header, https://github.com/apache/skywalking/blob/master/docs/en/protocols/Skywalking-Cross-Process-Propagation-Headers-Protocol-v3.md#extension-header-item.
If you are going to implement this, we should consider making it optional, such as

sw8-x = 0-mq_send_timestamp or -mq_send_timestamp
sw8-x = 0

FYI @arugal Would this be a break for the go2sky side if we enhance in this way?

The extension header is not currently supported by go2sky.


Registration Bug

Describe the bug
After submitting your information in registration page, your information keep existing in the page.
Expected behavior
I think you should clear all these information after user hitting submit button
Screenshots

this is related to your web browser... this feature is called (autofill)
It save the submitted inputs to use it again within the same website


ObjectExtensions.cs:20-22: 60m/DEV Define approach for...

The puzzle 80-788167ac from #80 has to be resolved:
https://github.com/DenisZhukovski/ObjectToTest/blob/41708f5b0298f676de152bada0763bb11ac4c58f/src/Extensions/ObjectExtensions.cs#L20-L22
The puzzle was created by Stanislau on 29-Nov-22.
role: DEV.
If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

The puzzle 80-788167ac has disappeared from the source code, that's why I closed this issue.

@0pdd 2 puzzles #91, #92 are still not solved.

@0pdd the puzzle #91 is still not solved; solved: #92.

@0pdd 3 puzzles #100, #96, #98 are still not solved; solved: #91, #92, #97.

@0pdd 4 puzzles #100, #103, #96, #98 are still not solved; solved: #91, #92, #97.

@0pdd 6 puzzles #100, #105, #106, #107, #96, #98 are still not solved; solved: #103, #91, #92, #97.

@0pdd 9 puzzles #100, #106, #107, #110, #111, #112, #113, #96, #98 are still not solved; solved: #103, #105, #91, #92, #97.

@0pdd 8 puzzles #100, #106, #107, #110, #112, #124, #125, #96 are still not solved; solved: #103, #105, #111, #113, #91, #92, #97, #98.

@0pdd 11 puzzles #106, #107, #110, #112, #124, #137, #138, #139, #140, #141, #142 are still not solved; solved: #100, #103, #105, #111, #113, #125, #91, #92, #96, #97, #98.

@0pdd 10 puzzles #107, #110, #112, #124, #138, #139, #140, #141, #142, #160 are still not solved; solved: #100, #103, #105, #106, #111, #113, #125, #137, #91, #92, #96, #97, #98.

@0pdd 9 puzzles #107, #110, #112, #124, #138, #139, #140, #141, #142 are still not solved; solved: #100, #103, #105, #106, #111, #113, #125, #137, #160, #91, #92, #96, #97, #98.

@0pdd the puzzle #140 is still not solved; solved: #100, #103, #105, #106, #107, #110, #111, #112, #113, #124, #125, #137, #138, #139, #141, #142, #160, #91, #92, #96, #97, #98.


Pipe: Make error message reported by pipe parameter check clearer

Description
As title.
Example:
create pipe extractor_realtime_1
with extractor ('extractor'='iotdb-extractor', 'extractor.pattern'='root.aligned','extractor.history.enable'='false','extractor.realtime.enable'='0')
with connector ('connector'='iotdb-thrift-connector', 'connector.ip'='<IP_ADDRESS>', 'connector.port'='6667');

Before fix:

After fix:

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (09b7e86) 49.10% compared to head (b2598e3) 49.10%.
Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff            @@
##             master   #11695   +/-   ##
=========================================
  Coverage     49.10%   49.10%
- Complexity    24982    24989    +7
=========================================
  Files          2817     2817
  Lines        176773   176781    +8
  Branches      21186    21190    +4
=========================================
+ Hits          86804    86816   +12
+ Misses        89969    89965    -4

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


[kudu1] other LAN hosts resolved by ping but not by ssh

$ ping ponin-p50.local
PING ponin-p50.local (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.293 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=0.266 ms
64 bytes from <IP_ADDRESS>: icmp_seq=3 ttl=64 time=0.285 ms
64 bytes from <IP_ADDRESS>: icmp_seq=4 ttl=64 time=0.313 ms
64 bytes from <IP_ADDRESS>: icmp_seq=5 ttl=64 time=0.310 ms
^C
--- ponin-p50.local ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 8044ms
rtt min/avg/max/mdev = 0.266/0.293/0.313/0.023 ms
$ ssh -v ponin-p50.local
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
ssh: Could not resolve hostname ponin-p50.local: Name or service not known
$ ssh -v ponin-p50.local
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
ssh: Could not resolve hostname ponin-p50.local: Name or service not known
$ ping ponin-t440s.local
PING ponin-t440s.local (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=2.79 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=19.5 ms
64 bytes from <IP_ADDRESS>: icmp_seq=3 ttl=64 time=43.1 ms
^C
--- ponin-t440s.local ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 11007ms
rtt min/avg/max/mdev = 2.796/21.842/43.137/16.546 ms
$ ssh -v ponin-t440s.local
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
ssh: Could not resolve hostname ponin-t440s.local: Name or service not known

On p50 I confirmed ssh is installed:
$ sudo apt-get install --reinstall ssh

Other hosts in my LAN doesn't have this issue.
kudu1 can still ssh into the same hosts above by ip address.


Deduplicate registrations

The current spec accept duplicate registrations. Cancel operations should run only once. And the current behavior is different from addEventListener method. Cancellation would be better to align with the common behavior if you don't have an especially reason.
const token = new CancellationToken();
const source = new CancellationTokenSource([token]);
let cnt = 0;
const f = () => console.log(++cnt);
source.token.register(f); // called.
source.token.register(f); // called but shouldn't be so.
source.cancel();

There is no other instance of deduplication of callbacks in ecma262 today, I am not certain I see why we should start now.
For example, its perfectly acceptable to do the following today:
let resolve;
const promise = new Promise(r => resolve = r);
let cnt = 0;
const f = () => console.log(++cnt);
promise.then(f);
promise.then(f);
resolve();

An instance exists in whatwg.
https://dom.spec.whatwg.org/#eventtarget

The event listener is appended to target’s list of event listeners and is not appended if it is a duplicate, i.e., having the same type, callback, and capture values.

document.addEventListener('click', console.log, { once: true });
document.addEventListener('click', console.log);

Another, Node APIs accept duplicate registrations but I think dedup is a important property of Cancellation.

Ah not true. In the internal management of duplicate callback functions, Cancellation doesn't have the same problem as addEventListener because Cancellation doesn't have removeEventListener-like methods such as CancellationToken.unregister method. So dedup is not required as the solution of that problem on the management. I drop my vote.


feat: node-wide default author for documents

Description
This adds the notion of a node-wide default author for documents.
The default author can be retrieved via iroh.authors.default(). On persistent nodes, on first start a new author is created and its public key is saved to IROH_DATA_DIR/default-author (as a base32 string). For in-memory nodes, a new author is created.
When trying to delete the default author via iroh.authors.delete, an error is returned, stating that the default author may not be deleted.
The default author can not be changed.
If the default-author file is deleted manually, a new default author will be created on the next start.
Breaking Changes

Added AuthorClient::default(), which returns the author id of a single default author per node
iroh::util::path::IrohPaths enum gained new variant DefaultAuthor

Notes & open questions
There are certainly other ways to go around the interactions between the iroh-local notion of a default author and the author database in the iroh-docs store. Quoting from discord (this PR implements option B.1):

if you delete the default author with the author api, what should happen?

A: default author remains in place, further operations with it fail
A.1: on next start new default author is created automatically
A.2: next start fails, says "delete default_author file by hand"
B: deletion of default author fails.
B1: that's the way it is, only way to delete it is to delete default-author file by hand and restart the node
B2: add set_default_author rpc call
C: a new default author is created and set always & automatically

Change checklist

[x] Self-review.
[x] Documentation updates if relevant.
[x] Tests if relevant.
[x] All breaking changes documented.

add set_default_author rpc call

I think this would be good to have, but we can add it later when needed

I think this would be good to have, but we can add it later when needed
added this in the most recent commit!


How do i remove assert function calls

I have written an assert function which checks the "development mode" and then check the condtion and throws if the condtion is false. In the production mode, webpack removes the function body.
I would like to remove the call - assert(condition()) - scattered inside my code base in production. I am ok with an empty assert function  call but the assert argument - condition() - can be an expensive function call. That's what i want to avoid.

One way is to check  process.env.development && assert(condition()) everywhere.
Another way is that i can pass a predicate function to assert  and let the assert evaluate it after  the development mode check.
Another way is to use some webpack loader to strip function calls. Not sure, how safe it is and  I think it is not possible to do that without ejecting.

what is the correct way to do this?

You should use the first one. In production mode, this check will become false && assert(condition()) which will allow the miniifier to remove unused assert function from your code completely.
Here is a great article for you How Does the Development Mode Work?

I am using the check -  process.env.development -  inside assert() function and evaluate the condtion only when process.env.development is true.
If i have to use that while calling assert, then everyone needs to remember to prepend  assert() call with  process.env.development .
It would be nice if all the assert would have been  removed like C#/JAVA (without ejecting)


Update README.md

Added some links to contributors.

Wow, this is the kindest pull request I've ever received, thanks for the typo corrections also! :)


Update maker-appimage

Please check if the PR fulfills these requirements

[x] The commit message follows our guidelines

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Updates maker-appimage to be compatible with the latest changes.

What is the current behavior? (You can also link to an open issue here)
As reported on Discord, building the Linux AppImage fails due to using an older version of maker-appimage.

What is the new behavior (if this is a feature change)?
maker-appimage is now working again with no issues.

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
None that I'm aware of.

Other information:

I wish I'd seen this before spending the morning debugging this issue :-) I ended up using an even newer version of the module which ended up requiring switching to Node 21. It seems to build okay but I have no way of testing it currently. If there's still issues with this version let me know and I'll roll back to this one you've used here. Thanks for looking into this!


Parsing Help command contents into a seperate TOML file

Probably would help add commands to the list a lot more easily, than trying to flood Discord help.py and Revolt help.py

I guess here's an example of what could work
[hello]
name = "Hello"
desc = "Hello Command"
syntax = "{botPrefix}hello"

[httpcat]
name = "HTTP Cat"
desc = "Hello Command"
syntax = "{botPrefix}httpcat [http code]"

[ghr]
name = "GitHub Repos"
desc = "Preview GitHub Repo's Details"
syntax = "{botPrefix}ghr [org/username] [repo name]"

[memoryleak]
name = "Memory Leak"
desc = "Funni Memory Leak video go brrr"
syntax = "{botPrefix}memoryleak"

[gasp]
name = "Gasp"
desc = "Just find out for yourself..."
syntax = "{botPrefix}gasp"

[token]
name = "Token Leak"
desc = "So about that funky config.toml..."
syntax = "{botPrefix}token"

[devtools]
name = "Discord Devtools"
desc = "Discord disabled Dev Tools by default now, here's how to get it back"
syntax = "{botPrefix}devtools"

[headcrab]
name = "Headcrab"
desc = "Do you just... want someone to perish? Throw a headcrab at them!"
syntax = "{botPrefix}headcrab [@username]"

There's... probably a better way of doing this. There might be a way to get all the contents from the annotations I use. I believe Storm has pointed out a way to do this but I don't remember.


Fix(BaseModel.copy) Do not ignore Extra.ignore configuration in copy with update #3732

Change Summary
Do not add extra fields to the model on copy with update method once Config.extra = Extra.ignore is set.
Related issue number
Fix: #3732
Checklist

[x] Unit tests for the changes exist
[x] Tests pass on CI and coverage remains at 100%
[x] Documentation reflects the changes where applicable
[x] changes/<pull request or issue id>-<github username>.md file added describing change
(see changes/README.md for details)
[x] My PR is ready to review, please add a comment including the phrase "please review" to assign reviewers

@PrettyWood Can you please have a look?

please update.

Let's leave this to avoid breaking changes in the last release of V1.


Implements permissions per transition #26

Permissions factory per transition.
Rebased on master.
Loading permission factory from config for tests.
Clean up.

@topless can you squash and change the format of the commit message so we can merge it?


eq-231, stop re-submission of questionnaire

What
Stop re-submission of questionnaire (i.e. it can only be submitted once in that session)
How to test

Make sure the questionnaire works and submits as expected
Now try to get back to the submission page anyway you can, back, url entry, etc

Who can test
Anyone but @LJBabbage

Could we add a test regression for this so that we can add it to the unit tests?

I think we should add this check and redirect to the /questionnaire url as well.

Perfect :+1:


[Question]: Is it possible to add listeners (and target groups) to an existing ALB?

Is it possible to add listeners (and target groups) to an existing ALB? I’m getting an error Error: Can only call addTargets() when using a constructed Load Balancer; construct a new TargetGroup and use addTargetGroup. What is the best way to share an existing ALB between (in my case Fargate) projects then?
From Fargate docs:
https://awslabs.github.io/aws-cdk/refs/_aws-cdk_aws-ecs.html#include-a-load-balancer
I'm trying to do something similar as @nathanpeck did in https://github.com/nathanpeck/greeter-cdk
My target groups would be separate projects (i.e. /app1, /app2, etc) behind a shared ALB.
EDIT: This issue also relates to #1948. Our security team prevents us from creating roles, policies, SG, etc. So even if we could create an ALB (using elbv2.ApplicationLoadBalancer) we cannot perform security group changes that cdk is trying to introduce. Kinda catch 22. 😞
    //Import existing VPC
    const vpc = ec2.VpcNetwork.importFromContext(this, "VPC", {
      vpcId: props.vpcId
    });

    //Import existing Security Group
    const sg = ec2.SecurityGroup.import(this, "SecurityGroup", {
      securityGroupId: props.securityGroupId
    });

    //Import ECS cluster
    const cluster = ecs.Cluster.import(this, "Cluster", {
      clusterName: props.clusterName,
      securityGroups: [ sg ],
      vpc: {
        vpcId: props.vpcId,
          availabilityZones: props.availabilityZones,
          privateSubnetIds: props.subnets
      }
    });

    //Import existing taskRole
    const taskRole = iam.Role.import(this, "TaskRole", {
      roleArn: `arn:aws:iam::${props.accountId}:role/csr-Task-Role`
    });

    //Import existing executionRole
    const executionRole = iam.Role.import(this, "ExecutionRole", {
      roleArn: `arn:aws:iam::${props.accountId}:role/csr-Execution-Role`
    });

    //Import existing ELB
    const elb = elbv2.ApplicationLoadBalancer.import(this, "ALB", {
      loadBalancerArn: props.loadBalancerArn,
      securityGroupId: props.securityGroupId
    });

    //Create ECS Task definition
    const fargateTaskDefinition = new ecs.FargateTaskDefinition(this, 'TaskDefinition', {
      memoryMiB: "512",
      cpu: "256",
      taskRole: taskRole,
      executionRole: executionRole
    });

    //Create a container for task definition
    const container = fargateTaskDefinition.addContainer("Container", {
      // Use an image from DockerHub
      image: ecs.ContainerImage.fromDockerHub(props.dockerRepositoryUrl)
    });

    container.addPortMappings({
      containerPort: props.port
    })

    //Create fargate service with corresponding task definition
    const fargateService = new ecs.FargateService(this, "Service", {
      cluster: cluster,
      taskDefinition: fargateTaskDefinition,
      desiredCount: 1,
      securityGroup: sg
    });

    const lst = elb.addListener("Listener", {
      port: props.port
    });

    lst.addTargetGroups("default", {
        targetGroups: [
          new elbv2.ApplicationTargetGroup(this, "default", {
            vpc: vpc,
            protocol: elbv2.ApplicationProtocol.Http,
            port: props.port
          })
        ]
    });

    lst.addTargets("demo", {
      port: props.port,
      pathPattern: props.path,
      priority: props.priority,
      targets: [ fargateService ]
    })

@rix0rrr I would appreciate your input on this. 😄

I somehow managed to make this work. I've removed everything bellow elb.addListener section, and I've added following:
    const applicationListener = elbv2.ApplicationListener.import(this, "ALBListener", {
      listenerArn: props.listenerArn,
      securityGroupId: sg.securityGroupId
    });

    const tg = new elbv2.CfnTargetGroup(this, "TargetGroup", {
      healthCheckPath: "/",
      healthCheckPort: "80",
      healthCheckProtocol: elbv2.Protocol.Http,
      healthCheckIntervalSeconds: 10,
      healthCheckTimeoutSeconds: 5,
      healthyThresholdCount: 2,
      unhealthyThresholdCount: 2,
      port: props.port,
      protocol: elbv2.Protocol.Http,
      targetType: elbv2.TargetType.Ip,
      vpcId: vpc.vpcId
    });

    new elbv2.CfnListenerRule(this, "ListenerRule", {
      listenerArn: applicationListener.listenerArn,
      priority: props.priority,
      conditions: [
        { field: "path-pattern", values: [ props.path ] }
      ],
      actions: [ { targetGroupArn: tg.targetGroupArn, type: "forward" } ]
    });

Then I "massaged" LoadBalancer section in.
    //Create fargate service with corresponding task definition
    const fargateService = new ecs.FargateService(this, "Service", {
      cluster: cluster,
      taskDefinition: fargateTaskDefinition,
      desiredCount: 1,
      securityGroup: sg
    });

    const resource = fargateService.node.findChild('Service') as ecs.CfnService;

    resource.propertyOverrides.loadBalancers = [{
      containerName: "Container",
      containerPort: props.port,
      targetGroupArn: tg.targetGroupArn
    }];

It feels sooooo hacky to me (mixing L1 and L2 constructs) and I hope that in the future cdk will be more friendly toward limited environments (reusable ALBs, etc).
If there is more cleaner way to do this please let me know.

I'm keen on improving the error message. Can you please tell me what your response was when you saw this error message:
Error: Can only call addTargets() when using a constructed Load Balancer; construct a new TargetGroup and use addTargetGroup

Because you're doing more or less the right thing, except you're using L1 constructs instead of L2. You could have achieved the same effect by going:
const tg = new elbv2.TargetGroup(this, 'TG', { ... });
applicationListener.addTargetGroups('NewGroups', {
  targetGroups: [tg],
  // ...
});

@rix0rrr I've implemented your suggestions (see code below).
    ...
    //Create fargate service with corresponding task definition
    const fargateService = new ecs.FargateService(this, `${props.appName}Service`, {
      cluster: cluster,
      taskDefinition: fargateTaskDefinition,
      desiredCount: props.desiredCount,
      securityGroup: sg
    });

    const tg = new elbv2.ApplicationTargetGroup(this, `${props.appName}TargetGroup`, {
      healthCheck: {
        path: "/",
        port: "80",
        protocol: elbv2.Protocol.Http
      },
      port: props.port,
      protocol: elbv2.ApplicationProtocol.Http,
      targetType: elbv2.TargetType.Ip,
      vpc: vpc
    });

    applicationListener.addTargetGroups(`${props.appName}TargetGroup`, {
       targetGroups: [ tg ],
       priority: props.priority,
       pathPattern: props.path
    });

    tg.addTarget(fargateService);

However, now during deployment I'm being asked to approve SG changes.

When I implement your suggestions from #1948 I'm still getting SG change when I try to deploy. If you recall, I work in an environment where I'm unable to create SGs, roles, policies, etc.
    ...
    //Import existing Security Group
    const sg = ec2.SecurityGroup.import(this, "SecurityGroup", {
      securityGroupId: props.securityGroupId
    });

    sg.addIngressRule = () => {};
    sg.addEgressRule = () => {};

    ...

    //Import existing taskRole
    const taskRole = iam.Role.import(this, "TaskRole", {
      roleArn: `arn:aws:iam::${props.accountId}:role/csr-Task-Role`
    });

    taskRole.addToPolicy = () => {};

    //Import existing executionRole
    const executionRole = iam.Role.import(this, "ExecutionRole", {
      roleArn: `arn:aws:iam::${props.accountId}:role/csr-Execution-Role`
    });

    executionRole.addToPolicy = () => {};

And here is what cdk deploy is trying to perform, so no-op approach is definitely doing something but only for ingress.

Again, thank you so much for helping me figure this one out (and all other Github issues).

I'm still getting SG change when I try to deploy. If you recall, I work in an environment where I'm unable to create SGs, roles, policies, etc.

My apologies for not realising your restricted situation while writing a code sample, but those are really two different questions. "How do I add a listener to an imported load balancer" vs "how do I avoid adding rules to a securitygroup"?
Implement a SecurityGroup that returns a fixed ID and does nothing in return to addIngressRule(), addEgressRule() (as I suggested in the other thread), and you can use the L2 layer.

@rix0rrr Ok. I'll give it a go. Thank you for confirming that...
    sg.addIngressRule = () => {};
    sg.addEgressRule = () => {};

... is not enough.
I just also want to point out (for ppl in similar situation like me) that this worked. It's hacky but it works :)

@rix0rrr I've tried everything (as you suggested in the other thread #1948) but I couldn't make it to work and I officially give up. I'm just going to stick with mix of L1 and L2. Thanks for your help though.

Closing this issue since there's hasn't been any action on it for a while. Feel free to reopen.


Contact Form for Reach Out Section

Contact Form for Reach Out Section
Content Requirements

Heading: "Contact Us"
Name: Input Text Field
Message: Large Message Area

Completed


Bevy UI nodes are always pixel-aligned and there is no way to disable it

Bevy version

0.15.0

[Optional] Relevant system information
- cargo 1.83.0 (5ffbef321 2024-10-29)
- MacOS Sonoma 14.1.1 (23B81)
- SystemInfo { os: "MacOS 14.1.1 ", kernel: "23.1.0", cpu: "Apple M1 Max", core_count: "10", memory: "64.0 GiB" }
- AdapterInfo { name: "Apple M1 Max", vendor: 0, device: 0, device_type: IntegratedGpu, driver: "", driver_info: "", backend: Metal }

What you did
Made UI follow 3d entity. Bascially I want to make health bar (and some more info) to stick above/belove each unit.
What went wrong
It seams that Bevy UI nodes are always aligned to pixels. This is a good thing for static UI to make it sharper but introduces jaggines when UI is smoothly moved. This is especially noticeable when UI is placed near the object.
I think default behaviour is correct but there should be a way to disable it and allow sub-pixel positions/sizes for UI. It probably should be some component added to the root node or a flag in the TargetCamera.
Additional information
Here is example from the game in question:

As you can see model moves smoothly but green borders and red rect (all are nodes within a single root node) are always jumping here and there. If you just look/focus at the model, it becomes much more noticeable.
UI position is calculated by projecting each corner of the hexagon and taking min/max x/y values:
let corners = Map::get_layout().hex_corners(agent.hex)
    .map(|e| e.extend(0.0).xzy())
    .map(|e| camera.world_to_viewport(camera_transform, e))
    .map(|e| e.unwrap_or(Vec2::INFINITY));

if corners.iter().any(|e| !e.is_finite()) {
    continue;
}
let Some((min_x, max_x)) = corners.iter().minmax_by_key(|e| e.x).into_option() else {
    continue;
};
let Some((min_y, max_y)) = corners.iter().minmax_by_key(|e| e.y).into_option() else {
    continue;
};

node.top = Val::Px(min_y.y);
node.left = Val::Px(min_x.x);
node.width = Val::Px(max_x.x - min_x.x);
node.height = Val::Px(max_y.y - min_y.y);

Here is simpler example:

UI scaling in this case is 2, so it takes half of the logical pixel to see UI moving.

Hmm. I see your point. I'm not sure where the best place to expose a setting for this would be. @ickshonpe may have ideas.

NyIt would be great if this could be defined on a node and have it apply to that node and all nodes down the tree, but I guess that’s technically not possible?

It would be great if this could be defined on any node and have it apply to that node and all nodes down the tree, but I guess that’s technically not possible?

Nope I ended up implementing the per-node setting, it was easier. I had some vague concerns with mixing up unrounded and rounded layouts but they probably aren't worth worring about.
The other problem with the per-node approach is that generating a rounded layout is more expensive as it walks the layout tree a second time. With a per-root approach you can skip generating the rounded layout.


Wrong ANSI SQL keyword

In the set of ANSI_SQL_2003_KEYWORDS, there is a keyword called SESSION_USE in the line No. 215, seems there is a letter R missed in the end. That keyword should be SESSION_USER.
Please review and revise the keyword if it was wrong.
Thanks.

Thank you for your feedback. I've updated the SQL keywords. This will be release in the next version.

Released in 3.6.0


cmd/compile: display the source code for inlined functions in ssa.html

CL 119035 added displaying the source code of target function as the first column in ssa.html table.
It would be great to handle inlined function correctly too, e.g. display their sources as well.

ssa.html should contain declarations of all inlined functions in the sources column.
When GOSSAFUNC=f for the following program
package main

import "encoding/binary"

var x uint16
var b [2]byte

func f() {
	x = g(x)
	binary.BigEndian.PutUint16(b[:], x)
}

func g(i uint16) uint16 {
	return i + 1
}

it should include sources for both g() and binary.BigEndian.PutUint16() functions.

@randall77 @dr2chase  @josharian
Does the screenshot below look right?
Can you spot any problems with following representation of sources for inlined functions?

Any feedback is very welcome!

On my phone, but my initial response is “Hooray! This is going to be super helpful!”
It might be nice to toposort, that is, put the main function at the top and inlined functions below (and functions inlined by the inlined functions below that, etc.).

This is quite nice.  Thank you for working on this.

Fixed the order of functions in sources column per Josh request + cosmetics:


"undefined" in some paths; ignores publicPath

Here's a repository demonstrating the issue:
https://github.com/candrews/indexhtml-webpack-plugin-bug
To see the problem, checkout the repository then run:
./webpack
Open dist/index.html
You'll see this html:
<!DOCTYPE html>

<title>Site Template - Welcome!</title>

    <link href="2109ced2c9e625698f1ae9b2fe55d03c.css">

menu item

menu item

menu item

menu item

menu item

menu item

There are 2 problems (which I think are both caused by the same issue):

app-f7131e69ff913f0468c5.js should be /app-f7131e69ff913f0468c5.js
undefinedapp-9ce8fd458118f22141a23306ad57e881.png should be /app-9ce8fd458118f22141a23306ad57e881.png

I think the problem is that indexhtml isn't setting __webpack_public_path__ when evaluating the JS-ified HTML. I'm not sure if __webpack_public_path__ is the right variable to set (I'm not familiar enough with Webpack internals), but I do know it's value should come from webpack.config.js's options.publicPath setting.

Yes, the {{webpack_public_path}} is indeed what causes the {{undefined}} in the output. I hadn't tried it with images before, but the url-loader seems a lot nicer to work with than the extract-text-plugin (which just removes the whole contents of the original source without even a hint where it's been extracted to).
It seems easy enough to add a
var __webpack_public_path__ = compilation.options.output.publicPath;

before eval'ing the HTML. I have to check what happens if {{publicPath}} is not specified in the options, or what a reasonable default value would be.
Also, the documentation states that the public path could be set at runtime, which would make it very hard to get the correct link.

I think, for the purposes of this plugin, the only solution is to say that setting publicPath at runtime isn't supported. There's just no way to implement dynamic publicPath using static html.

@tkrullmann this change works great for the img use case. But script src's are still wrong.
app-f7131e69ff913f0468c5.js should be /app-f7131e69ff913f0468c5.js
Can you address that too, please?

I think I figured out how to fix it: https://github.com/unbroken-dome/indexhtml-webpack-plugin/pull/5
This change fixes the problem in my testing.

That works, thank you. I published v0.1.8 that contains the fixes.

So close... turns out the link href is still wrong.
It is:
2109ced2c9e625698f1ae9b2fe55d03c.css
but it should be:
/2109ced2c9e625698f1ae9b2fe55d03c.css

Here's a PR solving that issue: https://github.com/unbroken-dome/indexhtml-webpack-plugin/pull/6
All the references look right now in the HTML. So I hope we've finally this fixed.

@tkrullmann can you please release version v0.1.9?

done


New Actions

Opening a discussion for expanding the actions allowed within the RiaB framework.  The following was suggested by @Jeff.
The behavior experiments require rats/mice to do some actions other than navigation. These range from pressing a lever (/button), licking, eating, rolling a wheel, etc. @TomGeorge1234 I think we should think about expanding the environment to handle these sorts of actions.
I was thinking about a spatial button in a box as an initial proof of concept. Obviously, this is a step toward dynamic environments where agents can do tasks in steps. A simple task might be to press a button to go to the next room to get a reward.
Thoughts?

Can you give me some examples of how this would work, I agree these behaviours are shown by rats/mice but wouldn't conscious not to open a can of worms. Would there be a nice class Button which when registers a press will do some stuff to the Environment (e.g. release a reward). This feels close to what Ryan added with the different goal types which can be added to environments.
It seems like what we really want most is dynamic environments first...then these types of actions could be relatively easily added by individual users.

Yeah it kind of is. Closing this issue


Create an "unstable" release?

There's been a large number of small changes in HEAD:
https://github.com/zsh-users/zsh-syntax-highlighting/blob/aecfd61bbda9b8739c48e7a2818438cb0f134791/changelog.md#changes-in-head
I think it's premature to call them stable — they could have functionality or performance bugs — but I'd like to let them get more testing.  So, how about adopting creating an "unstable" release off master?  We can call it "alpha1", or adopt the even-odd minor number convention, or whatever else; the point would be to create a tarball to encourage testing by downstreams, without yet declaring the work stable.
Since changelog is already written (I've been writing it as I went), the work involved in making this happen would be minimal; it'll be just tagging and bumping the version number on master.

I don't understand the point. We already have testing of master via oh-my-zsh updating users automatically (by default if memory serves). Package maintainers can already package master if they so desire, and it's clear to everyone there are no API/backwards-compat promises. If we have unstable releases, the chance of getting somewhere that should be stable with backwards compat promises increases.

Fair point about omz.
I thought that if we made an unstable release we could get even more testing.  E.g., in Debian there's the experimental suite.  If a z-sy-h snapshot was updated there, that should make it easier for users to use a bleeding edge z-sy-h (even on systems that run stable, if they wished).
I don't think there's anything stopping me from packaging snapshots of HEAD into experimental, but I don't think that'd be appropriate.  There's a difference between a random git snapshot and an odd-minor-number release, after all.
On the other hand, I see your point: we may well have enough testing as it is thanks to users of master.


feat/remove-limitation-client

Please review before merging.

:tada: This PR is included in version 1.5.0 :tada:
The release is available on:

GitHub release
v1.5.0

Your semantic-release bot :package::rocket:


Problem when dimensions are not rounded properly

I noticed the problem by adding precision 0 to the shape.dimension. The values were not rounded in the stylesheet. Then I looked around and it appeared that when the values are coming from the bounding box or from phantomjs they are not rounded at all.
When loading the style into chrome I had issues with some svgs which were slightly taller. I get that the svgs should never have a width/height with decimals precision, but the plugin should also handle that.

What's up with that build by the way? How can I fix the build? I only changed that file, nothing else

@nikini Thanks for the PR. It's most likely not your fault that the build is failing at the moment. There have been some issues with GitHub & Travis during the last couple of days (as far as I have heard), and also I'm about updating some problematic dependencies. Don't worry. I'll take care of your PR as soon as I finished the updates.

When can you merge?

@nikini I'm sorry but

I'm on holidays right now and don't have access to my dev environment,
tests are failing at the moment because some dependencies need to be updated which makes some major rework necessary and
I totally lack the time for working on side projects like this at the moment.
I'm sorry but I can't predict right now when I'll find the time to get this out of the door.

Any news on this?

No news, sorry. I won't be able to work on side projects like this one until end of April. Please feel free to provide PRs that fully integrate the new dependency versions.


Do not try to fetch related objects of new object

This PR is a rebase of the original PR https://github.com/propelorm/Propel2/pull/1493

Example database:

        <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" description="Book Id" />
        <column name="title" type="VARCHAR" required="true" description="Book Title" primaryString="true" />
        <column name="author_id" required="false" type="INTEGER" description="Foreign Key Author" />
        <foreign-key foreignTable="author" onDelete="setnull" onUpdate="cascade">
            <reference local="author_id" foreign="id" />
        </foreign-key>

        <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" description="Author Id" />
        <column name="first_name" required="true" type="VARCHAR" size="128" description="First Name" />
        <column name="last_name" required="true" type="VARCHAR" size="128" description="Last Name" />

Example code:
$author = new Author();
// ...
$author->getBooks(); // $author->collBooks is initialized
// ...
$author->setBooks(new Collection());
$author->save();

In setBooks there is this line:
https://github.com/propelorm/Propel2/blob/6c4996fc130c7555d82d9dca04396c6f3eeef306/src/Propel/Generator/Builder/Om/ObjectBuilder.php#L4231
(the previous books are scheduled for deletion)
But while fetching the previous books the else part is used, because $this->collBooks is not null any more. So BookQuery::create()->filterByAuthor($this)->find() is used. This will result in a query with WHERE author_id IS NULL, because $this->getId() is null.
So all books without an author will be scheduled for deletion!
So for a new object (id is null), the query for fetching the related objects should be never used.

Creates failures in tests

1) Propel\Tests\Ticket520Test::testNewObjectsNotAvailableWithCriteria
Passing a Criteria means "force a database query"
Failed asserting that 2 matches expected 0.
/home/travis/build/propelorm/Propel2/tests/Propel/Tests/Ticket520Test.php:62

Cc @PhilinTv

This is just a rebase of an existing contribution, I don't intend on pushing it further.


Documentation became out-of-sync

Question
Hello maintainers!
PR #104 updated the documentation without an accompanying release. Anyone who tries to use the library will now receive a No known class method for selector 'didReceiveNotificationResponse' error.
Ideally there should be a develop branch to ensure that unreleased documentation changes are held back until the actual release.

@SashaSirotkin Hello! Sorry about the documentation being out of date.
I've tested and released v1.2.0, so the docs should be in sync now.
From now on, I'll create a next branch and keep track of new changes there so there won't be any more confusions!

Hi!
I'm using v1.2.0 with react-native-push-notification and the error No known class method for selector 'didReceiveNotificationResponse' still persists :(
@SashaSirotkin did you found something?

@willnaoosmit If you're upgrading, the AppDelegate.m got an extra line with the 1.2.0 release. I believe it this one:
// IOS 10+ Required for localNotification event
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
didReceiveNotificationResponse:(UNNotificationResponse *)response
         withCompletionHandler:(void (^)(void))completionHandler
{
  [RNCPushNotificationIOS didReceiveNotificationResponse:response];
  completionHandler();
}

@SashaSirotkin Thanks. It's fixed now!


remove elevate mentions

Closed this and tried again here: https://github.com/wix-incubator/wix-code-docs/pull/1792


Datamodel Parser: Multi field id criterion (Multi column PKs)

Check the related epic for an initial breakdown of work packages.
Please use supply a more detailed task list in a comment.

[ ] extend Model data structure in dml module to store informations on multi field ids
[ ] implement new DirectiveValidator for @@id
[ ] test cases:

[ ] basic happy path
[ ] name arg must not be optional
[ ] the directive must not refer to undefined fields
[ ] a model must either have @id or @@id


write unitests

What needs to be done?
Add simple unit test for the disk (code this using the interfaces defined at stats.go)
read https://blog.alexellis.io/golang-writing-unit-tests/

general stat test


When building a workspace, cargo will report that multiple packages link to a native library when it should not.

Problem

Steps
See test repo here for example.
https://github.com/0xc0deface/cargo_workspace_issue

Make a project with two libs, one (lib1) should depend on the other (lib2)
Make lib1 link a native library. i did this by adding the the diesel crate with the sqlite feature.
Make lib2 link the same native library, but only in its dev-dependencies. i did this using the sqlite crate with default-features off, then on for the dev-dependencies.

This will result in cargo build and cargo test not working due to
error: multiple packages link to native library `sqlite3`, but a native library can be linked only once

however if you build and test the libs seperately you will not get any errors suggesting there is actually no problem, and the error message is incorrect.
Possible Solution(s)

Notes
Output of cargo version: cargo 1.45.0 (744bd1fbb 2020-06-15)

Cargo should be able to work this out itsely, however a workaround for this issue is to put this build.rs file in lib2:
fn main()
{
	pkg_config::Config::new().probe("sqlite3").unwrap();
	println!("cargo:rerun-if-changed=build.rs");
}

Thanks for the report!  In this particular case, this is a consequence of feature unification.  Running with -Zfeatures=all breaks the restriction (#8088), though this is only because it is a post-resolver "links" check.
I'm consolidating links collisions in workspaces in #7880, so I am going to close in favor of that.


Evaluation using TCGA  data

Ready to run on TCGA LUAD, THCA, and PRAD blood normals.

Done with original germline model; issue #541 is for new model.


FAQ: Spelling of schiefgelaufen / schief gelaufen

Where to find the issue
https://www.coronawarn.app/de/faq/
Describe the issue
In https://www.coronawarn.app/de/faq/ there are several references to [Google/Android] error messages containing the string "Etwas ist schief gelaufen", for example
https://www.coronawarn.app/de/faq/#cause9002_timeout
The string is contained in errors_generic_headline of https://github.com/corona-warn-app/cwa-app-android/blob/main/Corona-Warn-App/src/main/res/values-de/strings.xml
The correct spelling is "schiefgelaufen", not "schief gelaufen" and that was corrected in the Android app with PR https://github.com/corona-warn-app/cwa-app-android/pull/750 which was merged on Jul 2, 2020. It was fixed in the 1.1.1 release (see https://github.com/corona-warn-app/cwa-app-android/blob/1.1.1/Corona-Warn-App/src/main/res/values-de/strings.xml).
The last version of CWA to contain the incorrect spelling "schief gelaufen" was version 1.0.5 released around July 9, 2020. I assume that we can disregard users who have not upgraded from 1.0.5 for the purposes of information in the FAQs, where there are many suggestions to upgrade to at least version 1.5.
Suggested change
Change all references in https://www.coronawarn.app/de/faq/ from "schief gelaufen" to "schiefgelaufen".
I will submit a PR for this.

PR https://github.com/corona-warn-app/cwa-website/pull/796 created.

PR https://github.com/corona-warn-app/cwa-website/pull/796 created.


fix scan tag value panic

Required for all non-trivial PRs

[x] Rebased/mergable
[x] Tests pass
[ ] CHANGELOG.md updated
[x] Sign CLA (if not already signed)

fix #7732 , I can't find a case why influxDB would crash, but indeed there is a crash risk if i > cap(buf)
I also reviewed func parseTags

Thanks @oiooj. This is the fix I have on a local branch for this issue too. I'm also not clear how Influx can trigger this bug so I'm going to spend a little time trying to get a repro in case there is a more significant underlying bug that needs to be fixed.
If I can't find anything else I'll merge this PR.

This test can trigger the panic:
func TestParseKeyMissingValue(t *testing.T) {
       if _, _, err := models.ParseKey([]byte("cpu,foo ")); err != nil {
               t.Fatalf("unexpected error: %v", err)
       }
}

@jwilder  Done

Thanks @oiooj!


Feature request: user can add tag to each post item instead to post file

Description
[Description of the feature]
Right now the theme collects tags from page matters, not from each post item. I want the tag can be added to each post item inside a page.

Hi, can you elaborate more about these post items?

I have a use-case in TIL page of my personal website, where each day will have many TIL entries with tags for each entry.
I would like for these tags to be clickable, curatable and searchable on the same page so I can view all the TIL entries made on different days belonging to a tag on the same page.


quadruped_min example broken (?)

Julia 1.7.2 on macOS 12.3, Apple M1 architecture
julia> include("quadruped_min.jl")
      Activating project at `~/.julia/packages/Dojo/frGnC/examples`
    ┌ Info: MeshCat server started. You can open the visualizer by visiting the following URL in your browser:
    └ http://<IP_ADDRESS>:8719
    typeof(Z) = Vector{Float64}
    ┌ Warning: need to treat the joint to origin
    └ @ Main ~/.julia/packages/Dojo/frGnC/environments/quadruped/methods/template.jl:124
    ERROR: LoadError: UndefVarError: spring_impulses not defined
    Stacktrace:
     [1] gravity_compensation(mechanism::Mechanism{Float64, 38, 13, 13, 12})
       @ Main ~/.julia/packages/Dojo/frGnC/environments/quadruped/methods/template.jl:119
     [2] top-level scope
       @ ~/.julia/packages/Dojo/frGnC/examples/trajectory_optimization/quadruped_min.jl:64
     [3] include(fname::String)
       @ Base.MainInclude ./client.jl:451
     [4] top-level scope
       @ REPL[22]:1
    in expression starting at /Users/glenhenshaw/.julia/packages/Dojo/frGnC/examples/trajectory_optimization/quadruped_min.jl:64

Thanks for pointing this out!

This example will run now on main. The objective hasn't been re-tuned since we updated the joint friction model. I expect we improve this example in the next few days.

Example was removed in the latest version. But there is a sampling-based learning example with the quadruped.


Feature: nested struct validation

Fixes #367, #906
Make sure that you've checked the boxes below before you submit PR:

[x] Tests exist or have been written that cover this particular change.

A test has been added for custom tags, however I was not brave enough to actually update the tests for all required/excluded tag variants before getting an initial feedback, but I'm willing to do so if this ever gets any further.
Same goes for documentation.
The implementation supports both struct and struct pointer validations for custom tags and all required/excluded tag variants.
Struct validity is evaluated first and fields are evaluated only if the struct is valid, though I'm not sure if this is the desired behavior.
@go-playground/validator-maintainers

coverage: 73.987% (+0.02%) from 73.972% when pulling 02102da08bb2eb2f147cf9d44af0c83b17d4aec4 on MysteriousPotato:master into bd1113d5c1901c5205fc0a7af031a11268ff13ee on go-playground:master.

Thanks for the PR @MysteriousPotato!
I like the approach here and yes fields after valid struct is the order that's required to not cause breaking changes. Going to let it sit with me for a big to digest.

@MysteriousPotato I really like this PR!
If you can update the tests I'd be happy to merge this :)

@deankarn Great!
There are now tests for all tags that are compatible with this implementation of nested struct validation. This inlcudes the tags below:

omitempty
required
required_if
required_unless
required_with
required_without
required_with_all
required_without_all
excluded_if
excluded_unless
excluded_with
excluded_without
excluded_with_all
excluded_without_all
nostructlevel
structonly
skip_unless
custom tags

I did not make a lot of changes to the documentation except a few places where the behavior is specified for each type. Let me know if you want the documentation to be more explicit about the behavior.

Awesome @MysteriousPotato!
I will try and review early this week :)

Sorry I haven’t forgotten about this, just been a heck of a week thus far, still high on my list :)


Add push-to-docker to Circle config

Checklist

[ ] Update changelog in CHANGELOG.md.

Going with a ping.


JAWS in Chrome does not honour the space in the "Change" link in the "Check answers" pattern

Potentially change code to use same method as "Add to list" pattern https://design.tax.service.gov.uk/hmrc-design-patterns/add-to-a-list/ (change pattern also on same page to compare)
Code from:

  Change
   xxx

To:

  Change
  Change xxx

Example of issue in Chrome on JRS:

Closed as duplicate of https://github.com/hmrc/accessibility/issues/29


client_rs: bump bitcoin 0.32 and miniscript 12.2

This PR updates rust-bitcoin and rust-miniscript dependencies for the ledger_bitcoin_client crate and fixes the breaking change.

Test are failing, I am fixing it


Updated separatorChar to ',' from ';'

Standards (https://www.ietf.org/rfc/rfc4180.txt) define comma (,) as separator. Still CSV is 'Comma Separated Values'

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.

First of all: I'm not reasoning pro or against your pull request, I just wanted to comment on the topic.
I don't know for sure, but I think the ';' was chosen to avoid conflicts between data and separator char in locales where the ',' is used as decimal separator. For sure the CSV format defines how to handle this with quotes, but one might find the quotes ugly for numerical data. The description of CSV at Digital Formats also mentions the use of ';' as a "common practice".
Nevertheless, you're right that this isn't CSV then but DSV (delimiter-separated values). Unfortunately, we can't simply rename the ExportTypeCSV class for compatibility reasons. But maybe we should mention in the documentation of that class that it allows to deviate from the strict definition of CSV.
BTW: until ten minutes ago I didn't even know about the acronyms for DSV, TSV etc. MS Excel and other tools somehow suggest to me that these all are variants of CSV (as those tools allow to configure a separator when loading *.csv files).

I agree! Since I'm from different region (India), the regional settings in Windows influences how the delimiters are chosen to decode .csv by MS Excel.
A quick workaround suggested here:  "sep=<separator_type>" to be added at the top of .csv file will work with no issues

@anselm94 the problem with sep=<separator_type> is that e.g. MS Excel can't recognize the utf-8 byte order mark which is added to force the correct encoding.
So either you might have to choose the separator char manually or the encoding might be broken and you might have to manually choose it.
The ExportTypeCSV actually added the sep= indicator initially (before the OpenUI5 code-split) but it was removed in favor of the correct encoding via byte order mark.
There is also a mention in the docs about choosing the separator on import:
https://openui5.hana.ondemand.com/#docs/api/symbols/sap.ui.core.util.ExportTypeCSV.html
Regarding this PR I don't really mind changing it to comma (or even remove the property at all as it's the default).

Ok!
I'm closing the PR then


Split up check_container_hierarchy release checklist and use blueprints

This one is waaaay to big and complicated

Testing it as we speak -- I agree :smile:


create source jar and update examples

Summary
Create source jars and update examples
Checklist
Delete items not relevant to your PR:

[ ] Unit and integration tests covering the common scenarios were added
[ ] A human-readable description of the changes was provided to include in CHANGELOG
[ ] For significant changes, documentation in https://github.com/ClickHouse/clickhouse-docs was updated with further explanations or tutorials

Build failures are unrelated.


Emails should support apostrophes on create edit

Example<EMAIL_ADDRESS>

satisfactory

Passed -- Tested on STG
Verified fixed by adding apostrophes to email address and save listing.


Allow two or more StyledTextAreas (View) to share the same StyledDocument (Model)

I implemented the approach I described in #152 and for the most part it works. There are a few problems.

If the user types in the original area quickly or if the user types even one character in the second line in the original area, the original area making the modification throws a StringIndexOutOfBoundsException.

Here's the stacktrace:
Exception in thread "JavaFX Application Thread" java.lang.StringIndexOutOfBoundsException: String index out of range: -82
	at java.lang.String.substring(String.java:1967)
	at org.fxmisc.richtext.Paragraph.substring(Paragraph.java:73)
	at org.fxmisc.richtext.StyledDocumentBase.sub(StyledDocumentBase.java:245)
	at org.fxmisc.richtext.StyledDocumentBase.getText(StyledDocumentBase.java:51)
	at org.fxmisc.richtext.StyledDocumentBase.getText(StyledDocumentBase.java:46)
	at org.fxmisc.richtext.StyledTextArea.lambda$new$4(StyledTextArea.java:615)
	at org.reactfx.value.Val$2.computeValue(Val.java:703)
	at org.reactfx.value.ValBase.getValue(ValBase.java:17)
	at org.reactfx.value.SuspendableValWrapper.getValue(SuspendableValWrapper.java:23)
	at org.reactfx.value.ChangeListenerWrapper.accept(Val.java:765)
	at org.reactfx.util.AbstractReducingStreamNotifications.lambda$head$281(NotificationAccumulator.java:248)
	at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
	at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
	at org.reactfx.SuspendableBase.handleEvent(SuspendableBase.java:82)
	at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$278(NotificationAccumulator.java:134)
	at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
	at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
	at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
	at org.reactfx.util.AbstractReducingStreamNotifications.lambda$head$281(NotificationAccumulator.java:248)
	at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
	at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
	at org.reactfx.value.ValBase.invalidate(ValBase.java:32)
	at org.reactfx.value.Val$2.lambda$connect$136(Val.java:689)
	at com.sun.javafx.collections.ListListenerHelper$SingleInvalidation.fireValueChangedEvent(ListListenerHelper.java:126)
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
	at javafx.collections.FXCollections$UnmodifiableObservableListImpl.lambda$new$52(FXCollections.java:929)
	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
	at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329)
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
	at javafx.collections.ModifiableObservableListBase$SubObservableList.clear(ModifiableObservableListBase.java:346)
	at org.fxmisc.richtext.EditableStyledDocument.setAll(EditableStyledDocument.java:450)
	at org.fxmisc.richtext.EditableStyledDocument.replace(EditableStyledDocument.java:206)
	at org.fxmisc.richtext.StyledTextArea.replace(StyledTextArea.java:1127)
	at org.fxmisc.richtext.StyledTextArea.replaceText(StyledTextArea.java:1118)
	at org.fxmisc.richtext.TextEditingArea.replaceText(TextEditingArea.java:205)
	at org.fxmisc.richtext.EditActions.replaceSelection(EditActions.java:119)
	at org.fxmisc.richtext.StyledTextAreaBehavior.keyTyped(StyledTextAreaBehavior.java:312)
	at org.fxmisc.wellbehaved.event.EventHandlerTemplate$On.lambda$null$23(EventHandlerTemplate.java:156)
	at java.util.Optional.ifPresent(Optional.java:159)
	at org.fxmisc.wellbehaved.event.EventHandlerTemplate$On.lambda$act$24(EventHandlerTemplate.java:155)
	at org.fxmisc.wellbehaved.event.EventHandlerTemplate$Builder.lambda$create$21(EventHandlerTemplate.java:117)
	at org.fxmisc.wellbehaved.event.EventHandlerTemplate.lambda$null$17(EventHandlerTemplate.java:39)
	at org.fxmisc.wellbehaved.event.EventHandlerTemplate.lambda$bind$14(EventHandlerTemplate.java:18)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.event.Event.fireEvent(Event.java:198)
	at javafx.scene.Scene$KeyHandler.process(Scene.java:3964)
	at javafx.scene.Scene$KeyHandler.access$1800(Scene.java:3910)
	at javafx.scene.Scene.impl_processKeyEvent(Scene.java:2040)
	at javafx.scene.Scene$ScenePeerListener.keyEvent(Scene.java:2501)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:197)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:147)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleKeyEvent$353(GlassViewEventHandler.java:228)
	at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(GlassViewEventHandler.java:227)
	at com.sun.glass.ui.View.handleKeyEvent(View.java:546)
	at com.sun.glass.ui.View.notifyKey(View.java:966)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$49(GtkApplication.java:139)
	at java.lang.Thread.run(Thread.java:745)

retainLatestWhen(condition) behaves normally when condition is false, and forgets all incoming events except the latest when condition is true. So retainLatestWhen(notBeingUpdated) will be forgetting events when not being updated. Probably not what you wanted. You probably wanted retainLatestWhen(beingUpdated). But I wouldn't use anything that has the potential of silently ignoring events here. It seems to me though that you can omit this call completely, can't you?

My goal was to only update the carets and selection ranges of the Areas that weren't doing the modification. Otherwise, if one types some keys and inserts text, the area who's modifying the document would increment its caret position twice. So, I thought that if an Area was modifying the document via user interaction, beingUpdated would be suspended and thus could be used to only update the other areas and not the one modifying it.
Thinking about it now, you're right: using beingUpdated rather than notBeingUpdated is the correct way to do it, so I'm not sure why I didn't do it that way, lol...

You're right again: removing the retainLatest part doesn't increment an area's caretPosition twice.

However, I still get that StringIndexOutOfBoundsException :frowning:

Let's move
private final SuspendableNo beingUpdated = new SuspendableNo();

to EditableStyledDocument, but keep using it from the StyledTextAreas. This way we can ensure that the published updates are consistent, even when made by the other area.

How's that?

Did it resolve the problem?

Nope :-/

However, I have noticed something that might help pinpoint the problem. If I put the top area's caret at the beginning of the area and start inserting a letter via KeyTyped events, the problem will only occur after I've typed in so many keys.
Also, if I comment out the line in CloneDemo:
clone.selectRange(selectionStart, selectionEnd);

then the problem doesn't arise as long as I don't click into the clone. I can type as many letters as I want and the problem won't arise no matter where the initial caret is when I type something.

Ah, the individual properties and streams are still being suspended manually, so they don't get suspended when the document is being updated from the other area. So we need to rewrite the suspension of those to be suspended automatically when beingUpdated is true, instead of suspending them manually when suspending beingUpdated.

I'm looking at the lines that follow content.replace. When the above exception does get fixed, won't this cause the caretPosition of the area that does the modification to be incremented twice?

No. The caret position will be set to the new value twice, but that's OK.

So what I proposed can have the unwanted effect that the user could observe a change while beingUpdated was false... :/

:-/ bummer....
If I'm understanding how this process works...
When one area makes a modification to the document, it suspends all of its' suspendable objects (selectedText, caretPosition, etc.) and makes the underlying change. Once that gets changed, it unsuspends those objects in a specific order. Once unsuspended, these suspendables emit the updated value. Using this suspendable process guarantees that anything bound to them always have a valid and correct value, correct?
The SIOOBE above occurs because one document modifies the document, and thus suspends its suspendables, but the other one doesn't. So, any change that one area does will immediately be pushed to the clone's suspendables, which will emit the resulting value, thus breaking this guarantee of an always-valid-and-correct-value contract, right?

Yes, that's exactly how it works.

So what I proposed can have the unwanted effect that the user could observe a change while beingUpdated was false... :/

Can you further explain this?

So, we have to figure out how to suspend the suspendables of all areas that are using the same EditableStyledDocument when any one of them makes a change to that document.

What about moving a variation of omniSuspendable to EditableStyledDocument?
The document could have a list where each entry is an attached area's omniSuspendable object and each area has access to the document's method suspendAll that suspends all of the document's omniSuspendables so one area can make a change.

Yeah.. doing that makes it work now.

I'm not sure if that fixed every problem, I got another SIOOBE when messing around with the CloneDemo.

Yup, I can get another SIOOBE when I position clone's caret at the end of the area and then delete a character in the original area.

K, I think we're good to go.
If you think the list of OmniSuspendable objects is a good idea, should it be implemented differently? I feel like there should be some convenient method that is similar to the try-with-resource block that was used before this.

I'm headed off to bed now. Be back on Monday.

With my idea of storing each connected StyledTextArea's omniSuspendable object in EditableStyledDocument, and the approach of storing their Guards in a temporary list until later closing, will this still work if two areas make a change at the same time?
In other words, will the process go like this (what my approach expects):

First area suspends everything; guards stores the Guard objects returned from suspending all area's omniSuspendables
Second area wants to suspend everything, but can't because things are already suspended.
First area finishes updating document and unsuspends everything.
Second area can now re-suspend everything and make its changes before unsuspendeding everything.

or like this:

First area suspends everything; guards stores the Guard objects returned from suspending all area's omniSuspendables
Second area suspends everything; guards, which holds first suspensions' Guard objects, is "cleared" due to being assigned a new ArrayList. Second area finishes making update and closes its Guard objects.
First area may finish making updates, but since references to its returned Guard objects are gone, it cannot unsuspend everything.

If ReactFX's Suspendable.combine() could take a List<Suspendable> argument, then I could reimplement the try-with-resource block originally used:
try (Guard g = content.suspendAll()) {
    // updates
}

where suspendAll would be
private List<Suspendable> suspendables;

Guard suspendAll() {
    return Suspendable.combine(suspendables).suspend();
}

I've opened up another PR with a cleaner commit history of this branch for merging if you're good with this. Otherwise, let's continue our discussion here and I'll close the newer one.

Just a heads up, I'm traveling these days. Will get back to this in a few
days.
On Dec 21, 2015 3:48 PM, "JordanMartinez"<EMAIL_ADDRESS>wrote:

I've opened up another PR with a cleaner commit history of this branch for
merging if you're good with this. Otherwise, let's continue our discussion
here and I'll close the newer one.
—
Reply to this email directly or view it on GitHub
https://github.com/TomasMikula/RichTextFX/pull/231#issuecomment-166414359
.

Thanks for the heads up. Safe travels man!


Failed import graphml due to 'nan' input string

I have been using the following command to import .graphml files in to neo4j
CALL apoc.import.graphml("test.graphml", {readLabels: true, storeNodeIds:true})

Recently I began working with larger files (3GB) derived from larger data tables and started getting this error when trying to import.
Failed to invoke procedure `apoc.import.graphml`: Caused by: java.lang.NumberFormatException: For input string: "nan"

Yes there are <data key=xxx > nan</data> entries in the graphml b/c it was derived from a table with NaN values.  Is there a workaround?  Note that the import will work if I replace all the nan with no character i.e. <data></data> but that seems an unecessary hack.
I'm am working on creating a small data set but my workflow is:

Import tabular data from postgres db
Create a graph using pandas and networkx (incl. creating a proper 'labels' as a node attribute)
From networkx export a .graphml
Import .graphml in to neo4j with command indicated at beginning

Screenshots

Versions

OS:  Mac Pro M1 w/ Ventrua 13.3.1 (a)
Neo4j: 4.4.o (community)
Neo4j-Apoc: <IP_ADDRESS>

Hi, thank you writing in :) I will ticket this, however, we currently have APOC under maintenance mode so cannot say when this would be possible for us to put in, feel free to make a PR yourself for us to review if you want it done faster! Thanks

So we are focusing on only fixing bugs and security issues and not adding new functionality atm :)

Cardified. Closing here.


FIX: UOE While building Exists query for nested search_as_you_type field

Description
FIX: Fixes UOE while building exists query for nested search_as_you_type field
Related Issues
Resolves #11821

Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] Failing checks are inspected and point to the corresponding known issue(s) (See: Troubleshooting Failing Builds)
[x] Commits are signed per the DCO using --signoff
[x] Commit changes are listed out in CHANGELOG.md file (See: Changelog)
[x] Public documentation issue/PR created

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.
Signed-off-by: Mrudhul Guda<EMAIL_ADDRESS>

Thanks @Luci-MG. You need to rebase with latest main to resolve the conflicts. LGTM with few comments.

Hello @owaiskazi19  Refactored and committed the changes based on the review requests, Please re-review again
Thank you :)

Thanks @Luci-MG. You need to rebase with latest main to resolve the conflicts. LGTM with few comments.

Hello @owaiskazi19 Refactored and committed the changes based on the review requests, Please re-review again
Thank you :)

@Luci-MG :modules:mapper-extras:spotlessJavaCheck failed. Can you run ./gradlew spotlessApply and push again?

@Luci-MG :modules:mapper-extras:spotlessJavaCheck failed. Can you run ./gradlew spotlessApply and push again?

Done this and pushed the changes

@Luci-MG can you resolve the conflicts?

Hello @owaiskazi19 Resolved the conflicts and rebased with the latest main

LGTM! @msfroh can you take another look? Thanks

The change looks nice and simple.
I'm trying to figure out why the existsQuery threw an exception. What I've been able to piece together is that the SearchAsYouTypeFieldMapper was added in 2019, while the base existsQuery implementation was added in 2020. So that probably explains it.
Then I'm thinking, what path will this existsQuery take now? AFAIK, it will never match anything, looking at the super-class implementation:
        if (hasDocValues()) {
            return new DocValuesFieldExistsQuery(name());
        } else if (getTextSearchInfo().hasNorms()) {
            return new NormsFieldExistsQuery(name());
        } else {
            return new TermQuery(new Term(FieldNamesFieldMapper.NAME, name()));
        }

The prefix field doesn't have doc values or norms, so it will go into that third path. I could be mistaken, but I think <field_name>._index_prefix (the name of the prefix field) doesn't get added to the field names field, because it's not a "real" field.

I think to me, the bigger question is why do we end up trying to call existsQuery on the prefix field type? I think there's a flaw in the logic somewhere else and the UOE is just highlighting that.

I think to me, the bigger question is why do we end up trying to call existsQuery on the prefix field type? I think there's a flaw in the logic somewhere else and the UOE is just highlighting that.

Okay -- I was able to answer that by debugging the unit test that you added. (Thank you very much for that, by the way!)
I now understand that the issue comes from the outer object field (named field). Because it does not exist in the mapper service as a direct type, it tries iterating through all fields whose name starts with field.*, which includes the "virtual" fields, like the prefix and shingle fields. So far as I can tell, we would run into the same problem with a text field with index_prefixes enabled.
I tried the following change to newObjectFieldExistsQuery to avoid generating queries for those "virtual" subfields:
   private static Query newObjectFieldExistsQuery(QueryShardContext context, String objField) {
       BooleanQuery.Builder booleanQuery = new BooleanQuery.Builder();
       Collection<String> fields = context.simpleMatchToIndexNames(objField + ".*");
       for (String field : fields) {
           int dotPos = field.lastIndexOf('.');
           if (dotPos > 0 && field.charAt(dotPos + 1) == '_') { // This is a subfield (e.g. prefix) of a complex field type. Skip it.
               continue;
           }
           Query existsQuery = context.getMapperService().fieldType(field).existsQuery(context);
           booleanQuery.add(existsQuery, Occur.SHOULD);
       }
       return new ConstantScoreQuery(booleanQuery.build());
   }

@Luci-MG  -- are you able to fix newObjectFieldExistsQuery instead? It looks like that's where the bug really resides.

@Luci-MG -- are you able to fix newObjectFieldExistsQuery instead? It looks like that's where the bug really resides.

Hello @msfroh let me check that will update you

Hello @msfroh as you stated we can skip query generation for virtual sub-fields so made the changes accordingly

In newObjectFieldExistsQuery skipped query generation by checking the virtual sub-fields
Modified expected case in the test case to skip virtual sub-fields like (_2gram, _3gram ...)
Re-Added throwing unsupportedexception for exists query (shall I remove it ?)

please review the changes and let me know if I need to make any additional changes
sorry for stalling MR was in the assumption that you have taken up the change for newObjectFieldExistsQuery


Support "timezone_region" for EXTRACT and DATE_PART

Adds "timezone_region" as another recognised DateTimeField.
[^1]: Oracle: EXTRACT docs

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.001%) to 87.813%

Totals

Change from base Build<PHONE_NUMBER>:
0.001%

Covered Lines:
18741

Relevant Lines:
21342

💛  - Coveralls

Thank you for the contribution @alexander-beedie - the code and tests look good in this PR . I am not sure about the commented out test however.

Fixed; sorry about that one ;)


Ability to dynamically edit Title and description of the issue

Hi
Great work on the plugin, it brings extremely important feature for Redmine.
The ability to dynamically edit title and description also could be great in terms of usability. There is no need for any panel with icons, just pure text.

Hello Valentine,
Thank you for your kind words!
The last commit adds the capacity to dynamically edit Issue's title.
I'll try to add the description field as soon as possible.
Feel free to try this new version and come back to me if you find any mistake or problem :)

Hello,
Description text is now editable. You can also use normal formatting text syntax (bold, italic ...).
If you find any bug don't hesitate to create an issue or comment this one and we will find a solution.
If you find the plugin helpful, please take a minute and rate it on http://www.redmine.org/plugins/redmine_issue_dynamic_edit


Fixed "Output"- All remaining files

Replace "Output:" for "=>" in example codes.
Related issue: https://github.com/exercism/go/issues/2202

There has been some interest by other contributors in fixing this issue in individual exercises, which is making this PR conflict with the main branch. The conflicts will become even more as new contributors fix this issue in more exercises.
For that reason, and since reproducing this PR can be done easily with a find and replace, I'm going to close this PR.
If you are still interested in solving this issue across all exercises, please create a new PR integrating the feedback in https://github.com/exercism/go/pull/2223#pullrequestreview-985873826.


Should there be a way to regain health?

Potential ideas:

Health pickups
Combos regenerate health (or cause enemies to drop pickups)

I tried giving 1 health back every time a player finishes a level and it made the game far too easy.

Another simple thing to try would be to give the player one health point which recharges in the style of a post-Halo fps.


Accept Share Resource invitation

Hello, I have an issue because the transit Gateway shared is not accepted automatically on second account. Can you please guide me to understand why and in which part of the code you have the accept resource invitation for RAM from the first account?
Best Regards.

sorry for delay mate, Did you copy the lambda packages to a S3 bucket you own? does it work when you do it manually?


[cherry pick 1.19] scheduler-suite: pod-affinity, pod-anti-affinity, pod-topology-spread

What type of PR is this?
/kind feature
What this PR does / why we need it: This PR cherry picks the recent scheduler-suite additions to 1.19.
Which issue(s) this PR fixes:

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

NONE

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:

/cc @tosi3k

/lgtm
/assign @wojtek-t

/assign @mborsz

/lgtm
/approve


Stride 3D View for Xamarin.Forms

Summary
Currently the only way for rendering 3D in Xamarin.Forms is UrhoSharp (https://github.com/xamarin/urho) but it seems this repository is abandoned (very sad).
Nevertheless because currently I am working with Unity I got a bit more into game engines but trying to create somthing like:

is in unity pain in the ****
I wondered if there is an other solution and I found Stride (https://github.com/stride3d/stride). Stride/Xenko generates simply UWP, Xamarin.iOS and Xamarin.Android Visual Studio projects.

Pretty similar to X.F, ;)
For the sample I showed in the picture I simply created a Slider and modified the Stride/Xenko sphere inside the ValueChanged event handler method.
`
<Grid.RowDefinitions>

</Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="10*"/>
        <ColumnDefinition Width="80*"/>
        <ColumnDefinition Width="10*"/>
    </Grid.ColumnDefinitions>

    <SwapChainPanel Grid.Column="1" Grid.Row="1" x:Name="SwapChainPanel" />

    <Slider Grid.Row="2" Grid.Column="1" Minimum="0.5" Maximum="1.5" Value="1" ValueChanged="Slider_ValueChanged"/>
</Grid>`

`
private void Slider_ValueChanged(object sender, RangeBaseValueChangedEventArgs e)
{
var sphere = Game?.SceneSystem?.SceneInstance?.RootScene?.Entities?.Where(entity => entity.Name == "Sphere").FirstOrDefault();
        if(sphere != null)
            sphere.Transform.Position.Y = Convert.ToSingle(e.NewValue);
    }

`
Then I wondered if there is a way to combine this with Xamarin.Forms and create a custom renderer for UWP, iOS and Android to create a embedded 3D View to create an app like obove: Modifie the 3D View by native controls writing code one time.
Maybe someone can help me answering a questions:
Is there a way to create a custom renderer for iOS and Android to get something like xck:StrideView/ and if yes, how?
For UWP there is SwapChainPanel and the Game object but for Android there is only this:
`[Activity(MainLauncher = true,
Icon = "@drawable/icon",
ScreenOrientation = ScreenOrientation.Landscape,
ConfigurationChanges = ConfigChanges.UiMode | ConfigChanges.Orientation | ConfigChanges.KeyboardHidden | ConfigChanges.ScreenSize)]
public class SampleGameActivity : AndroidXenkoActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
        Game = new Game();
        Game.Run(GameContext);
    }

    protected override void OnDestroy()
    {
        Game.Dispose();

        base.OnDestroy();
    }
}`

and for iOS:
`[Register("SampleGameAppDelegate")]
public class SampleGameAppDelegate : XenkoApplicationDelegate
{
/// This method is invoked when the application has loaded and is ready to run the gane.
// In this method you should instantiate the game and perform additional setup here.
// You have 17 seconds to return from this method, or iOS will terminate your application.
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
// Instantiate the game
Game = new Game();
        return base.FinishedLaunching(app, options);
    }

    static void Main(string[] args)
    {
        UIApplication.Main(args, null, "SampleGameAppDelegate");
    }

    public override void WillTerminate(UIApplication application)
    {
        Game.Dispose();
    }
}`

API Changes
Somethiong like <xck:StrideView/> in XAML or
var strideView = new StrideView();
Intended Use Case
See my example
Who Will Do The Work?

[ x] I am willing to take this on myself (when this is possible)
[x ] Just putting this out there for someone to pick up (if someone want to help i am open for this too)

here is the sample project
SampleGame.zip (created with Xenko 3.1 with installed UWP SDK for 20H1 and Xamarin.Forms for Android and iOS on Visual Studio 2019)

I guess it would depend on what those activity and app delegate classes are doing. There is a similar discussion regarding mono game here: https://github.com/MonoGame/MonoGame/issues/7191

@Agredo thanks for your suggestion, but this out of the scope of this project.

@Agredo thanks for your suggestion, but this out of the scope of this project.


Should sar:instrument_mode allow array on collection level

I think the sar:instrument_mode should allow on the collection level several values (array) and not only a string (e.g. "sar:instrument_mode":["SM","IW","EW","WV"]).
This is how it's currently in use by the GEE Catalog and also how Sentinel Hub has their Sentinel-1 collection saved (as 1 collection including all instrument_modes).
On an item level allowing a string only makes sense.

That's already the case, you'd put it in the Collection summaries and there it can be an array.


investigate adding metrics middleware with datadog backend

[ ] make a middleware for server metrics, just measuring response times and counters for messages.

[ ] investigate making log scribes with ES and Kibana

I'd be interested in taking this one.
I'm not 100% sure what you mean by counter for messages.

It seems like all someone needs to do is make a scribe for data dog or elastic search here is a test for data dog and it seems pretty straight forward.
Are we imagining a wrapper like we do for the current loggers and the user provides the data dog creds and gets to skip making the logEnvironment?

@charlescrain yeah, I that makes sense to me

Played a bit with @charlescrain branch.
I currently have logs being collected by a local datadog agent on my branch.