[WIP] Enhancement: Consumers Scheduling

PoC status

not yet working
branch: https://github.com/pierDipi/eventing-kafka-broker/tree/poc-scheduling

Important files to look at:

trigger_v2.go
trigger_v2_pod_controller.go
trigger_v2_vpod.go
controller_v2.go

Thanks for your review @devguyio!

Interesting proposal! Here're my thoughts:

I've some concerns/questions about the use of annotations that I left in the comments.

On a macro-level: this design introduces:

a place for providing a data plane runtime configuration.

If you're referring to configuring replicas for a Trigger or KafkaSource replicas, I'd say it is more a control plane configuration than a data plane one.

Sorry I guess I wasn't very accurate in this "this design introduces" . I am referring to the end result, the end-to-end chain, or the intention if you may. I understand this design on its own introduces more a scheduling configuration that'd be translated by the control plane to the update of the ConfigMap. But the "intention" is that end-to-end, this introduces a new API that would result eventually in changing the data plane runtime configuration.

a control plane - data plane coordination mechanism.

The coordination mechanism is between 2 control plane components (Resource reconciler and Pod reconciler), the coordination mechanism between the control plane and the data plane is still the old one (ConfigMaps).

Ack, again poor choice of "introduces" from my side, But the intent is to have a controller-controllers-dispatcher coordination more or less. no? Scheduler-Resource ctor - Pod ctor - dp reread config - pod ctor - resource ctor.

In addition, I'm decreasing the importance of the CM being the mechanism

Ack, and introducing at the same time another configuration mechanism. Which I'll reference later down.

since with this design the CM is coupled with a single Pod, and its short-lived lifecycle, while before it was coupled to 2 long-lived Deployments, so now it becomes an ephemeral component for the dispatcher, that could be replaced in the future.

Given that we already need to address the control plane - data plane communication and probably might need to set our runtime configuration story straight, here are some questions:

Would adopting yet another narrow scope solution for cp-dp config & coordination impose future constraints when solving the cp-dp problem?
Are we confident this solution will still hold when we address the cp-dp config & coordination problem? or is there a possibility it could be designed differently had we solved that first?

Given the above point (2), and with the recent changes to consumer groups initialization knative-sandbox/eventing-kafka#911 (TLDR; remove direct coordination between controller and data plane, and use Kafka instead), I think this will not be a problem on the dispatcher side (which is what we're changing in this proposal).

So I guess the gist of how I see this now is like this:
This introduces: 1. A scheduler API for assignment / sharding of resources to data plane pods. I generally see this is very valuable, and we 100% need that. I don't yet have a strong opinion on that specific solution and need to take a deeper look at it and whether or not there were alternative solutions. Would be awesome if any of y'all have more info to help here.

I created an alternative solution a while ago that is different from this but I was never convinced it is the approach I'd move forward (https://github.com/knative-sandbox/eventing-kafka-broker/issues/785)

2. A mechanism to reflect the assignment/shard on the ConfigMaps that includes a reload of the dispatcher pods when updated (i.e annotations) My only concern here is the admin UX as described above. Specifically the dynamic, growing aspect of it. Would there be an alternative that solves this dynamic growing aspect?

Again let's not focus too much on the ConfigMap aspect, we can change that later easily.
The annotation is a mechanism to coordinate 2 controllers, then to refresh the volume.
Also, this seems relevant https://github.com/knative-sandbox/eventing-kafka-broker/pull/1293#discussion_r724801214

2. A mechanism to reflect the assignment/shard on the ConfigMaps that includes a reload of the dispatcher pods when updated (i.e annotations) My only concern here is the admin UX as described above. Specifically the dynamic, growing aspect of it. Would there be an alternative that solves this dynamic growing aspect?

Again let's not focus too much on the ConfigMap aspect, we can change that later easily.
The annotation is a mechanism to coordinate 2 controllers (status updates and requeuing), then to refresh the volume.

TBH I'm not sure exactly where is the focus on the ConfigMap 😀 I'm focusing on the dynamically growing list of annotations.

Also, this seems relevant https://github.com/knative-sandbox/eventing-kafka-broker/pull/1293#discussion_r724801214

Responded.

This introduces: 1. A scheduler API for assignment / sharding of resources to data plane pods. I generally see this is very valuable, and we 100% need that. I don't yet have a strong opinion on that specific solution and need to take a deeper look at it and whether or not there were alternative solutions. Would be awesome if any of y'all have more info to help here.

I created an alternative solution a while ago that is different from this but I was never convinced it is the approach I'd move forward (#785)

Also, I explored another idea that was using Kafka itself to do the sharding (I can't find the document) but the limitation is that you need some capacity planning beforehand which is not a good UX.


SDWebImage not support iOS 7?

I have added library SDWebImage with pod command, Xcode show error: requires iOS 8 and later
I used Xcode 7.3.1 Swift 2.2
Please tell me how to use SDWebImage for iOS 7 and later.
Thank you!

The current version of SDWebImage (3.8.1) works on iOS 7 and later. You just need to set your app to support iOS 7 as deployment target. Make sure your Podfile has platform :ios, '7.0'


Introduce simulator

This is a compact version of PyRat, that allows to play with some configuration of original version (--help). Therefore, simulator.py is able to reproduce an approximation of PyRat with the following fixed configuration:
python pyrat.py -d 0 -md 0 --test 1 --synchronous --nodrawing

Fix some misspelling , and clean code


Add home icon to navbar

Created new issue for this: https://github.com/GlobalDigitalLibraryio/issues/issues/434


Fix pyperclip when using tmux on macOS

by using reattach-to-user-namespace if it is installed;
see tmux-MacOSX-pasteboard.
While this approach fixes issues like #81, I dislike the that:

there is duplicate code — yet using a function did not work
I'm uncertain whether using distutils.spawn is acceptable here

What do you think of the changes and how could they be improved?

I'm having trouble reproducing the original bug. I've run brew install tmux to install tmux on my 10.11.6 El Capitan MacBook Pro, then ran tmux to start a session, then went to the python3 interactive shell and pyperclip seems to copy and paste just fine (both within the terminal and in other apps like the web browser).
Do you have repro steps? Also, can you check if maybe the inclusion of pyobjc code has fixed this issue? Maybe it was just related to how pbcopy and pbpaste (the previous clipboard mechanisms) worked?

Hi @asweigart,
thanks for following up.
It appears that this fix is not necessary anymore, since the issue has been addressed with tmux 2.6 with tmux/tmux@78352fdd328b611d935ba051288191b33278cc4a.


ISSUE: [custom_components.keymaster.binary_sensor] Can't access Z-Wave JS client.

Describe the bug
I just setup keymaster for the first time with my ZWAVE Yale Assure Lock 2 SL.
When I try to change or add a pin, the status is stuck at adding or deleting.
In the logs I see.
[custom_components.keymaster.binary_sensor] Can't access Z-Wave JS client.
Environment (please complete the following information):

OS: Ubuntu / Container
Type of system that HA is running on: Kubernetes
Home Assistant version: 2024.5.4
Hassio/Docker/Core? Core
Component version: 0.0.98
Z-Wave integration name:  zwave JS UI
Lock make and model: Yale Assure Lock 2 SL Touchscreen

Logs
2024-07-11 22:46:39.762 ERROR (MainThread) [custom_components.keymaster.binary_sensor] Can't access Z-Wave JS client.                              │
│ Traceback (most recent call last):                                                                                │
│   File "/config/custom_components/keymaster/binary_sensor.py", line 130, in async_update                                                           │
│     client = zwave_entry.runtime_data[ZWAVE_JS_DATA_CLIENT]                                                                                │
│              ^^^^^^^^^^^^^^^^^^^^^^^^                                                                                │
│ AttributeError: 'ConfigEntry' object has no attribute 'runtime_data'
Screenshots
Additional context
Add any other context about the problem here.
Please add emails in plain/text format if possible and applicable.

Try updating your home assistant.

That worked, all good now thanks!


Customization of PlantUML jar path (& Java binary?)

First, thanks for the good work! If find this extension to be a simple yet very useful example of the potential behind Jupyter :)
The current mechanism allowing path customization for the PlantUML .jar file uses an option passed to setup.py at install time. This precludes pip install iplantuml and seems unnecessarily unwieldy to me.
Why not use an age-old but customization-friendly environment variable for this purpose insead? Something like PLANTUML_JAR_FILE would do the trick.
Or maybe the java executable could even be part of the variable (like https://pypi.python.org/pypi/sphinxcontrib-plantuml does it) so it would be more PLANTUML_RUN_COMMAND.
The second option would be extra convenient in situations where the Java binary is not on the PATH. For example my Windows dev box has no JRE installed, but a version of it is bundled with PyCharm: I'd rather not have its java.exe on the PATH but wouldn't mind using it for the specific purpose of running PlantUML, just as the plantuml4idea plugin runs it inside PyCharm (I am fully aware, however, that this is a matter of convenience and consider the ability to customize this of lesser importance than customizing the .jar path).

Hey there.
Sorry, I think I conflated your issue and @bitaxis's PR from a few weeks back in my head. (Been a really busy few weeks.) I accepted his PR and will be pushing out a new version in a bit. His defaults were more sensible.
See: https://github.com/jbn/IPlantUML/pull/6


Exiting the shell breaks something

Type:

[x] Bug
[ ] Enhancement
[ ] Feature Request
[ ] Question

zplug --version: 2.4.1
zsh --version: 5.1.1
uname -a: Linux laptop 4.4.0-83-generic #106-Ubuntu SMP Mon Jun 26 17:54:43 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Description
I have encountered a bug that breaks functionality in ranger: In ranger, I can start a shell. If I exit it again, I expect to be returned to ranger. However, as soon as I use zgen (even without plugins), ranger crashes on exiting the shell. This does not happen if the inner shell is a bash or zsh without zplug.
The bug for ranger is located here: https://github.com/ranger/ranger/issues/898
Unfortunately, I only experience the bug but cannot tell you exactly what the problem is. Maybe someone from ranger can help you.
Minimal zshrc (with less than 30 lines)
Create a minimal reproducing set of configurations for this issue. Please remove all unnecessary parts!
source ~/.zplug/init.zsh

if zplug check || zplug install; then
  zplug load --verbose
fi

Step to reproduce

Use zsh with zplug (without plugins)
Start ranger
Start a shell in ranger
Exit the shell
Experience a crash

Same thing happening to me, I only need 'source ~/.zplug/init.zsh' in my .zshrc for this to happen.

@cjbassi It is probably easier to migrate back to zgen, as I have seen no reaction in the last three months. I'm not sure if this project is dead.

I have similar issue. The ranger does not crash, but is suspended, and must be explicitly brought back by fg AFTER exiting the spawned sub-shell.

Same thing happens with other file managers such as nnn and fff, when spawning a shell from these terminal file-browsers and exiting using ^D or exit, it suspends the running process (the file manager ranger, nnn etc.) and puts it into background with the output zsh: suspended (tty-output) .... This is indeed a bug with zplug itself (verified with a minimal .zshrc with nothing but zplug), and did not happen when I used oh-my-zsh.


No toaster update?

My 4K resolution Breville BTA730XL Toaster has been dying to play this mod, but there's no build for the Breville BTA730XL Toaster! What the fuck!?

sus!!!!!!!!!!!!!!!!!

i still need to harness the raw energy of the sun to do that, sorry!

bro go buy a solar panel!!!!!!!!!!!!!! smh!!!!!!!!!!!!!!!!!!!!!!!!


[SPARK-39318][SQL] Remove tpch-plan-stability WithStats golden files

What changes were proposed in this pull request?

Remove all TPCH with stats golden files.
Why are the changes needed?

It's a dead golden files since we have no stats with TPCH and no check for that.
Does this PR introduce any user-facing change?

no, it's for test
How was this patch tested?

Pass CI

cc @cloud-fan @AngersZhuuuu

Do you know when they became dead?

@LuciferYang it is dead since it was added

amazing ...

It was generated by SPARK_GENERATE_GOLDEN_FILES=1 SPARK_ANSI_SQL_MODE=true build/sbt "sql/testOnly *TPCHPlanStabilitySuite"

Seems caused by I generate these file with both with/without stats, but finally we decide to remove test about withState but forgot to  remove the file generated by withState.

@cloud-fan I think we should remove this.

sorry I missed this PR. @ulysses-you can you do a rebase?

@cloud-fan rebased

ping @cloud-fan @HyukjinKwon

thanks, merging to master!


gdb cannot access libcc1.so plugin

Description
When using the compile code feature, GDB produces the following error:
Could not load libcc1.so: libcc1.so: cannot open shared object file: No such file or directory

Steps To Reproduce
Steps to reproduce the behavior:

Make a simple program:

#include <stdio.h>

int main() {
   printf("Hello, world!\n");
   return 0;
}

Compile it gcc -O0 -g main.c
Open the compiled result in GDB gdb a.out
Place a breakpoint in the program b main
Run the program r
Try compiling and running some code from within GDB compile code printf("Hello from GDB!\n")
GDB produces the error listed above

Expected behavior
GDB should compile and execute the code written in the compile code command. You can test this on your system through distrobox if you want.
Screenshots

Additional context
First, some background on libcc1.

libcc1 is a plugin for gdb that lets it compile C and C++ code through its compile code command.
libcc1 is part of gcc, and gdb is supposed to dlopen() it when compile code is called.
gcc in nixpkgs has an option called disableGdbPlugin that causes libcc1 to not be compiled, although I think it's false by default.

Now that we're on the same page, let's continue.
gdb dlopen()s libcc1.so (defined here for C and here for c++), which it can't find under NixOS. I tried patching gdb with overrideAttrs (patch is below) to make it open libcc1.so from the nix store, including patching gcc to tell it to include the lib output in the outputsToInstall , which is the output that contains libcc1.so. This seems to get closer to working result, but produces the error Could not find a compiler matching "^(x86_64|i.86)(-[^-]*)?-linux(-gnu[^-]*)?-gcc$", which I found is produced by libcc1 by searching binary files in my nix store with ripgrep for Could not find a compiler matching.
Interestingly, I have noticed that there seem to be a few other places that I find libcc1.so in my nix store:
/nix/store/(sha256)-x86_64-unknown-linux-musl-gcc-13.3.0/lib/gcc/x86_64-unknown-linux-musl/13.3.0/plugin/libcc1plugin.so
/nix/store/(sha256)-gcc-13.2.0/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/plugin/libcc1plugin.so

These are in addition to the path that I'm using in my patch below at /nix/store/(sha256)-gcc-13.2.0-lib/lib/libcc1.so (aka ${pkgs.gcc-unwrapped.lib}/lib/libcc1.so). You'll notice that these places call the file libcc1plugin.so rather than libcc1.so, so I'm not convinced it is the same file or a valid replacement, but I wasn't able to test this because something in the build process replaces the -linux- part of the path with just -l- whenever I set gdb's  GCC_C_FE_LIBCC and GCC_CP_FE_LIBCC variables to point to that location. I'm not sure how to disable this behavior or what is causing it, so I don't know how to test this. (Although I presume it's nix.)
Are there any ideas as to what we can do to help it locate it? I would really like to get this functionality working. As I mentioned earlier, it works on other distros, including Arch Linux through distrobox.
            (gdb.overrideAttrs (new: {
              buildInputs = pkgs.gdb.buildInputs ++ [ gcc-unwrapped ];
              # nativeBuildInputs = pkgs.gdb.nativeBuildInputs ++ [ gcc libcxx ];
              env.NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isLinux "-rpath ${lib.makeLibraryPath [ gcc-unwrapped ]}";
              dontPatchELF = true; # needed or nix will try to optimize the binary by removing "useless" rpath
              patches = [
                (pkgs.substituteAll {
                  gcc = "${((pkgs.gcc-unwrapped.override {
                      disableGdbPlugin = false;
                    }).overrideAttrs (oldAttrs: {
                    meta.outputsToInstall = oldAttrs.meta.outputsToInstall ++ [ "lib" ];
                  })).lib}";
                  # gcc = pkgs.gcc;
                  src =
                    (writeText "libcc-fix.patch" ''
                      diff --git a/include/gcc-c-interface.h b/include/gcc-c-interface.h
                      index 700d7483a4a..b5c800d3a44 100644
                      --- a/include/gcc-c-interface.h
                      +++ b/include/gcc-c-interface.h
                      @@ -191,7 +191,7 @@ struct gcc_c_context
                       /* The name of the .so that the compiler builds.  We dlopen this
                          later.  */

                      -#define GCC_C_FE_LIBCC libcc1.so
                      +#define GCC_C_FE_LIBCC<EMAIL_ADDRESS>

                       /* The compiler exports a single initialization function.  This macro
                          holds its name as a symbol.  */
                      diff --git a/include/gcc-cp-interface.h b/include/gcc-cp-interface.h
                      index 15b911cb216..cf69c4f3d4f 100644
                      --- a/include/gcc-cp-interface.h
                      +++ b/include/gcc-cp-interface.h
                      @@ -473,7 +473,7 @@ struct gcc_cp_context
                       /* The name of the .so that the compiler builds.  We dlopen this
                          later.  */

                      -#define GCC_CP_FE_LIBCC libcc1.so
                      +#define GCC_CP_FE_LIBCC<EMAIL_ADDRESS>
                       /* The compiler exports a single initialization function.  This macro
                          holds its name as a symbol.  */
                    '');
                })
              ];
            }))

