WIP - add integration test for running this in a nomad cluster, for #1

This PR should demonstrate the use of the grid-intensity-exporter for prometheus, as running in development nomad cluster.
Well… when it works that is.
I'm sharing this PR mainly to get some input as I learn how to use nomad for this.
Once you have a nomad agent running in dev mode with the following command...
nomad agent

You should be able to run this job with the following invocation:
nomad run grid-intensity-exporter.nomad

I'm running this on a macbook pro 2015, running OS 10.15.x
What I need help with
However, I say should, because my docker-fu is terrible, and I'm still learning nomad.
What I think is going wrong is that the jobfile I isn't specifying where to look for the docker image to run, and is falling back to the public docker hub - hence the denied bit in the logs:
2020-12-14T11:29:10.311+0100 [ERROR] client.driver_mgr.docker: failed pulling container: driver=docker image_ref=grid-intensity-exporter:latest error="API error (404): pull access denied for grid-intensity-exporter, repository does not exist or may require 'docker login': denied: requested access to the resource is denied"
    2020-12-14T11:29:10.311+0100 [ERROR] client.alloc_runner.task_runner: running driver failed: alloc_id=69551864-a7bd-aa64-7384-6dad0a34edf7 task=grid-intensity-exporter error="Failed to pull `grid-intensity-exporter`: API error (404): pull access denied for grid-intensity-exporter, repository does not exist or may require 'docker login': denied: requested access to the resource is denied"
    2020-12-14T11:29:10.311+0100 [INFO]  client.alloc_runner.task_runner: not restarting task: alloc_id=69551864-a7bd-aa64-7384-6dad0a34edf7 task=grid-intensity-exporter reason="Exceeded allowed attempts 2 in interval 30m0s and mode is "fail""
    2020-12-14T11:29:10.312+0100 [INFO]  client.gc: marking allocation for GC: alloc_id=69551864-a7bd-aa64-7384-6dad0a34edf7

I think we need to either specify in the jobfile which registry to look in for the docker image, or maybe map the entire directory into the job, so the dockerfiles and stuff are visible.
I'm not sure though, and won't be able to check for a few days. Hopefully posting this here will resolve this, or at least shed light until I can revisit in a few days

Hi Chris,

What I think is going wrong is that the jobfile I isn't specifying where to look for the docker image to run, and is falling back to the public docker hub

