[cdc] Use CdcSourceRecord as source type instead of raw String

Purpose

Refactor the cdc source record, it will help to implement more data formats.

Tests

API and Format

Documentation

@yuzelin Could you help to review it?

Thanks for contributing! We are planning to cut release 0.7.0 branch today (Jan. 25). Since this PR is refactor, I will review later.

I have optimized a version, and next I want to implement records that receive generic structures, but this is very difficult to modify.

Thanks @harveyyue and sorry for my late response. Thanks @zhuangchong for resolving the conflicts and tests!


Fix mono basis GetEuler bug and marshalling/unmarshalling

This brings the C# Basis implementation in line with the C++ implementation and reverts the transposition when marshaling/unmarshaling.
This makes the Basis functions behave as expected (they were written under the assumption that the values were transposed internally), but it does mean that the internal values (basis.x, basis.y, basis.z) are transposed.  This is the behavior in C++ but not in GDscript, so it should be changed.
I believe this pr is the best short term fix, but we really need a Basis.cs rewrite that stores untransposed values and performs operations under that assumption.  We could then reapply @NathanWarden's transpose operations (which were reverted here).
While we wait, users that need the real x,y,z axis values should use GetAxis(i), where i = 0 for x, i = 1 for y and i =2 for z.
More context here

I'm trying to work out how and what to fix for 3.0.z. Thanks for this.

Related: https://github.com/godotengine/godot/pull/17046 and https://github.com/godotengine/godot/issues/16937
Likely has some conflicts with: https://github.com/godotengine/godot/pull/17134

So what is left in order to fix #14553 and #11901 is to make these use GetAxis right?

Yup!  I'll do that when I get home today.

Ok I changed x/y/z to properties that use GetAxis and adjusted all basis methods to use _x/_y/_z (or indexers).  I also added SetAxis so the properties are settable.  A few notes/questions:

Can we use PascalCase here (and in the other C# classes?  vector.x, Transform.basis, etc)
The indexer operators still use the internal values.  ex: basis[0], basis[0, 1]
This pr is a good bandaid fix, but I still think that long term it would be better to rewrite Basis.cs (see my other branch here ... it doesn't currently work. see #16937 for context).  It makes the implementation simpler / faster and would fix the indexer operators.  If you want to discuss that more, lets continue the conversation there.

Before you rewrite or significantly change Basis, we should merge my PR which converts all mentions of float into real_t within Basis and other classes.

Thanks! :)

Actually, doesn't C# have multidimensional arrays as a built-in?
Apologies about the confusion BTW.

Yeah we could easily use those.  I figured we chose vectors so we could use some of the methods they have, but that doesn't appear to be the case.  Maybe its a stack vs heap thing?  Arrays (multidimensional or not) will be on the heap, but Vector3s are structs so they could be on the stack (but thats a clr implementation detail)

Ah I see, that's too bad. I also looked it up and it appears constant array dimensions can't be a part of data type in C#. That's pretty interesting but C# is more like a toy/scripting language running on top of a VM/JIT'ed so that's not too surprising for me (actually, given the amount of money MS has been throwing at C#, it is still a bit surprising). Well at least it does have stack allocation.

Cherry picked into 3.0.3


Confirm jBox is crashed

Hi!
I just don't know what I'm doing wrong...
But Confirm Modal is not working...
This is my code:
var conf = new jBox('Confirm', {
                title: 'Confirmar',
                theme: 'TooltipBorder',
                overlay: 'own',
                content: 'Al hacer esto, eliminará el archivo actual. ¿Deseas continuar?',
                confirmButton: 'Sí',
                cancelButton: 'No',
                confirm: function(){
                	cnf.close();
                }
            });
conf.open();

When I open it, this looks like this:

I'm using the last version of jBox that you have posted.
Thanks in advance!

Looks like the plugin is not loaded,
make sure to include the files
Sourece/plugins/Confirm/jBox.Confirm.js   and
Source/plugins/Confirm/jBox.Confirm.css
Let me know if that solved it!
Cheers,
Stephan

On 25 Nov. 2016, at 10:28, OswaldoMM<EMAIL_ADDRESS>wrote:
Hi!
I just don't know what I'm doing wrong...
But Confirm Modal is not working...
This is my code:
var conf = new jBox('Confirm', {
title: 'Confirmar',
theme: 'TooltipBorder',
overlay: 'own',
content: 'Al hacer esto, eliminará el archivo actual. ¿Deseas continuar?',
confirmButton: 'Sí',
cancelButton: 'No',
confirm: function(){
cnf.close();
}
});
conf.open();
When I open it, this looks like this:
https://cloud.githubusercontent.com/assets/21183018/20629424/7ee1f448-b2f9-11e6-97a5-513bff14a60d.png
I'm using the last version of jBox that you have posted.
Thanks in advance!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/StephanWagner/jBox/issues/71, or mute the thread https://github.com/notifications/unsubscribe-auth/ABj6CdCEnHpV3qwMMuu-vxmdVHzdGSlNks5rBv6EgaJpZM4K8iI3.

Holy God!
Man, Thank you...
Sorry, I used jBox several years ago... But it's been a long time without upgrade it...
Today, I downloaded last version. And all just crashed out: notices, modals and confirms.
I had combined all js files and all css files.
I have a lot of pages, I can't modify them all.
It seems to work perfectly now...


enable thread sanitizer

motivation: test with thread sanitizer
changes: enable thread sanitizer in test task

@ktoso TSAN broken on the combination of Centos as host and 18.04 as container. working with that team to fix

Oh, I see -- thanks for the update!

@swift-server-bot test this please


Fix CSS for code block without language

[x] I have followed (at least) the PR section of the contributing guide.

Production
https://material-ui.com/guides/minimizing-bundle-size/

My branch

Thanks for looking at it, I have dodged the problem in #18041.

@oliviertassinari Oh, so should I close this PR?

@mtsmfm The approach taken here is different. I'm wondering.

What about forcing a language?

What about forcing a language?

You meant adding class like "language-none", right?

Once I tried such a way but I found marked.js can't add language- class for code block without specifying language:
https://github.com/markedjs/marked/blob/1b08126ca6407fd13103b310ecf34d1f8f8c59eb/lib/marked.js#L944

@mtsmfm I have updated the pull request to explore another strategy. It forces the usage of a language. I'm curious to see how many demo pages it will impact.

@mtsmfm Alright, it seems that we can force the language without breaking any page. It might help to prevent such a problem in the future :). Thank you for taking the time to work on the problem ❤


XLNet tokenizer bug

The assertion should pass even if the pretrained_model_name is not passed.
Instead of checking if pretrained_model_name is not None, we have to check if self.pretrained_model_name is not None. This is because pretrained_model_name is an optional argument and self.pretrained_model_name is set accordingly if pretrained_model_name is None.

Thanks for this fix! I think lines 99 and 100 should also be fixed.


Go Router using ":" in deeplink url can't be used

When I use a : in a deeplink url it get encoded and decoded in the go_router match.dart file at line 32. I am using go_router version 4.4.1.
This way when a url with a : is encoded which becomes %3A. This way the assertion fails.
This is the assertion:
assert(p.value == Uri.encodeComponent(Uri.decodeComponent(p.value)), 'encodedParams[${p.key}] is not encoded properly: "${p.value}"');
Reproduce:

$ xcrun simctl openurl booted scheme://domain.com/portal/54705ed93fc64c3c899a2d1afbe635ad:339bd3547ee943128bf8d5271a9a7eba
Error occurs

Workaround is to just not use a : in urls.

Hi @theobouwman, please provide a completed and minimal reproducible code sample so that we may verify this. In this case, it may contain native code for deep link so please push the sample code into a GitHub repository and make it public. Thank you!


Multi-Column Notes exit columns below

Awesome work! Is there a way to write below the columns after them or is the note completely split off into columns?

@j-maffe Not in one note with the current implementation, and I haven't found a (nice) way to do that yet. The newly added support for embeds is a kind of solution to this though --- you can add the multi-column section in an embed, and write without columns around it

I believe one option would be to create a custom callout that expands to the full note width (kind of flipping the other multicolumn implementations on their head). Ideally I could add just a marker element that escapes the columns for everything after it, but not sure if I can do that. Let me know if the callout is something that would be useful, and I'll look into adding it if possible.

@j-maffe I added support for multi-column callouts in v0.5 (different to what I suggested above, but you might find this useful for adding multicolumn sections to notes. No live preview for these though.)

This is awesome! Thanks so much! :D
But yeah I suppose having the snippet only be applied to part of the note would be quite hard, a callout is more than sufficient. Definitely much simpler and honestly better than the available plugins.


Unmunge HUD defect

Was chatting with AnthonyBF2 on HUD last night and he pointed out that the HUDs are not unmunging totally correctly.

Ah yeah, I think I remember someone else bringing this up as well. (But I forgot about it because it was just in passing.) Thanks for opening an issue for it. This is something that definitely should be addressed.

Also...
A similar issue exists in .snd files for the property 'Parent'?