Notify maintainers
Pinging gcc and gdb maintainers since I'm not sure whether this should be fixed in GCC or GDB (could be both).
GDB:

@nbp
@globin
@lsix

GCC:

@Synthetica9
@vcunat
@Ericson2314

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.10.9, NixOS, 24.11 (Vicuna), 24.11.20240910.1355a0c`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.5`
 - channels(blake): `""`
 - channels(root): `"nixos"`
 - nixpkgs: `/nix/store/qpg5mwsind2hy35b9vpk6mx4jimnypw0-source`

Add a :+1: reaction to issues you find important.

Yeah, nixpkgs disabled libcc1 with pkgs/development/compilers/gcc/common/configure-flags.nix:    ++ lib.optional disableGdbPlugin "--disable-libcc1".
I think the primary motivation was only unexpected libstdc++ references to the bootstrap compiler (as opposed to booted compiler, another negative side-effect of --disable-bootstrap): https://github.com/NixOS/nixpkgs/pull/216237/commits/24b07fc9e5216d8ae22205c2f8c688e2738d8502

I think disableGdbPlugin = true; specifically comes directly from pkgs/stdenv/linux/default.nix:
  commonGccOverrides = {
    # Use a deterministically built compiler
    # see https://github.com/NixOS/nixpkgs/issues/108475 for context
    reproducibleBuild = true;
    profiledCompiler = false;

    # It appears that libcc1 (which is not a g++ plugin; it is a gdb plugin) gets linked against
    # the libstdc++ from the compiler that *built* g++, not the libstdc++ which was just built.
    # This causes a reference chain from stdenv to the bootstrapFiles:
    #
    #   stdenv -> gcc-lib -> xgcc-lib -> bootstrapFiles
    #
    disableGdbPlugin = true;
  };

We apply this override to the multiple stages (probably all that build gcc, not just the early ones).


Implementing a cross platform GATT Peripheral

Using PureSwift GATT I wish to  implement a GATT Peripheral that will be deployed on Darwin (MacOS, iOS, Mac Catalyst) and Linux platforms. How can a peripheral such as a Heart rate Monitor be implemented without custom coding for each platform?
Perhaps I am missing a trick?

There are multiple projects using this library for that exact purpose. Please take a look at https://github.com/MillerTechnologyPeru/SmartLock


update to graal 22.3.0

I think we should create a new minor 3.7.x and merge this Pr into that branch.

I have updated the GraalVM release checklist so that we don't forget this in the future
https://github.com/micronaut-projects/micronaut-core/wiki/GraalVM-Release-Checklist


Implement CSS triggerPropertyValueCompletion setting

When this PR will be merged, I will create a setting inside css-language-features which is in vscode repo.
Related to: https://github.com/Microsoft/vscode/issues/68495

@octref Could you review again? I created tests and made some small changes.

@octref Let me know if I can create a PR in VS Code to add css.completion.triggerPropertyValueCompletion. But first I need your help to create a description for it 😄

Something like "By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior." would do.


Replaced always_center_master to slave_count_for_center_master

Describe your PR, what does it fix/add?

Replaced boolean config parameter always_center_master to an integer value slave_count_for_center_master for more control on when to center master window.
Also updated configuration parameter, type, description and related internal variable.

New description: when using orientation=center, make the master window centered only when at least this many slave windows are open. (Set 0 to always_center_master)
This effects center orientation of master layout.
Now, user can control when the master window would be centered which solves #8866
Related Wiki Modification
Is there anything you want to mention? (unchecked code, possible bugs, found problems, breaking compatibility, etc.)

No.

Is it ready for merging, or does it need work?

Ready

I hope i've not misunderstood something.
In case you are not interested, feel also free to close this PR :)
Cheers!

Hi @vaxerski, thank you for approving these changes.
I opened a PR with same name for wiki repo.
Edited description above to include a link to that PR

thanks!


feat: enhance getting realsense camera serial number into a script and makefile target

PR Checklist

[x] Added label to the Pull Request for easier discoverability and search
[x] Commit Message meets guidelines as indicated in the URL https://github.com/intel-retail/automated-self-checkout/blob/main/CONTRIBUTING.md
[x] Every commit is a single defect fix and does not mix feature addition or changes
[ ] Unit Tests have been added for new changes
[x] Updated Documentation as relevant to the changes
[ ] All commented code has been removed
[ ] If you've added a dependency, you've ensured license is compatible with repository license and clearly outlined the added dependency.
[ ] PR change contains code related to security
[ ] PR introduces changes that breaks compatibility with other modules (If YES, please provide details below)

What are you changing?

Issue this PR will close
close: #306
Anything the reviewer should know when reviewing this PR?
Test Instructions if applicable

git clone this PR
plug in your realsense camera into system
run build: make build-dlstreamer-realsense
run get serial number makefile target: make get-realsense-serial-num

If the there are associated PRs in other repositories, please link them here (i.e. intel-retail/automated-self-checkout )

does reading realsense serialnumber need to relate to dlstream? this is just a consideration that we may remove dlstreamer in the future.

that is a good question, using the dlstreamer docker image is the only way i know available now in this repo.  please suggest another way if you can find. thanks.

rebased to merge updates from main branch, and resolved the conflicts


Typo

MetodRequest  in Note under #13 Create a simulated device

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

ID: b31d87b5-2444-711a-bcd4-7f7af9a0d2fe
Version Independent ID: eddd2a75-f977-46df-b419-c1760a87bff1
Content: Device firmware update with Azure IoT Hub (.NET/.NET)
Content Source: articles/iot-hub/iot-hub-csharp-csharp-firmware-update.md
Service: iot-hub
Product: unspecified
GitHub Login: @dominicbetts
Microsoft Alias: dobett

