feat(tree shaking): Start on implementing code splitting

This implementation aims to add tree shaking to the Module, as the current implementation doesn't allow for proper tree shaking.
The implementation I made is not working as intended, but might still be of use for finding the proper implementation.
The issue
The issue is currently that our build process creates a very big bundle, was expecting that this was caused by it loading SVGs however this isn't the case. It's actually just 80KB of the require statements. 17KB of this is related to the isoToCountryCode.
My suggestion
My suggestion would be to instead of a giant bundle is to generate a code split bundle of modules, this will allow users to import only a part of the application and should also help with tree shaking as bundlers will be able to better treeshake.
The problem with my current implementation is that:

Importing from allFlags still requires all the flags
Importing the file now makes the bundlers include all the svg elements into the page, while this can't be seen in the bundle size. Using it in an application actually loads in all the SVGs

Desired solution
Well obviously the most desired solution would be that we can detect that if an element is unused that we drop it. But I'm unsure how we would be able to implement this.
But we would like to allow the user to do the following:
import { NL, AD } from 'flagpack-core/flags' and have the bundle just include NL and AD (Not all the svg's and parts)
Another option would be to allow:
import NL from 'flagpack-core/flags/NL'
Another solution would be to allow a user to create a config and that we then compile a part that only includes those parts (We would probably need to write a babel plugin for this)

Hello, this flag library looks pretty neat and even thought looks like it doesn't support tree-shaking out of the box, maybe I could suggest looking at https://github.com/kreuzerk/svg-to-ts which pretty much you can setup it to compile the svgs into their own JS files along with the whole type definition.
I am trying something similar at ngx-nations but with other two flag icon libraries.
Cheers!

Thanks @KingDarBoja for your suggestions! While we've been working on some other parts of flagpack, this is certainly on our todo.

We have written out our plan of action here, feedback is welcome and we will keep the discussion updated based on progress and new findings! #46
We will close this PR, as the implementation will be different, this however doesn't mean that we are no longer working on it. We however will approach the issue in a different way.


fix: Move default resources for events for AWS Batch service integration

Description
default_resources for AWS Batch service integration (events) are not working correctly as in locals.tf
they belong to the outer scope batch_Sync whereas they should belong to the nested
events field.
My workaround for the problem was:
  service_integrations = {
    batch_Sync = {
      batch = true,
      events = [
      "arn:aws:events:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:rule/StepFunctionsGetEventsForBatchJobsRule"],
    }

Which works, but it would be nice to fix and hide the events policy as for other services it works flawlessly. Thus the MR.
Motivation / Context / Breaking Changes
No regression is being introduced as they field is not used currently (as it lies outside of the keys context either way):

How Has This Been Tested?

[x] I have updated at least one of the examples/* to demonstrate and validate my change(s)
[x] I have tested and validated these changes using one or more of the provided examples/* projects
[x] I have executed pre-commit run -a on my pull request

Tested with init and plan, on master plan does not work correctly:

After the changes everything is fine, 2 more resources as expected:

This PR is included in version 2.7.2 :tada:


Fix publish steps

Description
Semi-automate the publish steps (still need to enter credentials for git).
Purpose
Reduce human errors.
TODO: Consider adding this to a bash or python script. Since it's basically only used by me now this will do.

Considering how many steps needed for publishing adapter, there is no wonder mistakes have been made ;)

LGTM though I haven't tried running the code.


select2 override stopped working

I wonder why, I wonder why, yesterday we talked ....

make it work again
or rewrite the code to return an ID and not and URL so we don't need https://github.com/acdh-oeaw/apis-override-select2js

pip uninstall django-autocomplete-light
pip install django-autocomplete-light seems to solve the issue;
anyway I'll try to rewrite the code to return an ID (integer) instead of URL because IMHO with this in place we don't need the patched version anymore


Overlay bracelets of Slaughter/expeditous

Similar to how we have overlays for Fishing/Not Fishing (and cooking, etc). I often find myself forgetting to equip bracelets.
The overlay would say 'Worn/Not worn'

Duplicate of #9969

@Hydrox6 Hey, no this isn't a duplicate issue. Though, it isn't that far from the alleged duplicate issue

You're asking for basically the same thing; an overlay that shows the charges also shows if you have one equipped.
Also, a performance tracker-like overlay for a single state just feels incredibly wrong.

Fair enough, I guess. Just because you mightn't use it doesn't mean there's not appetite for it


espflash 1.3 reports "No serial port specified"

Perhaps this is a duplicate of #129, but that issue is about cargo-espflash, while this one is about espflash, so I thought I'd file it separately just in case.
With espflash version 1.2, I'm able to flash (and monitor) a binary as expected:
> cargo install --version 1.2.0 espflash
…
> espflash --version
espflash 1.2.0
> espflash /dev/cu.usbserial-2114401 target/xtensa-esp32s3-espidf/debug/example
Serial port: /dev/cu.usbserial-2114401
Connecting...

But version 1.3 complains that it can't find the serial port (despite being given the same command line args, including the serial port):
> cargo install espflash
…
> espflash --version
espflash 1.3.0
> espflash /dev/cu.usbserial-2114401 target/xtensa-esp32s3-espidf/debug/example
Error: cargo_espflash::no_serial

  × No serial port specified in arguments or config
  help: Add a command line option with the serial port to use

Good guesses, I'm running macOS Monterey and using an M1!
Unfortunately, switching to that branch didn't seem to help:
> cargo install --git https://github.com/jessebraham/espflash/ --branch fixes/serialport espflash
…
Replaced package `espflash v1.3.0` with `espflash v1.4.0-dev (https://github.com/jessebraham/espflash/?branch=fixes/serialport#bea29ea5)` (executable `espflash`)
> espflash --version
espflash 1.4.0-dev
> espflash --monitor /dev/cu.usbserial-2114401 target/xtensa-esp32s3-espidf/debug/example
Error: cargo_espflash::no_serial

That's unfortunate, thanks for checking at least. I will look into this ASAP!

I just ran into this myself using macOS Monterey on an M1.
It seems like there are two problems

The error message is confusing because a serial port was passed on the command line but the error message says it wasn't.
espflash doesn't try to open user-specified path as a serial port.

For 2, it makes sense to me to only look at USB serial ports when looking for default serial ports (if that happens) but if a user passes a path to a serial port, it should be used as specified and if the serial port cannot be opened, then report the error at that point.
(My thinking is that this is similar to how one shouldn't check permissions to open a file via access(2) before opening file and instead should just try to open the file and check if it fails.)

I just tried this on an Intel Mac running Monterey, and I experienced the same issue. Then @stevecheckoway's comment reminded me to try specifying /[dev/tty.usbserial-2114401](http://dev/tty.usbserial-2114401) instead of /[dev/cu.usbserial-2114401](http://dev/cu.usbserial-2114401), and that worked:
> espflash --monitor /dev/tty.usbserial-14114401 target/xtensa-esp32s3-espidf/debug/example
Serial port: /dev/tty.usbserial-14114401
Connecting...

That's surprising. Both the tty and the cu devices fail in exactly the same way for me.

After a brief investigation today, it seems that /dev/tty.* devices are being listed by serialport::available_ports(), however the /dev/cu.* ports are not. This was done on an x86_64 mac running Big Sur, just for completeness.I don't believe this to be the full cause of the issue, but I was able to reproduce @mykmelez 's experience which led me to this. The short-term solution of course is just to use the tty ports, however this will need to be investigated in the serialport library; I'm not sure if there is a technical reason for this or not.
There seem to be some issues regarding both M1 and Monterey, so I will continue to look into this.

M1 + Monterey, using /dev/cu.usbserial-0001  or  /dev/tty.usbserial-0001 does not work.

A bit of poking shows that detect_usb_serial_ports is returning an empty vector, so I'm wondering if something else in the PR is filtering the valid ports incorrectly. Sorry I can't help more.

Similar issue on Intel BigSur.
Using /dev/tty.usbserial-xyz instead of /dev/cu.usbserial-xyz worked.

I also experienced this issue running in a Podman container under Linux.
On the host: :heavy_check_mark:
espflash /dev/ttyACM0 board-info
✔ Use serial port '/dev/ttyACM0' - Sunrise Point-LP USB 3.0 xHCI Controller? · yes
✔ Remember this serial port for future use? · yes
Serial port: /dev/ttyACM0

sudo podman run --device /dev/ttyACM0 -v -it docker.io/espressif/idf-rust
In the container: :x:
espflash /dev/ttyACM0 board-info
Error: cargo_espflash::no_serial

  × No serial port specified in arguments or config
  help: Add a command line option with the serial port to use

Still working on this, as alluded to in my previous comment there seem to be a number of factors at play here. I have reworked the error handling in the cli::serial module now and created a second error type to distinguish from Error::NoSerial, so this will hopefully make things more clear.

@Firstyear thank you for digging into this. There is a bug in the current version of serialport for Monterey which lists USB serial ports as PCI ports, so I suspect this is happening and they are consequently being filtered out of the results. We have established a fork of serialport to which I have applied a fix for this problem, and I'm hoping to release a new version of this library soon.

@Lainera this is due to the serialport dependency (or possibly one of its dependencies), but I plan on seeing if this can be fixed. If not I will be sure to note it in the README at the very least, or try to come up with another solution.

@JensPfeifle not sure what is going on there but I'll try to reproduce it locally and dig in, thanks for reporting.

Thanks for investigating this further, and for your time and work on this crate! Really appreciate it mate 😁

Thank you everybody for being patient. I have released a new version of serialport, and have bumped the dependency in the master branch of this repo. I believe this release should resolve at least some of the issues we're experiencing.
I will need some more time to analyze what remaining problems need addressing, but hopefully we can get 1.4.0 of espflash out soon. If anybody is able/willing to test out the master branch and report back their results it would be very helpful!

I have release 1.4.0 today, which I'm hoping will resolve at least some of the issues. If anybody is able to test using this version and report back on the status of the issues they were previously facing, I'd appreciate it!

There have been quite a few comments in this issue spread over the course of a number of weeks, so I will try to summarize things the best that I can. I'm hoping that the problems reported in this issue have been resolved as of 1.4.0, and would like to get this issue closed when possible.
It seems there were actually a number of issues:

There was only a single error thrown for any issue pertaining to serial ports, and it was often misleading.

This error was split into multiple and additional data was included in the error reports.
https://github.com/esp-rs/espflash/pull/139

macOS Monterey and/or systems with M1 processors were not having any serial devices enumerated.

This has been fixed in the upstream serialport library, and espflash now uses the most recent version, so this issue should be resolved.

On some or all installations of macOS, the /dev/tty.* ports are listed but the /dev/cu.* ports are not; because of this an error may mistakenly be returned indicating that the port does not exist.

The workaround for this is of course to use the /dev/tty.* variant of the port. I have not yet ascertained whether or not we will be able to get list_available_ports() to include the /dev/cu.* variants. However, since there is a seemingly suitable workaround I'm not considering this a major issue at this point in time.

Thanks for getting this working! I'll test it out as soon as I'm able, but it sounds like the issues I was encountering have been resolved.

* The workaround for this is of course to use the `/dev/tty.*` variant of the port. I have not yet ascertained whether or not we will be able to get `list_available_ports()` to include the `/dev/cu.*` variants. However, since there is a seemingly suitable workaround I'm not considering this a major issue at this point in time.

I would be inclined to not bother with using the /dev/cu.* ports ever. They're really only useful for talking to a modem (the Calling Unit) where you can have getty listening on the /dev/tty.* port for call ins and still use the /dev/cu.* to make calls. I have never needed to use the /dev/cu.* ports.
I've been using /dev/tty.* with esptool.py as well as in my own Rust code using the serialport crate to talk to my ESP8266, ESP32, ESP32-S2, ESP32-S3, and ESP32-C3 on macOS Monterey on an M1 for several months.
But that said, I don't think there's any harm in using them; it's just unnecessary.

espflash 1.3.0+ doesn't not work under WSL with usbipd
Connecting to the device over uart with the usual Python IDF utilities works fine.
Narrowing down the issue, it appears it started with commit https://github.com/esp-rs/espflash/commit/85c8eb84db7f0a534d73772069f864475ff4dfe6 .
The error shows as below:
Error: espflash::serial_not_found

  × The serial port '/dev/ttyUSB0' could not be found
  help: Make sure the correct device is connected to the host system

However the device is definitely connected and is listed under /dev/, as well as works with the Python IDF utilities.
espflash 1.4.1 works fine under a Linux host, and on Windows itself as expected.

The WSL usbipd problems are being tracked here: https://github.com/esp-rs/espflash/issues/166
I'm going to close this issue for now, as it's gotten a little long-winded and there are multiple problems reported, most of which I hope have been resolved to some extent. If anybody continues to experience any of the issues mentioned here I would ask that you either create an issue, or comment on an existing issue if one exists.
If anybody feels this should be re-opened, please feel free to say such and/or re-open the issue.

For anybody following this who would like to use callout ports (/dev/.cu*) please check out this issue to follow the progress on that front: https://github.com/esp-rs/espflash/issues/181


[WIP] Shared cache RT pickup, dual client stack support

Tracking (corpnet required):

https://identitydivision.visualstudio.com/Engineering/DevEx - Android/_queries/query/785e80fc-880c-4271-bfdf-4e15ac87f5d2/
https://domoreexp.visualstudio.com/DefaultCollection/MSTeams/_workitems/edit/881449

Changes in this PR:

When looking up RTs in the local cache, if we don't find any that match our exact client id, use a FoCI RT if one is available

What does this change enable?

If another app has stashed tokens in our local cache, we'll pick them up even if the client_id doesn't match if one of those apps is FoCI enabled
Silent auth between two FoCI apps without broker if they dual-client stack

Don't we risk picking up the wrong RT?
We shouldn't because of few things.

Non-broker apps are sandboxed, so apps only a share a cache if they are FoCI or if they are "dual-client" (two client ids in one binary)
As a rule, we should say that FoCI apps can only dual-client stack with another FoCI app. Thou shalt not blend 1P & 3P registrations in a single binary
Since 3P apps aren't FoCI, this new fallback/lookup logic will never yield a token in those cases
This logic can be hit inside the broker, but broker sandboxes app caches in a way that this shouldn't make a difference. The broker cache sandboxing works like this:

All FoCI apps together
All non-FoCI apps get their own cache

PMD is angry. Will resolve

PMD is angry. Will resolve

Fixed in 2ecfac346edd4b2a6077f8b127faa28915cd2df0


[Relay] Dead code elimination pass blows up call stack

This was not obvious to me because code that I was previously working with successfully suddenly started segfaulting when I upgraded my TVM build to the 0.6.0 release, but:

for even relatively simple feed forward graphs (a few convolutional layers + fully connected + output), the gradient function from relay becomes fairly complex especially if using higher order mode
for higher order mode, when running a PartialEvaluate() + DeadCodeElimination() pass, the dead code elimination segfaults under Ubuntu default ulimit, but passes when increasing ulimit to something very large
looking at the coredump in gdb, the stack when the segfault happens is several thousand frames deep inside the recursive node traversal here: https://github.com/apache/incubator-tvm/blob/master/src/relay/pass/dead_code.cc#L131
for first order mode gradients, the VM compilation step also runs several DeadCodeElimination passes and for gradients of larger models (especially tensorflow models which insert a lot of transpose operations to make conv2d layers NCHW), the same stack overflow happens

I think this is a regression from earlier versions, but:

it would be preferable to remove the recursion inside DCE, or fix it so it's tail recursive and the compiler can optimize away previous stack frames, or transform to an explicit stack, so users don't get this cryptic segfault
if that's not possible, the documentation should include a note that users should increase their ulimit

@jroesch care to take a look?

I was getting a segfault just trying to run resnet152_v1 with the script below. Smaller models worked fine. Once I increased the stack limit using ulimit -s unlimited, the segfaults stopped.
import numpy as np
import time

import tvm
from tvm import relay
import tvm.relay.testing
import tvm.relay.transform
from tvm.contrib import graph_runtime
import mxnet
from mxnet.gluon.model_zoo.vision import get_model
dtype = 'float32'
input_shape = (1, 3, 224, 224)
i_data = np.random.uniform(0, 1, input_shape).astype(dtype)
block = get_model('resnet152_v1', pretrained=True)
mod, params = relay.frontend.from_mxnet(block, shape={'data': input_shape}, dtype=dtype)
with relay.build_config(opt_level=3):
    graph, lib, params = relay.build(mod, "cuda", params=params)
mod = graph_runtime.create(graph, lib, ctx=tvm.gpu(0))
mod.set_input(**params)
for i in range(10):
    mod.run(data=i_data)

@trevor-m
Hi, I get the same problem when I try to use relay.build() to build a resnet101, with target as Cuda, but it works fine if I change the model to resnet18. Have you solved this problem?

@YunLexi : The actual issue in dead code elimination pass is fixed withhttps://github.com/apache/incubator-tvm/pull/4053.
I think this might be some other issue.
Can you share the piece of code to reproduce the issue?
NOTE: I tried the code shared by @trevor-m  , but the issue did not occur in my workspace, even with stack limit as 8192.

https://github.com/apache/incubator-tvm/blob/master/tutorials/frontend/from_mxnet.py

@ANSHUMAN87

@ANSHUMAN87
I just try to run the following tutorial with resnet101_v1, https://github.com/apache/incubator-tvm/blob/master/tutorials/frontend/from_mxnet.py, the program hangs at    https://github.com/apache/incubator-tvm/blob/87faaf12f3d2b792bacccadeb369236ab5c5b45b/python/tvm/contrib/nvcc.py#L95 not doing anything, but this tutorial works fine if I change the model to resnet18_v1 or resnet50_v1 with cuda as target without cudnn.

@YunLexi : I executed from_mxnet.py with cuda as target and with model as resnet101_v1. It runs fine. I think issue is not in TVM. Issue is in your CUDA setup. Can you try uninstall and install freshly again. I think it will solve.

I think the conversation here has diverged from the original problem.
@ANSHUMAN87 I don't think the original problem I was running into has been solved. To be clear, this isn't a bug in the implementation, but it is a problematic implementation. The nature of the dead code elimination implementation requires extensive recursive calls to visit every node of the graph. Since this is implemented as naive recursion, for a large enough graph (like the kind you get when using auto-diff to generate gradient functions Relay) it is easy to exhaust the default stack limit. It is not indicated anywhere obvious in the documentation that users should increase their stack limit, and the resulting segfault when this happens can be really confusing to understand if you don't consider stack overflow.
As I mentioned in the original issue, there are two things that should be done:

make it obvious in the documentation that users should increase their stack size if they encounter segfaults of this nature, or better yet, implement something like a recursion counter inside that graph traversal that warns users when they're reaching high levels of recursion in their graphs that could trigger stackoverflow
fix the stack overflow, by either figuring out how to optimize the recursion implementation so that the compiler can perform tail call optimization, or convert the recursive code to iteration/reimplement with an explicit stack

@SWu : Thank you! I have clearly understood your issue in your original report. Have you tried in the latest code in Tvm, where the PR I mentioned is merged? Please crosscheck. I believe you should not encounter the issue again. I am eagerly waiting for your response. Thanks!

@SWu : if still you face the issue. We can find proper solution for it. Thanks!

@ANSHUMAN87 yes, I can verify that the version of TVM I am using does have https://github.com/apache/incubator-tvm/pull/4053 (I am using 0.6.0 release which was cut 2 months after that patch was merged, but I also just double checked src/relay/pass/dead_code.cc to verify that the changes from that patch are there).
This version still gives me stack overflow when trying to build gradient functions unless I ulimit -s unlimited. I don't have a readily available model to share, but I'm trying to build a gradient function for a model that I converted from tensorflow with 5 convolution layers + 3 dense layers, so it's not gigantic.

I can manage an explicit stack or write it in CPS+Trampoline style to remove the blowup.
The DCE pass need rework. For now I suggest not touching it.
I am on other project but I will get back to training soon.

Close for now as it is potentially fixed by https://github.com/apache/incubator-tvm/pull/4886, please feel free to open another thread


Proposal ref(builder): do not build slugbuilder and slugrunner locally

It could possible to interact with ceph (S3) and just download pre-built files containing the slugbuilder and slugrunner images and add those files in the deis-registry bucket.
This will avoid the i/o issues building the images, reduce the deis-builder size and optionally it could be possible to download the images and host that from a local server.
This makes sense?

@aledbf I'm not sure relying on Ceph is an advantage here, but I can see the motivation behind the request. We're going to look at optimizing builder for the next release. Thanks for bringing it up!

So here's what I explained in the meeting yesterday about why this is necessary:
In previous versions, you had to specify an etcd key to pull in both slugrunner and slugbuilder into the builder. However as we all have known by now, docker pull requires network bandwidth, which in some cases - like when you're running a local vagrant cluster or DockerHub is down - can be slow at times. Therefore, building the images themselves directly inside builder actually sped up the boot process rather than slowed it down. It also made hacking on the builder a lot easier; one would just modify the source, re-compile builder and their changes were available.
In short, I think it's a great thing that it's being built inside the builder. We're looking to improve the builder boot pipeline, however. #3453 is just one step in the right direction, IMO (pushing slugrunner to the registry is probably the slowest operation the builder's doing right now).

probably the slowest operation the builder's doing right now

Exactly. Why not just populate the registry from a tgz with an "oficial" image?

Because that breaks one of the biggest tenets of Deis: hackability (new word yay!). Hacking on Deis should be comfortable and easy, rather than having to set up your own remote S3 endpoint just to host your own custom slug* images.

cedarish is an excuse because it's a complete mimic of heroku's cedar stack. If you're modifying it then you're doing something completely out of whack :P

I just don't want to build slugrunner and slugbuilder but I don't want the old behavior either (docker pull for both images). The current weight of deis-builder is at least 370MB because of the cedarish tgz that every time you setup a cluster you need to download from docker hub.

Slugrunner and slugbuilder need to be in the builder in order to compile applications that rely on Heroku buildpacks, so there's no way around it not being in the builder. There's a few requirements if we're going forward with this:

slugrunner and slugbuilder must be present in the builder
users need to be able to fork slugrunner/slugbuilder for their own changes

I don't see how moving the layers from the builder to the registry (backed by ceph) will optimize what we currently have, but I'm open to suggestions.

this has been partially improved with #3933 but they're still built on initial boot. After that they're cached and won't be rebuilt again. However, if you attach a deis-builder-data volume with slug* pre-cached then that should resolve your issue. Does that seem fair, @aledbf?

@bacongobbler yes, closing.


Regular expression match not supported in memory backend?

When running the sample data I can match things like http://localhost:7101/api/v1/graph?q=name,DiscoveryStatus.*,:re,:sum just fine, but when running the memory backend on my own data :re seems to only accept whole string matches.
For example http://localhost:7101/api/v1/graph?s=e-8h&q=prefix,prd.core-testnet-001,:re works but http://localhost:7101/api/v1/graph?s=e-8h&q=prefix,prd.core-testnet,:re (just trying to match the start of the string) doesn't. Also tried .* and \d+ for the numbers but no success.
I haven't had a chance to work up a test case with fake data going into the memory backend yet so thought I'd open this up to ask if it's even expected to work.

Seems it's a little more subtle than that. I got a basic test case working locally and data of basically the same form on the same build of atlas works work on a local copy but returns "NO DATA" on a machine that's been running a few days.
Posting urls for sanity, 7101 is the local copy 7102 is a tunnel to the deployed version:
http://localhost:7101/api/v1/graph?q=prefix,prd.core-testnet-001,:re,stat,1_min_rate,:eq,name,ledger.ledger.close,:eq,:and,:and # works
http://localhost:7102/api/v1/graph?q=prefix,prd.core-testnet-001,:re,stat,1_min_rate,:eq,name,ledger.ledger.close,:eq,:and,:and # works

http://localhost:7101/api/v1/graph?q=prefix,prd.core-testnet,:re,stat,1_min_rate,:eq,name,ledger.ledger.close,:eq,:and,:and # works
http://localhost:7102/api/v1/graph?q=prefix,prd.core-testnet,:re,stat,1_min_rate,:eq,name,ledger.ledger.close,:eq,:and,:and # NO DATA

https://gist.github.com/matschaffer/3fbc53cbf2b7a5fd5f72 has the payload used for local testing

Thanks for the detailed report, let me see if I can reproduce the issue.

I have logs if you need them, though the container's actually been running two weeks so it's ~100MB at this point.

I think I see the problem. On your local copy do you have a single value for prefix and multiple on the deployed version?
If I'm right with the sample data you provided you should be able to reproduce locally using a query where the regex will match multiple values, e.g. I see history.publish.start and history.publish.delay so something like:
http://localhost:7101/api/v1/graph?q=name,history,:re,:sum
I should be able to get an updated release with a fix out later today.
As a side note, it is working internally and this would get noticed pretty quickly if broken. It looks like the changes we do to hook in some legacy backwards compatibility stuff internally avoids this issue. I'm going to try and minimize as many of the differences as I can for the 1.5 milestone, but it is taking a while.

I sure do. Nice find!
I'll press on with my atlas+heka-based alerting idea then. Looking forward to the patch!

Fixed in 1.4.3.

Working great on 1.4.3. Thanks!


Make "Contributing" section more inviting

Add a "long" description to CONTRIBUTING, and list contributors in README? See original comment below.
For the "Contributing" file + README summary, I shortened it earlier this year to avoid repetition with other files (License, Install, etc) and keep it simple. But I now find it a bit "formal" (not too inviting)... What do you think?
I was thinking we could take some ideas from pyproj, which has a very inviting page (a bit too long to read to my taste, maybe we could mostly work on our intro, then keep our "Short" summary for experienced developers and add a "Long" one for new developers?): https://github.com/pyproj4/pyproj/blob/main/CONTRIBUTING.md
I also really like the effort to recognize contributors on the front page: https://github.com/pyproj4/pyproj#contributors-
Originally posted by @rhugonnet in https://github.com/GlacioHack/xdem/issues/412#issuecomment-1686967693

I like the small icons for each contributor that really showcases the different ways one can contribute!


object ctor javadoc

The object initializer constructor is listed under "Copy constructor".

Fixed in develop

This can be observed by changing the brief to just /** Constructor on the initializer-list overloads. It is like the 2nd overload that accepts initializer-list clones the brief of the first overload.


Use codespell for correcting some typos.

See https://github.com/lucasdemarchi/codespell

Thank you!


CommentNode support

使用场景 ｜ Use case
I would like to play with kraken support for glimmer-vm (GlimmerX, Ember)
As I see, right now DOM CommentNode is not supported, but it's used in Glimmer:
https://github.com/glimmerjs/glimmer-vm/blob/4f1bef0d9a8a3c3ebd934c5b6e09de4c5f6e4468/packages/%40glimmer/runtime/lib/dom/operations.ts#L107
https://github.com/glimmerjs/glimmer-vm/blob/4f1bef0d9a8a3c3ebd934c5b6e09de4c5f6e4468/packages/%40glimmer/runtime/lib/compat/text-node-merging-fix.ts#L38
https://github.com/glimmerjs/glimmer-vm/blob/5c0dd7b4514b7f5211f61be4eba2c5c0c237274d/packages/%40glimmer/runtime/lib/vm/update.ts#L247
https://github.com/glimmerjs/glimmer-vm/blob/4f1bef0d9a8a3c3ebd934c5b6e09de4c5f6e4468/packages/%40glimmer/runtime/lib/vm/element-builder.ts#L342
Comment node used as "cursor" for DOM manipulations
提案 ｜ Proposal
It will be great to have DOM Comment API support

CommentNode is already supported in kraken in v0.9.0. May be you should give us more info about why comment node are not working well on   (GlimmerX, Ember)
https://github.com/openkraken/kraken/blob/fae0c432759b258b87b7a10a9493275a89f5d478/bridge/bindings/qjs/dom/document.h#L37

@andycall thank you for reference! Will double check logic


pull request for e2e test at 01/04/2017 04:45:16

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


Delete getPaidTransactionsAndCreateOrderPayment service from the Job Manager

What is the motivation for adding/enhancing this feature?
Delete getPaidTransactionsAndCreateOrderPayment service which is visible as payment status on the orders page from the Job Manager
What are the acceptance criteria?

[ ] ...

Can you complete this feature request by yourself?

[ ] YES
[ ] NO

Additional information

Does this service not work? What’s wrong with it? Or do we get this through order updates now?

This service cannot be run from the Job Manager as it is a async service and requires parametre whenever run. We need to give order ID which we cannot do from the Job Manager.
Discussed this with Deepak sir as well.

I would like to work on this issue.

I would like to work on this issue.

Sure, go ahead.

Does this service not work? What’s wrong with it? Or do we get this through order updates now?

@dt2patel
As mentioned by @appurvajain, the service works for a single order and is used internally. We have a webhook that takes care of it.  Should I move ahead with merging the PR?

Sure @adityasharma7 thanks for the clarification


Feature/platfowner/valid path

Summary:

Apply more precise path validation logic (Allow: '.abc', '$abc', '*', Not allow: '.', '$', 'abc', 'abc').
Apply path validation to object-to-write.

#50 #51

PTAL @liayoo

Thanks for the review.


Extension attributes are filtered when there's excludedAttributes param

Hi @sleelin,
We found another issue while trying to integrate with Entra ID. When calling GET /Users?excludedAttributes=userName the extension attributes are filtered out in response. If we remove the excludedAttributes param then the response is fine.
The problem seems to be caused by:
https://github.com/scimmyjs/scimmy/blob/9e81f47ceab7d0b518bc516ad088278cd0137774/src/lib/types/definition.js#L342
https://github.com/scimmyjs/scimmy/blob/9e81f47ceab7d0b518bc516ad088278cd0137774/src/lib/types/definition.js#L372-L373
https://github.com/scimmyjs/scimmy/blob/9e81f47ceab7d0b518bc516ad088278cd0137774/src/lib/types/definition.js#L306-L310
First of all, the inclusions are names of attributes, which would be EnterpriseUser for the SCIMMY.Schemas.EnterpriseUser extension or name for new SCIMMY.Types.SchemaDefinition(name, ...).
Then, the logic seems to expect the key of data returned by handler to be individual extension attributes like 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:user:organization'. However, SchemaDefinition.coerce constructs an object and stores it in urn:ietf:params:scim:schemas:extension:enterprise:2.0:user.
I think we should check type of attribute and get the id for SchemaDefinition instances, and remove the ':' at end of the key checking expression.

Suggested changes:
// L342
- const inclusions = attributes.map(({name}) => name);
+ const inclusions = attributes.map((attribute) => (attribute instanceof SchemaDefinition) ? attribute.id : attribute.name);
// L372
- if (Object.keys(data[key]).length && inclusions.some(k => k.toLowerCase().startsWith(`${key.toLowerCase()}:`)))
+ if (Object.keys(data[key]).length && inclusions.some(k => k.toLowerCase().startsWith(`${key.toLowerCase()}`)))


Notificaiton of a call comming when logout

Specify the sample to which the issue belongs (use [x]):
[ ] Chat sample
[ x] P2P Call sample
[ ] Conference Call sample
Platform (use [x])
[x ] Android
[ x] iOS
Device info
Manufacture:
Model:
OS version:
Describe the bug:
When I run demo login and call, then I logout. I will receive notification call in my device. Please check and fix it ? thanks

Hello I log subscription.device.clientIdentificationSequence always null.
I/flutter (13900): cubeSubscription [{notification_channel: gcm, push_token: null, device: {udid: 625e24b5bc053f6d, platform: android}}]
I/flutter (13900): subscription.device.clientIdentificationSequence null

Maybe change check it:
 if (subscription.device.udid == deviceId) {
          sharedPrefs.saveSubscriptionId(subscription.id);
        }

To get subscriptionId and remove it when logout ?

Yes, temporary you can use your solution before we fix it in our SDK and sample.


Improvements required in include path iterator for polymorphic relations

The IncludePathIterator is the class the works out what include paths are allowed using a max depth integer.
At the moment, if the iterator encounters a polymorphic relationship at depth (i.e. not the first relationship) the path is terminated at this depth.
We need to actually change the handling of this scenario.
For an Eloquent morphTo relation, eager load paths will work through the relation if the next relationship in the path is valid on all the different inverse models. For example, in our application this path: requests.activity.venue, the activity is a morphTo relation. However all three models that can be returned from the activity relationship have a venue relation. So we can actually support including through morph-to relations where the next relation is common to all inverse schemas. By common, we mean:

The JSON:API relation name is the same; AND
The Eloquent relation name is the same: AND
The inverse schema is the same.

So in our example, this is true for venue because all three model classes have a venue relationship, that returns a Venue model, that are all venue JSON:API relations that all return venues resources.
For our polymorphic to-many field (MorphToMany), including through the relationship at depth would actually work. This is because the implmentation maps the JSON:API include path to the eager load paths for each sub-relation, ignoring any invalid paths.
So in both these example, the IncludePathIterator polymorphic at-depth logic is no longer correct.
Because the logic of whether you can include through a relation is implementation specific, the IncludePathIterator should probably delegate to the Relation interface to know what it can include next. At the moment isIncludePath() is the only include path method on the Relation interface... but this is now probably too simple. We need some sort of method on the relation that returns the list of schemas and relationships on those schemas that can be included next in a relationship path. This is actually two different questions:

If the relation is at the start of an include path (index = 0), what relationships can be next?
If the relation is at depth in the include path (index > 0), what relationships can be next?

So the interface method effectively asks for the next paths, providing the index to indicate where it is in the path.

Removed from milestone as deferring this to a subsequent beta release.


Env Spacing Fix

Noticed a typo when I was trying to figure out how to grab my env variables for jest testing, went ahead and fixed it. CLA signed

Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. In order for us to review and merge your code, please sign up at https://code.facebook.com/cla - and if you have received this in error or have any questions, please drop us a line at<EMAIL_ADDRESS>Thanks!

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Facebook open source project. Thanks!

thanks!


:recycle: Updated and tested the examples after the renaming of preconditions #1247

Hi @mitschabaude ,
Good Day!!
As discussed here, I have tested and modified the examples in src/examples.
Can you please help to review and approve this pull request.
I guess this PR will also solve this issue #1222
Issues resolved by this PR:
#1247
#1222
Note:

I need your help with testing simple_zkapp_berkeley.ts, as it is giving this error:

I tried to update and test commonjs.cjs file too. It also fail during testing.

If required I can provide screenshots of test results too.

Thank You 😃

Hi Gregor,
This PR is failed because our first PR https://github.com/o1-labs/o1js/pull/1265 is yet to be merged.
Once it is merged and we re-run this workflow it will be success.
Thank You 😃

Hi @mitschabaude ,
Thanks for merging the previous PR.
I have synced my current branch and now builds are getting completed.
Thanks again 😄👨🏻💻

Great to see your contribution completed @LuffySama-Dev, thanks for helping out!


Implement by-field searches

DataResource.search()

Refactor for #9 provides implicit support for this. We'll have to decide if we ever want to surface it.

Not #9. #11.

We axed this for the moment. Closing out.


failed to list DNS records

I built it in windows, everything went through smoothly, but when I tried to list my DNS records in CloudFlare, it reported
Error: Failed to list DNS records.
Caused by:
0: error decding response body,
1: missing field ‘result’ at line 1 column 76.
any suggestion please?
Thank you,

@zhihonwa Thank you for reporting, I confirmed the error. I'll address the issue soon.

@zhihonwa the error should be gone now. If the api-token and zone-id is correct, it can list the DNS record, otherwise it can say "Error: Failed to list DNS records" properly.


yotta targets do not inherit debug commands in "scripts"

It seems that children of targets that define debug commands do not inherit this information. Therefore, when you make use of that (by running yotta debug <some_module> or something similar) yotta throws a Target does not specify debug commands error.

Thanks for reporting, these definitely should be inherited.


dependencies in extension package.json does not work as documentation at all

Does this issue occur when all extensions are disabled?: Yes/No

版本: 1.85.0
提交: af28b32d7e553898b2a91af498b1fb666fdebe0c
日期: 2023-12-06T18:17:50.719Z
Electron: 25.9.7
ElectronBuildId: 25551756
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: <IP_ADDRESS>-electron.0
OS: Darwin arm64 23.1.0

It says dependencies will just work as node dependencies, but it actually doesn't and never work.

For now, we have to bundle all dependencies manually.

How are you bundling your extension? I use Webpack for mine and usually don't have to do anything special to get the dependencies included in the VSIX.
https://code.visualstudio.com/api/working-with-extensions/bundling-extension#using-webpack

Per https://github.com/idahogurl/vs-code-prettier-eslint, esbuild is used for bundling.

Have you reviewed the info at https://code.visualstudio.com/api/working-with-extensions/bundling-extension#using-esbuild?

@gjsjohnmurray So the document about dependencies field in package.json is absolutely wrong, and vsce's dependencies option which is true by default is absolutely meaningless.

Duplicate of https://github.com/microsoft/vscode-vsce/issues/914


Stop using EVP_PKEY in encoders and decoders

This answers #14306, and concerns mentioned in related issues.
Intended changes in decoders:

[DONE]  Have the decoder implementations use lower level d2i functions instead of d2i_PUBKEY_legacy(); replace that calls with direct use of d2i_TYPE_PUBKEY().
[DONE]  Replace the call of evp_privatekey_from_binary() (which is done solely to re-use its unpacking of PKCS#8) with replicas of what's done in the EVP_PKEY_ASN1_METHOD functions priv_decode() for the diverse algorithms, up until bot not including the assignment to EVP_PKEY.  By consequence, abolish the use of EVP_PKEY intern key extractors (EVP_PKEY_get1_RSA() et al)
[DONE]  Refactor the MSBLOB-> and PVK->key decoders to avoid going via EVP_PKEY

Intended changes in encoders:

Refactor the key->MSBLOB and key->PVK encoders to avoid going via EVP_PKEY

This is currently a dump of what I had done in #13994, which never made it into take 2 (#14281)

This is not a draft any more...
This became quite a bit more involved than I anticipated...

The error reporting has changed as seen by the minimal test.

I noticed...  I've worked over those

Needs some corrections after rebase.

Yeah I know.
I'm a bit dubious about the ossl_ prefixing I ended up doing...  we have a number of public {d2i,i2d}<TYPE>PUBKEY, and I've added a number of internal ossl{d2i,i2d}<TYPE>_PUBKEY, and I end up finding it very annoying to constantly having to look them up in headers to figure out if the are spelt with or without the ossl_ prefix.

Made the corrections...

Yay, CIs look happy!

Good work!

I added a couple more commits, which make evp_privatekey_from_binary() and d2i_PUBKEY_legacy() completely libcrypto internal (as a matter of fact, static in their translation units)

Still OK if CI passes.

24 hours has passed since 'approval: done' was set, but as this PR has been updated in that time the label 'approval: ready to merge' is not being automatically set.  Please review the updates and set the label manually.

Merged
65ef000ec26e6ec2fab2c31f74be1b76275bbbe5 PROV: Refactor DER->key decoder
06f6761280285401f3aaa31502614f7c8dd0c4fb PROV: Add type specific SubjectPublicKeyInfo decoding to the DER->key decoders
e0be34beee9ef8ebab49c51581f796e013600b77 PROV: Add RSA-PSS specific OSSL_FUNC_KEYMGMT_LOAD function
cf333799979755dd46193b49c15db0afd262c6a0 PROV: Add type specific PKCS#8 decoding to the DER->key decoders
f4e46b817d587c300faa04fd061ddcdea3dd64c9 PROV: Add type specific MSBLOB and PVK decoding for the MS->key decoders
ff1c10d920379854a80d43b69a58e20f1e76e76c TEST: Modify test/endecode_test.c to give the decoder callback the structure
c640b687855de512138d4c4b09b71c080c0adfeb STORE: Use the same error avoidance criteria as for the DER->key decoder
55d9ccca8eec8ec57ab85175dea908f8b76fd4e1 TEST: Clarify and adjust test/recipes/30-test_evp.t
695c96ba5160a8053c2ff98c0f8971b44c195cbb Make evp_privatekey_from_binary() completely libcrypto internal
aff442dc38707a5ab4a7acc811c9ef10cbdd3346 Make ossl_d2i_PUBKEY_legacy() completely libcrypto internal


each() function is deprecated in php 7.2.0

I just updating my php version to 7.2.0, and it seems the each function is deprecated in this version. http://php.net/manual/en/function.each.php

I replaced while \( list\( (.*), (.*) \) = each\( (.*) \) \) \{ with foreach ( $3 as $1 => $2 ) { in src/phpf.php to avoid this problem, but when I tried to run it with PHP 7.2.12, a fatal error occured:
Allowed memory size of 134217728 bytes exhausted (tried to allocate 16777224 bytes)
I don't know why nor how to fix it.

I tried the same thing and got the same error for PHP 7.3
Did you get any solution for this?

I replaced while \( list\( (.*), (.*) \) = each\( (.*) \) \) \{ with foreach ( $3 as $1 => $2 ) { in src/phpf.php to avoid this problem, but when I tried to run it with PHP 7.2.12, a fatal error occured:
Allowed memory size of 134217728 bytes exhausted (tried to allocate 16777224 bytes)
I don't know why nor how to fix it.

I can only guess that this is a memory leak issue (such as infinite recursion), but haven't researched how to fix it. Given that this project has lost maintenance, perhaps you can find an alternative to it.

I can only guess that this is a memory leak issue (such as infinite recursion), but haven't researched how to fix it. Given that this project has lost maintenance, perhaps you can find an alternative to it.

Any suggestions for alternatives?

Maybe this one: https://github.com/prettier/plugin-php#editor-integration

I will check it out :)
Thanks

You're welcome :)


Deprecate circuit_indices and observable_indices and replace with circuits and observables

What should we add?
Deprecate circuit_indices and observable_indices in the primitive base classes and reference implementation and replace them with actual circuits and observables.
https://github.com/Qiskit/qiskit-terra/tree/main/qiskit/primitives

FYI: Hamamura-san is developing a PoC of a decorator approach to allow objects as indices. #8035

#8065 supports this.


Button for code sharing

We need a button that somehow stores the code that is currently in the editor and creates a link to show that code again. This allows for on-the-fly sharing of examples.

maybe we could store the code as gists here in github, if the API's not too convoluted. Anyway this is nice too have but low priority


[CircleGraphCtrl] Relocate handlers

This will relocate onDidReceiveMessage handlers.
ONE-vscode-DCO-1.0-Signed-off-by: SaeHie Park<EMAIL_ADDRESS>

forgot to add a link to the issue:  #1352


fixed sub menu option zero

Currently when you enter the sub menu (additional options - option 7) you can't go back to the main menu. In this PR I've fixed that problem.
I created a new init function which is called at the start of the application and also when you try to get back to the main menu.

@faustbrian resolved conflicts..


Video embeding

Is there anyway to someone build feature so users can embed video player on other sites ? Like we emebed youtube videos for example.
Peace,

This repo does not host the videos. youtube hosts the video itself hence it can provide the embed link to use. This repo does not do that. It allows you to have a accessible controls around a hosted video.
You can probably do it by creating an simple HTML where you use this repo and then iframe it where ever you need. This is manual process for you. But I don't see this feature being added here. Thanks.


Fix: navbar highlighting and sign-posting

Fixes #39
Compilers and Learn section are now highlighting correctly.
The newsletters have been switched to using the 'post' layout so that 'News' is highlighted in the navbar.

I checked locally, it looks good. Thanks!


refactor: files extention

Current Changes:
feat: files ext now look for index.html if no file is specified
feat: files ext now look for 404.html if file could not be found
In Progress
S3 Functionality

@not-ivy i'd suggest to split this pr into 3 smaller ones as it's better to have one (major) change per commit.

...or at least 2, one for the s3 functionality and the other one for the html files lookup


distutils: Deprecation warning

/opt/ros/noetic/share/catkin/cmake/interrogate_setup_dot_py.py:43: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
  import distutils.core

catkin version: 0.8.10
py version: 3.10.2

As there are still likely to be a a lot of packages using distutils in Noetic, I do not think it is safe to remove support for it at this time. Python 3.10 has just been released and 3.12 is not yet scheduled, so we still have a long time before it will become unavailable in the most up-to-date version on Python. On top of that, Noetic targets Python 3.8, so it is not required to handle a Python version where distutils has been removed.
A better time to do this is probably in a post-Noetic version of catkin.

Also before removing the support it would be best to provide a deprecation warning to users with a stated interval by which they will need to have migrated forward.

packages using distutils in Noetic

Do you know of a smart way to find out which Noetic packages use distutils?

provide a deprecation warning

I can create a PR with a deprecation warning when distutils gets imported. Is there documentation on a proper format to coding this deprecation warning?


Optimize image processing

branched from #54 non-ycbcr-input

After applying this and https://github.com/pion/mediadevices/pull/55/commits/c46a89b4ba5b12559bdbc8f0a9b997098ffb9d90, CPU usage of screen casting example decreases to 40% on my laptop, which was saturated to 100% before.
(but, still twice or three times heavyer than gstreamer)

Oops, sorry. I didn't see this one. Could change the target to be master instead.

rebeased


api-dev/current 400 (works on api/current)

The following returns a 400 on api-dev, but works on api
curl 'http://api-dev.freme-project.eu/current/e-entity/freme-ner/documents?informat=text%2Fhtml&outformat=text%2Fhtml&language=en&dataset=dbpedia&mode=all' -H 'Origin: http://localhost:63342' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: en-GB,en-US;q=0.8,en;q=0.6' -H 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2864.0 Safari/537.36' -H 'Content-Type: text/html' -H 'Accept: text/n3' -H 'Referer: http://localhost:63342/CKEditor-Plugin/ckeditor/samples/freme.html?_ijt=muqc3egdpmhbo3gem322l04s8' -H 'Connection: keep-alive' --data-binary '
Dissident Chinese artist Ai Weiwei has been refused a six-month visa by the British government amid claims he lied on his visa application form. Ai posted a letter on Instagram stating his entry to the UK had been restricted because he failed to declare his "criminal conviction". But Ai, though detained in China for 81 days in 2011, has never been charged or convicted of a crime in China. The artist was granted a 20-day visa to attend the opening of his London show.
' --compressed

The request mentioned above works at live and dev. Can we close this?

yes this works now. @bjdmeest is the problem solved for you? can you close the issue?

Works! Thanks!


Add note about "More with Radium" wiki to readme.

Resolves https://github.com/FormidableLabs/radium/issues/671

Coverage remained the same at 96.236% when pulling 8e02a8190f5f01c21e72f91fe234a6804f3c470d on moreWithRadium into 2fb6a0b79e0d2795608e68cfc8851050c5019169 on master.


[BUGFIX] Reference correct release tag on single page

Since tags are prefixed with a v character, corresponding release URLs must contain the character as well:
-https://github.com/TYPO3/TYPO3.Icons/releases/tag/2.0.0
+https://github.com/TYPO3/TYPO3.Icons/releases/tag/v2.0.0

Good Catch! Thx a lot!


Add Solang cask to private tap

This PR adds the Solang cask to our private tap. To test it, before merging this PR, use the following instructions:

Uninstall any Solang binary from your Mac.
Run brew install lucasste/solang/solang.

Works but I get a warning about xattr. Not sure what we can do about that.

Were you able to invoke solang from any folder in you Mac's terminal?

Works but I get a warning about xattr. Not sure what we can do about that.

Were you able to invoke solang from any folder in you Mac's terminal?

solang works fine after being installed via brew install lucasste/solang/solang. I removed it and removed the brew cache; when reinstalling solang I got the same error again, but again the result is it work fine.
This is MacOS 12.4 (intel)


Need help with LND channel stuck on pending to be closed

### What happened
I attempted to close a lightning channel using both the "closechannel" and "closeallchannels" command, but LND was unresponsive, and the channel remained showing as an active channel. I decided I would try again some other day, so I left my daemon running for the rest of the day and then eventually shut it off. The next day, when I ran the daemon again, I noticed that the channel had changed from active to pending to be closed. I thought it would eventually finish closing on its own, but it has been stuck on pending to be closed for 4 days now.
### Your environment

Version: 0.13.3-beta commit=v0.13.3-beta, build=production, logging=default, debuglevel=info
Windows 10 OS
Bitcoin Core version v0.21.1 (release build)

### Potentially useful information
Upon starting and stopping my daemon, I noticed various lines of code that could help identify what is wrong, such as:
[INF] CNCT: Creating ChannelArbitrators for 1 active channels
[WRN] CNCT: Channel 7bec6bc60ff866b32b633b540312f33fbb155d1d63bdb472c6406376855a252c:0 is in state ChanStatusCoopBroadcasted, but no coop closing tx to re-publish...
[INF] NTFN: New spend subscription: spend_id=1, outpoint=7bec6bc60ff866b32b633b540312f33fbb155d1d63bdb472c6406376855a252c:0, script=0 dc3c5245ec8d8f854c4ba946fee55012c889285b985a1918c6bf4d86a0fe07cc, height_hint=707337
[INF] NTFN: Dispatching historical spend rescan for outpoint=7bec6bc60ff866b32b633b540312f33fbb155d1d63bdb472c6406376855a252c:0, script=0 dc3c5245ec8d8f854c4ba946fee55012c889285b985a1918c6bf4d86a0fe07cc, start=707337, end=707541
[INF] CNCT: Close observer for ChannelPoint(7bec6bc60ff866b32b633b540312f33fbb155d1d63bdb472c6406376855a252c:0) active
[INF] CNCT: ChannelArbitrator(7bec6bc60ff866b32b633b540312f33fbb155d1d63bdb472c6406376855a252c:0): starting state=StateDefault, trigger=chainTrigger, triggerHeight=707541
[INF] NTFN: New block epoch subscription`

and...
[INF] PEER: NodeKey(0217890e3aad8d35bc054f43acc00084b25229ecff0ab68debd82883ad65ee8266) loading ChannelPoint(7bec6bc60ff866b32b633b540312f33fbb155d1d63bdb472c6406376855a252c:0)
[WRN] PEER: ChannelPoint(7bec6bc60ff866b32b633b540312f33fbb155d1d63bdb472c6406376855a252c:0) has status ChanStatusCoopBroadcasted|ChanStatusLocalCloseInitiator, won't start.
[INF] SRVR: Established connection to: 0223e666406d7f14455b5442d85f777e3eccdf75c0549afbc56492f3f049158321@<IP_ADDRESS>:9735
[INF] SRVR: Finalizing connection to 0223e666406d7f14455b5442d85f777e3eccdf75c0549afbc56492f3f049158321@<IP_ADDRESS>:9735, inbound=false
[INF] PEER: Sending 1 channel sync messages to peer after loading active channels
[INF] PEER: Negotiated chan series queries with 0217890e3aad8d35bc054f43acc00084b25229ecff0ab68debd82883ad65ee8266
[INF] DISC: Creating new GossipSyncer for peer=0217890e3aad8d35bc054f43acc00084b25229ecff0ab68debd82883ad65ee8266
[ERR] PEER: resend failed: unable to fetch channel sync messages for peer 0217890e3aad8d35bc054f43acc00084b25229ecff0ab68debd82883ad65ee8266@<IP_ADDRESS>:9735: unable to find closed channel summary

Also, here is the output of "lncli pendingchannels":
"total_limbo_balance": "389158",
    "pending_open_channels": [
    ],
    "pending_closing_channels": [
    ],
    "pending_force_closing_channels": [
    ],
    "waiting_close_channels": [
        {
            "channel": {
                "remote_node_pub": "0217890e3aad8d35bc054f43acc00084b25229ecff0ab68debd82883ad65ee8266",
                "channel_point": "7bec6bc60ff866b32b633b540312f33fbb155d1d63bdb472c6406376855a252c:0",
                "capacity": "390000",
                "local_balance": "389158",
                "remote_balance": "0",
                "local_chan_reserve_sat": "3900",
                "remote_chan_reserve_sat": "3900",
                "initiator": "INITIATOR_LOCAL",
                "commitment_type": "STATIC_REMOTE_KEY"
            },
            "limbo_balance": "389158",
            "commitments": {
                "local_txid": "ffd264e8ec90e28e76dd8b7053e62b5957fdb4453c73571618948e8c4514daa9",
                "remote_txid": "2c10dd4cdebacde49a9259775d2ed94c315dddd8127eedfe554d25f98d22f56f",
                "remote_pending_txid": "",
                "local_commit_fee_sat": "842",
                "remote_commit_fee_sat": "842",
                "remote_pending_commit_fee_sat": "0"

The remote node probably failed to respond in time and you ran into this bug: https://github.com/lightningnetwork/lnd/issues/4819
You'll need to force close the channel.


Archiving checked tasks?

How do I archive checked tasks? Ie remove them from the list?

This would be useful. My list has grown considerably and I'm fed up of deleting/archiving items manually.

Looks like this is now available using the new --clear flag in 0.2.0

Fixed on #43


@cosmos-kit/keplr requires an unpublished<EMAIL_ADDRESS>

https://www.npmjs.com/package/@cosmos-kit/core?activeTab=versions

Seems that @cosmos-kit/leap also requires an unpublished package.

thanks for reporting! must have had an internet issue w/o a warning, not sure how this happened :/
Successfully published:
 -<EMAIL_ADDRESS> -<EMAIL_ADDRESS> -<EMAIL_ADDRESS> -<EMAIL_ADDRESS> -<EMAIL_ADDRESS> -<EMAIL_ADDRESS> -<EMAIL_ADDRESS>


Google Analytics module support for vue-analytics?

Telling from the source code, the GA module only sends page views from the router afterEach hook. Will there be support for tracking custom events as in the vue-analytics plugin:
this.$ua.trackEvent('Banner', 'Click', 'I won money!')

@tillkolter Would love to add integration. Actually last time i've usedd vue-analytics (~5-6 month ago) It made some serious SSR problems that i decided using ga directly.

Also we may need add some offline analytics for more PWA compabiblity. So suggest bring useful parts right into module :)) If you can help suggest useful methods.

Unfortunately I can not help you with real-world-approved suggestions from the plugin as I am at the moment more evaluating the options based on judging the source code.
What I will definitely need for my customer would be to track click events.
  trackEvent (category, action = null, label = null, value = null) {
    // TODO : FieldObject is full syntax, refactor this at one moment
    logDebug('Dispatching event', { category, action, label, value })

    ga('send', 'event', category, action, label, value)
  }

I guess implementing it directly inside the module wouldn't cost a fortune, but I have zero experience with writing/extending NodeJS not to speak of integrating with Vue/Nuxt (doing 4 months VueJS/Javascript now).
I came accross your GA module, because all other solutions (including vue-analytics itself and the plugin intergration officially suggested by the Nuxt documentation trigger a conflict with JSON+LD markup embedded in components (I stated the problem and my solution here) and you seem to have solved this problem by explicitly attaching the script to the head.

Well I will keep this issue open as an enhancement to analytics module. Actually i need to review vue-analytics too for changes and possibility to integrate. BTW for now i think you may use a vue mixin to refactor common use cases like event tracking to single place and using that in page components.

I thought the vue-analytics was the one I've developed but then I saw the link and it isn't, but if you interested in google analytics features for vue that doesn't break on SSR you can check this https://github.com/MatteoGabriele/vue-analytics since I have recently added a check so that won't break on a server side environment.
I'm also releasing a new version that saves all untracked event that couldn't been tracked due to SSR or GoogleAnalaytics script not loaded and then fires them after it's all ready.
If you have better ideas for a server side friendly module, please let me know :)

@MatteoGabriele Never heard of that. Seems a super cool library. Do you think we can have a nuxt module integration for vue-analytics? I can deprecate current implementation in favor of that if it works with nuxt.

@MatteoGabriele I've created a dedicated repository nuxt-community/analytics-module with write permission.
Good luck and just ping me there if any help was needed.

I will start running a Nuxt application and see what my plugin does or doesn't do in this context and then check the best way to integrate that.
@pi0 thanks again, I'll let you know for sure :)

Hey @pi0 I'm trying to symlink the repo you made so I can work on the package locally but I can't: lots of errors.

Do you have any ideas? Never had such a problem.
ps: is this a good place to bother you btw? 😄
thanks!

Hi @pi0 I have a question:
How can I pass options to a module and also have access to the router instance?

For passing options to a module, when registering it we can do this:
modules:[
  ['path to module, /* module options */]
]

