Delete TEI relation to EpiDoc

Remove "by the EpiDoc international community".
EpiDoc specifies a subset of TEI; TEI is not part of EpiDoc.

Thank you! Fixed with commit https://github.com/biblenerd/awesome-bible-developer-resources/commit/74066a038f5387b8296d4d5ae3432863190a3c2e


IPyKernel doesn't install correctly when powershell is default

Restrict execution policy on a machine
Set powershell in VS code as default
Install python through store
Open VS code
Run a cell
IPykernel will install
Try to export
Result:
jupyter nbconvert not found.
Root cause:
Permissions when pip install is run.

Testing steps right on top (first comment)


feat(remix-server-runtime): pass AppLoadContext to the server's handleRequest function

The AppLoadContext instance can optionally be set via the server adapter's getLoadContext() function. It is subsequently passed to all actions, loaders as well as the handleDataRequest function. It is, however, not passed to the handleRequest function.
This PR also passes the load context to the handleRequest function so that the context is available everywhere in a consistent manner.

[x] Docs
[x] Tests

@kiliman: Thanks for the example. But this is not what this PR does. The load context is already available to all loader, and action functions, as your example shows. It is not, however, available in the function that renders your React component tree on the server. From the PR's diff:

Hmm. Sorry, I guess I misunderstood what you were doing. Ok.
The handleDataRequest export API came later. I believe the person that implemented the export used the same API as the internal handler, therefore loadContext came along for the ride. I'm not sure that was the intention as the context is already being passed to the loader directly. It was added in this commit https://github.com/remix-run/remix/commit/2f4d8fdc527f8f8b3c7c3fe8c9e14cbb486729b8 (server-runtime/server.js lines 158-163)
But the component is also rendered on the client. Your context contains information from your adapter to be used by your loaders and actions. If there's anything in context that is needed by the component, it should be returned by the loader/action.

The problem is that I can't rely on loaders to be executed - they're not executed, for instance, in case of 404s or top-level errors. Nevertheless, we need some tenant-specific info in these cases (tenant name, logo, URL, language, color theme, etc.). Since we can't pass this info via loaders in all cases, we uniformly to pass it in entry.server.tsx via the load context, that is normally used by the loaders to pass the data to the frontend.
Remix' multi tenancy story is currently not very good. In order for the above to work, we have to partially re-implement Remix' encoding of loader data in the HTML, in our case encoding the tenant info in the topmost component into the HTML, wrapping <RemixServer/>. In entry.client.tsx, we do the opposite and wrap <RemixClient/> in a component that reads the tenant info from the HTML and makes it available everywhere via a React context.
Obviously, if we can't even load the tenant info due to errors, we have to fall back to an unstyled, tenant-unspecific error. But that is extremely unlikely, as our tenant info is stored in-memory and there are not many possibilities for failures. 404s and other internal server errors, however, are likely to happen, and we have to provide a tenant-specific errors in these cases.
Having said that - that's our use case. I can imagine other reasons why making the load context available everywhere on the server-side is a good idea. As a matter of fact, it is already available everywhere, except in this one specific function. This PR fixes that.

@MichaelDeBoey : Thanks for the suggestion. According to my tests, useLoaderData returns undefined in the root's catch and error boundaries (when rendered server-side, but interestingly, not on client navigations), but that's where we would (also) need this data. Or am I missing something?

Are there any plans to get this merged?
If so, let me know and I'll rebase this PR onto the latest dev. Otherwise, I won't waste my time by doing so repeatedly without any indication whatsoever if this PR will ever get merged.

I can imagine other reasons why making the load context available everywhere on the server-side is a good idea. As a matter of fact, it is already available everywhere, except in this one specific function. This PR fixes that.

Just chiming-in to say I also found myself looking for load context in entry.server.tsx's handleRequest() today. I was surprised/disappointed to find that it's not available.
This PR fixes what appears to be an oversight in the API; I cannot think of a good reason to deliberately not share the load context with entry.server.tsx when it's available everywhere else that related to the request cycle. I would love to see this PR updated and accepted 👍
Thanks @axel-habermaier! :)

Adding my additional comment that this is important for me as well.  I require an Apollo client in handleRequest which is being created in my server.ts and passed into the loadContext.
Personally, I cannot think of any reason not to expose the loadContext to the handleRequest.

@axel-habermaier Could you please rebase onto latest dev & resolve conflicts?

@MichaelDeBoey: Done.

Despite my earlier concerns, I will +1 this PR. I think it will be useful for cases where loaders/actions fail. This will be the last opportunity to affect the response that depends on context.

These are odd failures in the🧪 Test / 🧪 Test  OS: windows-latest for Node 14 and Node 18 which contrasts to Node 16 working.

Windows having that odd test failure again which was previously resolved by a force push.
-- 🧪 Test / 🧪 Test: (OS: windows-latest Node: 14) (pull_request)

Discovered this PR while attempting to pass in Cloudflare Pages/Workers environment bindings (e.g. KV, DurableObjects) to the server's entry point.
Eager to see this change merged in and released.

I've also discovered this PR while trying to pass in an instance of our logger from the express server into remix. I can get access to it just fine in actions and loaders, but, I want access to it in entry.server as well.

Any movement on this?... we need this as well.
👍

PR needs to be updated after the 1.8.0 changes.

@axel-habermaier Can you please rebase onto latest dev & resolve conflicts?