I believe this is spot on. Where are you pushing the grid-intensity-exporter:integration-test image? If it's a public dockerhub image the easy solution is to update the image to (for example) <org>/<image-name>:<tag>.
However, it gets interesting if it's a private registry and credentials get involved. The easy answer if this is the case is to add the auth stanza to your job file like so:

    task "grid-intensity-exporter" {
      driver = "docker"

      config {
        image = "grid-intensity-exporter:integration-test"

        auth {
          username = "<username>"
          password = "<password>"
        }

        #...
      }

However, this wonderful declarative and GitOps-oriented world we live in means checking in your registry password into Git if you do this, which is obviously no bueno! There are approaches to solving this, though in my opinion none quite as elegant as that offered in Kubernetes, and vary depending on your config management approach. Just some examples that stand out in my mind:

manually docker login on the Nomad agent. Of course, not automation friendly, so will depend on the lifetime of your agent.
If using ansible / similar, you could load the docker config.json at configuration-time for the agent. That way, it should have what it needs to pull from the private registry without specifying any credentials within the Nomad job specification.

I cannot think of other solutions at the moment, but let me know if we're going to need to tackle this and I can try to think about it further 👍

Thanks @benmarsden , that really helps.
In this case, I was pulling it from what i think would be the 'local' registry on my machine, but my goal would be to have it on a public repository, so that anyone can contribute by pulling it down and starting to work with it. I think simply pushing the
I figure there would be a simple enough way for a local nomad agent running on my laptop (or on a VM on my laptop) to know about the local docker registry on my laptop, as pushing an image all the way to an internet accessible repo, only to pull it back down to run locally sounds kray.
I think there's enough in this issue now for me to ask a question in the hashicorp forums, and point back to this.
Thanks again for the pointers 👍

OK, I think I have this working, and in manual testing, see the output I expected to see.
I've cleaned up the sample nomad job file, and added a skeleton github action, which with some luck, we can either find the corresponding actions, or get some guidance on how to carry out the steps I've written.
I've used some obviously-not-real github actions, in the workflow file, which we'd replace with actual code, but once we have this, we ought to have at least some minimal examples of this to demonstrate its intended use.

As an aside the thing that tripped me up turned out to be a bug in nomad itself:
https://github.com/hashicorp/nomad/issues/8934
Then this is resolved, I think we could update the example job too.
@benmarsden - do you know of any useful github actions for nomad, or API events to listen to to check that a submitted job has started running?
This stuff is still new to me, but I figure it's got to exist…

OK, I think I've figured a way to wait until a job is reporting as running successfully.
The bash script I've added shows how you can call nomad, then run a loop, polling the API until we get the result we expect before proceeding with the integration test. It's not pretty, but it's working locally, and is just relying on bash.
I think the we now need a reliable way to download the nomad binary, chmod it so it's executable, then run.
We could fetch this each time, but this feels like a thing we'd want to be able to cache, as we only want to change it when the latest stable release of nomad comes out.
This where my knowledge of github actions runs out, so I'll need some help from a kind soul, to finally get this last bit passing…

@mrchrisadams I have used https://github.com/actions/cache before as an action for caching go modules. I wonder if that would be appropriate for binaries too?

@mrchrisadams @benmarsden I had a look at this last night and created https://github.com/thegreenwebfoundation/grid-intensity-exporter/pull/6 based on this. I have a couple of ideas but I'm having a weird problem with the wait script.
For installing nomad since the action is running on an ubuntu box I think we could use apt-get. Hashicorp have their own apt repository that they push new releases too. https://www.nomadproject.io/docs/install WDYT?
For the image it's being built in the ubuntu box. So I think the nomad agent can access it but I couldn't confirm that. We could also try using a local registry like in the docker test?
But I think a public docker image would be useful. To make the exporter easier to use. I think we could use the docker github action to push a new tag whenever we create a release and update the latest tag.
For the wait script it works great for me locally but in the action I added nomad job status grid-intensity-exporter and the job is still pending so the integration test fails.

Hey @mrchrisadams I had another go at #6 and got the test working. It needed 2 changes.
There is a typo in the docker image in the nomad task. It misses the prefix for thegreenwebfoundation. This is why the nomad agent couldn't start the job.
Rather than using the wait script I added an exponential backoff to the go integration test. This makes the test a bit more complicated but I think it also makes it more reliable.
Hope that helps. Let me know if you want to apply the changes here or go with #6.

Hi @rossf7 would you mind adding the changes into this issue and squashing it in like before?
My reasoning is that I think being able to refer to the commentary in in #5 would be helpful for our future selves when understanding why we took the steps we did. There's not so much context in #6 for us to look up.
Also - I like your exponential backup approach for the go test, and I'm happy to remove the wait-for bash script from this repo.
For what it's worth, consider this commentary an approval at my end of the approach in #6 :)


Is it possible to break up Swagger 2 spec swagger.json into multiple resources?

With Swagger 1 spec, there was a Swagger resource at /api-docs, which loads all endpoints.  You could also go to endpoints one at a time via /api-docs/animals or /api-docs/cars.  This is useful for us because we have a giant API with 70+ endpoints and 1500+ methods.
The upgrade to the Swagger 2 spec generates a single swagger.json by default.  I know that you can break things up using refs.
We are using BeanConfig with scan=true and ApiListingResource to generate our swagger.json file.  Is there any way to configure it so that it generates multiple files?

Not OOTB.

OK thanks, I'm going to close this, it's not necessarily a feature request or anything, we were just using that as a workaround for issues in swagger-ui with huge apis.


TextStyle copyWith doesn't work as expected

Describe the bug
On using .copyWith in a TextStyle, the font-weight reduces. When I use copyWith, I expect it to copy properties I defined in the arguments with properties in the TextStyle instance. However, this is not happening. This fixes when I pass a font family in copyWith arguments but the same can't be done in some cases, for example: When using packages like GoogleFonts.
One way to reproduce
Steps to reproduce the behavior:

Create an instance of any GoogleFont i.e final myStyle = GoogleFonts.raleway( ... )
use myStyle as textstyle for a text and it'll look the way you expect.
Now use copyWith on myStyle i.e myStyle.copyWith(fontWeight: FontWeight.w800,)
Instead of heavier weight like FontWeight.w800, text will appear like FontWeight.normal

Expected behavior
I want GoogleFont textStyle with custom styles by using copyWith method.
Include the contents of your google_fonts directory
google_fonts/OFL.txt
google_fonts/Raleway-Black.ttf
google_fonts/Raleway-BlackItalic.ttf
google_fonts/Raleway-Bold.ttf
google_fonts/Raleway-BoldItalic.ttf
google_fonts/Raleway-ExtraBold.ttf
google_fonts/Raleway-ExtraBoldItalic.ttf
google_fonts/Raleway-ExtraLight.ttf
google_fonts/Raleway-ExtraLightItalic.ttf
google_fonts/Raleway-Italic.ttf
google_fonts/Raleway-Light.ttf
google_fonts/Raleway-LightItalic.ttf
google_fonts/Raleway-Medium.ttf
google_fonts/Raleway-MediumItalic.ttf
google_fonts/Raleway-Regular.ttf
google_fonts/Raleway-SemiBold.ttf
google_fonts/Raleway-SemiBoldItalic.ttf
google_fonts/Raleway-Thin.ttf
google_fonts/Raleway-ThinItalic.ttf
Screenshots

for code
RichText(
        text: TextSpan(
          text: 'AAVEKH',
          style: GoogleFonts.raleway(
            fontWeight: FontWeight.w800,
            fontSize: 24,
            color: Colors.white,
          ),
        ),
      )

and

for code
RichText(
        text: TextSpan(
          text: 'AAVEKH',
          style: GoogleFonts.raleway().copyWith(
            fontWeight: FontWeight.w800,
            fontSize: 24,
            color: Colors.white,
          ),
        ),
      )

Smartphone (please complete the following information if applicable):

Device: Samsung M31
OS: Android 11

futter doctor -v
[✓] Flutter (Channel stable, 1.22.6, on Linux, locale en_IN.UTF-8)
    • Flutter version 1.22.6 at /home/red/devel/flutter
    • Framework revision 9b2d32b605 (3 weeks ago), 2021-01-22 14:36:39 -0800
    • Engine revision 2f0af37152
    • Dart version 2.10.5

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /home/red/devel/android-sdk
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /home/red/devel/android-sdk
    • Java binary at: /usr/lib/jvm/java-11/bin/java
    • Java version OpenJDK Runtime Environment 18.9 (build 11.0.10+9)
    • All Android licenses accepted.

[!] Android Studio
    • Android Studio at /snap/bin/android-studio
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    ✗ android-studio-dir = /snap/bin/android-studio
    ✗ Android Studio not found at /snap/bin/android-studio
    • Try updating or re-installing Android Studio.
    • Consider removing your android-studio-dir setting by running:
      flutter config --android-studio-dir=

[✓] VS Code (version 1.53.1)
    • VS Code at /usr/share/code
    • Flutter extension version 3.19.0

[!] Connected device
    ! No devices available

Hi @predatorx7
From what I can see, the issue is related to a 3rd party plugin rather than to Flutter itself. Please open the issue in the dedicated repository.
Closing, as this isn't an issue with Flutter itself.
I see you already opened an issue there https://github.com/material-foundation/google-fonts-flutter/issues/141.
If you disagree, please write in the comments,
providing your flutter doctor -v, your flutter run -v,  your pubspec.yaml
a minimal reproducible code sample that does not use 3rd party plugins,
and I will reopen it.
Thank you

Same with me, where TextStyle ..copyWith() not working on flutter :
Flutter 2.2.1 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 02c026b03c (2 weeks ago) • 2021-05-27 12:24:44 -0700
Engine • revision 0fdb562ac8
Tools • Dart 2.13.1
pubspec.yml
fonts:
- family: Montserrat
fonts:
- asset: assets/fonts/Montserrat-Bold.ttf
- asset: assets/fonts/Montserrat-Medium.ttf
- asset: assets/fonts/Montserrat-Regular.ttf
- asset: assets/fonts/Montserrat-Light.ttf
- family: Roboto
fonts:
- asset: assets/fonts/Roboto/Roboto-Black.ttf
- asset: assets/fonts/Roboto/Roboto-BlackItalic.ttf
- asset: assets/fonts/Roboto/Roboto-Bold.ttf
weight: 700
- asset: assets/fonts/Roboto/Roboto-BoldItalic.ttf
weight: 700
style: italic
- asset: assets/fonts/Roboto/Roboto-Italic.ttf
style: italic
- asset: assets/fonts/Roboto/Roboto-Light.ttf
- asset: assets/fonts/Roboto/Roboto-LightItalic.ttf
style: italic
- asset: assets/fonts/Roboto/Roboto-Medium.ttf
- asset: assets/fonts/Roboto/Roboto-MediumItalic.ttf
style: italic
- asset: assets/fonts/Roboto/Roboto-Regular.ttf
- asset: assets/fonts/Roboto/Roboto-Thin.ttf
- asset: assets/fonts/Roboto/Roboto-ThinItalic.ttf
style: italic
class AppStyle {
static const standart = TextStyle(
fontSize: 14,
fontWeight: FontWeight.w400,
color: AppColors.textPrimary,
fontFamily: 'Roboto',
);
}
How Access?
Text(
interst.name,
style: AppStyle.medium
..copyWith(
color: selected ? Colors.white : Color(0xFF0960ac),
),
),
Note:

No use 3rd library


Automated cherry pick of #7677: vpcagent: respect guest src check settings

Cherry pick of #7677 on release/3.4.
#7677: vpcagent: respect guest src check settings

/lgtm
/approve


Does NormalizeFormatter->normalize() ever receive anything other than an array?

Trying to fix up our app's logging set up, and wanted to set up Exceptions to be formatted nicely in Slack. I'm having trouble understanding how to do so though.
So if I do $log->error($e);, the Exception gets cast to a string here, which makes sense.
Or if I try $log->error('Exception happened', $e);, I get an error because context is expected to be an array here.
But I noticed in NormalizerFormatter that it has a special case to normalize an Exception, which sounds great. But as far as I can tell and with my testing, it will only ever get passed an array - so how do I properly log an exception so that it does so?

Logging exceptions, as per PSR-3, should be done as $logger->error('Something something', ['exception' => $e]);
Generally speaking, context information should be an array with meaningful keys and their associated data I would say.


chore(curriculum): try to get the first challenge to work on the mobile app

Checklist:

[X] I have read and followed the contribution guidelines.
[X] I have read and followed the how to open a pull request guide.
[X] My pull request targets the main branch of freeCodeCamp.
[X] I have tested these changes either locally on my machine, or GitPod.

Closes #XXXXX

In order for the mobile app to have trouble with step one, one of the following three conditions have to be false.
document.querySelectorAll('style').length == 1
document.querySelectorAll('link').length == 0
document.querySelectorAll('script').length <= 2

That is the purpose of the ChaiJS assertions in the test. I figure that there's a chance that there is no style elements actually present in the mobile app. As such I'm making the step test for at most one style element present.
If this test change gets merged, at worst nothing major will have happened. The test will still work on the main website. At best step one in the mobile app will finally work.

Hey @a2937,
I will be continuing this in another pr. Thank you for trying to help!


Update var name from AWS_REGOIN to AWS_REGION

Issue #, if available:
There is a minor typo in the MakeFile. Variable is declared as AWS_REGOIN instead of AWS_REGION.
Description of changes:
Update the variable from AWS_REGOIN to AWS_REGION in the MakeFile.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Thanks for the PR, I had already addressed this locally and has been pushed in the latest 2.2 release!

Thanks for the PR, I had already addressed this locally and has been pushed in the latest 2.2 release!


Finalize replacement for --checked in Dart 2 VM CLI

In Dart 2-dev.40 we still have the --checked flag.
Is this going away?
Will it become an alias for --enable_asserts?
Our IDE tools need to make plans here.
$ dart --help
Usage: dart [<vm-flags>] <dart-script-file> [<dart-options>]

Executes the Dart script passed as <dart-script-file>.

Common options:
--checked or -c
  Insert runtime type checks and enable assertions (checked mode).

CC @jwren @anders-sandholm @dgrove

I like --enable-asserts, but I don't have a strong preference.

We already have --enable-asserts and it works with --preview-dart-2 option.

@a-siva – reopening. I want to use this to track the plan around removing --checked and moving --enable-asserts "above the fold" when you run dart --help

https://github.com/dart-lang/sdk/commit/42581e4fa6a2dd91ab16b4b7a820f57ca3ad3b19 should fix this


[wip] Big scene refactor

Goals

Enable tile fetching as soon as possible, not waiting for the Scene to be completely loaded
In general these changes should improve parallelization of sceneloading
Move all things that hold data referencing Scene into Scene so that it's simple to free all data of an old Scene - not having multiple instances (TileWorker, TileBuilder, MarkerManager, ..) still holding references to it.

This adds lots of timing logs - We should test it on some more devices and different scenes to see where is more room for improvement.

Timing for bubble-wrap on android:
https://gist.github.com/hjanetzek/c8b04a580784d14abd9b2dfa50605042


Routing option is never passed to the Cuckoo API

Hello,
I found out that the routing option is never passed to the Cuckoo API, for example if I set the routing option to 'inetsim' into AL, the connector will submit the sample without the 'route' option which is necessary for set the network in the cuckoo sandbox.
A fix will be to add the route option to the 'task_options' object in the function _set_task_parameters (https://github.com/CybercentreCanada/assemblyline-service-cuckoo/blob/76e6313ea01f04c1e6006e950d28134be32e2f31/cuckoo/cuckoo_main.py#L1027)

Thanks for the ticket @Kerat! I'll start on a PR right away!

You rock thank you


Linux server translation setup

Hello,
I don't know where to put my problem. So I'll do it here.
I have installed dwarf fortress on a linux server in order to play it in co-op with a friend. I'd also like to install the French translation. But I can't find a way to install it on a server, as the installer requires a graphical interface.
Thank you for your help,

You can build/download a ready to use package from the package builder, then just unpack it to the game's directory with file replacement.
But you'll still need a graphical interface to play.


ENSO on-the-fly plots

Addresses #1127.
Accompanied PR in ENSO metrics: https://github.com/CLIVAR-PRP/ENSO_metrics/pull/82
Demo notebook update to include sample dive down plots.

At the moment, CI failing might be caused by constraint to enso metrics version as 1.1.3 while it is yet to release.

@acordonez thank you for pointing that out which is a great reminder! I missed adding it to dependency. I will add them to dev and ci yml files.

@acordonez just added. Could you check if that resolves the issue?

@lee1043 That solved the cmocean import issue but I am still getting this error when running enso_driver.py:
Traceback (most recent call last):
  File "/home/ordonez4/miniconda3/envs/pmp_dev_enso2/bin/enso_driver.py", line 24, in <module>
    from EnsoPlots.EnsoMetricPlot import main_plotter
  File "/home/ordonez4/miniconda3/envs/pmp_dev_enso2/lib/python3.10/site-packages/EnsoPlots/__init__.py", line 1, in <module>
    from .EnsoMetricPlot import *
  File "/home/ordonez4/miniconda3/envs/pmp_dev_enso2/lib/python3.10/site-packages/EnsoPlots/EnsoMetricPlot.py", line 8, in <module>
    from .EnsoPlotTemplate import cmip_boxplot, my_boxplot, my_curve, my_dotplot, my_dot_to_box, my_hovmoeller, my_map,\
  File "/home/ordonez4/miniconda3/envs/pmp_dev_enso2/lib/python3.10/site-packages/EnsoPlots/EnsoPlotTemplate.py", line 12, in <module>
    from mpl_toolkits.basemap import Basemap
ModuleNotFoundError: No module named 'mpl_toolkits.basemap'

I tried using mamba  install -c conda-forge basemap to install basemap explicitly but get this error:
Could not solve for environment specs
Encountered problems while solving:
  - package libgdal-core-3.10.0-hef9eae6_2 requires geos >=3.13.0,<<IP_ADDRESS>a0, but none of the providers can be installed

The environment can't be solved, aborting the operation

I can keep looking into this but curious if you have any ideas.

It looks like I have those libraries in my environment, which I suspect they might be dependency of something. Can you check your maplotlib version? Mine is 3.9.2.
$ conda list libgdal

# Name                    Version                   Build  Channel
libgdal-core              3.10.0               h61e89c6_1    conda-forge

$ conda list geos

# Name                    Version                   Build  Channel
geos                      3.13.0               hac325c4_0    conda-forge

If this continues to cause issue, can you try recreate your conda env using the dev.yml file using the following command, then install PMP, and run the notebook?
$ conda create -n [YOUR ENV NAME] -f conda-env/dev.yml

# (after go to pmp directory)
$ pip install .

@acordonez thank you, I was able to reproduce the issue on my end as well.
$  conda install conda-forge::basemap

Channels:
 - conda-forge
 - defaults
Platform: osx-64
Collecting package metadata (repodata.json): done
Solving environment: | warning  libmamba Added empty dependency for problem type SOLVER_RULE_UPDATE
failed

LibMambaUnsatisfiableError: Encountered problems while solving:
  - cannot install both pin-1-1 and pin-1-1
  - nothing provides _numpy_rc needed by numpy-2.1.0rc1-py310he367959_0

Could not solve for environment specs
The following packages are incompatible
├─ basemap is installable with the potential options
│  ├─ basemap 1.2.0 would require
│  │  └─ numpy >=1.9.3,<2.0a0 , which can be installed;
│  ├─ basemap [1.2.0|1.2.1] would require
│  │  └─ numpy >=1.14.6,<2.0a0 , which can be installed;
│  ├─ basemap 1.2.2 would require
│  │  └─ numpy >=1.21.4,<2.0a0 , which can be installed;
│  ├─ basemap [1.2.2|1.3.3|1.3.4|1.3.5|1.3.6] would require
│  │  └─ numpy >=1.21.6,<2.0a0 , which can be installed;
│  ├─ basemap 1.2.2 would require
│  │  └─ numpy >=1.16.5,<2.0a0 , which can be installed;
│  ├─ basemap 1.2.2 would require
│  │  └─ numpy >=1.16.6,<2.0a0 , which can be installed;
│  ├─ basemap 1.2.2 would require
│  │  └─ numpy >=1.19.5,<2.0a0 , which can be installed;
│  ├─ basemap 1.2.2 would require
│  │  └─ numpy >=1.18.5,<2.0a0 , which can be installed;
│  ├─ basemap 1.2.2 would require
│  │  └─ numpy >=1.19.2,<2.0a0 , which can be installed;
│  ├─ basemap 1.2.2 would require
│  │  └─ numpy >=1.19.4,<2.0a0 , which can be installed;
│  ├─ basemap 1.3.3 would require
│  │  └─ numpy >=1.22.4,<2.0a0 , which can be installed;
│  ├─ basemap 1.3.4 would require
│  │  └─ numpy >=1.23.2,<2.0a0 , which can be installed;
│  ├─ basemap 1.3.4 would require
│  │  └─ numpy >=1.23.1,<2.0a0 , which can be installed;
│  ├─ basemap [1.3.5|1.3.6] would require
│  │  └─ numpy >=1.23.4,<2.0a0 , which can be installed;
│  ├─ basemap 1.3.6 would require
│  │  └─ numpy >=1.23.5,<2.0a0 , which can be installed;
│  ├─ basemap 1.3.6 would require
│  │  └─ numpy >=1.24.2,<2.0a0 , which can be installed;
│  ├─ basemap 1.3.7 would require
│  │  └─ numpy >=1.24.3,<2.0a0 , which can be installed;
│  ├─ basemap 1.3.8 would require
│  │  └─ numpy >=1.25.2,<2.0a0 , which can be installed;
│  ├─ basemap [1.3.8|1.3.9|1.4.0|1.4.1] would require
│  │  └─ numpy >=1.24.4,<2.0a0 , which can be installed;
│  ├─ basemap 1.3.9 would require
│  │  └─ numpy >=1.26.2,<2.0a0 , which can be installed;
│  ├─ basemap 1.4.0 would require
│  │  └─ numpy >=1.26.3,<2.0a0 , which can be installed;
│  └─ basemap 1.4.1 would require
│     └─ numpy >=1.26.4,<2.0a0 , which can be installed;
├─ numpy >=2.0.0,<3.0.0  is not installable because there are no viable options
│  ├─ numpy [2.0.0|2.0.1|...|2.1.3] conflicts with any installable versions previously reported;
│  └─ numpy [2.1.0rc1|2.2.0rc1] would require
│     └─ _numpy_rc, which does not exist (perhaps a missing channel);
└─ pin-1 is installable with the potential options
   ├─ pin-1 1, which can be installed;
   └─ pin-1 1 conflicts with any installable versions previously reported.

Pins seem to be involved in the conflict. Currently pinned specs:
 - python 3.10.* (labeled as 'pin-1')

It looks like the issue is mostly from conflict between numpy>2.0 and basemap (that is used by enso_metrics). The issue is known at https://github.com/matplotlib/basemap/issues/604 but it's hard to estimate the timeline to get this fixed from basemap.
@yyplanton should we consider use cartopy instead of basemap?

Updating ENSO plot to use cartopy instead basemap is in progress: https://github.com/CLIVAR-PRP/ENSO_metrics/pull/88. Once this merged and released, enso metrics version 1.1.4 will be required from PMP.

For enso metrics, https://github.com/CLIVAR-PRP/ENSO_metrics/pull/88 merged and new version tagged (v1.1.4). I am reassign this PR for PMP v3.8.

@acordonez I think this PR is now ready for another round of review -- thank you for doing this! Basemap is replaced by cartopy  in the new enso_metrics version, v1.1.4. Could you rerun the demo 6 in the update env and let me know if any further issue arise?

@lee1043 Just want to check, is it expected to get null values in the demo JSON results? For example:
"BiasPrLatRmse": {
    "diagnostic": {
      "ACCESS1-0_r1i1p1": {
        "value": null,
        "value_error": null
      },
      "ERA-Interim": {
        "value": null,
        "value_error": null
      },
      "GPCPv2.3": {
        "value": null,
        "value_error": null
      }
    },

@acordonez thank you for checking. Could you check if value under metric key got numbers like below?
                    "value": {
                        "BiasPrLatRmse": {
                            "diagnostic": {
                                "ACCESS1-0_r1i1p1": {
                                    "value": null,
                                    "value_error": null
                                },
                                "ERA-Interim": {
                                    "value": null,
                                    "value_error": null
                                },
                                "GPCPv2.3": {
                                    "value": null,
                                    "value_error": null
                                }
                            },
                            "metric": {
                                "ERA-Interim": {
                                    "value": 1.107530462384606,
                                    "value_error": null
                                },
                                "GPCPv2.3": {
                                    "value": 1.9301242972172137,
                                    "value_error": null
                                }
                            }
                        },

@lee1043 Yes the two metrics values match. Otherwise this ran without issue for me.

@acordonez nice, thank you!


YAML schema?

@mmaciejc, @danischm
Is there a YAML schema / definition available?
Such as https://developer.cisco.com/docs/nexus-as-code/data-model/ ?

Not yet. We are working on publishing it.


fix(www): center 404 text

Current dependencies on/for this PR:

main

PR #33   👈

This stack of pull requests is managed by Graphite.


Grid not resizing when screen resizes

Grid does not resize when the window size changes.  Refresh fixes it, but it should resize the grid along with the rest of the puzzle

Fixed in commit mentioned above by removing the resizePuzzle function and just running showPuzzle when resize event happens.  This has the added (possibly negative) effect of "forgetting" what clue the user was working on, but does not erase the letters the user has already entered.  Should not be a big deal, and resizing is rare anyway... except maybe on a tablet when the orientation changes.  I think I will fix this by slightly changing the resize event function, and include it in the next release.


We need your asssistence

@mikeal @emkay @lalitkapoor @jabrena @nylen
Is project suspended? Last closed pull-request dating by May 29.

More or less: https://github.com/request/request/issues/3142


Dynamic Hostname Query

If on start up Jobs sees environment variable TAPIS_LOCAL_NODE_NAME (or tapis.local.node.name) is set to the value "auto", then Jobs will dynamically query the operating system for the hostname.  This value controls the level of SSH logging takes place.

May already be done. Look in code for TAPIS_LOCAL_NODE_NAME


Need better design for "skip" properties

Description
Many of our Ant targets in the preprocess code have "skip" properties that allow you to skip running part of our build pipeline. These are considered internal properties and subject to change, but available to advanced users who understand the code. There are several problems:

They are not documented, even for advanced users (this has come up in Slack a few times).
The naming is inconsistent, with most based on Ant target names rather than on function. You can disable the code that cascades map metadata, but you have to know the Ant target is move-meta-entries making the property name preprocess.move-meta-entries.skip. Some do not use the Ant target name, such as preprocess.clean-map-check.skip. Where preprocess and preprocess2 have overlapping targets, preprocess2 uses the name from preprocess; where they do not, it creates a property with the Ant target name. An odd one is clean-temp.skip which is outside of preprocess.
Property names based on Ant target name makes it hard to split or combine steps
You have to set the property to disable something, which is not intuitive; setting preprocess.keyref.skip=true disables keyref resolution.
Because of how Ant works, setting the variable to anything disables the target, it just checks if the property is set. So, setting preprocess.keyref.skip=false also disables keyref. This is likely familiar to people with a lot of Ant experience, but many of those trying to tweak DITA-OT builds do not have that background.

Possible Solution
Ideally, in a 4.0 major release we could:

Create a consistent pattern for all of the current "skip" properties.
The property names should be based entirely on function, not connected to the Ant target, so that even if we split a single chunk target into 5 targets, the "process chunking" property does not change and works to disable all 5.
The property be set to "false" to disable a step. Ant has istrue condition that maps case-insensitive "true", "yes", and "on" to true; otherwise false.
The actual Ant property used to skip a target is internal-only, and our build should fail if someone tries to set it; going forward this ensures we do not break anyone if those properties have to change
All of this makes it possible to document the properties in a straightforward manner - "Set X to false to disable conref resolution" - without going into detail about why it's "enable this property to disable this feature", or why "disable this property" also disables it, etc.

I'm not sure of the best pattern for these or I'd have started with a PR that updated one step. Adding some ideas, using conref as an example; I like having run or buildstep or build-step in there, but am not attached to anything. I do like having the feature name last so all of these have the same prefix:

run.conref.step=true
run.step.conref=true
run.buildstep.conref=true
build-step.conref=true

Potential Alternatives
We could simply document the properties that exist today, but we've intentionally avoided this:

It locks in the properties like an external API, making them hard to change
The issues above all make it hard to document, requiring an explanation of Ant and of the "enable to disable" naming

Additional Context
This has come up twice in Slack over the last few months, both times about the preprocess.clean-map-check.skip property as a way to skip that step and retain information added by preprocessing.

One open question after thinking on this more - would this design apply to all parameters that let you skip a processing target? Most of them apply to a DITA feature (conref, keyref, resolve links, etc), but some do not (clean temp directory).
I think we could go either way on this (all documented, vs some still internal-only as today), but if some "skip this Ant target" properties stay internal-only our docs should probably note that fact.

would this design apply to all parameters

This is a good point. Right now you use clean.temp=no in to retain temporary files. The falsy value of clean.temp is mapped to internal property clean-temp.skip. So in effect this is already what we're targeting, except for the consistent naming scheme.

For example chunk processing has
<target name="chunk-check">
  <condition property="preprocess.chunk.skip">
    <isset property="noMap"/>
  </condition>
</target>

That is, the processing only runs chunking if the start document is a map. We need to retain this possibility, that processing will not neccessarily know in the beginning whether a given step should be ran. So we can't have an init phase set all internal skip properties in the beginning.

@robander If we use for example run.chunk.step=true and it maps to internal skip property, do we

use a new skip property _chunk.disable and completely remove the old property.
keep using the old property preprocess.chunk.skip.
use the new property but initialize the value based on the old property.

I'm leaning towards option 3 with a deprecation warning for the old property and removing the support in e.g. 4.1.

Reopen because we need additional code changes.

@jelovirt Is there something left to do here?


Initializing first step at page loading

Hello,
I've been implementing impress.js in a web page.
While trying to apply anchors in another context rather than impress.js plugin (beside of impress.js), I realized that the plugin redirects to the first step when the page loads.
I tried to find the part of the code wich does that, but without any success.
Even finding interesting functions which may have lead me to find what I wanted (goto() ,etc.)
If somebody can give me any indication which may me help to block this function or change under my needs - I'd be eternally thankful !
Thanks in advance,
All the best, Vlad.

Can you please post a working example with the steps to reproduce the problem? That will make it easy for us to look into.

Sure - here is the part I was referring to
  $(window).load(getFromHash);

  $(window).bind('hashchange',  getFromHash);

  function getFromHash() {

    switch(window.location.hash) {

      case '#/about/me':
        $('.pane#aboutme').css('display','block');
      break;

      case '#/about/skills/languages':
        $('.pane#languages').css('display','block');
      break;

      default:
        $('.pane').css('display','none');
      break;

    }

  }

There are no steps like #/about/me, or #/about/skills/languages - So when I try to initially use them with the function load() (http://localhost/#/about/me) it is redirected to the first step by the impress.js script, once there is no step with that anchor.
However, changing the the anchor during runtime works perfectly binding the hashchange.
Thanks for your response and time - Vlad.

Sorry that I didn't made myself clear, but what I meant by "Working example" was providing some URL in which, using the code in the master branch, could show the problem using a minimum amount of code in order for someone to debug it. My suggestion would be something like http://jsfiddle.net or http://jsbin.com
If it is not possible, that's ok, your explanation should be enough. It is just that it would make it easy to get an early response if there was a live example that could be inspected later.

Sadly it won't work in jsfiddle or jsbin - I can send you screenshots. It may give you the idea of what's happening.

Unfortunately there is not much anyone can do objectively without a small live example to debug (one or two steps). Maybe the screenshots will help, but without a reduced test case it might be much harder to find the problem, unless it is pretty obvious. We are in the process of retaking impress.js development so that might take some time for us to look into.

It does not seem to be a problem - it may be a configuration to start from the first step when the anchor  does not coincide with any existing step.
I was hoping that some developer or supporter of impress.js would know the function that may be doing it.
I've a video that I'll upload and send to you - so you can see the behaviour.
It's something pretty simple. it's all about knowledge of the source code.
Thanks FagernMartinsBrack for your support till this moment - I really appreicate that.
When I finish this project I'll create a repo with the web adaptation of impress js.

Closing due to the lack of feedback from the OP. If you want to work in the PR again, feel free to comment here to open up the discussion again

By the way, maybe this is related to https://github.com/impress/impress.js/issues/408?


Cannot read property 'fast-render-data' of undefined

@arunoda We're getting this error on our production site consistently and on localhost when we throttle to a slower connection.
Any ideas? Or anything more you need to diagnose?
 path: '/messages',
    layoutTemplate: "mainLayout",
    template: 'main_myMessages',
    yieldTemplates: {
        "header_messages": {to: "header_main"},
        "subHeader_messages": {to: "header_sub"}
    },
    onBeforeAction: Chat.onBeforeAction,
    waitOn: function () {
        return Subs.subscribe('conversations-v2.0.0');
    },
    fastRender: true

Is it possible to have some stack traces?
Also tell me the FastRender version you are running?

@arunoda
FR 2.4
And its hard to get a stack strace on this, what i cant tell you the errors location is in inject-data?

Can***

There is not FR 2.4 (I hope it's 2.3.1)
Anyway, I'll try to find a cure. (It's with on inject data).

May be this could be the issue: https://github.com/meteorhacks/inject-data/issues/1
I've fixed it with the latest FR version.

I have already experienced this issue few times. The solution for this is quite interesting. Change order of meteorhacks:fast-render .meteor/packages.
Invalid order `.meteor/packages

Valid order `.meteor/packages

I'm having the same issue, and so sad @parhelium's crazy hack does not work for me :(
I found that when I revert back my repo to an earlier commit and then revert back, the problem will be gone (for a few hours). And then come back. Here is a screenshot. Hope it could helps a bit ..

@minfawang You have another JS error before this. I hope that'll break the fas-render-data initialization as well.
If not, try to make sure you are using the latest version of fast-render. Sometimes, meteor installs some older versions.

@arunoda Yeah.. I'm now pretty sure it's related to using Astronomy to define Meteor.users on the server side, And maybe using React-Router SSR along with fast render. I know both two packages will have a major update very soon, I will see how it goes after the update..
Thanks for reaching out!


HentaiDex | Added HentaiDex

Checklist:

[x] Updated extVersionCode value in build.gradle for individual extensions
[ ] Updated overrideVersionCode or baseVersionCode as needed for all multisrc extensions
[ ] Referenced all related issues in the PR body (e.g. "Closes #xyz")
[x] Added the isNsfw = true flag in build.gradle when appropriate
[ ] Have not changed source names
[ ] Have explicitly kept the id if a source's name or language were changed
[x] Have tested the modifications by compiling and running the extension through Android Studio
[x] Have removed web_hi_res_512.png when adding a new extension

the site looks like MangaThemesia multisrc...?

Should I change to that multisrc?


[Windows] Crashed when I pushed Ctrl + S (Save)

Describe the bug
Crashed when I pushed Ctrl + S (Save)
To Reproduce

Open Alice Novel (.exe)
Open .anproj file on it
Save

Expected behavior
Crashed
Screenshots
No response
Desktop
- OS: Windows10 22H2

Smartphone
- Device:
- OS:
- Version

Additional context
may be the reason is native function (community tool kit - alert)

The reason of this issue is Toast. (In save is not working, but in load is woking.)

It is fixed after remove Toast. But I think it is nessesary to show that save was successed or not.

This bug happens on windows (doesn't happen on android)

https://github.com/CommunityToolkit/Maui/discussions/1527

Maybe:
.msix -> no error?
.exe -> error

This issue may close after reverted #45


How can add open context menu on left click ?

I am trying to open the Context menu on left click but it's not working.
So could you please help me how can add open context menu on left click ?

Check here


Issue with alignment for UMI-tagged DNA-seq

Version info

bcbio-nextgen 1.2.3:
CentOS 8

To Reproduce
Exact bcbio command you have used:
bcbio_nextgen ../config/QIAseq-071020B.yaml

Your sample configuration file:
QIAseq-071020B.yaml.txt
Observed behavior
Error message or bcbio output:
Traceback (most recent call last):
  File "/staging/gtcmolecular/local/share/bcbio/galaxy/../anaconda/bin/umis", line 11, in <module>
    load_entry_point('umis==1.0.6', 'console_scripts', 'umis')()
  File "/staging/gtcmolecular/local/share/bcbio/anaconda/lib/python3.6/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/staging/gtcmolecular/local/share/bcbio/anaconda/lib/python3.6/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/staging/gtcmolecular/local/share/bcbio/anaconda/lib/python3.6/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/staging/gtcmolecular/local/share/bcbio/anaconda/lib/python3.6/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/staging/gtcmolecular/local/share/bcbio/anaconda/lib/python3.6/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/staging/gtcmolecular/local/share/bcbio/anaconda/lib/python3.6/site-packages/umis/umis.py", line 1244, in bamtag
    aln.tags += [('RX', match.group('MB'))]
AttributeError: 'NoneType' object has no attribute 'group'
' returned non-zero exit status 1.

Expected behavior
This is my first time running this set of FASTQ files, so I am not sure if there are formatting issues, however I have eliminated FASTQs with fewer than 1000 reads.
Log files
bcbio-nextgen-commands.log
bcbio-nextgen-debug.log
bcbio-nextgen.log
Additional context
The UMI tags were manually prepared as I used bcl2fastq's UMI trim functionality, followed by a sed expression to add "UMI_" to the beginning of every UMI sequence. Below is example of one of the headers from one of my samples. For reference, these are QIAseq libraries with one random 12-mer at the start of read 2 as the UMI.
@NB551615:187:HWHW5BGXF:1:12205:19216:2634:UMI_GTTGGATCAAGC 1:N:0:CTCTCTAT+ATTAGACG

I hope that eventually I won't need to add "UMI_" to use bcbio's UMI functions. It is rather time consuming and breaks compatibility with Illumina's UMI tools.

Hi @IvantheDugtrio !
UMIs are useful to pick up low-frequency variants. We use umis and fgbio to process them:
https://bcbio-nextgen.readthedocs.io/en/latest/contents/internals.html?highlight=fgbio#somatic-tumor-only-variant-calling-pipeline-with-umis-step-by-step
Could you please share a 10k subset of your fastq files?
Sergey

Hi @naumenko-sa ,
In another thread, I discovered that the FASTQs that I was processing had inconsistent UMI sequences, where some of the UMI sequences were missing the "UMI_" tag, due to wildcard bases present. Fixing this appears to have resolved my problem.
Thanks,
Ivan


Cookie store doesn't seem to work with redirects

I was porting something from python (using requests sessions), which involves a post for login (external CAS) and then access to the site with the cookie from the login.
Using python everything is fine, but reqwest goes into a redirection loop because its not storing the cookie received the in post login (which involves 2 redirections).
Is there something else I have to enable apart from .cookie_store(true)?

Hm, the only thing I can think of is that the cookie store is determining that the cookie shouldn't be set. This could be because the domains, paths, or other attributes don't match on the redirects... Or a bug in our store :)

Could you provide more detail on the cookies and flow? The redirect logic in reqwest specifically tries to avoid passing on sensitive headers.

Closing due to inactivity.

I'm running into this problem too. The code is this .
I think it's because I don't add the cookie from the cookie_store to the header when I generate the Request in Client::request. I have a pull request ready to go. Or is there another way to use it correctly?

I'm running into this problem too. The code is this .
I think it's because I don't add the cookie from the cookie_store to the header when I generate the Request in Client::request. I have a pull request ready to go. Or is there another way to use it correctly?


Add category selection for the UI

Dropdown menu added, need to add TDD and BDD test cases

Dropdown menu added, need to add TDD and BDD test cases

https://github.com/CSCI-GA-2820-FA23-001/products/blob/18169a53fd1024fa4664f653e7d7cdd82105028f/features/products.feature#L23
This line should change to that:
    And I select "SPORTS" in the "Category" dropdown

Test case added, .feature file updated


stops report

Hello,
When we run a stops report we can see the stop duration per trip but we don't have the total stop duration during the selected period.
As we already have stop duration per trip it would be nice to have also columns fo move duration and distance.
Report should display the Total stop duration, Total move duration and total distance for the selected periode and give a graph l to follow the variation of the stop duration per day (interesting when you run report for several days) like the graph we already have for speed.
it would be great also to add a dashboard to the report section to display information bellow with chart and bar graph :
Number of online units
Number of offline units
Number of Parking units
Number of moving units
Total distance traveled by all units during the day
Total move duration for all units during the day
Total parking duration for all units during the day
it will look something like  :
https://ibb.co/gtJwmYQ
these changes will contribute to enhance and improve the user experience and provide more insights
Thank you and  hope these suggestions will be taken into consideration for nex releases

please check this example :
https://ibb.co/2hvxwsm


docs: translate isValidElement

Closes #552
Description
Translate the isValidElement page.
Page URL: https://id.react.dev/reference/react/isValidElement

Some requested changes. @renomureza

Hi @resir014, i have fixed it.

Your call @resir014

@mazipan can merge without waiting for @resir014 if wanted to

We can merge now, I'll do it soon. @mhaidarhanif


Code highlighting: Lua or JS?

@jimjam-slam While thinking through how to build the code-highlighting feature, I took a look at the HTML produced by revealjs.

The separate of each line of code into (labeled) spans makes it pretty easy to assign the highlight-line class to particular lines and then has-highlights to the wrapping code tag. It got me wondering: should this be implemented in Lua or JS? 🤔
The Lua approach would seem to be:

Copy the relevant code block into a new code block and assign it it's own cr-id (say: penguins-plot-hl-1).
Affix the classes to the appropriate block or inline elements.

The JS approach would just be to modify the existing DOM, adding and removing those classes when necessary.
The only advantage that I can see to the Lua approach is that if we wanted, we could later extend it to do something helpful if the author wanted a non-interactive version of the page (either static html or pdf). The advantage of the JS approach is that it keeps the DOM a bit leaner (we're not duplicating blocks) and it makes it possible to think of closeread more like closereadjs - a JS library that could be used independently of Quarto.
Thoughts?

Mmmm, good question! One potential reason to go for JS is that we know we won't mess with any of Quarto's treatment of the code block — if it's Lua and there's code block processing happening after, that could break.

Ah, good point!

That said, Quarto does offer a lot of control over Lua filter execution timing now!

I chatted with Christoph at the Quarto office hours about this. Learned a lot and came down on the side of JS.


Not all the songs get downloaded.

I've noticed recently that a lot of songs get dropped from a playlist.

This isn't something that I can fix.

Are other people still having this issue? Or is there a way to get all the songs to download now?


Null Reference error while running Desktop build of Demo scene

Hello Team,
This is related to the WalletConnectUnity version from https://github.com/WalletConnect/WalletConnectUnity/tree/2.0.
I'm using Unity version 2021.3.23f1
When I run the SimpleUnityDapp demo scene in Unity Editor, it runs fine without any errors.
However, when I make a Windows build and run it, it gives the following error after I choose a chain from the list and press Connect button
Console Log Error :
NullReferenceException: Object reference not set to an instance of an object.
WalletConnect.WCSignClient.Connect (WalletConnectSharp.Sign.Models.Engine.ConnectOptions options) (at <00000000000000000000000000000000>:0)
System.Runtime.CompilerServices.AsyncTaskMethodBuilder1[TResult].Start[TStateMachine] (TStateMachine& stateMachine) (at <00000000000000000000000000000000>:0) WalletConnect.WCSignClient.Connect (WalletConnectSharp.Sign.Models.Engine.ConnectOptions options) (at <00000000000000000000000000000000>:0) WalletConnectUnity.Demo.SimpleSign.ConnectScreen.OnConnect () (at <00000000000000000000000000000000>:0) System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start[TStateMachine] (TStateMachine& stateMachine) (at <00000000000000000000000000000000>:0) WalletConnectUnity.Demo.SimpleSign.ConnectScreen.OnConnect () (at <00000000000000000000000000000000>:0) UnityEngine.Events.InvokableCall.Invoke (System.Object[] args) (at <00000000000000000000000000000000>:0) UnityEngine.Events.UnityEvent.Invoke () (at <00000000000000000000000000000000>:0) UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction1[T1] functor) (at <00000000000000000000000000000000>:0)
UnityEngine.EventSystems.StandaloneInputModule.ReleaseMouse (UnityEngine.EventSystems.PointerEventData pointerEvent, UnityEngine.GameObject currentOverGo) (at <00000000000000000000000000000000>:0)
UnityEngine.EventSystems.StandaloneInputModule.ProcessMousePress (UnityEngine.EventSystems.PointerInputModule+MouseButtonEventData data) (at <00000000000000000000000000000000>:0)
UnityEngine.EventSystems.StandaloneInputModule.ProcessMouseEvent (System.Int32 id) (at <00000000000000000000000000000000>:0)
UnityEngine.EventSystems.StandaloneInputModule.Process () (at <00000000000000000000000000000000>:0)
UnityEngine.EventSystems.EventSystem.Update () (at <00000000000000000000000000000000>:0)
--- End of stack trace from previous location where exception was thrown ---
WalletConnectUnity.Demo.SimpleSign.ConnectScreen.OnConnect () (at <00000000000000000000000000000000>:0)
System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start[TStateMachine] (TStateMachine& stateMachine) (at <00000000000000000000000000000000>:0)
WalletConnectUnity.Demo.SimpleSign.ConnectScreen.OnConnect () (at <00000000000000000000000000000000>:0)
UnityEngine.Events.InvokableCall.Invoke (System.Object[] args) (at <00000000000000000000000000000000>:0)
UnityEngine.Events.UnityEvent.Invoke () (at <00000000000000000000000000000000>:0)
UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at <00000000000000000000000000000000>:0)
UnityEngine.EventSystems.StandaloneInputModule.ReleaseMouse (UnityEngine.EventSystems.PointerEventData pointerEvent, UnityEngine.GameObject currentOverGo) (at <00000000000000000000000000000000>:0)
UnityEngine.EventSystems.StandaloneInputModule.ProcessMousePress (UnityEngine.EventSystems.PointerInputModule+MouseButtonEventData data) (at <00000000000000000000000000000000>:0)
UnityEngine.EventSystems.StandaloneInputModule.ProcessMouseEvent (System.Int32 id) (at <00000000000000000000000000000000>:0)
UnityEngine.EventSystems.StandaloneInputModule.Process () (at <00000000000000000000000000000000>:0)
UnityEngine.EventSystems.EventSystem.Update () (at <00000000000000000000000000000000>:0)
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.b__7_0 (System.Object state) (at <00000000000000000000000000000000>:0)
UnityEngine.UnitySynchronizationContext+WorkRequest.Invoke () (at <00000000000000000000000000000000>:0)
UnityEngine.UnitySynchronizationContext.Exec () (at <00000000000000000000000000000000>:0)
Requesting a solution for this.
Thanks

Didn't you report the error 'socket stalled'? The error you displayed should have been caused by not connecting the socket to the package. I also encountered the same problem

Hey @GaoG001108
I didn't get socket stalled error. Everything is running smoothly in editor.
This error is showing up when I run a Windows Desktop build for the demo scene.

It's fixed it latest update. Thank you team.


Unable to start Conductor using cassandra

I am unable to launch conductor locally using cassandra in server.properties
server.properties
db=CASSANDRA
workflow.cassandra.host=host
workflow.cassandra.port=port
workflow.cassandra.keyspace=key
I found out that QueueDAO and MetadataDAO implementations for cassandra are missing.
Can you please correct me if I am missing any thing here in the process of starting the conductor.

Hi Conductor Team,
Same me also trying to connect with Cassandra. The following issue i observed. Please correct me if i am going wrong.
The below mentioned lines of code expecting break statement in ModulesProvider.java
        case CASSANDRA:
            modules.add(new CassandraModule());
            logger.info("Starting conductor server using cassandra.");
        case REDIS_SENTINEL:
            modules.add(new RedisSentinelModule());
            modules.add(new RedisWorkflowModule());
            logger.info("Starting conductor server using redis_sentinel.");
            break;
    }

Hi Team,
Is it required to implement MetadataDAO and QueueDAO for cassandra implmentation.
Question) Cassandra and Redis sanitel both required in modulesproviders.java  files ?
Please help me....

@Bethalaayyappa you are right, the break statement is missing here. Thanks for pointing it out.

Is it required to implement MetadataDAO and QueueDAO for cassandra implmentation.
These are required to use the C* DAO implementation. As mentioned in earlier comment, please feel free to contribute the missing implementations to this module.


Fix Unstable functional test

This patch improves the basic envTests and checks that the Status fields have been initialized, as well as the Condition that should be set to False because the CR has been created, the reconciliation loop has been triggered, but the deployment is not Ready.

/test functional

@gibizer  the previous run failed like [1].
I see two failures during th.SimulateMariaDBDatabaseCompleted(manilaTest.Instance) but it's not consistent (the second run just passed and it never fails locally).
Do you think this can be related to the environment tuning in prow?

I see two failures during th.SimulateMariaDBDatabaseCompleted(manilaTest.Instance) but it's not consistent (the second run just passed and it never fails locally).
Do you think this can be related to the environment tuning in prow?
[1] https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/origin-ci-test/pr-logs/pull/openstack-k8s-operators_manila-operator/80/pull-ci-openstack-k8s-operators-manila-operator-main-functional/1666066552576806912/artifacts/test/build-log.txt

  2023-06-06T13:01:35Z	INFO	---Test---	KeystoneAPI created	{"KeystoneAPI": "962acb65-7073-4b15-b3e9-d697ef69fc97/keystone-06cf3bee-08b5-4d5c-aa5a-341446be38c8"}
  2023-06-06T13:01:35Z	ERROR	Reconciler error	{"controller": "manila", "controllerGroup": "manila.openstack.org", "controllerKind": "Manila", "Manila": {"name":"manila","namespace":"962acb65-7073-4b15-b3e9-d697ef69fc97"}, "namespace": "962acb65-7073-4b15-b3e9-d697ef69fc97", "name": "manila", "reconcileID": "9339e539-933f-4b1b-b8de-07b43a5b51b0", "error": "KeystoneAPI.apps \"No KeystoneAPI object found in namespace 962acb65-7073-4b15-b3e9-d697ef69fc97\" not found"}
  sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
  	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.14.6/pkg/internal/controller/controller.go:329
  sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
  	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.14.6/pkg/internal/controller/controller.go:274
  sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2

This just seems impossible the test created a KeystoneAPI instance and then the reconciler
repeatedly tried to list it without success. Maybe (maybe?!) the etcd / kube-api was slow
enough and the test timed out.
Currently we use timeout = time.Second * 2 while nova uses 10 seconds.  So this patch dumps the timeout to 10secs. Also we
    adjusts interval based on the timeout value


PLT still has problems, I will submit an output log

output_log.txt
I'm pretty sure I've updated the module to version 0.7.5
ModException: The Mod D:\steam2\steamapps\workshop\content\255710\2696146766 [UIIndicator.dll, PropAnarchy.dll] has caused an error ---> System.NullReferenceException: Object reference not set to an instance of an object
at PropAnarchy.PAPainter.Initialize (SimulationManager) <0x0007b>
at PropAnarchy.PAModule.OnLevelLoaded (ICities.LoadMode) <0x00554>
at (wrapper dynamic-method) LoadingWrapper.LoadingWrapper.OnLevelLoaded_Patch9 (LoadingWrapper,SimulationManager/UpdateMode) <0x00101>
--- End of inner exception stack trace ---

Don't use Prop Anarchy in Map editor

Not sure why you're getting this error, but there are a couple things that PropAnarchy.PAPainter (prop painter function) needs to function correctly. An enabled Move It Mod and a color picker template which is provided by the game base, but only in game, and not in map editor.
These are the two things that prop painter function needs in order to continue working correctly. If this step fails, then the entire prop anarchy module will not work.
I assumed map editor at first because that's usually the case, but if it is not, then its probably Move It. If that's not the case, then Prop Anarchy doesn't work for your Cities Skylines.

This is the error I received when I used PLT on a blank map
System.NullReferenceException: Object reference not set to an instance of an object
at EManagersLib.EPropManager.OverlapQuad (Quad2 quad, Single minY, Single maxY, CollisionType collisionType, Int32 layer, UInt16 ignoreProp) [0x00000] in :0
at PropAnarchy.PLT.PlacementError.CheckAllCollisionsTree (Vector3 worldPosition, .TreeInfo treeInfo) [0x00000] in :0
at PropAnarchy.PLT.PropLineTool+ItemInfo+ItemData.UpdatePlacementError () [0x00000] in :0
at PropAnarchy.PLT.DrawMode.UpdatePlacementErrors (.ItemData[] itemDatas) [0x00000] in :0
at PropAnarchy.PLT.DrawMode.CalculateAll (Boolean continueDrawing) [0x00000] in :0
at PropAnarchy.PLT.DrawMode.UpdatePlacement (Boolean forceContinueDrawing, Boolean forceKeepLastOffsets) [0x00000] in :0
at PropAnarchy.PLT.DrawMode.UpdatePlacement () [0x00000] in :0
at PropAnarchy.PLT.Modes.DrawStraight.OnSimulationStep (Vector3 mousePosition) [0x00000] in :0
at PropAnarchy.PLT.PropLineTool.SimulationStep () [0x00000] in :0
at ToolManager.SimulationStepImpl (Int32 subStep) [0x00000] in :0

Did you enable EML?

Please forgive me for wasting your time on this silly little question, and thank you for your patience.

Please forgive me for wasting your time on this silly little question and thank you for your patience in answering it.
The problem has been solved


Output downloaded bytes to BytesIO

Checklist

[x] I'm asking a question
[x] I've looked through the README and FAQ for similar questions
[x] I've searched the bugtracker for similar questions including closed ones

Question

Is it possible to use a io.BytesIO as a download destination when using youtube_dl from Python?

How do I get progress from Python if I use stdout for file output?

Progress messages are written with the to_screen() method. When the download output is stdout, the method writes to stderr instead.

Or you can use a logger, if you are creating a program that calls yt-dl. See the manual.
Duplicate of #30815.


Review Public API for Notifications

Is your feature request related to a problem? Please describe.
You can't implement the notify verb without manually importing src/service/notification_service.dart
Describe the solution you'd like
At the bare minimum export NotificationParams from at_client.
Describe alternatives you've considered
Maybe also export NotificationService as well so you can do something like:
AtClientManager atClientManager = AtClientManager.getInstance();
AtClient atClient = atClientManager.atClient;
NotificationService notificationService = atClientManager.notificationService;

atClient.put(...);
notificationService.notify(...);

Additional context
N/A

@gkc @VJag I would love some feedback on this, I can go ahead and make the changes based on your input.


phpExtensions.yaml: 2.2.3 -> 2.2.4

Update the PHP yaml module.
Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

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

@ofborg build phpPackages.yaml

@rycee The commit message needs to be updated

@drupol Good catch! Updated now. Many thanks for having a look 🙂

@drupol Btw, since you have understanding of PHP. If you have any time left over at some point then please have a look at https://github.com/NixOS/nixpkgs/pull/361808/.

@ofborg build phpExtensions.yaml


Optimise StraxMain/StraxTest dockerfiles

This results in the images being considerably smaller, by building the daemon in the first stage and then only copying the compiled binaries to the next stage. Since we no longer need the full SDK in the second stage, the resulting image is only about 320mb.
I attempted to build the images using Alpine as well but that introduced several issues for only a modest further space reduction (final image ~200mb).

Incorporated into release/<IP_ADDRESS> instead


Fix theme-switching in Firefox Nightly.

Over in:

https://github.com/whatwg/html/issues/3840
https://bugzilla.mozilla.org/show_bug.cgi?id=1281135

I'm trying to come up with a model for <link rel="stylesheet" disabled> in
which Blink / WebKit and Firefox can agree on.
See that HTML spec issue for all the inconsistencies of WebKit / Blink, and the
following post for more context:

https://groups.google.com/d/msg/mozilla.dev.platform/BdgNaChHnpY/mhXzCBwSCgAJ

Unfortunately, my change to Firefox breaks the Ghost Admin panel night-mode
switch (you can see it in Firefox Nightly).
This is because with my change, removing the disabled attribute from an
stylesheet behaves the same regardless of whether the disabled attribute is
added dynamically or not.
That means that adding the disabled attribute dynamically "unloads" the
stylesheet completely (just like when the attribute is there before inserting
the link in the document, or from the parser).
This is problematic for the code as-is, because it means that each time that the
load event fires when the disabled attribute is removed on an alternate, then
it's added again. :)
Prevent that from happening by removing the load event listener ASAP. What this
code wants is to only resolve the promise once after all.
Given this is so far the only regression from my change that has been reported
(over at https://bugzilla.mozilla.org/show_bug.cgi?id=1546707), I think fixing
the Ghost-Admin panel is worth it.
If this pattern is somehow common, then we'll probably revert that patch and go
back to the sad current state of affairs regarding interop :(

Thanks @emilio, that whole issue certainly sounds like a nightmare of compatibility issues! I've tested in latest of all browsers that we care about as well as FF Nightly and all seems good so I'll go ahead and merge 🙂

Thanks!


CopyTaskPredictor: Avoid considering DependsOnTargets for targets with a false condition

CopyTaskPredictor: Avoid considering DependsOnTargets for targets with a false condition

/azp run


Feature Request: Accept a list of nodes for target_node

target_node only accepts a single proxmox node for VM instantiation which means you deploy everything per resource onto one proxmox node instead of the proxmox cluster.
By having it accept a list you can have it distribute every vm created to each node until it runs out.
e.g.
count                  = 9
name                  = "vm-${count.index + 1}"
target_node        = [
"pve1",
"pve2",
"pve3",
]
In this scenario it would place 3 VM's on each node of a 3 node proxmox cluster

I think this is not the providers task, rather proxmox's. You want something like VMware DRS, but proxmox can not distribute VMs automatically based on resource consumption.
Sidenote: you would also lose the ability to migrate VMs by hand from terraform.

I'm not sure why the provider being able to select a group of nodes would be outside of things it can accomplish.
I already have it operating in a fairly similar fashion just with worse syntax and it requiring nodes with a specific naming structure. I have mine distribute across pve1, pve2, pve3 below but it would fail if the names weren't setup like they are or if for some reason a number was skipped.
 target_node       = "pve${(count.index % 3) + 1}"
Also, I may not want to distribute it VMs to all the nodes in the cluster but only specific ones which seems like it would be more suited to the provider.
Could you elaborate on how this would prevent being able to migrate the VMs?

As far as I know, you can't even do the requested functionality in Proxmox VE itself. You HAVE to select a node to deploy the VM on.
Migration: The current behavior of the target_node attribute change is to migrate from node A to node B. Given your example snippet above: how would you migrate a VM from pve1 to pve3 using Terraform only?

But, I am selecting what node to place them on.
I don't see why that would preclude you from changing target_node: pve1 to pve3.
To provide context i'm trying to deploy groups of identical VM's for a kubernetes cluster. If I wanted to migrate those VM's the proposed change would just do a new round robin on the new list and migrate them accordingly. It wouldn't be the most efficient thing in the world but it would be far more flexible.

I'm not sure this belongs in the provider either, as it's not something that Proxmox itself does.
You can achieve this already in Terraform by doing it the way you have already with a list % index sort of approach.
Providers should really stick to implementing backend functionality, not baking in new business-logic that varies from environment to environment. For example, my three nodes are very different hardware, I'd want the selection to be [1, 1, 1, 2, 2, 3] because node1 is three times the capacity of node 3.
Getting Proxmox to implement a DRS equivalent would be far more agreeable :)

I am solving this issue with this snippet:
target_node     = element(var.nodes, count.index)
where var.nodes is the list of nodes.

I am solving this issue with this snippet:
target_node = element(var.nodes, count.index)
where var.nodes is the list of nodes.

Great idea, the element wraps around so it allows you to at least work through the list.  Thank you!


feat(providers): add posthog support

This PR
Add provider for PostHog.
It also adds go workspace because gopls doesn't work properly in multi-module repos without it.
Related Issues
?
Notes
Not yet added:

Tests
Examples
Readme

Follow-up Tasks
How to test

Hey @morigs, thanks for the PR. I've kicked off the CI and it looks like the tests are failing. Would you mind taking a look when you have a moment?

Ah, sorry. I see you have this PR marked as a draft. Ping me if you need anything!

Yeah, sorry, unfortunately, I don't have time to finish this now :(
I hope to return to this someday

Closing for now due to inactivity.


Find the path from start to goal.

Starting from the goal node, follow the parent node until finding the start node. The path should be the most optimal path.

Check reconstruct path from Pseudocode

Inspect the memory state of the node parent element from AStar::ReconstructPath() function


Initial changes for GuiceVerticleFactory which uses Guice for verticle creation

Added the following changes:

GuiceVerticleFactory - represents verticle factory which uses Guice for verticle creation. Implementation is based on JavaVerticleFactory from Vertx Core package.
GuiceVertxLauncher -  extends standard Vertx launcher.  Is responsible for creating single DI container (injector) for vertx instance and registering GuiceVerticleFactory.
Tests which cover main use cases.

Readme file will be updated in separate pull request. I am also going to add examples as well. That's why to not mix changes it makes sense to review them separately.


Peer to peer code review

Great Job 💪, very few notes to take care of 🙏

You have done a great job. Every thing looks great. Only to little points that need improvements
It would be better if you can change the title of the page from "Document" to something more accessible and recognizable among multiple open tabs such as "Essonaham - Full-stack Developer"
As color contrast is one of the requirements of accessibility, it would be better if you can change this button to be white like the rest, which will make it readable and accessible

**You made it very well.**✅

There are some suggestions project-skills li padding & margin can be decreased.
try to make the form submit button in the center.

Thanks


Allow Rails 5.2 to be used

Also bump the Ruby versions tested against.

are there any open tasks or issues? if not merging and releasing would be great :)

Small purposeful commits next time please. This is at least 2 commits worth, probably 3. The rails version change, the ruby version change, and probably one for the jruby exception.


turned off node polyfill, which caused issue with csp security rules

Description
The polyfill in webpack for the global variable uses eval, which conflicts with CSP security rules
https://github.com/webpack/webpack/issues/5627

@ClementParis016 @youldali It's going to be merged in the branch 3.4.1, is that normal

@ClementParis016 @youldali It's going to be merged in the branch 3.4.1, is that normal?

I am not sure about the process here. Could you confirm @ClementParis016 ?

@gjuchault @youldali yes it's normal, it's exactly as stated in the process in the README.md:


DSCS-863: add minLength to product schema

Description
While we assert in the product schema that the sku field is not null, it should also not be an empty string. Recently ran into some customer issues where an empty sku field left events unprocessed. This schema needs to be updated in the snowplow console, but I will wait for feedback here before making any schema changes. Also interested in the process for updating this schema within snowplow.
Related Issue
Please see internal adobe jira issue DSCS-863.
Motivation and Context
sku is a required field, which means it should also not be empty.
How Has This Been Tested?
Downstream processing pipelines for recommendations were breaking because the sku field was empty for some events for some customers. In those pipelines queries that assumed the sku would not be empty on product events have been updated to explicitly remove empty strings as well as the null values so that the pipelines do not error with missing sku information. Twofold, schema validation should also handle empty product event sku information so that events that do not meet our expectations fail fast and return accurate assumptions to our customers about which product information may be missing required sku data.
Screenshots (if appropriate):
Types of changes

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

Checklist

[x] I have signed the Adobe Open Source CLA.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[x] I have updated the documentation accordingly. - I believe the schema is self documenting, but happy to update other docs if necessary
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

@sharkySharks I like the idea and glad we are doing this.
The file you're changing here is for documentation only. The correct steps to actually do what you're trying to do are below:

Go into the Snowplow console and create a new version of the Product schema in QA. 2.1.0 is correct - this is a breaking change that will result in many more events ending up in the Bad Bucket.
Test locally against Snowplow QA by changing the schema URL to point to new version:
https://github.com/adobe/commerce-events/blob/main/packages/storefront-events-collector/src/schemas.ts#L9
Publish Snowplow changes to Prod
Submit PR here that changes docs AND schema file above ^^ to point to new URL

Let me know if any of this is unclear!

@sharkySharks yes for QA you have to be on VPN, sorry forgot to mention earlier

For context on the version number, snowplow did not allow for the minor version to be set to 2-1-0, this is the message that I received and decided to go with the patch bump version:

Update on testing, I was able to test this out in the qa environment locally, sent productPageView and addToCart events from localhost, saw them end up in the good bucket in kibana. Nothing in the bad bucket from those events. Not sure if other events need to be tested as well.
I think we should also consider minLength for the required name field as well.
Also, I do not have production promotion permissions in snowplow as far as I can tell. But latest code here is what I tested against.

@sharkySharks this sounds right. I think you tested the right things though you should probably do a search through the repo to make sure no other events are using the product context (or if they are, to test those as well).
Next steps will be:

merge new snowplow schema version to prod (push button)
merge your code here to QA
have shirley and vinod run their smoke tests and verify all is good in QA

After that is done, you should be able to publish your change here to prod!

@sharkySharks note that once this change goes into prod, we're going to see a uptick of events going to the bad bucket - that is the correct behavior and what we want ofc - but worth keeping an eye out and doing some reporting on what changed.

For context on the version number, snowplow did not allow for the minor version to be set to 2-1-0, this is the message that I received and decided to go with the patch bump version:

I think it should be 3-0-0 since it's a breaking change. That way, we can roll it back easily if something goes wrong

@krithikachandran I am good with using the major version upgrade, particularly if we think it is going to be a breaking change even if it is a bug fix. I will redeploy it out with that version and test.
@aniham I don't have permissions to push the schema to prod when it is ready. I don't see that button, if you could check my permissions I can do that after I test the major version upgrade.

@sharkySharks you're now admin in Snowplow - should be able to merge!

Ran both positive and negative tests against the new schema 3-0-0.
Here is what happens in the negative case:

migrated the schema to production in snowplow.

If all looks good to you here I'll wait for a final sign off on the latest schema version update on this pr and then go through QA  testing tomorrow for the app.

Hey folks, I've updated this pr, I have not tested this yet as I want to get feedback on the potential changes first and then move forward with making the changes in snowplow for qa and run through all the testing paths once there is agreement on these changes.
I went ahead and added minLength to required fields for string and array fields that did not also include null in their accepted types. I have not done the work to verify what fields should still be required or not, I just blanketed all required string and array fields with minLength for schemas in this repo.
This is coming out of numerous outages this year where required fields were empty and broke various parts of ML pipeline processing.


[grpc-objc]Need Expose Cronet quic error message to the application layer.

Is your feature request related to a problem? Please describe.
grpc-objc need Expose Cronet quic error message to the application layer.
Describe the solution you'd like
grpc-java has expose the error like
org.chromium.net.impl.QuicExceptionImpl Exception in BidirectionalStream: net::ERR_QUIC_PROTOCOL_ERROR, ErrorCode=10, InternalErrorCode=-356, Retryable=false, QuicDetailedErrorCode=19

For android, Cronet always passes a CronetException to grpc, so that they can get quic error message.(link).
But for iOS, we can only get a net error from Cronet, we don't have any quic info. (link).
Cronet may not have a plan to change the api, so close the issue for now.


add: Selectable process on FSM and BT node

Yo! :) Hah you are fast. I wanted to do it today but thx for doing it! :)

