[Bug] App Closes When Pressing The OCR Buton

Device information

Tachiyomi version: most recent release
Android version: 10 QKQ1
Device: Mi Note 10

Steps to reproduce

Open chapter
Tap OCR button

Expected behavior
you will be prompted to select the region of the screen which contains the word you want to look for. Once the region is selected, long press the OCR rectangle to scan the word and look it up in the dictionary
Actual behavior
The app closes

Hi, I just tried it in my android 10 phone (Moto G9 plus) and couldn't reproduce the issue. I'll keep you posted if I manage to

Hi, I just tried it in my android 10 phone (Moto G9 plus) and couldn't reproduce the issue.  Actually, the problem is caused by having the reader in infinite scroll mode. It worked fine after switching it to be individual pages

I fiddled with it some more and ended up figuring it out! Actually, the problem is caused by having the reader in infinite scroll mode. It worked fine after switching it to be individual pages

Oh that's actually great! Should be an easy fix, I'll see what I can do

Oh that's actually great! Should be an easy fix, I'll see what I can do

Should be fixed in v0.1.1

Should be fixed in v0.1.1


Default job type settings

Add the capability to define default settings valued for job types.

Create a new job type model JSON field called "default_settings". We'll want to consider creating a new JSON schema for this.
At schedule time, pull the settings from the job type and populate the settings in the job execution job_configuration.

For the "default_settings" field, just have a simple JSON schema:
{
"setting_name_1": "setting_value_1",
"setting_name_2": "setting_value_2"
}
Names and values must be strings.

New plan:
Make the new job type field "configuration" with a schema that looks like this:
{
  "version": "1.0",
  "default_settings": {
    "setting_name_1": "setting_value_1",
    "setting_name_2": "setting_value_2"
  }
}

fixed with PR #672


IMPRINT-Teja

I've created a system to take in any png, jpg, or just a general image file and convert it into a series of instructions that BLOT can draw. I noticed that there were a few other projects like this, but I wanted to challenge myself to do it without any major libraries (The only one I use is Pillow.) I also tried to program the vast majority of it in JS, though I had to do some preprocessing in python.
I have a decent amount of experience programming, but I've only started using JS recently after doing the ODIN project (https://www.theodinproject.com/about). It was fun to get to use JS in a non-frontend context. Thanks for the opportunity!

This is a really cool project! Could you send me your Slack? I'd like to @ you

Yeah of course, thanks for reaching out! My handle should be @Teja Koduru.

Just an update, I will be closing this PR. (I don't know if this PR was accepted or not as it has not been merged yet) Please create a new PR if this hasnt been accepted yet! We are doing this due to new management of the PR system.


Listen to comm messages on comms opened by the kernel

I’m trying to figure out if it's feasible to port the ipywidgets kernel side to almond so I'm wrapping my head around comms.
For ipywidgets I have to initiate a comm from the kernel and then listen to frontend messages of that comm (meaning with that comm id).
I can easily open a comm on the server and send messages
val comm = kernel.comm.sender("my_target", …)
comm.message("...")

But I can't find a way to register a callback or something similar for messages from the frontend on that existing comm. Am I missing something obvious here or is it not implemented yet?
For comparison, here's how you would do that in Python.
from ipykernel.comm import Comm

# Use comm to send a message from the kernel
my_comm = Comm(target_name='my_comm_target', data={'foo': 1})
my_comm.send({'foo': 2})

# Add a callback for received messages.
@my_comm.on_msg
  def _recv(msg):
    ...

This example works from Jupyter classic.

Seems it's what you asked actually 😅

Yes kernel -> frontend works fine. Frontend -> kernel works if you open the comm from the frontend and register a target in the kernel as in your example.
But if you open the comm from the kernel, frontend -> kernel doesn't seem to work. I'm not sure how to actually register a callback in that case...
I tried adding a receiver with the same target name like so but to set a callback:
val comm = kernel.comm.sender("my_target", …)
comm.message("...")
kernel.comm.receiver("my_target") { data => someCallback(...) }

But it seems that's just listening for a comm_open message for "my_target", not for regular comm messages with the already existing comm's id.
Perhaps what's missing is the registration of a target with the comm id when we open the comm on the kernel side. At least that's happening in commOpenHandler, i.e. when we receive a comm_open message:
https://github.com/almond-sh/almond/blob/3e4c5ea6815d964e0b663b2746f78d5b85443e0a/modules/shared/interpreter/src/main/scala/almond/interpreter/messagehandlers/CommMessageHandlers.scala#L26-L28

Implemented in #389


restrict student table to selected category

Who is this PR for?
Dashboard users
What problem does this PR fix?
students table doesn't restrict the students based on selection cf #1708
What does this PR do?
Properly restricts students in the table like so:

Checklists
Javascript QA

[x] Author checked latest in IE - Discipline Dashboard
[x] Reviewer checked latest in IE - Discipline Dashboard

🚢 !


[FLINK-17404] Make sure netty 3.10.6 is used in flink-runtime

Due to the recent changes in https://issues.apache.org/jira/browse/FLINK-11086 ("Add support for Hadoop 3"),
the shaded netty dependency in flink-runtime changed depending on the Hadoop dependency version.
The Hadoop 3 change affects the Netty version of flink-runtime depending on the hadoop version you are compiling Flink with:

our akka expects netty 3.10.6
with Hadoop 2.4.1 and Hadoop 2.8.3, flink-runtime shades netty 3.6.2 (the e2e test passes)
with Hadoop 3.1.3 netty is at 3.10.5 (the e2e test fails reliably)

We add Netty 3.10.6 as a dependency to flink-runtime to make sure it is not overridden by any other dependencies.

Thanks a lot for the review!


Update computecpp.tpl

Computecpp can't generate code for AVX function __builtin_ia32_cmpps256. Build error is attached.
error.txt

Can one of the admins verify this patch?

I signed it!
On Tue, Mar 21, 2017 at 7:05 AM, googlebot<EMAIL_ADDRESS>wrote:

Thanks for your pull request. It looks like this may be your first
contribution to a Google open source project. Before we can look at your
pull request, you'll need to sign a Contributor License Agreement (CLA).
📝 Please visit https://cla.developers.google.com/
https://cla.developers.google.com/ to sign.
Once you've signed, please reply here (e.g. I signed it!) and we'll
verify. Thanks.

If you've already signed a CLA, it's possible we don't have your
GitHub username or you're using a different email address. Check your
existing CLA data https://cla.developers.google.com/clas and verify
that your email is set on your git commits
https://help.github.com/articles/setting-your-email-in-git/.
If you signed the CLA as a corporation, please let us know the
company's name.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/pull/8578#issuecomment-288045452,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGrbvlY383YUVBas-58tlgwRfv_8Jaemks5rn68HgaJpZM4Mjo0Z
.

Jenkins, test this please


Minimal360photo

Minimal 360 photo viewer.
Only handles fully spherical equirectangular photos.  landscapes and other panoramas end up getting stretched around the sphere.  would need to modify the texture coordinates based on the metadata of the panorama.  To handle those cases would require a sufficient amount of code that this would no longer be a minimal sample.  Will look to properly handle photospheres and other panoramas and share intents in a different sample.
GearVRf-DCO-1.0-Signed-off-by: Tom Flynn
<EMAIL_ADDRESS>

ready for review

Looks good


Add support for storing build images in gitlab registries

Add support for gitlab token_url requests and accept gitlab registry structures, where any number of levels in the image name is possible.
Example:
binder/images/build-:tag
Where binder is the group, images the project and the rest the image name and tag in the 'images' registry. Subgroups can be added creating additional path levels. The previous logic assumed two levels only, which matches the docker.io behavior.
This change implies the image_prefix will only contain the image name, not a repo dns name. So 'rochaporto/myimage' is ok, but not 'docker.io/rochaporto/myimage'. If needed i could look into some additional logic for this, but given urllib.parse expects a scheme it won't be direct.
Fixes #965

Thanks for digging into this. Every time I end up looking at this code I think we should refactor it a bit and add some tests because I find it hard to "run it in my head" to check the various scenarios of different registries (and then which cases we already handle via what kind of workaround...). So below some code that I think reproduces the values we'd see in a setup like mybinder.org:
In [1]: image_prefix = "gcr.io/binder-prod/r2d-f18835fd-"

In [3]: '{prefix}{build_slug}:{ref}'.format(prefix=image_prefix, build_slug="some-escaped-url", ref="1234")
Out[3]: 'gcr.io/binder-prod/r2d-f18835fd-some-escaped-url:1234'

In [5]: image_name = '{prefix}{build_slug}:{ref}'.format(prefix=image_prefix, build_slug="some-escaped-url", ref="1234")

In [6]: '/'.join(image_name.split('/')[-2:]).split(':', 1)
Out[6]: ['binder-prod/r2d-f18835fd-some-escaped-url', '1234']

In [7]: image_name.split(':', 1)
Out[7]: ['gcr.io/binder-prod/r2d-f18835fd-some-escaped-url', '1234']

This means your hunch that what is passed to get_image_manifest() is indeed just the name like binder-prod/r2d-f18835fd-some-escaped-url. But the new code doesn't produce the same result. I'm trying to remember why we aren't using image_name.split('/', 1)[1].split(':', 1).
I think this would work for the gcr.io case and also for the GitLab registry case.

Thanks for digging into this. Every time I end up looking at this code I think we should refactor it a bit and add some tests because I find it hard to "run it in my head" to check the various scenarios of different registries (and then which cases we already handle via what kind of workaround...). So below some code that I think reproduces the values we'd see in a setup like mybinder.org:
In [1]: image_prefix = "gcr.io/binder-prod/r2d-f18835fd-"

In [3]: '{prefix}{build_slug}:{ref}'.format(prefix=image_prefix, build_slug="some-escaped-url", ref="1234")
Out[3]: 'gcr.io/binder-prod/r2d-f18835fd-some-escaped-url:1234'

In [5]: image_name = '{prefix}{build_slug}:{ref}'.format(prefix=image_prefix, build_slug="some-escaped-url", ref="1234")

In [6]: '/'.join(image_name.split('/')[-2:]).split(':', 1)
Out[6]: ['binder-prod/r2d-f18835fd-some-escaped-url', '1234']

In [7]: image_name.split(':', 1)
Out[7]: ['gcr.io/binder-prod/r2d-f18835fd-some-escaped-url', '1234']

This means your hunch that what is passed to get_image_manifest() is indeed just the name like binder-prod/r2d-f18835fd-some-escaped-url. But the new code doesn't produce the same result. I'm trying to remember why we aren't using image_name.split('/', 1)[1].split(':', 1).
I think this would work for the gcr.io case and also for the GitLab registry case.

Do you have a set of inputs->outputs to be used for testing? I'm happy to extract this logic to a separate function and add a few tests.

Not really :( The best I can think of is configs of existing deployments. For them we could feed in the current config, capture the output and then create a test based on this not changing.
The one posted above is what we use for the GKE cluster of mybinder.org.
For the OVH cluster we use this config https://github.com/jupyterhub/mybinder.org-deploy/blob/c7197ee387048d20838de3c2ab70135f4a83107c/config/ovh.yaml#L9-L14
This is the config of the GESIS cluster https://github.com/gesiscss/orc/blob/aa81bd432330547f76ee8ee8c5fcaf3c8735051e/gesisbinder/config.yaml#L32 (I think it uses DockerHub as storage)
The Pangeo BinderHub uses gcr.io as well https://github.com/pangeo-data/pangeo-binder/blob/7276aae9bf6077761255ef1f41243e6d391bf827/deploy/prod.yaml#L10 (so config wise a copy&paste from mybinder.org)

Hi! I also recently stumbled upon the image_prefix format issue and did not yet realize there's an open issue/PR for this :-) Here is how we solved it:
diff --git a/binderhub/builder.py b/binderhub/builder.py
index 85d7fd9..1ae560e 100644
--- a/binderhub/builder.py
+++ b/binderhub/builder.py
@@ -271,7 +271,10 @@ class BuildHandler(BaseHandler):
         ).replace('_', '-').lower()

         if self.settings['use_registry']:
-            image_manifest = await self.registry.get_image_manifest(*'/'.join(image_name.split('/')[-2:]).split(':', 1))
+            image_name_splits = image_name.split('/')
+            if len(image_name_splits) > 2:
+                image_name_splits = image_name_splits[1:]
+            image_manifest = await self.registry.get_image_manifest(*'/'.join(image_name_splits).split(':', 1))
             image_found = bool(image_manifest)
         else:
             # Check if the image exists locally!

This approach cuts the first part off if we have more than two slash-split components in the image_name. This should be fine when assuming:

The local image store, if used, will not be used with names that have more than two components (so binderhub/images/name:tag would not work)
Docker Hub is the only remote registry that can be referred to with a two-component image name (like jupyterhub/singleuser:sometag)
All other remote repositories have to be referred to with at least three components (like myregistry.com/user/image:tag, or myregistry.com/user/something/image:tag)
All remote repositories operate at their domain root (e.g. a repository base url like someserver.org/registry would not be possible)

This is still not perfect, but hopefully reasonable enough for most setups, and as a benefit there's no need to change configurations or other code. However, the solution proposed by @rochaporto would induce less headache overall, since one doesn't need to guess which parts are registry and which are the image name.
A third solution could be to always split the first part of image_name off, similar to what @betatim suggested.

I'm trying to remember why we aren't using image_name.split('/', 1)[1].split(':', 1)

Possibly because of the magic Docker Hub names, for example if you used myuser/binderhub- as prefix instead of registry-1.docker.io/myuser/binderhub-, the above code would fail, while the original does not. One can make this work by requiring users to specifically prefix registry-1.docker.io/ if using the Docker Hub as registry.

@bdrian do you want to make a new PR with your suggested patch and some of the test cases? This PR has been quiet for a while so I think it would be fine to start a new one with fresh momentum (and a slightly different approach).

@betatim I'll submit a similar PR soon, just have to finish the local testing. The patch above is dumb on second thought.

Closing this one in favor of #986


Syntax highlighting for JSDoc

Check for existing issues

[X] Completed

Describe the feature
I use JSDoc comments to annotate types in plain JS projects to take advantage of completions, etc., without writing in TS.
In VS Code, these are highlighted:

In Zed, they are not:

Suppot for this would be amazing!
If applicable, add mockups / screenshots to help present your vision of the feature
No response

Not sure it's correct place to ask, but would be also very useful if pressing "enter" on the line with multi-line jsdoc it will automatically add "*" at the beginning of the new line and leaves same amount of tabs as on previous line.

Also worth mentioning TSDoc which is more rigorously specified : https://tsdoc.org

Popping in to say that my JSDoc comments don't appear as function definitions when I hover over a function name, like I'd expect.


Configuration file changes aren't automatically detected

Unfortunately, changing the cfg.toml does not prompt the macro to be re-invoked. For now, you'll need to run cargo clean after changing the config file.
If you know how to fix this, please let me know!

Fixed in v0.1.1: https://github.com/jamesmunns/toml-cfg/commit/44923c29d4297eed69f5318cf23d1bd38bbbd97a
Thanks to @adamgreig and @dirbaio :D


imghdr is deprecated and slated for removal in Python 3.13

We currently make use of the imghdr module to guess the filetype with our ImageLoader.
See: https://peps.python.org/pep-0594/#imghdr

Thank you so much! id like to contribute with another person.
It would be great if you could assign it to them too!
Their github link : https://github.com/vsh9

@bharathan06 I don't think this issue needs two people to solve :thinking:,  imghdr is only used to find the extension of the image file,
see https://github.com/kivy/kivy/blob/ca1b918c656f23e401707388f25f4a63d9b8ae7d/kivy/core/image/init.py#L452-L461
I propose using filetype as it supports a lot of file types

I propose using filetype as it supports a lot of file types

I think it's better to use magic number to detect a subset of the fileformat ( same method used by imghdr )

I propose using filetype as it supports a lot of file types

I think it's better to use magic number to detect a subset of the fileformat ( same method used by imghdr )

from filetype docs

Small and dependency-free Python package to infer file type and MIME type checking the magic numbers signature of a file or buffer.

@bharathan06: Just checking in. How did you go with this?

I'm considering @bharathan06 not available anymore to take care of it, the issue is now in 3.0.0 roadmap and free to pick.

@misl6 i want to take on it.

That's something lovely to hear @kengoon !
Assigned the issue. Please bear in mind that we're in 3.0.0, so don't be afraid to do any refactoring / cleanup if needed.


Selecting server-side file with streamlit dashboard gemdash

The option to select a server-side file seems to be missing.

There is file picker which does what we want at the client side

Currently this is solved by just having a text input box, which is a bit ugly

I came across this:
https://gist.github.com/benlansdell/44000c264d1b373c77497c0ea73f0ef2

Yeah, true. It seems to be a long-standing issue.
I also came accross a solution suggesting to use the tk file picker instead 😅
import tkinter as tk
from tkinter import filedialog
if st.button('Upload file'):
    root = tk.Tk()
    root.withdraw()
    file_path = filedialog.askopenfilename()
    st.image(file_path)


Make the creation of security groups region aware

Running the terraform apply we face the problem of having two regions when creating the security groups, this commit will make the creation region aware.

Hi @sxd, thanks for your pull request. Could you please sign the CLA as cfdreddbot described. Let us know when you did. We will merge afterwards.

Hi @Kiemes I just sent the CLA to<EMAIL_ADDRESS>so you should already have it! =)