I fixed the HUD unmunge in the following way on a local copy (handle_config.cpp)
Could be a more general way, I'm not sure but here's a solution for the HUD unmunge (for your consideration).
std::string read_tag_data(Ucfb_reader_strict<"DATA"_mn> data,
                          const Swbf_fnv_hashes& swbf_hashes,
                          const std::size_t indention_level)
{
   const auto hash = data.read_trivial<std::uint32_t>();

   std::string line;
   std::string name;
   line.append(indention_level, '\t');
   name = swbf_hashes.lookup(hash);
   line += name;
   if (name == "Position" || name == "PositionSmall" || name == "PositionLarge" || name == "PositionSpawn" ) {
      line += "("sv;
      const auto element_count = data.read_trivial_unaligned<std::uint8_t>();
      for (std::size_t i = 0; i < element_count; ++i) {
         if (i < 3) {
            line += cast_number_value(data.read_trivial_unaligned<float>());
            line += ", "sv;
         }
         else {
            auto offset1 = data.read_trivial_unaligned<std::uint32_t>();
            auto offset2 = data.read_trivial_unaligned<std::uint32_t>();// used for len
            auto str1 = data.read_string_unaligned();
            //line += "\"Viewport\""sv;
            line += "\""sv;
            line += str1;
            line += "\""sv;
         }
      }
      line += ");\n"sv;
   }
   else if (name == "BitmapRect" || name == "Rect") { //BitmapRect(0.212315, 0.016690, "Left", "Top", "Viewport")
      line += "("sv;
      const auto element_count = data.read_trivial_unaligned<std::uint8_t>();
      for (std::size_t i = 0; i < element_count; ++i) {
         if (i < 2) {
            line += cast_number_value(data.read_trivial_unaligned<float>());
            line += ", "sv;
         }
         else if (i == 2) {
            auto offset1 = data.read_trivial_unaligned<std::uint32_t>();
            auto offset2 = data.read_trivial_unaligned<std::uint32_t>();
            auto offset3 = data.read_trivial_unaligned<std::uint32_t>();
            auto offset4 = data.read_trivial_unaligned<std::uint32_t>();
            auto str1 = data.read_string_unaligned();
            auto str2 = data.read_string_unaligned();
            auto str3 = data.read_string_unaligned();

            line += "\""sv;
            line += str1;
            line += "\", \""sv;
            line += str2;
            line += "\", \""sv;
            line += str3;
            line += "\""sv;
            break;
         }
      }
      line += ");\n"sv;
   } else {
       // do something, pretty useless though. :(
      line += "();\n"sv;
   }
   return line;
}


CT admonitions. #12495

Summary

Test plan

Thanks! Could you make the same in versioned docs as well, please? In this case these are only v27 and up. Would be very nice to clean up them all in one go.

Perfect. Thanks!


2023.9.1: Add text progress screen

https://github.com/lubeda/EspHoMaTriXv2/issues/143

it seems very accurate
useful for me, thank you!

Why text and value? if text and value are long the overwrite each other? I think value is enough or text should scroll.

Why text and value?

Text on left, value on right ...

if text and value are long the overwrite each other?

Yes

I think value is enough or text should scroll.

Well, I did not want to make the text scrolling, but it is generally not difficult, but you need to write a calculator to understand the width of the value, and what if the width of the value will be 30 characters?
And so let the user decide for himself how it is more convenient for him.

HI, I'm not sure what's the best way. Due to the limited screen space there are always some draw backs. Without scrolling I think the best way is to check the pixels for value and text if the fin in 32 pixel display both, if don't display only the text because the value is indicated somehow with the bar.
A limitation based on character count is quite random.

I don't mind, but it seems to me that this is such a specific screen that those who will use it will be able to define and shorten the text and value so that everything is on the screen. But I like your idea, it won't be a mess, just text.

But I like your idea, it won't be a mess, just text.

I agree.
For my tasks (4symb text) + (3symb value + '%') is enogh, as I asked in issue.
Any improvements I support.


use selected vscode python interpreter

I use poetry, and have to tell vscode to use the virtual environment created by poetry install through the Python: Select Interpreter command.  Is there any way for this extension to also use that selected interpreter?  Since I use the default poetry behavior of allowing the virtual directory to be created separately from the repo directory, I can't use one setting for "vscode-pydata-viewer.pythonPath" that works for all repos.

Thank you for providing the details of your workflow. We appreciate your feedback and would like to let you know that we will work on supporting this scenario as soon as possible. In order to make it easier to add a fix, would you be willing to accept a solution that involves adding an option to align the Python interpreter with the setting in the VSCode Python interpreter?
Looking forward to your reply.

Yes, that would be acceptable.  Thanks!

Looking forward to this new feature! Currently I'm using Python variants in conda environments and the plugin cannot find the right one to use.

Oh I found there is a settings option vscode-pydata-viewer.pythonPath that can fix my problem


correction of results using MR1271477

This changes nothing about the results known by pi-Base, but more correctly uses the main result of MR1271477.
https://math.stackexchange.com/questions/4744210/why-cant-a-lusin-set-be-sigma-compact needs an answer before this is ready.

This changes nothing about the results known by pi-Base,

well that's not quite true - we now have that Luzin sets are not just Menger, but Rothberger.


Logtalk support

It would be nice to have a NPM package that includes Logtalk and make it easy to use it browsers. Ideally, this would be a 'slim' distribution that optimizes file size somehow (maybe irrelevant with proper HTTP transport compression?).
On that note, it would be nice to have a way to distribute bundles of Prolog files in general without having to manually add them to the wasmer-js virtual file system.

Logtalk and Logtalk applications can be embedded for distribution. That may be party of the solution. See:
https://github.com/LogtalkDotOrg/logtalk3/tree/master/scripts/embedding/trealla


Repository standardization

Hi @leozz37, we need to adjust a few things first to move forward, ok? ✨
You must write the installation steps in the INSTALL.md file, as it will appear on the site when a user searches for this theme.
Let me know if something isn't possible or if you have any questions! 🙂

Hey @luxonauta! Just opened a PR for this! #2


♿🔍🐛Improved accessibility, Increased SEO (Lighthouse) and Fixed Bugs in Auto Lighthouse Badger Action

List of changes:

Renamed lighthouse actiont
Reduced cron intervall (its not required every day, only do it on build (see below)
Fix for lighthouse badger action not running on deploy
Added label that is only visible to screen readers (improves lighthouse accessibility)
Made ascii art font size bigger to follow the mobile standard for minimum file size (12px)

@all-contributors please add @ColorsCrypt for accessibility, bug


Additional logging // "Merge and normalize" step hangs

Is there a way to show additional logging during the merge?
I'm running this program on my existing translation base (+/- 3500 translations; merged before with xliffmerge, moved to this due to the console error) and it takes >10 min and is still not finished. I'd like to know if it crashed on something or if it is still trying its best.

@TTvanWillegen currently there is only little output, but it should not take that long..
Is there any output at all? What nodejs version and OS are you running?

Hi Daniel,
I'm currently on Node version 16.16.0 and Angular version 14.2.3.
It only outputs the following and then hangs:

"extract-i18n" in angular.json looks like this:
"extract-i18n": {
          "builder": "ng-extract-i18n-merge:ng-extract-i18n-merge",
          "options": {
            "browserTarget": "default:build",
            "format": "xlf",
            "outputPath": "src/locale",
            "includeContext": true,
            "targetFiles": [
              "messages.es-ES.xlf",
              "messages.nl-NL.xlf"
            ],
            "trim": true
          }
        }

Folder structure looks like this:

@TTvanWillegen thanks for the update - would it be possible to share the messages.xlf (before and after the extraction) and messages.es-ES.xlf? In case you'd rather share it privately<EMAIL_ADDRESS>

@daniel-sc Thank you, I've sent them to you via e-mail. You should've received them by now.

thanks I'll look into this..

Update: still working on this. Looks like this is caused by really bad performance when fuzzy matching many entries. The fix is almost ready though..

Thank you very much; I've re-installed, so it would grab the v1.0.1 of xliff-simple-merge and can confirm the performance is way better 👍


Component/aikido ros control

An actionlib client which receives an aikido::trajectory and sends it to an actionlib server after appropriately converting it to a control_msgs::FollowJointTrajectory.action goal.
N.B - Currently builds but needs to be tested. The pull request was started to check if the logic is correct.

This change is

Coverage decreased (-3.6%) to 84.821% when pulling 5600cda6b94f7e49813bb7197949390bb9cff010 on component/aikido_ros_control into 4fa0a81e6d69df4f4c721dda86b3efea1f096062 on master.

Reviewed 8 of 8 files at r1.
Review status: all files reviewed at latest revision, 21 unresolved discussions.

aikido/include/aikido/util/KinBodyParser.h, line 2 [r1] (raw file):

#ifndef AIKIDO_UTIL_KINBODY_PARSER_H
#define AIKIDO_UTIL_KINBODY_PARSER_H

This file is really part of #102. We either need to merge that pull request first or strip this file from the pull request.

aikido/src/util/CMakeLists.txt, line 6 [r1] (raw file):

  VanDerCorput.cpp
  StepSequence.cpp
  KinBodyParser.cpp

This file is really part of #102. We either need to merge that pull request first or strip this change from this pull request.

aikido/src/util/KinBodyParser.cpp, line 1 [r1] (raw file):

#include <algorithm>

This file is really part of #102. We either need to merge that pull request first or strip this file from the pull request.

aikido_ros_control/notes.txt, line 9 [r1] (raw file):

4. Check that it is metaskeleton state space and dof names respect that ordering

5. SO2 is a single effective value

Please delete this file.

aikido_ros_control/include/aikido/ros_control/RosTrajectoryExecutor.hpp, line 18 [r1] (raw file):

namespace ros_control {

class RosTrajectoryExecutor : public aikido::control::TrajectoryExecutor

Missing docstring for this class.

aikido_ros_control/include/aikido/ros_control/RosTrajectoryExecutor.hpp, line 27 [r1] (raw file):

        std::string serverName,
        ros::NodeHandle node,
        double trajTimeStep);

Missing docstring for this constructor and (more important) its arguments.

aikido_ros_control/include/aikido/ros_control/RosTrajectoryExecutor.hpp, line 32 [r1] (raw file):

    std::future<void> execute(
        trajectory::TrajectoryPtr _traj) override;

Add // Documentation inherited. if you want to use the superclass' docstrings.

aikido_ros_control/include/aikido/ros_control/RosTrajectoryExecutor.hpp, line 36 [r1] (raw file):

private:

    typedef actionlib::SimpleActionClient<control_msgs::FollowJointTrajectoryAction> TrajectoryClient;

Use using = aliases instead of typedefs.

aikido_ros_control/src/RosTrajectoryExecutor.cpp, line 37 [r1] (raw file):

    if (mPeriod.count() <= 0)
        throw std::invalid_argument("Period must be positive.");

Missing error checking on trajTimeStep.

aikido_ros_control/src/RosTrajectoryExecutor.cpp, line 71 [r1] (raw file):

    if(!space)
        throw std::invalid_argument("Trajectory does not operate in this Executor's"
            " MetaSkeletonStateSpace.");

Misleading error message because this only checks that space is a MetaSkeletonStateSpace, not this specific state space. I suggest changing this to "Trajectory is not defined in a MetaSkeletonStateSpace."

aikido_ros_control/src/RosTrajectoryExecutor.cpp, line 75 [r1] (raw file):

    auto metaSkeleton = space->getMetaSkeleton();

    control_msgs::FollowJointTrajectoryGoal traj_goal;

Add a TODO about optionally populating path_tolerance, goal_tolerance, and goal_time_tolerance.

aikido_ros_control/src/RosTrajectoryExecutor.cpp, line 115 [r1] (raw file):

    auto subspace_rn = space->getSubspace<aikido::statespace::Rn>(0);
    auto subspace_so2 = space->getSubspace<aikido::statespace::SO2>(0);
    std::shared_ptr<aikido::statespace::StateSpace> subspace;

The MetaSkeletonStateSpace contains one subspace per Joint. This logic only checks the type of the first joint. You likely want to loop over getNumSubspaces() and repeat this for each subspace.

aikido_ros_control/src/RosTrajectoryExecutor.cpp, line 129 [r1] (raw file):

        else
            auto subspace = subspace_so2;
    }