To access router instance modules can't do anyting, as it is a runtime thing (Via plugins). Suggest taking a quick look into current version of analytics, that may help getting good ideas.

If I don't have access to the app and pass options, there's nothing I can do.
The plugin has a lot of customizations and you need to pass options if you need to, also the most important thing is that out of the box you only need to pass the domain tracking ID and your router and it will take care of everything with few lines of code.
In Nuxt as far as I understand you can just achieve this creating a plugin yourself in the application, doing something like this
import Vue from 'vue'
import VueAnalytics from 'vue-analytics'

export default function ({ app }) {
  Vue.use(VueAnalytics, {
    id: 'UA-123456-78',
    router: app.router
  })
}

and this was what I wanted to do out of the box for the Nuxt implementation so that you only have to pass the domain tracking ID and that's it.

In Nuxt as far as I understand you can just achieve this creating a plugin yourself in the application

Not exactly :D This is why modules exist! They can magically add plugins to nuxt project generated files. For passing options, we can use template system which writes those options to plugin.
See this:
https://nuxtjs.org/guide/modules#template-plugins
https://github.com/nuxt-community/modules/blob/master/modules/google-analytics/index.js#L16
https://github.com/nuxt-community/modules/blob/master/modules/google-analytics/plugin.js#L15

Yeah I saw that but I have to extend the plugin with whatever the developer adds as options: do I have to render every key/value pairs with a for loop like a template?