@Kiemes There's a way to know if they got my CLA?
Regards!

I talked to the community colleagues today, but no response yet. Usually this is faster, that's why I wrote them. Will keep you updated here.

@Kiemes Chris Clark just confirmed by email that the CLA was filed and the permissions are updated =)

Thanks again @sxd. I just merged the PR


4.3.2+1 crashes on OS X El Capitan (10.11.6) upon opening after installation

Right after installation of 4.3.2+1 on my Mac (OSX 10.11.6), the app crashes immediately upon opening, showing the following in the send to Apple problem report (excerpt):
Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BREAKPOINT (SIGTRAP)
Exception Codes:       0x0000000000000002, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Dyld Error Message:
  Symbol not found: _getentropy
  Referenced from: /Applications/Yubico Authenticator.app/Contents/MacOS/../Frameworks/Python.framework/Versions/3.6/Python (which was built for Mac OS X 10.13)
  Expected in: /usr/lib/libSystem.B.dylib

Going back and downgrading, 4.2.0 is the latest version that launches for me, after going down the list and uninstalling / installing them one by one.

I'm still getting this crash on El Capitan (10.11.6) using 4.3.5. Is the fix for this bug in that build? 4.2.0 works fine.
Process:               yubioath-desktop [78762]
Path:                  /Applications/Yubico Authenticator.app/Contents/MacOS/yubioath-desktop
Identifier:            com.yubico.yubioath
Version:               4.3 (4.3.5)
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           yubioath-desktop [78762]
User ID:               502
Date/Time:             2019-05-05 13:48:31.721 -0700
OS Version:            Mac OS X 10.11.6 (15G22010)
Report Version:        11
Anonymous UUID:        D8AB10E6-1E2F-8765-29DC-0E1D85189284
Sleep/Wake UUID:       D5CDB9E0-5905-4306-8642-0765A554C0DA
Time Awake Since Boot: 980000 seconds
Time Since Wake:       5000 seconds
System Integrity Protection: enabled
Crashed Thread:        0  Dispatch queue: com.apple.main-thread
Exception Type:        EXC_BREAKPOINT (SIGTRAP)
Exception Codes:       0x0000000000000002, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY
Dyld Error Message:
Symbol not found: _getentropy
Referenced from: /Applications/Yubico Authenticator.app/Contents/MacOS/../Frameworks/Python.framework/Versions/3.6/Python
Expected in: /usr/lib/libSystem.B.dylib

@vaurora Thanks for the report. Note that Apple no longer provides security updates for El Capitan, so my first advise would be to upgrade to a newer macOS version and see if that helps with the issue.


recongnizing elementary OS and pretending it is Ubuntu Trusty

Elementary Freya is the latest release of Elementary OS: https://elementary.io/
It is based on Ubuntu 14.04 LTS, codename Trusty.
Tested it installs and works.
Works when running docker in sudo. Could not get it to work without sudo.

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "master" git@github.com:avidmich/docker.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

will redo after signing commit properly

@avidmich in future, please don't close the PR, but use the instructions that @GordonTheTurtle gave above :smile:

Replacement PR can be found here: #14957


fix: sessionId in first open and session start events

Description

fix sessionId in first open and session start events

General Checklist

[x] Added new tests to cover change, if needed
[ ] Security oriented best practices and standards are followed (e.g. using input sanitization, principle of least privilege, etc)
[ ] Documentation update for the change if required
[x] PR title conforms to conventional commit style
[ ] If breaking change, documentation/changelog update with migration instructions

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

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

Project coverage is 100.00%. Comparing base (8dd878a) to head (38fcd8c).

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #46   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           25        25
  Lines         1123      1129    +6
  Branches       221       225    +4
=========================================
+ Hits          1123      1129    +6

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


Cant add new coin

Hello. I have an issue. I added a new algorithm Lyra2z to the source files /src/Native/libmultihash/exports.cpp,libmultihash.vcxproj,libmultihash.vcxproj.filters and files related with this algorithm Lyra2z.c, Lyra2z.h as shown in screenshot 1. I also added a new coin to the file coins.json, with combined pos/pow mining (screenshot 2). Everything compiled well as far as I can see. But when starting the service (I use docker compose for all three things) with running wallet ->psql -> miningcore, this error is shown to me (screenshot 3), before I added all of the above (didn’t add the coin and its algorithm), everything started without error, but naturally miningcore didn’t saw the wallet. I also attach my config.json. Can you help me with this?

If i recall correctly, you also need to add your algorithm inside Multihash.cs and you also need to create a .cs class file for it inside Crypto/Hashing/Algorithms.

Thank you. But when I added code to Multihash.cs (1 screen), class to Crypto/Hashing/Algorithms (screen 2) and code to Makefile in Native/libmultihash (screen 3) code didnt compile with this error (screen 4). where did I go wrong this time?

Everything you need to fix your issue is in the error message, you have an issue somewhere with the number of arguments (maybe method Digest).
It's just not about copy/paste, you have also to understand what is going on and what you are doing.

UPD
I made mistake. Didnt add 3 argument to Multihash.cs. It compiled successfully, but I have the same error that I received when submitting this issue. I see that it is error with some poolstat in psql. Any ideas?

Miningcore doesn't fully provision the database for you. You have to create the database schema manually (as described in the README).