@HowardEdidin thanks for the catch. We are actively investigating and will resolve shortly.


@opentelemetry/instrumentation _onRequire does not receive the actual import name

What happened?
I've been debugging for days why tracing does not work as expected.
I've realized that some auto instrumentations are never actually applied.
After a lot of digging, I've landed on issue being that the module name is never matched in the _onRequire function.
https://github.com/open-telemetry/opentelemetry-js/blob/43e598e7c1a603129c6e92ee983c6bb82b50b9a6/experimental/packages/opentelemetry-instrumentation/src/platform/node/instrumentation.ts#L173-L219
If I add a console.log here:
console.log('>>> require', module.name, name);

The only things printed are:
>>> require fastify fastify/lib/logger.js
>>> require fastify fastify/lib/schemas.js
>>> require fastify fastify/lib/error-serializer.js
>>> require fastify fastify/lib/error-handler.js
>>> require fastify fastify/lib/reply.js
>>> require fastify fastify/lib/request.js
>>> require fastify fastify/lib/context.js
>>> require fastify fastify/lib/httpMethods.js
>>> require fastify fastify/lib/decorate.js
>>> require fastify fastify/lib/contentTypeParser.js
>>> require fastify fastify/lib/schema-controller.js
>>> require fastify fastify/lib/pluginUtils.js
>>> require fastify fastify/lib/reqIdGenFactory.js
>>> require fastify fastify/lib/headRoute.js
>>> require fastify fastify/lib/route.js
>>> require fastify fastify/lib/fourOhFour.js
>>> require fastify fastify/lib/configValidator.js
>>> require fastify fastify/lib/initialConfigValidation.js
>>> require fastify fastify/lib/pluginOverride.js
>>> require fastify fastify/lib/noop-set.js

Meanwhile, in our codebase we import it as:
import createFastify, { type FastifyRequest } from 'fastify';

It appears that the require path gets translated somehow before it can be matched.
This means that getNodeAutoInstrumentations never applies the Fastify instrumentation.
Interestingly, not all imports are affected...
graphql ✅
...
>>> require graphql graphql/utilities/index.js
>>> require graphql graphql

@grpc/grpc-js ✅
>>> require @grpc/grpc-js @grpc/grpc-js/package.json
>>> require @grpc/grpc-js @grpc/grpc-js

but these are the exceptions, most never resolve to the actual module name. ioredis is another example:
>>> require ioredis ioredis/built/SubscriptionSet.js
>>> require ioredis ioredis/built/DataHandler.js
>>> require ioredis ioredis/built/redis/event_handler.js
>>> require ioredis ioredis/built/redis/RedisOptions.js
>>> require ioredis ioredis/built/Redis.js

I am able to replicate this with as little code as:
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';

(async () => {
  getNodeAutoInstrumentations();

  await import('fastify');
})();

$ node src/bin/server.mjs
>>> require fastify fastify/package.json
>>> require fastify fastify/lib/symbols.js
>>> require fastify fastify/lib/warnings.js
>>> require fastify fastify/lib/errors.js
>>> require fastify fastify/lib/hooks.js
>>> require fastify fastify/lib/server.js
>>> require fastify fastify/lib/validation.js
>>> require fastify fastify/lib/wrapThenable.js
>>> require fastify fastify/lib/handleRequest.js
>>> require pino pino/package.json
>>> require pino pino/lib/caller.js
>>> require pino pino/lib/symbols.js
>>> require pino pino/lib/redaction.js
>>> require pino pino/lib/time.js
>>> require pino pino/lib/transport.js
>>> require pino pino/lib/tools.js
>>> require pino pino/lib/levels.js
>>> require pino pino/lib/meta.js
>>> require pino pino/lib/proto.js
>>> require pino pino/lib/multistream.js
>>> require pino pino ✅
>>> require fastify fastify/lib/logger.js
>>> require fastify fastify/lib/schemas.js
>>> require fastify fastify/lib/error-serializer.js
>>> require fastify fastify/lib/error-handler.js
>>> require fastify fastify/lib/reply.js
>>> require fastify fastify/lib/request.js
>>> require fastify fastify/lib/context.js
>>> require fastify fastify/lib/httpMethods.js
>>> require fastify fastify/lib/decorate.js
>>> require fastify fastify/lib/contentTypeParser.js
>>> require fastify fastify/lib/schema-controller.js
>>> require fastify fastify/lib/pluginUtils.js
>>> require fastify fastify/lib/reqIdGenFactory.js
>>> require fastify fastify/lib/headRoute.js
>>> require fastify fastify/lib/route.js
>>> require fastify fastify/lib/fourOhFour.js
>>> require fastify fastify/lib/configValidator.js
>>> require fastify fastify/lib/initialConfigValidation.js
>>> require fastify fastify/lib/pluginOverride.js
>>> require fastify fastify/lib/noop-set.js

If I update the file server.cjs, then it works as expected:
$ const { getNodeAutoInstrumentations } = require('@opentelemetry/auto-instrumentations-node');

(async () => {
  getNodeAutoInstrumentations();

  require('fastify');
})();

$ at 16:33:26 ❯ node server.cjs
name http http
name fastify fastify/lib/symbols.js
name fastify fastify/package.json
name https https
name dns dns
name fastify fastify/lib/warnings.js
name fastify fastify/lib/errors.js
name fastify fastify/lib/hooks.js
name fastify fastify/lib/server.js
name fastify fastify/lib/validation.js
name fastify fastify/lib/wrapThenable.js
name fastify fastify/lib/handleRequest.js
name pino pino/lib/caller.js
name pino pino/package.json
name pino pino/lib/symbols.js
name pino pino/lib/redaction.js
name pino pino/lib/time.js
name fs fs
name pino pino/lib/transport.js
name pino pino/lib/tools.js
name pino pino/lib/levels.js
name pino pino/lib/meta.js
name pino pino/lib/proto.js
name pino pino/lib/multistream.js
name pino pino
name fastify fastify/lib/logger.js
name fastify fastify/lib/schemas.js
name fastify fastify/lib/error-serializer.js
name fastify fastify/lib/error-handler.js
name fastify fastify/lib/reply.js
name fastify fastify/lib/request.js
name fastify fastify/lib/context.js
name fastify fastify/lib/httpMethods.js
name fastify fastify/lib/decorate.js
name fastify fastify/lib/contentTypeParser.js
name fastify fastify/lib/schema-controller.js
name fastify fastify/lib/pluginUtils.js
name fastify fastify/lib/reqIdGenFactory.js
name fastify fastify/lib/headRoute.js
name fastify fastify/lib/route.js
name fastify fastify/lib/fourOhFour.js
name fastify fastify/lib/configValidator.js
name fastify fastify/lib/initialConfigValidation.js
name fastify fastify/lib/pluginOverride.js
name fastify fastify/lib/noop-set.js
name fastify fastify

Obviously, that's not an option.

if you use node in ESM mode it's needed to specify a loader, see here.
This is still experimental and likely dependent on the node.js version so no guarantee that it works.
But not using this ESM hook in an ESM app is for sure a reason that it can't work.

Unfortunately, the underlying library that supports it does not appear to quite work
https://github.com/DataDog/import-in-the-middle/issues/58

The IITM bug appears to be fixed by now :bulb:

@gajus there have been some changes to IITM since this issue was opened. Can you confirm whether this is still an issue?

@gajus there have been some changes to IITM since this issue was opened. Can you confirm whether this is still an issue?

We abandoned the efforts of adopting opentelemetry for now, so don't have a place to replicate this.


machine wide teams installer and O365 teams

I see these are both mentioned here, but it's still a bit vague - if you had machine wide installer, then office updated to include Teams.  Do you then need to deploy an uninstall of the teams wide installer or are these both part of the office install now or are they both separate from each other as well as being separate to office? in applications and features, I have Microsoft Office 365 ProPlus v18.2002.1101.0, Microsoft Teams v1.3 and Teams Machine-wide installer v1.2, but if Teams is now part of office, shouldn't I only see Microsoft Office, not either of the teams entries?

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

ID: 7936ca5e-c658-4956-b174-99eaf1eb67d4
Version Independent ID: 9ecc0b61-a941-f5e1-96c3-d32fae59eacd
Content: Deploy Microsoft Teams with Office 365 ProPlus
Content Source: DeployOffice/teams-install.md
Service: o365-proplus-itpro
GitHub Login: @DHB-MSFT
Microsoft Alias: danbrown

This article states:
"If you're letting your users install Office 365 ProPlus for themselves from the Office 365 portal, you can't exclude Teams from being included as part of the installation, unless you use Group Policy."
But that information is incorrect. The Office 365 Portal still includes Skype for Business instead of Teams in the self-install page of My Account: https://techcommunity.microsoft.com/t5/office-365-proplus/office-proplus-self-install-does-not-include-teams/td-p/1292177

@acmatthews  -- Does "Teams Machine-Wide Installer" appear when you go to Add/Remove Programs?  Also, Teams doesn't actually get installed until after the user logs out and back in to Windows.

@PaulKlerkx -- As part of an Office 365 ProPlus install/update, the Teams Machine-Wide Installer gets installed. That then installs Teams the next time the user logs into Windows. So it's expected for you to see those separate entries for Teams Machine-Wide Installer and for Teams, along with the entry for Office 365 ProPlus. Hope that explanation helps.

Thanks for the explanation @DHB-MSFT . What a terrible end-user experience though! The Office 365 Portal where the user goes to self-install still shows a Skype logo and makes no mention of Teams.

@acmatthews -- thanks for the feedback on the Teams icon not appearing on the self-install page and it causing user confusion. We've sent this feedback on to the product team and someone has been assigned to add the Teams icon to that UI surface.


access to yjaf-gateway-proxy repo

Use this issue template if you do not feel comfortable raising a PR with the required changes to files in the terraform/ directory.
Please supply all the requested information, so that your request can be processed as quickly as possible.
Which MoJ repository are you requesting access to (e.g. money-to-prisoners)?
yjaf-gateway-proxy
What is the GitHub username of the person who needs access?
gregi2n
ttipler
InFlamesForever
What is their full name?
Greg Whiting
Thomas Tipler
Richard Came
What is their email address?
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>What company/organisation do they belong to (e.g. "MadeTech", "Department for Education")?
NEC Software Solutions
What level of access should they have?
Admin for Greg whiting and Thomas Tipler
Read/write for Richard Came
Why is this access being requested?
Devops guys need access to make app/infra changes
YJAF developer. Needing access to the work on BackEnd coding Tasks
Which MoJ team/person is responsible for this request?
Thomas Tipler -<EMAIL_ADDRESS>- Devops for northgate
Review date
2022-12-31

Hi Thomas
I have merged a PR for you, once the below action has finished, access should be granted.
PR: #370
Action: https://github.com/ministryofjustice/github-collaborators/actions/runs/1503237089
Sorry for the delayed response,
Let me know if there are any issues,
Ben


Added a possibility to set timeouts

This PR looks great!  Thanks!  Noticed 1 unused function in CordovaHttpPlugin.java.  Can you delete that?
My only other concern is what does a timeout of 0 mean?  If it means anything other than use default timeout values then it should not be the default.
Would love if this supported iOS too, but will still accept it for just Android.

Well 0 means 'default socket values', but maybe the description is misleading - it's supposed to say what the default Android ones are.
So you would like to set plugins defaults to other values than the Java defaults?

No, I want it to be the default Java timeouts.  Does Java really wait forever by default?

Yes, it waits forever.

Do you plan to merge this request?

+1
I too would like this merged. It's unfortunate that it wasn't done sooner, as I've submitted a pull request to support TLSv1.1 and 1.2 that may not be able to be automatically merged after this one because of the delay on this pull.