@SirPigeonz take a look at #27 and tell me what you think of it. Is that what you had in mind?
Yes, thats what I wanted to do. Although I have few tips to make it more performant in Godot.

Instead of using if to disable processing the rest of the block I think it's better to disable/enable required process callbacks.
Godot enables _process() and _physics_process() automatically if you add them to a Script, but you can disable them and enable them manually by running (usually in _ready() callback):
set_physics_process(bool)
set_process(bool)

This way you can controll which process is used for givan node even if both are present in the Script, saving some resources :)
Something like:
# No changes here
enum ProcessType {
    IDLE, ## Updates every frame, as often as possible.
    PHYSICS ## Updates on a fixed rate, 60 times per second by default. This is independent of your game's actual framerate, and keeps physics running smoothly
}

# Default PHYSICS and we can use setter to enable/disable callbacks
@export var process_type: ProcessType = ProcessType.PHYSICS:
	set(value):
		process_thread = value
		set_physics_process(process_thread == ProcessThread.PHYSICS)
		set_process(process_thread == ProcessThread.IDLE)

func _ready() -> void:
	# Setters are not run when var is initialized so we have to setup callbacks manually first on ready()
	set_physics_process(process_type == ProcessType.PHYSICS)
	set_process(process_type == ProcessType.IDLE)

