Fix return code

Fix returning child processes return code. I always get return_code=1 without these changes

Actually, sys.exit and raise are similar. sys.exit just raises a SystemExit exception. os._exit(-1) will force the program to exit directly.

Just simple example:
test2.py
import subprocess
raise subprocess.CalledProcessError(returncode=42, cmd="test")

test.py
import subprocess

pipe = subprocess.Popen(["python", "test2.py"])
pipe.wait()
print(pipe.returncode)

Output:
Traceback (most recent call last):
  File "test2.py", line 2, in <module>
    raise subprocess.CalledProcessError(returncode=42, cmd="test")
subprocess.CalledProcessError: Command 'test' returned non-zero exit status 42.
1

So we see that we always get return_code = 1

The two cases both cause the program to stop. The real return code is not the same with the actual return code. But raise subprocess.CalledProcessError(returncode=42, cmd="test") provides more information about the command executed and the returncode in log.
So the owners maybe need to claim their design purpose.

Guys, could you take a look at these changes?

@Dipet thanks for the PR. @Dipet and @chunyang-wen, thanks for the analysis of this issue.
I agree with @chunyang-wen that the existing code provides valuable context in the stack trace for debugging the crash, in terms of the values of last_return_code and cmd. This extra context is lost by simply calling sys.exit(last_return_code). @Dipet, can you share the output of using sys.exit() in your test2.py code? Thanks!
@jeffra, FYI.

Output with raise subprocess.CalledProcessError(returncode=42, cmd="test"):
Traceback (most recent call last):
  File "test2.py", line 3, in <module>
    raise subprocess.CalledProcessError(returncode=42, cmd="test")
subprocess.CalledProcessError: Command 'test' returned non-zero exit status 42.
1

Output with sys.exit(42)
42

Output with
returncode = 42
try:
    raise subprocess.CalledProcessError(returncode=42, cmd="test")
except subprocess.CalledProcessError:
    traceback.print_exc()
sys.exit(returncode)

Traceback (most recent call last):
  File "test2.py", line 9, in <module>
    raise subprocess.CalledProcessError(returncode=42, cmd="test")
subprocess.CalledProcessError: Command 'test' returned non-zero exit status 42.
42

Output with
returncode = 42
print(str(subprocess.CalledProcessError(returncode=42, cmd="test")), file=sys.stderr)
sys.exit(returncode)

Command 'test' returned non-zero exit status 42.
42

@Dipet, thanks for sharing these outputs. Like I said earlier, I find the outputs that include the subprocess return code and command more useful for debugging.
@Dipet, @chunyang-wen, @jeffra what do you think?

I agree with @tjruwase
Perhaps we could go with this option?
returncode = 42
try:
    raise subprocess.CalledProcessError(returncode=42, cmd="test")
except subprocess.CalledProcessError:
    traceback.print_exc()
sys.exit(returncode)

Traceback (most recent call last):
  File "test2.py", line 9, in <module>
    raise subprocess.CalledProcessError(returncode=42, cmd="test")
subprocess.CalledProcessError: Command 'test' returned non-zero exit status 42.
42

I agree with @tjruwase
Perhaps we could go with this option?
returncode = 42
try:
    raise subprocess.CalledProcessError(returncode=42, cmd="test")
except subprocess.CalledProcessError:
    traceback.print_exc()
sys.exit(returncode)

Traceback (most recent call last):
  File "test2.py", line 9, in <module>
    raise subprocess.CalledProcessError(returncode=42, cmd="test")
subprocess.CalledProcessError: Command 'test' returned non-zero exit status 42.
42

There is no need to raise.
returncode = 42
logger.info(f"{cmd} exits with return code = {return_code}")
sys.exit(returncode)

@Dipet, thanks so much for contributing this PR.


Turn on with prior input selected, or allow a default input other than WiFi

First, thanks for this integration! it's awesome to have support for this in HA.
I noticed that when turning  on the speakers from the HA media player card, the integration doesn't seem to be aware of what was the currently selected input and the speakers always turn on with WiFi preselected.
When manually turning on the speakers with the remote or with the touchscreen, the speakers always turn on with the previously-selected input.
Can the app offer the same behavior? or if that's not possible, can we have a configuration option to pre-select an input to be automatically setup at turn on, to somehow "get closer" to the expected behavior. I would think most users would normally use always the same fixed input (say HDMI or SPDIF) plus occasional wifi use with spotify or the like.

Thanks for your feedback @arigit !
Actually when you press the on button, home assistant asks the speakers to turn on by setting their state to powerOn, as you can see here. It seems that in the firmware, the powerOn state defaults to wifi regarding the source. I did not notice this behaviour before.
I will have a look to see if it is possible to track the "previous source" and turn the speakers on with the appropriate source. Bear in mind that if you reboot your home assistant instance, this info will be lost though !
If that is not possible, I will add an option to chose the default source when booting.

I have updated hass-kef-connector, now they keeps track of the last used source.
Update to version 0.5.4 to have this new feature !


Missing Montserrat font family

Related to https://github.com/CartoDB/cartodb/pull/14237
Context
We have OpenSans already in the project but not Montserrat. Hangar project uses both of them. It seems it makes sense to add it here, so we can have the same fonts easily available

It seems there could be a problem with the Montserrat font files, not honoring its declared font-weight.


Headpats not well received.

Clicking on headpats results in a crashing stacktrace.

Clicking on headpats/hugs no longer crashes, but error boxes will just chill there until they get fixed or removed in upstream.


Register-PSRepository URL argument values require Project name

It took me a lot of experimentation to discover this, but the URL suggested:

https://pkgs.dev.azure.com/<org_name>/_packaging/<feed_name>/nuget/v2

Now needs to include Project name, since global feeds aren't supported by default any more (there's a workaround by using the API directly, but no UI for it.
We're still using the visualstudio.com URLs, and this is what worked for me:

https://<org_name>.pkgs.visualstudio.com/<feed_project_name>/_packaging/<feed_name>/nuget/v2"

I presume the dev.azure.com URL would need similar treatment.

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

ID: 35b3cd51-b365-433b-9149-697582d64e88
Version Independent ID: 1cb1f4a3-5928-223d-592f-f3462fef4e4c
Content: Use Azure Artifacts as a private PowerShell repository - Azure Artifacts
Content Source: docs/artifacts/tutorials/private-powershell-library.md
Product: devops
Technology: devops-artifacts
GitHub Login: @ramiMSFT
Microsoft Alias: rabououn

@nbarnwell Thank you for your feedback. The updated article will go live shortly


Prettify front-end

Handing off a few remaining todos:
Article recommendations list:

Put "Show more" button right after abstract (above explanation) and reduce the font size by 1 on it
Text color on title mouseover should be red (matching footer link colors)
Have only bottom border as separator line (not both top and bottom). Line should not be orange when favorited
Remove author list indentation (should be vertically aligned with title)
Remove explanation indentation (should be vertically aligned with title)
Align pdf, save, and feedback buttons horizontally next to each other on the same line with title. Replace icons (more info sent in email)


Allow variable method name on Selectable.selectDynamic / Selectable.applyDynamic when invoked within macro implementation

I'm working on a mini dsl for inlining operations on literals eg:
import myInlineOps.*
codeOf {
  inline val ticktock = """
    |tick
    |tock
  """
  inline val clock =
    ticktock.inlined(_.stripMargin.stripTrailing.repeat(3).strip)
}

gives:
{
  inline val ticktock: ("\n        |tick\n        |tock\n      " : String) =
    "\n        |tick\n        |tock\n      "
  inline val clock: ("tick\ntock\ntick\ntock\ntick\ntock" : String) =
    "tick\ntock\ntick\ntock\ntick\ntock"
  ()
}

It relies on applyDynamic to interpret the lambda without the need for quote matchers, ie here's the full user code for the previous example:
object myInlineOps extends InlineOps {

  extension [V](inline v: V)
    transparent inline def inlined[R](
        inline lambda: InlineValue[V] => InlineValue[R]
    ) = ${ this.inlinedImpl[V, R]('v, 'lambda) }

  extension (v: InlineValue[String])
    def stripMargin = v(_.stripMargin)
    def stripLeading = v(_.stripLeading)
    def stripTrailing = v(_.stripTrailing)
    def strip = v(_.strip)
    def repeat(n: Int) = v(_.repeat(n))
    def size = v(_.size)
}