Any news on this pull request? I'd love to use this feature.

Definitely need such a function to have a default timeout, and also could allow us to specify a timeout manually.


Feature

Added phpcs.
There are 3 general ways to use phpcs (from PHP_CodeSniffer):

if downloaded .phar file, then run php phpcs.phar (phpcs.phar.bat)
if used PEAR, then it avialable from command line with phpcs command (phpcs.bat)
if installed from Composer, run PHP_CodeSniffer from the vendor bin directory (phpcs-composer.bat)

Thanks for the contribution!


Updated some of the documentation for seminar today.

I know you said you turned off notifications for forks so here is a pull request.
I added LaTeX functionality, changed the html template and table of contents to see submodules, and added docstrings with more descriptions and examples.
Not sure if this is actually formatted how you would like...
Sphinx threw an error when I added ddcstrings to init.py, Removing the docstrings for call should fix that.

Not sure why the checks failed.


Fix PHPDocs and correct invalid throw exceptions

I'm in the process of getting https://github.com/phan/phan running on this code base, this PR already fixes most of the errors. There are some left that I'll tackle later on. It's probably best to go through every commit on its own.
Once all issues are fixed we can then run phan as a CI step on Travis :)
In addition, it also fixes a real bug in 8824c09a1699434d0dac726a8b291d11f0fd35f6. IllegalArgumentException doesn't exist in PHP while InvalidArgumentException does:
lib/Saml2/Response.php:429 PhanUndeclaredClassMethod Call to method __construct from undeclared class \IllegalArgumentException

The remaining issues with very lax Phan settings:
<?php

return [
	// A list of directories that should be parsed for class and
	// method information. After excluding the directories
	// defined in exclude_analysis_directory_list, the remaining
	// files will be statically analyzed for errors.
	//
	// Thus, both first-party and third-party code being used by
	// your application should be included in this list.
	'directory_list' => [
		'extlib/',
		'vendor/',
		'lib/',
	],

	// A file list that defines files that will be excluded
	// from parsing and analysis and will not be read at all.
	//
	// This is useful for excluding hopelessly unanalyzable
	// files that can't be removed for whatever reason.
	'exclude_file_list' => [],

	// A directory list that defines files that will be excluded
	// from static analysis, but whose class and method
	// information should be included.
	//
	// Generally, you'll want to include the directories for
	// third-party code (such as "vendor/") in this list.
	//
	// n.b.: If you'd like to parse but not analyze 3rd
	//       party code, directories containing that code
	//       should be added to the `directory_list` as
	//       to `exclude_analysis_directory_list`.
	'exclude_analysis_directory_list' => [
		'extlib/',
		'vendor/',
	],

	// The number of processes to fork off during the analysis
	// phase.
	'processes' => 4,
];

root@nextcloud-dev:/media/psf/php-saml# vendor/bin/phan
Warning: Phan is around five times as slow when xdebug is enabled (xdebug only makes sense when debugging Phan itself)
(The above warnings about slow PHP settings can be disabled by setting 'skip_slow_php_options_warning' to true in .phan/config.php)
PHP Warning:  declare(encoding=...) ignored because Zend multibyte feature is turned off by settings in vendor/pdepend/pdepend/src/test/resources/files/Code/ASTDeclareStatement/testDeclareStatementWithMultipleParameter.php on line 4
PHP Stack trace:
PHP   1. {main}() /media/psf/php-saml/vendor/phan/phan/phan:0
PHP   2. require_once() /media/psf/php-saml/vendor/phan/phan/phan:2
PHP   3. Phan\Phan::analyzeFileList() /media/psf/php-saml/vendor/phan/phan/src/phan.php:71
PHP   4. Phan\Analysis::parseFile() /media/psf/php-saml/vendor/phan/phan/src/Phan/Phan.php:129
PHP   5. Phan\AST\Parser::parseCode() /media/psf/php-saml/vendor/phan/phan/src/Phan/Analysis.php:76
PHP   6. ast\parse_code() /media/psf/php-saml/vendor/phan/phan/src/Phan/AST/Parser.php:31
lib/Saml2/Auth.php:489 PhanTypeMismatchArgument Argument 3 (nameId) is ?string but \OneLogin_Saml2_LogoutRequest::__construct() takes null|string defined at lib/Saml2/LogoutRequest.php:43
lib/Saml2/Auth.php:489 PhanTypeMismatchArgument Argument 5 (nameIdFormat) is ?string but \OneLogin_Saml2_LogoutRequest::__construct() takes null|string defined at lib/Saml2/LogoutRequest.php:43
lib/Saml2/Auth.php:693 PhanTypeMismatchReturn Returning type ?string but getLastResponseXML() is declared to return null|string
lib/Saml2/IdPMetadataParser.php:110 PhanUndeclaredMethod Call to undeclared method \DOMNode::hasAttribute
lib/Saml2/IdPMetadataParser.php:111 PhanUndeclaredMethod Call to undeclared method \DOMNode::getAttribute
lib/Saml2/LogoutRequest.php:263 PhanTypeMismatchReturn Returning type ?string but getIssuer() is declared to return null|string
lib/Saml2/LogoutRequest.php:300 PhanTypeMismatchProperty Assigning null to property but \OneLogin_Saml2_LogoutRequest::_error is string
lib/Saml2/LogoutResponse.php:84 PhanTypeMismatchReturn Returning type ?string but getIssuer() is declared to return null|string
lib/Saml2/Response.php:102 PhanTypeMismatchProperty Assigning null to property but \OneLogin_Saml2_Response::_error is string
lib/Saml2/Response.php:420 PhanTypeMismatchReturn Returning type ?string but getId() is declared to return null|string
lib/Saml2/Response.php:438 PhanTypeMismatchReturn Returning type ?string but getAssertionId() is declared to return null|string
lib/Saml2/Response.php:635 PhanTypeMismatchReturn Returning type null but getNameId() is declared to return string
lib/Saml2/Response.php:650 PhanTypeMismatchReturn Returning type null but getNameIdFormat() is declared to return string
lib/Saml2/Response.php:665 PhanTypeMismatchReturn Returning type null but getNameIdNameQualifier() is declared to return string
lib/Saml2/Response.php:681 PhanTypeMismatchReturn Returning type ?int but getSessionNotOnOrAfter() is declared to return int|null
lib/Saml2/Response.php:700 PhanTypeMismatchReturn Returning type ?string but getSessionIndex() is declared to return null|string
lib/Saml2/Response.php:1078 PhanUndeclaredMethod Call to undeclared method \DOMNode::hasAttributeNS
lib/Saml2/Response.php:1079 PhanUndeclaredMethod Call to undeclared method \DOMNode::hasAttributeNS
lib/Saml2/Response.php:1081 PhanUndeclaredProperty Reference to undeclared property \DOMNode->tagName
lib/Saml2/Response.php:1083 PhanUndeclaredProperty Reference to undeclared property \DOMNode->tagName
lib/Saml2/Settings.php:166 PhanUndeclaredConstant Reference to undeclared constant \ONELOGIN_CUSTOMPATH
lib/Saml2/Settings.php:167 PhanUndeclaredConstant Reference to undeclared constant \ONELOGIN_CUSTOMPATH
lib/Saml2/Settings.php:312 PhanUndeclaredVariable Variable $advancedSettings is undeclared
lib/Saml2/Settings.php:312 PhanUndeclaredVariable Variable $settings is undeclared
lib/Saml2/Settings.php:916 PhanTypeMismatchArgument Argument 1 (cacheDuration) is ?string but \OneLogin_Saml2_Utils::getExpireTime() takes string defined at lib/Saml2/Utils.php:805
lib/Saml2/Settings.php:916 PhanTypeMismatchArgument Argument 2 (validUntil) is ?int but \OneLogin_Saml2_Utils::getExpireTime() takes string defined at lib/Saml2/Utils.php:805
lib/Saml2/Utils.php:92 PhanTypeMismatchReturn Returning type false but loadXML() is declared to return \DOMDocument
lib/Saml2/Utils.php:824 PhanTypeMismatchReturn Returning type ?int but getExpireTime() is declared to return int|null
lib/Saml2/Utils.php:1115 PhanTypeMismatchArgumentInternal Argument 1 (key) is false|null|string but \openssl_pkey_get_details() takes resource
lib/Saml2/Utils.php:1184 PhanTypeMismatchArgumentInternal Argument 1 (key) is false|null|string but \openssl_pkey_get_details() takes resource
lib/Saml2/Utils.php:1247 PhanUndeclaredProperty Reference to undeclared property \DOMNode->tagName
lib/Saml2/Utils.php:1340 PhanTypeMismatchArgument Argument 1 (x509cert) is \The but \OneLogin_Saml2_Utils::calculateX509Fingerprint() takes string defined at lib/Saml2/Utils.php:891

I'd be happy to tackle them later on.

similar should be also applied on 3.0.0 branch

@pitbulk I'll finish this for master and then apply cherry-picks towards the 3.0.0 branch.


docs: mark deprecated

This GitHub Action is considdered deprecated.
Instead, you may use one the following tools in your github workflow:

for NPM projects: @yclonedx/cyclonedx-npm- name: Create SBOM step
  # see for usage: https://www.npmjs.com/package/%40cyclonedx/cyclonedx-npm
  run: npx @cyclonedx/cyclonedx-npm@^1 # your options here

for YARN projects: @cyclonedx/yarn-plugin-cyclonedx- name: Create SBOM step
  # see for usage: https://www.npmjs.com/package/%40cyclonedx/yarn-plugin-cyclonedx
  run: yarn dlx -q @cyclonedx/yarn-plugin-cyclonedx@^1 # your options here

for PNPM projects: to be announced

For other Node.js related CycloneDX SBOM generators, see also: https://github.com/CycloneDX/cyclonedx-node-module/blob/master/README.md

Is there a reason why this is being deprecated rather than being enhanced to support yarn? https://github.com/marketplace/actions/cyclonedx-node-js-generate-sbom is currently listed in the GitHub Marketplace along with several other CycloneDX GitHub Actions.

Is there a reason why this is being deprecated rather than being enhanced to support yarn?

this tool already knows rudimentary yarn.

https://github.com/marketplace/actions/cyclonedx-node-js-generate-sbom is currently listed in the GitHub Marketplace along with several other CycloneDX GitHub Actions.

This is not planned to change. This action will stay.

The actual CLI tools evolved a lot. They are properly documented, and are easy to setup and easy to use.
Nowadays, is there any use of this GitHub action instead of directly using the appropriate CLI tools?

Both alternatives are a one-liner in GitHub workflows.
As a user: calling the actual CLI tools gives all the control to the end user
As a maintainer: modernizing this action would create a wrapper of the actual CLI, meaning to always chase the evolution of the actual tool. What would be the benefit of this?

depreating this GH-action would close/obsolete #16 and #6


Make the name and duration in minutes of a Stretch customisable

The default name will still be Stretch, and the default duration will be 15 minutes. Allowing customisation within sensible limits for duration will allow use with other systems. For example:

OSR games that use 10-minute dungeon turns but still break the day into 4 shifts of 6 hours each.

I already have a module setting for the amount of time that the small time skip button will adjust. It makes sense that this is linked to the duration of a game turn. This setting will be renamed, or at least the hint is changed to make the use clear. The value will be used not just for the time skip, but also in the calculations for the number of segments in the game turn clock - one click of the small skip button should always fill one clock segment. This value determines other derivative values - the number of game turns in an hour, a shift, and a day. Therefore, the choices must be fixed to values that evenly divide these larger time divisions:

5 minutes
10 minutes
15 minutes (default), 4 turns to an hour, 24 in a 6 hour shift.
20 minutes
30 minutes


No result (NO_CONTENT_HERE)

Hello,
After installing the new version (v0.10.40), I see many NO_CONTENT_HERE results with the pdf files, which have contents (about 10% of the documents returns NO_CONTENT_HERE).
The sampled documents are here: pdf1, pdf2, pdf3, pdf4.
This is the code that I used:
parser = LlamaParse(
    api_key=LLAMA_CLOUD_API_KEY,  # can also be set in your env as LLAMA_CLOUD_API_KEY
    result_type="markdown",  # "markdown" and "text" are available
    num_workers=1, # if multiple files passed, split in `num_workers` API calls
    verbose=True,
    language="en"
)

documents = parser.load_data(inputs) # inputs are the documents stored in my local storage

I see the same with long files, e.g.,  https://data.consilium.europa.eu/doc/document/ST-5662-2024-INIT/en/pdf.
But when I extract only a few pages and submit those, then it parses fine.

Thanks, Solanpaa. It makes sense for you case. However, because the above pdf files are 1-page document, I can't reduce the amount of pages.

From yesterday, I could get results correctly (maybe version update?). I close this issue.


Lr/script manual labeling

This PR aims at adding a script to label manually the intervertebral disc in sct_testing large.
This uses the sct_label_utils function in a shell script.
Changes includes:

Addition of script files
Addition of SOP
Addition of the list of subjects to process for this task.

@lrouhier after giving it some thoughts (and discussing with Charley), we thought it might be better to have such scripts under neuropoly/internal-tools repos, given that this is internal to the lab (and given the dependency with SCT). What do you think?

@jcohenadad Yes I think This could be useful. Does the repo already exist because I didn't see it?

@lrouhier just added you

moved to https://github.com/sct-pipeline/manual-labeling


Quick check for git commit hook

Context
Previously, we always notice checkstyle and CodeNarc errors only when pushed to CI. This has a negative impact on developer productivity. This PR adds a quickCheck tasks which runs checkstyle/CodeNarc/ktlin check only on changed files since last commit.
For a warmed-up daemon, it takes 4~5s to check a changed file:
$ time ./gradlew quickCheck
> Task :quickCheck FAILED
CodeNarc Report - 10 Jan 2020, 11:18:45

Summary: TotalFiles=6 FilesWithViolations=1 P1=0 P2=0 P3=1

File: CheckstylePluginIntegrationTest.groovy
    Violation: Rule=UnusedImport P=3 Line=18 Msg=[The [java.util.concurrent.ConcurrentMap] import is never referenced] Src=[import java.util.concurrent.ConcurrentMap]