[IMPROVEMENT] #754 Synchronous XMLHttpRequest on the main thread is deprecated (jQuery)

#754
[DESC.]

In jquery, synchronous ajax query was deprecated because of its bad effects to UX.
So our Synchronous XMLHttpRequest in app-config is replaced with "loader plugin of Require.js" for loading server-side configs.
It is more clear way to get configurations than before.
This new config-loader loader plugin enables that app-config module can return value asynchronously.

This seems to be better way :+1:
Please resolve conflicts.
Thanks.


Create account modal - browser does not scroll to focused toggle

Environment info

Version: VERSION
Deployment: AZURE | AWS | GCLOUD | ESX | VBOX | DEV
Customer: NAME

Actual behavior

if even 1 px of the toggle is in view - because of user navigation/scrolling the browser will not scroll the toggle into full view

Expected behavior

should scroll the toggle into full view event if some of the toggle is out of the scroll box

Steps to reproduce

Screenshots or Logs or other output that would be helpful

As we are not investing in the UI console, closing


changeend and changestart event

Hi.
For continuous inputs like sliders and color pickers, 'change' event is fired whenever the value is changed.
But sometimes we just need the event when the users start or stop the interaction.
Please add some events for these, probably after mousedown/mouseup/touchup events. \
Or maybe make the ptHandler public so that we can register to the events manually.
Thanks

You can use ev.last flag to detect each timing:
const input = pane.addInput({num: 1}, "num", {
  min: 0,
  max: 100
});

let first = true;
input.on("change", (ev) => {
  if (first) {
    console.log("first", ev);
    first = false;
  } else if (ev.last) {
    console.log("last", ev);
    first = true;
  } else {
    console.log("continuous", ev);
  }
});

https://cocopon.github.io/tweakpane/api/classes/index.tpchangeevent.html#last

Oh, somehow I missed that.
Thanks.


Finalizing anatomical processing

cc @eilidhmacnicol - After #11 (and a lingering commit f89f1a3), the anatomical pipeline is close to working with the Fischer344 template. The remaining steps (at least clear to me now) to consider here:

Registration in the normalization pipeline is failing - perhaps the parameters needs to be synchronized with what's being used in nirodents?
https://github.com/poldracklab/fmriprep-rodents/blob/f89f1a30a7785a39a325ade1f6414cb10b8dc1f9/fmriprep_rodents/patch/workflows/anatomical.py#L543-L545

The tissue probability maps are being calculated with FSL's FAST (the default through the non-freesurfer pathway). Rather, we can probably leverage the Fischer template's probsegs and apply them to the anatomical space.

The lingering commit is still running on circleCI, but looking at test_rodent_anat report generated from the PR yesterday, it seems that the registration is still using MNI152NLin2009cAsym as the template, although I'm not sure how the reports are generated so that might just be a typo.
I can't find where the registration parameters are generated. Specifically,  I can't see where the number of syn stages etc are called. I can see that some of the parameters are in  RobustMNINormalization, and an affine.json, but can't compare the call.
Yes, definitely think that we will need to use template probability maps. I am a little impressed by the FAST results generated for the report, but I think using a priori information would be worth it.

The registration parameters are loaded from predefined settings files, see
https://github.com/nipreps/niworkflows/blob/df77431a26fa3f3e4b2aff790fa3b4b2c41dd650/niworkflows/interfaces/mni.py#L139-L158
Although thinking about this some more, it could be better to just replace the RobustMNINormalization with a pure Registration node to avoid all this tinkering (cc @oesteban).

Ah - those were the json files I was looking for... (just in the wrong project).
There's nothing obviously incompatible with those configuration files, so I will see how the most recent commit goes and start looking into it from there.

looks like the anatomical pipeline stopped smoking..
https://373-278421401-gh.circle-artifacts.com/0/tmp/rodent-se-anat/derivatives/fmriprep-rodents/sub-01.html

I can confirm that the anatomical workflow runs to the end both locally and in the new CircleCI settings I bumped up yesterday. Closing this. Great job folks! and special thanks to @mgxd for the baseline work that has enabled this.

I can confirm that the anatomical workflow runs to the end both locally and in the new CircleCI settings I bumped up yesterday. Closing this. Great job folks! and special thanks to @mgxd for the baseline work that has enabled this.


show icon attachment in new side navigation message listing

Can you add icon attachment in new side navigation message listing ?

Yes, I can't believe I completely overlooked that! Something like this?:

Sound good

This has feature been released as part of v1.20.1


Update to latest versions v3.39.1

Proposed changes

Unreleased product version (optional)

Related issues (optional)

lgtm


add 2 images to home welcome.md

@billspat how do we add 2 images to welcome.md? I confirmed with our corresponding author that since we're going to be doing open access, we can publish the figs from the article. So, I added the diagram back. But how do you add another image? I'd like to move: maps_projected_global_surface_temp_precip.jpg to "About" and I'd like to put "SAI_temp_explanations.jpg" on the welcome.md, below "SRM-Ecology-Effects-Diagram-web.jpg"

You need to create an additional widget for home.   I can add the image this afternoon  - it may be easier to do it than explain it!
It will look best if there is additional text to the side of the image (it will be normaal sized text)

Yes, that image (maps_projected_global_surface_temp_precip.jpg) already has a caption, but if it's too much off to the side, we can just leave it on the About page:
Projected surface temperature change in 2081-2100 in a scenario without mitigation compared with one where emissions are reduced (left), and in a scenario without mitigation but with stratospheric aerosol injections (SAI) (right). Although SAI may cool the planet down to a certain global temperature target, the local cooling may be uneven, and there are potentially large impacts on ecosystems (right). Adapted from Visioni et al. (2021)

Image added - see 8df30cc011b663153c0f1463cb2dedb101ebcc5a
) there is a new file home/figure.md that has the figure on the home page (welcome.md is a 'hero' widget and can only have 1 image.
)  Does there need to be a short 'title' above the image ?
) I did not remove the balloon image, I simply placed the temp+precip map in place of the previous map.

I forgot to ask if the current image placement looks good, but not hearing otherwise I'm closing this issue.  Re-open if you'd like to make adjustments


The obsidian platform in the end is generated in wrong y places for MC 1.21

Information

Server version: This server is running CraftBukkit version 4242-Spigot-0a642bd-515fe49 (MC: 1.21) (Implementing API version 1.21-R0.1-SNAPSHOT)

Full output of /mv version -p: https://paste.gg/p/anonymous/701c684147d64c7c9492ba7e1d3a51e3

Server log: https://gist.github.com/KagefumiMerry/2e8384a4a70751bacace0e7f44012dc0

Details
I was able to reproduce my issue on a freshly setup and up-to-date server with the latest version of Multiverse plugins with no other plugins and with no kinds of other server or client mods.
Description
When player enter the end, the obsidian platform is generated wrongly above the platform generated by the Multiverse-NetherPortals.
Once Multiverse-NetherPortals plugin removed, the behavior returned to vanilla one.
Steps to reproduce

Enter the end portal in the stronghold
the obsidian platform is generated, but with double its thickness.
all the blocks not obsidian or air are just missing

Expected behavior

the obsidian platform should be generated
all the blocks not obsidian or air should be the drop item entities (the 1.21 behavior)

Screenshots

I check a bit the source code, it maybe related the NetherPortals handling in
src/main/java/com/onarandombox/MultiverseNetherPortals/listeners/MVNPEntityListener.java
src/main/java/com/onarandombox/MultiverseNetherPortals/listeners/MVNPPlayerListener.java
            } else if (toWorld.getEnvironment() == World.Environment.THE_END && type == PortalType.ENDER) {
                Location loc = new Location(event.getTo().getWorld(), 100, 50, 0); // This is the vanilla location for obsidian platform.
                event.setTo(loc);
                Block block = loc.getBlock();
                for (int x = block.getX() - 2; x <= block.getX() + 2; x++) {
                    for (int z = block.getZ() - 2; z <= block.getZ() + 2; z++) {
                        Block platformBlock = loc.getWorld().getBlockAt(x, block.getY() - 1, z);
                        if (platformBlock.getType() != Material.OBSIDIAN) {
                            platformBlock.setType(Material.OBSIDIAN);
                        }
                        for (int yMod = 1; yMod <= 3; yMod++) {
                            Block b = platformBlock.getRelative(BlockFace.UP, yMod);
                            if (b.getType() != Material.AIR) {
                                b.setType(Material.AIR);
                            }
                        }
                    }
                }
            }

Also, I need to mention that Entity spawn in a bit different position, but current spawn point command only support single type.
From Wiki:
Players who enter the End spawn at coordinates (100, 49, 0), facing west towards the main island; other entities that enter the End spawn at coordinates (100.5, 50, 0.5), in the middle of and 1 block higher than the platform

Thanks for the detailed report! I’ll look in to this soon

A dev build can be downloaded from "artifacts" here


Turn 'sf::Transform' into a 'constexpr' class

Thanks a lot for making a contribution to SFML! 🙂
Before you create the pull request, we ask you to check the follow boxes. (For small changes not everything needs to ticked, but the more the better!)

[x] Has this change been discussed on the forum or in an issue before?
[x] Does the code follow the SFML Code Style Guide?
[ ] Have you provided some example/test code for your changes?
[ ] If you have additional steps which need to be performed list them as tasks!

Description
This PR turns sf::Transform into a constexpr-friendly class.
Tasks

[ ] Tested on Linux
[x] Tested on Windows
[ ] Tested on macOS
[ ] Tested on iOS
[ ] Tested on Android

How to test this PR?
CI.

SFMLBuildMaster: Build this please.