This else block is meaningless because the subspace variables immediately go out of scope.

aikido_ros_control/src/RosTrajectoryExecutor.cpp, line 150 [r1] (raw file):

            auto state = subspace_so2->createState();
            mTraj->evaluate(time_val, state);
            double angle_value = subspace_so2->getAngle(state);

You have to be careful here to guarantee continuity. States in an SO2 state space are equivalent modulo 2 * M_PI. You need to pick the right multiple of getAngle() to avoid introducing a discontinuity in the trajectory. Note that this is more complicated than normalizing the angle to be within some range: producing a continuous trajectory may require an arbitrary amount of winding.

aikido_ros_control/src/RosTrajectoryExecutor.cpp, line 161 [r1] (raw file):

            // Is this correct??????
            jtpoint.positions.assign(state_values, state_values+n_dims);

This should be okay.

aikido_ros_control/src/RosTrajectoryExecutor.cpp, line 162 [r1] (raw file):

            // Is this correct??????
            jtpoint.positions.assign(state_values, state_values+n_dims);
        }

This also needs to loop over getNumSubspaces().

aikido_ros_control/src/RosTrajectoryExecutor.cpp, line 186 [r1] (raw file):

    }

    if(duration - time_steps*mTrajTimeStep > std::numeric_limits<double>::epsilon())

This contains a lot of duplicate code. I would prefer to decouple the logic in the following way:

generate a list of times at which to sample the trajectory, which always includes the end point
iterate over those times and evaluate the trajectory

aikido_ros_control/src/RosTrajectoryExecutor.cpp, line 237 [r1] (raw file):

    //Wait for Result - need a TIMEOUT parameter
    double timeout = 30.0;
    bool finished_before_timeout = mTrajClientPtr -> waitForResult(ros::Duration(timeout));

We shouldn't block on a result here. The execute function is intended to return immediately and return a std::future that allows the use to (optionally) wait for execution to finish. While making that change, I would like to migrate to the same spin() architecture as @gilwoolee did in #101. The key idea is to replace the internal thread with a public spin() method that the user is responsible for calling periodically.
There are two key advantages to this architecture: (1) it is possible to run with no extra threads by manually calling spin() in a loop that checks the status of the future and (2) it is possible to combine multiple spin() calls in one thread. This reduces lock contention, helps make execution more deterministic, and simplifies testing.
I believe this requires using ActionClient directly, instead of through the SimpleActionClient helper class. You will also want to construct the ActionClient with a custom CallbackQueue so we have low-level control over when it processes messages. Look at my implementation in muul to see how this machinery works.

aikido_ros_control/src/RosTrajectoryExecutor.cpp, line 275 [r1] (raw file):

                startTime = system_clock::now();
                trajInExecution = true;
            }

I don't think this logic belongs in the condition variable's callback function. Can we move this to the function body?

aikido_ros_control/src/RosTrajectoryExecutor.cpp, line 293 [r1] (raw file):

        // CartesianProduct which inherits virtual StateSpace
        auto space = std::dynamic_pointer_cast<
            MetaSkeletonStateSpace>(mTraj->getStateSpace());

Can we do this once, inside execute, and store the result of the cast in a member variable?

aikido_ros_control/src/RosTrajectoryExecutor.cpp, line 316 [r1] (raw file):

        }

        std::this_thread::sleep_until(now + mPeriod);

Release lockSpin before sleeping here. Otherwise execute will deadlock when attempting to acquire the mutex.
Also, sleeping until now + mPeriod will consistently lag behind the desired update period. I suggest keeping track of the desired time of the next update cycle (e.g. next_update), sleep_until(next_time), and updating next_time += mPeriod. This alternate implementation will not drift over time.

Comments from Reviewable

Changes Unknown when pulling b4723abbd3591e1d8a3afa9e4374a0830130fe70 on component/aikido_ros_control into ** on master**.

Review status: all files reviewed at latest revision, 21 unresolved discussions, some commit checks failed.

aikido_ros_control/src/RosTrajectoryExecutor.cpp, line 71 [r1] (raw file):
Previously, mkoval (Michael Koval) wrote…
> Misleading error message because this only checks that `space` is a `MetaSkeletonStateSpace`, not *this* specific state space. I suggest changing this to "Trajectory is not defined in a MetaSkeletonStateSpace."

FYI the same message is in `aikido/control/KinematicSimulationTrajectoryExecutor.cpp`

aikido_ros_control/src/RosTrajectoryExecutor.cpp, line 115 [r1] (raw file):
Previously, mkoval (Michael Koval) wrote…
> The `MetaSkeletonStateSpace` contains one subspace per `Joint`. This logic only checks the type of the *first joint*. You likely want to loop over `getNumSubspaces()` and repeat this for *each* subspace.

But do I generate a separate trajectory for each subspace?

Comments from Reviewable

Reviewed 2 of 2 files at r2.
Review status: all files reviewed at latest revision, 21 unresolved discussions, some commit checks failed.

aikido/src/util/CMakeLists.txt, line 6 [r1] (raw file):
Previously, mkoval (Michael Koval) wrote…
> This file is really part of #102. We either need to merge that pull request first or strip this change from this pull request.

You deleted these files below, so you should also remove them from this `CMakeLists.txt` file.

aikido_ros_control/src/RosTrajectoryExecutor.cpp, line 71 [r1] (raw file):
Previously, Shushman (Shushman Choudhury) wrote…
> FYI the same message is in `aikido/control/KinematicSimulationTrajectoryExecutor.cpp`

Do as I say, not as I do. :laughing:
We should make the same change in that code. You are welcome to do it now, or we can punt until a future pull request.

aikido_ros_control/src/RosTrajectoryExecutor.cpp, line 115 [r1] (raw file):
Previously, Shushman (Shushman Choudhury) wrote…
> But do I generate a separate trajectory for each subspace?

The `Trajectory` is defined over the `MetaSkeletonStateSpace`, which means that `evaluate`ing it produces a state that contains values of *all* joint in the `MetaSkeleton`. The only change that is necessary is to repeat this logic for reach sub-space and corresponding sub-state, instead of only the first one.

Comments from Reviewable

Closing this in favor of #111.


In React d3-org-chart, how to Include scroll bars and stay root node on top when all child collapsed and how to achieve horizontal layout

Hi David,  I have a few questions on org-chart implementation. Can you please provide details on how to achieve these  things?

How to include scroll bars in Org charts(attached sample code). I have  50 child nodes, able to see all levels through a scroll bar
when collapsing all the child nodes, the root node is centered, but in initially its top aligned. i want the same position after making the collapse of all children.
How to make horizontal layout instead of  the default vertical.
Marking/highlight  child to root node is possible?  do we have  any example for these?

org-chart.zip
Thanks,
Ganesan M