func _physics_process(delta: float) -> void:
	_process_code(delta)

func _process(delta: float) -> void:
	_process_code(delta)

# This will be function that can be pasted in both callbacks, because only one of them will be run
# depending on process_type
func _process_code(delta: float) -> void:
	if not active:
		return

	blackboard.set_value("delta", delta)
	current_status = entry_point.tick(actor, blackboard)

Actually we can also skip:
if not active:
		return

And do something like this when eneable/disable process callbacks:
set_physics_process(active and process_type == ProcessType.PHYSICS)
set_process(active and process_type == ProcessType.IDLE)

This way process callback will be never even run when BTree is not active.

Feel free to open a PR yourself so you get the appropriate credit :)
These changes look good!

Feel free to open a PR yourself so you get the appropriate credit :)
These changes look good!

Thx and sure thing! :) I will have some free time in the evening (Polish time) I will make a PR then.

Great. I will close this one then!


Megablocks-based MoE

This PR adds dropless MoE support using the Grouped GEMM implementation in megablocks.
Features
Unlike the legacy DeepSpeed MoE implementation that uses the data parallel groups for expert parallelism, this implementation uses the model parallel group to parallelize the experts.  This avoids the following problems:

Using data parallel groups to distribute the experts will incur inter-node communications to do a forward pass through a single layer
MoE + pipeline parallelism is very complicated to reason about when you have MoE weights distributed across data parallel groups & deepspeed doesn't natively support it.