We can indeed serialize everything as options params. And just pass it down :)
Inside plugin template:
new vueAnalytics(<%= options.analyticsOptions %>)

I now have it working, but I have this warning in the terminal that I don't understand, to be honest 😄
18:20-32 "export 'default' (imported as 'VueAnalytics') was not found in 'vue-analytics'

Besides this warning, I've pushed some changes to the repo
this is what needs to be added in the nuxt.config.js file
...
modules: [
    ['@nuxtjs/google-analytics', {
      id: 'UA-12301-2'
    }]
  ],
...

Everything else is already written in the package guide itself, besides that here the router is auto-injected by default and it's possible to turn it off passing an option.

Nice work & seems working :) For easier usage I suggest supporting a top level option too. So usage would be :
modules: [
     '@nuxtjs/google-analytics'
],
analytics: {
  id: 'UA-12301-2'
}

Some more notes. Currently id is ua so it would be nice if we have a backward compatibility, by checking that option exists in the module. and read me should be more clear to reference original library for more usage info. Maybe bringing some common cases into module readme would be nice too.
Anyway just feel free ignoring this changes, if don't have enough time. I can help to handle them.

I will check that export default warn too. It seems we need some rollup changes in your library for better ES6 imports support.

yeah I can make a check for the ua property, the top level options and  I will add few lines in the readme so to let the developer know the differences between the vue-analytics package and this one, which is basically just the auto-injected router instance.
I will add this and let you know here.
For anything else let me know :)