// on the library side, here's the general shape of `inlineImpl`:
trait InlineOps extends Selectable {
  def inlinedImpl[V: Type, R: Type](
      v: Expr[V],
      lambda: Expr[InlineValue[V] => InlineValue[R]]
  )(using Quotes) = {
    import quotes.reflect.*
    ...
    def invokeDynamic(op: String, args: List[(Class[?], Any)]): Any = {
      this
        .applyDynamic(
          op,
          args.map(_._1)*
        )(args.map(_._2)*)
    }
    ...
    val res: Any = ... (reflection stuff calling invokeDynamic)
    exprFromRes(res).asExprOf[R]
}

It works fine on the JVM but fails to compile on SJS.
Any help or workaround would be greatly appreciated!

It works fine on the JVM but fails to compile on SJS.

Could you elaborate? In what way does it fail, exactly?

[error] -- Error: nkgm-predef/shared/src/main/scala-3/nkgm/macros/inlineops/InlineOps.scala:113:10
[error] 113 |          op,
[error]     |          ^^
[error]     |The method name given to Selectable.selectDynamic or Selectable.applyDynamic must be a literal string. Other uses are not supported in Scala.js.

Also tried various workarounds with separate jvm/js sources but no luck.

The error seems legit to me. There is no general-purpose reflection in Scala.js. We have to emit a compile error if you try to use arbitrary names in applyDynamic, since that would require general reflection to implement.

I understand, but doesn't the existence of a Quotes implicit provide safety against that? I'm not returning an expression that contains applyDynamic, which I would totally get, but merely use it in the macro implementation, which is a compile-time-only operation, so in theory it's not code SJS would ever have to run.

So far, we have no implementation of the compiler that would run on JS, so indeed macro code is never executed on JS. But there is theoretically nothing preventing us from making a version of the compiler that would work on Scala.js. If we allow applyDynamic in macro code today, we are shutting ourselves out of ever providing a compiler on JS. I don't think we want that.

100% agreed and that is an amazing prospect btw 💯
As a workaround with means already available, what if I were to compile a jar with just the offending function and no .sjsir, then add it as a dependency to my SJS project. Would that trick the compiler into moving things along? Or is there something along those lines I could try, that doesn't require me restructuring all my macros?

You can directly use Java reflection APIs in that case. Scala.js will only complain at link-time in that case (and macro code won't be linked, as long as the compiler itself does not actually run on JS).

For anyone else interested, this is my working solution:
lazy val myproj_compiletime =
  crossProject(JVMPlatform, JSPlatform)
    .in(file("myproj_compiletime"))
    .crossType(CrossType.Pure)
    .jsSettings(
      scalacOptions -= "-scalajs"
    )

Er ... don't do that. You're going to break everything down the line.
If you really have to, make it a JVM-only project, and depend on it with %% instead of %%%.
But don't make a supposedly-Scala.js project (published with a _sjs1 suffix) that does not actually contain .sjsir. That's twisting the system's arm, and it will get angry at you or at your users.

I'm not super happy about it either, but what if it's part of a multi-module build like so?
lazy val myproj_compiletime =
  crossProject(JVMPlatform, JSPlatform)
    .in(file("myproj_compiletime"))
    .crossType(CrossType.Pure)
    .jsSettings(
      scalacOptions -= "-scalajs"
    )

lazy val myproj =
  crossProject(JVMPlatform, JSPlatform)
    .in(file("myproj"))
    .dependsOn(myproj_compiletime)

Found my solution in this so answer by some clever guy you may have heard of 😄
lazy val myproj_compiletime =
  project
    .in(file("myproj_compiletime"))

lazy val myproj =
  crossProject(JVMPlatform, JSPlatform)
    .in(file("myproj"))
    .jsConfigure(_.dependsOn(myproj_compiletime))
    .jvmConfigure(_.dependsOn(myproj_compiletime))

Thank for helping me flesh this out!


Framework added from within WP plugin not working ...

Hey Codyhouse Crew ... love the framework and the components :-)
Wanting to use certain components on a client site so have created a basic plugin to add the scripts/styles etc rather than adding to the child theme.
I selected all the components I wanted, modified the globals and then exported the project from within our my account on codyhouse.co. Then added the files across to my plugin folder and ran the install etc.
From the front end the components look good ie styles are loading etc ... just can't figure out why I can't get for instance the date range component (or others) to actually work as intended ie clicking the "Select dates" button does not fire the calendar dropdown. Have also added the number input component and again that looks good, but doesn't seem to want to work ie clicking the increment arrows don't change the values.
All scripts and styles are being loaded on the front end (no 404s) and no errors in the console. I deactivated ALL other plugins to see if another plugin was interfering but still same issue.
Not sure what is going on. Hoping I've overlooked something simple. I'd be much appreciative if by chance you can have a look at here and see if you can see something wrong?
Trying to create a property search/filtering component with a horizontal search bar with date range, guests, pets toggle etc with the listing cards underneath ... sort of like the Filter component, but more suited to accommodation booking ;-) (will submit a component when I get a chance).
Thanks so much :-)
Scott

Hi Scott,
from what you said, it looks like the JS code of the component is not imported correctly. So I would suggest to double-check the plugin you are using the import the components in your Wordpress theme. Always make sure the JS code is imported in the footer of your page. Cheers!

Hey thanks so much for the reply @claudia-romano :-)
I ended up adding the main Codyhouse script to the footer as suggested and that worked perfectly! It didn't occur to me to do that so thanks for the reminder.
Cheers again.
Scott


NO-JIRA: Documentation overview of HCP KubeVirt Storage

This adds documentation outlining the three different types of storage configurations available for HCP KubeVirt clusters.

/retest

/lgtm


Unboxing an array of protocol types

Hey John!
Thanks for making it super simple to decode JSON :)
I've run across a problem with unboxing one of the models in my application, though. I'm using an Item protocol, which requires conforming classes to conform to the Unboxable protocol as well:
protocol Item: Unboxable {
    // ...
}

When trying to unbox a required array of Items in one of the conforming classes, the unboxer fails:
class Group: Item {
    let children: [Item]

    required init(unboxer: Unboxer) {
        items = unboxer.unbox("items")
        // items is empty and unboxer.hasFailed is true
    }
}

After spending some time debugging, this seems to be caused by the call to unboxer.unbox("items") being statically dispatched to the func unbox<T>(key: String) -> [T] method at Unbox.swift:290 instead of the func unbox<T: Unboxable>(key: String) -> [T] method at Unbox.swift:351.
This leads to UnboxValueResolver.resolveOptionalValueForKey trying to downcast the boxed value to [Item] instead of [UnboxableDictionary], which unsurprisingly fails.
I've tried to modify the func unbox<T>(key: String) -> [T] method to check at runtime if the type T is Unboxable and act accordingly, but this seems nigh impossible.
As far as I can see, this is a limitation of Swift, not an Unbox issue, but it would be great if you could update the README with this gotcha :)
For completeness sake: In my application, I think I'm going to annotate the boxed values with a type value and then use that to decide at runtime what concrete Item-type to unbox as.
Cheers,
Tim

I should mention that I'm using Unbox 1.2.1.

Hey Tim,
Happy you like Unbox :)
Yeah, you're right - nested types need to be concrete (such as Struct, Class, Enum etc) in order for Swift to be able to select the proper overload of unbox() to use. Since Item could refer to any implementation of the protocol, there's no way to select what type to initialize, so Swift falls back to the most generic implementation (with the return type [T]). I'm actually going to update that, so it works similar to how nested dictionaries work, only allowing [T] where T: UnboxRawValueType (new in Unbox 1.2.3). This would cause code like yours to fail at compile time instead of at runtime. I will also add some debugging tips to the README.
Your solution with a type value is a nice approach. Then you can use an intermediate ItemData structure that Unbox can decode for you, and then use the type value (which can be an UnboxableEnum) to transform it into the proper type.

There you go, README updated with a "Debugging tips" section and you can now only use unbox() with an array return type of T: Unboxable, T: UnboxableWithContext or T: UnboxableRawType - so more of the type of errors that you encountered will be moved to compile time :) Thanks for bringing this issue to my attention :rocket: :+1:

Great updates! A compile time error is a lot better :)
Thanks!


browser test fails on iOS Safari

confirmed on iPad OS 15.2.
Some tests uses new Date("2023-04-05 06:07:08.090") style to take a local time.
String(new Date("2023-04-05 06:07:08.090"));
// => "Invalid Date" (NG)

String(new Date("2023-04-05T06:07:08.090"));
// => "Wed Apr 05 2023 06:07:08 GMT+0900 (JST)" (OK)

Yet another difference found:
V8 (Node.js)
cdate("2023-03-25").toDate()
// => 2023-03-24T15:00:00.000Z
cdate("2023-3-25").toDate()
// => 2023-03-24T15:00:00.000Z

Safari
cdate("2023-03-25").toDate()
// => Sat Mar 25 2023 00:00:00 GMT+0900 (JST)
cdate("2023-3-25").toDate()
// => Invalid Date

The difference above looks to be caused by the strict RegExp below:
const parseDate = (dt: string, rwFn: (t: number) => cdateNS.DateLike): cdateNS.DateLike => {
    const matched = dt.match(/^(\d{4})(?:([-/])(\d{2})(?:\2(\d{2})(?:[T\s]((\d{2}):(\d{2})(?::(\d{2})(\.\d+)?)?))?)?)?$/);

It looks Safari has more strict Date parser. We should support type 4 as V8 does.

#
code
V8
Safari
cdate

1
new Date("2023-04-05T06:07:08")
OK
OK
OK

2
new Date("2023-04-05 06:07:08")
OK
Invalid Date
OK

3
new Date("2023-4-5T6:7:8")
Invalid Date
Invalid Date
Invalid Date

4
new Date("2023-4-5 6:7:8")
OK
Invalid Date
Invalid Date


Add a tracing mutex that abstracts between tokio mutexes and async-lock mutexes

In our codebase we have both Tokio mutexes and async-lock mutexes, which we must use on wasm32-unknown-unknown due to the Tokio runtime being incompatible with it.  We believe it would make sense to create an abstraction over our mutexes that allows us to switch between implementations depending on platform.
At the same time, we have been experiencing deadlocks due to unexpected mutex acquisition and release patterns, which we would like better observability into.  Tokio mutexes automatically produce tracing information when using the tracing feature, but async-lock mutexes do not; our wrapper could automatically trace in both cases.
Issue is from a discussion with @jvff.

See also https://github.com/linera-io/linera-protocol/pull/1174


Cannot start on Windows7 64-bit

What steps will reproduce the problem?
1. Click on SuperPutty.exe
2.
3.

What is the expected output? What do you see instead?
Putty screen should show up but it does not.
No SuperPutty.exe on task manager either

What version of the product are you using? On what operating system?
<IP_ADDRESS>, W7 64bit

Please provide any additional information below.
Using it in a corporate PC with admin right. Can run other software like Eclipse

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 11 Sep 2014 at 3:06

Closing this issue but all hope is not lost! We still want to help.
See: https://github.com/jimradford/superputty/wiki/Legacy-Imported-Issues on how to help us to help you!


[BUG] [VSCode Extension] when running an individual node and using dictionary elements as a node input leads to error 'not able to access the property'

Describe the bug
A clear and concise description of the bug.
How To Reproduce the bug
Steps to reproduce the behavior, how frequent can you experience the bug:

Create a python node with its output as dictionary
Access the elements of the dictionary as an input to other nodes.
Run the complete flow (this works)
Now try running the individual node with an input referencing the dictionary.  Prompt flow will give error. The frequency is always.
Example error: "Flow test failed with InvalidReferenceProperty: Flow execution failed. Invalid property 'topK' when accessing the node 'ConfigLoader'. Please check the property and try again."

For example I created a config loader node, which loads configuration as dictionary.

In other nodes, I am accessing the elements as ConfigLoader.output.specificelement

As mentioned, the whole flow runs but when running this individual node, the following error appears:
'Flow test failed with InvalidReferenceProperty: Flow execution failed. Invalid property 'topK' when accessing the node 'ConfigLoader'. Please check the property and try again.'
Screenshots

On the VSCode primary side bar > the Prompt flow pane > quick access section. Find the "install dependencies" action. Please it and attach the screenshots there.

Please provide other snapshots about the key steps to repro the issue.

Environment Information

Promptflow Package Version using pf -v: 1.2.0
Operating System: [e.g. Ubuntu 20.04, Windows 11]: windows 11
Python Version using python --version: [e.g. python==3.10.12] 3.9.18
VS Code version. 1.86.1
Prompt Flow extension version. <IP_ADDRESS>
On the VS Code bottom pane > Output pivot > "prompt flow" channel, find the error message could be relevant to the issue and past them here. That would be helpful for our trouble shooting.
If your code to repro the issue is public and you want to share us, please share the link.

Additional context
Add any other context about the problem here.

Hi @HosseinHeris , this issue has been fixed in the latest version of promptflow and can be updated to promptflow==1.7.0 and try again.


Multi-select and .data store in  tags

Hi, folks.
I'm not sure how to do this up in a Fiddle.   I'm using Select2 4.1.0-rc.0
The select box is set for multi-select.
In previous versions, one could use jQuery .data() on the <li> tag holding the option to collect title, id, selected, disabled, etc.  In this latest RC, all .data returns is 'data-select2-id' which does me no good.  I need the information stored there in previous versions.
If we take a look at line 1853 in select2.js, the MultipleSelection.prototype.update function, we see:  Utils.StoreData($selection[0], 'data', selection);  I stepped through this in the dev console.  The usual information is, in fact, in the selection variable.  However, it does not appear to be storing properly, if at all, as all I get is 'data-select2-id'
I can't find any info about this being a breaking change.  Am I just...doing it wrong?  Is there a new way?
Thanks!

So...never mind?
I found a way to do it with .select2(data).  It ain't pretty, but it works.
This is for Vafours old and not longer maintained jquery.select2.sortable.  It was seriously broken with any 4.x version of select2.  So, if you want, by all means:  https://github.com/svl-studios/jquery.select2.sortable

This appears to be more of a usage question than a bug report or common feature request.  As we continue to keep the Select2 issue tracker geared towards these two areas, bug reports and common feature requests, we are redirecting usage questions to other communities such as the mailing list, IRC, or Stack Overflow.

Fair enough.  Maybe worth mentioning under breaking changes?  Only because it used to work that way and now no longer does.  Thanks!  :)