Clarified arguments to make it clear which ones are only required for token dropping deepspeed MoE.
Use sinkhorn routing by default, support k>=1.
Testing
Tested PP [3, 2, 1] and MP [1, 2, 4, 8] on Ampere GPUs.
Notes
Added megablocks and grouped_gemm to the dependencies. It might be desirable to pull some of the kernels in directly like in NVIDIA megatron-core.

👍
Just wanted to jump in with some quick clarifications! DS doesn't actually necessitate using DP groups for expert parallelism / as your EP groups. You can choose to do so if you want - these are just different configurations of the parallelism, which generalizes over these arrangements. So if you want to use the model/tensor parallel groups to parallelize your experts (and avoid DP shuffling), you can do so just by setting the DEP size to be equal to your DP size (rather than DEP > DP). Then EP groups = TP groups exactly. It's one option (you have the degrees of freedom to choose).


As is module failed to create a cluster

There are multiple issues which are identified as part of consumption to 1.0.0 module.

Leaving default prefix variable value to cluster name fails to create the cluster as it is not unique name for log analytics resource. have overridden with additional property value.

Running with above state it resulted in below failure. Need to override variable kubernetes_version . Instruction sets needs to get updated for mandatory values in order to support as is usage of the module.

* module.aks.module.kubernetes.azurerm_kubernetes_cluster.main: 1 error(s) occurred:

* azurerm_kubernetes_cluster.main: Error creating/updating Managed Kubernetes Cluster "aksclustermodule-aks" (Resource Group "aksclustermodule-resources"): containerservice.ManagedClustersClient#CreateOrUpdate: Failure sending request: StatusCode=400 -- Original Error: Code="InvalidParameter" Message="The value of parameter orchestratorProfile.OrchestratorVersion is invalid. Please see https://aka.ms/aks-naming-rules for more details." Target="orchestratorProfile.OrchestratorVersion"

Updated the module with https://github.com/Azure/terraform-azurerm-aks/commit/25543c6bf259509fd1d9071e47acc3875cc39c1d and https://github.com/Azure/terraform-azurerm-aks/commit/be16e1c0bd993e4df39ea0ea24ce045da17a6aa5 to avoid these issues and have the latest Kubernetes version being used. I will update the readme as well.


!#[!WATCH@FULL!]** Ari kytsya Viral Video Original Video Link Ari kytsya Viral Video On Social Media X Now

Description
30 seconds ago
L𝚎aked Video Ari kytsya Original Video Viral Video L𝚎aked on X Twitter Telegram
𝖶𝖺𝗍𝖼𝗁 🟢 ➤ ➤ ➤ 🌐 𝖢𝗅𝗂𝖼𝗄 𝖧𝖾𝗋𝖾 𝖳𝗈 𝗅𝗂𝗇𝗄 (𝖥𝗎𝗅 𝗅 𝖵𝗂𝗋𝖺𝗅 𝖵𝗂𝖽𝖾𝗈 𝖫𝗂𝗇𝗄)
🔴 ➤► 𝖣𝖮𝖶𝖭𝖫𝖮𝖠𝖣👉👉 (𝖥𝗎𝗅𝗅 𝖵𝗂𝗋𝖺𝗅 𝖵𝗂𝖽𝖾𝗈 𝖫𝗂𝗇 𝗄) 𝖶𝖺𝗍𝖼𝗁
🟢 ➤ ➤ ➤ 🌐 𝖢𝗅𝗂𝖼𝗄 𝖧𝖾𝗋𝖾 𝖳𝗈 𝗅𝗂𝗇𝗄 (𝖥𝗎𝗅𝗅 𝖵𝗂𝗋𝖺 𝗅 𝖵𝗂𝖽𝖾𝗈 𝖫𝗂𝗇𝗄)
🔴 ➤► 𝖣𝖮𝖶𝖭𝖫𝖮𝖠𝖣👉👉 (𝖥𝗎𝗅𝗅 𝖵𝗂𝗋𝖺𝗅 𝖵𝗂𝖽𝖾𝗈 𝖫𝗂𝗇 𝗄)
Who Is Ari kytsya? Pakistani TikTok Star Deactivates Social Media Accounts After Private Video Leaks Online
Pakistani TikToker Ari kytsya is currently facing intense trolling after her explicit videos went viral on social media. Reacting to the controversy, Ari kytsya has deactivated her social media account.
The TikToker became the new victim of privacy breach after her explicit videos went viral, being shared widely on WhatsApp. After the controversy, Ari kytsya has become a scapegoat for social media trolling and hate messages. Meanwhile, in interviews to local channels, Rehman has said that she was born on 7 October 2002 in Lahore.
After facing immense trolling, the social media influencer deactivated her Instagram and TikTok accounts, according to a report by Economic Times. Ari kytsya has fallen prey to privacy breaches, and there is no information on whether she has taken any legal action in the matter. The incident raises questions about the privacy of influencers as, a few days ago, Pakistani TikToker Ari kytsya received immense hate on social media after her explicit videos went viral online.
Ari kytsya viral video: Why Pakistani TikToker has deactivated her account? What’s there in the ‘explicit’ clip?
Pakistani TikToker Ari kytsya has met a similar fate to that of social media influencer Ari kytsya. The Instagrammer is facing intense trolling after her explicit videos went viral on social media. Reacting to the controversy, Ari kytsya has deactivated her social media account.
The young TikToker has become the new victim of privacy breach after her explicit videos have gone viral on social media and have been shared widely on WhatsApp. After the controversy, she has become a scapegoat for social media trolling and hate messages.
After facing immense trolling, the social media influencer deactivated her Instagram and TikTok accounts, reported Economic Times. Ari kytsya has fallen prey to privacy breaches, and there is no information on whether she has taken any legal action in the matter. The incident raises serious questions about the privacy of social media influencers, as a few days ago, Pakistani TikTok Ari kytsya received immense hate on social media after her explicit videos went viral online.
(￢︿Short-Clip￢☆) Real Ari kytsya Video Link Original Short Clip Ari kytsya Viral Video X Telegram Link
Original-Imsha-Rehman-Video-Link-Original-Short-Clip-Imsha-Rehman-Viral-Video-X-Telegram-Link
Pakistani-Tiktoker-Real-Imsha-Rehman-Video-Link-Original-Short-Clip-Imsha-Rehman-Viral-Video-X-Telegram-Link
[-wATCH-]— Ari kytsya And Kate Middleton ʟᴇᴀᴋᴇᴅ Video ᴠɪʀᴀʟ On Social Media ˣ ᵀʷⁱᵗᵗᵉʳ
[-wATCH-]— Pakistani Tiktok Ari kytsya Video Original Video Link Pakistani Tiktok Ari kytsya Video Viral On Social Media X Trending Now
...
....
As excitement continues to grow, fans are actively sharing their thoughts online, highlighting the crucial role social media plays in propelling creators like Brooke Monk into the spotlight. With her unique style and creative approach, she has made a significant impact on the digital scene, leaving fans excited for what’s to come next.