Before we turn SFML into a header-only library, do we know that we'll never want to go back? 🙂
Removing constexpr will be a breaking change. We give up the freedom to change implementation (let's say by using a vector library); at least not without sacrificing a lot of compile time. Maybe that's an OK trade-off, but we should keep it in mind.
Also, while a single constexpr class likely makes no meaningful difference in compile time, do we know that this is still the case when a significant part of SFML has its implementation in the header? I assume this is negligible compared to monomorphization (template instantiation) of standard headers?


[ENHANCEMENT] Roster Page record bubble reset?

Hi I was just wanting  ask a general question. On the roster tab where it shows the team name and underneath has the green and red bubbles signifying wins and losses, will those reset once week 1 is complete so we can see them fill in color week by week?
thank you

Yes they will! The data comes from Sleeper and for some reason instead of resetting to no wins and losses durning the off-season, it keeps the previous season's win record until after week 1


chore: Improve repo health

This PR improves repository health score by adding Code of conduct and Contributing files, and adding link to the repository to package.json.

@cyyynthia Ah, you are right. I have moved it to the .github repo in this PR. Thanks!


url field missing in JSON output when using cached data

When running cargo supply-chain json and fetching data from the crates.io API, the url field in the output is populated. However, when using the local cache it is always set to null.

Fixed in #63 by dropping the field from JSON


documentation for Java getters not shown

Getting the documentation for an attribute of a Java class should show the doc for the corresponding getter method.

Thanks!


Enhc: Update Stacked "Costs" Comparison to Value Comparison for correctness

Pull Request Key Information
Reason for change
The "stacked cost comparison" visualization is technically a value visualization, not a cost visualization, as cost is shown as negative.
What was changed
This change updates the name of the visualization and the y-axis label to reflect that the visualization is a value visualization.
Intended Purpose
Wording now updated to specify the visualization including program cost is value.
Level of version change required
Patch
Testing Completed
Manual Testing, see attached images of test run with simple test case 1:

All unit tests pass:
unit_test_results.txt
Target Issue
Closes #230
Additional Information
N/A

Great job. Could you double check the param_default_const.py before you merge? I believe output defaults are in there as well... Need to also create an issue to re-organize the constants

None of the summary visualization names are in the output params in param default const - but they probably should be. The param default const really should be reorganized into groups to match output params anyways. Will add a ticket for that.


Sorting, by Release year not working

I added a few movies and changed sorting dropdown to "Release Year" and clicked sort ----no change to list.

There was a bug (flow issue) that occurred when editing a movie - the list was edited in place instead of reloaded from the API which ignored sorting.
Resolved in: 1ac8f18beb96755f97a9ca9787e2e0333a8e3dae


Only works with V6 ArduinoJson library

In order for the current code to work, you need to have Version 6.21.5 or lower for the ArduinoJson library.
Version 7.xx.x does not work without making changes to the code.

You are right. Nobody made a pull request to change it :-(

I just compiled it with Version 7.2 and it compiled. Where did you have a problem?

I'm sorry, I should have been more specific.
It compiles with Version 7.2.0 but shows four warnings about deprecated constructs in the JSON code that were allowed in V6.21.5

I did not get warnings. I use the ESP32 board definition 3.0.5 from Espressif and ArduinoJson 7.2.0. The file I compiled is LetterboxGatewayHA.ino

I use the same versions as you do but selected "verbose" for compiling in File/Preferences...
You may have to scroll up to see the warnings, they appear just after "Compiling sketch...""
This is what I get with V7.2.0:
C:\Users\xxxx\AppData\Local\Temp\.arduinoIDE-unsaved20241014-15596-1kjkg97.a0q4\sketch_nov14b\sketch_nov14b.ino: In function 'void mqtt_discovery()':
C:\Users\xxxx\AppData\Local\Temp\.arduinoIDE-unsaved20241014-15596-1kjkg97.a0q4\sketch_nov14b\sketch_nov14b.ino:98:3: warning: 'template<unsigned int N> class ArduinoJson::V720PB22::StaticJsonDocument' is deprecated: use JsonDocument instead [-Wdeprecated-declarations]
   98 |   StaticJsonDocument<256> doc;  // Allocate memory for the JSON document
      |   ^~~~~~~~~~~~~~~~~~
In file included from c:\Users\xxxx\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:56,
                 from c:\Users\xxxx\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9,
                 from C:\Users\xxxx\AppData\Local\Temp\.arduinoIDE-unsaved20241014-15596-1kjkg97.a0q4\sketch_nov14b\sketch_nov14b.ino:3:
c:\Users\xxxx\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/compatibility.hpp:63:58: note: declared here
   63 | class ARDUINOJSON_DEPRECATED("use JsonDocument instead") StaticJsonDocument
      |                                                          ^~~~~~~~~~~~~~~~~~
C:\Users\xxxx\AppData\Local\Temp\.arduinoIDE-unsaved20241014-15596-1kjkg97.a0q4\sketch_nov14b\sketch_nov14b.ino:105:45: warning: 'ArduinoJson::V720PB22::JsonObject ArduinoJson::V720PB22::JsonDocument::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use doc[key].to<JsonObject>() instead [-Wdeprecated-declarations]
  105 |   JsonObject device = doc.createNestedObject("device");
      |                       ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
In file included from c:\Users\xxxx\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:33:
c:\Users\xxxx\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Document/JsonDocument.hpp:356:14: note: declared here
  356 |   JsonObject createNestedObject(TChar* key) {
      |              ^~~~~~~~~~~~~~~~~~


python3.11.6+playwright1.39.0+windows11x64+nuitka1.8.6  BUG

Task exception was never retrieved
future: <Task finished name='Task-189' coro=<Connection.run() done, defined at D:\py_tools\sg\years\testm.dist\playwright_impl_connection.py:264> exception=KeyError('deviceDescriptors')>
Traceback (most recent call last):
File "D:\py_tools\sg\years\testm.dist\playwright_impl_connection.py", line 273, in run
File "D:\py_tools\sg\years\testm.dist\playwright_impl_transport.py", line 163, in run
self.on_message(obj)
File "D:\py_tools\sg\years\testm.dist\playwright_impl_connection.py", line 232, in
super().init()
File "D:\py_tools\sg\years\testm.dist\playwright_impl_connection.py", line 386, in dispatch
File "D:\py_tools\sg\years\testm.dist\playwright_impl_connection.py", line 435, in _create_remote_object
print("Error occurred in event listener", file=sys.stderr)
File "D:\py_tools\sg\years\testm.dist\playwright_impl_object_factory.py", line 81, in create_remote_object
if type == "Response":
File "D:\py_tools\sg\years\testm.dist\playwright_impl_playwright.py", line 52, in init
def getitem(self, value: str) -> "BrowserType":
KeyError: 'deviceDescriptors'

C:\Users\Administrator>nuitka --version
1.8.6
Commercial: None
Python: 3.11.6 (tags/v3.11.6:8b6ee5b, Oct  2 2023, 14:57:12) [MSC v.1935 64 bit (AMD64)]
Flavor: CPython Official
Executable: C:\Users\Administrator\AppData\Local\Programs\Python\Python311\python.exe
OS: Windows
Arch: x86_64
WindowsRelease: 10
Version C compiler: ~\AppData\Local\Nuitka\Nuitka\Cache\downloads\gcc\x86_64\11.3.0-14.0.3-10.0.0-msvcrt-r3\mingw64\bin\gcc.exe (gcc).

I definitely need a minimal reproducer or else this is not usable information.

i have encountered this error before, this is an issue with playwright and not nuitka, you should open a bug report in the playwright repo.

See #1029 for support of playwright.


EG cannot collapse the base Gateways defined in the conformance tests

Gateway API conformance defines a base set of 3 Gateways, all using the same GatewayClass: https://github.com/kubernetes-sigs/gateway-api/blob/main/conformance/base/manifests.yaml#L16-L62
EG's design is to be 1:1 with a GatewayClass, with a single address for all Gateways for that class. As such, all Listeners across all of the Gateways need to be compatible/collapsed, per https://github.com/kubernetes-sigs/gateway-api/blob/main/apis/v1beta1/gateway_types.go#L72-L106.
Unfortunately, the Gateways defined for conformance are not collapsible: they each specify an HTTP Listener on port 80 with no specific hostname. EG is going to see those as conflicting, and not be able to program them. However, these Gateways are definitely valid, according to Gateway API. There's no requirement that Listeners across Gateways of a given GatewayClass be collapsible.
Seems like there are a few ways we could deal with this:

consider these Gateways' Listeners compatible/collapsible -- this seems problematic, would mean all the routes across all the Gateways would get munged together
give each Gateway a unique address
something else?

cc @youngnick, would appreciate your thoughts on this since I know you have historical context re: merging Listeners across Gateways.

@youngnick can you please review to make sure ^ is accurate?

@skriss thanks again for bringing this issue to light. IMHO this is a bug in the spec, so I created https://github.com/kubernetes-sigs/gateway-api/issues/1385. Let's see what the community has to say.

The way I read it, the spec is fine -- it gives implementors the option to merge compatible Listeners across Gateways, but does not imply that they must, nor that Listeners across Gateways must be compatible. In this case they're not compatible, but they're still perfectly valid specs, so we need to handle them differently.
It seems to me like the best path forward is to go with a separate LB service per Gateway, each of which forwards to a different set of Envoy ports. That way, each Gateway has its own address/exposed ports, and that address only exposes the routes attached to that Gateway, but they all still share the same underlying data plane as originally designed.
We could also explore whether it's possible to selectively merge Gateways into a single LB service, when their Listeners are compatible. The challenge I see with this approach is what was alluded to on https://github.com/kubernetes-sigs/gateway-api/issues/1385 -- namely, as Listeners are added/modified on a Gateway over time, they may become incompatible with another Gateway's Listeners that they were previously compatible with, which would require us to then separate them out into separate LBs, which seems problematic for users (addresses are changing, how does cutover happen? etc).

Yeah, this point is kind of making me rethink the "GatewayClass = Envoy set" idea, and that it may be better to have each Gateway be a separate LB service and Envoy deployment. Particularly if that's a common pattern in other implementations, being too different is only going to create more problems for us in the future.
I definitely agree that having the address a service is served out of change because someone added a Listener somewhere that made two Gateways not compatible is very bad UX.

From the call:
What Arko suggested on today's call is along the lines of what Steve posted; that we have one Envoy and have a Service per Gateway that forwards to a different set of Envoy ports.  That we sort the Listeners, and then assign them ports in order, in order to be deterministic.
Just sorting the Listeners is problematic; if A and C exist, then you create B, then C's port assignment would change.  We don't necessarily need to be deterministic, we need to be stable.
I suggested storing the assigned port number in to the status.  Arko points out that this would make the translator non-stateless.

As I think about it more, there are hacks we could do like taking a 16-bit hash of the listener and using that as the port number... but we'd still have to deal with possibility of conflicts, and so we'd have to fall back to a persistent state.  Writing the assignments back to Kube is the only robust solution if we want use a single Envoy deployment. It's either that, or an Envoy per Gateway.
We wouldn't have to have in-process state for the translator; the state could 100% live in Kubernetes. But it would mean that we need functional writing of statuses; which we should have soon for Kubernetes, but might not even make sense for other config sources.

thanks for capturing the discussion @LukeShu

the other option of creating a unique Envoy Deployment per Gateway would require changes in

Gateway API translator - it would need to create an xDS IR per Gateway
EG would need to map a Gateway to a Envoy ID
xDS Server would need to be aware of this mapping

@arkodg in addition to the points you make above, is it correct to say that an SDS sidecar is required per Envoy to properly manage secrets across the different data planes?

@arkodg in addition to the points you make above, is it correct to say that an SDS sidecar is required per Envoy to properly manage secrets across the different data planes?

I think simple TLS for auth and Service Account Token for authz could be a solution. I dont think this changes the control plane authn authz design rather it changes how the xds-server decides which node-id (which could be the gateway name) should serve which snapshot
https://github.com/envoyproxy/gateway/blob/ac5ea770c7c7b7b227832e89cec9d7efaf1c5b36/internal/xds/cache/snapshotcache.go#L275

We discussed this on the call today, the outcome is this:

there is a lot of support for shifting our model to run a separate xds server container deployment per Gateway, coordinated by the infrastruture manager, essentially splitting the infrastructure manager and xds server into separate commands/binaries.
@arkodg is going to spend a couple of days seeing if he can get a more shared configuration working though.
If we do need to move to separate infra-manager and control plane, then we will pivot v0.2.0's goal to be about delivering a good experience for the Gateway API features we have now, updating docs etc, to document what features and limitations we currently have, and then put a redesign into scope for v0.3.0.


Cyberpunk city install errors

While installing Cyberpunkcity, several things went wrong:

Some sort of unicode error?  It only affected display; the world still downloaded in the background

Once downloaded, the world cannot be unzipped.  Possibly a temporary file issue?

'''holodeck.install('CyberPunkCity')
Installing CyberPunkCity at /home/wingated/.local/share/holodeck
File size: 1.18 GB
|                    | 4%Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "/usr/lib/python3.5/threading.py", line 862, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/lib/python3.5/dist-packages/holodeck/packagemanager.py", line 147, in file_writer_worker
sys.stdout.write("\r|" + blocks + spaces + "| %d%%" % int_percent)
UnicodeEncodeError: 'ascii' codec can't encode character '\u2589' in position 2: ordinal not in range(128)
Unpacking worlds...
BadZipFile                                Traceback (most recent call last)
 in ()
----> 1 holodeck.install('CyberPunkCity')
/usr/local/lib/python3.5/dist-packages/holodeck/packagemanager.py in install(package_name)
97     install_path = os.path.join(holodeck_path, "worlds")
98     binary_url = binary_website + util.get_os_key() + "_" + package_url
---> 99     _download_binary(binary_url, install_path)
100     if os.name == "posix":
101         _make_binary_excecutable(package_name, install_path)
/usr/local/lib/python3.5/dist-packages/holodeck/packagemanager.py in _download_binary(binary_location, worlds_path, block_size)
164     # Unzip the binary
165     print("Unpacking worlds...")
--> 166     with zipfile.ZipFile(tmp_fd, 'r') as zip_file:
167         zip_file.extractall(worlds_path)
168
/usr/lib/python3.5/zipfile.py in init(self, file, mode, compression, allowZip64)
1024         try:
1025             if mode == 'r':
-> 1026                 self._RealGetContents()
1027             elif mode in ('w', 'x'):
1028                 # set the modified flag so central directory gets written
/usr/lib/python3.5/zipfile.py in _RealGetContents(self)
1091             raise BadZipFile("File is not a zip file")
1092         if not endrec:
-> 1093             raise BadZipFile("File is not a zip file")
1094         if self.debug > 1:
1095             print(endrec)
BadZipFile: File is not a zip file
'''

I should add: I manually downloaded the zip file, unzipped it, changed the Holodeck binary to be executable, and it worked fine...

Should be fixed but needs to be tested.


Removed Backend Code from Master and Documentation Update

Fixes #39 and #38

@tarunnsingh I have removed the backend code from master thats why nodejs CI is failing, and as I have done no changes, in client folder, so the deploy preview is cancelled
I think, we should turn off nodeJS CLI for master, and only put it for v1-deployment

@tarunnsingh I have removed the backend code from master thats why nodejs CI is failing, and as I have done no changes, in client folder, so the deploy preview is cancelled
I think, we should turn off nodeJS CLI for master, and only put it for v1-deployment

Sure Doing that.

Hey @imabp I removed the CI tests, where can I find these NEtlify Rules?

Netlify is already installed. Here is SS

@tarunnsingh I have updated the readme too. And removed the backend code.

@tarunnsingh  any problem facing in merging this issue, do tell me. I will make changes then 😅😅😅

@tarunnsingh any problem facing in merging this issue, do tell me. I will make changes then 😅😅😅

No worries, was a bit involved elsewhere, doing it now.

@all-contributors please add @imabp for doc

@all-contributors
What all you can do ?? 🙄

@all-contributors add @imabp for infra
He has setup up deployment pipeline 🤣

Ohh  @all-contributors, you are damn funny.
I meant infrastructure ! 🙄🙄

Haha ya 😆

@all-contributors add @imabp for infra
He has setup up deployment pipeline 🤣

awww @all-contributors ..
@tarunnsingh atleast, yeh toh bhaav de rha hai

Hey @imabp I small question, how would we be running the whole app locally, I mean, we can have the latest server from v1-deployment separately and the client from master in a separate terminal (let's say).
Perhaps there is no way to run the latest version of the app together from a single terminal?
Please let me know on this.

@tarunnsingh I am trying to figure out a solution for this.
For now, I am using git stash , git  stash pop and in between git stash list
Also before using stash, I have to do git add to untracked folders.. extra unnecessary work I am doing.. 😔😔
Only one solution I could figure out like having a complete different repo dedicated for backend.. But that is not a good idea now 😓😓


🐛 Cloud Firestore - microseconds are lost when implicitly converting DateTime to Timestamp

Bug report
Describe the bug
The microseconds of DateTime are lost when working with ToFirestore<R> for a withConverter for a CollectionReference being implicitly converted to Timestamp.
Steps to reproduce
Steps to reproduce the behavior:

Tap the floating action button
Observe terminal output with expected result and actual result
Repeat as desired with different DateTime inputs

Expected behavior
DateTime should be converted without the loss of microseconds.
Sample project
This bug requires a Firebase project to reproduce. As such, the code needed to reproduce the problem is being provided in place of a repository URL. Anyone who would like to reproduce the bug is encouraged to create a new Firebase project in order to compile the following code sample. The code sample provided makes use of the Firestore emulator.

[!NOTE]
The following code sample uses a custom object with ToFirestore and FromFirestore. There is a more concise version of the code sample, in a separate comment below, that reproduces the bug and does not involve a custom object.

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';

import 'firebase_options.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  FirebaseFirestore firestore = FirebaseFirestore.instance;
  firestore.useFirestoreEmulator('localhost', 8080);
  Settings settings = const Settings(persistenceEnabled: false);
  firestore.settings = settings;
  runApp(const MyApp());
}

class CustomDateTime {
  CustomDateTime(this.dateTime);

  final DateTime dateTime;

  static CustomDateTime fromFirestore(
    DocumentSnapshot<Map<String, dynamic>> snapshot,
    SnapshotOptions? options,
  ) {
    Timestamp timestamp = snapshot.data()!['date'] as Timestamp;
    DateTime date = timestamp.toDate().toLocal();
    return CustomDateTime(date);
  }

  static Map<String, Object?> toFirestore(
    CustomDateTime customDateTime,
    SetOptions? options,
  ) {
    return <String, Object?>{
      'date': customDateTime.dateTime,
    };
  }
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        floatingActionButton: FloatingActionButton(
          onPressed: () async {
            int oneMicrosecond = 1;
            DateTime dateTime = DateTime(2023, 11, 1, 0, 0, 0, 0, oneMicrosecond);
            CustomDateTime customDateTime = CustomDateTime(dateTime);
            CollectionReference<CustomDateTime> collectionRef =
                FirebaseFirestore.instance
                    .collection('dates')
                    .withConverter<CustomDateTime>(
                      fromFirestore: CustomDateTime.fromFirestore,
                      toFirestore: CustomDateTime.toFirestore,
                    );
            DocumentReference docRef = await collectionRef.add(customDateTime);
            DocumentSnapshot<CustomDateTime> docSnap =
                await collectionRef.doc(docRef.id).get();
            print('Expected DateTime: $dateTime');
            print('Actual DateTime: ${docSnap.data()!.dateTime}');
          },
        ),
      ),
    );
  }
}