I'm fairly certain this changed in Select2 4.0.7 when we did the internal data storage change. Since it was considered internal, not a part of the public API, we didn't document it as a breaking change.


tailwind support not working with watch

Love that you've added tailwindcss support! Unfortunately, it seems like there's a few bugs in it.
When running cargo leptos watch the tailwind and you add a tailwind class that is not used anywhere else in the source code it does not work. The tailwind build should run on every change in the source code. To make it work at the moment I have to either restart the watch or go into the tailwindcss css file and make a trivial change (e.g. add a new line at the end of the file).
Tailwindcss reads all the .rs files, collates all the tailwind classes used and then writes a minimal css file with all those classes in it. So, if you add a class that is in a part of tailwind you haven't used before it doesn't rebuild the tailwind css so it doesn't work.

Closed by #98

Thanks for your feedback. Much appreciated. I don't use Tailwind myself, so was working a bit in blind.

👍 thanks. I'll give it a test tomorrow.


Build fails

build -t robinvision . fails at:
Step 11/14 : COPY encodings /root/encodings
COPY failed: stat /var/lib/docker/tmp/docker-builder994934755/encodings: no such file or directory

Should be fixed now

Thats resolved now, cheers!


Having a null updated_at column throws an error when updating model

Laravel-mongodb Version: 3.9.2 (should still be present in 3.9.5)
PHP Version: 8.1.17
Database Driver & Version: 4.4

Description:
When UPDATED_AT (or CREATED_AT) is set to null in the model, a warning is thrown when updating the model.
Setting UPDATED_AT to null is a common way to allow for a created_at column, but not updated_at.
For example:
https://github.com/laravel/framework/blob/10.x/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php#L62-L70
Here, Laravel checks that the updated_at column isn't null before setting it.
However:
https://github.com/jenssegers/laravel-mongodb/blob/v3.9.5/src/Eloquent/Model.php#L226-L230
Here, we get all the dates columns, which could include nulls. Then, calling Str::contains($key, '.') results in a deprecation warning:

PHP Deprecated:  str_contains(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/app/vendor/laravel/framework/src/Illuminate/Support/Str.php on line 242

Steps to reproduce

Set UPDATED_AT to null in a model class.
Call $model->update([/* ... */]);
See deprecation warning

Expected behaviour
null should be skipped
Actual behaviour
Warning
Possible fix
        foreach ($this->getDates() as $key) {
            if ($key && Str::contains($key, '.') && Arr::has($attributes, $key)) {
                Arr::set($attributes, $key, (string) $this->asDateTime(Arr::get($attributes, $key)));
            }
        }

I'll try to get a PR up for this on Monday morning.

Hi can you try to add this dates in Model with    protected $dates = ['startDate', 'endDate'];
  WorkPeriod::create([                     'samba_id' => $id,                     'startDate' => $startDay,                     'endDate' =>  null,                     'user' => $user_id                 ]); I used like this

@puuble that's not what I'm talking about. I don't mean having a nullable date column. That doesn't cause problems.
I'm talking about not having an updated_at column, while still having a created_at column. You can do that by enabling timestamps, but setting your updated column (not the value in the column) to null.

Actually, this looks like it was fixed in 2ea1a7c0aee085c382349613d399be79a0bd1f1a which doesn't seem to have been included in recent releases.
I guess it'll be fine with versions that support Laravel 10.


Better error message when placing a revision in version mistakenly

When adding a dependency for a particular revision, if someone mistakenly places the revision to version such as this:
[[constraint]]
    name = "github.com/golang-migrate/migrate"
    version = "faf4307fcc7245d1df1c1000ca94c6c9d2537087"

The error being given is as follow:
v3.4.0: Could not introduce<EMAIL_ADDRESS>as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
	v3.3.1: Could not introduce<EMAIL_ADDRESS>as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
	v3.3.0: Could not introduce<EMAIL_ADDRESS>as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
	v3.2.0: Could not introduce<EMAIL_ADDRESS>as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
	v3.1.0: Could not introduce<EMAIL_ADDRESS>as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
	v3.0.1: Could not introduce<EMAIL_ADDRESS>as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
	v3.0.0: Could not introduce<EMAIL_ADDRESS>as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
	v1.3.2: Could not introduce<EMAIL_ADDRESS>as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
	v1.3.1: Could not introduce<EMAIL_ADDRESS>as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
	v1.3.0: Could not introduce<EMAIL_ADDRESS>as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
	v1.2.0: Could not introduce<EMAIL_ADDRESS>as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
	v3.0.0-rc2: Could not introduce<EMAIL_ADDRESS>as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
	v3.0.0-rc1: Could not introduce<EMAIL_ADDRESS>as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
	v3.0.0-rc0: Could not introduce<EMAIL_ADDRESS>as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
	v3.0.0-prev2: Could not introduce<EMAIL_ADDRESS>as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
	v3.0.0-prev1: Could not introduce<EMAIL_ADDRESS>as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
	v3.0.0-prev0: Could not introduce<EMAIL_ADDRESS>as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
	master: Could not introduce github.com/golang-migrate/migrate@master, as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
	cli-updates: Could not introduce github.com/golang-migrate/migrate@cli-updates, as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
	v1: Could not introduce github.com/golang-migrate/migrate@v1, as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
	v1-gopkg: Could not introduce github.com/golang-migrate/migrate@v1-gopkg, as it is not allowed by constraint faf4307fcc7245d1df1c1000ca94c6c9d2537087 from project xxxx.
make: *** [tmp/vendor-installed] Error 1

There is no indication or appropriate error response letting the user know that they should at least use a revision or that this is not a correct version.
Please have a look...

Unfortunately, because of the breadth of what we accept as inputs in these fields, it's hard to know a priori whether or not a given string is acceptable. Real "validation" often requires calling back out to the VCS.
We could, though, at least cover this case - where we see something that looks exactly like a git hash.
PR welcome :) i can point you to where it'd go.

Sounds good to me @sdboyer. Point me to the location, and I would look into sending you a PR!

Sorry, i wasn't watching the queue for a while! if you're still interested, the spot to do it is around here: https://github.com/golang/dep/blob/affb4f6185174f77667e9316a33c4ca2df0f9762/manifest.go#L152

Dep was officially deprecated earlier this year, and the proposal to archive this repository was accepted. As such, I'm closing outstanding issues before archiving the repository. For any further comments, please use the proposal thread on the Go issue tracker. Thanks!


Chat memories are not deleted when chat session is deleted

Describe the bug
I noticed that in static class ISemanticMemoryClientExtensions in extension method RemoveChatMemoriesAsync, it is parsing the document ids wrong.
public static async Task RemoveChatMemoriesAsync(
        this IKernelMemory memoryClient,
        string indexName,
        string chatId,
        CancellationToken cancellationToken = default)
    {
        var memories = await memoryClient.SearchMemoryAsync(indexName, "*", 0.0F, chatId, cancellationToken: cancellationToken);
        var documentIds = memories.Results.Select(memory => memory.Link.Split('/').First()).Distinct().ToArray();
        var tasks = documentIds.Select(documentId => memoryClient.DeleteDocumentAsync(documentId, indexName, cancellationToken)).ToArray();

        Task.WaitAll(tasks, cancellationToken);
    }

The method above tries to get the document id for each result with memory.Link.Split('/').First(). As the link is actually in format of $"{index}/{documentId}/{fileId}", it ends up picking up the index name. The documentIds array variable will always only contain the index names. Because of that, the document deletion doesn't work properly.
I can create a pull request to fix this if you agree of the issue. Instead of using the first element, we must get the second element in the split array. I don't have an instance of chat-copilot running so I couldn't test it in practice, but by reading the code, it seems to be a clear case.
To Reproduce
Steps to reproduce the behavior:

Create a conversation
Chat a few times to collect memories
Confirm that the index contains memories for the session
Delete the conversation (chat session)
Check if the memories exist in the index

Expected behavior
Memories for the deleted chat session are deleted.
Platform

Language: C#
Source: main branch

I had the same issue, but are you sure it's not the long term memory that still exists ?
From what I understand from the documentation, this kind of memory should be always available.

At least in this chat-copilot sample project, working and long-term memory are saved with the chat ID tag in the Kernel Memory. So they both are contained within a single conversation, which means there wouldn't be a point in keeping the long-term memory items when the conversation is deleted.

Same behaviour. The document persists in memory indefinitely. The RAG functionality is activated even with a new context (such as a new chat session) where the document hasn’t been uploaded. For instance, while my custom plugin operates correctly, it still references a PDF document for RAG purposes due to its retention in long-term memory.

That sounds odd as I thought it always will set the chat session ID as the tag before saving it to the memory. That way it shouldn't return document chunks from other sessions as it filters with the current chat session ID. Maybe it's another bug.

You are correct. Seems like Chat Copilot app needs an upgrade. There is no way one can delete uploaded documents or clear the vector database => in this case TextFile

Ah yes, you were talking about the global scoped documents. They indeed are kept there forever as the UI doesn't have the option to delete them. And as they are globally scoped, any chat session can use them as citations.
This issue I created is just related to the chat session scoped document, working, and long-term memory not being deleted when the session is deleted.

I found that the snipped shared above prevented the system from deleting chat memory files in the storage account and did not remove embeddings in the vector store.
The value of the first item after the split is 'chatmemory' and not the document id
I fixed the issue by referencing DocumentId property instead of Link


Introduce Javy global

