Added automatic REPL config and startup

Added automatic REPL config and startup
This commit adds the ability to download Swank if it isn't already
downloaded, add it to the ASDF path, start Swank, and attach the REPL to
it.  The command to start the REPL is configurable.  The default command
uses SBCL, but it can be overridden in the config.  The mechanism for
adding Swank should work with all lisps that use ASDF 3.x.
It sets the path of the REPL to the root of the project on startup.
This should make it easier to use the starting path for environment
names in CLPM and to make things less confusing in general.  This setup
should be compatible with starting the repl in CLPM and Roswell without
forcing the user into using either.
Ultimately, this should make it so that VSCode users can get a REPL
via the editor instead of having to manually start it up first.
  I
apologize. I just couldn't do what I wanted to do without rewriting two
fairly hefty libs.

Ok, Sorry for that flurry of updates after opening the PR.  I found some issues when I ran it on Windows that I had to clean up.  I've tested this on Windows amd64, Arch in WSL, and on a Mac M1.  Windows SBCL was installed through sbcl.org, Arch through pacman, and Mac through asdf-vm.  I'm sure someone will find something wrong, but I think this is a decent start to having it basically work as long as your have SBCL installed.

Hey @nobody-famous, if this PR is presumptuous or doesn't align with what you're trying to do with the project, please let me know.  My feelings won't be hurt and I am willing to make any changes you want me to, including just closing the PR.  I'm not trying to step on anyone's toes with this one.  It seemed valuable to me to have a way to have the repl just work™ if you have SBCL installed.  Adding the downloader and everything is a little bit heavy, but it seemed better than forcing any particular workflow or tooling on users.  The way I did it doesn't close over the environment at all.  It should be environment-agnostic beyond the configurable init script.  It should work with just about anything that uses ASDF 3.x without crudding up images generated outside of VSCode or requiring any bespoke config.  All it does is download the latest released Slime from Github, unzips it, adds it to the source registry via an environment variable, and then starts it up via CLI arguments.  Anyway, I really appreciate all the work you've done on this.  It's been my daily driver for about a year now and am happy to contribute in any way I can.  Thanks.

Not a problem. My only real goal for the project is "viable alternative to Emacs." By far the most common feedback I've gotten from people is thanking me for not forcing something like Roswell on them so they can use whatever setup they already have. I'm all for options, as long as the default is still agnostic and doesn't force a specific workflow or tools onto people.
Just an fyi, my main philosophy with code is that the differentiating factor between good code and bad code is how well errors are handled. So when I test it, I assume the good path works, because that's the easy part, and primarily try whatever I can think of to try and break it. I'll put it through its paces when I get a chance and if things don't go wonky when processes get killed out from underneath it and whatnot, I'll merge it in.

Not a problem. My only real goal for the project is "viable alternative to Emacs." By far the most common feedback I've gotten from people is thanking me for not forcing something like Roswell on them so they can use whatever setup they already have. I'm all for options, as long as the default is still agnostic and doesn't force a specific workflow or tools onto people.
Just an fyi, my main philosophy with code is that the differentiating factor between good code and bad code is how well errors are handled. So when I test it, I assume the good path works, because that's the easy part, and primarily try whatever I can think of to try and break it. I'll put it through its paces when I get a chance and if things don't go wonky when processes get killed out from underneath it and whatnot, I'll merge it in.

Alright, well I am embarrassed to say that I didn't even think to do that.  I went back and did it, found a bunch of problems, and updated the code.  It handles everything I could think of... though I didn't think to do it before you said anything so...
Let me know if you find anything weird and I will fix it.  This is better than it was though.

GIve it a shot when you get a chance.  Cross-platform development is a blast.

I think it's really close. Only issue I see is dealing with the fact that there's now 2 ways to connect to a repl. If you connect to an existing repl and then do the start and attach command, it appears to reconnect to the existing one and creates a new, zombied child repl. Oddly, though, if you kill the existing one and then do attach to repl, it connects to the zombie. Not sure what voodoo is allowing it to be listening on the same port.

I think it's really close. Only issue I see is dealing with the fact that there's now 2 ways to connect to a repl. If you connect to an existing repl and then do the start and attach command, it appears to reconnect to the existing one and creates a new, zombied child repl. Oddly, though, if you kill the existing one and then do attach to repl, it connects to the zombie. Not sure what voodoo is allowing it to be listening on the same port.

Hahahaha, I would have never even thought to try that. Let me try that tomorrow and figure out how to fix it. Sorry about that. You have a dark gift.

Alright, Swank uses SO_REUSEADDR so it will never return EADDRINUSE if you fire up two servers on the same port.  This means I can't rely on server connection error handling to get me into the right state.  What I decided to do was add a check to see if anything was listening on the port before I start an image and connect to it.  It checks it by connecting to the socket and then disconnecting.  If there is nothing there, it times out after 200ms and does the normal thing.  If it is there, it fires off a warning in VSCode saying the port is unavailable.
The side-effect of this decision is that if the user has a Swank server running on port 4005 without dont-close t set, it will close their Swank server.  Presumably, they'd see their manually opened REPL disconnect, but there is no guarantee.  Do you think that's an acceptable solution?  On one hand, I don't like nuking people's active REPL.  On the other hand, my hands are kind of tied.  I can either check the socket for an open connection since Swank will happily spin up multiple servers on a single port and provide useful messaging to the user while potentially nuking their running REPL, or I can not and get into undefined zombie process mode.  At least with this current scenario, everything is visible.  The user can see warnings.  They can see their REPL get a socket connect and disconnect.  The scenario you discovered seems worse because it just looks like it worked, but you don't have a way to know what you're connected to without a lot of inside baseball.
Let me know what you think.  If this idea seems reasonable, then it's ready for another review.


Fix getObject() conversion of DATETIMEOFFSET to LocalDateTime

Currently, if you have a DATETIMEOFFSET column and you call ResultSet#getObject() with LocalDate/LocalTime/LocalDateTime as the class argument, the JDBC driver converts the value into the local time zone.
One could argue that the current behavior is correct, but IMO it is a bug because it does not align with what java.time.OffsetDateTime#toLocalDateTime() and CAST(date_time_offset_column AS DATETIME2) do, which is to ignore the offset.
So this PR fixes the behavior for local types to ignore the offset.

As is, this would be a breaking change that would never be merged.
That said, before you spend more time on the code, if you want to push for this change, ways forward would include a connection property that maintained existing behavior and made this behavior opt-in. Additionally, justifying this change by comparing behavior with other JDBC drivers, like jTDS, MySQL's JDBC driver, PostgreSQL, and Oracle. If the MS JDBC driver is the outlier and all others behave as you are proposing, that gives your position more strength.
Regards,
David

I've done a brief survey and determined the following:

The JDBC spec says nothing about this.
A lot of databases do not support TIMESTAMP WITH TIME ZONE or equivalent. MySQL, SQLite, and Derby fall into this category.
jTDS is ancient and hasn't been updated in eons. The code doesn't appear to support Java 8 types at all.
Postgres throws an exception, as determined by looking at their tests.
H2 does what mssql-jdbc currently does, as determined by experimenting with it.
HSQLDB does what I'm proposing to make mssql-jdbc do, as determined by experimenting with it.

I'd be fine with saying the current behavior is the default, and my proposed behavior requires a connection property. If I update this PR to do that, do you think it would get merged?

I wouldn't "fix" this.
When calling setObject(LocalDateTime) against DATETIMEOFFSET column, the driver assumes the local offset, so the current behavior of getObject(LocalDateTime.class) is the expected behavior, I believe.
In any case, if you use DATETIMEOFFSET column, you should use OffsetDateTime in Java side.

If your app doesn't need offset at all, you should use DATETIME2 column.

Just to be transparent, adding public surface area (public APIs, connection properties, etc.) has a non-zero maintenance cost. So we try to get justification for adding those and see if there are others who desire the same functionality. (Of course, submitting the functionality yourself certainly makes it more likely to be accepted. 😄)
That said, what is the use case for using the driver this way?
When calling setObject(LocalDateTime) against a DATETIMEOFFSET column, the driver assumes the local offset, so rather than simply ignoring and truncating the offset from the database value, the current behavior of returning the time in the local offset seems perfectly reasonable.
If you are using DATETIMEOFFSET in the database, how come you aren't using OffsetDateTime on the Java side?
If you want to ignore the offset for some reason, why not just call getObject(col, OffsetDateTime.class) then OffsetDateTime#toLocalDate()?
If your app doesn't need offset at all, why not use a DATETIME2 column?
Regards,
David

Just to be transparent, adding public surface area (public APIs, connection properties, etc.) has a non-zero maintenance cost. So we try to get justification for adding those and see if there are others who desire the same functionality. (Of course, submitting the functionality yourself certainly makes it more likely to be accepted. 😄)
That said, what is the use case for using the driver this way?
When calling setObject(LocalDateTime) against a DATETIMEOFFSET column, the driver assumes the local offset, so rather than simply ignoring and truncating the offset from the database value, the current behavior of returning the time in the local offset seems perfectly reasonable.

The current behavior might be reasonable, but it also violates the principle of least surprise. It's the only context I've seen where this behavior exists. As I said when I opened this PR, both OffsetDateTime#toLocalDateTime() and CASTing a DATETIMEOFFSET to DATETIME2 have the behavior of simply ignoring the offset and not adjusting anything. I expected this to work the same way, and it doesn't.

If you are using DATETIMEOFFSET in the database, how come you aren't using OffsetDateTime on the Java side?
If you want to ignore the offset for some reason, why not just call getObject(col, OffsetDateTime.class) then OffsetDateTime#toLocalDate()?

I can, at least in some code where I have direct control of this. There are other cases where a third-party library is interrogating the ResultSet and I can't do that. And, at the risk of repeating myself: as a Java developer, I expected that getObject(col, LocalDateTime.class) would yield the same result as getObject(col, OffsetDateTime.class).toLocalDateTime().

If your app doesn't need offset at all, why not use a DATETIME2 column?

There are some cases in the application where the time zone matters, and other cases where we want the local time.
I opened this PR mainly because the current behavior is surprising to me. But if nobody else agrees, I'll stop arguing and close it.

We discussed it and we are okay with adding this feature. To summarize the changes required:

Add a new connection property that makes the new behavior opt-in. I suggest IgnoreOffsetOnDateTimeOffsetConversion, default = false. Feel free to propose something better. (I dislike the long name, but can't think of anything better.)
Add tests that verify current and new behaviors when setting the connection property.

CC: @lilgreenbird, @Jeffery-Wasty, @tkyc to chime in if I'm forgetting anything.

Okay, sounds good. I'm about to go on vacation so it'll be a few weeks before I get back to this.

@microsoft-github-policy-service agree company="Scientific Games"
I named the connection property javaCompatibleTimeConversion which is a little shorter and IMO explains it a little better. If you don't like it, I can change it.

This is ready to be reviewed.


mbox: include mail in ctime(3) format

RFC4155 says that the time field of mbox files should be in the format
produced by the standard C library functions ctime and asctime, for
example "Sat Oct 22 10:16:40 2016".
datetime's strftime method can produce this same format, but the month
and weekday are localized.  Because Python does not have either locale
objects or thread-local locales, add a new hand coded get_asctime()
method to do this.
Signed-off-by: Paolo Bonzini<EMAIL_ADDRESS>

Rebased the commit (not deliberately :p) and merged. I'm working on pushing to patchew.org once it is migrated to the new server.


[Bug]: Couldn't find any versions for "jest-worker" that matches "^27.4.0"

Version
27.0.4
Steps to reproduce
yarn add<EMAIL_ADDRESS>Expected behavior
Installed without asking for a version when installing yarn and not crashes when using npm installation
Actual behavior
Version selection query
Additional context
Version selection query  Please choose a version of "jest-worker" from this list 27.3.1
Environment
System
OS: macOS Catalina
Yarn: 1.22.17
npm: 8.1.4
Jest 27.0.4

Opening more issues about the same thing doesn't make it any more of a bug in this repo. As I said, 27.4.0 is available - nothing more can be done in this repo.
https://github.com/facebook/jest/issues/12100#issuecomment-982367234


Ignoring missing kopf files in docs.

Summary of the changes / Why this is an improvement
kopf has moved on - the intersphinx documentation is broken because we're using
an older version of kopf that is no longer documented on readthedocs.
Checklist

[x] CLA is signed

Thanks for this quick workaround. For following up on this, I just created #217.


RX2 Datarate

Is this a bug or a feature request?
Bug, I guess, I'm not sure, maybe I do something wrong way.
What did you expect?
Change RX2 Datarate for downlinks, and send downlinks with datarate DR_3 (SF9)
What happened?
The downlink packet are sent always with default parameters: DR_0 (SF12 / BW125) on 869.525MHz
What version are your using?
$ lora-app-server -h
0.13.1
How can your issue be reproduced?
Use non-standart RX2 window parameters, e.g. DR_3(SF9 / BW125) and try to receive the downlinks on the node.
Could you share your log output?
I have the logs from the packet forwarder on gateway:
JSON down: {"txpk":{"imme":true,"freq":869.525,"rfch":0,"powe":14,"modu":"LORA","datr":"SF12BW125","codr":"4/5","ipol":true,"size":14,"data":"oFPwwQYAcAABZhOmJTg="}}
I see this record each time I send the downlink using "mosquitto_pub" for my node.
As far as I understand, the packet forwarder receives parameters of the channel the packet must be emitted with.  Even I change the "RX2 data-rate" at "Advanced Network Settings" tab in Application Server Web page, the record remains the same, specifically "SF12BW125".
I tried the values 0, 1, 2, ... 9, 10, 11, 12.
Moreover, even I change the "RX2 data-rate", I see, that the emitted packet by application server has the following parameters in "Raw frame logs":
codeRate:"4/5"
**frequency:"869525000"**
immediately:true
mac:"aa555a0000000101"
power:14
timestamp:0
▶ dataRate:{} 4 keys
    modulation:"LORA"
    bandWidth:125
    **spreadFactor:12**
    bitrate:0

P.S. What number I should set, 0, 1, 2... corresponding to DR0, DR1, DR2, or 9, 10, 11, 12... corresponding to SF9, SF10, etc. ?
Thanks in advance!!!

Any ideas? It is still actual for me...

In the latest release, this setting has been moved to LoRa Server:
 --rx2-dr value                          rx2 data-rate (when set to -1, the default rx2 data-rate will be used) (default: -1) [$RX2_DR]

https://docs.loraserver.io/loraserver/install/config/
Note that the RX2 data-rate will be sent only on OTAA. For ABP you need to enter the RX2 data-rate in the device-profile.
Please note that it won't be possible anymore to pick the receive-window from the UI. In the future LoRa Server will decide which RX window to use for downlink.

Thanks for your reply!
Now I use LoRa Server version 0.21.0 and LoRa Application Server 0.13.1.
Does this setting work in my conditions?
Is it required to update the applications to use this setting?
Can you explain your descision about moving the functionality of choosing the RX-window to LoRa Server? I guess, the ability to choose the RX window from UI is was a good idea, is'nt it?
I use OTAA. As I understand, the device profile functionality appeared not so long ago, I have not use it yet, and have not upgraded the applications to actual versions. Should I do some actions to move to new version to keep all my data?
Thanks!

See https://forum.loraserver.io/t/release-lora-server-0-22-0-lora-app-server-0-14-x-read-carefully/350 :-)
The reason to move this config option to LoRa Server is that network-configuration is in the network-server domain and should be configured / handled there. Also the network-server knows best about the available resources and limits like duty-cycles (eventually) an should be able to choose which receive window would be the most resource efficient choice for downlink.

Thanks for clarifying, brocaar!
I will try to update application to new version. Let's see what will happen :)

By the way, I'm from Russia, and I'm interesting the LoRa in our country.
I have read the post ()
I did not find the RU868 band at configuration page (
What do you think about adding the band?
Thanks!

I will follow the LoRaWAN Regional Parameters specification by the LoRa Alliance. If it gets added there, I'll implement it :-)

Ok, I understand :-) Looking forward for the specification issuing.
Sorry for offtopic.
Do you have any information about the date when the new revision of Regional Parameters will be issued? I found out that LoRaWAN Alliance going to issue new revision (B) of Regional Parameters til New Year. Do you know anything about this?
Thanks!

Sorry, I don't know.

It seems to be work fine after upgrading.


Add an option to disable hardcoded height on datagrid

The method computeDatagridHeight attempts to calculate and hardcode a height onto the main datagrid element in order to solve an IE11 flexbox bug.
https://github.com/vmware/clarity/blob/master/src/clr-angular/data/datagrid/render/main-renderer.ts#L140-L145
This specific use case may be useful in some instances, but if you are utilizing flexbox properly all the way down the DOM tree then this height hack is not needed. In those cases it is preferred to not have this bit of extra styling as this height value could potentially get out of sync with the current state of the DOM as the only place the calculation occurs is in the ngAfterViewChecked lifecycle hook.
It would be excellent if we could get an input property to the datagrid that allowed us to simply switch off this behavior as needed.

Can you provide more context about your use case for adding this feature?
We do not always add height to the datagrid. I believe it is only added when there is pagination. Early on we got feedback from users that the jumping that the bottom of the datagrid did when the last page of items did not have the full number of items in it for display.
Take a look here, I've got two datagrid, the basic one w/o pagination doesn't get its height set.
I'm not opposed to adding an @Input for this but I do want to understand the use-case it will support.

I've also run into this.  We have controlled the size of the grid ourselves and we're using flexbox and would like the grid to shrink when other content on the page expands.  With the height being set explicitly, this breaks our layout when we enable pagination.

Can you create an example stackblitz so I can see what you are doing?

https://angular-ezsdxc.stackblitz.io/ shows the issue where the grid doesn't shrink when the collapsible div at the top of the window is expanded.  when the pagination component is removed, the grid shrinks since the explicit height style isn't added.

The DatagridMainRenderer seems to be setting the height explicitly and only once, on AfterViewInit.
Currently a workaround could be to explicitly set the datagrid height to 100% of it's container:
clr-datagrid {
  height: 100% !important;
}

But we need to check if we can come up with a better solution.

thank you, I thought that I had tried that but I must not have since it's working as a workaround.

Could you provide other solution then the workaround which use !important?
Using ! important is bad practice and should be avoided.
https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity#:~:text=Using !,greater specificity will be applied.

@dkanev
Instead of using !important just up the specificity of the CSS selector.

@mathisscott  According to the specification the !important is the way to override  inline style.
https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity  :
A) Overriding inline styles
Your global CSS file that sets visual aspects of your site globally may be overwritten by inline styles defined directly on individual elements. Both inline styles and !important are considered very bad practice, but sometimes you need the latter to override the former.
In this case, you could set certain styles in your global CSS file as !important, thus overriding inline styles set directly on elements.
The more specific CSS selectors doesn't help in this case, I tested it and it doesn't work or I am missing something.
Could you give me example how this can be done.
Thanks.

@dkanev
Ah, yes. You are right. I forgot that the datagrid has to set the height on the element using the style attribute.
So it seems that, while not a general best practice, using !important in your custom CSS here is at least the recommended course of action?

This issue is about a version of Clarity that is out of support, and we have recently dropped IE11 support as of the end of 2020 for any version of Clarity. In an effort to better manage our backlog, we are closing this issue. We recognize that some of these issues may remain problematic for you, but there is a workaround that can help address this case.


Inline references

It should be possible to see references inline, rather than having to navigate to the bottom of the chapter. It prevents loss of reading order.

This is pretty hard to implement; there could be numerous references inline and we'd need to have a way of stacking them in the margin. This works okay for footnotes since they're rare, but much less well for paragraphs with abundant paragraphs.

I think we should find a way to do it. It's a really nice feature in footnote and glossary land, much better than jumping to the bottom of the page and navigating back.


[Minor][YARN] Move YarnSchedulerBackendSuite to resource-managers/yarn directory.

What changes were proposed in this pull request?
#16092 moves YARN resource manager related code to resource-managers/yarn directory. The test case YarnSchedulerBackendSuite was added after that but with the wrong place. I move it to correct directory in this PR.
How was this patch tested?
Existing test.

Test build #71427 has started for PR 16595 at commit 9301974.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/71427/
Test FAILed.

Jenkins, test this please.

Test build #71433 has started for PR 16595 at commit 9301974.

Test build #71433 has finished for PR 16595 at commit 9301974.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class YarnSchedulerBackendSuite extends SparkFunSuite with MockitoSugar with LocalSparkContext

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/71433/
Test PASSed.

Merged build finished. Test PASSed.

cc @rxin @vanzin @srowen

LGTM

Merged into master. Thanks for reviewing.


Add user option to control date/time timezone preferences

It appears the function I'm using ISOToDateTime already accommodates for this. At least I'm still investigating. It's supposed to just convert the value from string to TDateTime.


Allow interpolation inside of backticks and strings

To avoid making this a backwards incompatible change, only strings and backticks preceeded by an f will allow interpolation:
bar := "world"
foo := f"Hello, {{bar}}!"
baz :=  f`echo "Hello, {{bar}}"`

Both foo and baz evaluate to Hello, world!.
I've marked this as "good first issue", but it's quite hard! I am very happy to mentor, provide support, and do some pair programming sessions if someone wants to tackle this.
One of the reasons that this is hard is because it will be possible to nest interpolations recursively:
qux := f"{{f"{{f"{{bar}}"}}"}}"