[CodeNarc (http://www.codenarc.org) v1.5]
CodeNarc completed: (p1=0; p2=0; p3=1) 891ms
ERROR: Number of p3 violations greater than maximum of 0

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':quickCheck'.
> Process 'command '/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1

BUILD FAILED in 4s
1 actionable task: 1 executed
./gradlew --dependency-verification off quickCheck  1.57s user 0.22s system 33% cpu 5.318 total

$ time ./gradlew quickCheck
> Task :quickCheck FAILED
Starting audit...
[ERROR] /Users/zhb/Projects/gradle/subprojects/core-api/src/main/java/org/gradle/api/Project.java:60:8: Unused import - java.util.concurrent.ConcurrentMap. [UnusedImports]
Audit done.
Checkstyle ends with 1 errors.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':quickCheck'.
> Process 'command '/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1

BUILD FAILED in 3s
1 actionable task: 1 executed
./gradlew --dependency-verification off quickCheck  1.48s user 0.20s system 39% cpu 4.296 total

This commit adds a quickCheck task for gradle which only checks changed
files since last commit. It usually takes 5s for a warmed-up daemon.

@melix No, it's more convenient. For exec tasks I think the most expensive operation is forking a process, so using a real task or not doesn't matter, right?

@jjohannes I can sure make follow up issue to make the "CodeNarc" and "Checkstyle" tasks incremental, but in this case, I think git changed files might be more suitable since that's how standard git commit hook works.
I was trying incremental tasks at first, but that means UP-TO-DATE check for all java/groovy files to find out which files are changed, right? I'm not sure that would be faster. @wolfs What do you think here?

@blindpirate VFS retention (aka file watching to detect changes) already works and we are going to make things faster there as well. So the up-to-date checks for the sources don't need to check all the files, only the directories that were changed.   So I think this can become very fast and we wouldn't need to rely on git for change detection.

Can you create follow up issue to make the "CodeNarc" and "Checkstyle" tasks incremental?

Just in case, my experience shows that adding cacheFile property to Checkstyle configuration significantly improves task performance: https://github.com/apache/jmeter/commit/447e4ce3d44a4fce2d4948ed8777ff2fae5ebddc
Have you tried that?


[SYSTEMML-1354] Move minimum recommended Spark version to pom.xml

Move MLContext minimum recommended Spark version to pom.xml to simplify project
maintenance. For SystemML jar, put value in manifest and read from there.
If no jar file present (development environment), read value from pom.xml

@dusenberrymw Sounds good. I'll make the update. If we find that a  minimum.recommended.spark.version is useful in the future (for instance, it could be 2.0.2 when spark.version is 2.1.0), it is easy to modify the pom.xml to support it.

Thank you for the feedback @dusenberrymw. I will merge the updates.


Счетчик Матрица

Good afternoon!
Will this component work with "Матрица" counter ?
Can I have some details on the setup ?
Thank you in advance.

Try to connect his protocol one should work

Hi,
Please note that this integration is WIP and is not yet ready for the public use, hence no documentation available.
This integration was initially written for a friend and is currently confirmed working only with Incotex and Iskraemeco energy meters, although it should work with any other meter that follows DLMS/COSEM standard.
It is tested with TTL to IR probe https://nl.aliexpress.com/item/1005004918762123.html connected to ESP32 running esphome with esphome streaming server. Any other connection method is untested and probably will not work correctly.
There's also some licensing issue with underlying library being licensed under BSL.
To sum up all of the above points, please consider waiting until the project reaches at least Experimental stability state once all the problems has been solved.
Thank you!
--
Best Regards,
Denis Paavilainen


Fix narrow generation font problem

The previous changes accidentally required
fonts that may not be available when generating
the narrow form.
This commit modifies the generation process so that
we always use a special style file, either "wide.sty"
(normal case) or "narrow.sty" (narrow case).
That way we can force the system so that we
only run \usepackage{upquote} in wide mode
(this causes straight quotes in verbatim environments).
The problem is that trying to do this in narrow mode
requires fonts we may not have.
Signed-off-by: David A. Wheeler<EMAIL_ADDRESS>

This fixes a problem in my environment, and probably others, so that we don't depend on fonts we may not have.
@nmegill - hope you'll okay this one, or I can't locally regenerate some files :-).

The build failed, I have no idea why.

Erg. I have no idea why this fails.  I'm abandoning this branch, at least for now.


Problem overriding Castable's decode()

Hej
Goal
To additionally make Bool, Int and Double decodable from String values.
Best guess
extension Bool {
    public static func decode(j: AnyObject) throws -> Bool {
        switch j {
        case is Bool:
            return j as! Bool
        case is String:
            switch j as! String {
            case "true": return true
            case "false": return false
            default: throw DecodingError.UnexpectedValue(value: j, info: DecodingError.Info(object: j))
            }
        default:
            let info = DecodingError.Info(object: j)
            throw DecodingError.TypeMismatch(type: j.dynamicType, expectedType: self, info: info)
        }
    }
}

Problem
This implementation is not called when doing the usual, e.g.:
struct MyDecodableType : Decodable {
    let myBool: Bool

    public static func decode(j: AnyObject) throws -> MyDecodableType {
        return try MyDecodableType(myBool: j => "myBool")
    }
}

instead, it only works when doing this:
return try MyDecodableType(myBool: try parse(json, path: ["myBool"], decode: Bool.decode))

Using this everywhere there's a Bool, Int or Double isn't an option.
T should resolve to Bool inside of =>, but T.decode always seems to resolve to Castable's implementation...
Dynamic dispatch seems to follow some simple rules when it comes to instances (https://medium.com/ios-os-x-development/swift-protocol-extension-method-dispatch-6a6bf270ba94#.1wkt1dbt7), but what is going on here?

Hej, sorry, have been busy with school, haven't read up on any method dispatch and cannot directly address the problem. However I would instinctually advocate the use of explicit conversion in some form, perhaps:
func toBool(j: AnyObject) throws -> Bool {}
MyDecodableType(myBool: toBool(j => "myBool"))
// or even
func fromString<T: FromStringConvirtableOrSomething>(j: AnyObject) throws -> T {}

For a moment I thought about implementing your own BooleanType, but if it also concerns number types it would probably be indescribably cumbersome.

Has this issue been solved?
/// Allows overriding default `decode` function from your app.
///
/// You likely don't want to conform to this yourself.
public protocol DynamicDecodable {
    associatedtype DecodedType

    /// A closure describing how this type should be decoded
    ///
    /// Types also conforming to `Decodable` call this closure
    /// from their `decode` function.
    ///
    /// - note: This is intended as a set-once thing.
    static var decoder: (Any) throws -> DecodedType {get set}
}

Yeah, should be the case


Adding the email receive functionality in the contact us section

Describe your issue
Email is not sent to owner of website from contact us
Steps to reproduce
I want to implement it by Email js...to get the api key owner required to register in email js
What was the expected result?
Email go to the owner of the code or website..from contact us section
Put here any screenshots or videos (optional)
No response
Would you like to work on this issue?
Yes

Describe your issue
Email is not sent to owner of website from contact us
Steps to reproduce
I want to implement it by Email js...to get the api key owner required to register in email js
What was the expected result?
Email go to the owner of the code or website..from contact us section
Put here any screenshots or videos (optional)
No response
Would you like to work on this issue?
Yes

Assigned you, 3 days for this, go ahead❕


Additional properties (aka map) don't work and, moreover, is not parsed correctly

I wanted to create one of the fundamental types map[string]string, but it does not work:
Parameters:
      type: map
      additionalProperties:
          type: string

First of all, I guess it's not correct to define it like this:
AdditionalProperties  map[string]*Schema            `json:"additionalProperties"`

it should be:
AdditionalProperties *Schema            `json:"additionalProperties"`

And also you need to define the map in the scheme.tmpl

Hello @nuttert !
Good catch ! Must be a miss-reading on my side.
I'm currently in a conference, so I may not have the time to fix it right away, but I'll do it as soon as possible.
Thanks for taking the time to read the cause and fill in an issue. It's really appreciated ! If you have any other issues/comments, please do not hesitate.

@nuttert, I'm working on a fix. However, it seems that the "map" type doesn't exists: https://json-schema.org/understanding-json-schema/reference/type
If you try a Json schema validator with the example you provided, it complains about the type. However, if you change it to type: object, it does work : https://www.jsonschemavalidator.net/s/XS58CpjF
So it should be changed to :
Parameters:
      type: object
      additionalProperties:
          type: string

I'll work on a fix based on that :)

@nuttert, should be good now ! feel free to reopen if there is any problem :)


get-events.ps1 throws error at Invoke-WebRequest

What happened:
When running this in both PS 5.1 and PS 7.0.1, replacing with my Rubrik server, credentials, etc. I get the following:
Invoke-WebRequest: C:\Users\username\Documents\PowerShell\Modules\Rubrik\5.0.1\Private\Invoke-RubrikWebRequest.ps1:18:19
Line |
18 |  …   $result = Invoke-WebRequest -UseBasicParsing -SkipCertificateCheck  …
|                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| The server either does not recognize the request method, or it lacks the ability to fulfill the request.
What you expected to happen:
I was hoping to get a list of active events/jobs
How to reproduce it (as minimally and precisely as possible):
Install Rubrik Module.
Adjust parameters, and run the script from the repo
Get error
Anything else we need to know?:
I appreciate the work on this script. It looks like it will be really helpful.

@paschott
yes! I too get d same error as below screenshot for reference

any lead on how it can be resolved?

Same here


v0.4.3

Current dependencies on/for this PR:

main

PR #384   👈

This comment was auto-generated by Graphite.


Error thrown in acir_proofs_init_proving_key

Aim
Hey everyone 👋🏼
Trying to build RLN in Noir (https://github.com/Rate-Limiting-Nullifier/noir-rln).
Expected Behavior
Expected to compile the circuit.
Bug
Whenever I try to compile (nargo compile rln) the circuit (or run "nargo prove") - i got this error:
Error: Trying to call acir_proofs_init_proving_key resulted in an error

Caused by:
   0: RuntimeError: unreachable
   0:     at <unnamed> (<module>[865]:0x2ababd)
   1: unreachable

Location:
    crates/nargo_cli/src/cli/mod.rs:72:5

To Reproduce
No response
Installation Method
Binary
Nargo Version
nargo 0.6.0 (git version hash:<PHONE_NUMBER>a9e3e46c6d8c3169ad5d25971d4282, is dirty: false)
Additional Context
No response
Would you like to submit a PR for this Issue?
No
Support Needs
No response

Hi @curryrasul, can you push the code you're trying to compile to your repository? It would be useful to see how it runs in CI.

Hi @TomAFrench , it's in the repo.
nargo compile rln

and
nargo prove

both give me this error.
Thanks for attention!

Ah, apologies. I saw that your CI was passing so assumed that the erroring code wasn't pushed.
I've cloned and can reproduce this.

Thank you. CI is passing, because there's no nargo compile. nargo check works well.

@TomAFrench or @kobyhallx is this still an issue?

@curryrasul I'm going to close this issue as it compiles correctly on the current nightly release of nargo while generating the proving/verification keys.
I can't check nargo prove as I don't have a set of inputs to test with but based on the wasm function which was erroring it should just be the compile command which is relevant.

Hi! I'm running into this same issue when trying to prove the circuits in this Merkle Patricia Trie repo. I just copy the test cases in testes/depth_8_state_proof and testes/depth_8_storage_root, run nargo prove and get:
Error: Trying to call acir_proofs_init_proving_key resulted in an error
Caused by:
   0: RuntimeError: unreachable
   1: unreachable
Location:
    crates/nargo_cli/src/cli/mod.rs:73:5

I'm using the 0.9.0 nightly version: nargo 0.9.0 (git version hash: 90c5d182b578b6d512e4b5dc2c07810e6815f31e, is dirty: false)
Would appreciate any help. Thanks!


Hboxing plots

The following does not work (changing the -42 to 0 or running the code in the repl makes it work more or less).
Displays:

Should display (up to minor margin errors):

using Makie
using AbstractPlotting: hbox
using Random
function p()
    Random.seed!(123)
    t =  range(-122277.93103448274, stop=-14798.035304081845, length=29542)
    x = -42 .- randn(length(t))
    global sc1 = Scene(resolution = (2000, 300))
    scatter!(sc1, t, x, color=:black,  markersize=sqrt(length(t)/20))
    global sc2 = Scene(resolution = (2000, 300))

    lines!(sc2, t[1:end-1], diff(x), color=:blue)
    scene = hbox(sc2, sc1)
    display(scene)
end
p()

Looks almost like a version of #132

(changing the -42 to 0 or running the code in the repl makes it work more or less

no, executing it multiple times seem to make it work -.-
I need to figure out what could be order dependent/racy here ... I thought that this should be much less the case with observables^^

If you are running this example, also check that if the plot is created, then there is still something wrong with zooming: if zooming the lower figure it zooms towards the mouse pointer, if zooming the upper figure it zooms to a point outside.

yeah, I noticed too ;) Must be a wrong mapping of the mouse position in a subwindow

No, I think there is really a connection to the -42, try to vary it while calling the function.

hm, but it definitely works without changing it - it probably just makes it less visible when it starts at 0;)

No, really, maybe machine dependent but on fresh repls running with +4 and -42 as constant I get

fixed on master AbstractPlotting + Makie


Merge changes from previous work on this topic

This change restores some relatively minor edits to the introduction to a Docker Tools topic.

You can merge this if you're ready to, @ghogen.

Sure, I'll merge now, @ghogen.


more mypy extension fixes

satsdice
ngrok
jukebox

Codecov Report

Merging #1096 (80d7413) into main (09871bb) will decrease coverage by 3.02%.
The diff coverage is 40.44%.

@@            Coverage Diff             @@
##             main    #1096      +/-   ##
==========================================
- Coverage   51.52%   48.49%   -3.03%
==========================================
  Files         238      238
  Lines       13396    13539     +143
==========================================
- Hits         6902     6566     -336
- Misses       6494     6973     +479

Impacted Files
Coverage Δ

lnbits/extensions/jukebox/tasks.py
66.66% <0.00%> (-4.77%)
:arrow_down:

lnbits/extensions/satsdice/lnurl.py
32.20% <0.00%> (-1.70%)
:arrow_down:

lnbits/extensions/jukebox/views_api.py
17.84% <18.51%> (+0.73%)
:arrow_up:

lnbits/extensions/satsdice/views_api.py
37.28% <33.33%> (-1.31%)
:arrow_down:

lnbits/extensions/satsdice/views.py
42.37% <36.36%> (-1.03%)
:arrow_down:

lnbits/extensions/jukebox/crud.py
28.88% <40.00%> (ø)

lnbits/extensions/jukebox/views.py
57.14% <50.00%> (-2.12%)
:arrow_down:

lnbits/extensions/satsdice/crud.py
23.91% <50.00%> (+0.75%)
:arrow_up:

lnbits/extensions/jukebox/models.py
100.00% <100.00%> (ø)

lnbits/extensions/satsdice/models.py
86.66% <100.00%> (-0.15%)
:arrow_down:

... and 21 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


How can I add a callback by passing the function instead of a string

Hi, Thank you for your work on this library. It makes implementing state machines a joy!
I would like to implement a callback to a function from outside the class to trigger on the on_enter_init callback.
this is part of the code.
class BasicMachine(object):
    states = ['unknown',
            'init',
            'unhomed',
            'homing',
            'homed',
            'active',
            'inactive',
            'error']
    transitions = [
            { 'trigger': 'initialize', 'source': 'unknown', 'dest': 'init' },
            { 'trigger': 'initialized', 'source': 'init', 'dest': 'unhomed' },
            { 'trigger': 'homing_start', 'source': 'unhomed', 'dest': 'homing' },
            { 'trigger': 'homing_done', 'source': 'homing', 'dest': 'homed' },
            { 'trigger': 'start', 'source': 'homed', 'dest': 'active' },
            { 'trigger': 'stop', 'source': 'active', 'dest': 'inactive' } ]

    def __init__(self):
        self.machine = Machine(model=self,
                                states=BasicMachine.states,
                                transitions=BasicMachine.transitions,
                                initial='unknown')

class Joint(object):

    def __init__(self,):
        self.machine = BasicMachine()
        self.setup_callbacks()

    # setup callbacks so that on entering states certain functions are executed
    # make sure the function passed to the callback can be used independantly
    def setup_callbacks(self):
        self.machine.machine.on_enter_init(self.cb_reset_node())

    def cb_reset_node(self):
        print('resetting node')

when I call joint.machine.initialize() I get the following error: TypeError: 'NoneType' object is not callable
joint.machine.initialize()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/transitions/core.py", line 251, in trigger
    return self.machine._process(f)
  File "/usr/local/lib/python2.7/dist-packages/transitions/core.py", line 638, in _process
    return trigger()
  File "/usr/local/lib/python2.7/dist-packages/transitions/core.py", line 276, in _trigger
    if t.execute(event):
  File "/usr/local/lib/python2.7/dist-packages/transitions/core.py", line 177, in execute
    self._change_state(event_data)
  File "/usr/local/lib/python2.7/dist-packages/transitions/core.py", line 188, in _change_state
    event_data.machine.get_state(self.dest).enter(event_data)
  File "/usr/local/lib/python2.7/dist-packages/transitions/core.py", line 62, in enter
    event_data.machine._callback(oe, event_data)
  File "/usr/local/lib/python2.7/dist-packages/transitions/core.py", line 621, in _callback
    func(*event_data.args, **event_data.kwargs)
TypeError: 'NoneType' object is not callable

now if I were to add the callback like this:
    def setup_callbacks(self):
        self.machine.machine.on_enter_init(self.cb_reset_node.__func__)

I get a missing argument error on the cb_reset_node method.
>>> m.joints[20].machine.initialize()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/transitions/core.py", line 251, in trigger
    return self.machine._process(f)
  File "/usr/local/lib/python2.7/dist-packages/transitions/core.py", line 638, in _process
    return trigger()
  File "/usr/local/lib/python2.7/dist-packages/transitions/core.py", line 276, in _trigger
    if t.execute(event):
  File "/usr/local/lib/python2.7/dist-packages/transitions/core.py", line 177, in execute
    self._change_state(event_data)
  File "/usr/local/lib/python2.7/dist-packages/transitions/core.py", line 188, in _change_state
    event_data.machine.get_state(self.dest).enter(event_data)
  File "/usr/local/lib/python2.7/dist-packages/transitions/core.py", line 62, in enter
    event_data.machine._callback(oe, event_data)
  File "/usr/local/lib/python2.7/dist-packages/transitions/core.py", line 621, in _callback
    func(*event_data.args, **event_data.kwargs)
TypeError: cb_reset_node() takes exactly 1 argument (0 given)

Any thoughts on how to properly do this would be highly appreciated.

Hi @luminize,
on_enter_<state> expects a function pointer or a name of a model function.
self.machine.machine.on_enter_init(self.cb_reset_node()) calls  cb_reset_node and tries to bind the result which is None as a callback. This is not callable as the raised Error mentions.
self.machine.machine.on_enter_init(self.cb_reset_node.__func__)
In this case you try to pass an unbound function which requires an argument (self). In unbound functions self is not assigned. This is why Pythons complains.
What you need to do is to pass the bound method like that:
self.machine.machine.on_enter_init(self.cb_reset_node)

@aleneum thanks for the help. This was the answer I was looking for. I had not realized the differences between bound and unbound methods (learned somethin I wasn't aware of today). I'm using transitions for an application running Machinekit and canopen package. Python is the glue for all machine logic here :)
Thanks!


Removed ExternalInOutlookEnabled and added link to Set-OrganizationConfig.md

Closes https://github.com/MicrosoftDocs/OfficeDocs-Exchange/issues/2860.

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

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/Set-OrganizationConfig.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 856499c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/Set-ExternalInOutlook.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/Set-OrganizationConfig.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 15c45a1:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/Set-ExternalInOutlook.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/Set-OrganizationConfig.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@dariomws, see my comments in the related Issue (I don't believe Set-ExternalInOutlook and MailTipsExternalRecipientsTipsEnabled on Set-OrganizationConfig have anything to do with each other).
The removal of [-ExternalInOutlook] from the syntax block is fine.
Two additional things to remember:

Availability of a cmdlet/parameter is different from functionality. The applicable/Applicable metadata values on cmdlets/parameters needs to accurately reflect if the cmdlet/parameter is AVAILABLE in a particular environment. We can use additional text (the parameter description, the SYSOPSIS section, and/or the DESCRIPTION section) to explain that the cmdlet/parameter doesn't work in a specific environment. In other words: if a cmdlet/parameter is AVAILABLE, don't remove it.
Always use full docs.microsoft.com topic URLs in cmdlet reference topics. Relative topic links will work fine on the web, but they won't populate correctly when the topics are converted from markdown to MAML XML for code check-in and use at the command line.

Thank you @chrisda. It was my mistake, I didn't see that one parameter is for inbound and the other one for outbound.

Availability of a cmdlet/parameter is different from functionality. The applicable/Applicable metadata values on cmdlets/parameters need to accurately reflect if the cmdlet/parameter is AVAILABLE in a particular environment. We can use additional text (the parameter description, the SYSOPSIS section, and/or the DESCRIPTION section) to explain that the cmdlet/parameter doesn't work in a specific environment. In other words: if a cmdlet/parameter is AVAILABLE, don't remove it (including its applicable/Applicable value).

I remember this one, thank you.

Always use full docs.microsoft.com topic URLs in cmdlet reference topics. Relative topic links will work fine on the web, but they won't populate correctly when the topics are converted from markdown to MAML XML for code check-in and use at the command line.

I have a different message, let's talk about it in private.

Docs Build status updates of commit 6aaa513:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/Set-ExternalInOutlook.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/Set-OrganizationConfig.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

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

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/Set-ExternalInOutlook.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/Set-OrganizationConfig.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


WorkerThreadPool: Fix wrong pointer used in the case of BinaryMutex

A silly overlook in #93032. I don't get why I didn't run into it.
Fixes #93701.

Tested, no crash. Thanks for the fix 🙏

Thanks!


Add edit-fr command to user guide & miscellaneous changes

Codecov Report

Merging #133 (caba160) into master (b9b6733) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #133   +/-   ##
=========================================
  Coverage     40.47%   40.47%
  Complexity      407      407
=========================================
  Files           113      113
  Lines          2253     2253
  Branches        240      240
=========================================
  Hits            912      912
  Misses         1308     1308
  Partials         33       33

Impacted Files
Coverage Δ
Complexity Δ

.../seedu/budgetbaby/logic/commands/AddFrCommand.java
0.00% <ø> (ø)
0.00 <0.00> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b9b6733...caba160. Read the comment docs.


Fix type of signature in auth

What
Change the type of the signature in custom auth from Vec to Val.
Why
The protocol and env don't actually require it to be a Vec anymore, and so the SDK is limiting the type unnecessarily.

Oh thanks. I had forgotten about this too!


juju deploy kubernetes-core doesn't work on LXD

I followed the instruction at https://jujucharms.com/docs/stable/tut-lxd to setup LXD, and ran juju deploy kubernetes-core. It's stuck trying to allocate a machine 0/lxd/0 with the error message LXD doesn't have a uid/gid allocation. In this mode, only privileged containers are supported. Seems like in the bundle file (https://github.com/juju-solutions/bundle-canonical-kubernetes/blob/master/fragments/k8s/core/bundle.yaml#L21) it should just say '0' instead of 'lxd:0'?

You will need to use conjure-up for LXD as additional LXD profiles need to
be applied.
https://kubernetes.io/docs/getting-started-guides/ubuntu/local/
On Sat, Oct 14, 2017, 20:10 Rong Ou<EMAIL_ADDRESS>wrote:

I followed the instruction at https://jujucharms.com/docs/stable/tut-lxd
to setup LXD, and ran juju deploy kubernetes-core. It's stuck trying to
allocate a machine 0/lxd/0 with the error message LXD doesn't have a
uid/gid allocation. In this mode, only privileged containers are supported.
Seems like in the bundle file (
https://github.com/juju-solutions/bundle-canonical-kubernetes/blob/master/fragments/k8s/core/bundle.yaml#L21)
it should just say '0' instead of 'lxd:0'?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/juju-solutions/bundle-canonical-kubernetes/issues/431,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAET1TppP9gB4o4C5KcbytXm3UapIKW3ks5ssUb8gaJpZM4P5kdB
.

This (conjure-up+LXD) works on my desktop, but when I tried it on my laptop (Lenovo ThinkPad T570 with 16GB memory) it crashes the OS. Do you think the machine is just too under powered?

No, I run it on my 16GB laptop all the time and don't have any problems.

OK, probably something to do with my system. Closing this for now.


[C#] Custom VisualShaderNodeCustom scripts are not recognized as shader nodes in Godot 4.2+

Tested versions
Reproducible in:

4.2.1.stable.mono
4.2.2.stable.mono

System information
Godot v4.2.1.stable.mono - Windows 10.0.19045 - GLES3 (Compatibility) - NVIDIA GeForce RTX 2080 Ti (NVIDIA; <IP_ADDRESS>17) - AMD Ryzen Threadripper 2970WX 24-Core Processor (48 Threads)
Issue description
When trying to create a script inheriting from VisualShaderNodeCustom the engine / visual shader doesn't recognize the custom shader node created in C#. Custom GDScript shader nodes works.
I saw that there was a closed issue with a similar error, but it seems like the solution was for GDScript only.
https://github.com/godotengine/godot/issues/67268
https://github.com/godotengine/godot/pull/67407
https://github.com/godotengine/godot/pull/69738
The C# file used in the repro project will use this as the "template", since the built-in one is broken:
https://github.com/godotengine/godot/pull/94693
Steps to reproduce

Create a new or use existing project
Create a node inheriting from VisualShaderNodeCustom and compile
Open a VisualShader in the editor
Try and add the new node

Minimal reproduction project (MRP)
ZIP:
VisualShaderNodeTest.zip
Link:
https://github.com/jonatanrojderd/VisualShaderNodeTest

Does it work with [Global class]?

I’ve tried using both with no success, I was unsure about the GlobalClass attribute so I removed it while testing some more and then submitted this

CC @raulsntos

I'm unable to reproduce on v4.2.2.stable.mono.official [15073afe3] with the [GlobalClass] attribute. Using the attribute makes the type appear in the Create Shader Node dialog:

As AThousandShips said, the [GlobalClass] attribute is the C# equivalent to GDScript's class_name. Make sure to build the C# project after adding the attribute, and check that there are no compilation errors.

Thanks, I tried using both the Tool and GlobalClass attributes before. Tho it didn't work to just recompile the project, I had to restart Godot entierly to get it to pop up. The weird thing is that I've used both attributes before and it didn't show up after restart etc.
Tried it with my actual project and can confirm that I need to build (or even rebuild in Rider) and then restart Godot. So there might be some sort of sync error happening? Or hopefully it's just my setup and nothing "major".

Also, I guess I should update my PR (https://github.com/godotengine/godot/pull/94693) to include the GlobalClass attribute, if it's needed by the engine to be able to recognize the custom node?

I had to restart Godot entierly to get it to pop up.

That's a known bug
This should be clarified even further on the documentation, with a C# example along with the GDScript one, but otherwise this has been resolved
The demo should be updated as well

Alright, sound good!


Added FQN to command output

Fixes #68 and adds the FQDN to the command output so it is clearer.
I abandoned plans to add it automatically with PHP Parser so the user stays in control.

I just recognised that there is a bug in line 108. It should be "\t" . 'return \'Database\\\Factories\\\' . class_basename($modelName) . \'Factory\';' . PHP_EOL ..
Could you please fix this issue as well?

Done.


Need C++ API to provide client address.

Need C++ API to provide client ip/port. ESF need this information to perform trusted ip checking, visibility checking, etc.
Also need API to get server ip/port for convenient.

We need to think carefully about what format we expose here - at some point I expect to need to support some form of non-IP based transport.

How does this new feature interact with dualstack sockets?  Will users see an IPv4 address (<IP_ADDRESS>) or a mapped IPv6 address (::ffff:<IP_ADDRESS>)?
Mapped addresses are a private implementation detail of the socket API, which should never be leaked to an API user unless they have raw access to the file descriptor.

Looks like https://github.com/ctiller/grpc/commit/1b22b9db94784bc589d372e2b30eb939d009c3d9 replaced the normalizing grpc_sockaddr_to_string(&addr_str, addr, 1); with the non-normalizing grpc_sockaddr_to_uri(addr) :-(

FWIW, the user sees the mapped address now.


Middleware cookies are not being applied to response

Hi @khuezy ,
After open-next update #208, our production on AWS is more stable.
However, it has a bug with next-intl, specifically:
If we use the URL in the browser: http://PROD_URL/, it will cause an error and the page will not render.
However, if we use the URL: http://PROD_URL/en/, it will return the home page.
I also tried using yarn open:build and yarn start locally, which works fine.
The difference between production and locally is that:
In the local cookie, there is a value of NEXT_LOCALE = en, but the production environment does not find this cookie.

I used:
nextjs : 13.4.13
next-intl: 2.20.0
next-auth: ^4.22.1
Source: https://github.com/amannn/next-intl/tree/main/examples/example-next-13-next-auth

hi @ldlinhlxag thanks for the report. I'm not familiar w/ next-intl, I'll take a look on Monday. Are you setting that cookie or does that library manage that.

Hi @khuezy ,
The library managed that cookie.
All configurations in middleware.

@ldlinhlxag Please test out https://github.com/sst/open-next/releases/tag/v2.1.3
The cookies set in middleware should not be properly set in the response.

Hi @khuezy,
I used 2.1.3 version.
It still doesn't have NEXT_LOCAL in cookies.
Now both http://PROD_URL/ and http://PROD_URL/en/ don't work.
And there is 1 more error in the log:

Hmm that's strange, can you put up a min repo?
This was the change in 2.1.3: https://github.com/sst/open-next/pull/227/files
I don't know how that would cause that issue... the error message is very cryptic.

Does that cookie have an "Expires=" by chance?

This is cookies in my local:

Ah, it does have an expires in, I have a fix that was merged (but the e2e tests failed for an unrelated reason)
https://github.com/sst/open-next/pull/230
I'll get 2.1.4 out for this.

@ldlinhlxag can you try 2.1.4, it should fix the parsing of the cookies... if it doesn't work, can you share a min repo w/ your sst config.

Hi @khuezy ,
Sorry for delay response.
I used custom headers and redirect in next.config.js. Maybe it causes impact here.
After I removed custom headers and redirect in next.config.js, it works but cannot switch lang multiple times.
Eg: http://PROD_URL/en -> http://PROD_URL/de (OK) ->  http://PROD_URL/en (Failed, and freeze with de)
I'm trying gather more value information.
I used terraform to deploy.
This will upload server-function to AWS Lambda, static asset to S3 and configure CloudFront.
If you interested in specific area of terraform, just tell me.
I cannot show you entire infra terraform (policy security).

Look at the example here: https://github.com/sst/open-next/blob/main/examples/app-router/middleware.ts#L41-L51
const r = NextResponse.next({
    headers: responseHeaders, // these headers get sent back to the client
    request: {
      headers: requestHeaders, // these headers goes to the next request
    },
  });

Yes, let me try it!

Hi @khuezy ,
I gather details log for this issue:
At first time:
Access URL: https://PROD_URL/login -> (OK)
`
Before middleware cookie: undefined
Middleware response:
{
cookies: ResponseCookies {"NEXT_LOCALE":{"name":"NEXT_LOCALE","value":"en","sameSite":"strict","maxAge":31536000,"expires":"2024-09-14T00:22:14.698Z","path":"/"}},
url: '',
body: null,
bodyUsed: false,
headers: {
link: 'https://PROD_URL/login; rel="alternate"; hreflang="en", https://PROD_URL/de/login; rel="alternate"; hreflang="de", https://PROD_URL/login; rel="alternate"; hreflang="x-default"',
set-cookie: 'NEXT_LOCALE=en; Path=/; Expires=Sat, 14 Sep 2024 00:22:14 GMT; Max-Age=31536000; SameSite=strict',
x-middleware-rewrite: 'https://PROD_URL/en/login'
},
ok: true,
redirected: false,
status: 200,
statusText: '',
type: 'default'
}
Open-next response:
2023-09-15T00:22:15.635Z	7190d699-c5a2-4a8c-8b26-40740776955e	INFO	ServerResponse data {
statusCode: 200,
headers: [Object: null prototype] {
vary: 'RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Url',
'x-powered-by': 'Next.js',
'cache-control': 'private, no-cache, no-store, max-age=0, must-revalidate',
'content-type': 'text/html; charset=utf-8',
link: 'https://PROD_URL/login; rel="alternate"; hreflang="en", https://PROD_URL/de/login; rel="alternate"; hreflang="de", https://PROD_URL/login; rel="alternate"; hreflang="x-default"',
'set-cookie': 'NEXT_LOCALE=en; Path=/; Expires=Sat, 14 Sep 2024 00:22:14 GMT; Max-Age=31536000; SameSite=strict',
'x-middleware-rewrite': 'https://PROD_URL/en/login'
},
isBase64Encoded: false,
...
}
`
At second time: en -> de -> (OK)
Access URL: https://PROD_URL/de/login
`
Before middleware cookie: { name: 'NEXT_LOCALE', value: 'en' }
Middleware response:
2023-09-15T00:26:28.328Z	213da1ab-ec9e-4e3d-ab7b-4843589b72eb	INFO	Response detail: {
cookies: ResponseCookies {"NEXT_LOCALE":{"name":"NEXT_LOCALE","value":"de","sameSite":"strict","maxAge":31536000,"expires":"2024-09-14T00:26:28.327Z","path":"/"}},
url: '',
body: null,
bodyUsed: false,
headers: {
link: 'https://PROD_URL/login; rel="alternate"; hreflang="en", https://PROD_URL/de/login; rel="alternate"; hreflang="de", https://PROD_URL/login; rel="alternate"; hreflang="x-default"',
set-cookie: 'NEXT_LOCALE=de; Path=/; Expires=Sat, 14 Sep 2024 00:26:28 GMT; Max-Age=31536000; SameSite=strict',
},
ok: true,
redirected: false,
status: 200,
statusText: '',
type: 'default'
}
Open-next response:
2023-09-15T00:26:28.426Z	213da1ab-ec9e-4e3d-ab7b-4843589b72eb	INFO	ServerResponse data {
statusCode: 200,
headers: [Object: null prototype] {
vary: 'RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Url',
'x-powered-by': 'Next.js',
'cache-control': 'private, no-cache, no-store, max-age=0, must-revalidate',
'content-type': 'text/html; charset=utf-8',
link: 'https://PROD_URL/login; rel="alternate"; hreflang="en", https://PROD_URL/de/login; rel="alternate"; hreflang="de", https://PROD_URL/login; rel="alternate"; hreflang="x-default"',
'set-cookie': 'NEXT_LOCALE=de; Path=/; Expires=Sat, 14 Sep 2024 00:26:28 GMT; Max-Age=31536000; SameSite=strict',
'x-middleware-next': '1'
},
isBase64Encoded: false,
}
`
At third time: de -> en -> (Failed)
Access URL: https://PROD_URL/en/login
`
Before middleware cookie: { name: 'NEXT_LOCALE', value: 'de' }
Middleware response:
2023-09-15T00:28:24.398Z	5a6097d9-c1d9-4236-8231-33e0aa02f07f	INFO	Response detail: {
cookies: ResponseCookies {"NEXT_LOCALE":{"name":"NEXT_LOCALE","value":"en","sameSite":"strict","maxAge":31536000,"expires":"2024-09-14T00:28:24.397Z","path":"/"}},
url: '',
body: null,
bodyUsed: false,
headers: {
link: 'https://PROD_URL/login; rel="alternate"; hreflang="en", https://PROD_URL/de/login; rel="alternate"; hreflang="de", https://PROD_URL/login; rel="alternate"; hreflang="x-default"',
location: 'https://PROD_URL/login',
set-cookie: 'NEXT_LOCALE=en; Path=/; Expires=Sat, 14 Sep 2024 00:28:24 GMT; Max-Age=31536000; SameSite=strict'
},
ok: false,
redirected: false,
status: 307,
statusText: '',
type: 'default'
}
Open-next response:
2023-09-15T00:28:25.983Z	deae3a98-af55-46f7-af52-71f6e7bb4d9f	INFO	ServerResponse data {
statusCode: 200,
headers: [Object: null prototype] {
vary: 'RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Url',
'x-powered-by': 'Next.js',
'cache-control': 'private, no-cache, no-store, max-age=0, must-revalidate',
'content-type': 'text/html; charset=utf-8',
link: 'https://PROD_URL/login; rel="alternate"; hreflang="en", https://PROD_URL/de/login; rel="alternate"; hreflang="de", https://PROD_URL/login; rel="alternate"; hreflang="x-default"',
'x-middleware-next': '1'
},
isBase64Encoded: false,
}
`
If you need more information, just tell me.

@ldlinhlxag I saw a comment in my email but I don't see it here on GitHub, did you delete? Can you join the SST discord and create a help thread? It'll be easier to communicate.

Hi @khuezy ,
I gather detail logs:
At first time:
Access URL: https://PROD_URL/login
Before middleware cookie: undefined
Middleware response:
{
  cookies: ResponseCookies {"NEXT_LOCALE":{"name":"NEXT_LOCALE","value":"en","sameSite":"strict","maxAge":31536000,"expires":"2024-09-14T00:22:14.698Z","path":"/"}},
  url: '',
  body: null,
  bodyUsed: false,
  headers: {
  link: '<https://PROD_URL/login>; rel="alternate"; hreflang="en", <https://PROD_URL/de/login>; rel="alternate"; hreflang="de", <https://PROD_URL/login>; rel="alternate"; hreflang="x-default"',
  set-cookie: 'NEXT_LOCALE=en; Path=/; Expires=Sat, 14 Sep 2024 00:22:14 GMT; Max-Age=31536000; SameSite=strict',
  x-middleware-rewrite: 'https://PROD_URL/en/login'
},
  ok: true,
  redirected: false,
  status: 200,
  statusText: '',
  type: 'default'
}

Open-next response:
2023-09-15T00:22:15.635Z	7190d699-c5a2-4a8c-8b26-40740776955e	INFO	ServerResponse data {
  statusCode: 200,
  headers: [Object: null prototype] {
    vary: 'RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Url',
    'x-powered-by': 'Next.js',
    'cache-control': 'private, no-cache, no-store, max-age=0, must-revalidate',
    'content-type': 'text/html; charset=utf-8',
    link: '<https://PROD_URL/login>; rel="alternate"; hreflang="en", <https://PROD_URL/de/login>; rel="alternate"; hreflang="de", <https://PROD_URL/login>; rel="alternate"; hreflang="x-default"',
    'set-cookie': 'NEXT_LOCALE=en; Path=/; Expires=Sat, 14 Sep 2024 00:22:14 GMT; Max-Age=31536000; SameSite=strict',
    'x-middleware-rewrite': 'https://PROD_URL/en/login'
  },
  isBase64Encoded: false,
  ...
}

At second time: en -> de
Access URL: https://PROD_URL/de/login
Before middleware cookie: { name: 'NEXT_LOCALE', value: 'en' }
Middleware response:
2023-09-15T00:26:28.328Z	213da1ab-ec9e-4e3d-ab7b-4843589b72eb	INFO	Response detail: {
  cookies: ResponseCookies {"NEXT_LOCALE":{"name":"NEXT_LOCALE","value":"de","sameSite":"strict","maxAge":31536000,"expires":"2024-09-14T00:26:28.327Z","path":"/"}},
  url: '',
  body: null,
  bodyUsed: false,
  headers: {
  link: '<https://PROD_URL/login>; rel="alternate"; hreflang="en", <https://PROD_URL/de/login>; rel="alternate"; hreflang="de", <https://PROD_URL/login>; rel="alternate"; hreflang="x-default"',
  set-cookie: 'NEXT_LOCALE=de; Path=/; Expires=Sat, 14 Sep 2024 00:26:28 GMT; Max-Age=31536000; SameSite=strict',
},
  ok: true,
  redirected: false,
  status: 200,
  statusText: '',
  type: 'default'
}

Open-next response:
2023-09-15T00:26:28.426Z	213da1ab-ec9e-4e3d-ab7b-4843589b72eb	INFO	ServerResponse data {
  statusCode: 200,
  headers: [Object: null prototype] {
    vary: 'RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Url',
    'x-powered-by': 'Next.js',
    'cache-control': 'private, no-cache, no-store, max-age=0, must-revalidate',
    'content-type': 'text/html; charset=utf-8',
    link: '<https://PROD_URL/login>; rel="alternate"; hreflang="en", <https://PROD_URL/de/login>; rel="alternate"; hreflang="de", <https://PROD_URL/login>; rel="alternate"; hreflang="x-default"',
    'set-cookie': 'NEXT_LOCALE=de; Path=/; Expires=Sat, 14 Sep 2024 00:26:28 GMT; Max-Age=31536000; SameSite=strict',
    'x-middleware-next': '1'
  },
  isBase64Encoded: false,
}

At third time: de -> en
Access URL: https://PROD_URL/en/login
Before middleware cookie: { name: 'NEXT_LOCALE', value: 'de' }
Middleware response:
2023-09-15T00:28:24.398Z	5a6097d9-c1d9-4236-8231-33e0aa02f07f	INFO	Response detail: {
  cookies: ResponseCookies {"NEXT_LOCALE":{"name":"NEXT_LOCALE","value":"en","sameSite":"strict","maxAge":31536000,"expires":"2024-09-14T00:28:24.397Z","path":"/"}},
  url: '',
  body: null,
  bodyUsed: false,
  headers: {
  link: '<https://PROD_URL/login>; rel="alternate"; hreflang="en", <https://PROD_URL/de/login>; rel="alternate"; hreflang="de", <https://PROD_URL/login>; rel="alternate"; hreflang="x-default"',
  location: 'https://PROD_URL/login',
  set-cookie: 'NEXT_LOCALE=en; Path=/; Expires=Sat, 14 Sep 2024 00:28:24 GMT; Max-Age=31536000; SameSite=strict'
},
  ok: false,
  redirected: false,
  status: 307,
  statusText: '',
  type: 'default'
}

Open-next response:
2023-09-15T00:28:25.983Z	deae3a98-af55-46f7-af52-71f6e7bb4d9f	INFO	ServerResponse data {
  statusCode: 200,
  headers: [Object: null prototype] {
    vary: 'RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Url',
    'x-powered-by': 'Next.js',
    'cache-control': 'private, no-cache, no-store, max-age=0, must-revalidate',
    'content-type': 'text/html; charset=utf-8',
    link: '<https://PROD_URL/login>; rel="alternate"; hreflang="en", <https://PROD_URL/de/login>; rel="alternate"; hreflang="de", <https://PROD_URL/login>; rel="alternate"; hreflang="x-default"',
    'x-middleware-next': '1'
  },
  isBase64Encoded: false,
}

Yes, I will join later.