Additional context
This bug occurs while using either the emulator or a live Firebase project.
This bug does not occur when converting DateTime to a Timestamp beforehand: Timestamp.fromDate(customDateTime.dateTime). This can be seen by modifying the above example:
static Map<String, Object?> toFirestore(
  CustomDateTime customDateTime,
  SetOptions? options,
) {
  return <String, Object?>{
    'date': Timestamp.fromDate(customDateTime.dateTime),
  };
}

Example Inputs / Outputs
Expected DateTime: 2023-11-01 00:00:00.000001
. . .Actual DateTime: 2023-11-01 00:00:00.000
Expected DateTime: 2023-11-01 00:00:00.001001
. . .Actual DateTime: 2023-11-01 00:00:00.001
Expected DateTime: 2023-11-01 00:00:00.999999
. . .Actual DateTime: 2023-11-01 00:00:00.999
Expected DateTime: 2023-11-01 23:59:59.999999
. . .Actual DateTime: 2023-11-01 23:59:59.999
Expected DateTime: 2023-11-30 23:59:59.999999
. . .Actual DateTime: 2023-11-30 23:59:59.999

Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
[√] Flutter (Channel stable, 3.16.5, [redacted])
[√] [redacted]
[√] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
[√] Chrome - develop for the web
[√] Visual Studio - [redacted] (Visual Studio Community 2022 17.0.5)
[√] Android Studio (version 2023.1)
[√] IntelliJ IDEA Community Edition (version 2023.3)
[√] VS Code (version 1.85.1)
[√] Connected device ([redacted])
[√] Network resources

• No issues found!

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
Dart SDK 3.2.3
Flutter SDK 3.16.5

dependencies:
- cloud_firestore 4.13.6
- firebase_core 2.24.2
- flutter 0.0.0

The sample code can be further simplified to exclude the use of a custom object.
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';

import 'firebase_options.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  FirebaseFirestore firestore = FirebaseFirestore.instance;
  firestore.useFirestoreEmulator('localhost', 8080);
  Settings settings = const Settings(persistenceEnabled: false);
  firestore.settings = settings;
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        floatingActionButton: FloatingActionButton(
          onPressed: () async {
            int oneMicrosecond = 1;
            DateTime dateTime =
                DateTime(2023, 11, 1, 0, 0, 0, 0, oneMicrosecond);
            CollectionReference collectionRef =
                FirebaseFirestore.instance.collection('dates');
            DocumentReference docRef =
                await collectionRef.add({'date': dateTime});
            DocumentSnapshot docSnap = await collectionRef.doc(docRef.id).get();
            print('Expected DateTime: $dateTime');
            print(
                'Actual DateTime: ${((docSnap.data()! as Map<String, dynamic>)['date'] as Timestamp).toDate()}');
          },
        ),
      ),
    );
  }
}

Thanks for the detailed report @Region40
Although I am able to replicate the reported behavior, I am wondering if this is specific only while using cloud_firestore or not, or can also occur without it, just using DateTime class from Dart. Is there a way to confirm this ?

@darshankawar That's a good question. I used the Firebase rest api to interact with the emulator, and it appears the bug does not occur when using the rest api. This leads me to suspect that the issue results from how cloud_firestore implicitly converts a DateTime object. Here is a modified version of the previously provided code sample, along with the results of running the same inputs from earlier.
Please note that the code below assumes the project name is "demo-test". Please change the project name, in the code sample, from "demo-test" to the name of your project if you're not running the emulator using: firebase emulators:start --project demo-test.
import 'dart:convert';
import 'dart:io';

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';

import 'firebase_options.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  FirebaseFirestore firestore = FirebaseFirestore.instance;
  firestore.useFirestoreEmulator('localhost', 8080);
  Settings settings = const Settings(persistenceEnabled: false);
  firestore.settings = settings;
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        floatingActionButton: FloatingActionButton(
          onPressed: () async {
            final int oneMicrosecond = 1;
            final DateTime dateTime =
                DateTime(2023, 11, 1, 0, 0, 0, 0, oneMicrosecond);

            // Build the URL for the dates collection
            final String collectionUrl = 'http://<IP_ADDRESS>:8080/v1/projects'
                '/demo-test/databases/(default)/documents/dates';
            Uri url = Uri.parse(collectionUrl);

            // Prepare a JSON string for a request to the Firestore emulator
            final String requestData = jsonEncode({
              'fields': {
                'timestampField': {
                  'timestampValue': dateTime.toUtc().toIso8601String()
                },
              },
            });

            HttpClient httpClient = HttpClient();
            try {
              // Add the document to Firestore emulator
              HttpClientRequest request = await httpClient.postUrl(url);
              request.write(requestData);
              HttpClientResponse response = await request.close();
              String responseData =
                  await response.transform(utf8.decoder).join();
              String documentId =
                  jsonDecode(responseData)['name'].split('/').last;

              // Get the document
              url = Uri.parse('$collectionUrl/$documentId');
              request = await httpClient.getUrl(url);
              response = await request.close();
              responseData = await response.transform(utf8.decoder).join();
              String timestampString = jsonDecode(responseData)['fields']
                  ['timestampField']['timestampValue'];

              // Examine results
              print('Expected DateTime: $dateTime');
              print(
                  'Actual DateTime: ${DateTime.parse(timestampString).toLocal()}');
            } finally {
              httpClient.close();
            }
          },
        ),
      ),
    );
  }
}