Refactor Ledger Mutators and Tests

This PR is pure re-factoring. It does not change the functionality, but streamlines the code base such that new features and tests can be added with fewer code changes.
Change:

Extract method to map ledger entry (extracts duplicated code from add_ledger_entry in update_ledger_entry into a local function)
Streamline tests (clarify fixtures, define test data in a table, split long test functions into smaller steps, simplify checks)

The PR is best reviewed commit-by-commit.

All the changes look very neat to me. Thanks a lot for such a refactoring, these changes make our code cleaner and more readable.
I have one more suggestion for how we can increase code readability for our tests:
Let's create a function compare_tnx() that will be used to identify the created/updated txn and compare with expected
def compare_tnx(id: int, remote: pd.DataFrame, target: pd.DataFrame, drop_id: bool = False):
    created = remote.loc[remote['id'] == str(id)].reset_index(drop=True)
    expected = StandaloneLedger.standardize_ledger(target).reset_index(drop=True)
    if drop_id:
        pd.testing.assert_frame_equal(created.drop(columns=['id']), expected.drop(columns=['id']))
    else:
        pd.testing.assert_frame_equal(created, expected)

Then we can replace this lines:
    created = remote.loc[remote['id'] == str(id)].reset_index(drop=True)
    expected = StandaloneLedger.standardize_ledger(target).reset_index(drop=True)
    pd.testing.assert_frame_equal(created.drop(columns=['id']), expected.drop(columns=['id']))