@pi0 I've added ua, top level options and little bit of usages.

I've updated the vue-analytics version used by the module to the latest v5.


ast-grep: fix build with clang 12+

Work around NixOS#166205
Description of changes

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

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

Result of nixpkgs-review pr 268894 run on aarch64-darwin 1

1 package built:

ast-grep


Add Support for time.Duration

When I use a model with a time.Duration field I get
value of type int64 is not assignable to type time.Duration
Any plans on adding support?

Gorm is not going to support time.Duration (types not supported by golang's db driver) directly, if you want to use it, better to wrap it to be a Scanner, then gorm will support it automatically.


[Feature]: Adding Book Mark effect Button

Description
Book mark effect button on hover
Screenshots
No response
Checklist

[X] I have checked the existing issues.
[X] I follow Contributing Guidelines of this project.
[X] I am a GSSOC'24 contributor.
[ ] I am a IWOC'24 contributor.
[ ] I am a JWOC'24 contributor.
[ ] I am a SWOC'24 contributor.

Code of Conduct

[X] I agree to follow this project's "Code of Conduct".

@Rakesh9100  please assign me this issue

Provide the supporting screenshot if you have @Saipradyumnagoud

@Rakesh9100 Here is the sample

@Rakesh9100 I have Provided supporting Screenshot

Go ahead @Saipradyumnagoud


[BUG] excludePaths from nixify not sufficient

Describe the bug
Trying to build using the flake.nix file fails due to integration tests requiring some services running.
To Reproduce
Steps to reproduce the behavior:

Running on nix (Nix) 2.13.3 from nix --version
System is aarch64-linux on an m1 macbook air.
The command nix run github:wasmCloud/wash fails due to integration errors not being excluded.
See error below

[1/650/652 built, 391 copied (778.2 MiB), 356.7 MiB DL] building wash-deps-0.18
error: builder for '/nix/store/q84d9mbw2v5cq8055lbxnbx1l35k45bi-wash-0.18.0-alpha.1.drv' failed with exit code 101;
       last 10 log lines:
       >
       >
       > failures:
       >     integration_inspect_actor
       >     integration_inspect_cached
       >     integration_inspect_provider
       >
       > test result: FAILED. 0 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
       >
       > error: test failed, to rerun pass `--test integration_inspect`
       For full logs, run 'nix log /nix/store/q84d9mbw2v5cq8055lbxnbx1l35k45bi-wash-0.18.0-alpha.1.drv'.

...
---- integration_inspect_provider stdout ----
thread 'integration_inspect_provider' panicked at 'assertion failed: get_http_client.status.success()', tests/integration_inspect.rs:124:5

---- integration_inspect_cached stdout ----
thread 'integration_inspect_cached' panicked at 'assertion failed: get_http_client.status.success()', tests/integration_inspect.rs:200:5

failures:
    integration_inspect_actor
    integration_inspect_cached
    integration_inspect_provider
...

Expected behavior
Integration files should be excluded by the nixify boilerplate.
**Environment (please complete the following information) **

OS: NixOS Linux
Shell: zsh
wash Version: 0.18.0-alpha

Additional context
Also tried adding the package directly from the flake into my own flake.

after checking out the changes to flake.nix from https://github.com/wasmCloud/wash/pull/429 it seems integration_keys.rs also fails, at least on my machine
running 5 tests
test integration_keys_gen_basic ... FAILED
test integration_keys_gen_comprehensive ... FAILED
test integration_list_comprehensive ... FAILED
test integration_keys_get_comprehensive ... ok
test integration_keys_get_basic ... FAILED

failures:

---- integration_keys_gen_basic stdout ----
thread 'integration_keys_gen_basic' panicked at 'assertion failed: keys_gen_account.status.success()', tests/integration_keys.rs:17:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- integration_keys_gen_comprehensive stdout ----
thread 'integration_keys_gen_comprehensive' panicked at 'assertion failed: key_gen_command.status.success()', tests/integration_keys.r
s:31:9

---- integration_list_comprehensive stdout ----
thread 'integration_list_comprehensive' panicked at 'assertion failed: list_output.status.success()', tests/integration_keys.rs:144:5

---- integration_keys_get_basic stdout ----
thread 'integration_keys_get_basic' panicked at 'assertion failed: key_output.status.success()', tests/integration_keys.rs:71:5

failures:
    integration_keys_gen_basic
    integration_keys_gen_comprehensive
    integration_keys_get_basic
    integration_list_comprehensive

test result: FAILED. 1 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

But then if I exclude integration_keys.rs from the check phase and run nix run . up I get the following
~code/wash (main ✗) nix run . up
warning: Git tree '/home/arcmode/code/wash' is dirty
>>> ⢋⠁  Starting wadm ...                                                                                🟨 Couldn't start wadm: No such file or directory (os error 2)

Another wasmCloud host is already running on this machine with PID

But the down command doesn't do anything to fix it.
~code/wash (main ✗) nix run . down
warning: Git tree '/home/arcmode/code/wash' is dirty

Unable to find wasmcloud pid file for stopping process: No such file or directory (os error 2)

after checking out the changes to flake.nix from https://github.com/wasmCloud/wash/pull/429 it seems integration_keys.rs also fails, at least on my machine
running 5 tests
test integration_keys_gen_basic ... FAILED
test integration_keys_gen_comprehensive ... FAILED
test integration_list_comprehensive ... FAILED
test integration_keys_get_comprehensive ... ok
test integration_keys_get_basic ... FAILED

failures:

---- integration_keys_gen_basic stdout ----
thread 'integration_keys_gen_basic' panicked at 'assertion failed: keys_gen_account.status.success()', tests/integration_keys.rs:17:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- integration_keys_gen_comprehensive stdout ----
thread 'integration_keys_gen_comprehensive' panicked at 'assertion failed: key_gen_command.status.success()', tests/integration_keys.r
s:31:9

---- integration_list_comprehensive stdout ----
thread 'integration_list_comprehensive' panicked at 'assertion failed: list_output.status.success()', tests/integration_keys.rs:144:5

---- integration_keys_get_basic stdout ----
thread 'integration_keys_get_basic' panicked at 'assertion failed: key_output.status.success()', tests/integration_keys.rs:71:5

failures:
    integration_keys_gen_basic
    integration_keys_gen_comprehensive
    integration_keys_get_basic
    integration_list_comprehensive

test result: FAILED. 1 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

But then if I exclude integration_keys.rs from the check phase and run nix run . up I get the following
~code/wash (main ✗) nix run . up
warning: Git tree '/home/arcmode/code/wash' is dirty
>>> ⢋⠁  Starting wadm ...                                                                                🟨 Couldn't start wadm: No such file or directory (os error 2)

Another wasmCloud host is already running on this machine with PID

But the down command doesn't do anything to fix it.
~code/wash (main ✗) nix run . down
warning: Git tree '/home/arcmode/code/wash' is dirty

Unable to find wasmcloud pid file for stopping process: No such file or directory (os error 2)

Thank you for reporting! I'll fix the build next week (our you are welcome to open a PR with the fix as seems that you already got it working).
A bigger issue, though, is that the resulting binary will not actually work on NixOS, I'd guess that the error about wasmCloud already running is just a broken blanket error, which is reported on any failure of https://github.com/wasmCloud/wasmcloud-otp to actually start - the binary will not ever run on NixOS without patching, which is something wash does not (and should not) do.
I'd say that to natively run wasmCloud on NixOS you should wait for the Rust host being built at https://github.com/wasmCloud/wasmCloud to become a thing, which will take a while.
Until then, to use this today on NixOS, I'd recommend using Docker or Podman.
Other options, which require much more friction, could be:

patching the https://github.com/wasmCloud/wasmcloud-otp binary release to point all dynamically-linked binaries and libraries to the right location, there's documentation at https://nixos.wiki/wiki/C regarding how to do that - note, that this will have to be a two-step process, where you'd first have to patch the self-extracting binary and then patch the actual artifacts extracted. You'd then want to just run it directly and not rely on wash up to actually start anything. Note also, that AFAIK wash still relies on tarballs and not the newer, self-extracting binary introduced in latest version of the actual upstream project being run, but this will change soon.
Add support to wash to point to a custom URL for wasmcloud-otp build to use for wash up, I'm not familiar with wash, but I'm guessing it does not exist @brooksmtownsend ? This URL would then point to the build from (1.), which we could probably do ourselves in CI, but would need to figure out how to build a custom self-extracting binary, since we'd not be able to rely on https://github.com/burrito-elixir/burrito for it.
Add support to wash to run wasmcloud-otp in a docker or podman container

Writing this, I realize you also won't be able to run any of the binary capability providers on NixOS. So running everything in a docker-compose/podman-compose environment is probably the only way to actually try any of this on NixOS.

Thanks for looking at it and for the thoughtful answer. I will wait for the Rust host and am interested in contributing if it happens to be something I can do within my weekend time. Is the work required for the Rust host already defined? I am reading the Contributing Readme at the wasmCloud repo and will start getting started with it, as I am not familiar with Elixir/Erlang/OTP I see it as a great excuse for myself to spend some time finally learning about it. I have a question about the Rust host, is it meant to replace the Elixir/OTP one or is it meant for development or non large-scale use cases? If meant for production, does it mean you are trying to implement OTP in Rust or just get rid of all the features of OTP as part of the platform?

can we keep this open still until the nix build is fixed? Right now I'm trying to run wash on a fedora vm using nix (since #582 and #582 make me unable to run it otherwise), however its failing with the error from the OP.

@LennyPenny sure, I didn't realize it was valid outside of nixos


Performance gap between benchmark/example code and entire performance/ops performance!

Hi,
There are two questions here.
The first one is, when I use command "python tools/converter.py run --config=models/my_model1.yml --round=10" to run my model, given average performance data is about 110ms. But when I use mace/examples/example.cc to run the same model, the average performance is almost 190ms. What's the difference between these two test methods? And how to write example.cc to reach 110ms?
The second one is, when I use command "python tools/converter.py benchmark --config=models/my_model2.yml" to run another model, when I change "winograd" parameter from 0 to 4, performance difference is like below:
winograd=0, all ops perf = 11ms, the entire perf without statistics = 15ms;
winograd=4, all ops perf = 7ms,   the entire perf without statistics = 27ms.
Where does so much time cost except ops when winograd is set to 4? It seems that WinogradTransform and WinogradInverseTransform have been stat in the ops perf.
Look forward to your answers. Thank you!
System information

OS: Ubuntu 16.04
NDK version: r16b
GCC version: 5.4.0 20160609
MACE version: v0.8.1-194-g164569b
Python version: 2.7
Bazel version: 0.13.0
target_abis: armeabi-v7a, arm64-v8a
target_socs: sdm845

how did you run the mace/examples/example.cc and test the performance?
The benchmark of GPU only counts the running time of the OpenCL kernel. Actually, the OpenCL code run on CPU also takes some time, and your model is so fast that cause the part of CPU time looks too much. By the way, the time is not steady, the difference of a few milliseconds is also reasonable.

I used a Makefile to compile example.cc and link all the necessary libs and then push the executable program to mobile phone to run it.
NDK : r16b
Compiler : arm-linux-androideabi-clang++
Platforms : android-21
CFLAGS is set to "-O3 -pie -fPIE -fopenmp -std=c++11 -Wno-attributes"
Is any information else needed?
Yes, the CPU takes some time to prepare params, enqueue commands, cache flush, etc. This is understandable.
Please compare winograd=0 and 4, the entire time consumption increases from 15ms to 27ms while ops consumption decrises from 11ms to 7ms. When winograd=0, the ops and entire perf diff is 4ms, it seems reasonable. But when winograd=4, perf diff is almost 20ms!

--round=10 or 100, perf seems steady relatively for every single round expect the first two rounds, so I didn't take the first two rounds into account in example.cc.
By the way, we can see the perf difference between command and example.cc in all the tested networks, such as lenet, squeezenet, mobilenet, etc. The diffs might not be so much but still there is some more unexpected time consumption.

@TidingsLee It seems that you haven't enable neon and openmp in your build options. You can try building macros -DMACE_ENABLE_OPENMP -DMACE_ENABLE_NEON.

Hi @yejw5 @nolanliou
Apprecaite your advice. I have tried to add these two macros but it didn't work. The attached files are my example code and makefile. Please help to figure out where the problem is. Thanks a lot.
example.zip

@yejw5 @nolanliou Can you take a look at this issue, see what suggestion we can offer?

Update the example code. This version is almost the same as mace_run.cc.
example.zip

@TidingsLee Could you provide your building files?

The files such as CMakeList.txt or makefile

Hi @yejw5
The previous example.zip contains a Makefile but it doesn't matter. I have figured out it's CPUAffinityPolicy which affects performance so much. When I set it to 1, the perf is equivalent to that running by python script. But I don't understand why the parameter affects so much even it has relation to cpu dispatch time.

@TidingsLee When set CPUAffinityPolicy to 1, the threads will be bind to big cores. And 0 for all cores, 2 for little cores. You can refer the impact from: https://developer.qualcomm.com/blog/impact-big-core-little-core-architecture-application-development


Documentation can't be reached.

the link provided for the documentation, has an error Application error.

@mohamad-zbib just in case during the platform unavailability documentation can be found here ^^


Unable to deploy the CloudFormation template for the Trusted Advisor report.

Error:
Response object is too long.

I figured out that the tables for Trusted Advisor dashboards is missing and so is the folder in S3 that it is referencing.


push remote state once deployed

What is this PR trying to achieve?
Not sure how this hasn't been a problem.
But we should  100% be updating the remote.
This should go away with the 0.9 version update.

Close in favour of #706


Feature request. Optional readFileSync in ReplayParser.ts

Hello, can we make the readFileSync optional? I'd like to pass the complete replay as string. I'm using a node webserver and already have the replay contents. Don't really wanna write it to a file so that it can be parsed.
https://github.com/PBug90/w3gjs/blob/master/src/ReplayParser.ts#L45
Tried to do it myself but for some reason VS code keeps formatting the entire file differently :)