So the lexer might need to be modified to have a state stack to track interpolations.

This does introduce the odd scenario where you can have interpolation inside a string inside an interpolation inside a string, etc, etc, etc.

Closing. If anyone wants this, comment and I'll reopen it!

Maybe thinking that we should do this. Reopening.

If this is supported, I'm inclined to do it with python's f-string syntax: f'some string with{{interpolation}}'

Interesting how nobody has taken this on yet!  I am quite interested in having this and have some basic experience working w/ lexers/parsers for other things, so maybe I'll try to take a look soon-ish and see if I can help make this happen!

I started working on this,  in-progress branch here.
It's pretty hard! I've gotten lexing and parsing mostly working, but I haven't done evaluation, i.e. actually evaluating the fragments, concatenating them, and, in the case of format backticks, evaluating the result.
If your interested, you could pick up the branch as a starting point. I'm not sure when I'm going to work on it again.

Is there any news on the subject? 😄

For those who would be interested, I managed to the same with a bit of shell evaluation :
docker_container_name := "$(docker ps -q --filter ancestor={{image_name}})"
# This would be the same as:
docker_container_name := f`docker ps -q --filter ancestor={{image_name}}`

Is there any news on the subject?

This is a big feature, so time to implementation is unknown.

Could this crate be any helpful ?
MiniJinja -- Powerful but minimal dependency template engine for Rust
Announcement on r/rust (2021-09-24).

MiniJinja is a powerful but minimal dependency template engine for Rust which is based on the syntax and behavior of the Jinja2 template engine for Python.

It's implemented on top of serde and only has it as a single dependency. It supports a range of features from Jinja2 including inheritance, filters and more. The goal is that it should be possible to use some templates in Rust programs without the fear of pulling in complex dependencies for a small problem. Additionally it tries not to re-invent something but stay in line with prior art to leverage an already existing ecosystem of editor integrations.

Cheers

Could this crate be any helpful ?
MiniJinja -- Powerful but minimal dependency template engine for Rust

The template language isn't so much the hard part, it's the rest of the integration, so a crate wouldn't be a huge help.

For those who might be interested, I developed a simple task system based on the Ruby language.
I needed something effective, pretty simple to use and quick to develop for a project. It already proved itself to be quite powerful : https://github.com/pyrsmk/run

I'm working around this using replace:
value := env_var('VALUE')
result := replace('a pair of values: (__, __)', '__', value)

I'm also interested in this kind of functionality, but actually I don't care that this is provided using backticks: for my current use case, a function could be fine as well. Would something like an eval(string) function be simpler to implement? In that way, we could compose strings and use variables inside expressions:
world := "World!"

greet arg=world:
    echo "Hello {{ eval("echo " + arg) }}"

I took a quick look at the code and if the implementation is performed trivially, one could implement a new eval function that basically replicates what is being done in run_backtick, although it seems that there is no access to Settings from the FunctionContext (and I didn't investigate if that's something that belongs in there).

It's very much not clear in the documentation that you can't do this, currently.
Perhaps a note should be added to the section on back-ticks.