Expected DateTime: 2023-11-01 00:00:00.000001
. . .Actual DateTime: 2023-11-01 00:00:00.000001
Expected DateTime: 2023-11-01 00:00:00.001001
. . .Actual DateTime: 2023-11-01 00:00:00.001001
Expected DateTime: 2023-11-01 00:00:00.999999
. . .Actual DateTime: 2023-11-01 00:00:00.999999
Expected DateTime: 2023-11-01 23:59:59.999999
. . .Actual DateTime: 2023-11-01 23:59:59.999999
Expected DateTime: 2023-11-30 23:59:59.999999
. . .Actual DateTime: 2023-11-30 23:59:59.999999

Thanks for the detailed update above @Region40
I think using both, TimeStamp and DateTime together might be a factor in the difference you are seeing.
You are already converting the timestamp to date, which led me to this issue that you can check and see if it helps in anyway for your case or not.

@darshankawar

I think using both, TimeStamp and DateTime together might be a factor in the difference you are seeing.

That appears to be correct. Based on the examples provided above, it seems cloud_firestore does not accurately handle the conversion of DateTime.
The real concern is that cloud_firestore does not communicate this to the developer. It silently modifies the data as it converts a DateTime to Timestamp. This is unexpected and leaves the developer with inaccurate information in their database.
If cloud_firestore is not going to accurately handle the conversion of DateTime toTimestamp, then it needs to throw an error communicating to the developer that it cannot handle instances of DateTime. This is the current behavior that cloud_firestore adopts when handling data types that it cannot implicitly convert, such as DateTimeRange. This can be seen by modifying one of the examples above that uses cloud_firestore.
await collectionRef.add({'date': DateTimeRange(start: DateTime(2022), end: DateTime(2023))});

E/flutter (26606): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Invalid argument: Instance of 'DateTimeRange'
E/flutter (26606): #0      StandardMessageCodec.writeValue (package:flutter/src/services/message_codecs.dart:464:7)
E/flutter (26606): #1      FirestoreMessageCodec.writeValue (package:cloud_firestore_platform_interface/src/method_channel/utils/firestore_message_codec.dart:121:13)
. . .

I have a similar issue and I think it's the same bug. I have a feature in my app where I added pagination. So I have a first query (first page) and a second query (second page, uses startAfter). However, the last item of the first page is also displayed at the start of the second page. However, this only happens when the object in startAfter a DateTime is. Using Timestamp returns the expected result.
Query with Timestamp (returns correct result)
final snapshot = await firestore
    .collection('Sessions')
    .where(
      'userId',
      isEqualTo: userId,
    )
    .orderBy('createdAt', descending: true)
    .limit(deckListBatchSize)
    .get();
print('snapshot: ${snapshot.docs.map((d) => d.id)}');

final snapshot2 = await firestore
    .collection('Sessions')
    .where(
      'userId',
      isEqualTo: userId,
    )
    .orderBy('createdAt', descending: true)
    .limit(deckListBatchSize)
    .startAfter([snapshot.docs.last.get('createdAt')]).get();
print('snapshot: ${snapshot2.docs.map((d) => d.id)}');

Output:
First query:
1821910d-4beb-40e5-8af4-ef980ab92387,
a2084e2e-4059-4b77-b3b1-a30c2ee3759a,
0e041752-2ece-494c-b8bb-d60561e9e292,
78947fbc-a79e-4569-8d9c-8ddce0b6ad60,
142d4336-b1d6-4dd1-9037-d246cd547eda

Second query (with startAfter):
0177f085-af71-4041-9cd1-e3a47211bc52,
e485b50d-cb59-4c62-ae73-32fa590b0a4e,
3187d456-bc77-4037-b08b-0effab68ed78,
9089db8a-c17e-4974-a7dc-bb1e0fa7b155,
7feac8a1-91f1-4099-b693-553b4407a01a

Everything is as expected. No ids are duplicated.
Query with DateTime (returns wrong result)
final snapshot = await firestore
    .collection('Sessions')
    .where(
      'userId',
      isEqualTo: userId,
    )
    .orderBy('createdAt', descending: true)
    .limit(deckListBatchSize)
    .get();
print('snapshot: ${snapshot.docs.map((d) => d.id)}');

final snapshot2 = await firestore
    .collection('Sessions')
    .where(
      'userId',
      isEqualTo: userId,
    )
    .orderBy('createdAt', descending: true)
    .limit(deckListBatchSize)
    .startAfter([
  // Converting timestamp to date: this produces the bug
  (snapshot.docs.last.get('createdAt') as Timestamp).toDate()
]).get();

Output:
First query
1821910d-4beb-40e5-8af4-ef980ab92387,
a2084e2e-4059-4b77-b3b1-a30c2ee3759a,
0e041752-2ece-494c-b8bb-d60561e9e292,
78947fbc-a79e-4569-8d9c-8ddce0b6ad60,
142d4336-b1d6-4dd1-9037-d246cd547eda

Second query (with startAfter):
142d4336-b1d6-4dd1-9037-d246cd547eda,
0177f085-af71-4041-9cd1-e3a47211bc52,
e485b50d-cb59-4c62-ae73-32fa590b0a4e,
3187d456-bc77-4037-b08b-0effab68ed78,
9089db8a-c17e-4974-a7dc-bb1e0fa7b155

You can see that 142d4336-b1d6-4dd1-9037-d246cd547eda is at the end of the first query and at the start of the first query which shouldn't be the case when using startAfter().

@nilsreichardt Thank you for verifying that the behavior is different depending on the platform. The tests I provided above were all run using an Android emulator, so we can add Android to the list of platforms affected by this bug.

Thanks for the update. Using the details provided (sample code) and running on Android, I do see slight difference in the date time output.


Evaluate and update "Resilience Evaluation with LitmusChaos, Prometheus, and Keptn"

Evaluate https://tutorials.keptn.sh/tutorials/keptn-litmus-011/index.html?index=..%2F..index#0 and make recommendations for the future.
Assigned to karthik_s and Shubham Chaudhary

https://github.com/keptn/tutorials/pull/236


Install script generation

The webgme-setup-tool should create setup scripts for windows, *nix when creating a new project.
These scripts should install the non-npm dependencies (namely, nodejs and mongdb, if needed)

I may replace this with simply generating install notes... This is still open for discussion


I'm getting network error when try to connect to the factories

I'm trying to add typechain in my code but it's giving a network error, I already have a provider instance running in my dapp and it's only working when I create another instance from an rpc url.
My idea was to pass the method below as the second parameter to connect to the generated factories.
export function getProviderOrSigner(library: Web3Provider, account?: string): Web3Provider | JsonRpcSigner {
  return account ? getSigner(library, account) : library;
}

function getSigner(library: Web3Provider, account: string): JsonRpcSigner {
  return library.getSigner(account).connectUnchecked();
}

import { useWeb3React } from '@web3-react/core';
const { library, account } = useWeb3React();
const useTokenBalance = async () => {
if (account && library) {

  const erc20 = ERC20__factory.connect( '0x43b... ', getProviderOrSigner(library, account));

  const balance = parseInt( ( await erc20.balanceOf(account) )._hex ,  16 );
  return balance;
}

};
...
Unhandled Rejection (Error): underlying network changed (event="changed", network={"name":"unspecified","chainId":0,"ensAddress":null,"_defaultProvider":null}, detectedNetwork={"name":"bnb","chainId":56,"ensAddress":null,"_defaultProvider":null}, code=NETWORK_ERROR, version=providers/5.4.5)
Web3Provider.<anonymous>
/home/Documents/new/src.ts/base-provider.ts:835
  832 | // First time scanning. We start a little earlier for some
  833 | // wiggle room here to handle the eventually consistent nature
  834 | // of blockchain (e.g. the getTransactionCount was for a