This PR supersedes #129 and achieves two things

Remove the Shopify.main() global and instead execute the top level code directly.
Expose the Javy global, which currently contains only IO-related functions.

It might make sense to go through this PR by commit, if the overall diff is too wild.
Things I want to do after this PR:

I saw that the TextDecoder and TextEncoder impls rely on custom Javy functions. I'd like to hide those (similar to how I am hiding __javy_io_readSync in this PR), so that people can't use them.
Write a macro to automatically include every file in the prelude folder.

Thanks for the thorough review. Will get on implementing that.
@saulecabrera Agree that we want to clean up and unify where and how we inject globals, and I think you are spot on with your long-term vision. I wanted to avoid changes to the quickjs crates for this PR, so that's why I went with the current router. I'm definitely keen to do that refactoring, but would rather see that we land this first to unblock the javy npm module etc.
@jeffcharles Yeah, I tried keeping the PRs separate, but it proved difficult while testing, so I decided to torture y'all a bit.
And I was just thinking during my lunch break that I should totally have added tests 🤦


Feature/mob 1870 screen sharing bubble

I added the bubble logic and the design logic, but for now it is not testable without code modifications. All of the changes are under the hood.

@Pelkar Overall, looks good. 👍 Just have a look at the comments. 😉


Must have support for JSON data in source

offers JSON record support without any attached schema

Should also consider how we handle RAW JSON (string only - JSON structure not managed by Kafka connect) and JSON with Schema (JSON record structure with explicit schema information). Does this behave differently?

Configuration example for JSON
key.converter=org.apache.kafka.connect.json.JsonConverter

Configuration example for JSON with Schema
key.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=true
value.converter=org.apache.kafka.connect.json.JsonConverter
value.converter.schemas.enable=true


Is it possible to change the CHART title / labels font and size?

The subject is self explaining.. Is it possible to change the CHART title / labels font and size?
Regards
J

I'm also trying to know how to change that. I haven't found any way to do it yet.

I am using a Bar Chart and would like to change the title font and size. Has there been any update to this?


Cannot convert value "   " to type "System.Int32". Error: "Input string was not in a correct format."

The issue happened on all containers at the same day on PC which our new college using for local development. Script and output is for v21 container only. The initial run worked normally. Once our DB was restored, initialization was fine as well, and so were the following until the same initialization error occurred: Cannot convert value "   " to type "System.Int32". Error: "Input string was not in a correct format." on all containers.
NavContainerHelper is version 4.0.6
Host is Microsoft Windows 10 Enterprise - 10.0.19044 Build 19044
Docker Client Version is 20.10.21
Docker Server Version is 20.10.21
Scripts used to create container and cause the issue
Install-Module -Name bccontainerhelper -Force
$artifactUrl = Get-BCArtifactUrl -country "w1" -version 21.0.46256.46853 -storageAccount bcartifacts -type OnPrem
$licenseFile = 'C:\BC\Licenses\v21.flf'
$credential = New-Object pscredential 'admin', (ConvertTo-SecureString -String 'P@ssw0rd!.' -AsPlainText -Force)
$containerName = 'bc210-46853'

New-BcContainer `
    -accept_eula `
    -isolation 'hyperv' `
    -accept_outdated `
    -containerName $containerName `
    -artifactUrl $artifactUrl `
    -licenseFile $licenseFile `
    -auth NavUserPassword `
    -Credential $credential `
    -shortCuts DesktopFolder `
    -memoryLimit 8G `
    -updateHosts `
    -multitenant:$false

Full output of scripts
2022-11-07T12:58:12.519036000Z  Using artifactUrl https://bcartifacts.azureedge.net/onprem/21.0.46256.46853/w1
2022-11-07T12:58:12.684194900Z  Using installer from C:\Run\210-new
2022-11-07T12:58:12.877848400Z  Installing Business Central
2022-11-07T12:58:12.885851200Z  Installing from artifacts
2022-11-07T12:58:12.896850800Z  Starting Local SQL Server
2022-11-07T12:58:14.909229200Z  Starting Internet Information Server
2022-11-07T12:58:15.253435700Z  Copying Service Tier Files
2022-11-07T12:58:15.260988400Z  c:\dl\onprem\21.0.46256.46853\platform\ServiceTier\Program Files
2022-11-07T12:58:16.099883000Z  c:\dl\onprem\21.0.46256.46853\platform\ServiceTier\System64Folder
2022-11-07T12:58:16.123605400Z  Copying PowerShell Scripts
2022-11-07T12:58:16.124285600Z  c:\dl\onprem\21.0.46256.46853\platform\WindowsPowerShellScripts\Cloud\NAVAdministration
2022-11-07T12:58:16.163159700Z  c:\dl\onprem\21.0.46256.46853\platform\WindowsPowerShellScripts\WebSearch
2022-11-07T12:58:16.181429000Z  Copying Web Client Files
2022-11-07T12:58:16.182255300Z  c:\dl\onprem\21.0.46256.46853\platform\WebClient\Microsoft Dynamics NAV
2022-11-07T12:58:17.991911300Z  Copying ModernDev Files
2022-11-07T12:58:17.997050000Z  c:\dl\onprem\21.0.46256.46853\platform
2022-11-07T12:58:18.016148700Z  c:\dl\onprem\21.0.46256.46853\platform\ModernDev\program files\Microsoft Dynamics NAV
2022-11-07T12:58:18.197266600Z  Copying additional files
2022-11-07T12:58:18.205022100Z  Copying ConfigurationPackages
2022-11-07T12:58:18.205022100Z  C:\dl\onprem\21.0.46256.46853\platform\ConfigurationPackages
2022-11-07T12:58:18.231429200Z  Copying Test Assemblies
2022-11-07T12:58:18.233936800Z  C:\dl\onprem\21.0.46256.46853\platform\Test Assemblies
2022-11-07T12:58:18.259321500Z  Copying Applications
2022-11-07T12:58:18.259321500Z  C:\dl\onprem\21.0.46256.46853\platform\Applications
2022-11-07T12:58:18.930405700Z  Copying dependencies
2022-11-07T12:58:18.945832500Z  Copying ReportBuilder
2022-11-07T12:58:30.803254600Z  Importing PowerShell Modules
2022-11-07T12:58:31.854818500Z  Restoring CRONUS Demo Database
2022-11-07T12:58:33.072678600Z  Setting CompatibilityLevel for CRONUS on localhost\SQLEXPRESS
2022-11-07T12:58:33.669918300Z  Modifying Business Central Service Tier Config File for Docker
2022-11-07T12:58:33.686002100Z  Creating Business Central Service Tier
2022-11-07T12:58:33.720913600Z  Installing SIP crypto provider: 'C:\Windows\System32\NavSip.dll'
2022-11-07T12:58:33.828538400Z  Starting Business Central Service Tier
2022-11-07T12:59:24.662798700Z  Importing license file
2022-11-07T12:59:25.015856500Z  Stopping Business Central Service Tier
2022-11-07T12:59:25.280857900Z  Installation took 72 seconds
2022-11-07T12:59:25.281377700Z  Installation complete
2022-11-07T12:59:25.308567300Z  Initializing...
2022-11-07T12:59:26.753456900Z  Setting host.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
2022-11-07T12:59:26.781672000Z  Setting gateway.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
2022-11-07T12:59:26.784225100Z  Setting kubernetes.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
2022-11-07T12:59:26.808829400Z  Setting host.containerhelper.internal to <IP_ADDRESS> in container hosts file
2022-11-07T12:59:26.811876500Z  Starting Container
2022-11-07T12:59:26.818479300Z  Hostname is bc210-46853
2022-11-07T12:59:26.819517400Z  PublicDnsName is bc210-46853
2022-11-07T12:59:27.257947200Z  Using NavUserPassword Authentication
2022-11-07T12:59:27.296675900Z  Creating Self Signed Certificate
2022-11-07T12:59:27.659877800Z  Self Signed Certificate Thumbprint 607A8B3D6E822A68F84BD32933D55081E10CB4BB
2022-11-07T12:59:27.679649500Z  DNS identity bc210-46853
2022-11-07T12:59:27.696527100Z  Modifying Service Tier Config File with Instance Specific Settings
2022-11-07T12:59:27.963450300Z  Starting Service Tier
2022-11-07T12:59:38.049985500Z  Registering event sources
2022-11-07T12:59:38.098272300Z  Creating DotNetCore Web Server Instance
2022-11-07T12:59:38.142432600Z  Using application pool name: BC
2022-11-07T12:59:38.147407700Z  Using default container name: NavWebApplicationContainer
2022-11-07T12:59:38.159662300Z  Copy files to WWW root C:\inetpub\wwwroot\BC
2022-11-07T12:59:39.323376900Z  Create the application pool BC
2022-11-07T12:59:39.643762000Z  Create website: NavWebApplicationContainer without SSL
2022-11-07T12:59:41.321740900Z  Update configuration: navsettings.json
2022-11-07T12:59:41.334600300Z  Done Configuring Web Client
2022-11-07T12:59:41.395457600Z  Using license file 'c:\run\my\license.flf'
2022-11-07T12:59:41.397114100Z  Import License
2022-11-07T12:59:42.114298000Z  Creating http download site
2022-11-07T12:59:42.313601600Z  Setting SA Password and enabling SA
2022-11-07T12:59:42.327807400Z  Creating admin as SQL User and add to sysadmin
2022-11-07T12:59:45.166544700Z  Creating SUPER user
2022-11-07T12:59:47.336251200Z  Container IP Address: <IP_ADDRESS>
2022-11-07T12:59:47.336251200Z  Container Hostname  : bc210-46853
2022-11-07T12:59:47.341797000Z  Container Dns Name  : bc210-46853
2022-11-07T12:59:47.342747000Z  Web Client          : http://bc210-46853/BC/
2022-11-07T12:59:47.344248500Z  Dev. Server         : http://bc210-46853
2022-11-07T12:59:47.344769900Z  Dev. ServerInstance : BC
2022-11-07T12:59:47.366526400Z  Setting bc210-46853 to <IP_ADDRESS> in host hosts file
2022-11-07T12:59:47.802886600Z
2022-11-07T12:59:47.802886600Z  Files:
2022-11-07T12:59:47.813423500Z  http://bc210-46853:8080/ALLanguage.vsix
2022-11-07T12:59:47.813943300Z
2022-11-07T12:59:47.814921800Z  WARNING: You are running a container which is 242 days old.
2022-11-07T12:59:47.815241800Z  Microsoft recommends that you always run the latest version of our containers.
2022-11-07T12:59:47.815421500Z
2022-11-07T12:59:47.866953700Z  Container Total Physical Memory is 8.5Gb
2022-11-07T12:59:47.869151100Z  Container Free Physical Memory is 6.4Gb
2022-11-07T12:59:47.869151100Z
2022-11-07T12:59:47.869785600Z  Initialization took 23 seconds
2022-11-07T12:59:47.870360700Z  Ready for connections!
2022-11-08T07:39:41.371069400Z  Initializing...
2022-11-08T07:39:41.586898500Z  Setting host.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
2022-11-08T07:39:41.661282900Z  Setting gateway.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
2022-11-08T07:39:41.664760300Z  Setting kubernetes.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
2022-11-08T07:39:41.687731100Z  Setting host.containerhelper.internal to <IP_ADDRESS> in container hosts file
2022-11-08T07:39:41.691180300Z  Restarting Container
2022-11-08T07:39:41.694180200Z  PublicDnsName unchanged
2022-11-08T07:39:41.715310900Z  Hostname is bc210-46853
2022-11-08T07:39:41.716007300Z  PublicDnsName is bc210-46853
2022-11-08T07:39:41.716673100Z  Using NavUserPassword Authentication
2022-11-08T07:39:41.998363300Z  Starting Local SQL Server
2022-11-08T07:39:43.503230800Z  Starting Internet Information Server
2022-11-08T07:39:43.986296200Z  Starting Service Tier
2022-11-08T07:39:57.957757600Z  Container IP Address: <IP_ADDRESS>
2022-11-08T07:39:57.958805600Z  Container Hostname  : bc210-46853
2022-11-08T07:39:57.959780000Z  Container Dns Name  : bc210-46853
2022-11-08T07:39:57.960298500Z  Web Client          : http://bc210-46853/BC/
2022-11-08T07:39:57.963470400Z  Dev. Server         : http://bc210-46853
2022-11-08T07:39:57.964479900Z  Dev. ServerInstance : BC
2022-11-08T07:39:57.992169800Z  Setting bc210-46853 to <IP_ADDRESS> in host hosts file
2022-11-08T07:39:57.997827400Z
2022-11-08T07:39:58.000909600Z  Files:
2022-11-08T07:39:58.008478600Z  http://bc210-46853:8080/ALLanguage.vsix
2022-11-08T07:39:58.009586200Z
2022-11-08T07:39:58.031955000Z  Container Total Physical Memory is 8.5Gb
2022-11-08T07:39:58.032504600Z  Container Free Physical Memory is 7.1Gb
2022-11-08T07:39:58.033566200Z
2022-11-08T07:39:58.040007800Z  Initialization took 17 seconds
2022-11-08T07:39:58.040302400Z  Ready for connections!