Hi, I don't think that the first one is possible (it's possible artificially, but not with native scroll and it will require some work)
As for other questions, I'd suggest checking examples in the dev version and I think some of the examples will answer your questions.
https://github.com/bumbeishvili/org-chart/tree/dev#features

Thanks for your Quick Response. I want to implement  template in
 this. I want a stable chart without active node focus. Can you please guide me this pls

Thanks David

Thanks David for your Quick response


strerror_r check is incorrect

@A1-Triard:

By the way, looks like this is not 100%-correct strerror_r result check. The strerror_r Linux manpage says, that starting from glibc 2.13 it returns (positive) errno as a result instead of returning -1 and setting errno. The corresponding manpage in FreeBSD also specifies 0, EINVAL, and ERANGE as only possible return values.

https://linux.die.net/man/3/strerror_r
Thinking further, the fact that a Display impl (which most people assume is non–side-effecting) can change global state is kind of surprising. We'll need to document that at least. Not sure what else we should do.

Not sure what else we should do.

You can restore old errno value, but personally I would not bother with that.


Midnight Deluxe [PCSG00198]

App summary

App name: Midnight Deluxe
App serial: pcsg00198
App version: 3.67

Vita3K summary

Version: v0.1.5
Build number: 2603
Commit hash: https://github.com/vita3k/vita3k/commit/8daf6c6f
CPU backend:dynarmic

Test environment summary

Tested by: bennyli
OS: Windows 10 21H2 19044
CPU: AMD 4800u
GPU: AMD vega8
RAM: 16 GB

Issues

no response in first scene
Screenshots

Log
vita3k.log
Recommended labels

crash
nothing

Vita3K summary

Version: v0.1.6
Build number: 2840
Commit hash: https://github.com/vita3k/vita3k/commit/4a2c6582
CPU backend: Dynarmic

Test environment summary

Tested by: othmanead
OS: Windows 11
CPU: Intel i5-10300H
GPU: RTX 3060 mobile
RAM: 16 GB

Issue:
Game plays with no issues
Screenshots:

Log
vita3k.log
Recommended labels

Playable

@othmanead this issue the titile id is PCSH10098, not PCSG00198

@nishinji @othmanead please check this issue, the titile id is PCSH10098, not PCSG00198.

Mr. @Zangetsu38 @nishinji @othmanead, please check this issue, the title id is PCSH10098, not PCSG00198.


better unit tests

Type of Change