> 835 | // different block)
      | ^  836 | if (scannedBlock == null) {
  837 |     scannedBlock = lastBlockNumber - 3;
  838 |     if (scannedBlock < replaceable.startBlock) {

deps: {
"@typechain/ethers-v5": "^7.1.0",
"@web3-react/core": "^6.1.9",
}
the typings are correct and my calls without typechain are working, I'm not getting a compilation error, but a runtime error...

It was my mistake. There is absolutely no problem with typechain, but an implementation of mine. At the time of retrieving the chainId I was transforming the hexadecimal value to integer using base 10, instead of 16 in the ethers package. The problem was deeper and in other tests the error persisted. Grateful!
export default function getLibrary(provider: any): Web3Provider {

  const chainIdOrAny = typeof provider.chainId === 'number' ? provider.chainId : typeof provider.chainId === 'string' ? parseInt(provider.chainId, **16**) : 'any';

  const library = new Web3Provider(provider, chainIdOrAny);

  return library;
}

If this is not a problem anymore, closing the issue for now. Pls reopen if that's not the case.


Don't make component's props in  wrapper optional

Using TypeScript made me use <Route /> wrapper, but it makes all the component's props optional. That kinda goes against the idea of using TypeScript in the first place.

This looks to be intentional: https://github.com/preactjs/preact-router/pull/211

I saw the commit before, but didn't understand the explanation at first. Mostly because I'm making a simple application that doesn't deal with path/query parameters.
After a second look, I still don't like it, but at least it makes some sense.

There very well might be a better way to deal with that, I'm not a huge TS fan/user myself, just wanted to bring that up as it does seem to serve a legitimate purpose.
If you do know a better option than Partial, happy to have it here


addFile route for adding multiple uploaded files

Description
This is similar to the updateFile, and is called from S3 after a user adds a file to a question that supports multiple file uploads. It will add the file to a new scalar value (FILE_KEY_LIST) on the FileUploadQuestion. If a duplicate file is present, it does nothing (in practice, this replaces the file). This is just the backend support, front-end coming in a future PR.
This change only focuses on new usage, there will likely be some edits later to account for backwards compatibility.
Design doc: https://docs.google.com/document/d/1NQjkUjnY70dVMDSiG-wGNXZhqT4hjB58CHrLKsQ7-To/edit
Release notes
Checklist
General
Read the full guidelines for PRs here

[x] Added the correct label: < feature | enhancement | bug | under-development | dependencies | infrastructure | ignore-for-release | database >
[ ] Assigned to a specific person, civiform/developers, or a more specific round-robin list
[ ] Added an additional reviewer from outside your organization as FYI (if the primary reviewer is in the same organization as you)
[x] Created unit and/or browser tests which fail without the change (if possible)
[ ] Performed manual testing (Chrome and Firefox if it includes front-end changes)
[ ] Extended the README / documentation, if necessary

Instructions for manual testing
If instructions are needed for manual testing by reviewers, include them here.
Issue(s) this completes
Fixes #<issue_number>; Fixes #<issue_number>...

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#7694  👈
#7495
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @devin-civi and the rest of your teammates on  Graphite

Github notified me to review this, but doesn't look actually set to me.
@devin-civi is the TDD complete? The doc still shows it's draft and not approved.

TDD not complete yet, no. Yeah I'm not sure what's up with the assign, I was trying to auto-assign it, but it just stuck on the entire civiform-developers group instead?


FPX middleware for hono does not play nicely with vitest or jest

On an initial attempt, I couldn't get vitest to run with FPX hono middleware. This was my tsconfig:
{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "esModuleInterop": true,
    "moduleResolution": "Bundler",
    "strict": true,
    "skipLibCheck": true,
    "lib": [
      "ESNext"
    ],
    "types": [
        "vitest/globals",
        "@cloudflare/workers-types/2023-07-01"
    ],
    "jsx": "react-jsx",
    "jsxImportSource": "hono/jsx",
    "resolveJsonModule": true
  },
}

Failed to run on both v1.6.0 and v2.0.2
I got the following error:
Error: Cannot find module '/Users/brettbeutell/fiber/goose-quotes/node_modules/@fiberplane/hono/dist/honoMiddleware' imported from<EMAIL_ADDRESS>
The problem appears to be that our compiled typescript imports without specifying the extension of the file it's importing.
// we do this in the package
export { createHonoMiddleware } from "./honoMiddleware";

// but this would work better in this particular example
export { createHonoMiddleware } from "./honoMiddleware.js";

This could cause problems depending on the typescript configuration and node setup.

The simplest (but also a clunky) solution appears to be to update the client library code to add .js to all its imports. @flenter will not like this :D

tried setting up jest, but jest doesn't play too well with ts + esm from what i can tell 🤔

test
NODE_OPTIONS="$NODE_OPTIONS --experimental-vm-modules" jest

FAIL  src/index.test.ts
● Test suite failed to run
Must use import to load ES Module<EMAIL_ADDRESS>
  1 | import { Hono } from 'hono';
> 2 | import { createHonoMiddleware } from '@fiberplane/hono';
    | ^
  3 | import { neon } from '@neondatabase/serverless';
  4 | import { drizzle } from 'drizzle-orm/neon-http';
  5 | import { asc, eq, ilike } from 'drizzle-orm';

  at Runtime.requireModule (node_modules/jest-runtime/build/index.js:850:21)
  at Object.<anonymous> (src/index.ts:2:1)
  at Object.<anonymous> (src/index.test.ts:1:1)

Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        1.109 s
Ran all test suites.

can test the fix by using 0.2.1-beta.1 of the client library

You're right this does annoy me. :) As I really feel we're fixing this the wrong way, but if this works... 👍


[ENH] synchronize dependency checking utilities with sktime and skbase

The dependency checking utilities in utils should be synchronized with sktime, see utils.dependencies there, and skbase.
The long-term trajectory is deduplication with single location of truth in skbase, but this will require equal functionality throughout the three packages, as an intermediate step.
Currently, the skpro module - in utils.validation._dependencies - is a fork of a much earlier version of the sktime module, and is subject to the problem that it imports the packages in order to check presence of dependencies.
This is causing the failures in the test collection phase in https://github.com/sktime/skpro/pull/358, or more generally, in a case where the imported package is faulty, with import causing exceptions (in the case of #358, arviz).
@meraldoantonio has committed to sort this out in a separate PR, this should resolve the failures in #358 as well.

The dependency checking utilities in utils should be synchronized with sktime, see utils.dependencies there, and skbase.
The long-term trajectory is deduplication with single location of truth in skbase, but this will require equal functionality throughout the three packages, as an intermediate step.
Currently, the skpro module - in utils.validation._dependencies - is a fork of a much earlier version of the sktime module, and is subject to the problem that it imports the packages in order to check presence of dependencies.
This is causing the failures in the test collection phase in #358, or more generally, in a case where the imported package is faulty, with import causing exceptions (in the case of #358, arviz).

Hi Franz, opened new PR #490

Addressed in #490


1.20.1 Works!

Only took two hours! :D
No major changes, config is the exact same, and as BiomeLoadingEvent was removed now the mod uses a simple BiomeModifier. (SpawnModifierProvider)

Thanks but if you do this again please dont change all my brackets lol. I like them where they are.

Whoops, that'd would have been my intellij settings. Apologies :P


Bump com.fasterxml.jackson.dataformat version to fix CVEs

Updating this dependency resolves the following CVEs:

CVE-2022-42003
CVE-2022-42004
CVE-2022-40151
CVE-2022-40152

@slimsag I haven't tested this beyond building the sourcegraph/blobstore image and running a quick $ ./s3proxy --version. I don't see anything significant in https://github.com/FasterXML/jackson-dataformats-text/blob/2.15/release-notes/VERSION-2.x though, so can't see it being an issue. You may want to run a test yourself though.

If we merge this, can you test that once it is merged the sourcegraph/blobstore docker image still starts, and that creating a bucket from inside the container works:
docker exec -u 0 -it blobstore sh
curl -i -X PUT http://<IP_ADDRESS>:9000/create-bucket-test-2022-01-09-attempt0

I think if you do that it will be sufficient to confirm this is fine to merge.
Separately, only Sourcegraph can issue requests to this service so I don't think we're actually affected by these CVEs at all from a practical standpoint. I am also rewriting blobstore in Go so this codebase is dead medium-term


Use PyCyAPI

Now that we've pulled data layer in pycyapi, import and use it in backend logic.

In as of 9db346d


Functional test failing, but github job doesn't fail

Describe the bug
When tests are failing in the test step of the functional_tests_at_onboarding_cli job defined in at_libraries.yaml, the overall job does not fail and so the test failures are not flagged on the PR
Steps to reproduce
See https://github.com/atsign-foundation/at_libraries/actions/runs/9191223708/job/25277175158 for example. Noticed in the course of working on https://github.com/atsign-foundation/at_libraries/pull/582
Expected behavior
If the tests fail then the job should fail

@gkc were you able to get the tests to fail (in the same way locally)?
I'm trying to replicate, and it seems the tests are running OK against trunk.

I fixed the tests last week. I'll make a branch for you and add a deliberately failing test

@gkc I've gone back to #0805d1c which is where things were when that GitHub Actions job ran, and the tests pass locally for me, but there's no sign of any attempt to run enrollment_test.dart, which is where the failure happened.
Building package executable... (8.1s)
Built test:test.
00:06 +0: test/at_onboarding_cli_test.dart: A group of tests to assert on authenticate functionality A test to verify authentication is successful with .atKeys file
INFO|2024-05-29 11:11:53.647253|AtLookup|Creating new connection

INFO|2024-05-29 11:11:53.726525|AtLookup|New connection created OK

INFO|2024-05-29 11:11:53.739781|AtLookup|from result:data:_eb29f18a-1bc8-4dbf-910c-aff5c8912ce6@alice🛠:34f3ac6a-67f2-4831-afd1-034075768893

INFO|2024-05-29 11:11:53.763665|AtLookup|auth success

INFO|2024-05-29 11:11:53.791702|OutboundConnectionImpl|close(): calling socket.destroy() on connection to InternetAddress('<IP_ADDRESS>', IPv4):25000

INFO|2024-05-29 11:11:53.874004|AtLookup|Creating new connection

INFO|2024-05-29 11:11:53.889748|AtLookup|New connection created OK

INFO|2024-05-29 11:11:53.972647|AtLookup|auth success

INFO|2024-05-29 11:11:53.974994|AtClientManager|setCurrentAtSign called with atSign @alice🛠

INFO|2024-05-29 11:11:53.975316|AtClientManager|Switching atSigns from null to @alice🛠

INFO|2024-05-29 11:11:54.004378|HiveBase|commit_log_0a406b4891f14d0fa7a716c9d4baf6c8abc3a84833452ad054a837c2b21cea6a initialized successfully

INFO|2024-05-29 11:11:54.014814|HiveBase|0a406b4891f14d0fa7a716c9d4baf6c8abc3a84833452ad054a837c2b21cea6a initialized successfully

INFO|2024-05-29 11:11:54.019494|AtClientCommitLogCompaction (@alice🛠)|Starting commit log compaction job running for every 11 minute(s)

INFO|2024-05-29 11:11:54.088317|AtClientManager|setCurrentAtSign complete

00:07 +1: test/at_onboarding_cli_test.dart: A group of tests to assert on authenticate functionality A test to verify update and llookup verbs with authenticated atLookup instance
INFO|2024-05-29 11:11:54.175536|AtLookup|Creating new connection

INFO|2024-05-29 11:11:54.199409|AtLookup|New connection created OK

INFO|2024-05-29 11:11:54.270673|AtLookup|auth success

00:07 +1: test/at_onboarding_cli_test.dart: A group of tests to assert on authenticate functionality A test to verify authentication is successful with .atKeys file
INFO|2024-05-29 11:11:54.270919|AtClientManager|setCurrentAtSign called with atSign @alice🛠

INFO|2024-05-29 11:11:54.271067|AtClientManager|previous currentAtSign @alice🛠 is same as new atSign @alice🛠 - doing nothing, returning

INFO|2024-05-29 11:11:54.297531|AtLookup|Creating new connection

INFO|2024-05-29 11:11:54.321209|AtLookup|New connection created OK

INFO|2024-05-29 11:11:54.355656|AtLookup|auth success

00:07 +2: test/at_onboarding_cli_test.dart: A group of tests to assert on authenticate functionality A test to authenticate and atSign and invoke AtClient put and get methods
INFO|2024-05-29 11:11:54.381114|AtLookup|Creating new connection

INFO|2024-05-29 11:11:54.399061|AtLookup|New connection created OK

INFO|2024-05-29 11:11:54.409612|AtLookup|from result:data:_6eb1b6f8-6cb2-458e-966a-1a0923ee3386@eve🛠:f026b0c1-42f5-4f0f-845c-d7b477e1488a

INFO|2024-05-29 11:11:54.422706|AtLookup|auth success

INFO|2024-05-29 11:11:54.444686|OutboundConnectionImpl|close(): calling socket.destroy() on connection to InternetAddress('<IP_ADDRESS>', IPv4):25010

INFO|2024-05-29 11:11:54.456179|AtLookup|Creating new connection

INFO|2024-05-29 11:11:54.474913|AtLookup|New connection created OK

INFO|2024-05-29 11:11:54.513719|AtLookup|auth success

00:07 +2: test/at_onboarding_cli_test.dart: A group of tests to assert on authenticate functionality A test to verify authentication is successful with .atKeys file
INFO|2024-05-29 11:11:54.513978|AtClientManager|setCurrentAtSign called with atSign @eve🛠

INFO|2024-05-29 11:11:54.514209|AtClientManager|Switching atSigns from @alice🛠 to @eve🛠

00:07 +2: test/at_onboarding_cli_test.dart: A group of tests to assert on authenticate functionality A test to authenticate and atSign and invoke AtClient put and get methods
INFO|2024-05-29 11:11:54.520957|HiveBase|commit_log_52c6e136524062d6def95e9fc56c27438ede6afb6245c5ea76f1c56ccd0778fc initialized successfully

INFO|2024-05-29 11:11:54.533887|HiveBase|52c6e136524062d6def95e9fc56c27438ede6afb6245c5ea76f1c56ccd0778fc initialized successfully

INFO|2024-05-29 11:11:54.534804|AtClientCommitLogCompaction (@eve🛠)|Starting commit log compaction job running for every 11 minute(s)

00:07 +2: test/at_onboarding_cli_test.dart: A group of tests to assert on authenticate functionality A test to verify authentication is successful with .atKeys file
INFO|2024-05-29 11:11:54.535608|AtClientCommitLogCompaction (@alice🛠)|Stopping commit log compaction job

INFO|2024-05-29 11:11:54.540317|AtClientManager|setCurrentAtSign complete

00:07 +4: test/at_onboarding_cli_test.dart: A group of tests to assert encryption keys persist into local secondary A test to authenticate atSign and verify PKAM keys and encryption keys are updated to local secondary
INFO|2024-05-29 11:11:54.689817|AtLookup|Creating new connection

INFO|2024-05-29 11:11:54.717377|AtLookup|New connection created OK

INFO|2024-05-29 11:11:54.747690|AtLookup|auth success

00:07 +4: test/at_onboarding_cli_test.dart: A group of tests to assert on authenticate functionality A test to verify authentication is successful with .atKeys file
INFO|2024-05-29 11:11:54.748011|AtClientManager|setCurrentAtSign called with atSign @eve🛠

INFO|2024-05-29 11:11:54.748142|AtClientManager|previous currentAtSign @eve🛠 is same as new atSign @eve🛠 - doing nothing, returning

00:11 +5: test/at_onboarding_cli_test.dart: ... verify atSign is onboarded and .atKeys file is generated successfully  Connecting to secondary ...1/50
00:11 +5: test/at_onboarding_cli_test.dart: A group of tests to verify onboard functionality A test to verify atSign is onboarded and .atKeys file is generated successfully
INFO|2024-05-29 11:11:58.839157|AtLookup|Creating new connection

INFO|2024-05-29 11:11:58.854587|AtLookup|New connection created OK

INFO|2024-05-29 11:11:58.866398|OutboundConnectionImpl|close(): calling socket.destroy() on connection to InternetAddress('<IP_ADDRESS>', IPv4):25006

INFO|2024-05-29 11:11:58.869358|AtLookup|Creating new connection

INFO|2024-05-29 11:11:58.884224|AtLookup|New connection created OK

INFO|2024-05-29 11:11:58.895588|AtLookup|from result:data:_bc22d7eb-814c-4671-b37f-6795f39d2470@egcovidlab🛠:bc6ef473-dd36-4c55-aaaf-15a7d9dd329a

INFO|2024-05-29 11:11:58.907519|AtLookup|auth success

INFO|2024-05-29 11:11:58.908312|AtAuthServiceImpl|Generating encryption keypair

INFO|2024-05-29 11:11:59.446104|AtAuthServiceImpl|[Information] Generating your encryption keys and .atKeys file

INFO|2024-05-29 11:11:59.446255|AtAuthServiceImpl|Generating pkam keypair

00:13 +5: test/at_onboarding_cli_test.dart: A group of tests to assert on authenticate functionality A test to authenticate and atSign and invoke AtClient put and get methods
INFO|2024-05-29 11:12:00.308501|AtLookup|Creating new connection

00:13 +5: test/at_onboarding_cli_test.dart: A group of tests to verify onboard functionality A test to verify atSign is onboarded and .atKeys file is generated successfully
INFO|2024-05-29 11:12:00.317151|OutboundConnectionImpl|close(): calling socket.destroy() on connection to InternetAddress('<IP_ADDRESS>', IPv4):25006

INFO|2024-05-29 11:12:00.317557|AtLookup|Creating new connection

INFO|2024-05-29 11:12:00.322555|AtLookup|New connection created OK

00:13 +5: test/at_onboarding_cli_test.dart: A group of tests to assert on authenticate functionality A test to authenticate and atSign and invoke AtClient put and get methods
INFO|2024-05-29 11:12:00.324594|AtLookup|New connection created OK

00:13 +5: test/at_onboarding_cli_test.dart: A group of tests to verify onboard functionality A test to verify atSign is onboarded and .atKeys file is generated successfully
INFO|2024-05-29 11:12:00.349569|AtLookup|auth success

00:13 +5: test/at_onboarding_cli_test.dart: A group of tests to assert on authenticate functionality A test to authenticate and atSign and invoke AtClient put and get methods
INFO|2024-05-29 11:12:00.355601|AtLookup|auth success

00:13 +5: test/at_onboarding_cli_test.dart: A group of tests to verify onboard functionality A test to verify atSign is onboarded and .atKeys file is generated successfully
INFO|2024-05-29 11:12:00.360774|AtAuthServiceImpl|Encryption public key update result data:2

00:13 +5: test/at_onboarding_cli_test.dart: A group of tests to assert on authenticate functionality A test to authenticate and atSign and invoke AtClient put and get methods
INFO|2024-05-29 11:12:00.366832|SyncService (@eve🛠)|148192220|Returning serverCommitId 2

00:13 +5: test/at_onboarding_cli_test.dart: A group of tests to verify onboard functionality A test to verify atSign is onboarded and .atKeys file is generated successfully
INFO|2024-05-29 11:12:00.377571|AtAuthServiceImpl|Cram secret delete response : data:-1

[Success] Your .atKeys file saved at<EMAIL_ADDRESS>
00:13 +5: test/at_onboarding_cli_test.dart: A group of tests to assert on authenticate functionality A test to verify authentication is successful with .atKeys file
INFO|2024-05-29 11:12:00.387351|AtClientManager|setCurrentAtSign called with atSign @egcovidlab🛠

INFO|2024-05-29 11:12:00.387541|AtClientManager|Switching atSigns from @eve🛠 to @egcovidlab🛠

00:13 +5: test/at_onboarding_cli_test.dart: A group of tests to assert on authenticate functionality A test to authenticate and atSign and invoke AtClient put and get methods
INFO|2024-05-29 11:12:00.388470|SyncService (@eve🛠)|148192220|Returning serverCommitId 2

00:13 +5: test/at_onboarding_cli_test.dart: A group of tests to verify onboard functionality A test to verify atSign is onboarded and .atKeys file is generated successfully
INFO|2024-05-29 11:12:00.395961|HiveBase|commit_log_62d8a53cdc86e1329b338fc2868d51fc3a39bf99c3a89ccf7fd20b15e30ef9dc initialized successfully

INFO|2024-05-29 11:12:00.400047|HiveBase|62d8a53cdc86e1329b338fc2868d51fc3a39bf99c3a89ccf7fd20b15e30ef9dc initialized successfully

INFO|2024-05-29 11:12:00.400367|AtClientCommitLogCompaction (@egcovidlab🛠)|Starting commit log compaction job running for every 11 minute(s)

00:13 +5: test/at_onboarding_cli_test.dart: A group of tests to assert on authenticate functionality A test to authenticate and atSign and invoke AtClient put and get methods
INFO|2024-05-29 11:12:00.400695|AtClientCommitLogCompaction (@eve🛠)|Stopping commit log compaction job

00:13 +5: test/at_onboarding_cli_test.dart: A group of tests to assert on authenticate functionality A test to verify authentication is successful with .atKeys file
INFO|2024-05-29 11:12:00.401497|AtClientManager|setCurrentAtSign complete

00:13 +5: test/at_onboarding_cli_test.dart: A group of tests to assert on authenticate functionality A test to authenticate and atSign and invoke AtClient put and get methods
SEVERE|2024-05-29 11:12:00.446526|SyncService (@eve🛠)|Exception in sync f7b820b3-cb66-4a30-9813-5028131d4617. Reason: Failed to syncData caused by
local:lastreceivedservercommitid@eve🛠 is not a valid key

00:13 +5: test/at_onboarding_cli_test.dart: A group of tests to verify onboard functionality A test to verify atSign is onboarded and .atKeys file is generated successfully
INFO|2024-05-29 11:12:00.453845|AtLookup|Creating new connection

INFO|2024-05-29 11:12:00.469436|AtLookup|New connection created OK

INFO|2024-05-29 11:12:00.492617|OutboundConnectionImpl|close(): calling socket.destroy() on connection to InternetAddress('<IP_ADDRESS>', IPv4):25006

00:13 +6: test/at_onboarding_cli_test.dart: ... atSign is activated and .atKeys file is generated using activate_cli   [Information] Root server is vip.ve.atsign.zone
[Information] Registrar url provided is my.atsign.com
[Information] Activating your atSign. This may take up to 2 minutes.
00:17 +6: test/at_onboarding_cli_test.dart: ... atSign is activated and .atKeys file is generated using activate_cli   Connecting to secondary ...1/50
00:18 +6: test/at_onboarding_cli_test.dart: ... atSign is activated and .atKeys file is generated using activate_cli   [Success] Your .atKeys file saved at<EMAIL_ADDRESS>

@gkc running these locally I get a 0 exit code despite tests failing

So this is a dart test thing rather than a GitHub Actions thing

Carrying 2SP into PR89 as @gkc wants to do a little more testing before we open a ticket with the Dart team.

@gkc I think we have an answer at https://github.com/dart-lang/test/issues/2248#issuecomment-2216278541
Looks like this is happening when we hit an exit(0) during a test.
We now have some head scratching to do in order to figure out correct behaviour under test versus in production (whilst the VM team do the same for the more general case of exit handling).

Evidence here that our test pack as whole will now, correctly, fail if there is any individual test failure.


Locked pygeoif==0.7

Related Issue(s):

No longer working after pygeoif released version 1.0.0

Description:
Just yesterday (29 Sep 2022) pygeoif released version 1.0.0
All other versions before 0.7 (May 4, 2017) were PRE-RELEASE so pip didn't install them.
Version 1.0.0 throws the following error:

The issue is fixed for now by locking the pygeoif to version 0.7

PR Checklist:

[x] Code is formatted and linted (run pre-commit run --all-files)
[x] Tests pass (run make test)
[x] Documentation has been updated to reflect changes, if applicable, and docs build successfully (run make docs)
[ ] Changes are added to the CHANGELOG.

I filed this issue before noticing this PR:

https://github.com/stac-utils/stac-fastapi/issues/467

Thank you @philvarner .
Just noticed this issue early in the morning trying to rebuild my dockers.
Never hurts to do daily testing :)