.....

2022-11-22T06:22:35.505200500Z  Initializing...
2022-11-22T06:22:35.875410500Z  Setting host.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
2022-11-22T06:22:35.915120700Z  Setting gateway.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
2022-11-22T06:22:35.925699000Z  Setting kubernetes.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
2022-11-22T06:22:35.945831100Z  Setting host.containerhelper.internal to <IP_ADDRESS> in container hosts file
2022-11-22T06:22:35.947980600Z  Restarting Container
2022-11-22T06:22:35.950626400Z  PublicDnsName unchanged
2022-11-22T06:22:35.961078700Z  Hostname is bc210-46853
2022-11-22T06:22:35.961582500Z  PublicDnsName is bc210-46853
2022-11-22T06:22:35.962082100Z  Using NavUserPassword Authentication
2022-11-22T06:22:36.154682500Z  Starting Local SQL Server
2022-11-22T06:22:37.433873200Z  Starting Internet Information Server
2022-11-22T06:22:37.941423100Z  Starting Service Tier
2022-11-22T06:22:59.843110000Z  Container IP Address: <IP_ADDRESS>
2022-11-22T06:22:59.843110000Z  Container Hostname  : bc210-46853
2022-11-22T06:22:59.844095200Z  Container Dns Name  : bc210-46853
2022-11-22T06:22:59.844591600Z  Web Client          : http://bc210-46853/BC/
2022-11-22T06:22:59.846589200Z  Dev. Server         : http://bc210-46853
2022-11-22T06:22:59.847091700Z  Dev. ServerInstance : BC
2022-11-22T06:22:59.875042600Z  Setting bc210-46853 to <IP_ADDRESS> in host hosts file
2022-11-22T06:22:59.881537000Z
2022-11-22T06:22:59.882515600Z  Files:
2022-11-22T06:22:59.888048400Z  http://bc210-46853:8080/ALLanguage.vsix
2022-11-22T06:22:59.888560000Z
2022-11-22T06:22:59.906684100Z  Container Total Physical Memory is 8.5Gb
2022-11-22T06:22:59.911733200Z  Container Free Physical Memory is 6.6Gb
2022-11-22T06:22:59.911733200Z
2022-11-22T06:22:59.921524200Z  Initialization took 24 seconds
2022-11-22T06:22:59.921971500Z  Ready for connections!
2022-11-22T06:36:08.583097600Z  Initializing...
2022-11-22T06:36:08.936268700Z  Setting host.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
2022-11-22T06:36:08.991570100Z  Setting gateway.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
2022-11-22T06:36:09.000746700Z  Setting kubernetes.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
2022-11-22T06:36:09.039940800Z  Setting host.containerhelper.internal to <IP_ADDRESS> in container hosts file
2022-11-22T06:36:09.043013200Z  Restarting Container
2022-11-22T06:36:09.047093000Z  PublicDnsName unchanged
2022-11-22T06:36:09.098443500Z  Cannot convert value "   " to type "System.Int32". Error: "Input string was not in a correct format."
2022-11-22T06:36:09.101000900Z  at <ScriptBlock>, C:\Run\navstart.ps1: line 44
2022-11-22T06:36:09.101000900Z  at <ScriptBlock>, C:\Run\start.ps1: line 384
2022-11-22T06:36:09.101000900Z  at <ScriptBlock>, <No file>: line 1
...

Full output of docker inspect
[
    {
        "Id": "04f9dc3773cc8b4b84dbe3c8accd99d3dc03e5dca1d61720ab679aa636ad3ae8",
        "Created": "2022-11-07T12:58:08.006305Z",
        "Path": "powershell -Command $ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; .\\Run\\start.ps1",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 1364,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2022-11-24T07:55:11.3269524Z",
            "FinishedAt": "2022-11-23T15:40:38.7697609+01:00",
            "Health": {
                "Status": "healthy",
                "FailingStreak": 0,
                "Log": [
                    {
                        "Start": "2022-11-24T11:47:33.4410191+01:00",
                        "End": "2022-11-24T11:47:33.8111448+01:00",
                        "ExitCode": 0,
                        "Output": ""
                    },
                    {
                        "Start": "2022-11-24T11:48:03.8206874+01:00",
                        "End": "2022-11-24T11:48:04.206132+01:00",
                        "ExitCode": 0,
                        "Output": ""
                    },
                    {
                        "Start": "2022-11-24T11:48:34.2194472+01:00",
                        "End": "2022-11-24T11:48:34.602338+01:00",
                        "ExitCode": 0,
                        "Output": ""
                    },
                    {
                        "Start": "2022-11-24T11:49:04.6094409+01:00",
                        "End": "2022-11-24T11:49:05.0551709+01:00",
                        "ExitCode": 0,
                        "Output": ""
                    },
                    {
                        "Start": "2022-11-24T11:49:35.0898006+01:00",
                        "End": "2022-11-24T11:49:35.4686882+01:00",
                        "ExitCode": 0,
                        "Output": ""
                    }
                ]
            }
        },
        "Image": "sha256:fb67a71dbb1c6f16d8cab7f6d18f772330815c9203f72d93662730b1cfc848a3",
        "ResolvConfPath": "",
        "HostnamePath": "",
        "HostsPath": "",
        "LogPath": "C:\\ProgramData\\Docker\\containers\\04f9dc3773cc8b4b84dbe3c8accd99d3dc03e5dca1d61720ab679aa636ad3ae8\\04f9dc3773cc8b4b84dbe3c8accd99d3dc03e5dca1d61720ab679aa636ad3ae8-json.log",
        "Name": "/bc210-46853",
        "RestartCount": 0,
        "Driver": "windowsfilter",
        "Platform": "windows",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": [
            "6af33264b62510953495d377e629dad1417e3b70ecc3398ba49ab668447fbd04"
        ],
        "HostConfig": {
            "Binds": [
                "c:\\bcartifacts.cache:c:\\dl",
                "C:\\ProgramData\\BcContainerHelper:C:\\ProgramData\\BcContainerHelper",
                "C:\\ProgramData\\BcContainerHelper\\Extensions\\bc210-46853\\my:C:\\Run\\my",
                "c:\\windows\\system32\\drivers\\etc:C:\\driversetc"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "unless-stopped",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "",
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 0,
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "hyperv",
            "CpuShares": 0,
            "Memory":<PHONE_NUMBER>,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": null,
            "ReadonlyPaths": null
        },
        "GraphDriver": {
            "Data": {
                "dir": "C:\\ProgramData\\Docker\\windowsfilter\\04f9dc3773cc8b4b84dbe3c8accd99d3dc03e5dca1d61720ab679aa636ad3ae8"
            },
            "Name": "windowsfilter"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "c:\\bcartifacts.cache",
                "Destination": "c:\\dl",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            },
            {
                "Type": "bind",
                "Source": "c:\\windows\\system32\\drivers\\etc",
                "Destination": "c:\\driversetc",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            },
            {
                "Type": "bind",
                "Source": "c:\\programdata\\bccontainerhelper",
                "Destination": "c:\\programdata\\bccontainerhelper",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            },
            {
                "Type": "bind",
                "Source": "c:\\programdata\\bccontainerhelper\\extensions\\bc210-46853\\my",
                "Destination": "c:\\run\\my",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
        ],
        "Config": {
            "Hostname": "bc210-46853",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "1433/tcp": {},
                "443/tcp": {},
                "7045/tcp": {},
                "7046/tcp": {},
                "7047/tcp": {},
                "7048/tcp": {},
                "7049/tcp": {},
                "7083/tcp": {},
                "80/tcp": {},
                "8080/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "databaseServer=",
                "filesOnly=False",
                "securePassword=76492d1116743f0423413b16050a5345MgB8AGoAUgBYADgAYQBLAEgAUgA4AGQAMgBsAFMANgBzAEkARABqAEcAOQBhAHcAPQA9AHwAZABiADUANQAwAGMANwBiAGYAOABlADgANAAwAGIANgA2ADcANAA1ADAANQA2ADYAZQAzADUANQA1ADQAZgA0ADIAYwBjAGYAZQA0ADEANQAxAGQAZAA3ADAANgA5ADAANQA2AGIANgBkAGMAMwAzADEAMAA1ADkAOQBmAGIAZAA=",
                "accept_outdated=Y",
                "databaseInstance=",
                "isBcSandbox=N",
                "artifactUrl=https://bcartifacts.azureedge.net/onprem/21.0.46256.46853/w1",
                "licenseFile=c:\\run\\my\\license.flf",
                "auth=NavUserPassword",
                "username=admin",
                "locale=en-US",
                "passwordKeyFile=c:\\run\\my\\aes.key",
                "ExitOnError=N",
                "enableApiServices=Y",
                "useSSL=N",
                "removePasswordKeyFile=Y",
                "accept_eula=Y",
                "DOTNET_RUNNING_IN_CONTAINER=true",
                "COMPLUS_NGenProtectedProcess_FeatureEnabled=0"
            ],
            "Cmd": [
                "powershell -Command $ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; .\\Run\\start.ps1"
            ],
            "Healthcheck": {
                "Test": [
                    "CMD",
                    "powershell",
                    ".\\Run\\HealthCheck.ps1"
                ],
                "Interval":<PHONE_NUMBER>0,
                "Timeout":<PHONE_NUMBER>0
            },
            "ArgsEscaped": true,
            "Image": "mcr.microsoft.com/businesscentral:10.0.19041.1415",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "country": "w1",
                "created": "202208181254",
                "eula": "https://go.microsoft.com/fwlink/?linkid=861843",
                "maintainer": "Dynamics SMB",
                "nav": "",
                "osversion": "10.0.19041.1415",
                "platform": "21.0.46384.46844",
                "tag": "<IP_ADDRESS>",
                "version": "21.0.46256.46853"
            }
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "04f9dc3773cc8b4b84dbe3c8accd99d3dc03e5dca1d61720ab679aa636ad3ae8",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "1433/tcp": null,
                "443/tcp": null,
                "7045/tcp": null,
                "7046/tcp": null,
                "7047/tcp": null,
                "7048/tcp": null,
                "7049/tcp": null,
                "7083/tcp": null,
                "80/tcp": null,
                "8080/tcp": null
            },
            "SandboxKey": "04f9dc3773cc8b4b84dbe3c8accd99d3dc03e5dca1d61720ab679aa636ad3ae8",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "nat": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "a618480efd2374d1a6ddfb908d5852dce07d1f58867c8df750e32880fe3cf665",
                    "EndpointID": "015a6af27be43131b633f47b838de5c56f9522f19f0ee53df6c6fc38f6dd9b6a",
                    "Gateway": "<IP_ADDRESS>",
                    "IPAddress": "<IP_ADDRESS>",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "00:15:5d:34:15:63",
                    "DriverOpts": null
                }
            }
        }
    }
]