:(

Re-opening this one as we were only a rebase away
@axel-habermaier Please rebase this branch onto latest dev & fix conflicts so we can merge this one.
@sergiodxa I think you can create a resubmission PR as well if you want to get this one merged.

@MichaelDeBoey: I opened this PR almost a year ago and already rebased it twice without it getting merged. Since I've completely lost all interest in Remix in the last couple of months, I won't put any more time into this PR.
Sorry for that, but since the changes are trivial, someone else should easily be able to open a new PR.

@sergiodxa If you want, please open a new PR to implement this

Do you plan to fix this in a future release? Are someone willing to reopen this PR?
We are new to Remix (coming from React Router v6) and got stuck immediately after installation since we can't share our Apollo client instance with loaders and actions functions. This is confusing as getLoadContext is a documented feature but not enabled atm.
Are you tempering this because of this proposal on React Router https://github.com/remix-run/react-router/discussions/9564 which is likely to be brought back over to Remix?
In the mean time I think this is really a blocker for some users who need dependencies in their loaders or actions functions. Server side and client side.

I was planning on recreating this PR but I’m on holiday atm. Perhaps I can get sometime soon to do it. We also need it but I’ve patched it on our side as a temp work around using npm patch package.

@marwan38 Please bear with me since I'm not yet familiar with the Remix code base :-) But how did you patched it? I tried to apply a patch based on this PR, but I don't get how to pass the context to  component in the following server entry code:
// entry.server.tsx
import { PassThrough } from "stream";
import type { EntryContext } from "@remix-run/node";
import { Response } from "@remix-run/node";
import { RemixServer } from "@remix-run/react";
import isbot from "isbot";
import { renderToPipeableStream } from "react-dom/server";

const ABORT_DELAY = 5000;

export default function handleRequest(
  request: Request,
  responseStatusCode: number,
  responseHeaders: Headers,
  remixContext: EntryContext
) {
  return isbot(request.headers.get("user-agent"))
    ? handleBotRequest(
        request,
        responseStatusCode,
        responseHeaders,
        remixContext
      )
    : handleBrowserRequest(
        request,
        responseStatusCode,
        responseHeaders,
        remixContext
      );
}

function handleBotRequest(
  request: Request,
  responseStatusCode: number,
  responseHeaders: Headers,
  remixContext: EntryContext
) {
  return new Promise((resolve, reject) => {
    let didError = false;

    const { pipe, abort } = renderToPipeableStream(
      <RemixServer context={remixContext} url={request.url} />,
      {
        onAllReady() {
          const body = new PassThrough();

          responseHeaders.set("Content-Type", "text/html");

          resolve(
            new Response(body, {
              headers: responseHeaders,
              status: didError ? 500 : responseStatusCode,
            })
          );

          pipe(body);
        },
        onShellError(error: unknown) {
          reject(error);
        },
        onError(error: unknown) {
          didError = true;

          console.error(error);
        },
      }
    );

    setTimeout(abort, ABORT_DELAY);
  });
}

function handleBrowserRequest(
  request: Request,
  responseStatusCode: number,
  responseHeaders: Headers,
  remixContext: EntryContext
) {
  return new Promise((resolve, reject) => {
    let didError = false;

    const { pipe, abort } = renderToPipeableStream(
      <RemixServer context={remixContext} url={request.url} />,
      {
        onShellReady() {
          const body = new PassThrough();

          responseHeaders.set("Content-Type", "text/html");

          resolve(
            new Response(body, {
              headers: responseHeaders,
              status: didError ? 500 : responseStatusCode,
            })
          );

          pipe(body);
        },
        onShellError(err: unknown) {
          reject(err);
        },
        onError(error: unknown) {
          didError = true;

          console.error(error);
        },
      }
    );

    setTimeout(abort, ABORT_DELAY);
  });
}

Plus, our apollo client instance is not exactly configured the same between server and client, how would you passed it to loaders context on client side only components?

Well, in the end I think that's what I need https://github.com/remix-run/remix/pull/4123
The problem for us is not really the fact that AppLoadContext is not passed to handleRequest (it should though) but more that with Remix App Server we can't define a getLoadContext function at all.
However, the question of having different instances passed to AppLoadContext instance depending on whether we are server-side or client-side remains... For instance, the Apollo Client factory takes a ssr: boolean option that should not be set to true client-side.

I need AppLoadContext in handleRequest as it seems the appropriate place to initialize Sentry on Cloudflare Pages given that I need the DSN environment variable from context.SENTRY_DSN.
This is what I want:
export default function handleRequest(request, respondeStatusCode, respondeHeaders, remixContext, loadContext) {
  Sentry.init({
    dsn: loadContext.SENTRY_DSN,
  })

  // ...
}

If there's a better way to do it though, please advise.


Bug with P100 1.2.1 Firware

Describe The Bug
Local Authentification is not working with Firmware 1.2.1 on P100
Expected behavior
Working Auth
Logs
Error sending command: deviceInfo TypeError: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received undefined
at new NodeError (node:internal/errors:372:5)
at Function.from (node:buffer:323:9)
at LegacyAPI.decodeHandshakeKey (/homebridge/node_modules/homebridge-tp-link-tapo/src/api/LegacyAPI.ts:161:31)
at LegacyAPI.handshake (/homebridge/node_modules/homebridge-tp-link-tapo/src/api/LegacyAPI.ts:153:30)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at LegacyAPI.sendSecureRequest (/homebridge/node_modules/homebridge-tp-link-tapo/src/api/LegacyAPI.ts:75:7)
at LegacyAPI.login (/homebridge/node_modules/homebridge-tp-link-tapo/src/api/LegacyAPI.ts:19:22)
at TPLink.sendCommandWithNoLock (/homebridge/node_modules/homebridge-tp-link-tapo/src/api/TPLink.ts:195:9) {
code: 'ERR_INVALID_ARG_TYPE'
}
Plugin Config
{
"bridge": {
"name": "Homebridge TAPO2",
"username": "02:32:54:88:99:22",
"port": 59686,
"pin": "034-25-154"
},
"accessories": [],
"platforms": [
{
"name": "TPLink Tapo Platform",
"email": "++@++",
"password": "+++",
"platform": "HomebridgeTPLinkTapo",
"addresses": ["<IP_ADDRESS>","<IP_ADDRESS>","<IP_ADDRESS>","<IP_ADDRESS>"]
}
]
}
Plugin Version
latest
Homebridge Version
latest
Node.js Version
latest
NPM Version
latest
Operating System
docker

Yep, i have the same issue atm.
[12.9.2023, 20:43:04] [TapoPlug] Try for <IP_ADDRESS> : 1/20
[12.9.2023, 20:43:04] [TapoPlug] Error sending command: deviceInfo TypeError: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received undefined
at new NodeError (node:internal/errors:405:5)
at Function.from (node:buffer:333:9)
at LegacyAPI.decodeHandshakeKey (/var/lib/homebridge/node_modules/homebridge-tp-link-tapo/src/api/LegacyAPI.ts:161:31)
at LegacyAPI.handshake (/var/lib/homebridge/node_modules/homebridge-tp-link-tapo/src/api/LegacyAPI.ts:153:30)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at LegacyAPI.sendSecureRequest (/var/lib/homebridge/node_modules/homebridge-tp-link-tapo/src/api/LegacyAPI.ts:75:7)
at LegacyAPI.login (/var/lib/homebridge/node_modules/homebridge-tp-link-tapo/src/api/LegacyAPI.ts:19:22)
at TPLink.sendCommandWithNoLock (/var/lib/homebridge/node_modules/homebridge-tp-link-tapo/src/api/TPLink.ts:195:9) {
code: 'ERR_INVALID_ARG_TYPE'
[12.9.2023, 20:43:04] [TapoPlug] Failed to get info about: <IP_ADDRESS>
Config:
{
"addresses": [
"<IP_ADDRESS>",
"<IP_ADDRESS>",
"<IP_ADDRESS>"
],
"name": "TapoPlug",
"email"<EMAIL_ADDRESS>"password": "xxxxxxxxxxxxxxxxxxxxxxxx",
"platform": "HomebridgeTPLinkTapo",
"_bridge": {
"username": "xx:xx:xx:xx:xx:xx",
"port": xxxxx
}
}

I have the same Bug with my P100 since today. Installing an older version of the plugin doesn´t help.

Facing the same issue.

Hello, today i will release version 4.0.0 that adds support for KLAP, is a new protocol that Tapo started using it for his light, based on your error i think your P100 also uses that so that version might fix it

Thanks Rares!
Will give you feedback after the update!

Hey, please try to update to v4.0.0

With version 4.0.0 my P100 are working again without any problems, thanks for your fast response and help!!!

Great 😄


added spinner

Added spinner as required in #83

@mikicho Why like this?

@mikicho Why like this?

IDK. maybe something has been changed on snyk side? @lirantal (from some reason I can't tag him here)

@mikicho this is using the free tier and that you have put the SNYK API TOKEN in this repo's secrets settings, right? can you go to the usage area and check if you've hit the limit on the free plan?

@lirantal
It seems like last month, we passed the limit. How can we move to the open-source plan?

Pushed updated code. @goldbergyoni

Why is there a private manifest being picked up? this entire project is open sourced no?

@lirantal, maybe when I added the Snyk integration, the repo was private?
@goldbergyoni Something here is private?

Possibly.  Make sure you login into the Snyk app and look at the settings for projects to see that they're all configured correctly as "from git".
Helpful resources:

https://support.snyk.io/hc/en-us/articles/360000910597-How-can-I-set-a-Snyk-CLI-project-as-open-source-#:~:text=When you use the CLI,automatically marked as open source.
https://support.snyk.io/hc/en-us/articles/360002103557-How-does-Snyk-determine-if-my-project-is-Open-Source-or-not-

@mikicho Nothing is private...
@lirantal Thanks for the help, we owe you a beer which you'll get in NodeTLV 2023

Let me know if you get stuck but should be an easy fix.

@goldbergyoni Pushed

@lirantal In an open source like this repo, should I use my personal (account) Snyk token or Practica organization (service) account token?

I would say it is preferred to use the Practica one.
By the way, Snyk has a Snyk for Open Source program which grants you a bunch of the pro tier features, perhaps you should look to apply if you aren't yet on this program?

@lirantal I think this is the missing key. maybe because we use my personal key, Snyk limited our tests? or it doesn't matter?


[IMP] pos_multi_session: new option for POS in offline mode

New option to save orderlines added to existing orders in offline mode

was fixed here https://github.com/it-projects-llc/pos-addons/pull/747


Provision EC2 instance using cdk

@iamusmanazeem this pr was a draft if you need a review on a pr or want to merge it. It needs to be open

The changes should've been merged in the first merge commit why do we have to add the commits twice? Each different part should be an isolated commit. I don't see a commit of you pushing the CDK code which means you batched it with the merge commit which is not a good approach. We really need to pick up best practices we are just wasting our time with this project.  If we are gonna do the same things we have done up until now what's the point of working on this project?


[Adjust Rule] SIM401 quotation issue

Desired change

Rule(s): SIM401
Adjustment: The key and default value in the suggested change should have the correct type

Explanation
Makes the suggestion valid python. If the key in the if statement is a string, then it should still be a string in the suggested code.
If the default value in the else-block is not a string, it should not be put in quotes. Or if it is an empty string it shouldn't get extra quotes.
Example
The following code:
if 'last_name' in test_dict:
    name = test_dict['last_name']
else:
    name = test_dict['first_name']
if 'phone_number' in test_dict:
    number = test_dict['phone_number']
else:
    number = ''

Will currently result in the following SIM401 messages:
Use name = test_dict.get(last_name, "test_dict['first_name']") instead of an if-block
Use number = test_dict.get(phone_number, """") instead of an if-block
Obviously it the messages should state the following with both the key and default value in the exact same format as they were in the if-else-block.
Use name = test_dict.get("last_name", test_dict['first_name']) instead of an if-block
Use number = test_dict.get("phone_number", "") instead of an if-block

Thank you for the input :hugs:  I've added a test which contain your examples so that I can track progress in this issue

Thank you very much for your help. The issue was fixed in flake8-simplify==0.14.6

Hi.
I just spotted this. The proposed change in this issue is incorrect.
The example
if 'last_name' in test_dict:
    name = test_dict['last_name']
else:
    name = test_dict['first_name']

the keys can be mutually exclusive.
This statement name = test_dict.get(last_name, "test_dict['first_name']") can well throw a KeyError which would not happen in the original case, or run a __getitem__ with side effects.
There is simply no way to trigger this warning unless the fallback is some trivial like a constant or variable.

I created #177 to follow up on this and other related issues.


Naming convention: messages/commitment vs. commitment/commitment hash

I mean it really depends on what we want "commitment" to mean, so I think we are just disputing semantics here.
In my mind, the parachain pledges that a set of messages are fit and proper to be relayed to Ethereum. Those messages are being committed to, ergo they are the commitment. The commitment happens to be uniquely identified by a hash of the messages being committed. In the same way that you can commit code with git and refer to that commit/commitment using a "commit hash" (which is a valid term in git).
I do think commitment/commitmentHash is preferable over message/commitment as it is more descriptive. It indicates that there is a relationship between the two things.
Originally posted by @vgeddes in https://github.com/Snowfork/polkadot-ethereum/pull/266#discussion_r575133730

closed because its not important


Generate debugging launch.json for all openpilot processes

Run tools/vscode_debug/generate_vscode_debug_launch.py to automatically populate the launch.json file with all the openpilot processes. It also supports default arguments for debugging and environment variables.
Generating does not delete your existing launch.json, it will rename it.

I don't use VSCode but this seems useful for those who do. However, this is way too many lines, and seems to require the user knows about this and runs it?
Is there a way for VSCode to generate these automatically if you open the project?

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "inputs": [
        {
          "id": "python_process",
          "type": "pickString",
          "description": "Select the process to debug",
          "options": [
            "selfdrive/controls/controlsd.py",
            "system/timed/timed.py"
          ],
        },
        {
          "id": "args",
          "description": "Arguments to pass to the process",
          "type": "promptString"
        }
    ],
    "configurations": [
        {
            "name": "Python: Openpilot Process",
            "type": "debugpy",
            "request": "launch",
            "program": "${input:python_process}",
            "console": "integratedTerminal",
            "justMyCode": true,
            "args": "${input:args}"
        }
    ]
}

something like this would be simpler

I don't use VSCode but this seems useful for those who do.

I'm curious. It's there a standard ide setup that comma employees use?

I'm curious. It's there a standard ide setup that comma employees use?

no, everyone can use their own preferred ide

I think trying to copy the setup from the main vscode repo  here would make sense. They have the vscode folder checked in with launch configs that work with their  devcontainer. If we can do something like it suggested above in this comment where we have 1 config for cpp and 1 for python that would be ideal. https://github.com/commaai/openpilot/pull/31197#issuecomment-1924539753.


qml: Add DropShadow to the OptionSwitch indicatorButton

This PR is a follow-up to #101 and addresses the suggestions given there after it was merged.
This PR also adds the DropShadow for the OptionSwitch's indicatorButton, as per the main design file of the project.

Some points to note:

Used === instead of == to avoid type coercion.
Chose sample value based on official recommended guidelines (sample = 2*radius + 1) https://doc.qt.io/qt-5/qml-qtgraphicaleffects-dropshadow.html#samples-prop
Used rgba to hex convertor for shadow color: https://rgbacolorpicker.com/rgba-to-hex

Running the current version of the PR will cause the following error.
qrc:/qml/controls/OptionSwitch.qml:7:1: module "QtGraphicalEffects" is not installed

And to create dropShadow, we require this module. I tried to figure out some workaround, but I thought it's better to ask and go with the correct approach on the get-go.

Updated from e2d1635 to 2e8b096.
Changes:

Made appropriate styling changes.

Diff:
diff --git a/src/qml/components/ConnectionSettings.qml b/src/qml/components/ConnectionSettings.qml
index 090e8e793..35f8e5d3a 100644
--- a/src/qml/components/ConnectionSettings.qml
+++ b/src/qml/components/ConnectionSettings.qml
@@ -15,21 +15,21 @@ ColumnLayout {
     }
     Setting {
         Layout.fillWidth: true
-        header:  qsTr("Daily upload limit")
+        header: qsTr("Daily upload limit")
     }
     Setting {
         Layout.fillWidth: true
-        header:  qsTr("Connection limit")
+        header: qsTr("Connection limit")
     }
     Setting {
         Layout.fillWidth: true
-        header:  qsTr("Listening enabled")
-        description:  qsTr("Reduces data usage.")
+        header: qsTr("Listening enabled")
+        description: qsTr("Reduces data usage.")
     }
     Setting {
         last: true
         Layout.fillWidth: true
-        header:  qsTr("Blocks Only")
-        description:  qsTr("Do not transfer unconfirmed transactions. Also disabled listening.")
+        header: qsTr("Blocks Only")
+        description: qsTr("Do not transfer unconfirmed transactions. Also disabled listening.")
     }
 }

Running the current version of the PR will cause the following error.
qrc:/qml/controls/OptionSwitch.qml:7:1: module "QtGraphicalEffects" is not installed

@shaavan try adding
Q_IMPORT_PLUGIN(QtGraphicalEffectsPlugin)
Q_IMPORT_PLUGIN(QtGraphicalEffectsPrivatePlugin)

https://github.com/bitcoin-core/gui-qml/blob/ef98ffa9e0a1054d7c910221b76bd13d1a81ef28/src/qml/bitcoin.cpp#L43-L52

Updated from 2e8b096 to 109682b (pr111.01 -> pr112.02)
Addressed @jarolrod, @promag suggestions.
Changes:

Follow-ups related to #101 have been removed from this PR. The stated follow-ups were merged in #112.
Used Q_IMPORT_PLUGIN to import relevant modules in src/qml/bitcoin.cpp file.

The PR is still in WIP. Currently, using the Q_IMPORT_PLUGIN caused the following error.
/usr/bin/ld: qt/libbitcoinqt.a(qt_libbitcoinqt_a-bitcoin.o): in function `_GLOBAL__sub_I__Z10QmlGuiMainiPPc':
bitcoin.cpp:(.text.startup+0xc2): undefined reference to `qt_static_plugin_QtGraphicalEffectsPlugin()'
/usr/bin/ld: bitcoin.cpp:(.text.startup+0xd2): undefined reference to `qt_static_plugin_QtGraphicalEffectsPrivatePlugin()'
collect2: error: ld returned 1 exit status

supporting this requires OpenGL support, let's leave the dropshadows for later.

I understand. I shall close this PR for now. We can restart work on this once OpenGL support is appropriately integrated.


Model - Repository- loosen constraints on what is required to create values

[ ] Check to see GBIF progress on this shared list

[ ] Use alternatve values to provide alternative codens

[ ] Update autocomplete to search on alternate codens

[ ] Loosen constraint for URL and status requirements


Decoding Error with S3 objects uploaded by fluent-bit

Just made switch from fluentd to aws-fluent-bit agent here (https://docs.fluentbit.io/manual/pipeline/outputs/s3) and noticed NewRelic ingestion Lambda broke with the following error When specifying content_type= application/gzip or content_type =application/x-gzip.
[ERROR] BadGzipFile: Not a gzipped file (b'{"')
Traceback (most recent call last):
  File "/var/task/handler.py", line 287, in lambda_handler

Then I also tried compression=gzip and the default content-type=binary/octet-stream, the NewRelic lambda does not seem to show any errors, but I was not able to see logs in NewRelic. So, I am not sure if this combo is failing silently or not.
I will investigate this combo further and post back.

Not an issue with latest version.


A newer version of Backbone.js is available (1.0.0)

The version of Backbone.js has various bugs e.g. underscore finders aren't fully supported (see https://github.com/documentcloud/backbone/issues/2228).
Are there plans to upgrade the version of Backbone.js to its current version, 1.1.0?

So... It's great and all that master is up-to-date, but it's kinda been a really long time and the official release is still tracking an ancient version of Backbone, which just seems kinda weird for a project that appears to be reasonably active?

@sporkmonger I don't have push access to Rubygems yet. Will be releasing a new version as soon as I get that.

Ah, I see. Did the gem change hands?


Roll Flutter Engine from d492b8b3a567 to 9620c6482454 (1 revision)

https://github.com/flutter/engine/compare/d492b8b3a567...9620c6482454
2023-04-06<EMAIL_ADDRESS>Fix autofill for android (flutter/engine#40771)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC jonahwilliams@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Maybe we can do better checks in dealloc function?

In my humble opinion, maybe we can do better checks in dealloc function:
// page.rs

pub fn dealloc(ptr: *mut u8) {
    // Make sure we don't try to free a null pointer.
    assert!(!ptr.is_null());
    unsafe {
        let addr = HEAP_START + (ptr as usize - ALLOC_START) / PAGE_SIZE;
        // Make sure that the address makes sense. The address we
        // calculate here is the page structure, not the HEAP address!
        // - assert!(addr >= HEAP_START && addr < HEAP_START + HEAP_SIZE);
        // +
        assert!(addr >= HEAP_START && addr < ALLOC_START);
        let mut p = addr as *mut Page;
        // Keep clearing pages until we hit the last page.
        while (*p).is_taken() && !(*p).is_last() {
            // +
            assert!(
                addr == HEAP_START || // first page
                (*p.sub(1)).is_last() || (*p.sub(1)).is_free(),
                "We can't dealloc from {:p}, \
                because it is not the start of an allocated block of memory."
            );
            (*p).clear();
            p = p.add(1);
        }
// ----snip----

Perhaps we can do these checks, however I think they're better suited in the kmalloc/kfree portion. We rarely use the page allocator, except when allocating a process, which stays resident, and page tables. But, point is taken.


Todoist sync creating multiple of the same todos with every sync

Search first

[X] I searched and no similar issues were found

What Happened?
When I click on the sync button on the logseq ba

r it brings in the todos taht are already in logseq.
Reproduce the Bug

Go to agenda plugin todoist icon on nav bar
Click on it ....doesnt respond after waiting some time 5-10 seconds click again
It fetches the tasks for every click but doesnt sync already created or updated tasks

Screenshots
No response
Environment Information
logseq 0.10.9 Windows 11
Additional Context
No response
Are you willing to submit a PR? If you know how to fix the bug.

[ ] I'm willing to submit a PR (Thank you!)

Will it be reproduced every time? I guess it might be that the first button was clicked, and the network request had not been successful yet when the second button was clicked, resulting in the same task being requested twice.

Well probably but a considerable time passes with no notification so as a result its clicked again. So yes it will be reproduced every time

Version 3.10.5 added prompts during synchronization, welcome to test.

Updated now and will revert with feedback in the coming days. Thanks for  this


[AutoPR securityinsights/resource-manager] Adding alertRuleTemplates swagger spec to securityInsight

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/6942

This PR has been merged into https://github.com/Azure/azure-sdk-for-python/pull/5722


Consistent output of admin CLI

Currently some of the commands use ad-hoc format, e.g.
console.log(`Requester admin: ${requesterAdmin}`);

and some output the whole JSON:
console.log(toJSON(parameters));

The output of the commands should be consistent and I'd say it's better to avoid ad-hoc format and just display the data. Reasons:

It's easier to test - no need to strip the ad-hoc prefix
Easier to process if someone uses the CLI in some pipeline - for the same reason as 1)
The output of the command has enough context for user to know what is returned - it should be clear even from the command name, but there is also description
We can wrap the response from blockchain as JSON in the SDK - e.g. return {"requesterIndex": "2"} from the CLI.

We could also introduce something like --pretty flag to pretty print json, but I think it's not necessary as users can just format it in code editor or online tool.

I know it's not really a bug-fix, but it's closer to that than an enhancement.

Tracked by https://api3dao.atlassian.net/browse/AN-151


Wrap static methods in the Unity API

Using interop to access Unity's static methods is fine, but can be made cleaner by wrapping them in Clojure macros. This is an opportunity to fix some of Unity's API problems as well.
(defmacro noise
  ([x] `(Mathf/PerlinNoise (+ 0.1 ~x) 0))
  ([x y] `(Mathf/PerlinNoise (+ 0.1 ~x) ~y)))

also protocols!

A policy is in place and the API is developing carefully and slowly. The new protocol functions are a big help, too. Closing this along with #52.


Jhendr m365 community

reverse

Docs Build status updates of commit c7ff55b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

README.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Don't generate CSGPolygon3D shape before the assigned path is inside tree

Fixes #71240
Within the NOTIFICATION_ENTER_TREE, we don't know at this point if the assigned path node has actually entered the tree. So I removed the _update_collision_faces() call here, and replaced it by a _make_dirty() call, like it's done in the set_use_collision method, so the update is deferred.
Also I added a small check inside the _build_brush() to return an empty brush if the path node is not inside tree.

Thanks!


Event listener skipped due to function not having matching parameters

Hello! I'm trying to use the event system to notify different areas of my game that a quest has been completed. My quests extend UDataAsset and are defined in C++. Once it completes, I can successfully emit an event from the quest, but I'd like to pass the quest itself as a parameter.
I created a simple listener in my ThirdPersonCharacter to simply print the title of the completed quest. I added a function to handle that in my character blueprint, and declared a paremeter of the type Quest. I can see that the listener is triggered, but my handling function is not called and I get the following error:
FGESHandler::EmitEvent quest.Questcomplete skipped listener ThirdPersonCharacter_167:OnQuestComplete due to function not having a matching NumericProperty signature.

That tells me that I'm clearly doing something wrong, but I fail to see what. Can you please help?

Can you show both the emitter and listener example code? The log warning suggest type mismatch. If you're emitting a UObject you should be listening with an Object type. Optionally you could use FGESWildcard property structure and decode it
e.g. it seems you're doing https://github.com/getnamo/global-event-system-ue4#uobject and should receive it with https://github.com/getnamo/global-event-system-ue4#uobject-param-event

Hmm https://github.com/getnamo/global-event-system-ue4/blob/master/Source/GlobalEventSystem/Private/GESHandler.cpp#L708 that does seem like a bug at a glance

Let me know if you run into any bugs with your suggested fix: https://github.com/getnamo/global-event-system-ue4/commit/5cbcaca413459f702f3135f03a9b7e519e8f71d5

@getnamo so far I haven't observed any bug related to that and it seems to work pretty well


Dynamic Programming Problems

Is your feature request related to a problem? Please describe.
I would like to add some more dynamic programming problems
Some important questions related to dynamic programming can be added and these are the questions frequently asked in interviews
Describe the solution you'd like
These problems will be helpful from interview perspective. They will be leetcode or codeforces questions

@AbhiC7721 sure you are welcome to add more DP questions. One request would be to raise a new issue and specify only one question which you want to add. As we only allow one question per issue/PR. If you want to add multiple questions please raise multiple issues and also specify the language you will be coding it in.
Happy coding!


sprig workshop overhaul: current 'overview' video needs review

let's watch the intro vid and make notes (leave in comments here) on what we'd update / edit
https://www.youtube.com/watch?v=ZOPYB6dw4Os

The overview is perfect, I think our point is other videos with code itself, as the previous ones were:
https://youtu.be/GEbDRR_cqJI
https://youtu.be/1UTLS4aO9bQ
An overview is great, but "hands on code" is essential for learning, it shows that it's simple and that you can take risks with the code

@LucasHT22 @karamassie is this issue actionable anymore, or has it been completed?  If we don't expect more movement here, please close this...

It would be great if these new videos exists

@LucasHT22 what content are we currently missing in sprig videos? I can ask ppl to make one!

Based on this chatter - @karamassie, I am assigning this to you - when you do find someone who will make this, please assign the issue directly to that individual.

ah, now that I dig into this more, I'm feeling with the JAMS and presentations (and in figma for editing!) and in-editor walkthrus, we are covered. closing unless we hear this is really needed. If people want materials, pls direct them to https://jams.hackclub.com/batch/sprig (and our slack for immediate help!)

I disagree, the problem is not about having materials, is about solve the needs of those who doesn't want/parents does not allow join Slack and want to see something "hands on code" of someone really making a game, considering that our target audience is beginners, some have never used an IDE like Sprig editor. Jams are really good, but it doesn't solve this problem, doesn't even have one video "hands on code" (at least I didn't find it)

okay! i'd love to see you do this!! you should know exactly where ppl are struggling


adds support for github admonitions icons

Kind of change

[ ] Bug fix
[ ] New non-breaking feature
[ ] New breaking feature
[x] Documentation update
[ ] Build improvement

Description
What is the goal of this pull request?
Makes documentation clearer highlighting admonitions with icons. At least for me
Same icons used as in https://github.com/asciidoctor/asciidoctor/blob/master/README.adoc
How does it achieve that?
Uses github special tags as attributes
Are there any alternative ways to implement this?
Not that I know
Are there any implications of this pull request? Anything a user must know?
No
Issue
If this PR fixes an open issue, please add a line of the form:
Fixes #Issue
Release notes
Please add a corresponding entry to the file CHANGELOG.adoc

Nice! I wasn't aware that this is possible!


Contribution rules

For having a stable contribution process, we need to describe the rules of contribution and probably create a checklist with specific actions
Example - https://github.com/rails/rails/blob/master/CONTRIBUTING.md

@AleksSenkou I think this example is better for this gem https://github.com/rubocop-hq/rubocop/blob/master/CONTRIBUTING.md and we can use it as the base. Does it make sense?

Also, Other ways to contribute part looks nice
https://github.com/plataformatec/devise/blob/master/CONTRIBUTING.md#other-ways-to-contribute

@AleksSenkou looks like project automatization does not work well 🤔


Make Vesta URL config explicit and add optional logger config

Vesta recently changed their URL configs for the sandbox, so the JSON and JSONP URLs have different domains. Since there are now 4 possible URL combos, its easier to just allow explicitly setting the URLs instead of having the underlying system join paths.
A typical setup might look something like this now:
VSafe.configure do |config|
  config.sandbox_url = 'https://sanboxdomain.com/GatewayProxy/Service'
  config.sandbox_jsonp_url  = 'https://sandbox-otherdomain.com/GatewayProxyJSON/Service'
  config.production_url = ''https://production.com/GatewayProxyJSON/Service'
  config.production_jsonp_url = ''https://production.com/GatewayProxyJSON/Service'
  config.logger = Rails.logger
end

I setup all the URLs based on the previous defaults, so if Vesta hasn't changed your URLs this should just work for you.
This PR also adds the option to pass a logger down to HTTParty. Doing config.logger = Rails.logger will set the HTTParty logger when making requests and give nice request/response logging.

Hey @jacksonh this looks, can you update the README as well?

Thanks! Will do!

@ngan alright, updated the docs. Let me know how that looks.


add clientData to tags

Fixes issue #48
Completely backwards compatible

Hi @nsolter
This is great, thanks. Before merging I would request a couple of changes. Mainly I would like to treat the payload in a familiar way for a cocoa developer. I'm thinking about NSNotification's payloads. So I propose these two changes:

change the type to NSDictionary
change the name in userInfo

@andreamazz good suggestions. Done. Thanks!

Brilliant, merged. Thanks :+1:


Use isomorphic-fetch instead of cross-fetch

Resolves: #17
Related cross-fetch issue: lquixada/cross-fetch#142

nice!

Published in v2.2.1


chore: remove race from tests

Fixes #1811
The collector exporter proto tests had a race condition. They were waiting 20ms for the exporter to lazy-load the proto files. If it took longer than 20ms, the tests failed. This removes the race.

@obecny I would like to merge this. It fixes the last flaky test that keeps blocking other PRs.

@obecny I would like to merge this. It fixes the last flaky test that keeps blocking other PRs.


BuildConfig not working

Bug description
I want to install flask from BuildConfig rather than having a requirements.txt file that will install flask in all the components. But it doesn't work!
How to reproduce the bug
import lightning as L

class SampleWork(L.LightningWork):
    def __init__(self):
        cloud_build_config = L.BuildConfig(requirements=["flask"]
        )
        super().__init__(cloud_build_config=cloud_build_config)

    def run(self):
        import flask
        print("flask imported succesfully")

class Root(L.LightningFlow):
    def __init__(self):
        super().__init__()
        self.server = SampleWork()

    def run(self, *args, **kwargs) -> None:
        self.server.run()

app = L.LightningApp(Root())

Error messages and logs

[root.server] 2022-11-03T05:48:30.916Z Traceback (most recent call last):
[root.server] 2022-11-03T05:48:30.916Z     sys.exit(main())
[root.server] 2022-11-03T05:48:30.916Z   File "/content/venv/lib/python3.8/site-packages/click/core.py", line 1130, in __call__
[root.server] 2022-11-03T05:48:30.916Z     return self.main(*args, **kwargs)
[root.server] 2022-11-03T05:48:30.916Z   File "/content/venv/lib/python3.8/site-packages/click/core.py", line 1055, in main
[root.server] 2022-11-03T05:48:30.916Z     rv = self.invoke(ctx)
[root.server] 2022-11-03T05:48:30.916Z   File "/content/venv/lib/python3.8/site-packages/click/core.py", line 1657, in invoke
[root.server] 2022-11-03T05:48:30.916Z     return _process_result(sub_ctx.command.invoke(sub_ctx))
[root.server] 2022-11-03T05:48:30.916Z   File "/content/venv/lib/python3.8/site-packages/click/core.py", line 1657, in invoke
[root.server] 2022-11-03T05:48:30.916Z     return _process_result(sub_ctx.command.invoke(sub_ctx))
[root.server] 2022-11-03T05:48:30.916Z   File "/content/venv/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
[root.server] 2022-11-03T05:48:30.916Z     return ctx.invoke(self.callback, **ctx.params)
[root.server] 2022-11-03T05:48:30.916Z   File "/content/venv/lib/python3.8/site-packages/click/core.py", line 760, in invoke
[root.server] 2022-11-03T05:48:30.916Z     return __callback(*args, **kwargs)
[root.server] 2022-11-03T05:48:30.916Z   File "/content/venv/lib/python3.8/site-packages/lightning_launcher/cli/__main__.py", line 87, in run_work
[root.server] 2022-11-03T05:48:30.916Z     run_lightning_work(
[root.server] 2022-11-03T05:48:30.916Z   File "/content/venv/lib/python3.8/site-packages/lightning_launcher/utils.py", line 50, in wrapper
[root.server] 2022-11-03T05:48:30.916Z     res = func(*args, **kwargs)
[root.server] 2022-11-03T05:48:30.916Z   File "/content/venv/lib/python3.8/site-packages/lightning_launcher/utils.py", line 75, in wrapper
[root.server] 2022-11-03T05:48:30.916Z     res = func(*args, **kwargs)
[root.server] 2022-11-03T05:48:30.916Z   File "/content/venv/lib/python3.8/site-packages/lightning_launcher/launcher.py", line 161, in run_lightning_work
[root.server] 2022-11-03T05:48:30.916Z     WorkRunner(
[root.server] 2022-11-03T05:48:30.916Z   File "/content/venv/lib/python3.8/site-packages/lightning/app/utilities/proxies.py", line 336, in __call__
[root.server] 2022-11-03T05:48:30.916Z     raise e
[root.server] 2022-11-03T05:48:30.916Z   File "/content/venv/lib/python3.8/site-packages/lightning/app/utilities/proxies.py", line 319, in __call__
[root.server] 2022-11-03T05:48:30.916Z     self.run_once()
[root.server] 2022-11-03T05:48:30.916Z   File "/content/venv/lib/python3.8/site-packages/lightning/app/utilities/proxies.py", line 457, in run_once
[root.server] 2022-11-03T05:48:30.916Z     self.work.on_exception(e)
[root.server] 2022-11-03T05:48:30.916Z   File "/content/venv/lib/python3.8/site-packages/lightning/app/core/work.py", line 550, in on_exception
[root.server] 2022-11-03T05:48:30.916Z     raise exception
[root.server] 2022-11-03T05:48:30.916Z   File "/content/venv/lib/python3.8/site-packages/lightning/app/utilities/proxies.py", line 422, in run_once
[root.server] 2022-11-03T05:48:30.916Z     ret = work_run(*args, **kwargs)
[root.server] 2022-11-03T05:48:30.916Z   File "build_config.py", line 10, in run
[root.server] 2022-11-03T05:48:30.916Z     import flask
[root.server] 2022-11-03T05:48:30.916Z ModuleNotFoundError: No module named 'flask'

Environment
Running on latest lightning with default CloudCompute

More info
No response
cc @tchaton @rohitgr7

Workaround fix for it
import lightning as L

class CustomBuildConfig(L.BuildConfig):

    def build_commands(self):
        return ["python -m pip install flask"]

class SampleWork(L.LightningWork):
    def __init__(self):
        cloud_build_config = CustomBuildConfig()
        super().__init__(cloud_build_config=cloud_build_config)

    def run(self):
        import flask
        print("flask imported succesfully")

class Root(L.LightningFlow):
    def __init__(self):
        super().__init__()
        self.server = SampleWork()

    def run(self, *args, **kwargs) -> None:
        self.server.run()

app = L.LightningApp(Root())

Workaround fix is to do python -m pip install x to install modules

well, yes and no
if you are using an existing name, still won't work


New version: AWSCore v0.6.3

Registering package: AWSCore
Repository: https://github.com/JuliaCloud/AWSCore.jl
Created by: @mattBrzezinski
Version: v0.6.3
Commit: 602ccdb0582866074ac76f72a9031066ea008ae5
Reviewed by: @mattBrzezinski
Reference: https://github.com/JuliaCloud/AWSCore.jl/commit/602ccdb0582866074ac76f72a9031066ea008ae5#commitcomment-35692638

Your new version pull request does not meet all of the guidelines for automatic merging.
Specifically, your pull request does not meet the following guidelines:

The following dependencies do not have a compat entry that has an upper bound: DataStructures, HTTP, IniFile, JSON, LazyJSON, MbedTLS, Retry, SymDict, XMLDict

If you want to prevent this pull request from being auto-merged, simply leave a comment.
(If you want to post a comment without blocking auto-merging, you must include the text [noblock] in your comment.)

It is important to note that if your pull request does not meet the guidelines for automatic merging, this does not mean that your pull request will never be merged. It just means that your pull request will require manual review by a human.

These guidelines are intended not as requirements for packages but as very conservative guidelines, which, if your new package or new version of a package meets them, it may be automatically merged.

On a separate note, I see that you are registering a release with a version number of the form v0.X.Y.
Does your package have a stable public API? If so, then it's time for you to register version v1.0.0 of your package. (This is not a requirement. It's just a recommendation.)
If your package does not yet have a stable public API, then of course you are not yet ready to release version v1.0.0.

[noblock]

Your new version pull request met all of the guidelines for automatic merging.
I will automatically merge this pull request during the next cron job.
If you want to prevent this pull request from being auto-merged, simply leave a comment.
(If you want to post a comment without blocking auto-merging, you must include the text [noblock] in your comment.)

On a separate note, I see that you are registering a release with a version number of the form v0.X.Y.
Does your package have a stable public API? If so, then it's time for you to register version v1.0.0 of your package. (This is not a requirement. It's just a recommendation.)
If your package does not yet have a stable public API, then of course you are not yet ready to release version v1.0.0.

[noblock]


Migrate from storing data in csv to json

Internally, data is currently stored in csv. This should be migrated to SharedPreferences and json, which is very reliable with freezed.

closed by 0867adee9ae5db08e741e0078c21799e6d10249b


Put tests back in; reset build number (since other builds did not work).

Checklist

[X] Used a fork of the feedstock to propose changes
[X] Reset the build number to 0 (if the version changed)
[X] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[X] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Newsletters: add 291 (2024-02-28)

[x] Bitcoin SE section @bitschmidty
[x] Lede, releases/RCs, topic entries @harding
[x] Topic for ecash @harding
[x] Minor update to watchtowers topic @harding

Made edits (thanks @LarryRuane @bitschmidty @vostrnad !), added remaining content, and reviewed the SE section (thanks @bitschmidty !).  Thanks everyone!


Tags are not created in some resources when the global tags are enabled

Is your feature request related to a problem? Please describe.
We defined tags [] in the global-config.yaml file as
tags:

key: "bus:cost-centre"
value: "12345"
key: "bus:application-name"
value: "xyz-aws-lza"
key: "bus:owner"
value: "tech-services-ops"
key: "ops:env"
value: "prod"
We expected these tags will be applied to all resources that LZA created.
However, we found that all subnets created from the network-config.yaml file, there are no tags.
Also, all vpc endpoints and dns resolver endpoints do not have tags.
We have raised the AWS support case "Case ID<PHONE_NUMBER>01507"
Describe the feature you'd like
when defined the central tags in global-config.yaml, we expected all resources created should have those tags defined in the global-config.yaml, except those resources created by the customised  CF stacks.
Additional context
Add any other context or screenshots about the feature request here.
We are aware that there is a issue in https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/830 about the endpoint tags. As there are cost associated these endpoints, tags on these resources are impotent for enterprise user.

AWS Team - this is a bug and not an enhancement based on the definition in GlobalConfigTags:

Custom Tags for all resources created by Landing Zone Accelerator that can be tagged.

Describe the bug
Using the global tags, not all resources that support tags are tagged with specified values
To Reproduce
Example config:
global-config:
tags:
- key: "bus:cost-centre"
  value: "12345"
- key: "bus:application-name"
  value: "xyz-aws-lza"

Expected behavior
All resources

[x] Version: v1.6.1 [e.g. v1.5.1]
[x] Region: ap-southeast-2
[ ] Was the solution modified from the version published on this repository?
[ ] If the answer to the previous question was yes, are the changes available on GitHub?
[x] Have you checked your service quotas for the services this solution uses?
[ ] Were there any errors in the CloudWatch Logs?

Hello, we have an open bug report for the VPC Endpoints and Subnets not applying the global tags. So you're aware, the DNS resolver endpoints have an exception to not apply the tags as you can see that logic here

Also the tags are not applied to different AWSAccelerator- Cloudformation stacks.


Bug:When the app starts, it disables the mute setting.

For example, when I turned off my PC, I mute the audio. And by the time I restart my PC, the launch of this app will enable the sound.
My English is not good. If you have any questions, just ask me.
Chinese:
如果在关机的时候处于静音状态，重启之后会因为这个软件随开机启动而取消静音，如果这个时候正好有UAC需要允许，就会发出提示音。已经尝试过开机取消该软件启动，就不会取消静音。
需要注意的是我使用的是静音快捷键，而不是将音量调小到0。

Duplicate of #185. Track this issue there.

@ShankarBUS this is a duplicate. Pls close this.

Thanks for the reminder!


Black Hole Controller destroyed my grains of infinity.

Industrial Foregoing Version: 1.12.2-1.9
TeslaCoreLib Version: 1.12.2-1.0.15
Crashlog (If Any): none
Trying to put my Black hole units in a controller, somehow the unit with my grains of infinity got turned into arrows. Not sure when it happened, but now I have two units, one with ~4500 arrows, one with ~5300 arrows (this one should have been the grains.)

update, it did it again, when I put the unit that had one stack of grains in the first slot, it got converted to bones this time. I will try re-placing the controller.

Did the BHU get emptied and something else got in?

:wave: Sorry but Industrial Foregoing has ended support for version 1.12. I'm closing this issue as it will no longer be updated for that version. Thanks for playing with the mod.


Update for the trained weights ?

Hello,
Thank you for the great works.
I have tried to use your method for outdoor images.
However, after bug fixing, it seems that the weight "outdoor_ds.ckpt"  is not working as good as it used to be...
Therefore, could you please provide the update for the "outdoor_ds.ckpt"  as well?

Hi, may I ask you which config file and script are you using? The performance should not change as long as cfg.LOFTR.COARSE.TEMP_BUG_FIX  is set to False. The outdoor model with the positional encoding bug fixed does not lead to better performance, so we haven't released it yet.

Hi! Thanks for your reply.
Here I have tried running the work before and after bug-fix ....
Before>> Bug-Fixed (COARSE.TEMP_BUG_FIX = False) << First (Top) image
After  >>  Bug-Fixed (COARSE.TEMP_BUG_FIX = True)  << Second (Bottom) image

However, after bug fixing, I get a worse result.

Could you please explain why using the  COARSE.TEMP_BUG_FIX = True ... then I get the worse result when actually the formulation is correct?

Or is there any possibility that I might have set anything wrong?

Thanks... I will close the issue now.


Add hasflag enumextensions

Fix #214
@mauroservienti please check if it is ok now, thanks! :smile:

I did an initial review

Done everything... sorry :blush:
I try to exclude as much build configuration as I can... let me know.

Looks good.

we'll skip version bumping since we already have pending features in the queue and as soon as we have #213 merged it will be automatic.

Perfect.After this I can improve the EnumToBoolean Converter

@nazarenomanco please, raise an issue for the improvement in the correct repository, this is now available on MyGet as unstable, it will be released on Nuget soon. However if you want to start working on the EnumToBoolean Converter you can use the package from Myget, everything should be already configured in the repo to automatically reference it as well. If this is not the case ping me.


Javascript Single User Flow Clarification

A typical use case will have 3 or 4 user flows. A sign in flow, a sign up flow, a password reset flow, and a profile edit flow. You can also use a combined sign in / sign up flow to drop it to 3 policies. The javascript msal library only supports a single policy:
https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/440
This means the only real use case supported for javascript is where the user does not need password reset or profile edit (and they don't need separate sign in and sign up flows). The documentation makes it sound like it's generally supported when this will only work for a small subset of users.

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

ID: 5b24fece-c54c-519a-7d3a-13db520d776e
Version Independent ID: 34749db8-8bda-c17d-c16e-17271223ddc1
Content: Use MSAL with Azure Active Directory B2CLearn - Microsoft identity platform
Content Source: articles/active-directory/develop/msal-b2c-overview.md
Service: active-directory
Sub-service: develop
GitHub Login: @negoe
Microsoft Alias: negoe

@sudolibre Thanks for letting us know your thoughts, can you please let us know what makes this doc seem like that?

@FrankHu-MSFT User flows are such a core concept in B2C I believe it implies they are supported unless called out in the documentation. Otherwise it's still fairly misleading to state "By using it, you can customize and control how customers sign up, sign in, and manage their profiles when they use your applications". The JS version of this library will not support all of those flows for a single application. Yes technically you can have an application that allows users to "manage their profiles" but it is not obvious that in doing so they would not be able to do a normal sign-in.
In the .Net example all of these user policies are defined in the very first code block:
https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-net-aad-b2c-considerations. In fact most of the .Net documentation is really talking about how to work with multiple user flows which is a testament to how fundamental this functionality is.
If your team disagrees feel free to go ahead and close this ticket.

There is a way to get msal to change the authority and re-auth to a different policy. @jennyf19 did we have a newer js sample?

#reassign:hamiltonha per 2020-03-20 doc sync

@sudolibre unfortunately, msal.js does not support multiple policies 'out of the box' just yet. However our current B2C samples here and here do show how to switch user flows now (documentation update is on its way), and I've heard from some B2C people that there are plans for combining these three flows into one.
No further action can be taken at this moment. #please-close


rate limiting (too many attempts)

I've written a script that basically exports everything from the forge api and stores it in a local database and with 10 servers and 160 sites I am running into the 429 Too Many Attempts error.
However in the api docs I am unable to see anything about a rate limit, and also I don't have experience with setting a rate limit locally so I don't hammer the api.
Any chance you could introduce this? Or at least provide some directions on how I could easily achieve this (the proper way) so I can run my "populate" script in the future and not fear of running into the "Too many attempts" limit?
Many thanks

The rate limit is 30 requests. I think it's per minute, but it could be per 5 minutes (I haven't done extensive testing).
The forge API sends a response header telling you how many requests you have remaining. If you wanted to get that information, you can pass an instance of guzzle's HttpClient as the second argument of the Forge class that has some kind of middleware that can keep a timer going and check the rate limit for you on each request.

Thanks a lot for your suggestion! I just implemented something that is working. It's my first time adding a Guzzle middleware. Thanks to this modification I am now able to do a FULL fetch on my 10+ forge servers and get every little detail about each server and each site without running into the rate limiting
In case it helps anyone else, here's a sample of my code
<?php

namespace App\Helpers;

use Psr\Http\Message\ResponseInterface;
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Handler\CurlHandler;
use GuzzleHttp\Client;
use GuzzleHttp\Middleware;
use Themsaid\Forge\Forge;

class ForgeHelpers
{
    protected $forge;
    protected $guzzle;

    protected $remainingApiCallsThisMinute=0;

    public function initForge()
    {
        $stack = new HandlerStack();
        $stack->setHandler(new CurlHandler());

        $stack->push(Middleware::mapResponse(function (ResponseInterface $response) {
            $headers = $response->getHeaders();

            $this->remainingApiCallsThisMinute = $headers['X-RateLimit-Remaining'][0];

            return $response;
        }));

        $this->guzzle = new Client([
            'base_uri' => 'https://forge.laravel.com/api/v1/',
            'http_errors' => false,
            'headers' => [
                'Authorization' => 'Bearer ' . config('services.forge.token'),
                'Accept' => 'application/json',
                'Content-Type' => 'application/json'
            ],
            'handler' => $stack,
        ]);

        $this->forge = new Forge(config('services.forge.token'), $this->guzzle);

        return $this->forge;
    }

    public function populate($type, $model, $params = [])
    {
        $serverId = $siteId = "";
        if(isset($params['server_id']))
            $serverId = " ServerId:{$params['server_id']}";
        if(isset($params['site_id']))
            $siteId = " SiteId:{$params['site_id']}";

        \Log::info("Fetching {$type}...{$serverId}{$siteId}");

        // fetch the data from forge api

        \Log::info("{$this->remainingApiCallsThisMinute} api calls remaining...");

        if($this->remainingApiCallsThisMinute == 1) {
            \Log::info('Pausing for 60 seconds');
            sleep(60);
        }

        // do something with fetched data

    }

}

The above method worked well for me as long as I was only using a single queue worker for performing api calls. But as soon as I tried it with multiple workers it collapsed quickly..
I suspect race conditions. I tried other recommended methods of adding rate limiting but none of them work perfectly. I open an issue on the main laravel repo seeking helps from smarter people than myself https://github.com/laravel/framework/issues/21346

I found the limit, Postman has told me i have 60 requests a minute. Kind of seems low as i am also coming into the same problem. I have 4 servers, each with around 160 sites.
Considering this is a paid service i would think being able to handle more than 60 request a minute would be easy to implement by upgrading server infrastructure.
I would prefer not to limit my application speed due to a request limit on forge's side.

@themsaid here https://github.com/laravel/framework/issues/21346#issuecomment-331850513 you said you were going to increase the limit.. but it seems like you never did? It is still capped at 60 / second ?
It would be nice if you increased it, and it would be even nicer if you added some functionality to this package to innately respect this limit

After discussions with Taylor he decided that the rate limit will remain as is for now, we might increase it in the future but such like any other paid/un-paid service, a rate limit is a must to prevent abusive usage of our APIs.


Please Add Animepahe.ru server Also Can we have a function of adding custom websites

no plan for now.
Also check source criteria: https://github.com/amarullz/AnimeTV/wiki#source-criteria


qt_gui_core: 0.2.31-0 in 'jade/distribution.yaml' [bloom]

Increasing version of package(s) in repository qt_gui_core to 0.2.31-0:

upstream repository: https://github.com/ros-visualization/qt_gui_core.git
release repository: https://github.com/ros-gbp/qt_gui_core-release.git
distro file: jade/distribution.yaml
bloom version: 0.5.22
previous version for package: 0.2.30-0

qt_dotgraph
* make penwidth attribute optional

qt_gui
* add cli option to disable Qt.AA_X11InitThreads (#69 <https://github.com/ros-visualization/qt_gui_core/pull/69>)

qt_gui_app

No changes

qt_gui_cpp

No changes

qt_gui_py_common

No changes

Waiting for other releases...


Greenkeeper not honoring pinned dependencies

This feels like a bug. I have @types/node pinned to an exact version and Greenkeeper keeps trying to update it.
See this PR: https://github.com/drazisil/mco-server/pull/174
Config: https://github.com/drazisil/mco-server/blob/master/package.json#L68
I have this pinned to an exact version because any changes cause my tests to fail. Is there any way to get Greenkeeper to stop trying?

from the docs about pinning, this is expected behavior:

Once you’ve pinned a package, every subsequent update to it will be considered out-of-range by Greenkeeper.

it sounds like you are looking to ignore updates for that dependency

Yes, thank you.


eliminating obsolete extra starctl scripts

Since all HTTP API Services (REST, GraphQL, Docs API) are now on Quarkus, we no longer need the starctl-service-rest and starctl-service-graphql scripts. Instead, we are favoring container-based usage in our docs. Instructions on running the API services via command line (Maven tasks) are available in the README docs for each API.
With removal of starctl-service-rest and starctl-service-graphql scripts, the changes previously made under v2.0.0 branch to make starctl into an umbrella script that starts coordinator and all API services. Therefore this PR also removes the starctl umbrella script and renames starctl-coordinator back to starctl. The coordinator Dockerfile is updated to reference the updated script name. There are no other dependencies, as we had not made any documentation changes discussing the extra starctl scripts that are deleted here.
Checklist

[ ] Changes manually tested
[ ] Automated Tests added/updated
[ ] Documentation added/updated
[x] CLA Signed: DataStax CLA

Just to confirm, since git was showing diff a little bit strange, the content from starctl-cordinator is only moved to the starctl now, right?

Yes, that's correct


Update the Twitter logo to X #1696

Changes proposed ✍
Changed the twitter logo at two instances
What

🤖 Generated by Copilot at 1cd0caa
Updated the image URLs for the Twitter logo in the frontend code. This improves the consistency and accuracy of the branding for the Twitter integration and the Eagle Eye feature.

🤖 Generated by Copilot at 1cd0caa

Twitter logo changed
In integrations and eye
A fresh spring update

Why
How

🤖 Generated by Copilot at 1cd0caa

Update Twitter logo image URL for integrations and Eagle Eye features (link, link)

Checklist ✅

[ ] Label appropriately with Feature, Improvement, or Bug.
[ ] Add screenshots to the PR description for relevant FE changes
[ ] New backend functionality has been unit-tested.
[ ] API documentation has been updated (if necessary) (see docs on API documentation).
[ ] Quality standards are met.

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

Hey @architadas2005 😄
This is being addressed in this PR https://github.com/CrowdDotDev/crowd.dev/pull/1835
Nonetheless, thanks for your interest in contributing!


Subtask: add support for HEAD requests

HEAD requests will be important to allow users to query if particular content is available on a node. Post IPFS integration, for example, it could be used to verify that >2/3rds infra providers are pinning a file so your upload is "final".

#871


Failed to compile after upgrading from 7 to 8

Bug report
ERROR  Failed to compile with 1 errors

 error  in ./node_modules/next/dist/client/next-dev.js

Module parse failed: Unexpected token (34:6)
You may need an appropriate loader to handle this file type.
|
|
> import('./noop');
| var _window = window,
|     assetPrefix = _window.__NEXT_DATA__.assetPrefix;

 @ multi ./node_modules/next/dist/client/next-dev

Describe the bug
Upgraded from 7 to 8 and now seeing this error. I don't really understand what the issue is or what I should do to fix it.
To Reproduce
$ git clone https://github.com/soffes/soff.es && cd soff.es
$ git checkout next-8
$ npm i && npm run dev

Expected behavior
It starts the development server.
System information

macOS 10.14.3 (18D109)
node 11.9.0
next 8.0.0

same problem here with nextjs 8

@soffes Sorry I didn't recognize the bug from your tweet :man_facepalming:
It's a known issue with npm and a newer version of webpack.
https://github.com/zeit/next.js/issues/6167#issuecomment-458331181

The steps in that comment didn't work for me. I just removed webpack altogether and it started working.

I just removed webpack altogether and it started working.

Did you have it in your dependencies or devDependencies, if so, why'd you add it? I'm really curious about that because I've seen users do that before and I'm still not sure why and it's potentially breaking in many ways 😬.

Here's what I did: https://github.com/soffes/soff.es/commit/607a94237fd27f1d1354aa74ade3eef347414395

Had the same issue, in my case solved it by deleting node_modules and package-lock.json and installing everything again

For me, the solution was to remove @zeit/next-bundle-analyzer from my project. For reference, I created https://github.com/zeit/next.js/issues/6361

Solution: https://github.com/webpack/webpack/issues/8656#issuecomment-456713191


[FLINK-27246][TableSQL/Runtime][master] - Include WHILE blocks in split generated java methods

What is the purpose of the change
This PR fix issue reported in https://issues.apache.org/jira/browse/FLINK-27246 that was caused by JavaCodeSplitter not rewriting "while" statements that was leading to Java compiler not able to compile code due to to big methods.
Proposed change, enhance JavaCodeSplitter by replacing IfStatementRewriter.java with BlockStatementRewriter.java.
The new BlockStatementRewriter.java can rewrite both IF/ESLE statements and WHILE blocks including nested statements.
The BlockStatementRewriter works in two steps. First step extracts blocks from IF/ELSE branches and WHILE bodies to separate methods. This step is executed by new class BlockStatementSplitter.
The second step, groups statements (single lien statements, IF/ELSE and WHILE statements) into groups and extract them to new methods. This step is executed by new class BlockStatementGrouper .
An example of rewritten code:
BEFORE:
public class Example {

      int b;
      int c;

      public void myFun(int a) {

          int counter = 10;
          while (counter > 0) {
              int localA = a + 1000;
              System.out.println(localA);
              if (a > 0) {
                  b = a * 2;
                  c = b * 2;
                  System.out.println(b);
              } else {
                  b = a * 3;
                  System.out.println(b);
              }
              counter--;
          }
      }
  }

AFTER executing BlockStatementRewriter:
public class Example {

      int b;
      int c;

      public void myFun(int a) {

          int counter = 10;

          while (counter > 0) {
              myFun_rewriteGroup1(a);
              counter--;
          }
      }

      void myFun_rewriteGroup1(int a) {
          myFun_whileBody0_0(a);
          if (a > 0) {
              myFun_whileBody0_0_ifBody0(a);
          } else {
              myFun_whileBody0_0_ifBody1(a);
          }
      }

      void myFun_whileBody0_0(int a) {
          int localA = a + 1000;
          System.out.println(localA);
      }

      void myFun_whileBody0_0_ifBody1(int a) {
          b = a * 3;
          System.out.println(b);
      }

      void myFun_whileBody0_0_ifBody0(int a) {
          b = a * 2;
          c = b * 2;
          System.out.println(b);
      }
  }

Brief change log

Include WHILE blocs in Java cod splitter logic.
Add BlockStatementRewriter, BlockStatementSplitter and BlockStatementGrouper  class,
Remove IfStatementRewriter class

Verifying this change
This change is already covered by existing tests, such as

Flink-brach-sql-test
Flink-tcpds-test
Junit test - JavaCodeSplitterTest

This change added tests and can be verified as follows:

BlockStatementRewriterTest.java
BlockStatementSplitterTest.java
BlockStatementGrouperTest.java

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)

@flinkbot run azure

@flinkbot run azure

@flinkbot run azure

@flinkbot run azure

@flinkbot run azure

@flinkbot run azure

@flinkbot run azure

@flinkbot run azure

@flinkbot run azure

@flinkbot run azure

@flinkbot run azure

@flinkbot run azure

@flinkbot run azure

I have very limited knowledge with that part of the code base. Can you help with the review here @JingsongLi , @tsreaper ?

@flinkbot run azure

Hi @tsreaper
I believe I have replayed to all your comments and suggestions.
I also provided some more explanation about the logic in few comments:
https://github.com/apache/flink/pull/21393#discussion_r1071233842
https://github.com/apache/flink/pull/21393#discussion_r1071287539
Please let me know if now logic is more clear and would you like me to add this to java doc or something?

Hi @tsreaper
Thank you for your valuable feedback, no need to apologize :) Please see my response below.

In BlockStatementSplitter you group all single statements between IF/ELSE/WHILEs together and extract each group into a separate method.

I'm not only extracting single line statements but also entire if/else calls. Other than that your understanding is correct.

(If my guesses are correct, you can implement this with just one for loop and a recursive call. No need for mergeBlocks or addGroups or something else. mergeBlocks and addGroups confuse me quick a lot.)

I think I'm already doing this. There is a for loop for block statements. Every block has its own visitor. There is no recursion on calling visit method.
The only recursion is to traverse through all visitors and get blocks from them. This is straightforward parent -> child structure.
I'm not merging any blocks, I'm simply gathering all blocks from all visitors. Please take a look at my comment -> https://github.com/apache/flink/pull/21393#discussion_r1071174072
Also please note that addGroups method was deleted.

The problem of this idea (or rather, the current implementation) is that, it's doing almost the same thing with the old IfStatementRewriter, plus the currently remaining FunctionSplitter.

I don't agree with that statement. Firstly my implementation handle else if blocks which original statement did not. Also in some cases, my implementation produced better results than original  IfStatementRewriter. In other cases - the result was the same as original IfStatementRewriter, So we have extra value here. Please look at more examples provided by me at the end of this comment.
Also I'm optimizing and grouping IF/ELSE/WHILE branches bodies (block, statements) whereas FunctionSplitter assumes that statements is already optimized. That means that FunctionSplitter takesentire IF/Else without any extra modifications and adds it to the methods body or extracts it to the new method. So I'm not duplicating FunctionSplitter, those operate on different levels.

I guess what you need is just to copy a bit of code in IfStatementRewriter, change them into WHILE and that's all. Maybe changing the name to BlockStatementRewriter. This shall achieve our goals by making the least changes.

I do not agree with this statement. IfStatementRewriter is specialized in IF/ELSE. It does not process "else if".
Originally I was thinking about adding bits of code to IfStatementRewriter but I realized that the problem is more complex. We need something that can process nested combination of WHILE's and IF's
I couldn't have things like
shouldExtract(blockStatementContext.statement().statement(0)) and shouldExtract(blockStatementContext.statement().statement(1))
I wanted to have more generic code, that will apply the same logic to all blocks. In fact, one may argue that I actually did copy a bit of code in IfStatementRewriter change them into WHILE and that's all. You will find bits of IfStatementRewriter in "BlockStatementRewriter::rewrite and "BlockStatementVisitor::visitMethodDeclaration methods. Other than that, I proposed new solution.
Also IfStatementRewriter approach for handling nested IF/ELSE is different that in my implementation. If I understand correctly, IfStatementRewriter rewrite entire class as many times as there were extracted methods.
        while (visitor.hasRewrite()) {
            visitor = new IfStatementVisitor(rewriterCode);
            rewriterCode = visitor.rewriteAndGetCode();
        }

The first rewrite call will extract first method, visitor.hasRewrite() will return true, we will rewrite again, but this time we will rewrite the previously extracted method, and so on. Every time, the entire class has to be "parsed".
In my case we parse class once, extracting new blocks and processing nested expressions by creating new visitors <- NO recursion here. Every visitor has its context, that will become a name prefix of extracted by this visitors. Every extracted block
Every new visitor has the same reference to "rewriter" object. This means that every visitor handles only small portion of entire method, and rewrites only its part.
I do understand that this change touches core component, so the possible impact is big -> SQL jobs.
I can tell that existing integration/end 2 end tests detected issues with previous implementations. I managed to solve those by analyzing original and rewritten code created for test queries.
To sum up:

recursion -> I really don't think that this should be a problem. Recursion is called only to gather the results, parsing is not using recursion.
addBlocks -> removed
adding bits to IfStatementRewriter I dont think this is the option.

I can try to implement your way of processing nested expressions, something similar to while (visitor.hasRewrite()) from IfStatementRewriter if you think that can help pushing this PR.
At the end please take a look at some examples:
Example 1:
Original code:
     public void myFun1(int[] a, int[] b) throws RuntimeException {
        if (a[0] == 0) {
            a[0] = 1;
            a[1] = 1;
        } else if (a[1] = 22) {
            a[1] = b[12];
            a[2] = b[22];
        } else if (a[3] == 0) {
            a[3] = b[3];
            a[33] = b[33];
        } else if (a[4] = 0) {
            a[4] = b[4];
            a[44] = b[44];
        } else {
            a[0] = b[0];
            a[1] = b[1];
            a[2] = b[2];
        }
    }

BlockStatementRewriter result:
public void myFun1(int[] a, int[] b) throws RuntimeException {

        if (a[0] == 0) {
            myFun1_ifBody0(a, b);
        } else if (a[1] = 22) {
            myFun1_ifBody1_ifBody0(a, b);
        } else if (a[3] == 0) {
            myFun1_ifBody1_ifBody1_ifBody0(a, b);
        } else if (a[4] = 0) {
            myFun1_ifBody1_ifBody1_ifBody1_ifBody0(a, b);
        } else {
            myFun1_ifBody1_ifBody1_ifBody1_ifBody1(a, b);
        }
    }

    void myFun1_ifBody1_ifBody1_ifBody0(int[] a, int[] b) throws RuntimeException {
        a[3] = b[3];
        a[33] = b[33];
    }

    void myFun1_ifBody1_ifBody0(int[] a, int[] b) throws RuntimeException {
        a[1] = b[12];
        a[2] = b[22];
    }

    void myFun1_ifBody1_ifBody1_ifBody1_ifBody1(int[] a, int[] b) throws RuntimeException {
        a[0] = b[0];
        a[1] = b[1];
        a[2] = b[2];
    }

    void myFun1_ifBody1_ifBody1_ifBody1_ifBody0(int[] a, int[] b) throws RuntimeException {
        a[4] = b[4];
        a[44] = b[44];
    }

    void myFun1_ifBody0(int[] a, int[] b) throws RuntimeException {
        a[0] = 1;
        a[1] = 1;
    }

IfStatementRewriter result:
public void myFun1(int[] a, int[] b) throws RuntimeException {
        if (a[0] == 0) {
            myFun1_trueFilter1(a, b);

        }
        else if (a[1] = 22) {
            a[1] = b[12];
            a[2] = b[22];
        } else if (a[3] == 0) {
            a[3] = b[3];
            a[33] = b[33];
        } else if (a[4] = 0) {
            a[4] = b[4];
            a[44] = b[44];
        } else {
            a[0] = b[0];
            a[1] = b[1];
            a[2] = b[2];
        }
    }
    void myFun1_trueFilter1(int[] a, int[] b) throws RuntimeException{
        a[0] = 1;
        a[1] = 1;
    }

Example 2:
Original code:
public void myFun1(int[] a, int[] b) throws RuntimeException {
        if (a[0] == 0) {
            System.out.println("0");
            System.out.println("0");
            if (a[1] == 0) {
                System.out.println("1");
                System.out.println("2");
                if (a[2] == 0) {
                    a[2] = 1;
                    a[22] = 1;
                } else {
                    a[2] = b[2];
                    a[22] = b[2];
                }
            } else {
                a[1] = b[1];
                a[2] = b[2];
            }
        } else {
            System.out.println("3");
            System.out.println("3");
            if (a[1] == 1) {
                a[0] = b[0];
                a[1] = b[1];
                a[2] = b[2];
            } else {
                a[0] = 2 * b[0];
                a[1] = 2 * b[1];
                a[2] = 2 * b[2];
            }
        }
    }

BlockStatementRewriter result:
public void myFun1(int[] a, int[] b) throws RuntimeException {

        if (a[0] == 0) {
            myFun1_rewriteGroup1(a, b);
        } else {
            myFun1_rewriteGroup3(a, b);
        }
    }

    void myFun1_ifBody0_0_ifBody0_0_ifBody1(int[] a, int[] b) throws RuntimeException {
        a[2] = b[2];
        a[22] = b[2];
    }

    void myFun1_ifBody0_0_ifBody0_0_ifBody0(int[] a, int[] b) throws RuntimeException {
        a[2] = 1;
        a[22] = 1;
    }

    void myFun1_ifBody0_0_ifBody1(int[] a, int[] b) throws RuntimeException {
        a[1] = b[1];
        a[2] = b[2];
    }

    void myFun1_rewriteGroup1(int[] a, int[] b) throws RuntimeException {
        myFun1_ifBody0_0(a, b);
        if (a[1] == 0) {
            myFun1_rewriteGroup0_rewriteGroup1(a, b);
        } else {
            myFun1_ifBody0_0_ifBody1(a, b);
        }
    }

    void myFun1_ifBody1_0(int[] a, int[] b) throws RuntimeException {
        System.out.println("3");
        System.out.println("3");
    }

    void myFun1_ifBody0_0(int[] a, int[] b) throws RuntimeException {
        System.out.println("0");
        System.out.println("0");
    }

    void myFun1_ifBody0_0_ifBody0_0(int[] a, int[] b) throws RuntimeException {
        System.out.println("1");
        System.out.println("2");
    }

    void myFun1_rewriteGroup3(int[] a, int[] b) throws RuntimeException {
        myFun1_ifBody1_0(a, b);
        if (a[1] == 1) {
            myFun1_ifBody1_0_ifBody0(a, b);
        } else {
            myFun1_ifBody1_0_ifBody1(a, b);
        }
    }

    void myFun1_ifBody1_0_ifBody0(int[] a, int[] b) throws RuntimeException {
        a[0] = b[0];
        a[1] = b[1];
        a[2] = b[2];
    }

    void myFun1_ifBody1_0_ifBody1(int[] a, int[] b) throws RuntimeException {
        a[0] = 2 * b[0];
        a[1] = 2 * b[1];
        a[2] = 2 * b[2];
    }

    void myFun1_rewriteGroup0_rewriteGroup1(int[] a, int[] b) throws RuntimeException {
        myFun1_ifBody0_0_ifBody0_0(a, b);
        if (a[2] == 0) {
            myFun1_ifBody0_0_ifBody0_0_ifBody0(a, b);
        } else {
            myFun1_ifBody0_0_ifBody0_0_ifBody1(a, b);
        }
    }

IfStatementRewriter result:
public void myFun1(int[] a, int[] b) throws RuntimeException {
      if (a[0] == 0) {
          myFun1_trueFilter1(a, b);

      }
      else {
          myFun1_falseFilter2(a, b);

      }

  }
  void myFun1_trueFilter1(int[] a, int[] b) throws RuntimeException{
      System.out.println("0");
      System.out.println("0");
      if (a[1] == 0) {
          myFun1_trueFilter1_trueFilter3(a, b);

      }
      else {
          myFun1_trueFilter1_falseFilter4(a, b);

      }

  }
  void myFun1_trueFilter1_trueFilter3(int[] a, int[] b) throws RuntimeException{
      System.out.println("1");
      System.out.println("2");
      if (a[2] == 0) {
          myFun1_trueFilter1_trueFilter3_trueFilter7(a, b);

      }
      else {
          myFun1_trueFilter1_trueFilter3_falseFilter8(a, b);

      }

  }
  void myFun1_trueFilter1_trueFilter3_trueFilter7(int[] a, int[] b) throws RuntimeException{
      a[2] = 1;
      a[22] = 1;
  }

  void myFun1_trueFilter1_trueFilter3_falseFilter8(int[] a, int[] b) throws RuntimeException{
      a[2] = b[2];
      a[22] = b[2];
  }

  void myFun1_trueFilter1_falseFilter4(int[] a, int[] b) throws RuntimeException{
      a[1] = b[1];
      a[2] = b[2];
  }

  void myFun1_falseFilter2(int[] a, int[] b) throws RuntimeException{
      System.out.println("3");
      System.out.println("3");
      if (a[1] == 1) {
          myFun1_falseFilter2_trueFilter5(a, b);

      }
      else {
          myFun1_falseFilter2_falseFilter6(a, b);

      }

  }
  void myFun1_falseFilter2_trueFilter5(int[] a, int[] b) throws RuntimeException{
      a[0] = b[0];
      a[1] = b[1];
      a[2] = b[2];
  }

  void myFun1_falseFilter2_falseFilter6(int[] a, int[] b) throws RuntimeException{
      a[0] = 2 * b[0];
      a[1] = 2 * b[1];
      a[2] = 2 * b[2];
  }

Cheers,
And happy New Year ;)

Hi @tsreaper
I'm currently working on the refactoring to include your suggestions, it does look promising. I should have new version by the end of this week.
I have a question though.
Can we assume that variables/fields used in IF and WHILE conditions will be always class member variables? I'm looking at DeclarationRewriter and I wonder if we take such assumption or can IF/WHILE condition arguments can come from method parameters?
If they can come from method parameters and if they are primitive values, then we should not rewrite such a method.
I don't think that original IfStatementRewriter deal with that but maybe I don't see it.
What do you think?

@flinkbot run azure

@tsreaper
I've refactored both BlockStatementSplitter and BlockStatementGrouper so they use one for loop and one visitor instance like you suggested in your comments. There is no merge/add blocks now.
I would appreciate if you take a look and let me know what do you think.
Thanks.

Thanks @kristoffSC for your effort in this long running pull request. I don't have much to say now. You did a great job.
One last comment: Add a test to CodeSplitITCase to address why this issue is brought up. Maciej Bryński's comment in the original JIRA ticket might be useful.

Hi @tsreaper
thanks for kind words. I'm really happy that we are getting closer to merge this change.
I was using Maciej Bryński's SQL example from FLINK-27246 ticket to verify if my change here solves the original problem.
I will add it to CodeSplitITCase in following days.

Hi @tsreaper
I've implemented test you requested for. It's 'CodeSplitITCase ::testManyAggregationsWithGroupBy'
CI/CD is green.
Anything else you would like me to do? If not could you merge this PR?
P.S.
After merging this PR I would like to create a back port PRs to 1.15 and 1.16. Our client is on 1.14 which is not supported anymore and I'm not sure to which version our client will be upgrading to.

After merging this PR I would like to create a back port PRs to 1.15 and 1.16.

You're welcome to create back ports. As 1.16.0 has just released for one month or two I guess 1.16.1 will come in the near future. However 1.15 is an older version and I can't determine when will we release the next version (or if the next version will ever come).

it looks like it generates methods with same signature for some cases e.g.  org.apache.flink.table.planner.runtime.stream.sql.MatchRecognizeITCase#testUserDefinedFunctions
and it leads to debug output for these tests

@snuyanzin

it looks like it generates methods with same signature for some cases e.g.
I will take a look at this one.

This was not causing CI build to fail?

somehow build doesn't fail
however lots of output in tests with generated code
The output happens here https://github.com/apache/flink/blob/2ae5df278958073fee63b2bf824a53a28a21701b/flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/runtime/generated/CompileUtils.java#L106
looks like the exception is caught somewhere and not rethrown further

btw, i created an issue for that
https://issues.apache.org/jira/browse/FLINK-30927

I already have fix, will provide PR shortly.


POSH-GIT Color features not showing

Below is the content of my Microsoft.PowerShell_profile.ps1
Rename-Item Function:\Prompt PoshGitPrompt -Force
function Prompt() {
if(Test-Path Function:\PrePoshGitPrompt){
++$global:poshScope;
New-Item function:\script:Write-host -value "param([object] $object, $backgroundColor,
$foregroundColor, [switch] $nonewline) " -Force | Out-Null;
$private:p = PrePoshGitPrompt;
if(--$global:poshScope -eq 0) {
Remove-Item function:\Write-Host -Force
}
}
PoshGitPrompt
}
What do I need to do to enable this coloring features. I installed poshgit using chocolatey

Not sure I understand the problem - you're not seeing colors in the prompt? Do you see colors from git status? What host/shell are you using?

No I don't see colours from git status

I am hosting on Visual Studio Online

Yeah, I've fixed it. I just had to clone the posh-git to my local drive and ran .\install.ps1 and reloaded my profile . $profile and it worked. I am happy to see these poshgit features, makes things interesting

VS Online is your Git host? What about your local PowerShell? Default or something like Console2/ConEmu?
Glad it's working, but would like to understand if there's another Chocolatey-specific issue.