This is the only thing stopping me being able to convert a whole Makefile over to Just :(
I have managed to build up the command-line using +, but I can't see how I can then execute that for use in a new variable.
For example:
BLAH := some_example # this is the canonical source that we don't want to repeat through the whole file
VERSION := $(shell cargo metadata --format-version 1 | jq -r '.packages[] | select(.name=="my-prefix-${BLAH}") | .version')

I can then convert it to:
BLAH := "some_example" # this is the canonical source that we don't want to repeat
version_cmd := "cargo metadata --format-version 1 | jq -r '.packages[] | select(.name==\"my-prefix-" + BLAH + "\") | .version'"
export VERSION = `...` # what can I do here to execute version_cmd

An alternative take is to just make a breaking change allowing interpolation in backticks, and call it v2. Then give instructions to v1 users on how to deal with literals which now have different behavior.

One of the reasons that this is hard is because it will be possible to nest interpolations recursively:
qux := f"{{f"{{f"{{bar}}"}}"}}"

If this is what makes this hard, maybe nesting f-strings could be explicitly disallowed, at least initially? Most if not all uses for nesting could be achieved with intermediate variables. Adding nesting support later if needed wouldn't affect backwards compatibility.

Or, there can be a default (overridable) max level of recursion, above which will cause a runtime error.

What does @casey think about a fmt() function that provides Python (or printf) style formatting for the meantime?

I think the first easiest step is to parse f"blah {{foo}} blah", where the contents of an interpolation may only be a single identifier. This covers the most common case, but avoids the complexity of the fully recursive case.

In that case: no escaping, right?

@casey,
The branch you linked above is inexistent. I'll like to take this on, but I need a place to start from, otherwise it might take a while.

The old branch is probably pretty out of date, so I'm not sure it will be much help.

Alright, anyhoo. I'll look into how #2055 works, and figure it out from there.

Yeah. I'd love that addition too. Python strings f"{{}}" would have my preference.

PR started but author dropped out for personal reasons in 2021. Took me a while looking for this so linking for visibility

https://github.com/casey/just/pull/822

PR started but author dropped out for personal reasons in 2021. Took me a while looking for this so linking for visibility

https://github.com/casey/just/pull/822

Thanks. I think I can work with this.
A lot has gone into it too.

Couldn't this (or at least, a significant subset of the use cases it is meant to address) be solved with a fairly simple shell function that just invokes the shell and returns its stdout?
This would avoid the complexities of nested interpolation (and be easy for Make users to convert to...)
e.g. continuing the example from above
export VERSION := `...` # what can I do here to execute version_cmd

becomes
export VERSION := shell(version_cmd)


Skip reduction output map when computing min tile sizes

Reduction vectorization is driven by the input tensors (i.e., the ones
that we want to reduce). Taking into account the output's map (e.g.,
(d0, d1) -> (d0) when computing the minimum tile sizes for
vectorization/unrolling leads to large unroll factors (i.e., UF=16 for i32
reductions, UF=32 for i16 and UF=64 for i8).
This PR change the logic to skip the output operand when computing the
minimum tile sizes. This logic should be replaced/improved to be more
generic and direct, eventually.
This PR is part of a set of changes aimed at improving reductions and
transpositions on RISC-V. This change also helps reduce the unrolling
issues that we have in IREE.

Tiling for reductions, in general, needs more tuning but I think we were defaulting to very aggressive tile sizes. This PR changes the default tiling for reductions to be more conservative. On RISC-V this improve performance of mobilebert-quant by 28%.

Performance on RISC-V is preserved with the maxUnrollFactor approach so let's go with it!


[Ruby 3] Test Track Upgrade

Summary
Upgrades test_track to Rails 3 support.

@smudge This look ready for eyes.


Swin V2 Fine-tuning a Fine-tuned Checkpoint

Hello,
Let's say I want to fine-tune the swinv2_large_patch4_window12to24_192to384_22kto1k_ft pre-trained checkpoint for a new task/resolution. It was already fine-tuned on ImageNet-1k using PRETRAINED_WINDOW_SIZES: [ 12, 12, 12, 6 ] which makes sense given the feature map height/width is [48, 24, 12, 6] at the start of the four stages for an input of 192x192 and a patch size of 4.
But now that I'm fine tuning again should I update this to PRETRAINED_WINDOW_SIZES: [ 24, 24, 24, 12] (given feature map height/width [96, 48, 24, 12]) since that's what this checkpoint was fine-tuned to, or leave it where it was before? And I assume whatever the answer is, I should keep it at that value even if resuming from a latest checkpoint?
Thanks,
-Collin

It seems to make the most sense to me to change it to PRETRAINED_WINDOW_SIZES: [ 24, 24, 24, 12] during the new fine-tuning run, and leave it there until the model converged (and keep it set to that for inference as well, obviously).
Would you please confirm this is correct? Thank you

I tried both settings and PRETRAINED_WINDOW_SIZES: [ 0, 0, 0, 0] and found no difference in the model accuracy when fine-tuning on cityscapes. My assumption is this only matters for inference when the window size during inference is different from the window sized used during training.


Error in actions.ts

Hi!
I think you have a little error here
https://github.com/InfomediaLtd/angular2-redux/blob/master/src/actions.ts#L17
if (action && appStore && action instanceof AppStore) {
shouldn't it be appStore instanceof AppStore?

@vagyriag why do you think it's an error?
This little check is for support the previous version of this function (constructor(appStore:AppStore,action)), which accepted an appStore as the first argument and the action as the second. When calling it the code looked like counterActions.createDispatcher(appStore,counterActions.increment). The new version lets you send a single argument - action - and the AppStore would be injected (or optionally still provided as the second argument).
So, what this code checks is if we have received an action and an appStore arguments, but the action is actually an appStore. So it checks if both exist and if the action is an instance of the AppStore class. If it is then it's an older style call and flips them.
In future versions, if we make some other breaking change I'll take out this code so it's cleaner, but right now it's there to avoid breaking the interface for people who still use the previous signature.
Does that make sense?

ohhh ok, my bad.
Didn't understand the comment, but it makes sense
sorry for the trouble

No worries. Thanks for being proactive on this.


quick question

It was nice to listen to your presentation at the I2K conference.
What is the difference between this czicompress and what is already available in the ZEN?
Thanks,
Alex

czicompress is a standalone tool and you can use it to compress a large number of (as yet uncompressed) CZI files (cf. the example scripts in the Readme) - without having to open and 'save as' all of them in ZEN. The compression ratios should be similar for ZEN and czicompress.
In ZEN 'Save As with Options', you can also choose lossy compression (JpegXR), czicompress only offers lossless zstd compression.
Finally, czicompress is free software, it is cross-platform, and it is small. And ZEN is none of that.


The system_networkState RPC doesn't report connected peers correctly

The RPC query, and the data sent to the telemetry, doesn't actually report nodes we are connected to, but nodes we are connected to with Substrate. The connected peers have a field named open which corresponds to whether or not we are connected with Substrate.
Depends on https://github.com/libp2p/rust-libp2p/pull/1037 being merged and published.

Done a while ago.


Allow deletion outside working dir

Added an 'options' argument that expects an object. If a 'force' property is set, it will be passed through to del.sync to allow deletion of files outside of the current working directory.

Lovely thanks. :-) :+1:

PR Closed.


Adding SQL to 2.4 manifest

Signed-off-by: Peng Huo<EMAIL_ADDRESS>Description
Related to https://github.com/opensearch-project/sql/pull/831.  Required <IP_ADDRESS> for bwc test.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #2684 (28df0c7) into main (55b2622) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #2684   +/-   ##
=======================================
  Coverage   94.10%   94.10%
=======================================
  Files         156      156
  Lines        4208     4208
=======================================
  Hits         3960     3960
  Misses        248      248

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

Close this for now as I will add it to the #2678 soon.
cc: @penghuo
Thanks.

@peterzhuamazon,
The proposed changes are missing in the PR you mentioned. Are you planning to add them?


Downstream porting documentation

Hi,
It is not really a bug but you get a mention on the debian wiki as one the easiest way to port sse instrinsic program
See https://wiki.debian.org/InstructionSelection
You will therefore get a few more testing and maybe bug report
Bastien<EMAIL_ADDRESS>

Thanks @bastien-roucaries , it is great to see increased use of SIMDe in Debian !
FYI: I'm a Debian Developer and the maintainer of the Debian package for libsimde-dev


ModuleNotFoundError: No module named 'vtkplotter'

Hi!  Nice tool. I am trying to pip install brainrender, but there throw me an error while I running
"import brainrender''
No module named 'No module named 'vtkplotter' After I install
F:\D\BrainRender\brainrender_init_.py in
45
46 # -------------------------- Set vtkplotter shaders -------------------------- #
---> 47 from vtkplotter import settings
48 settings.useDepthPeeling = True # necessary for rendering of semitransparent actors
49 settings.useFXAA = True # necessary for rendering of semitransparent actors
ModuleNotFoundError: No module named 'vtkplotter'
Do I need to install vtkplotter again?
Thank you

hi,
how did you install brainrender?
If you used pip install brainrender it should've installed all the necessary packages, including vtkplotter.
If something went wrong with the installation perhaps try pip install brainrender --upgrade or uninstall with pip uninstall brainrender and then pip install brainrender.
Please let me know if this doesn't fix the problem.
Thanks,
Fede

Thank for the reply. Yes, I used pip install brainrender many times.  always a error come out:
Installing collected packages: allensdk, brainrender
ERROR: Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: 'C:\Users\73110\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\allensdk\test\internal\mouse_connectivity\test_projection_thumbnail\pycache\test_visualization_utilities.cpython-37.pyc'
Still trying to figure out why this happens. Thanks!

Hi,
This second error seems related with the allensdk package. Which also gets installed together with brainrender so there's no need to install it manually.
Let's try the whole thing to the start so that I can be sure of which steps you've taken.
I'm assuming that you're using conda to mange your python environments, but let me know if that;s not the case.

Create a new anaconda environment [in conda editor]

 conda create -n brainrender python==3.7
 ...
conda activate brainrender

install brainrender and dependencies

pip install brainrender

install ipython for testing

pip install ipython

test

ipython
import brainrender

Let me know if you still get an error after this. Also could you please let me know which OS you're using?

Thank you!  I am using the windows 10.  I followed the steps you listed and used conda installation.  Everything is good except the last step.  There is a error: can not found vktplotter module. Next I installed the vktplotter mannully, and it doesn't work. So there is nothing wrong of the brainrender installation, but the vktplotter doesn't suit my pc well.  I am trying to solve this and will keep this posted. Thanks!

Hi,
thanks for trying, and sorry it didn't work out.
If you just try pip install vtkplotter what happens? Do you get an error?
If you do conda list do you see vtkplotter among the installed packages?

Hi! Thanks for your help!
The vtkplotter requirement already satisfied when I pip install vtkplotter again or check the conda list. But  when I import the brainrender via ipython, a error came out that ModuleNotFoundError: No module named 'vtkplotter'.
In [1]: import brainrender
ModuleNotFoundError                       Traceback (most recent call last)
 in ()
----> 1 import brainrender
F:\SW\BrainRender\brainrender_init_.py in ()
45
46 # -------------------------- Set vtkplotter shaders -------------------------- #
---> 47 from vtkplotter import settings
48 settings.useDepthPeeling = True # necessary for rendering of semitransparent actors
49 settings.useFXAA = True # necessary for rendering of semitransparent actors
ModuleNotFoundError: No module named 'vtkplotter'

hi, that's very weird.. are you sure that the jupyter notebook is using the same anaconda environment you've installed brainrender in?
If you just try to import vtkplotter do you get the same error?

Hi! @FedeClaudi  I realized that it can not work because I typed ipython at the cmd windows.  I built a new enviroment in conda and finnally it worked when I ran it by pycharm.  Thanks so much for the help!!!

Awesome, sorry about all the trouble.
I hope that it all works smoothly from now on, but do get in touch if you have any problem.


Q: How will Items be Distributed?

Initially, orders placed at sunny skies annex with app. Then fulfilled and delivered.
Later in location at time of fulfillment.


The full version for your extension works without problems, but the chrome version actually let connections going through

I tested with some extensions which requires internet access to update filterlists or scripts and the full version blocked these requests and make them fail, but the free version let them getting through.
I tested it in the latest version of the Brave Browser (Stable).
Tested it now in Opera GX too, it seems like to be a Brave issue. Please investigate this.

Got resolved.


Investigate the new Checks API for Github

Should look at the new Checks API when the GraphQL support is ready and #1 is done.

Checks is reserved for Github Apps, so we'll probably need to support both checks and statuses API. Also it's been made available in the V4 API from the get-go:

https://developer.github.com/v4/previews/#checks

Any plan on implementing it?


Migrate

The final pull request of Linuxbrew-legacy to migrate to the split repository.
Closes Linuxbrew/linuxbrew#1033.

To migrate your current legacy Linuxbrew installation to the new split repository, check out the branch migrate (pull request #1101) and run brew update. This coming week, brew update will automatically migrate your legacy Linuxbrew installation to the new split repository.
brew update
brew doctor
cd `brew --repo`
git fetch origin migrate:migrate
git checkout migrate
brew update
brew doctor


Keeps login error

Expected Behavior
Login Error, server busy
Actual Behavior
Login Error, server busy
Steps to Reproduce
I'd like to run it on my servers on digitalocean, but it failed on logging in.
Did niantic bans all cloud providers' ip?
Other Information
OS:
Git Commit: 78c5f2bc8c5aeafb902309583cfab621179bed4e
Python Version: 2.7.*

I updated the whole project and still got the same problem

All known cloud services are banned from niantic.

OK FOR ME I DEACTIVATED AUTH IN TWO STEPS of google and working


npm install fails on react 17.0.2

npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving<EMAIL_ADDRESS>npm ERR! Found<EMAIL_ADDRESS>npm ERR! node_modules/react
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR! node_modules/@jitsi/web-sdk
npm ERR!   @jitsi/web-sdk@"*" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
...

I think the react peerDependency needs to be updated.

Thanks for the report! @mihhu Any reason why we don't support react 17?

It seems to work with react 17. I could install the package by adding --legacy-peer-deps option as it says in the error message.

@THasthika, thank you for letting us know! I've opened a PR to cover react 17 as well, without you having to use that option.

@mihhu thanks!

@THasthika, could you please update the sdk to 0.2.0 and try again?

tested using 0.2.0. It's working now.


ESP32-S3 Assert failed: tlsf_free tlsf.c:1119 (!block_is_free(block) && "block already marked as free") (IDFGH-10695)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
v5.1
Operating System used.
Windows
How did you build your project?
VS Code IDE
If you are using Windows, please specify command line type.
CMD
Development Kit.
ESP32-S3-DevKitC-1 (ESP32-S3-WROOM-1 N8R8)
Power Supply used.
USB
What is the expected behavior?
I have an application which runs an edge-impulse model on an ESP32-S2 (IDF-version v5.0-rc1). I expect that this would also work on an ESP32-S3-WROOM-1 N8R8.
What is the actual behavior?
The same application, on the same idf-version v5.0-rc1, crashes on remove_free_block (esp-idf/components/heap/tlsf/tlsf.c:337) - which is called from ei_free(void *ptr) in run_classifier().
The error when I tried it with v5.0-rc1: Guru Meditation Error: Core  0 panic'ed (StoreProhibited). Exception was unhandled.
In an attempt to fix this, I tried the same application but with esp-idf v5.1.
This resulted in following error: assert failed: tlsf_free tlsf.c:1119 (!block_is_free(block) && "block already marked as free")
Steps to reproduce.
Not yet
Debug Logs.
assert failed: tlsf_free tlsf.c:1119 (!block_is_free(block) && "block already marked as free")

Backtrace: 0x40375e2a:0x3fccf620 0x40380cbd:0x3fccf640 0x403889fd:0x3fccf660 0x40386f22:0x3fccf780 0x40386dcc:0x3fccf7a0 0x40376932:0x3fccf7c0 0x40388a2d:0x3fccf7e0 0x420107ad:0x3fccf800 0x42010bb2:0x3fccf820 0x4200e7c7:0x3fccf840 0x4200ef3f:0x3fccf880 0x4200f015:0x3fccf920 0x403837d9:0x3fccf9e0
0x40375e2a: panic_abort at C:/Users/benna/esp/esp-idf-v5.1/esp-idf/components/esp_system/panic.c:452

0x40380cbd: esp_system_abort at C:/Users/benna/esp/esp-idf-v5.1/esp-idf/components/esp_system/port/esp_system_chip.c:84

0x403889fd: __assert_func at C:/Users/benna/esp/esp-idf-v5.1/esp-idf/components/newlib/assert.c:81

0x40386f22: tlsf_free at C:/Users/benna/esp/esp-idf-v5.1/esp-idf/components/heap/tlsf/tlsf.c:1119 (discriminator 1)

0x40386dcc: multi_heap_free_impl at C:/Users/benna/esp/esp-idf-v5.1/esp-idf/components/heap/multi_heap.c:231

0x40376932: heap_caps_free at C:/Users/benna/esp/esp-idf-v5.1/esp-idf/components/heap/heap_caps.c:388

0x40388a2d: free at C:/Users/benna/esp/esp-idf-v5.1/esp-idf/components/newlib/heap.c:39

0x420107ad: ei_free(void*) at C:/Projects/shower_monitor/edge-impulse-sdk/porting/espressif/ei_classifier_porting.cpp:85

0x42010bb2: trained_model_reset(void (*)(void*)) at C:/Projects/shower_monitor/tflite-model/trained_model_compiled.cpp:562 (discriminator 3)

0x4200e7c7: run_nn_inference(ei_impulse const*, ei::ei_matrix*, ei_impulse_result_t*, void*, bool) at C:/Projects/shower_monitor/edge-impulse-sdk/classifier/inferencing_engines/tflite_eon.h:111
 (inlined by) run_nn_inference(ei_impulse const*, ei::ei_matrix*, ei_impulse_result_t*, void*, bool) at C:/Projects/shower_monitor/edge-impulse-sdk/classifier/inferencing_engines/tflite_eon.h:228

0x4200ef3f: process_impulse at c:\projects\shower_monitor\edge-impulse-sdk\classifier/ei_run_classifier.h:117
 (inlined by) process_impulse at c:\projects\shower_monitor\edge-impulse-sdk\classifier/ei_run_classifier.h:211
 (inlined by) process_impulse at c:\projects\shower_monitor\edge-impulse-sdk\classifier/ei_run_classifier.h:140

0x4200f015: vInferencingTask(void*) at c:\projects\shower_monitor\edge-impulse-sdk\classifier/ei_run_classifier.h:564 (discriminator 13)
 (inlined by) vInferencingTask at C:/Projects/shower_monitor/main/services/analyser.cpp:232 (discriminator 13)

0x403837d9: vPortTaskWrapper at C:/Users/benna/esp/esp-idf-v5.1/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:162

More Information.

I tried this both with the original idf-version of the application (v5.0-rc1) as with the latest stable version (v5.1).
The application also uses WiFi, tried to remove this from the application but same situation
It might be an error with the edge impulse sdk, but I don't see where this is different from the ESP32-S2 implementation.

Any ideas are welcome! I am hoping I am overlooking a very obvious difference between ESP32-S2 and ESP32-S3...

i ran into such a problem when stackoverflow or heap corruption occurs. try turn on stackoverflow detection and heap corruption detection in the menuconfig

Thank you for the tip @wuyuanyi135.
I see now that there is a heap corruption... I'm trying to hunt the issue now, but no experience with this yet, so tips are very welcome :)
I've also tried to increase the stack size for the task (and did a hail Mary), but no success.
&I'm still baffled that this issue occurs with the ESP32-S3, but not with the ESP32-S2...
CORRUPT HEAP: Bad tail at 0x3fcc59ff. Expected 0xbaad5678 got 0x51ff66ff

assert failed: multi_heap_free multi_heap_poisoning.c:276 (head != NULL)

Backtrace: 0x40375e4e:0x3fcd0570 0x40380ce1:0x3fcd0590 0x40388bdd:0x3fcd05b0 0x40386f11:0x3fcd06d0 0x40376956:0x3fcd06f0 0x40388c0d:0x3fcd0710 0x420107ad:0x3fcd0730 0x42010bb2:0x3fcd0750 0x4200e7c7:0x3fcd0770 0x4200ef3f:0x3fcd07b0 0x4200f015:0x3fcd0850 0x403837fd:0x3fcd0910
0x40375e4e: panic_abort at C:/Users/benna/esp/esp-idf-v5.1/esp-idf/components/esp_system/panic.c:452

0x40380ce1: esp_system_abort at C:/Users/benna/esp/esp-idf-v5.1/esp-idf/components/esp_system/port/esp_system_chip.c:84

0x40388bdd: __assert_func at C:/Users/benna/esp/esp-idf-v5.1/esp-idf/components/newlib/assert.c:81

0x40386f11: multi_heap_free at C:/Users/benna/esp/esp-idf-v5.1/esp-idf/components/heap/multi_heap_poisoning.c:276 (discriminator 1)

0x40376956: heap_caps_free at C:/Users/benna/esp/esp-idf-v5.1/esp-idf/components/heap/heap_caps.c:388

0x40388c0d: free at C:/Users/benna/esp/esp-idf-v5.1/esp-idf/components/newlib/heap.c:39

0x420107ad: ei_free(void*) at C:/Projects/shower_monitor/edge-impulse-sdk/porting/espressif/ei_classifier_porting.cpp:85

0x42010bb2: trained_model_reset(void (*)(void*)) at C:/Projects/shower_monitor/tflite-model/trained_model_compiled.cpp:562 (discriminator 3)

0x4200e7c7: run_nn_inference(ei_impulse const*, ei::ei_matrix*, ei_impulse_result_t*, void*, bool) at C:/Projects/shower_monitor/edge-impulse-sdk/classifier/inferencing_engines/tflite_eon.h:111
 (inlined by) run_nn_inference(ei_impulse const*, ei::ei_matrix*, ei_impulse_result_t*, void*, bool) at C:/Projects/shower_monitor/edge-impulse-sdk/classifier/inferencing_engines/tflite_eon.h:228

0x4200ef3f: process_impulse at c:\projects\shower_monitor\edge-impulse-sdk\classifier/ei_run_classifier.h:117
 (inlined by) process_impulse at c:\projects\shower_monitor\edge-impulse-sdk\classifier/ei_run_classifier.h:211
 (inlined by) process_impulse at c:\projects\shower_monitor\edge-impulse-sdk\classifier/ei_run_classifier.h:140

0x4200f015: vInferencingTask(void*) at c:\projects\shower_monitor\edge-impulse-sdk\classifier/ei_run_classifier.h:564 (discriminator 13)
 (inlined by) vInferencingTask at C:/Projects/shower_monitor/main/services/analyser.cpp:232 (discriminator 13)

0x403837fd: vPortTaskWrapper at C:/Users/benna/esp/esp-idf-v5.1/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:162

No solution yet.
The heap and stack looks OK:
I (5263) analyser: Trying to take mutex for InferencingTask...
I (5683) analyser: Running classifier...
I (5683) analyser: heap integrety 1
I (5683) analyser: FreeHeapSize: 159276
I (5693) analyser: Bytes free in stack: 5580
I (6043) analyser: Inference results off/on: 1.00/0.00
I (6043) analyser: Entering InferencingTask FOR-loop...
I (6043) analyser: Trying to take mutex for InferencingTask...
I (6053) analyser: Running classifier...
I (6053) analyser: heap integrety 1
I (6063) analyser: FreeHeapSize: 159012
I (6063) analyser: Bytes free in stack: 5372
CORRUPT HEAP: Bad head at 0x3fcd1954. Expected 0xabba1234 got 0x0018fff3

assert failed: multi_heap_free multi_heap_poisoning.c:276 (head != NULL)

I've changed the creation of the FreeRTOS tasks from:
xReturned = xTaskCreate(
					vInferencingTask, /* Function that implements the task. */
					"vInferencingTask", /* Text name for the task. */
					EI_TASK_STACK_SIZE, /* Stack size in words, not bytes. */
					( void * ) 1, /* Parameter passed into the task. */
					EI_TASK_PRIORITY, /* Priority at which the task is created, default tskIDLE_PRIORITY. */
					&xHandleInference ); /* Used to pass out the created task's handle. */

to
xReturned = xTaskCreatePinnedToCore(
					vInferencingTask, /* Function that implements the task. */
					"vInferencingTask", /* Text name for the task. */
					EI_TASK_STACK_SIZE, /* Stack size in words, not bytes. */
					( void * ) 1, /* Parameter passed into the task. */
					EI_TASK_PRIORITY, /* Priority at which the task is created, default tskIDLE_PRIORITY. */
					&xHandleInference, /* Used to pass out the created task's handle. */
                    EI_TASK_CORE_ID );

But the same result...
Could it have something to do with the dual core of the ESP32-S3 instead of the single core of the ESP32-S2?

It is possible that you have concurrent access to some shared resource without proper locking. If possible, try not to use threading and run everything in series. If the problem is gone, check the racing conditions. For memory access violation it might be a bit harder to locate. But generally if the crash is easily reproducible you can always bisect the faulty code.

0x42010bb2: trained_model_reset(void (*)(void*)) at C:/Projects/shower_monitor/tflite-model/trained_model_compiled.cpp:562 (discriminator 3)
0x4200e7c7: run_nn_inference(ei_impulse const*, ei::ei_matrix*, ei_impulse_result_t*, void*, bool) at C:/Projects/shower_monitor/edge-impulse-sdk/classifier/inferencing_engines/tflite_eon.h:111
 (inlined by) run_nn_inference(ei_impulse const*, ei::ei_matrix*, ei_impulse_result_t*, void*, bool) at C:/Projects/shower_monitor/edge-impulse-sdk/classifier/inferencing_engines/tflite_eon.h:228

Go to the corresponding line, see what resource is being released. If that is something you recognize, see if it might be released somewhere else. Or if this is the generated code or library code, you may consult the documentation if the it is thread-safe (tensorflow?). If not, make sure not to use it in multiple thread without proper mutex. If you want to use multithreading for data loading, use producer-consumer pattern. If you want to make use of both CPU, check if they have option to enable to prevent race condition. Thats all general tips I could provide.

Thanks again for the insights @wuyuanyi135.
The issue is indeed something thread related. I use 2 FreeRTOS tasks, one for loading and one for consuming data:

A quick combine of those two tasks in one task (so loading and consuming in series, but still in a task), gives the same issue.
Just calling that same function (which does the data loading and consuming in series) in the main thread without a task works just fine.

So I'm messing something up. I'm already using a mutex, but I will have to quadruple check everything.
My mind still has a hard time wrapping around why it works on the ESP32-S2 single core though, I would assume that it would also have thrown this error.
Anyway, many thanks for the advise!

esp32-s2 is a single core device so yes it might be attributed to the multi-core nature of s3.

A quick combine of those two tasks in one task (so loading and consuming in series, but still in a task), gives the same issue.

Can you try to give sufficiently large stack (like 8192) and pin the created thread to a core as well?

I've tried to pin the task to core 0 (and later also to core 1, just to be sure), but no success.
The stack size is also sufficiently large (4096*3).
I do see some interesting behaviour: I've included some printf statements before the function call which throws the heap corruption (in the external library):
ei_printf("Heap integrety %i\n", heap_caps_check_integrity_all(true));               // Added
ei_printf("FreeHeapSize: %zu\n", xPortGetFreeHeapSize());                                // Added
ei_printf("Bytes free in stack: %zu\n", uxTaskGetStackHighWaterMark(NULL));  // Added
vTaskDelay(10);                // Added
config->model_reset(ei_aligned_free); // Heap corruption happens here

When the heap corruption occurs I get following printout:
Heap integrety 1
FreeHeapSize: 142416
Bytes free in stack: 9628
CORRUPT HEAP: Bad head at 0x3fcd3c80. Expected 0xabba1234 got 0xfffeffab

But with these extra lines, the program actually works better. Once the first call of config->model_reset is successful (which usually takes a couple of crashes), the program keeps working, no more crashing. Even when the device goes to deepsleep and wakes up.
After realising this, I removed the print lines and only kept the delay:
vTaskDelay(10);                // Added
config->model_reset(ei_aligned_free); // Heap corruption happens here

This resulted in a different behaviour, being that it also takes a couple of crashes to work, but on wakeup from deepsleep it crashes again... Increasing the delay to vTaskDelay(100), results in the same behaviour...
Ideas? :)

If timing causes random crash it is almost for sure that there is racing condition. I did not used the library so I could not tell. What if you do not reset the model? I guess you could just leave it for future reuse?

After a lot of pain, I've found the issue.
I've changed
if(NOT CMAKE_BUILD_EARLY_EXPANSION)
add_definitions(-DEI_CLASSIFIER_TFLITE_ENABLE_ESP_NN=1) # enables ESP-NN optimizations by Espressif
endif()

to
if(NOT CMAKE_BUILD_EARLY_EXPANSION)
add_definitions(-DEI_CLASSIFIER_TFLITE_ENABLE_ESP_NN=0)
endif()

Not completely sure why, because EESP32-S3 is supported by ESP_NN. But at the moment I'm just glad I got it working again...
Thank you for your help @wuyuanyi135 .

good to know that. you may also want to raise the issue to tf developers. they might have some fix and may need to emphasize this in the doc.

After a lot of pain, I've found the issue. I've changed
if(NOT CMAKE_BUILD_EARLY_EXPANSION)
add_definitions(-DEI_CLASSIFIER_TFLITE_ENABLE_ESP_NN=1) # enables ESP-NN optimizations by Espressif
endif()

to
if(NOT CMAKE_BUILD_EARLY_EXPANSION)
add_definitions(-DEI_CLASSIFIER_TFLITE_ENABLE_ESP_NN=0)
endif()

Not completely sure why, because EESP32-S3 is supported by ESP_NN. But at the moment I'm just glad I got it working again... Thank you for your help @wuyuanyi135 .
Where can I find out this // enables ESP-NN optimizations by Espressif
is it configured from idf.py menuconfig ?


Fix incorrectly displayed K8s minor versions for release-1.21 branch

This PR is a backport of the PR #34189.
Closes #31551.

/hold
(See #34349)

/lgtm

👋 @jihoon-seo .
Did the versioning shortcodes change?

Hello @kbhawkey.
It seems that the versioning shortcodes themselves did not change.
What I want to fix in this PR is as per the issue #31551:
if you visit https://v1-21.docs.kubernetes.io/docs/tasks/administer-cluster/cluster-upgrade/ ,
the header says that "You are viewing documentation for Kubernetes version: v1.21".
But in "Before you begin" section, the page says that "This page is about upgrading from Kubernetes 1.23 to Kubernetes 1.24.",
which seems wrong and should be changed to "This page is about upgrading from Kubernetes 1.20 to Kubernetes 1.21."
This PR resolves this by replacing shortcodes with appropriate ones.

Hello @kbhawkey. It seems that the versioning shortcodes themselves did not change.
What I want to fix in this PR is as per the issue #31551:
if you visit https://v1-21.docs.kubernetes.io/docs/tasks/administer-cluster/cluster-upgrade/ , the header says that "You are viewing documentation for Kubernetes version: v1.21".
But in "Before you begin" section, the page says that "This page is about upgrading from Kubernetes 1.23 to Kubernetes 1.24.", which seems wrong and should be changed to "This page is about upgrading from Kubernetes 1.20 to Kubernetes 1.21."
This PR resolves this by replacing shortcodes with appropriate ones.

Hi @jihoon-seo. I wonder if the config.toml file is out of sync on the 1.21 release branch? I thought we created and used the correct shortcodes, but perhaps several were not correctly placed.
Would you check the config.toml file on the 1.21-release branch? I quickly looked at the initial version information (there is more),
latest = "v1.24"

fullversion = "v1.21.12"
version = "v1.21"
githubbranch = "release-1.21"
docsbranch = "release-1.21"

A preview page,
https://deploy-preview-34346--k8s-v1-21.netlify.app/docs/concepts/services-networking/network-policies/#what-you-can-t-do-with-network-policies-at-least-not-yet

@kbhawkey

perhaps several were not correctly placed.

Yes, I think so too.

Would you check the config.toml file on the 1.21-release branch?

As you already checked,
in release-1.21/config.toml:
https://github.com/kubernetes/website/blob/40e3e07733887f0e01bba2172f8a0c8bef27ad86/config.toml#L141-L146
This (latest = "v1.24") seems fine, because it is required that we mention v1.24 in some pages of v1.21 website, e.g.:

https://v1-21.docs.kubernetes.io/releases/#:~:text=The Kubernetes project maintains release branches for the most recent three minor releases (1.24%2C 1.23%2C 1.22).
https://v1-21.docs.kubernetes.io/releases/version-skew-policy/#:~:text=The Kubernetes project maintains release branches for the most recent three minor releases (1.24%2C 1.23%2C 1.22).

(And yes, there is more:
https://github.com/kubernetes/website/blob/40e3e07733887f0e01bba2172f8a0c8bef27ad86/config.toml#L180-L213
but it seems that this part is only relevant with the version selector in top navbar of the website:)

/approve


multihead attention version with loop by batch  dimension to reduce memory usage

input param  batch_step controls loop batch size (issue #7)

@justheuristic, pls look, updated review

[will merge today, sorry for the delay]


Nil payload

Output an empty body when there is payloadPath but the payloadBody is nil
Found another small issue, we were outputting the full body when a payloadPath pointed to an optional variable and that variable was nil.

this probably needs to be rebased after the encoder addition?

done

seems I missed the DictionaryDecoder changes, merged now


Add the possibiliy to use username if src is false or null

It could be nice if you can add the feature like if src is null or false, show the username by default. Typical case when someone didn't upload an avatar yet, the src still null so we should use his username (today, we have "width: 64px; height: 64px; background: url("null") no-repeat;" and I don't want to use double "v-if" with double "<avatar>"

This is the default expected behaviour. Can you replicate your problem in a sandbox please?

Closed due inactivity

I currently have this same issue:
<avatar username="{{ Auth::user()->first_name }} {{ Auth::user()->last_name }}" class="dealer-header-avatar" :size="30"	src=" {{ Auth::user()->avatar }} ">
this should show the username since the avatar is NULL in the database but it just shows a blank photo with:
    background: url( ) 0% 0% / 30px 30px no-repeat scroll content-box border-box transparent; }

is working for me

@saintplay ya, its working for me now too. Not sure why it wasnt before


Readme requested

You should add a readme explaining what this repo is about.
As the composer metadata use the metapackage type, this won't impact users as the source will never be downloaded. But it will help people looking at the repo

Here, some ressources to setup api platform:

The github project with an example
The official documentation

I don't think, we can add readme to this repository. This repository is used by flex to setup the projects.


--upgrade-packages ignores packages which are absent from the input file

The documentation states that the --upgrade and --upgrade-packages can be used together, however the --upgrade-packages flag is ignored when --upgrade is supplied.
Environment Versions

OS Type: macOS and Ubuntu 18.04
Python version: python 3.9.0
pip version: pip 21.3.1
pip-tools version: pip-compile 6.4.0

Steps to replicate
Using different args to the documentation, as requests is not in the django requirements, and requests<=3.0.0 does not affect the "latest" release.
# Create requirements.in file
echo "django" > requirements.in
# Run pip-compile
pip-compile --upgrade --upgrade-package 'sqlparse<=0.4.0'

Expected result
asgiref==3.4.1
    # via django
django==4.0.1
    # via -r requirements.in
sqlparse==0.4.0
    # via django

Actual result
asgiref==3.4.1
    # via django
django==4.0.1
    # via -r requirements.in
sqlparse==0.4.2
    # via django

sqlparse is not restricted to <=0.4.0. If I omit the --upgrade flag, only supplying --upgrade-packages 'sqlparse<=0.4.0', I get the expected result (but my other packages are not upgraded to later versions). This also doesn't work if the argument is sqlparse==0.4.0.
My current workaround is just to delete the requirements file(s) before running pip-compile, and omitting the --upgrade flag so the existing files aren't used as a cache. I suspect either the --upgrade-packages constraint logic is inside the if not upgrade... conditional, or that --upgrade-packages only extend, not constrain the complete set of packages.
This feature should be permitted, or the documentation changed to avoid stating that this is possible

After some more investigation, this issue occurs without the --upgrade flag if there is no existing output file. It only "works" if --upgrade is not given and the output file is present (therefore the pip-compile conditional branch occurs,

Looks like this behavior was changed in https://github.com/jazzband/pip-tools/pull/1031. There's relevant discussion in that PR, but I can't tell whether this exact case was intentionally changed. @AndydeCleyre might be able to share more.

I did not realize they were intended to potentially be used together, as I didn't see sense in the sentiment "keep/install an old version of package x AND upgrade all packages to their latest" -- I figured the upgrade-all bit would trump the other bit. I was wrong.
I'll try to review this whole thing.

Until then, does it help to put your restricted versions into the input file?

That makes sense. The requirements.in file approach would probably work, yeah. This night just be a documentation issue then, if it's not the intended behaviour, because the docs have an example showing the use together.
I can see why the sentiment of upgrading all and pinning a specific package would seem strange. In my specific case, I'm actually trying to force the requirements file to contain a specific, CPU-only flavour of PyTorch with torch==1.10.0+cpu, but upgrade all the other "standard" packages. At the moment, I end up with torch==1.10.0 in my requirements.txt. So it's a bit of a non-standard use-case

OK, reviewing the discussion at #759, I think a key note is right at the start. @atugushev opened with:

Pip-compile should raise an error while trying to upgrade a package which doesn't exist in a requirements.in.

Through the discussion, the "penalty" was softened and we did not end up raising any errors in this case.
But the expectation there illuminated is that packages passed to --upgrade-package are either present in the input file, or considered irrelevant. In other words, any package for which you want to control the version should be in the input file. That's my understanding, anyway.
With that in mind:
requirements.in:
django
sqlparse  # for django

$ pip-compile --upgrade-package 'sqlparse<=0.4.0'
asgiref==3.5.0
    # via django
django==4.0.2
    # via -r requirements.in
sqlparse==0.4.0
    # via
    #   -r requirements.in
    #   django
$ pip-compile --upgrade --upgrade-package 'sqlparse<=0.4.0'
asgiref==3.5.0
    # via django
django==4.0.2
    # via -r requirements.in
sqlparse==0.4.0
    # via
    #   -r requirements.in
    #   django
$ rm requirements.txt
$ pip-compile --upgrade --upgrade-package 'sqlparse<=0.4.0'
asgiref==3.5.0
    # via django
django==4.0.2
    # via -r requirements.in
sqlparse==0.4.0
    # via
    #   -r requirements.in
    #   django

So

is that a reasonable and good expectation?
if so

does it address the issues here?
we probably should make that clearer in the docs

Pip-compile should raise an error while trying to upgrade a package which doesn't exist in a requirements.in.

is that a reasonable and good expectation?

For what it's worth, I relied on the behavior requested here (upgrading specific packages not declared in reqs.in) for a while and didn't realize it was no longer available! Certainly a question is whether the complexity is worthwhile, but I found it really valuable to be able to easily upgrade a specific sub-dependency that had recently had a security fix release. pip-compile ensured I still had a set of compatible packages without forcing me to upgrade everything.
Of course, that use case can be worked around by temporarily adding the sub-dependency to reqs.in and then removing it, but it would be nice to have that automated. I didn't want the particular package in reqs.in permanently - if the relevant direct dependency no longer needed it, I would want it to disappear from the output.

I'm not saying things should be one way or another here, but want to mention a relevant alternative:
security.txt:
sqlparse<=0.4.0  # See https://...

requirements.in:
django
-c security.txt

Yep, definitely an option as well!

Oh right yes: because of the simple case of upgrading to the max. Never mind.

I made #1578 to trial different handling of --upgrade-packages. I constructed a temporary file from upgrade_pages and parsed that in -c constraints.txt style, in addition to our existing handling of upgrade_packages.
The result is good. If it's simple enough to do without creating a temp file, I'm interested in that.
It also presents the possibility of including the --upgrade-packages switch as a source in the annotations.

is that a reasonable and good expectation?

we probably should make that clearer in the docs

I was going to say that this is definitely a reasonable solution, given your previous discussion about the issue -- happy to use requirements.in to define any constraints. But what you've done in #1578 looks like a great solution to the problem, merging CLI upgrade-packages with any existing constraints. If you're happy with the additional logic required, then this would absolutely solve my issue.
Thanks very much for investigating this!

I've added some tests to validate your changes, and opened a PR into your fork. Looks like your changes solve the problem, from the test output

Yeah while I prefer to put these kinds of needs into files rather than use -P, I can't think of a good reason not to treat these like -c constrainst.txt entries in addition to what we're doing.
The behavior would be more predictable and I now think more correct. #1578 is up for review.

Great, thanks for this! I agree, I think this becomes much more predictable.
So does this new behaviour account for the case where there is no requirements.in file, but requirements come from a setup.[py|cfg] file instead? Seems like it should from your changes, just clarifying I understand what the changes are permitting.

@jammie19 If I understand the question, then yes.
Here's behavior on master, using the pip-tools repo itself as the setup.py package to test:
$ pip-compile setup.py -U 2>&1 | grep tomli
tomli==2.0.1
$ pip-compile setup.py -U -P 'tomli<2.0.1' 2>&1 | grep tomli
tomli==2.0.1

And here's the result with #1578:
$ pip-compile setup.py -U 2>&1 | grep tomli
tomli==2.0.1
$ pip-compile setup.py -U -P 'tomli<2.0.1' 2>&1 | grep tomli
tomli==2.0.0

Thanks for clarifying, that looks great! Thanks

The final point here, constraining azure-core and the expectation to find the highest version of all dependencies with the -U flag combined with the -P "azure-core~=1.22.0" is the issue highlighted in this thread. #1578 should fix this behaviour, though.
The main issue you're facing, the inability to resolve typing-extensions is due to the new pip resolver. It should be fixed by #1539, from what I understand of that PR.

@jammie19 - thank you very much for clarifying for me! I'm so grateful for everyone's time and expertise!


:seedling: improved make watch

What this PR does / why we need it:
this PR improves make watch:

show IP of first control-plane, show if wl-cluster is reachable.

@guettli needs squash


Multiple Replicas can't run on single node in AKS

Describe the bug
When trying to run more than one replica of actions runner controllers on single-node AKS deployed using helm only one replica is stable and other gets into a CrashLoopBackOff state
Docker enabled runner detected and Docker daemon wait is enabled
Waiting until Docker is avaliable or the timeout is reached
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
Github endpoint URL https://github.com/
Passing --ephemeral to config.sh to enable the ephemeral runner.
 To reconfigure the runner, run 'config.cmd remove' or './config.sh remove' first.
Runner successfully configured.
{
  "agentId": 184,
  "agentName": "example-runner-deployment-bnb87-mdfb4",
  "poolId": 1,
  "poolName": "Default",
  "ephemeral": true,
  "serverUrl": "https://pipelines.actions.githubusercontent.com/mjfAN8ME65NFTcFeofnbmuY5OON2pzYs4S3UDeC3R8SA0SIzHH",
  "gitHubUrl": "https://github.com/REDACTED",
  "workFolder": "/runner/_work"
mv: cannot move './externalstmp/node12' to './externals/node12': Directory not empty
mv: cannot move './externalstmp/node12_alpine' to './externals/node12_alpine': Directory not empty
mv: cannot move './externalstmp/node16' to './externals/node16': Directory not empty
mv: cannot move './externalstmp/node16_alpine' to './externals/node16_alpine': Directory not empty
}
√ Connected to GitHub

Failed to create a session. The runner registration has been deleted from the server, please re-configure.

deployment.yaml
apiVersion: actions.summerwind.dev/v1alpha1
kind: RunnerDeployment
metadata:
  name: <org-name>-runner-deployment
spec:
  replicas: 2
  template:
    spec:
      organization: <org-name>

I believe this might be similar to https://github.com/actions-runner-controller/actions-runner-controller/issues/1065 where externalstmp uses mv instead of cp -r
Checks

[ x] My actions-runner-controller version (v0.22.1) does support the feature
[ ] I'm using an unreleased version of the controller I built from HEAD of the default branch

To Reproduce
Steps to reproduce the behavior:

Deploy helm chart with auth secret for organization app.
Try to deploy a basic runnerdeployment with 2 replicas on a one node AKS cluster.
Observe one replica fail since the other has already moved files where the second replica is trying to.

Expected behavior
A clear and concise description of what you expected to happen.
Be able to run two replicas on a single kube node.
Environment (please complete the following information):

Controller Version [v0.22.1]
Deployment Method [Helm]
Helm Chart Version [0.17.1]

Additional context
Add any other context about the problem here.

I'm seeing (a variant) of this issue. With the difference that we have a two-node AWS EKS cluster.
I've never seen it before, but it started happening while experimenting with a webhook-base HRA.

@d-wierdsma Could you share logs related to example-runner-deployment, by perhaps running kubectl logs on ARC's controller-manager and piping it to grep example-runner-deployment?
Also, kubectl get po -o yaml on the runner pods trapped into CrashLoopBackOff would be helpful.
This should happen only when your runner pod had somehow restarted and hence config.sh was rerun with the same RUNNER_NAME. mv: cannot move './externalstmp/node12 seems like red herring, but might not be the cause of this exact issue.

Hey @mumoshu it looks like it's just started working now... Sorry for the unnecessary ticket, I'll report back here with the logs if this issue comes up again


feature: Evaluate FUNC12 Bi Directional Dijkstra

Feature description
CNN: 20 bidirectional_dij<EMAIL_ADDRESS>

We will not use this one.


Set necessary bits for AHB Bus access

To read the ROM table on a STM32F4 (with AHB Bus), it is necessary to set some bits in the CSW register in the Memory AP. The PROT / CACHE bits have to be set correctly. They are defined in the ARM Debug Interface Architecture Specification, Appendix E.
So far this pull reuests sets the correct bits so that reading the ROM table works on both the micro:bit, as well as now also on the STM32F412G-DISCO board.
Open Todos:

[ ] Set these bits in all memory accesses in the adi_v5_memory_interface module
[ ] Set the bits only if the memory AP is actually connected to an AHB bus.

This also fixes the ROMtable access on Cortex-M0+ (STM32G031).


Module published on Registry doesn't have latest fixes

The version of this module published on the Terraform Registry: https://registry.terraform.io/modules/GoogleCloudPlatform/cloud-workflows/google/latest doesn't work for scheduled triggers because it outdated.
Also, the examples given in the readme https://github.com/GoogleCloudPlatform/terraform-google-cloud-workflows/blob/7b9b07b51bf77352b94bec80231c8cead7f89c6f/README.md?plain=1#L16 are incorrect because this Module is in the GoogleCloudPlatform org not the terraform-google-modules one

I think there just hasn't been a new release created yet from the main branch. The current release 0.1.0 has fatal bugs in the locals that cause the module to break. Looks like they've been fixed in main branch, but no patch release created yet.
For example:
Release 0.1.0:
https://github.com/GoogleCloudPlatform/terraform-google-cloud-workflows/blob/2fcb08fe79bcda517b3b3b37f2d19cd7c23d4984/main.tf#L34
main:
https://github.com/GoogleCloudPlatform/terraform-google-cloud-workflows/blob/fc4da117fad8a466438ff350ce97eef6dcf5dd65/main.tf#L34

When is a new release expected?


Replace deprecated command with environment file

Description
Resolve  #1172
Update .github/workflows/helm.yaml to use environment file instead of deprecated set-output command.
For more information, see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
I found the workflow files that use set-output command through the following command:
$ find . -name '*.yml' -o -name '*.yaml' | xargs egrep '\bset-output\b'

AS-IS
echo "::set-output name=changed::true"

TO-BE
echo "changed=true" >> $GITHUB_OUTPUT

/ok-to-test

/lgtm
Thank you @jongwooo 🏆


brew bundle cleanup wants to clean up dependencies of formulae from custom taps

If vitorgalvao/tiny-scripts/cask-repair is in your Brewfile, hr will be installed because it is a dependency. However, if you then brew bundle cleanup --force, hr will be uninstalled.
This is because Bundle::Commands::Cleanup#formulae_to_install constructs kept_formulae and current_formulae differently. kept_formulae[i][:name] is the formula's full_name, but current_formulae[i][:name] is the "short" name. When the two names are compared in #recursive_dependencies's current_formulae.find { |f| f[:name] == name }, the names do not match and the dependency is not found.

Nice spot. Would you mind submitting a pull request for the fix?


[Bug]: not all brackets are colorized in java

Neovim version
v0.10.0-dev-2034+g6635ec113f
Language affected
java
Query
No response
Strategy
No response
Description
I wasn't able to find any information about this hence i ask.
Any reason why `if_statement` and `for_statement` are not included inside the java query? Or maybe it's just expected behavior?

my config

local M = {
    "HiPhish/rainbow-delimiters.nvim",
    event = "BufEnter",
    enabled = true,
}

M.config = function()
    local rainbow = require("rainbow-delimiters")

    vim.cmd("highlight RainbowDelimiterRed guifg=#ffd700")
    vim.cmd("highlight RainbowDelimiterYellow guifg=#da70d6")
    vim.cmd("highlight RainbowDelimiterBlue guifg=#179fff")

    vim.g.rainbow_delimiters = {
        strategy = {
            [""] = rainbow.strategy["global"],
            vim = rainbow.strategy["local"],
        },
        query = {
            [""] = "rainbow-delimiters",
            lua = "rainbow-blocks",
        },
        highlight = {
            "RainbowDelimiterRed",
            "RainbowDelimiterYellow",
            "RainbowDelimiterBlue",
        },
    }
end

return M

https://github.com/HiPhish/rainbow-delimiters.nvim/assets/69250723/cb128abc-06ee-47a2-8866-5e80d12ff2fb

Thanks for the PR. To answer your question, there is no real reason why these patterns were missing. In the beginning I was more conservative as to what constitutes a "delimiter", and none of the patterns you have added can be nested directly in themselves, so I omitted them initially. In hindsight this does not really make sense, but I haven't used Java for quite a while, so it never bothered me personally.


fix(passwordless_login): login with ssh key only

for security reason login with password is disabled for user created
during device onboarding
user created will able to login only using ssh key passed via
service info config.
Signed-off: Sayan Paul<EMAIL_ADDRESS>

@say-paul apparently this breaks the e2e test, can you take a look?


dotnet ef database update fails unable to load Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionExtensions

This is possibly related to #48 & npgsql/npgsql#1171 however after updating npgsql to 3.1.5 I am still seeing the following:
System.TypeLoadException: Could not load type 'Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionExtensions' from assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60'.
   at Microsoft.Extensions.DependencyInjection.NpgsqlEntityFrameworkServicesBuilderExtensions.AddEntityFrameworkNpgsql(IServiceCollection services)
   at Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.<>c__DisplayClass4_0.<GetOrAdd>b__1(Int64 k)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at Microsoft.EntityFrameworkCore.DbContext..ctor(DbContextOptions options)
   at Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityDbContext`1..ctor(DbContextOptions options)
   at forceweb.Data.ApplicationDbContext..ctor(DbContextOptions`1 options) in /Users/adam/git/forceweb/Data/ApplicationDbContext.cs:line 14
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ConstructorCallSite.Invoke(ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.ScopedCallSite.Invoke(ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
   at Microsoft.EntityFrameworkCore.Design.DbContextOperations.<>c__DisplayClass13_2.<FindContextTypes>b__6()
   at Microsoft.EntityFrameworkCore.Design.DbContextOperations.CreateContext(Func`1 factory)
   at Microsoft.EntityFrameworkCore.Design.DbContextOperations.CreateContext(String contextType)
   at Microsoft.EntityFrameworkCore.Design.MigrationsOperations.UpdateDatabase(String targetMigration, String contextType)
   at Microsoft.EntityFrameworkCore.Tools.Cli.DatabaseUpdateCommand.<>c__DisplayClass0_0.<Configure>b__0()
   at Microsoft.Extensions.CommandLineUtils.CommandLineApplication.Execute(String[] args)
   at Microsoft.EntityFrameworkCore.Tools.Cli.Program.Main(String[] args)
Could not load type 'Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionExtensions' from assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60'.

perhaps waiting on a version bump to Npgsql.EntityFrameworkCore.PostgreSQL?

#54

@akuseru this error occurs because the class ServiceCollectionExtensions was renamed in Dependency.Injection RTM Version.
Then wait for update version of Npgsql.EntityFrameworkCore.PostgreSQL for RTM Version

Thanks 👍

Can you confirm whether you're still seeing this using Npgsql.EntityFrameworkCore.PostgreSQL 1.0.0 (just released) and Npgsql 3.1.5?

wahoo!

so far so good. My app is running, building a db, populating it and I can interact.
Thanks for doing that so quickly! :)

no issues here either. Thank you!

Thanks for the fast hard work roji.


[MINOR][SQL] Wrap given in backticks to fix compilation warning

What changes were proposed in this pull request?
A minor change to fix the a Scala related compilation warning
[WARNING] /spark-source/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryCompilationErrors.scala:105: [deprecation @  | origin= | version=2.13.7] Wrap `given` in backticks to use it as an identifier, it will become a keyword in Scala 3.

Why are the changes needed?
Fix a Scala related compilation warning.
Does this PR introduce any user-facing change?
No
How was this patch tested?
Pass GitHub Action

+1, LGTM. Merging to master.
Thank you, @LuciferYang.


downloaded_at fixes

Fix downloaded_at filtering (currently doesn't work)

Current behavior:

Returns all datasets associated with feed id

Tasks:

[ ] Fix downloaded_at filtering (remove 2 underscores in the code to make this work)
[ ] Update downloaded at queries from downloaded_at_gte and downloaded_at_lte to downloaded_before and downloaded_ after
[ ] Includes datetime format in the description of both queries: e.g 2024-02-10T01:06:00Z

In testing steps, make sure that we can do partial matches (e.g just the date with no timestamp)

@emmambd let's connect on this requirement as a datetime without timestamp like 2024-01-01 is not a valid ISO 8601 format


Incompatible with SSR in aws-lambda

Module is making FS write calls during load. nuxt.render is failing in Lambda function as it's a read-only environment. Can't we generate sprite and .gitignore files during build phase only?

It's weird because module generates all files on build and require them on load.
@pi0 any idea on this?

I think the problem is that init is called directly in module entry point and the fact there's a writeFile() there. Not sure when and how modules are loaded but my guess is they are being imported during new Nuxt(config).

Should be fixed in next release by (4bb045aa867a4803b22a8ad7c29af1fb1379f529)


How to merge two different tracks in a single "file"?

I would like to have a practical example how to merge two tracks in a single file.
Context:
I have some DASH segments(audio/video init, audio/video segments) and I want to merge both to a single init/segment.
I have been trying for two days to do that but I feel that I lack more fmp4 internals knowledge. If someone can help me with some insight I would appreciate it!
Thanks.

@miltondiasarg  This is not really an issue with the library, so I would rather have seen it as an entry under Discussions.
That said, I was a bit interested in seeing how hard it would be to multiplex init and media segments, so I wrote some code and made a new example. It is available as PR #249.

One potential problem that you may have when adding saioboxes is that the offset needs to be changed. The offset in saio tells where the IV are placed relative to the start of the moof, and the IVs are typically 16 bytes after the start of the saiz box. If you add a second traf box, the offset in the saio box in that traf box need to be adjusted.

@miltondiasarg I hope you found your issue.
Do you have any more comments on this issue, or on my PR?
In case not, I'll merge the PR and close this PR.


[BUG] 0.31.0 azure chatgpt not getting tokenusage

LangChain4j version: 0.31.0
        UserMessage userMessage = UserMessage.from(               TextContent.from("what's it?"),               ImageContent.from("https://learn.microsoft.com/en-us/media/home-and-directory/featured-documentation_dark.jpg?branch=live")       );       msgList.add(userMessage);       Response<AiMessage> response = azureOpenAiChatModel               .generate(msgList);       System.out.println(response.tokenUsage());

@wzglgo I am getting the following error:
INFO: Error generating response, {error={message=Invalid content type. image_url is only supported by certain models., type=invalid_request_error, param=messages.[0].content.[1].type, code=null}}
Try another model that supports image inputs, like gpt-4o

@wzglgo I am getting the following error:
INFO: Error generating response, {error={message=Invalid content type. image_url is only supported by certain models., type=invalid_request_error, param=messages.[0].content.[1].type, code=null}}
Try another model that supports image inputs, like gpt-4o

I can get response just only tokenusage get null. My model on azure is gpt4o

@wzglgo please provide a complete example, I cannot reproduce this issue with the provided code snippets


Add hello template in Pascal

Week 4 Challenge.

Your pull request seems good, but must be checked by a human maintainer for the following reason(s):

An error occured while marking your code. The error should be addressed by a maintainer eventually. The error is: That language is not supported!.
These submissions must be checked manually because of the potential complexity of submissions, if you've reached this point in the process you're most likely a valid submission.

Please be patient until a maintainer has time to look over your contribution.
This is an automated response, beep boop.
if you think there is a mistake, contact a maintainer

3fd9d6ce1f7112db75c51e0cc767023a78e77202


Bugfix aseprite json

I encountered a couple problems with the aseprite importer. firstly, when I exported my sprite sheet's JSON, it lacked a field for AsepriteMeta.image, which caused the decoding process to fail. it appears that that field is optional, though I don't actually know exactly what triggers it. at any rate, indigo doesn't seem to use that field, so I propose removing it.
secondly, the documentation mentions that only the aseprite's hash format is supported, however the required AsepriteFrame.filename field seems to be only present in the array export format (that field's value is used as the key in hash exports). this leads me to  strongly suspect this was a simple typo, as importing the array JSON works fine, so I fixed the relevant documentation as well.

I had to approve the CI run, will merge on successful completion. Thanks again. :+1:


Allow custom column types to be given in protocol file

There needs to be a ColumnCustom type where the user can specify a postgres column type that is given directly to postgres. This would allow the user to, for example specify 'GEOMETRY(POINT, 4326)' as the column type, which would directly allow the creation of a geo point (#460) by supplying as the value something like 'SRID=4326;POINT(${location.lon} ${location.lat})'. A similar approach would work for supporting the pgvector data type.
There will also be a way to enable postgres extensions when a database is first created, to support these sorts of datatypes.

I can't just manually add custom columns to a table after the database has been created, because then Serverpod complains that the table is not like the protocol definition. But if I put the custom columns in a separate table that is not managed by Serverpod, then I have to perform a join to get the values I need.

This is an interesting feature. It would be pretty neat of there was a more plug and play approach for columns in general since that would make it easier for users to share column implementations.
We do now support opting out of the migration system for a table (PR here) but I'm not certain that this would silence the integrity check on startup, @Isakdl do you have more info on this? At least this allows you to evolve your table manually instead of having the migration system intervene and reap some of the benefits of the relational system.
Either way, I'm curious about how we make this typed and connected to the rest of the framework.
Along with defining a custom type the user would also need to provide:

Serialization/Deserialization logic for the column.
Column operations (such as equals).

Anything more I'm missing?

Well, it would be nice if you could just override Column with whatever you want, to add a new column type, but I ran into several problems when I tried to do that (https://github.com/serverpod/serverpod/pull/1678).
Also from what I remember of Serverpod internals, you'd have to register a custom Column subclass with Serverpod for serialization / deserialization to work properly. (But maybe not...)

I just came up with another need for custom columns: I need to be able to store 64-bit ints as bigint, and there is no way to do this right now (#767).
It's really a pain to define custom tables and custom columns in Serverpod right now -- you have to set up a custom sql script that is injected into the database after you first create the database, to create the custom table (which you have to keep completely separate from the tables that Serverpod creates), and you have to run all queries as fully custom queries...


Update MusicPlayerProvider.tsx to add repeat methods

add repeat methods

Is it typical for the repeat button to cycle through the queue on first press and then track only on second press? My thinking is the repeat track mode should come first but I'm not too familiar with the standard (also, seeing the "1" on first press would make this clear, whereas if you press it and it doesn't show the one it's not).


[Feature] Set default poll interval based on connected chain

Component
network, json-rpc, provider, pubsub
Describe the feature you would like
ref
https://github.com/alloy-rs/alloy/pull/437#discussion_r1575965143
if not local
Additional context
No response

Related https://github.com/alloy-rs/alloy/pull/437#discussion_r1576824310

i'd make this 2s given the rise of L2s with faster blocktimes


Enlarge the route icon

It should be something like 80px or 60px. Mix of YAML config change and artwork asset change?

The original asset is comically large compared to all the other icons, we should be able to just resize it in YAML. We may actually want to downscale the original route icon asset, even if we display it at 80px.

Ok, I scaled it up 200%  previously
I'll reduce 75% and see how that scales
Let me know if you have suggestion of specific size