I will just add link to the twitter with one answer: https://twitter.com/Sc00Fi/status/1595348091909070848

Hi @kine, I'm the same person :) If you look, I linked this issue in a Twitter thread. @freddydk insisted that I report it here along with the rest of the information required by the template.

Did you find a solution to this issue?
or is the issue still happening?
Looking in the output, it looks like there is a delay between the "Ready for connections!" and the following Initializing
2022-11-07T12:59:47.869151100Z  Container Free Physical Memory is 6.4Gb
2022-11-07T12:59:47.869151100Z
2022-11-07T12:59:47.869785600Z  Initialization took 23 seconds
2022-11-07T12:59:47.870360700Z  Ready for connections!
2022-11-08T07:39:41.371069400Z  Initializing...
2022-11-08T07:39:41.586898500Z  Setting host.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
2022-11-08T07:39:41.661282900Z  Setting gateway.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
2022-11-08T07:39:41.664760300Z  Setting kubernetes.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)

and also here:
2022-11-22T06:22:59.911733200Z
2022-11-22T06:22:59.921524200Z  Initialization took 24 seconds
2022-11-22T06:22:59.921971500Z  Ready for connections!
2022-11-22T06:36:08.583097600Z  Initializing...
2022-11-22T06:36:08.936268700Z  Setting host.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
2022-11-22T06:36:08.991570100Z  Setting gateway.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
2022-11-22T06:36:09.000746700Z  Setting kubernetes.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)

Do you know what happens here?
Did this happen after he restarted his computer?
or updated docker?

Hi @freddydk
at that time, we solved by manually changing the value.
Since then everything has been working without a problem.
At that time it was set up as a new laptop. Everything worked as expected for some days. One day in the morning (Immediately after the fresh start ) this error showed up in the logs. It might be related to some win/docker upgrades, but I can't confirm.
BR,
Bojan

Ok, will close this issue - and see if this ever re-appears.

I will try to add some resilience to this

:-) - the reopen was me - I pressed the button manually:-)


Type inferred keyframe animations

Hey there,
I've added new methods to the composition animation toolkit that infers a lot of the things you have to state explicitly in the current api (because it needs to adhere to the winRT api restrictions)
Instead of writing this:
Vector3KeyFrameAnimation offsetAnimation = compositor.CreateVector3KeyFrameAnimation();
offsetAnimation.InsertKeyFrame(0.0f, new Vector3(0, 0, 0));
offsetAnimation.InsertKeyFrame(0.5f, new Vector3(0, 0, -2000));
offsetAnimation.InsertKeyFrame(1.0f, new Vector3(0, 0, 0));
offsetAnimation.Duration = TimeSpan.FromMilliseconds(8000);
offsetAnimation.IterationBehavior = AnimationIterationBehavior.Forever;
visual.StartAnimation("Offset", offsetAnimation);

you can now write this
visual.StartAnimation(r => r.Offset, new Vector3(0, 0, 0), new Vector3(0, 0, -2000), new Vector3(0, 0, 0)).Duration(8000).Loop();

This api infers the type of the property being animated (and its name) and takes keyframes directly as arguments, it then spaces them out evenly over the animation
What do you think? would love any feedback you have :)

This is pretty cool! A few thoughts/questions :)

I assume you evenly space out the KeyFrames? If so, any particular reason you didn't want to have the timestamp of the keyframe be an additional argument?
Can you use another lamda expression as an argument if you wanted to create an Expression KeyFrame?
Is there a way to input easing functions into this notation?

Yes, keyframes are evenly spaced out, i'm not sure I understand what you mean though, since they are evenly spaced I don't need to have the timestamp(?) if you do want to set the timestamp, you cant really use this shorthand. The values argument is actually a params argument, so you an specify any number of values there, so I havent figured out a good way to also specify the timestamps. My thinking was that this would be used for small animations where even spacing is fine.
You cant use these methods to insert expression keyframes, i've been thinking about how to incorporate that, while retaining the strong typing for the values, it might actually be possible with some implicit type conversion to an intermediary keyframe type... have to think about that
Right now you can only add easing functions at the first or last frame using the EaseIn/EaseOut methods:
visual.StartAnimation(r => r.Rotation, 360).EaseOut(compositor.CreateLinearEasingFunction()).Start();

Also, besides starting the animations directly there are also CreateAnimation overloads that don't start right away, so you can tweak the animation or reuse it

Sorry, by timestamp I mean where along the normalized timeline from 0.0 -> 1.0 the Keyframe gets inserted at. My initial guess was this notation is targeted towards the simpler KFAs with less nuances and not a full replacement to the current model to creating KFAs. But super cool stuff! Keep us posted if you decide to add more to this :)

Right, absolutely, this is not meant to be a replacement, only a shorthand :) my plan is to enable you to drop down to the actual animation types and add to them (you can do this now as well but its not super convenient) and also get the type inference and avoid strings
I have been thinking about adding more features to the actual expression system like a Time property or dot/cross product functions but i'm only thinking about that right now. basically i'd add a hidden composition object with some properties like a constantly increasing value (for time) and expression that calculate the dot/cross product. I figure you're already working on less hacky ways to do that though so i've put it on low prio :)

Very cool stuff! I would echo the feedback that supporting non-uniformly-distributed key frames and expression key frames would be nice as these are very common usages for the API's. Looking forward to see how this evolves!

@aL3891 @patsiu @JasterAtMicrosoft
Check out KeyFrameAnimation<T> generic class in CompositionExpressionToolkit.
It is a generic class which provides a common interface to the various types of animation classes deriving from KeyFrameAnimation.
It also contains a set of APIs which can be chained together.

Allright, I've made some changes :)
Now its possible to write this:
visual.CreateAnimation(v => v.RotationAngleInDegrees, 90, KeyFrame.Create(0.75, 180f), 360).Start();

So whats going on here? Basically the apis now accept a KeyFrame insread of just a TValue. This class also has a implicit converstion from TValue to KeyFrame so the original call pattern still works (where values are supplied as is) The non-generic KeyFrame class is used to create KeyFrame objects while also enabling type inference.
KeyFrame.Create can take either values or expressions that return the correct type:
visual.CreateAnimation(v => v.RotationAngleInDegrees, 90, KeyFrame.Create<float>(c => c.StartingValue + 90), 360).Start(); // small niggle, type inference doesn't work here

it can also accept a time stamp, 0.75 in this case and/or an easing function:
LinearEasingFunction linear = compositor.CreateLinearEasingFunction();
visual.CreateAnimation(v => v.RotationAngleInDegrees, 90, KeyFrame.Create(0.75, 180f, linear), 360).Start();

So you might wonder then, what happens when you supply the timestamp for some keys and not others? Currently those keys are marked as "floating" and are interpolated between the keys that have explicit timestamps, or 0 and 1 if the first or last key is not fixed. for example:
visual.CreateAnimation(v => v.RotationAngleInDegrees, 0, 50, KeyFrame.Create(0.25, 100f), 150, KeyFrame.Create(0.75, 200f), 250, 300);

Here the 50 degree keyframe will have its time interpolated between 0 and 0.25, the 150 degree frame will have its time interpolated between 0.25 and 0.75 and the 250 degree frame will occur at the midpoint between the 200 and 300 keyframes
I'm not sure I'm explaining it very well but I think it makes sense :) the floating keys spread out evenly between the fixed ones and the "edges"
Additionally, you can now insert key frames after the animation is initially created:
var ani = visual.CreateAnimation(v => v.RotationAngle, 0, 180);
ani.InsertKeyframe(KeyFrame.Create(360f));

This also supports all the KeyFrame.Create options
You can also access and change existing keyframes:
ani[ani.Count - 1].Value = 270;

This also creates a problem, what happens if you insert a keyframe with timestamp = 0.1? what happens if you change the last keyframes timestamp to 0.1? What happens is that the api will sort the fixed keys and redistribute the floating ones so that the animation will make sense.
Finally, I've removed the StartAnimation methods because I had a bit of a brain fart and didn't realize that they will start the animations immediately before the following fluent method calls are actually evaluated. this still makes sense though because you can still fluently call Start() and animations should be reused anyway.
These changes are not on nuget yet, but they are pushed to the repo. I do need to to some additional cleanup and testing before I release it properly though