[ ] Bug fix (non-breaking change, fixes #)
[X] New feature (non-breaking change, adds functionality)
[ ] Breaking change (effects multiple commands or functionality)
[ ] Ran manual Pester test and has passed (`.\tests\manual.pester.ps1)
[X] Adding code coverage to existing functionality
[ ] Pester test is included
[X] Nunit test is included
[ ] Documentation
[ ] Build system

Purpose
More code coverage for Size.cs and I am using the newer MSTests package so I can take advantage of DataRowAttribute to run the same test with multiple inputs.
Commands to test
Well lets not jinx ourselves and test the crap out of the CopyDb command.
Learning
NCrunch is way awesome as an alternative to dotcover.

I presume @FriedrichWeinmann  will merge when he has time to thoughtfully review.
@potatoqualitee banged out some more tests. I might duplicate some of these tests in pester, with not as much detail. It would be a little more "accessible." On thee other hand it might just lack redundancy.
I guess its just weird this was broken for like a day, everyone knew where in the C# it was broken and no one figured out how to write a Powershell test that didn't require connecting to a database.
I'm just thinking "how do we systemically improve?"  Maybe the answer is do something differently.

to say my piece, I know that the bug was in c# but reaaally didn't have any other answer than "restore to the last working version". To me c# is obscure (and there's just a bunch of people that know the build process enough to make sure dll/whatever gets rebuilt properly).
That being said, tests in PS weren't catching it because it revealed with a fairly high "number" that we cannot replicate easily in "live" tests. In addition to that, I'm really not a fan of mocking because the time taken to properly mock intricated SMO objects can cover those kind of glitches but won't cover "most" of them, which is why you find so little mocks and so much "live" tests.
Last but not least, once this gets merged, let's make sure tests are run on appveyor's CI for DLLs at every commit, just like it "was".

@niphlod SMO stuff is hard to mock I agree. The only way around that is encapsulating or FakeItEasy. Both are fragile solutions.
In this case the bug was in Size.cs which doesn't depend on anything., Its pure math and string concating. I was able to replicate the bug in Size.cs that lead to the error in the backup cmdlets  through one line of PowerShell that didn't require a database connection or anything.
However, I guess you are right, for most of the contributors the C# code is as opaque as inline assembly in a C++ file would be to me. It would be harder for me to write pester tests than C# tests for the C# code. I should have written more tests and we need to get appveyor running them.

it's probably the same line @potatoqualitee added as a regr test and a similar one to the one I proposed while debugging in slack.
From my point there has been this pseudo-brain:

I know there's a bug
we trusted too much c#, we missed it in pester
I can easily replicate it in PS (and know how to add a failing test)
we'll surely add it
I don't know where/how to fix it

Full blame on me not catching up with c# code, which I guess could be easy if I got the time to introduce my brain into it.
Sadly, the same deal goes for adding other (similar?) tests: as I can't read c# code, I can't foresee where it could fail (read: "it feels like writing tests for the PS operator -EQ")

@potatoqualitee I mean I still have to get the unit test running in appveyor, but I can do that in a separate PR.
I didn't mess with any of the app code, just build scripts and test code. So yeah lets merge it!

😁


feat: gitlab fetch

Description
This pull request adds the ability to fetch an SBOM from GitLab using the Dependency List Export web API endpoint.
Fixes #131
Type of change

[x] New feature (non-breaking change which adds functionality)
[x] This change requires a documentation update

How Has This Been Tested?

[x] Manual tests.
[x] Unit tests.

Checklist

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules
[x] I have checked my code and corrected any misspellings

I didn't explain what I was getting at for implementing a mockable pattern very well during our call, so hopefully this will make more sense. In my opinion, this type of implementation might make the code easier to read, maintain, and test/mock.
The TL;DR version is even with nested types and interfaces, it might simplify things to abstract everything into a common flattened interface. This interface can then be implemented as a mock much more easily.

Define interfaces for methods you want to mock and embed these interfaces as fields on your Client struct definition

Example
// internal/pkg/client/gitlab/client.go

type (
	BranchesService interface {
		GetBranch(pid any, branch string, options ...gitlab.RequestOptionFunc) (*gitlab.Branch, *gitlab.Response, error)
	}

	ProjectsService interface {
		GetProject(pid any, opt *gitlab.GetProjectOptions, options ...gitlab.RequestOptionFunc) (*gitlab.Project, *gitlab.Response, error)
	}

	CommitsService interface {
		GetCommit(pid any, sha string, opt *gitlab.GetCommitOptions, options ...gitlab.RequestOptionFunc) (*gitlab.Commit, *gitlab.Response, error)
	}

	DependencyListExportService interface {
		CreateDependencyListExport(pipelineID int, opt *gitlab.CreateDependencyListExportOptions, options ...gitlab.RequestOptionFunc) (*gitlab.DependencyListExport, *gitlab.Response, error)
		DownloadDependencyListExport(id int, options ...gitlab.RequestOptionFunc) (io.Reader, *gitlab.Response, error)
		GetDependencyListExport(id int, options ...gitlab.RequestOptionFunc) (*gitlab.DependencyListExport, *gitlab.Response, error)
	}

	Client struct {
		BranchesService
		ProjectsService
		CommitsService
		DependencyListExportService

		glClient *gitlab.Client
	}
)

If one of these interfaces is unset in the code before trying to call its interface method, set it to a default value

Example
func (client *Client) createExport(projectName, branchName string) error {
	if client.ProjectsService == nil {
		client.ProjectsService = client.glClient.Projects
	}

	project, response, err := client.ProjectsService.GetProject(projectName, nil)
	// ...
}

(optional) Explicitly implement interface methods if it's more convenient, although this might cause embedded method name conflicts

Example
func (client *Client) GetBranch(pid any, branch string, options ...gitlab.RequestOptionFunc) (*gitlab.Branch, *gitlab.Response, error) {
	result, resp, err := client.glClient.Branches.GetBranch(pid, branch, options...)
	if err != nil {
		return nil, nil, fmt.Errorf("%w", err)
	}

	return result, resp, nil
}

Heads up: the go-gitlab package was deprecated....today: https://pkg.go.dev/github.com/xanzy/go-gitlab#section-readme

What am I doing wrong:
$ go run . fetch https://www.gitlab.com/hoppr/hoppr@dev
INFO  fetch: Fetching from GitLab URL url=https://www.gitlab.com/hoppr/hoppr@dev
FATAL fetch: failed to save document: adding document: parsing SBOM data: detecting SBOM format: detecting format: unknown SBOM format
exit status 1

What am I doing wrong: (running on your branch obvs)
$ go run . fetch https://www.gitlab.com/hoppr/hoppr@dev
INFO  fetch: Fetching from GitLab URL url=https://www.gitlab.com/hoppr/hoppr@dev
FATAL fetch: failed to save document: adding document: parsing SBOM data: detecting SBOM format: detecting format: unknown SBOM format
exit status 1

It was a bug on my part. Sorry. It's fixed now.


Ranged strength miscalculated / wrongly read

Since either the latest version (2.1.1) or the one before (2.1.0) ranged strength isn't being set correctly. It looks like the ranged accuracy value is also set to the ranged strength value, instead of actually getting the proper ranged strength value.

Duplicate of #58 and already fixed. Your client should pick up the correct data next time it is restarted.


#3263 separate chart edit view

Description

Since the chart editing screen is dependent on the dashboard editing screen, there is no way to modify only the chart.
Related Issue : #3263

How Has This Been Tested?

Log in to discovery.
Check the ID of the page widget in the dashboard inquiry information.
Connect to the following address using the ID of the page widget.
/app/v2/page/[pageWidgetId]
Check if it works normally.

Need additional checks?
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] I have read the CONTRIBUTING document.
[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have added tests to cover my changes.

Additional Context

deploy to 2

deploy to 2

deploy to 2

deploy to 2

deploy to 2

deploy to 2


Close Firestore to prevent socket leak.

I noticed that each time a token client reaches out to the token server it will establish two new sockets to communicate with Firestore but they are never disposed.

thanks!  good catch

thanks!  good catch


Check permissions when fetching loans

Sorry, I had to setup tests and fix code with the tests (closes #14).

As agreed, I am merging this PR and I will open another one to fix Travis tests.


Latest chromium security updates when?

When will thorium get latest version of Chromium security updates like ungoogled chromium does it updates when Chromium get security updates and thorium is like 2 major security updates behind Why?

@g-k-m @MathiasT22a Not as simple as that.
Updating to a newer Chromium is what most of the work time takes up.
I have to manually rebase each file in the //src directory, by merging my changes with whatever changes have been made upstream since the last rebase.
It's alot of work, and since Chrome/Chromium started going from 6 week major version update schedules, to 4 week, it has been even harder. If you want the latest Chromium the day it is released, I suggest using another Chromium fork that has the infrastructure to do so. However, I always use the latest "minor revision" of whatever I rebase to, which often contains backported security patches from newer versions, so Thorium isn't as insecure as people might think (although it is still less than if I was able to immediately update it as soon as a new major Chromium version comes out).
For example, the latest M126 version contains security patches that have been backported from M127, so It is essentially at the security level of M127, which is only one major version behind.


MAUI viewer: search optimization

Description
Populates a dictionary with the key being the sample and the value being the keywords. Replaces for loop with dictionary lookups.
Type of change

Sample viewer enhancement

Platforms tested on

[x] MAUI WinUI
[x] MAUI Android
[ ] MAUI iOS
[ ] MAUI MacCatalyst

Checklist

[x] Self-review of changes
[x] All changes work as expected on all affected platforms
[x] There are no warnings related to changes
[x] No unrelated changes have been made to any other code or project files

It also might be a good idea to add if (sampleResults.Count >= 15) break; within the GetMatches() loop to focus the results on high quality matches and for a (very) minor performance bump. (right after we add the results to samplesResult) Thoughts?

just committed some further search optimizations, credits to @mstefarov

Uses regex generator (faster) instead of creating a new Regex every time.
Use a static HashMap for common words instead of re-creating the array over and over.
Do trim as part of split using StringSplitOptions.TrimEntries
Avoid an extra ToList() call


Patching for Issue 143

Based on requirements specified in KAFKA Rest API (http://docs.confluent.io/1.0.1/kafka-rest/docs/api.html#consumers):
Request JSON Array of Objects:     records – A list of records to produce to the topic.     records[i].key (object) – The message key, formatted according to the embedded format, or null to omit a key (optional)     records[i].value (object) – The message value, formatted according to the embedded format     records[i].partition (int) – Partition to store the message in (optional)
We can not provide duplicated keys when producing messages.
I updated the rest-utils to restrict number of key to be provided in message producing.

Can one of the admins verify this patch?

It looks like @lukemao hasn't signed our Contributor License Agreement, yet.
Appreciation of efforts,
clabot

Just made another commit. Also changed the Application class to use the default constructor in JacksonMessageBodyProvider.

Can we provide a test that this actually behaves as expected? I'm not sure, but maybe it could fit into ExceptionHandlingTest since this should trigger an exception during parsing of the entity?


Added Mention.norm

Because the norm of an entity is a single value that is simply replicated in all the tokens of the entity. For example, for the DATE entity "January 1st, 2000" its norm is the single String "2000-01-01".

Because the norm of an entity is a single value that is simply replicated in all the tokens of the entity. For example, for the DATE entity "January 1st, 2000" its norm is the single String "2000-01-01".

@MihaiSurdeanu but what if a mention spans multiple tokens which have diff norms, e.g., a date and a price.  The mention is not necessarily atomic in terms of norm.

The convention I used, similar the corenlp, is that each entity had a
single norm. If it's a nested entity, the norm should aggregate all content.
On Wed, Aug 4, 2021 at 20:35 Becky Sharp @.***> wrote:

Because the norm of an entity is a single value that is simply replicated
in all the tokens of the entity. For example, for the DATE entity "January
1st, 2000" its norm is the single String "2000-01-01".
@MihaiSurdeanu https://github.com/MihaiSurdeanu but what if a mention
spans multiple tokens which have diff norms, e.g., a date and a price. The
mention is not necessarily atomic in terms of norm.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/clulab/processors/pull/535#issuecomment-892843518,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAI75TTC76CI2H4HTUEASULT3F26VANCNFSM5BQVMQHQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

The convention I used, similar the corenlp, is that each entity had a single norm. If it's a nested entity, the norm should aggregate all content.

@MihaiSurdeanu sorry to keep pushing it's just that I think you're wrong.  Mentions aren't necessarily entities, and you're making a change in general purpose code that doesn't hold for all usages.  An event with several arguments shouldn't have only the norm of the first token, etc.  also, even with an entity-style mention, the norms don't aggregate all content, since the norm doesn't know a priori what the span of the Mention will be and so what would need to be aggregated.  If you want a separate method that does this, that's fine, but I really think this is the wrong implementation here.  At the end of the day, processors is your baby, just trying to help.

maybe have Mention.norm with this behavior and also Mention.norms with the whole slice? Kinda like label vs labels?

Yes, I think you're right, on both counts. I lean towards changing it to Mention.norms, which would be an array of all norms (one per token, from Sentence.norms), and let specific apps interpret that.

It was sounding like I should wait for norms() before releasing.

Yes, thanks!
On Thu, Aug 5, 2021 at 00:21 Keith Alcock @.***> wrote:

It was sounding like I should wait for norms() before releasing.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/clulab/processors/pull/535#issuecomment-892982991,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAI75TTC6WKJYSHXZX56BFLT3GVL7ANCNFSM5BQVMQHQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.


Add dashboard button to settings

My idea is to have a subsection in the settings page. We can show the version and link to the Dashboard:
# System Settings

## Current version

v0.4.1                                              [ See dashboard ]

This can be especially useful in the future once we add features to check if new versions are available.

We will also need a shutdown button soon, so that row can also include it in the future. :)

Okay, here's what I have.

That’s a pretty good starting point. Feel free to submit a PR!

I was thinking, why not add a shutdown button on the user profile modal.

That’s also an option. We are not going to add the button now anyway, so no need to worry! And once we add the shutdown button we will explore the best options!

Ah, okay, the shutdown button does nothing. I was thinking on the steps to gracefully shutdown livebook, i.e. save current notebook changes, session, etc

Closed via #851.


Unable to find "/etc/kubernetes/admin.conf" in master node

Unable to find "/etc/kubernetes/admin.conf" in master node:
It seems that the admin.conf is not created correctly? Is there any possible reasons for this issue? Thanks a lot.

Please fill this for deployment related issues:

Operating type: Deploy kubernets
Brief what deployment process you are following:

https://openpai.readthedocs.io/en/pai-1.0.y/manual/cluster-admin/installation-guide.html
I am working on this step
/bin/bash quick-start-kubespray.sh -m /path/to/master.csv -w /path/to/worker.csv -c /path/to/config
BTW, I have already tried the deployment many times. There should be some cache or temporary files existed. I am not sure if this is the reason for this error.

OpenPAI Environment:

OpenPAI version:v1.0.y

This has been solved by deleting all the kubernets caches in the master nodes.
sudo rm -rf /etc/kubernets


Fixes broken tests

Now we have some timeouts:

GuzzleHttp\Exception\ConnectException: cURL error 28: Operation timed out after 5001 milliseconds with 0 bytes received

Fixed with a045929e11d1d6c05be61adfd1823d82b95a5a62


feat(migrations) 0.14.0 to 0.15.0 migrations with added checks

Summary
Original description:
When running 'kong migrations up' from a 0.15 install (this ignores plugins):

If we detect an existing Kong install (0.14 only, detected via previously ran migrations), then, no need for 'bootstrap step'. In an 'if' statement somewhere, follow a special migration path as such:
Invoke DAO's 'bootstrap' step. Now, the schema_meta and locks tables are available. We assume that the rest of the DB is of the same state as if we ran the init migration of each subsystem.
In a cluster_mutex (so that multiple nodes can be running this 0.14 to 0.15 migration), run the 014_to_015 migration of each subsystem (but still record the init migration as having ran). Now, both the init and the 014_to_015 migrations are recorded as pending/executed in schema_meta (but only the latter really ran).

At this point, we have:

The schema_meta table with init and 014_to_015 migrations pending/executed (allowing the user to start 0.15 nodes)
The schema_migrations table with all 0.14 migrations (allowing the user to start 0.14 nodes while still migrating)
A DB schema similar to 0.14, but with some 0.15 improvements (from the 014_to_015 migrations)

Eventually, the user runs kong migrations teardown (just like the new framework). The same detection is done again on the schema_migrations table, and we detect that we are in a 0.14 to 0.15 migration path. Instead of running the above steps again, this time, we drop the schema_migrations table, and then run all teardown phases of the 14_to_15 migrations (if any). Once this operation is completed, the schema is only valid for 0.15 and above.
This implements the new 2-steps migrations framework (up + teardown), but for a 0.14 to 0.15 migration.
TODO: there needs to be special handling for custom plugins with migrations.
About the implementation:
While it doesn't strictly work exactly as described above, e.g. it runs base migration always as it is harmless, but that's the way we can get exactly the schema as what we get from fresh bootstrap (as the base migration adds some indexes and updates some triggers and functions on Postgres, not worth to move them I think), and this together with #3819 will make schemas the same (except column order in table might be different, but it doesn't matter, and there is hardly anything we can do about it).

How to test:
make fresh install

git checkout checkout feat/migration_14_to_15
./bin/kong/migrations reset
./bin/kong/migrations bootstrap
./bin/kong/migrations up (not needed as bootstrap already does this for fresh install)
You can no try to start Kong (actually you can try that in any step, to see if it works or not, and why)
./bin/kong/migrations finish (not needed as bootstrap already does this for fresh install)

upgrade from 0.14.1

git checkout checkout 0.14.1
./bin/kong/migrations reset
./bin/kong/migrations up
git checkout checkout feat/migration_14_to_15
./bin/kong/migrations bootstrap
./bin/kong/migrations up
At this point schema_migrationstable is still around, and 0.14.0 nodes should still work.

Start kong
./bin/kong/migrations finish (now the schema_migrations table is gone)

Manually merged to next!


Question: Is it possible to multiply secp256k1_musig_secnonce * secp256k1_xonly_pubkey?

I'm trying to implement a blinded MuSig2 protocol as suggested in https://github.com/commerceblock/mercury/blob/master/layer/protocol.md#signature-generation.
The protocol considers the aggregated nonce as R_1 = R1_1 + r2_1.G + b1.P, where R1_1 and R2_1 are public nonces (secp256k1_musig_pubnonce), b1 is a secret nonce (blind factor / secp256k1_musig_secnonce) and P is the aggregated public key (secp256k1_xonly_pubkey).
Is it possible to generate b1.P (instead of b1.G) as a public nonce for secret nonce b1 using secp256k1-zkp lib? secp256k1_musig_nonce_gen doesn't seem to support this.

Is it possible to generate b1.P (instead of b1.G) as a public nonce for secret nonce b1 using secp256k1-zkp lib? secp256k1_musig_nonce_gen doesn't seem to support this.

No, you'd need to fork the library. Our implementation supports only MuSig2 as specified in BIP327.

blinded MuSig2

Note that this is not at all an "official" variant of MuSig2. (I'm not even sure it actually resembles MuSig2.) We can't vouch for its security. Blind Schnorr signatures (even in the single-signer case) are vulnerable to Wagner's attack when concurrent signing sessions are possible.


Push a new npm module

It would be great to have 1.0 pushed so we can use the d.ts and async API over in the auth client.

I am guessing you meant 2.0.

Nah, I'm sending this one back to 1.0.  :)  Yes I should have said 2.0 :)

@ofrobots I think we're pretty much done with this module for now.  Once this gets pushed, I'll be able to update it in google-auth-library-nodejs along with the types 😄

Done. https://github.com/google/node-gtoken/releases/tag/v2.0.0


Node image texture grows beyond canvas limits

Canvas size is limited by platform and browser (e.g. 32768x32768px on modern platforms). When having a lot (hundreds) of different node images, the current implementation of the atlas texture may run into the width limit. Once it hits the limit, no node image in the graph is displayed correctly anymore.
Reason: the atlas texture in the node.image program grows only in horizontal direction. If using retina (x2) display, the limit is 16384 pixels, divided by 100 (max node texture size) results in 163 images that are possible.
I've implemented a full fix in #1198 (node.combined) which fills up the atlas texture in rows, with a defined maximum row size (e.g. 16384px).
Steps to reproduce
Use a lot of different node image textures (each at least 100x100px).
Expected behavior
Each node circle shows the correct image.
Actual behavior
Texture processing is aborted and all nodes show distored images (see example image):

Note
There is a quick fix that can be implemented for the node.image program (see pull request). A full version which supports up to thousands of images is implemented in #1198 and could be merged also in the node.image program.

Wow, great catch! I'll probably backport indeed your fix to the node.image program once I find time to merge your pull request. Thanks a lot!

@jacomyal You're welcome. Thanks for publishing sigma.js! Our project (a dynamic co-reference network visualization on a corpus of 20 millions of people and 9 mio. text pages) is using it heavily as main visualization, it will hopefully go live soon. Keep you updated :-)


[HelpDot] add bottom margin to info box

Details

Fixed Issues
$ https://github.com/Expensify/App/issues/36720#issue-2139162215
PROPOSAL: N.A.
Tests

cd docs && npm run createDocsRoutes && bundle exec jekyll serve --livereload --safe
Go to expensify-classic > settings > account-settings > Merge-accounts
Verify that the info box has margin below it

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

@sobitneupane please approve the PR to assign internal. Thank you 🙇

Please check if the padding looks good in this screenshot

Padding looks good to me in that screenshot 👍

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If the PR modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label so the design team can review the changes.

[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@rushatgabhane could you add QA steps when you have time? 🙇

@hayata-suenaga added!

@rushatgabhane there is no info box on the page specified in the QA step

That is so strange. @hayata-suenaga could you please see this link - https://help.expensify.com/articles/expensify-classic/settings/account-settings/Merge-accounts

I apologize, this issue slipped my mind.
I tried to check the build one more time, but the path you linked doesn't exist locally. I ran npm run createDocsRoutes
http://<IP_ADDRESS>:4000/articles/expensify-classic/settings/account-settings/Merge-accounts
@rushatgabhane

@hayata-suenaga could you please try this path - expensify-classic/settings/account-settings/Set-notifications

@rushatgabhane thank you for copying the path 😄  However I got 404 for the path

Let's try this one more time
http://<IP_ADDRESS>:4000/articles/expensify-classic/settings/account-settings/Set-notifications

I confirmed that the margins are applied now. thank you so much for your patience 🙇

🚀 Deployed to staging by https://github.com/hayata-suenaga in version: 1.4.52-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/Beamanator in version: 1.4.52-6 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Investigate quality and fps on the live VODs

We discovered that the VODs recorded from live events at brunstad are encoded to 25fps, so this needs investigation.
Some choppy movements on magazine, for example.
The "lossless" recording also looks bad visually, it's quite blurry/grainy. Possible 720p->1080p upscale happening?
It has always been bad, it's not new.
You can split this into two issues if you want to.

@mulundapm prioritize


for_each_child removal (soon to be deprecated)

Hello, Neovim started to pop up this error message every time I open it, because the function for_each_child() will be deprecated soon, so I decided to fix it.
LanguageTree:for_each_child() is deprecated, use LanguageTree:children() instead. :help deprecated
Feature will be removed in Nvim 0.11
stack traceback:....

Hi, this plugin is deprecated, please use rainbow-delimiters.nvim instead.

Hi, thank you for letting me know. I didn't know it was deprecated since I've been using it for a long time and didn't read the README file. Have a nice day.


Please tag v6.2.1 as latest release

We have automatic tools to download latest official release of PowerShell Core and 6.1.4 is tagged as latest instead of 6.2.1. Please update the tags.
Edit: Or 6.1.4 is the latest official release of PS Core?
6.1.4 is tagged as latest instead of 6.2.1:

I have the same problem too. (https://github.com/stknohg/PSCoreUpdate/issues/2)
Please update the latest release.

Probably not something they can really change after-the-fact; afaik that's just built into how Github handles releases. It's not looking at the release name. Both 6.2.1 and 6.1.4 are servicing releases handling the recently-filed CVE issues for 6.2 and 6.1; both were updated as both are still officially supported. I'm assuming the 6.2.1 was released first, probably only by a minute or two, but because the 6.1.4 was released after it, Github flags it as the "latest release".

From GitHub API doucument,

The latest release is the most recent non-prerelease, non-draft release, sorted by the created_at attribute. The created_at attribute is the date of the commit used for the release, and not the date when the release was drafted or published.

Certainly we may not be able to do anything...

The best thing to do, I think, would be to ask that the process for handling releases like this is to release the earlier version first.
What do you think, @TravisEz13?

@vexx32 That would be nice, otherwise I would have to rewrite update cmdlet and go through painfull change management process in my org
@stknohg Thanks for the link, good read.

We should update the 6.2.1 tag date
https://stackoverflow.com/questions/22822586/swap-latest-release-on-github
/cc @TravisEz13

@iSazonov Force pushing a tag is technically very bad.  We have agreement on this thread to do it, but anyone that sync'ed the tag, will now have to deal with having a different version of history for that tag.
cc @adityapatwardhan @SteveL-MSFT
We can try to update the process to prevent this is the future.

Is "Latest release" only GitHub feature? In the case we could ask GitHub team to enhance the feature for such cases.

The issue has been fixed by deleting and re-pushing the tag. If you are seeing errors on git fetch --tags then please use git fetch --tags --force.


feat(hoc): adding hoc support

[x] Pull request has tests / docs demo, and is linted.

In the React universe, when we try to aggregate behaviors or avoid computation repetition, we use to rely on 3 possibilites:

render props (the default behavior you've provided)
hoc (the one I'm providing with this PR)
hooks (one that I will work on soon)

This PR is a suggestion to add a function withWasm that allows to wrap a component inside the Wasm one using the HoC approach.

<EMAIL_ADDRESS>is now online 🎉 Thank you!


Fix duplicate resolutions in package.json

JIRA

https://jira.jahia.org/browse/PROJECT-XXX

Closing this PR as we'll update 1.4.1 on the main instead.


Not able to give space

Issue Type: Bug
Facing this issue from a week in vs code. I am not able to give space in my code/syntax .
 The problem is  spacebar is not working to give space between the words in vs code instead of it i have to use shift + Tab to give space.

I suggest you use the Command Palette (F1) to run Preferences: Open Keyboard Shortcuts (JSON) and look for any entries that might be intercepting the space character.

@gjsjohnmurray yeah now i got it i added a shortcut key combination with space that's why i was facing this issue.
Thank U


Update dependencies to latest versions

Currently most of the dependencies used by grunt-saucelabs are outdated.
In particular the saucelabs package used by grunt-saucelabs is oone of the first unsable releases (0.1.1)

This pull request takes care to update all dependencies to the latest version.

ops closing the pull request as not doone against upcoming-pr. sorry for that.

reopening the issue as it seems that the branch incoming-pr is outdated.

@evilaliv3 I think updating dependencies is a good idea. @Jonahss I saw that this does not really break anything, so shall I accept this PR ?

yes, let me say that for sure all will work betterly with saucelabs updated.
passing from a 0.1.1 to a 1.0.1 i think would make the difference.

@Jonahss ping! grunt-saucelabs deserves some love and care! ;)

Ah thanks, yeah grunt-saucelabs needs some love :)
I'll see if I can free up some time to dust it off.
In the meantime, merging.

great, thanks @Jonahss !
@axemclion what about a 8.6.3? :)


[Bug] truncate() partition transformation does not work when it includes more than 100 partitions

Is this a new bug in dbt-athena?

[X] I believe this is a new bug in dbt-athena
[X] I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior
When you use a truncate() partition transformation for a column that will result in more than 100 partitions, the batch partitioning functionality starts up and allows you to exceed 100 partitions.
{{
    config(
        materialized = 'table',
        table_type = 'iceberg',
        force_batch = true,
        partitioned_by = ['truncate(string_partition,2)', 'month(date_partition)']
    )
}}

However, when the query reaches out to Athena to pull in the distinct partitions, it uses truncate() in the query which is not a supported method of extracting values from a string in Athena.
select distinct truncate(string_partition,2), date_trunc('month', date_partition)
from "awsdatacatalog"."data_lake"."table__ha__tmp_not_partitioned"
order by truncate(string_partition,2), date_trunc('month', date_partition)

Instead, it could use something like substring() to pull back the unique partial values
select distinct substring(string_partition,1,2), date_trunc('month', date_partition)
from "awsdatacatalog"."data_lake"."table__ha__tmp_not_partitioned"
order by substring(string_partition,1,2), date_trunc('month', date_partition)

Expected Behavior
When I do a truncate() Iceberg partition transformation on a column, it is capable of handling something with greater than 100 partitions.
Steps To Reproduce
Create a model with a column that when a partition transformation of truncate() is used, it will result in more than 100 partitions.
Environment
- OS: MacOS
- Python: 3.11
- dbt: 1.7.7
- dbt-athena-community: 1.7.1

Additional Context
This is out of a Slack conversation: https://getdbt.slack.com/archives/C013MLFR7BQ/p1709755667814619
This method was referenced as where the work would need to be changed: https://github.com/dbt-athena/dbt-athena/blob/289be4f4f44f3d5a6cf575d8fe218209c4a41171/dbt/adapters/athena/impl.py#L1279
Apache Iceberg Truncate Partition documentation: https://iceberg.apache.org/spec/#truncate-transform-details

@svdimchenko FYI


Improve error handling

what
Add a way to catch (/subscribe) and act upon errors, especially for errors coming from the server.
Something like this:
db.get('users').get('420').get('name').set(3).catch((e) => {
  console.log(e);
  // -> { name: 'plugin:validation:invalidType', path: '/users/420/name', message: 'Property name has to be a string.' }
});

Error paths should be subscribed to like any other path. So they are only send to the client, if they are subscribed.
To always subscribe to errors and log them in the console automatically, we could introduce a config parameter:
SocketDBClient({
  url: 'ws://localhost:3000',
  alwaysLogErrors: true
});

Errors should have a few properties to be useful, e.g.:
type Error = {
  // unique name, that can be scoped using a colon. ":". Plugins are scoped by their name.
  name: string;
  // socketdb path, where the error occured.
  path: string;
  // human-readable error message that might be displayed to the user
  message: string;
}

Example error:
const error: Error = {
  name: 'plugin:permissions:accessDenied',
  path: '/users/1/name',
  message: 'You do not have permission to access this data.'
}

Or maybe splitting context and name?
const error: Error = {
  context: 'server:plugin:permissions',
  name 'accessDenied',
  path: '/users/1/name',
  message: 'You do not have permission to access this data.'
}

why
Currently, when an update is rejected from the server, there is no way to know the reason on the client side. → It is rejected silently.

This is on hold until the new API is ready (#79).


[v4] Async tasks on server side

At version 2 we have a renderProps argument of match function, but now we have only context from createServerRenderContext() method.
How we can collect async tasks and wait for them on server side?

see https://github.com/ReactTraining/react-router/issues/3846


Upgrade TrueNAS - 13.0-U3.1

Schedule backup then update.

08-02-23 Thoughts.
Shutdown and take backup of IoT Stack docker stuff.
Take backup of NAS config.
Pause and think through each step.

Monday, 27 February 2023 On or about

Carry out upgrade to TrueNAS 13.0-U3.1


Raytracing Example

We will work on getting a serialized Mitusba scene to display, and be rendered with:

High Performance
Correct BRDF + Material
Global sunlight
~Reinhard Tonemapping Operator (ACES optional extra)~
~AA / Denoising (TSSAA, SVGF, or something else)~
~Raytraced Shadows (RR 2.0, or own solution for OpenGL)~
Second Bounce (Importance sampled specular)

Division of Work (very rough, missing issues):

@devshgraphicsprogramming : Supervision, #206, #165, #7, #162, #148
@Crisspl : #351, #130, #119, #173, #151, #227, #280, #298
@Przemog1 : #241, #215, #207, #53, #208, #85

New division of labour:
@devshgraphicsprogramming : Supervision, #162, #148, #119
@Crisspl : get the video namespace operational, create BSDFs for loaded Mistuba Meshes, #280, #173, #298,
@AnastaZIuk: #351, #241, #215, #207, #85, #384

The transforms will be on the GPU
An allocator will give each IDummyTransformationSceneNode a UUID (offset) into a buffer holding the values updated by a compute shader.
Input

Double Buffered (CPU and GPU) dynamic read_only buffer of relative transforms as 3x 4 component vector.
Separate Buffer of uint (or uvec2) containing absolute offsets to parents (parent ID), with special dead value indicating no parent. Perhaps some flags (like the ready flag).

Output

GPU-only buffer that contains view-independent resultant values + maybe a ready_flag

Related to #119
Special Considerations
Use Timothy Lottes method of hierarchical raytracing, instead of launching N dispatches per N hierarchy levels, just recompute if parent not ready. Pseudocode
// method number 1 - save on registers, do duplicate work
mat4x3 absoluteTForm = rel_tform[selfID];
uint parentID = parent_array[selfID];
for (; not_ready(parentID); parentID=parent_array[parentID])
{
   absoluteTForm = rel_tform[parentID]*absoluteTForm;
}
abs_tform[selfID] = abs_tform[parentID]*absoluteTForm;
set_ready(selfID);
#ifdef NEED_BARRIER
appropriateBarrier();
#endif

// method number 2 - spend registers
// explore up to first ready node
assert(MAX_HIERARCHY_LEN>1u);
uint nodeID[MAX_HIERARCHY_LEN];
nodeID[0] = selfID;
uint firstReady=0u;
while (firstReady<(MAX_HIERARCHY_LEN-1u))
{
   nodeID[++firstReady] = parent_array[nodeID[firstReady]];
   if (is_ready(nodeID[firstReady]))
      break;
}
// compute transforms
mat4x3 absoluteTForm = abs_tform[nodeID[firstReady]];
for (int i=firstReady-1u; i>=0; i--)
{
   uint thisID = nodeID[i];
   abs_tform[thisID] = absoluteTForm *= rel_tform[thisID];
#ifndef NEED_BARRIER
   set_ready(thisID);
#endif
}
#ifdef NEED_BARRIER
appropriateBarrier();
for (int i=firstReady-1u; i>=0; i--)
   set_ready(nodeID[i]);
#endif

To make adding and removing nodes fast, we can let go of the requirement that each hierarchy level sit in contiguous area of memory (don't have to shift everything when adding and removing instances - like Skinning Manager, unlike Instanced Mesh). However it would make everything faster if generally the higher level nodes had lower value indices.
There shall be a scene::IGPUTransformManager which shall run once per frame, after all relative transforms have been updated.
For CPU operations that need to know absolute transforms, a similar approach to method 2 could be used on the CPU (with a separate backing buffer, a NAN absolute transform could signal unreadyness).
When relative transforms update, the change needs to be propagated to the GPU-side buffer, then all children transforms must be marked as "not-ready" . Ideally a compute shader should scatter the updated values (avoid a buffer copy of redundant ranges).
Questions

Does the flag buffer and the absolute transform buffer need to be volatile or coherent ?
3x vec4 SoA or 1x mat4x3 AoS SSBO for best bandwidth?
TBO vs read_only SSBO for best perf?

Extensions for Skinning and GPU-side animation
// rel_tform is read_write
// parent_array is now read_only + restrict and stores an animation pointer
// animation_frame is read_only + restrict
// last_animation_frame is coherent + restrict

bool requiresUpdate(in uint selfID)
{
   return last_animation_frame[selfID]!=animation_frame[selfID];
}
void setNotRequireUpdate(in uint selfID)
{
   last_animation_frame[selfID] = animation_frame[selfID];
}

mat4x3 getRelativeTransform(in uint selfID)
{
   if (isSkinned)
   {
      mat4x3 rel = getAnim();
      rel_tform[selfID] = rel;
      return rel;
   }
   else
      return rel_tform[selfID];
}

uint nodeID[MAX_HIERARCHY_LEN];
nodeID[0] = selfID;
int firstReady=0u;
while (firstReady<MAX_HIERARCHY_LEN-1)
{
   if (requiresUpdate(nodeID[firstReady]))
      break;
   nodeID[++firstReady] = parent_array[nodeID[firstReady]];
}
// compute transforms
if (firstReady!=0)
{
   mat4x3 absoluteTForm = abs_tform[nodeID[firstReady]];
   for (int i=firstReady-1; i>=0; i--)
   {
      uint thisID = nodeID[i];
      abs_tform[thisID] = absoluteTForm *= getRelativeTransform(thisID);
   }
   memoryBarrierBuffer();
   for (int i=firstReady-1; i>=0; i--)
      setNotRequireUpdate(nodeID[i]);

   aux[nodeID[0]] = computeAuxData(absoluteTForm);
}

Ideal GPU Driven Rendering
Without any culling at all the command buffer would look like this
bindPipeline(pipeline[0]);
bindIndirectBuffer(indirectdrawbuffer[0]);
if (supported)
   bindIndirectBuffer(indirectparameterbuffer[0]);
bindDescriptors(N,descriptors[0]);
if (supported)
   multiDrawIndirect(MODE,TYPE,drawBufferOffset[0],indirectParameterOffset[0],maxDraws,stride[0]);
else
   multiDrawIndirect(MODE,TYPE,drawBufferOffset[0],maxDraws,stride[0]);
...

Each MDI call is either:
typedef  struct {
        uint  count;
        uint  instanceCount;
        uint  first;
        uint  baseInstance;
    } DrawArraysIndirectCommand;

or
typedef  struct {
        uint  count;
        uint  instanceCount;
        uint  firstIndex;
        uint  baseVertex;
        uint  baseInstance;
    } DrawElementsIndirectCommand;

MultiDraw, Bindless and Deferred Friendly shading
#ifdef ARB_shader_draw_parameters
restrict read_only buffer IDBuffer
{
   uvec2 globalInstanceID[];
};
#else
in uvec2 instance_mesh_IDs; // fake with gl_BaseInstance = gl_DrawID+pushConstants.BaseDraw
#endif

void main()
{
...
#ifdef ARB_shader_draw_parameters
uvec2 instance_mesh_IDs = globalInstanceID[gl_DrawID+pushConstants.BaseDraw];
#endif
...
}

Can we settle on a single uint for instance_mesh_IDs ?
If we reserve N (N==meshCount) mesh-instance datas together with the per-instance data when allocating, it might be fine.

Camera/Renderpass
void CameraOrRenderpassOrSomething::enqueDraw(IGPUMeshBuffer* mb, ISceneNode::node_id* nodeIDs)
{
   if (mb->getPipeline()!=commands.getCurrentPipeline())
   {
      commands.bindPipeline(mb->getPipeline());
      commands.flushMDI();
   }
   if (mb->getDescriptorSet()!=commands.getDescriptorSet(3u))
   {
      commands.bindDescriptorSet(mb->getPipeline()->getLayout(), 3,1, &mb->getDescriptorSet());
      commands.flushMDI();
   }

   for (uint32_t i=0u; i<mb->getInstanceCount(); i++)
   renderpassData.emplace_back({
      nodeIDs[i],
      mb->getMeshID(i),
      this->getCameraID(),
      this->getLocalID(mb->getMeshID(i))
   });

   static uint32_t globalDrawCount = 0u;
   commands.setPushConstants(0u,sizeof(uint32_t), &globalDrawCount);
   globalDrawCount += mb->getInstanceCount();

   if (mb->getIndexType()==EIT_UNKNOWN)
      commands.add_arrays({mb->getIndexCount(),mb->getInstanceCount(),mb->getBaseVertex(),globalDrawCount});
   else
      commands.add_elements({mb->getIndexCount(),mb->getInstanceCount(),mb->getIndexOffset()/sizeof(type),mb->getBaseVertex(),globalDrawCount});
}

Buffers

(restrict coherent) Node Parent link list +  last and current animation frame + global armature keyframe list ID
(restrict read_only) Node Relative Transform + Per-Node Data for Transform Computation
(restrict coherent) Node Absolute Transform
(restrict read_only) Armature bone keyframe lists struct {uint count; uint offsetToKeyframeData; float timestamp[];};
(restrict read_only) Skinning Animation for all Armature Parts (can have separate keyframe lists per bone)
(optional restrict write_only) Node Auxilary Data that can be computed in the transform shader

First and second buffer can be merged together probably.

(restrict read_only) MultiDrawIndirect Input buffer for all command buffers from all renderpasses
(restrict coherent) MultiDrawIndirect Output buffer for all command buffers from all renderpasses
(restrict write_only) MultiDrawIndirect Output buffer to clear
(restrict coherent) Indirect Parameter Buffer to keep count of MultiDrawIndirect counts
(restrict read_only) Buffer that maps gl_GlobalInvocationIndex to (cameraIndex/viewIndex,parameterIndex,drawIndex,instanceIndex,objectID,meshBufferID,uniqueDrawInstanceID) implicitly or explicitly
(restrict write_only) Buffer that holds important per-uniqueDrawInstanceID data such as the fully concatenated projection, view and inverse matrices (at least 192 bytes per draw).

CameraID is to get the view and projection matrices (plus other global stuff).
ParameterIndex can retrieve per-pipeline things.
ObjectID (pseudo-nodeID) is to get the absolute world transformation.
MeshBufferID is to get the bounding box and any other data necessary for culling.
uniqueDrawInstanceID obtains the output index for successfully computed data.
Observations
Need following flags for our Culling Manager:

USE_INDIRECT_PARAMETERS whether to use gl_DrawID and a parameter buffer
DYNAMIC_COMMAND_BUFFER whether to re-record the command buffer
DOWNLOAD_RESULTS (requires DYNAMIC_COMMAND_BUFFER) whether to download the culling results and skip some pipeline binds and draws

This shall be a 1 million draw-call-equivalent capable system.
Extensions
Could set-up an extra parameter/query to forego updating absolute transforms and animations if we know self and all children nodes will not be visible for certain.

Overview and Order of New Rendering
Animate and BoundingBox Update
Scene Node hierarchies are updated, new bounding boxes are updated (with atomics if not for self) and old bounding boxes are cleared.
Per View Draw Cull
After cameras/views enqueue the meshbuffers to their command buffers to be drawn later, compute shader modifies multi-draw indirect argument and parameter buffers.
Skinning and Triangle Culling
Optional skinning is performed in world space, then triangle broadcast followed by per-view transform and culling. Need to check if the parent node bounding box of the drawcall was visible for any view at all.

Assign InvocationIDs so that whole workgroup has the same Coarse ID

Triangle and cluster culling should be outside the scope of the raytracing example.

Allow for Per-View-Draw cull etc. for multiple views, but not needing all the drawcalls for a view (opens up better scheduling).

see https://github.com/buildaworldnet/IrrlichtBAW/issues/119#issuecomment-598330860

We have something that works nicely.


Changes to Payment Plugin Doc and other corrections

Minor corrections to catalog examples doc
Minor corrections to notification plugin doc
Corrections to the payment plugin doc as follows:

Added FAQ
Added information about the Janitor process
Updated links to the Gocardless docs
Added links to glossary items
Added new section for plugin properties
Minor restructuring and other corrections

Thanks, Mary. I've now incorporated most of your comments. I have a few questions related to formatting as listed here. I will fix the rest of the doc after you answer these.

@FlowWriter, I've now (hopefully) fixed all your review comments. Please re-review. Thanks!

@reshmabidikar - Many of the comments remain open, so I'm not sure what state the changes are in. I started to make some corrections, but then I stopped because I'm not sure what's going on. Maybe we should just merge it, and I'll review it by making corrections myself?

Sounds good @FlowWriter, I've incorporated all your suggestions AFAIK, but I might have missed closing the comments in the PR. Also, there is a good chance I might have missed something, so merging and re-reviewing makes sense.