Create: 7-Reverse-Integer.kt, 338-Counting-Bits.kt, 55-Jump-Game.kt, 45-Jump-Game-II.kt, 70-Climbing-Stairs.kt, 746-Min-Cost-Climbing-Stairs.kt

Adding Kotlin solution for 7-Reverse-Integer, 338-Counting-Bits.kt, 55-Jump-Game.kt, 45-Jump-Game-II.kt, 70-Climbing-Stairs.kt, 746-Min-Cost-Climbing-Stairs

File(s) Modified: 7-Reverse-Integer.kt, 338-Counting-Bits.kt, 55-Jump-Game.kt, 45-Jump-Game-II.kt, 70-Climbing-Stairs.kt, 746-Min-Cost-Climbing-Stairs
Language(s) Used: kotlin
Submission URL: Reverse Integer: _https://leetcode.com/submissions/detail/787435058/_
Counting Bits: _https://leetcode.com/submissions/detail/787525850/_
Jump Game: _https://leetcode.com/submissions/detail/787534393/_
Jump Game II: _https://leetcode.com/submissions/detail/787541073/_
Climbing Stairs: _https://leetcode.com/submissions/detail/787587304/_
Min Cost Climbing Stairs: _https://leetcode.com/submissions/detail/787591887/_

Thanks, @Ykhan799!