@ratishphilip That's interesting! One thing that I've really wanted to have though was the capture of the property that was animated, so that it doesn't have to be repeated each time the animation is started, that's why the TargetedKeyFrameAnimation are a bit more chunky

@aL3891, @ratishphilip  Cool stuff guys! I'll have to play around with both of these sometime soon :)

So I guess this is kind of obsolete now with the new expression builder? :)

Expression Builder definitely helps out with a number of authoring issues for Expressions and for KeyFrameAnimations, ExpressionKeyFrames. That said, it doesn't go into shorthands/helpers for KeyFrameAnimations like your tookit does. Feel free submit ideas of what to add on or expand Expression Builder (or even better, submit a PR! :) )

oh, I didn't realize it was open source, I thought it was a part of the sdk it self, i'll definitely check that out and see if some of the stuff in my lib can be moved over


Tool Animations for Actions

A tool animation should appear next to the progress bar when mining, digging, watering, etc.

We currently have one for mining, however it doesn't take into account which pick you are using. Also, it would be nice if it existed for the other actions mentioned. Additionally, it would be nice if you saw a thought bubble style animation for when other people were performing an action (like in Glitch).


Update request body with target model

https://github.com/kubernetes-sigs/llm-instance-gateway/blob/fcad109df9199e1b8d04c0219f364f0968249580/pkg/ext-proc/handlers/request.go#L82

Update the request body via BodyMutation
Update "Content-Length" accordingly
Test e2e to make sure envoy config still works

Closed by https://github.com/kubernetes-sigs/llm-instance-gateway/pull/37


Revert "Remove filtering by organisation"

And restore the functionality. This functionality was removed because
at the time it was believed not to be feasible to do with the
Publishing API without adding functionality there.
However, it turns out this was possible all along. This commit reverts
the removal of the functionality, as well as the removal of the
related tests, and adjusts the tests so that they still work and
pass.
This reverts commit 1293ae392f103df24b4ad3c34d6b0330dec9ac15 among
other things.

@binaryberry @issyl0 you might be well placed to review this :)


Creating a release didn't trigger GitHub Action

It appears that the issue was caused by the tag associated with the release being older than the workflow itself.


FIX: Strip out surface-related processing

Based on @eilidhmacnicol's branch.

resolving conflicts - please do not commit to this branch

resolving conflicts - please do not commit to this branch


moved the size unit into a new sizeUnit attribute in order to make the JSON response directly usable by client scripts

Hi,
I moved the size unit into a new sizeUnit attribute in order to make the JSON response directly usable by client scripts.
I hope you'll find this interesting and will merge it to the master branch.

Looks helpful, thanks.


[MoltenVK] Assertion  when  clearing only the depth buffer

I am getting an exception (Metal API validation enabled)
When clearing only the Depth buffer of a texture format MTLPixelFormatDepth32Float_Stencil8.
In that case the stencilAttachment in not filled and is causing an assertion.
I made a fix that works for me .
https://github.com/elix22/Urho3D/commit/e70b88b50d03f4c5039425337dc7413eaaa8d146

@elix22
Based on your code fix...you are referring to clearing an image (vkCmdClearDepthStencilImage)...and NOT an attachment (vkCmdClearAttachments)...correct?
I am not able to trigger a Metal assertion by clearing only the depth component of  MTLPixelFormatDepth32Float_Stencil8 image.
What is the Metal assertion that you are encountering?
Do you have a small test app that demonstrates the issue? For example...you could try to modify cube.c in the MoltenVK Cube demo to trigger the assertion.

It is 100% reproducible with my code :

git clone https://github.com/elix22/Urho3D.git
./cmake_ios-metal.sh
open the generated Xcode project in "build-xcode-metal" folder
remove my fix from the code
build  and run sample 09_MultipleViewports
while the sample running press 'F' on your keyboard