I do not think that a simple string would work due to encoding, unless it is a hex encoded string.
Did you mean to pass a buffer instead of a string?

Ah oops, yep it's a buffer.

I think you could just adjust the parse function so it can take either a buffer or a string and then decide what to do:
if it is a buffer, try to parse it immediately.
if it is a string, try to read a file and then parse the file buffer.
Would you like to create a PR?

Merged with #31
Release to be done.

Published as 1.4.1.


Revisit Pagination

Devise a more extensible solution which deals with the issues raised in #232, #281, #265, #151 & #70

I put some thoughts into #272, and think it is worth to mention here. OFFSET is not the best way to paginate. It was also noticed by @noah in https://github.com/mitsuhiko/flask-sqlalchemy/issues/232#issuecomment-76480428. So, I like to join discussion.

Something I didn't find mentioned directly in the other pagination issue reports is that db.session does not use the same query class as db.Model.query.  This is trivial to solve by passing query_cls, but it's a weird oversight that can cause confusion.  For example when db.session.query(thing1, thing2).paginate() doesn't work.
from flask_sqlalchemy import SQLAlchemy, BaseQuery
db = SQLAlchemy(session_options={'query_cls': BaseQuery})

Making a note here that db.session now uses the same class as db.Model.query by default as of #328 :dancer:

I am sure I am using flask_sqlalchemy, but "AttributeError: 'list' object has no attribute 'paginate'" happens. so upset!

@wck821829906: Don't call .all() before calling .paginate(). Also, don't hijack unrelated issues.

Has there been any progress on this issue? I am not at all an SQL expert, otherwise I would try to tackle it ...

COUNT is super slow, and Flask-SQLAlchemy always gets COUNT for pagination. The first step would be to stop using COUNT and just have prev/next based pagination. Since this project looks dead, we just have to create our own implementations.

Hi Patrick, this project is not dead. I'd be happy to review any work you're willing to put into pull requests, but have limited free time to devote to this myself at the moment. Thank you.

As to the count stuff, this comes up every now and then, search back through the closed issues for an explanation. I don't plan to remove it.

There are many cases where COUNT and OFFSET are perfectly fine. Unless you are above ten thousands of rows in the initial resultset you can safely use them. And honestly, most typical webapps using flask-sqlalchemy's pagination are not that likely to end up having to paginate that many rows.
If you need something more efficient (usually prev/next based on WHERE indexed-column > prev-value LIMIT x and similar approaches writing your own implementation is easy.

This may be way out in left field but...should we consider removing pagination from Flask-SQLAlchemy?  My brief thought is that FSA is a bridge between Flask and SQLAlchemy.  Pagination seems like a separate concern.  Is there anything that requires Pagination to be embedded in the library as opposed to maintained in a separate library (assuming someone wanted to do that)?

#1087 addressed some pagination issues, I'm fine with continuing to support it.
The query interface is legacy in SQLAlchemy 2.0, I'll be adding some support for select() instead.

In #1100 I ended up removing creating Pagination objects manually as a public API. I think supporting pagination makes sense, it's a very common interface in web applications, but I also don't think we need to provide a generic pagination API. So now db.paginate and query.paginate are the only ways to get pagination in the public API.


Add cocoapods-links to plugins repo

Details:
 {
   "gem":"cocoapods-links",
   "name":"Pod links",
   "author":"Mike Owens",
   "social_media_url":"https://twitter.com/mikejowens",
   "url":"https://github.com/mowens/cocoapods-links",
   "description":"A CocoaPods plugin to manage local development pods"
}

@mowens could you please make a pull request doing this?

Also, great job on the plugin! Could you shoot me an email/message me on twitter, I'd like to chat with you about it!

@segiddins Sorry about that. Here is the PR.
I sent you an email so we can chat about the plugin.


Error stopping node: Close timed out when deploying

When trying to deploy a new slack-web-out with a new configuration (I added my bot token), the node-red deploy hangs for a few seconds and then "Error stopping node: Close timed out" is displayed in the debug console.
I am behind a corporate proxy. I configured the proxy for both http and https and tested it with this in a function node, which works:
let require = global.get('require');
let request = require('request');

request('https://google.com', { json: true }, (err, res, body) => {
  if (err) { return node.error(err) }
  node.warn(res);
  node.warn(body);
});

Any ideas?

So you've added a new configuration and a slack-web-out at the same time and hit the deploy button? After the very first time does it exhibit the same issue?

Every time I deploy, it hangs for a few seconds and then I get the error. I also should mention that the slack-web-out node shows disconnected.

Ah, it stays disconnected the whole time? It never shows connected?

Correct. I haven’t gotten it to connect at all.

OK, I've got some code queued up that I think will fix this. Now on to the bigger issue, why isn't it connecting? Can you send over the first portion of your token?

Do you just mean the prefix?
xoxb-101899299508

xoxb- should generally be good. The connection state in the ui is based on the websocket connection. It's not terribly difficult to replicate the http request but it's generally hidden by the sdk this project is based on.
You can use an http node in Node-RED and follow the instructions here: https://api.slack.com/web
It's quite straight forward really and shouldn't take much to replicate a simple http method.

I've just upgraded from 0.1.2 and run into this issue as well. I followed the instructions to add a function from the migration section of the README, as I'm just trying to do a simple slack web out node.
I created a new Slack app with OAuth scope chat:write:bot and verified the token I'm using in node-red matches.
Watching node-red's logs, I see this when attempting a deploy:
Nov 29 09:30:40 avi docker[27347]: [INFO]  @slack/client:RTMClient:15 unable to RTM start: An API error occurred: missing_scope

Let me know if you need any more information.

@steeef I don't think you gave it enough permissions. Is it a 'bot' token? That error message is suggesting the token doesn't have enough permissions to connect to the real-time messaging (ie: websocket) service.

I guess that's where I'm stuck. I've only given it chat:write:bot, as all I want to do is to be able to call postMessage as the bot user. Reviewing OAuth scope documentation, I can't see what else I'd need to add.

@steeef yeah, the package/node does much much more than that now. If literally all you want to is send a message via http AND you can't/don't want to use a bot token, I'd suggest simply using an http node (it's quite trivial to do so to achieve your particular goal as I understand it).
Let me know, happy to help draft that up if that's the way you want to go.