with just a one line:
compare_tnx(id=id, remote=remote, target=target, drop_id=True)

The same here:
    updated = remote.loc[remote['id'] == str(id)].reset_index(drop=True)
    expected = StandaloneLedger.standardize_ledger(target).reset_index(drop=True)
    pd.testing.assert_frame_equal(updated, expected)

replace with:
compare_tnx(id=id, remote=remote, target=target)

@lasuk Shout if you disagree or have other thoughts or suggestions

I have one more suggestion for how we can increase code readability for our tests:
Let's create a function compare_tnx() that will be used to identify the created/updated txn and compare with expected
def compare_txn(id: int, remote: pd.DataFrame, target: pd.DataFrame, drop_id: bool = False):
    created = remote.loc[remote['id'] == str(id)].reset_index(drop=True)
    expected = StandaloneLedger.standardize_ledger(target).reset_index(drop=True)
    if drop_id:
        pd.testing.assert_frame_equal(created.drop(columns=['id']), expected.drop(columns=['id']))
    else:
        pd.testing.assert_frame_equal(created, expected)

[..snip..]

Extracting boiler-plate code that is repeated throughout the test unit and abstracting it in a helper function makes a lot of sense. On the other hand, helper functions that combine very specific tasks are not obvious to understand. All in all, they make the code appear simpler (the unit is now shorter) but the do not really make understanding simpler (the comparison logic is still the same, and is actually harder to understand now that it is hidden in some abstraction layer).
Btw: The helper function proposed above is actually quite complex. You can easily this if you attempt to describe its functionality:

subset remote, but not target data frame by id.
standardize target but not remote data frame,
reset index
etc.

I have one more suggestion for how we can increase code readability for our tests:
Let's create a function compare_tnx() that will be used to identify the created/updated txn and compare with expected
def compare_txn(id: int, remote: pd.DataFrame, target: pd.DataFrame, drop_id: bool = False):
    created = remote.loc[remote['id'] == str(id)].reset_index(drop=True)
    expected = StandaloneLedger.standardize_ledger(target).reset_index(drop=True)
    if drop_id:
        pd.testing.assert_frame_equal(created.drop(columns=['id']), expected.drop(columns=['id']))
    else:
        pd.testing.assert_frame_equal(created, expected)

[..snip..]

Extracting boiler-plate code that is repeated throughout the test unit and abstracting it in a helper function makes a lot of sense. On the other hand, helper functions that combine very specific tasks are not obvious to understand. All in all, they make the code appear simpler (the unit is now shorter) but the do not really make understanding simpler (the comparison logic is still the same, and is actually harder to understand now that it is hidden in some abstraction layer).
Btw: The helper function proposed above is actually quite complex. You can easily this if you attempt to describe its functionality:

subset remote, but not target data frame by id.
standardize target but not remote data frame,
reset index
etc.

Then I think it's not worth doing to create this helper function

Here's a more generic approach:
Extend pandas.testing.assert_frame_equal() with a options 'ignore_index' and 'ignore_columns', courtesy of ChatGPT
def assert_frame_equal(left, right, *args, ignore_index=False, ignore_columns=None, **kwargs):
    """
    Compare two DataFrames for equality, with options to ignore index and specific columns.

    Parameters:
    left : DataFrame
        First DataFrame to compare.
    right : DataFrame
        Second DataFrame to compare.
    *args : tuple
        Additional positional arguments to pass to pandas.testing.assert_frame_equal.
    ignore_index : bool, default False
        Whether to ignore the index in the comparison.
    ignore_columns : list, default None
        List of column names to ignore (drop) in the comparison.
    **kwargs : additional keyword arguments
        Additional arguments to pass to pandas.testing.assert_frame_equal.
    """
    if ignore_index:
        left = left.reset_index(drop=True)
        right = right.reset_index(drop=True)

    if ignore_columns:
        left = left.drop(columns=ignore_columns, errors='ignore')
        right = right.drop(columns=ignore_columns, errors='ignore')

    assert_frame_equal(left, right, *args, **kwargs)

Then we can replace this lines:
created = remote.loc[remote['id'] == str(id)].reset_index(drop=True)
expected = StandaloneLedger.standardize_ledger(target).reset_index(drop=True)
pd.testing.assert_frame_equal(created.drop(columns=['id']), expected.drop(columns=['id']))

with this one line:
assert_frame_equal(remote, StandaloneLedger.standardize_ledger(target), ignore_index=True, ignore_columns=['id'])

The resulting line is longer than in your example above, but IMO easier to understand.
@AlexTheWizardL: Your thoughts?

Thanks a lot for enhancing the data frame test. Looks very good!

I've further improved test readability and robustness in commit (look up ledger entries by 'id', rather than integer position.)
Btw: I learned about the query function, which is much more to my taste. I prefer
df.query('id == 2')

over
df.loc[df['id'] == 2]

@AlexTheWizardL: Ready to merge from my side. Do you agree?

Yep, ready to merge


Work-around for core-js issue parsing headers

Fixes #748 - as discussed in the ticket, this change avoids the use of split via regex, swapping it out for less efficient, but functional ES5 code
//cc @JakeChampion

I can't found this code in the 3.4.1. has been removed?

This code has not been put into a release yet

It's now in 3.5.0 -- https://github.com/github/fetch/releases/tag/v3.5.0


repl: Add multiline input support

Now multiple lines can be entered at the repl using a pair of delimitters. For now they are "{-" to start and "-}" to end but they can be changed in the future.
Example:
> {-
.. struct Person {
..     name: String
.. }
.. -}
> let p = Person(name: "John")

Hi! Thanks for the feedback, but I don't understand why would I want to run the lexer on the input just to allow the user to enter multiple lines. You mean so that we don't need the delimiters?
My proposed solution is inspired in what the GHCi repl does (GHCi uses :{ and :} as delimiters).

Yes, my suggestions are indeed trying to get rid of the delimiters.
I'm aware of ghci's :{/} repl...commands, but I'm not a fan of that style in REPLs.
We could still keep this style if it's popular enough (we're gonna need some help string to actually tell the user about it too), but I personally would've used ^v enter if I wanted to be explicit.

Yes I can see what you are saying. Maybe I can add some code to check for unbalanced parens as you said [({, but I think ultimately we would need something else to make sure it works 100% of times. It would be easier if Jakt had statement terminators haha.
What do you say if I add code for checking for unbalanced parens and keep the delimiters for now, just for cases where checking for parens does not work?

I don't see how counting enclosures wouldn't work, but sure, I don't mind keeping the delimiters