validateRenderPassDescriptor:634: failed assertion `When depth and stencil are used together, the texture bound to the depth and stencil render pass attachments must be the same depth and stencil texture.'

@billhollings were you able to reproduce this issue using my code ?

@elix22
Sorry for the delay in getting to this...and thanks for prompting me! I've been busy on other updates.
After commenting out your fix, I am not able to trigger the validateRenderPassDescriptor.
As an iOS app...there is no keyboard (I actually have an external iPad keyboard attached...but the app doesn't recognize its keypresses)...but there is an FXAA button on the screen. When I press that...there is no validation error...but it does result in a crash on drawIndexedPrimitives: several seconds later. This happens with or without you fix in place.
Can you provide me with additional steps to replicate what you were seeing, please?
I've attached screenshots of both the app UI (showing onscreen buttons) and the crash.
BTW...you'll notice on the crash screenshot that MoltenVK is logging what seems to be shader compilation happening on every frame. Is this intentional?

Closing due to age. Please reopen and provide further info if this is still an issue.


Calling a Dynamic Language Library

First thing I had to do was to set the DynamicIronPythonSample project to the start up project. Next, I had to change the file path to @"\IronPython 2.7\Lib". The last step I had to perform was to copy the IronPython 2.7 folder from programs folder to programs (x86) folder because the error I received in the console showed me the program was looking in that folder and could not find the file. Once I made these changes, it worked fine. You may want to add these details to your Walkthrough. Otherwise people will be running the wrong project.

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

ID: f63fb701-91e9-5723-add6-33d2288431a3
Version Independent ID: e9d33444-b5f7-96d4-9c33-dd29913349d5
Content: Walkthrough: Creating and Using Dynamic Objects (C# and Visual Basic)
Content Source: docs/csharp/programming-guide/types/walkthrough-creating-and-using-dynamic-objects.md
Product: dotnet-csharp
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

Would it be possible to rather migrate the walkthrough to another one? Ironpython was discontinued some time ago, so it's not compelling to get and install the library...


Access from static members to members from extensions.

It crashes during compilation, but does not show an error while writing code.
void main() {
  print(A.meth);
}

extension ExtA on A {
  String get value => '777';
}

class A {
  static String get meth => value;
}

You cannot access the data in the extension class from the main class.
void main() {
  A a =A();
  print(a.value);
}

extension ExtA on A {
  String get value => '777';
}

class A {
  //somethink
}

you can use Like this

Seems like a missing compile time error in the analyzer, it seems to resolve value in a static method thinking that it refers to the extension member, which does not seem to be correct to me /cc @scheglov

You cannot access the data in the extension class from the main class.
void main() {
  A a =A();
  print(a.value);
}

extension ExtA on A {
  String get value => '777';
}

class A {
  //somethink
}

you can use Like this

Of course I can’t. That's why I created this issue. Because the analyzer allows this.

https://dart-review.googlesource.com/c/sdk/+/148501

The analyzer now reports:

error • Instance members can't be accessed from a static method. • a.dart:10:29 • instance_member_access_from_static

The analyzer now reports:

error • Instance members can't be accessed from a static method. • a.dart:10:29 • instance_member_access_from_static


Bug: Hero video covers title and can't be muted

Observed on Chrome 55 Linux. Not a problem in Firefox because the video does not get rendered.
I assume SMP changed how videos in 'background' mode work, because I noticed that:

the video no longer spans the full width of the page
the title text is hidden
the 'Audio off/on' button is hidden, meaning that the audio cannot be muted

The hidden title and audio button can be made visible by changing the z-index of .hero-wrapper, though the audio button still can't be clicked.

Thanks Punit. Fixed in #3.

Thanks!


HL-349 | Fix redirect after submitted application

Description :sparkles:
Issues :bug:
Testing :alembic:
Screenshots :camera_flash:
Additional notes :spiral_notepad:

Codecov Report

Merging #687 (cabd723) into develop (ba4d53a) will decrease coverage by 39.38%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##           develop     #687       +/-   ##
============================================
- Coverage    63.09%   23.71%   -39.39%
============================================
  Files          753      102      -651
  Lines        18683     2463    -16220
  Branches      1812      619     -1193
============================================
- Hits         11788      584    -11204
+ Misses        6538     1817     -4721
+ Partials       357       62      -295

Impacted Files
Coverage Δ

...forms/application/step5/useApplicationFormStep5.ts
0.00% <0.00%> (ø)

...forms/application/step6/useApplicationFormStep6.ts
0.00% <0.00%> (ø)

...eteli/employer/src/utils/application-form.utils.ts

backend/benefit/calculator/enums.py

backend/benefit/users/utils.py

...s/fields/fieldErrorMessage/FieldErrorMessage.sc.ts

backend/shared/shared/azure_adfs/views.py

.../utils/components/get-already-assigned-page-api.ts

...d/shared/src/components/messaging/Messaging.sc.tsx

.../applications/migrations/0021_allow_blank_batch.py

... and 643 more

Continue to review full report at Codecov.

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


Reusing Join and Select with different Where

In my use case I am always constructing the same object from the query output and would like to reuse all the "object construction" code with different filtering, kind of like I would do in a traditional ORM like Prisma with custom include object.
Here is what my query looks like:
const experience = await this.prisma.withExtensions()
    .$kysely
    .selectFrom("Experience")
    .selectAll("Experience")
    .leftJoin("ExperienceDetails", (join) =>
      join.onRef("Experience.detailsId", "=", "ExperienceDetails.id"),
    )
    .leftJoin("Like", (join) =>
      join.onRef("Like.experienceId", "=", "Experience.id"),
    )
    .leftJoin("View", (join) =>
      join.onRef("View.experienceId", "=", "Experience.id"),
    )
    .where("Experience.id", "=", id)
    .selectAll("Experience")
    .selectAll("ExperienceDetails")
    .select("Experience.id as expId")
    .select((eb1) => [
      jsonObjectFrom(
        eb1
          .selectFrom("ImageFile")
          .selectAll("ImageFile")
          .select((eb2) => [
              "ImageFile.fileId as id",
              "ImageFile.fileId as mimeType",
              jsonArrayFrom(
                eb2
                  .selectFrom("ImageVersion")
                  .selectAll("ImageVersion")
                  .whereRef("ImageVersion.imageFileId", "=", "ImageFile.fileId")
              ).as("ImageVersions")
          ])
          .whereRef("ImageFile.fileId", "=", "ExperienceDetails.thumbnailId")
      ).as("Thumbnail"),
      jsonObjectFrom(
        eb1
          .selectFrom("User")
          .selectAll("User")
          .select((eb2) => [
            jsonObjectFrom(
              eb2
                .selectFrom("ImageFile")
                .selectAll("ImageFile")
                .select((eb3) => [
                  "ImageFile.fileId as id",
                  "ImageFile.fileId as mimeType",
                  jsonArrayFrom(
                    eb3
                      .selectFrom("ImageVersion")
                      .selectAll("ImageVersion")
                      .whereRef("ImageVersion.imageFileId", "=", "ImageFile.fileId")
                  ).as("ImageVersions")
              ])
                .whereRef("ImageFile.fileId", "=", "User.profilePictureId")
            ).as("ProfilePicture")
          ])
          .whereRef("User.id", "=", "Experience.ownerId")
      ).as("Owner"),
      jsonArrayFrom(
        eb1
          .selectFrom("ModerationJob")
          .selectAll("ModerationJob")
          .whereRef("ModerationJob.experienceId", "=", "Experience.id")
      ).as("ModerationJobs"),
      eb1.fn.count("Like.userId").over(
        ob => ob.partitionBy("Like.experienceId")
      ).as("likes"),
      eb1.fn.count("View.userId").over(
        ob => ob.partitionBy("View.experienceId")
      ).as("views"),
      eb1.exists(eb2 => eb2.selectFrom("Like").selectAll("Like").whereRef("Like.experienceId", "=", "Experience.id").where("Like.userId", "=", claimantId)).as("liked"),
      eb1.exists(eb2 => eb2.selectFrom("Bookmark").selectAll("Bookmark").whereRef("Bookmark.experienceId", "=", "Experience.id").where("Bookmark.userId", "=", claimantId)).as("bookmarked"),
    ])
    .executeTakeFirstOrThrow();

And now I want similar queries to get, for example, all the published experiences or all the experience with certain number of likes. Is it possible to create such without copy-pasting the majority of this code?

The query builder is immutable. Meaning you can do this: https://kyse.link/mdY12

Thank you!


Fixed typos in mvd-extendingzlux/ all versions

Your checklist for this pull request
🚨Please review the guidelines for contributing to this repository.

[ ] If the changes in this PR is part of the next future release, make this pull request against the docs-staging branch which will be published at the next release boundary. If the changes in this PR are part of the current release, use the default base branch, master. For more information about branches, see https://github.com/zowe/docs-site/tree/master#understanding-the-doc-branches.

[ ] If this PR relates to GitHub issues in docs-site or other repositories, please list in Description, prefixed with close, fix or resolve keywords.

Description (including links to related git issues)
Please describe your pull request.
Fixed issue #2727
typos in all versions of /extend/extend-desktop/mvd-extendingzlux/
:heart:Thank you!

@DivergentEuropeans why are some checks returned false and how can I rectify it.

@sidharthbh8 The broken link scanner report errors begin here: https://github.com/zowe/docs-site/actions/runs/5098070646/jobs/9205736019?pr=2896#step:5:2772
and they're probably mostly valid but I believe this includes ALL errors, not just from the parts of your PR, because I have a link checker error too but I didn't add any links

They should still be fixed though hopefully

Yup, didn't made any changes to docs/user-guide/install-zowe-smpe.md which it flagged

@sidharthbh8 -- Even if the Link Checker fails, it is still possible to merge the PR. Just FYI.
I will approve this PR.


Allow backpack to run nodemon with a relative path

By running...
backpack dev --backpack--relative-script-path

...Nodemon will spawn a relative (to process.cwd()) script instead of one from a absolute path.
There is no difference to use a relative path instead of the absolute one if you ensure that nodemonOptions.cwd will be the same as the path we're using as base for our relative one. Since nodemon defaults to process.cwd(), I hard-coded process.cwd() as our base (because backpack doesn't offer CLI options and I didn't want to change that) to generate the relative path.
The flag... ok, maybe it is overkill, but is just to ensure that current users of backpack will have the same behavior as before. And --backpack--relative-script-path will most likely be never used inside their app, so I'm removing it.
The main reason behind it is to allow white spaces in path, fixing #59, #71 and #72. This will not fix white spaces inside the project path (which will most likely be ./build/main.js for everyone, so not a big problem here), but I can use whatever I want for the project path itself (Like /mnt/server/My Customer Company Name/Projects/ or C:\Users\Some Windows Sad-Person\Documents).

After looking at the changes that you've made in your code, I made a commit to my own nodemon_script branch to verify if it'll work with Windows 10 (with white spaces in the file path) and it does. https://github.com/jaredpalmer/backpack/pull/72/commits/9b384518acaa45f5f4a1dab95267c82df188ef76
Now, I don't know if it's necessary to add an extra flag because I can't think of any side-effects that might occur with this change.

@abesamiskevin thanks for taking your time, testing and everything else ☺

Now, I don't know if it's necessary to add an extra flag because I can't think of any side-effects that might occur with this change.

To be honest, me neither...

@jaredpalmer any ETA on this topic?


Incorrect sorting

This is the system file chooser so there's only lexicographical sorting. Prepend zeros to have it in the expected order.

https://user-images.githubusercontent.com/51048550/214896119-d0679d57-f929-4cd0-93b2-e08d3c53c6f3.mp4

After I added 0, those 2 videos do not want to open, lol


PCL optimized for .NET 4.5

Hopefully right this time.

Let me cherry-pick anew and resubmit.
Sorry about all the mess, and thanks for bearing with me.


New CallOut

Description of the change:
Reason for the change:
Link to original source:

Closes #

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

thanks for the review @rosariopfernandes!

Hello @doilio,Thanks again for the PR! It's HACKTOBERFEST! We want to show our appreciation by sending                                              you some special Hacktoberfest swag. If you have not already, could you please fill out                                              this form so we can send it to you? Thanks!                                             Team SendGrid DX


Apache Beam support for Pulsar

I would like to use Apache Beam and Pulsar as my source, for writing my batch or streaming jobs.
Please consider adding a PulsarIO class to the sdk like Kafka (https://beam.apache.org/releases/javadoc/2.4.0/org/apache/beam/sdk/io/kafka/KafkaIO.html)
I found the pulsar-flink and pulsar-spark folders, but i really like the Apache Beam API.
Maybe you could add a pulsar-beam example or subfolder

this should be a request in the beam repo.

okay, looks like there is a story for that (https://issues.apache.org/jira/browse/BEAM-8218), but anyway it would be a push for pulsar. Maybe working together on this is an option.

@svenhornberg there is a discussion in BEAM mailing list. We will collaborate with beam community on adding a pulsar connector in BEAM repo.

Any updates on this matter? Would be interested in a Beam Connector too :)

@rfuerst87 - the beam community is doing the work. You can track the progress here - https://issues.apache.org/jira/browse/BEAM-8218
I will follow up there as well.

@sijie Thanks for the update. Thought you might have some more insights from the mailing list. Will follow the topic in JIRA.

I've taken over the ticket. I'm familiar with Beam, less so with Pulsar (I want to learn Pulsar, creating the IO). I'll be starting locally with Pulsar in standalone mode, as soon as I have a prototype I'll keep updates on this thread.

@alexvanboxel awesome! much appreciated your help!
You can also check how Pulsar was integrated with Spark and Flink as a reference. The pulsar-flink one is the one is contributed to upstream Flink as FLIP-72 and
https://github.com/streamnative/pulsar-spark
https://github.com/streamnative/pulsar-flink
@yjshen can help answer any questions about such integrations.

Great, I appreciate the help. I can happily report that after a few hours I already got some basic Google Cloud Pubsub -> Apache Beam -> Pulsar pipeline working (on the local runner). Don't get too excited to, still a lot of work to be done.
I'll have a look at the integrations.

Apache Beam -> Pulsar

Cool, :)

Any update?


v-validate on custom component does not inherit scope value added on form element

Versions:

VueJs: 2.5.10
Vee-Validate: 2.0.0-rc.26

Steps To Reproduce:
Reproduction: https://jsfiddle.net/8b0880s2/

Enter some value into one of the two input fields
Clear value to show the errors
Now you can see that field1 has correct scope name, but field2 which v-validate directive was used on custom component does not properly inherit scope name.

Is this a bug or some limitation of v-validate directive on custom components? I can't find anything about it in the documentation.

This is a limitation, native inputs have form property which allows vee-validate to get the form instance without hassle, however custom components do not have a way to do that.

however custom components do not have a way to do that.

Right, but only when root element is not an input element, like in my CustomInput which has div element. But i don't think that should be a big problem and the issue can be easily fixed. We just need to do check if directive vnode has a reference to component instance, if yes then querySelector for input element with given name attr
I made some demo: https://jsfiddle.net/z11xjm6x/
What do you think?

Your solution works great for your use case, When the component root Element is a native input element it may be able to pick it up. But its not guaranteed, for example a transition component may block it.
Also if a component does not have a native input in its implementation, this quickly and easily breaks since there is no specification unlike native inputs, so I prefer to leave it as it is for now.


Get SVG paths for link boxes and link them to sketches

SVG path: fill attribute
Id of corresponding group needs {linkTo: id} entry in link-box section in textcritics file.

Fixed in 06d30070458be05d9618f2532871a9e6d632c847


Feature Request: Metrics support for FileObserver

As stated in the docs:

Currently, the information is collected only by the Mongo Observer. Metrics are stored in the metrics collection of MongoDB and are identified by their name (e.g. “training.loss”) and the experiment run id they belong to.

However I see no reason why this doesn't also work for a FileObserver. It is in essence just a JSON dump of a python dict...
Please add this support.

In fact the file storage observer does collect metrics and there recently was a PR that added this info to the docs. However, the doc build is failing. @Qwlouse could you please investigate why the docs are not building properly.

@JarnoRFB  ok... at the moment _run.log_scalar(name, val, iter) doesn't make it to the metrics.json file...

I've also tried manually adding the metric via _run.info

# anotherfile.py
def foo(sacred_run=None):
    if sacred_run is not None:
        if 'my_metric' not in sacred_run.info: sacred_run.info['my_metric'] = []
        sacred_run.info['my_metric'].append({'value': 10, 'iteration': 1})

the info dict is not around in run.json or in metrics

@JarnoRFB  I figured out the error.
In another Issue I mentioned the temp dir for FileObserver.
At the moment I was just doing:

@ex.automain
def main(...):
    a_file = os.path.join(experiment_dir, _run._id, my_artifact_file)
    # save to a_file
    _run.add_artifact(a_file)

and in experiment.log

WARNING:my.experiment.module:An error ocurred in the '<sacred.observers.file_storage.FileStorageObserver object at 0x1c29717da0>' observer: '/experiments//<artifact_file> and '<project-dir>/experiments/<ID>/<artifact_file> are the same file

WARNING:my.experiment.module:The observer '<sacred.observers.file_storage.FileStorageObserver object at 0x1c29717da0>' failed at some point during the run.

Sp FileStoreObserver fails silently in this case and prevents metrics from being logged.

Ok so you wrote the artifact file where the FileStorageObserver wanted to write the file? Did the warning appear on the console or just in the log file?

@JarnoRFB  just in log

Ok that needs investigation :D

@JarnoRFB There was some change in the way github handles webhooks which caused the docs build to fail. But that should be fixed now.