#25 is related as well I'd guess.

Yeah, and http request node is what I was looking for. I've got some ideas for using Slack in other ways, but for now just using an incoming webhook works for me. Thanks for the tip!

Yeah ok. The updated version of this node basically does everything you could want to do with slack now. It real-time listens for messages, status changes, typing notifications etc. It's a full blown client essentially.


java file "is not print idempotent" - case vs defaultcase

What version of OpenRewrite are you using?
I am using

JDK Temurin 21.0.1
OpenRewrite 8.27.1
Maven 3.9.5
Maven/Gradle plugin 5.32.1
logging module  2.7.2
static-analysis module 1.8.1
testing-frameworks module 2.10.1

How are you running OpenRewrite?
I am using the Maven plugin, and my project is a multi-module project

pom.xml
  <plugin>
      <groupId>org.openrewrite.maven</groupId>
      <artifactId>rewrite-maven-plugin</artifactId>
      <version>${maven-rewrite-plugin.version}</version>
      <dependencies>
          <dependency>
              <groupId>com.shipmonk.tooling</groupId>
              <artifactId>shipmonk-tooling-openrewrite</artifactId>
              <version>${project.version}</version>
          </dependency>
      </dependencies>
      <configuration>
          <configLocation>${shipmonk-framework.basedir}/src/openrewrite/rewrite.yml</configLocation>
          <activeRecipes>
              <recipe>com.shipmonk.Cleanup</recipe>
              <recipe>org.openrewrite.java.logging.slf4j.ParameterizedLogging</recipe>
              <recipe>com.shipmonk.tooling.openrewrite.cleanup.ThrowsFormattingRecipe</recipe>
              <recipe>com.shipmonk.tooling.openrewrite.cleanup.MethodDeclarationParametersWrappingRecipe</recipe>
          </activeRecipes>
          <checkstyleDetectionEnabled>false</checkstyleDetectionEnabled>
          <activeStyles>
              <style>com.shipmonk.Style</style>
              <style>com.shipmonk.tooling.openrewrite.style.ShipMonkCheckstyle</style>
          </activeStyles>
          <failOnInvalidActiveRecipes>true</failOnInvalidActiveRecipes>
          <skipMavenParsing>true</skipMavenParsing>
          <exclusions>
            <!-- relative from git root dir -->
            <exclusion>**/.data</exclusion>
            <exclusion>**/.idea</exclusion>
            <exclusion>**/.cache</exclusion>
            <exclusion>**/.mvn</exclusion>
            <exclusion>**/docs</exclusion>
            <exclusion>**/docker</exclusion>
            <exclusion>**/*.iml</exclusion>
            <exclusion>**/*.json</exclusion>
            <exclusion>**/*.xml</exclusion>
          </exclusions>
      </configuration>
  </plugin>

rewrite.yml
---
type: specs.openrewrite.org/v1beta/recipe
name: com.shipmonk.Cleanup
recipeList:
  - org.openrewrite.java.OrderImports:
      removeUnused: false
  - org.openrewrite.java.RemoveObjectsIsNull: { }
  - org.openrewrite.java.format.OperatorWrap: { }
  - org.openrewrite.java.format.TypecastParenPad: { }
  - org.openrewrite.java.format.BlankLines: { }
  - org.openrewrite.java.format.EmptyNewlineAtEndOfFile: { }
  - org.openrewrite.java.format.SingleLineComments: { }
  - org.openrewrite.java.logging.slf4j.LoggersNamedForEnclosingClass: { }
  - org.openrewrite.java.logging.slf4j.Slf4jLogShouldBeConstant: { }
  - org.openrewrite.staticanalysis.DefaultComesLast: { }
  - org.openrewrite.staticanalysis.ModifierOrder: { }
  - org.openrewrite.staticanalysis.StringLiteralEquality: { }
  - org.openrewrite.staticanalysis.CompareEnumsWithEqualityOperator: { }
  - org.openrewrite.staticanalysis.EqualsAvoidsNull: { }
  - com.shipmonk.tooling.openrewrite.cleanup.ThrowsFormattingRecipe: { }
  - com.shipmonk.tooling.openrewrite.cleanup.MethodDeclarationParametersWrappingRecipe: { }

---
type: specs.openrewrite.org/v1beta/style
name: com.shipmonk.Style
styleConfigs:
  - org.openrewrite.java.style.ImportLayoutStyle:
      classCountToUseStarImport: 9999
      nameCountToUseStarImport: 9999
      layout:
        - import all other imports
        - <blank line>
        - import jakarta.*
        - import javax.*
        - import java.*
        - <blank line>
        - import static all other imports
  - org.openrewrite.java.style.TabsAndIndentsStyle:
      useTabCharacter: false
      tabSize: 4
      indentSize: 4
      continuationIndent: 4
      indentsRelativeToExpressionStart: false
      methodDeclarationParameters:
        alignWhenMultiple: false

(The problem persists even if I disable my own recipes)
What is the full stack trace of any errors you encountered?
It doesn't like some of the switch statements, but only some and I don't see why. I was able to obtain these details by adding --errors to the mvn command
[WARNING] There were problems parsing relative-path/NotificationResultHandlingIntegrationManager.java
[WARNING] java.lang.IllegalStateException: relative-path/NotificationResultHandlingIntegrationManager.java is not print idempotent.
diff --git a/absolute-path/NotificationResultHandlingIntegrationManager.java b/absolute-path/NotificationResultHandlingIntegrationManager.java
index d316ac8..9fcbe95 100644
--- a/absolute-path/NotificationResultHandlingIntegrationManager.java
+++ b/absolute-path/NotificationResultHandlingIntegrationManager.java
@@ -33,7 +33,7 @@

         for (PostSendActionResult operation : postSendHookOperations) {
             switch (operation) {
-                case PostSendActionResult.DocumentAsyncRequestCreation documentAsyncRequestCreation -> {
+                defaultcase PostSendActionResult.DocumentAsyncRequestCreation documentAsyncRequestCreation -> {
                     entityManager.persist(documentAsyncRequestCreation.documentAsyncRequest());
                 }
             }

  org.openrewrite.Parser.requirePrintEqualsInput(Parser.java:52)

I think the issue is that OpenRewrite does not yet fully support Java's pattern matching for switch expressions and statements as previewed starting with Java 17 and then released with Java 21. This needs to be fixed in the parser (and printer).

@timtebeek did this one fall through the cracks? I stumbled upon an old Quarkus issue complaining about it and this is a pattern that becomes more and more common.
In our case, the example was:
[WARNING]          return switch(rand) {
[WARNING] -            case String s -> s;
[WARNING] -            case Object o -> String.valueOf(o);
[WARNING] +            defaultcase String s -> s;
[WARNING] +            defaultcase Object o -> String.valueOf(o);
[WARNING]          };

hi @gsmet Thanks for the tag! Indeed we haven't yet built in support for switch expressions into our Java 21 parser. Definitely should though; especially as we're eyeing a Java 21 upgrade internally too, which will make us feel this pain too.


Switch the GEP-713 parable to refer to Chihiro.

Signed-off-by: Flynn<EMAIL_ADDRESS>Clean up the parable in GEP-713 to use the name "Chihiro", as it
should since we long ago stopped using "Charlie". 🤦♂
/kind gep
NONE

Cc @youngnick for completeness, since it's his GEP...

Is there a reason this is still being held? is it just that we didn't unhold before KubeCon?

@kflynn good catch, hold is automatic for any changes that touch GEPs.
/lgtm
/hold cancel

Thanks @kflynn, nice work.