WebP links being generated, no webp in content

This may be something very weird with my storage adapter, but when using source I have my images generated with a formats/webp path but my content directory has no formats directory and no .webp
The articles (and images) were created while using source. The srcsets for the other formats are generated.

Hey @elijahsgh, do you have a live link to your website?

https://resolvereptiles.com
The webp links are removed from the template as mentioned above.

Would you be able to provide some steps to reproduce the issue?

Create a post using Source theme
Upload a webp image as a feature image and/or a content image in the editor
Check the content/images directory, but there's no format directory and .webp images in there

Is that the correct way to test?

Would you be able to provide some steps to reproduce the issue?

Create a post using Source theme
Upload a webp image as a feature image and/or a content image in the editor
Check the content/images directory, but there's no format directory and .webp images in there

Is that the correct way to test?

That's exactly what I did.
There are a couple of items. I use a modified version of the Google Cloud Storage adapter (GCP buckets). In that bucket there is no format directory nor any .webp, etc.
If you want me to try creating the directories on the volume I can. I don't see any errors or anything and I assume I would if it was just a missing directory.

I think

Would you be able to provide some steps to reproduce the issue?

Create a post using Source theme
Upload a webp image as a feature image and/or a content image in the editor
Check the content/images directory, but there's no format directory and .webp images in there

Is that the correct way to test?

That's exactly what I did. There are a couple of items. I use a modified version of the Google Cloud Storage adapter (GCP buckets). In that bucket there is no format directory nor any .webp, etc.
If you want me to try creating the directories on the volume I can. I don't see any errors or anything and I assume I would if it was just a missing directory.

I'm pretty sure this is unrelated to any theme at all, it could be related to cache adapter, storage adapter or file permissions depending on how are you actually running Ghost (and obviously the version you are running).
Regards!

I think what we learned here is that the webp stuff is generated on access by ghost. It doesn't matter if you upload in JPEG or webp format or what - it tries to create a formats/webp/.jpeg and the templates serve those as webp.
When you're using a storage adapter this process doesn't happen. It would make more sense for ghost to automatically make webps as part of the resizing process but it seems like it doesn't do this. The resized images go to the storage adapter (GCP in my case) but the webps are never generated since Ghost isn't serving them.
Here's the line in the Source theme where the webp links are generated:
https://github.com/TryGhost/Source/blob/main/partials/post-card.hbs#L6
This will come back with a JPEG extension.
This is a very weird process.
My interim solution is to just run a python script to iterate through the storage adapter (GCP bucket) items, resize, reencode, upload to formats/webp, etc. It's very silly. Alternatively if you just remove instances of "format=webp" then Ghost works normally with the storage adapters.
The storage adapters are all 6-8 years out of date and unmaintained. I'm not sure if the webp functionality was intended to be added to them but never was or...? There's definitely a disconnect here on how the webp stuff is supposed to work.

I think what we learned here is that the webp stuff is generated on access by ghost. It doesn't matter if you upload in JPEG or webp format or what - it tries to create a formats/webp/<FILENAME>.jpeg and the templates serve those as webp.
When you're using a storage adapter this process doesn't happen. It would make more sense for ghost to automatically make webps as part of the resizing process but it seems like it doesn't do this. The resized images go to the storage adapter (GCP in my case) but the webps are never generated since Ghost isn't serving them.
Here's the line in the Source theme where the webp links are generated: main/partials/post-card.hbs#L6
This will come back with a JPEG extension.
This is a very weird process.
My interim solution is to just run a python script to iterate through the storage adapter (GCP bucket) items, resize, reencode, upload to formats/webp, etc. It's very silly. Alternatively if you just remove instances of "format=webp" then Ghost works normally with the storage adapters.
The storage adapters are all 6-8 years out of date and unmaintained. I'm not sure if the webp functionality was intended to be added to them but never was or...? There's definitely a disconnect here on how the webp stuff is supposed to work.

I'm running Ghost with Kubernetes and PersistentVolumeClaims, but I remember tried some storage adapters noticing exactly what you said so I've desisted to use any kind of adapters for the same reason. Thanks for your insights!

I think what we learned here is that the webp stuff is generated on access by ghost. It doesn't matter if you upload in JPEG or webp format or what - it tries to create a formats/webp/<FILENAME>.jpeg and the templates serve those as webp.
When you're using a storage adapter this process doesn't happen. It would make more sense for ghost to automatically make webps as part of the resizing process but it seems like it doesn't do this. The resized images go to the storage adapter (GCP in my case) but the webps are never generated since Ghost isn't serving them.
Here's the line in the Source theme where the webp links are generated: main/partials/post-card.hbs#L6
This will come back with a JPEG extension.
This is a very weird process.
My interim solution is to just run a python script to iterate through the storage adapter (GCP bucket) items, resize, reencode, upload to formats/webp, etc. It's very silly. Alternatively if you just remove instances of "format=webp" then Ghost works normally with the storage adapters.
The storage adapters are all 6-8 years out of date and unmaintained. I'm not sure if the webp functionality was intended to be added to them but never was or...? There's definitely a disconnect here on how the webp stuff is supposed to work.

I'm running Ghost with Kubernetes and PersistentVolumeClaims, but I remember tried some storage adapters noticing exactly what you said so I've desisted to use any kind of adapters for the same reason. Thanks for your insights!

Yeah honestly at this point I've heard people have just left Ghost local storage and then just turned on a CDN feature and that seems fine.
I was extremely confused and a little disappointed to find out that Ghost worked this way. Even with the local storage adapter you have to wait until someone accesses the resource to get the webp generated - which means even if you're cloning a local storage backend to something you still have to wait. All the webp stuff was implemented long after the storage adapters (which are unmaintained) were written.
CDN features solve these problems and accomplish roughly the same end result. :shrug: I'm guessing this is what they do with Ghost Pro.

@elijahsgh Have you tried it combined with the native Redis cache adapter feature? I guess it worth the try: Ghost Docs Adapters

Cache adapters
The cache layer is used for storing data that needs to be quickly accessible in a format requiring no additional processing. For example, the “imageSizes” cache stores images generated at different sizes based on the fetched URL. This request is a relatively expensive operation, which would otherwise slow down the response time of the Ghost server. Having calculated image sizes cached per image URL makes the image size lookup almost instant with only a little overhead on the initial image fetch.
By default, Ghost keeps caches in memory. The upsides of this approach are:
no need for external dependencies
very fast access to data
The downsides are:
Having no persistence between Ghost restarts — cache has to be repopulated on every restart
RAM is a limited resource that can be depleted by too many cached values
With custom cache adapters, like Redis storage, the cache can expand its size independently of the server’s system memory and persist its values between Ghost restarts.

@elijahsgh Have you tried it combined with the native Redis cache adapter feature? I guess it worth the try: Ghost Docs Adapters

No. In my opinion, this is a redundant and kind of not useful feature.
What I want to do is have uploads go to a Google Storage Bucket (which they do with the GCP adapter I had to modify since it's unmaintained but still advertised on the plugins on the site...), have them resized (which ghost does automatically - which is an expensive operation), and have Ghost generate the webps while it's resizing in the previous step (which it doesn't - instead it does that expensive operation during request).
Adding redis causes you to have to repeat all of the above on restart or using redis LFU. It (in my opinion) makes way more sense to generate the resources on publish, have them go to the backend storage (bucket in my case), and if possible add a CDN feature.
The way it works doesn't make sense. :(

You are right again, thanks! BTW, if you are interested, take a look at my project to deploy ghost on kubernetes: https://github.com/sredevopsorg/ghost-on-kubernetes

Very nice!
Here's mine in terraform:
https://github.com/elijahsgh/terraform-gke-ghost
When I get a chance I'll see what we did that was different.
Off the bat I think your Dockerfile is far cleaner than mine.


Update dependencies 🦆

@Bl3f
This PR updates several key dependencies in our pyproject.toml file to improve compatibility with Python 3.12 and resolve installation issues, particularly with DuckDB. It also adjusts the Python version range to ensure compatibility with pandas.
Changes
Upgraded duckdb from ^0.9.2 to ^1.0.0
Upgraded sqlglot from ^22.0.1 to ^23.0.2
Upgraded pandas from 2.0.3 to ^2.2.0
Changed Python version range from >=3.8.1,<3.13 to >=3.9,<3.13
Rationale
These upgrades aim to resolve installation issues encountered when using Poetry with Python 3.12 #4 , specifically a ChefBuildError related to DuckDB installation. The newer versions of these dependencies offer better compatibility with Python 3.12 and include various improvements and bug fixes.
The Python version range was adjusted to >=3.9,<3.13 to accommodate pandas 2.2.0, which requires Python 3.9 or later.
Testing
(base) poetry update
Updating dependencies
Resolving dependencies... (1.9s)

Package operations: 23 installs, 0 updates, 0 removals

  - Installing six (1.16.0)
  - Installing jmespath (1.0.1)
  - Installing python-dateutil (2.9.0.post0)
  - Installing urllib3 (2.2.2)
  - Installing botocore (1.35.1)
  - Installing mdurl (0.1.2)
  - Installing click (8.1.7)
  - Installing iniconfig (2.0.0)
  - Installing markdown-it-py (3.0.0)
  - Installing mypy-extensions (1.0.0)
  - Installing packaging (24.1)
  - Installing pathspec (0.12.1)
  - Installing platformdirs (4.2.2)
  - Installing pluggy (1.5.0)
  - Installing pygments (2.18.0)
  - Installing s3transfer (0.10.2)
  - Installing black (24.8.0)
  - Installing boto3 (1.35.1)
  - Installing duckdb (0.10.3)
  - Installing isort (5.13.2)
  - Installing pytest (8.3.2)
  - Installing rich (13.7.1)
  - Installing sqlglot (23.17.0)

Notes
The Python version range has been narrowed to >=3.9,<3.13 to ensure compatibility with pandas 2.2.0.
This change drops support for Python 3.8. If support for 3.8 is crucial, we may need to consider using an older version of pandas or creating separate dependency sets for different Python versions.

I confirm the need to merge this PR.
I tried to use yato for the first time today, and here is my experience:

first I installed yato in a venv with python 3.12 --> not working because of duckdb dependancies
then I used a python 3.8 venv --> not working because it could not import 'TopologicalSorter' from the 'graphlib' library
then I used a python 3.9 venv --> this time I could install but I could not run yato because of a duckdb internal error (Unsupported compression function type)
finally, I forked the repo, implemented the changes from this PR, installed my own yato, and everything worked ;-)

Hey folks, thank you so much for your contributions and tries. I've merged @MohamedBsh PR to bump everything.
I publish a new version on PyPi during the day! So happy to have you here, I'm gonna get back yato on rails very soon!

Hey folks, thank you so much for your contributions and tries. I've merged @MohamedBsh PR to bump everything.
I publish a new version on PyPi during the day! So happy to have you here, I'm gonna get back yato on rails very soon!

Thank you for your quick resolution @Bl3f ! Has it something to do with nao :-D ? Very excited for this by the way.
Also, at the moment, my experience with yato is pretty good, very useful for small adhoc tasks on csv files etc. that needs multiple transformations.
As a Data Engineer, sometimes I need to get my hands dirty and I found duckdb very relevant to handle csv files. However, when I have a lot of transformation steps to perform (cleaning, joining, aggregating etc.), I find it difficult to only use one big sql script to operate my DB. I need to split it in several files for better readability.
At first I added a new profile to our dbt-core project, but it meant that I also had to:

install duckdb adapter (sometimes it can conflict with an existing adapter, I had some bad experiences with dbt-postgres and dbt-athena haha)
update the dbt project yml
declare sources
etc.

I stumbled on one article from Julien Hurault (https://juhache.substack.com/p/pip-install-data-stack) that was mentioning yato as a 'lightweight dbt'.
Now for the actual adhoc data project I need to work on in my job, it's far easier to use yato by dumping my sql transformation files in the /sql folder ;-)

Yeah, actually I use a few internal functions that I've developed in yato inside nao 🙈.
Thank you so much for your feedback, when I read this I see exactly the why I developed yato, which is the simplest way to run SQL queries without the burden of a dbt setup.
Once you have a few days of usage that would be interesting to get your feedback on what should we add next to yato (without adding more complexity) I think @MohamedBsh wants to do some stuff :).

@benjaminsicard  Don't hesitate to open issues or feature requests for the project if you have any suggestions. If you'd like to discuss further, feel free to reach out to me via email or we could set up a call.
For more information about me or to get in touch, you can check out my profile here
I look forward to potentially collaborating on improving yato!


Exception loading 'v4.vcf'

Ran with vCardLib/vCardLib.Tests/v4.vcf
   at vCardLib.Deserializers.v4Deserializer.ParseAddresses(String[] contactDetails)
   at vCardLib.Deserializers.Deserializer.Deserialize(String[] contactDetails)
   at vCardLib.Deserializers.Deserializer.GetCardFromContact(String[] contact)
   at System.Linq.Enumerable.SelectArrayIterator`2.ToList()
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at vCardLib.Deserializers.Deserializer.CreateCardsFromContacts(IEnumerable`1 contacts)
   at vCardLib.Deserializers.Deserializer.FromFile(String filePath)
   at source.cs:line 39

@jbrockerville unfortunately, v4 vcard files are not supported by the library. There hasn't been a lot of community request for  support. If you can, you can contribute support

@jbrockerville with the release of v5.0.0 vcard v4 support has been added


Incorrect Parameter Order in robot_movel Function

I noticed in line 88 of the blockly.py file, the robot_movel function in Robotics blocks had its parameters ordered as:
sandbox_function = (sandbox_functions.robot_movel, "ROBOT_POSE", "FRAME", "SPEED", "WAIT")
However, in sandbox_functions.py, line 100, the function is defined as:
def robot_movel(target_pose, speed_perc, frame, wait):
This caused a mismatch in parameter order, rendering the movel module unusable and leading to runtime errors. I have temporarily fixed this issue in my local setup, and the moveL function now works correctly. I recommend updating the codebase to permanently fix this bug.

Please create a pull request with your patch.


Change specificity of CSS selectors

Currently the chartist selectors have to much specificity for my taste. We should simply this and as we're anyway using ct- prefixes the whole nesting isn't so important. Let's remove what's not needed and what won't cause backward compatibility issues.

Yeah, I'm trying to change the color of pies that use a certain kind of series(I have an overview pie chart and breakdown bars with the same kind of series) but now I have to decide between overspecifying or using !important.
My selector
.grafico-series-status-processos .ct-series-a > .ct-slice
Chartist's
.ct-chart .ct-series.ct-series-a .ct-slice:not(.ct-donut)

Yeah, the problem when I reduce the specificitiy is make the selectors more flat, will be that there might be some backwards compatibility issues. But I think we should do it anway.
For the moment you should probably use the same specificity as chartist uses:
.grafico-series-status-processos .ct-series.ct-series-a .ct-slice:not(.ct-donut)

I've pushed 0.8.3 which greatly reduces the specificity. Check http://gionkunz.github.io/chartist-js/getting-started.html#customizing-the-default-css for more information.


Develop species specific data import formats for biolog data and gene essentiality data

This ties in with our discussion with Jon and Wout. We need to support data formats but also a format to formulate tests, like:
take this data, adjust the model, check that the result matches the formulated expectation

I think with based on what we came up with here and here, we already have this down pretty well.
If there are no objections I'll change PR #105 so that it closes this issue too.

I'm making a lot of structural changes based on your work in #105. Please don't work on that branch right now.

Reopen if necessary.


can not import csv file and get file data

use this code can not import file.
HTML:
<input type="file" ng-mouseleave="loadFile($event)" />

Controller:
$rootScope.loadFile = function ($event) {
    if (event.fromElement.files.length==0) {
        return(false);   // leave in case no file was chosen
    };
    alasql('SELECT * FROM FILE(?,{headers:true})', [event], function (data) {
        $rootScope.eData = data;     //  eData contains the JSON representation of the Excel sheet rows
    });
};

You are passing event but I cant see where its defined.
What kind of file are you uploading?

Same as as #650

@nbdamian What time to fix this issue?

@smallg You are passing event but I cant see where its defined. What does it contain? the raw data of the file?

@martinstarman
demo
it's works on chrome.
In Firefox, catch some error like this:

From stack overflow:

Firefox provides the relatedTarget event property, but Chrome and Safari don't.  Sadly, this issue has been open for a couple years as this Chrome bug and this Webkit bug.

Looks like its a browser issue and not a alasql issue. Closing. Please reopen if you solve the browserpart and there is still a problem.

@mathiasrw use relatedTarget or target, it also not work, I think you can modify it on demo and test it on Firefox.

I dont know how to get Firefox to give the correct data. If you find out please write it here so we can help others by putting it in the documentation.
If you find any issues related to the use of alasql please reopen this issue.

@mathiasrw  how to update wiki with new pull request.

There is no PR option for the wiki. If you feel like posting it here I would be happy to get data into the wiki

@martinstarman There is my code passed on chrome and Firefox base on angular. I think you can check it, if this method no problem, you can update your wiki.

Thank you - I will try to get it into the wiki.
Where would you look for information like this? In the section about angular?

Its added to https://github.com/agershun/alasql/wiki/Angular.js as a link to the files in the folder /examples/

@martinstarman Well done, thank you very much.

No, thank YOU for contributing :)


Copy over changes fixing Note block syntax in globals.md

Background
https://github.com/Shopify/shopify-dev/issues/20451
https://github.com/Shopify/checkout-web/pull/10971
Solution
Fix note syntax
Apply some edits for Shopify.dev style
🎩

Checklist

[x] I have :tophat:'d these changes
[x] I have updated relevant documentation

@rennyG looks like some other files got updated as well in this. This PR should only have globals.md in it.

@rennyG looks like some other files got updated as well in this. This PR should only have globals.md in it.

Ya that would be the result of yarn docs:checkout. Want me to unstage these files?


error when running "import pyltr"

     10
---> 11 import data
     12 import metrics
     13 import models

ImportError: No module named 'data'

import error under python3.5.1, no matter install pyltr or import directly from the source files.

Hi Gioro, pyltr has only been tested on 2.7 so far. I've been wanting to
fix compatibility for some time, but am unsure as to when I'll get to it.
Sorry for the inconvenience.

Jerry

On Aug 3, 2016 11:23 PM, "Gioro Ulden"<EMAIL_ADDRESS>wrote:

 10

---> 11 import data
12 import metrics
13 import models
ImportError: No module named 'data'
import error under python3.5.1, no matter install pyltr or import directly
from the source files.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jma127/pyltr/issues/1, or mute the thread
https://github.com/notifications/unsubscribe-auth/ACptEt3SUonLWH15k-QCCHjpUKt4d8dRks5qcVsagaJpZM4JcTTf
.

Closed by https://github.com/jma127/pyltr/pull/2


Prevent Panel3D updating when VR is not enabled

We can unbind and re-bind the render step function when the VREnabled
property changes to make sure this only runs when it needs to.

cc @kyle-emmerich


User e-mail address privacy by API endpoint with LDAP

Closely resembles https://github.com/go-gitea/gitea/issues/4502 fixed in 1.6,
https://github.com/go-gitea/gitea/issues/19716 malded over and closed.
The endpoint /api/v1/users contains an email json field that doesn't respect user authentication. Any user with a standard web browser binary and incognito mode is theoretically capable of doxing any user on the gitea. Worse still, users synchronizing against an LDAP server backed by, say, an organization's entire user directory, risks exposing non-git internal and external emails of staff and external agents who may have never used the service. This could also be a GDPR liability.
Confirmed in: {"version":"1.16.1"}

activated: X, never signed in

https://gitea.reece.sx/api/v1/users/newuser1
There's your example.

Are you using Enable User Synchronization? If yes, then all accounts will be sync-ed, you can disable it if you do not need it.
Have you set DEFAULT_KEEP_EMAIL_PRIVATE=true? If yes, newly created accounts should hide their emails automatically (if not, it's a bug). Existing account might not be affected, you can disable for them by running some SQL if you really want to.

Have you set DEFAULT_KEEP_EMAIL_PRIVATE=true? If yes, newly created accounts should hide their emails automatically (if not, it's a bug). Existing account might not be affected, you can disable for them by running some SQL if you really want to.

Define newly created. If you take the onboarding experience into account, users shouldn't be considered created until they've been onboarded during the first time login process.  There's also an argument to be made that gitea shouldn't be synchronizing users, or at least indexing them under the admin and users list, until they've been signed in at least once.

"hide email" applies to git logs only.

For the record, nothing applies to git logs. A user can clone the repo and see the emails used for commits. This is a git thing, not inherent to Gitea.
You must still consciously use your fake email in git, otherwise it's recorded in the git commit exactly how it was committed.

https://try.gitea.io/api/v1/users -> 404 invalid API

this will replace the mail with a no-replay mail

Are you using Enable User Synchronization? If yes, then all accounts will be sync-ed, you can disable it if you do not need it.

It appears as though it's still potentially doxing the first and last names of otherwise unregistered users. It's only workaroundable in that could write an LDAP filter to filter users with a specific flag on their account; however, that's not what you're supposed to do. Rolling your own LDAP schemas is kinda niche, and I can't imagine many people hacking in 'isServiceXEnabled'  for each service, and managing that on a per user basis.
EG: https://gitea.reece.sx/api/v1/users/newuser2
I think the solution is to simply not synchronize accounts until they've logged in at least once, like how oauth is handled.

well that's not how ldap works - but you just describe normal sysadmin work - to configure your instance so that it meets your requirements, if you need setup help we have channel for that :)
It's goot to alt least see this is not a bug but an config issue - and the defaults are ok

and the defaults are ok

...the default is false?

If you do not enable LDAP sync users will be registered in gitea instance only when authorized, the whole point of sync is to synchronize all users that matches LDAP filter so that users can be added to teams even before they authorize to gitea instance for the first time

so that users can be added to teams even before they authorize to gitea instance for the first time

This implementation detail doesn't feel correct. LDAP shouldn't require anything more than BindDN to authenticate. If the intention is to support groups, why is the group part optional but the search base is forced?

imho you are using wrong auth source for your use case. If no user sync is needed you should be using LDAP (simple auth) where no bind DN is needed at all (as bind DN is needed pretty much only for sync):


optimize docker

Summary of Changes
Optimize docker - see https://github.com/lyft/amundsen/issues/109
While at it also documented current Python requirement - closes https://github.com/lyft/amundsen/issues/79
Tests
Manually tested locally with docker build ...
Documentation
Similar to what @jinhyukchang did in Metadata service
CheckList
Make sure you have checked all steps below to ensure a timely review.

[x] PR title addresses the issue accurately and concisely. Example: "Updates the version of Flask to v1.0.2"

In case you are adding a dependency, check if the license complies with the ASF 3rd Party License Policy.

[x] PR includes a summary of changes.
[x] PR adds unit tests, updates existing unit tests, OR documents why no test additions or modifications are needed.
[x] In case of new functionality, my PR adds documentation that describes how to use it.

All the public functions and the classes in the PR contain docstrings that explain what it does

[x] PR passes make test

Codecov Report

Merging #62 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #62   +/-   ##
=======================================
  Coverage   79.96%   79.96%
=======================================
  Files          15       15
  Lines         539      539
  Branches       47       47
=======================================
  Hits          431      431
  Misses         91       91
  Partials       17       17

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 ba666dc...d7bc110. Read the comment docs.

Please tag and push master as 1.4.x. Then I’ll do a amundsen-docker.yml update for Quickstart  that - after pending frontend 1.1.0 merge/bump - will bring:

using Gunicorn on all containers  - so another small step towards production-worthiness
the latest frontend tweaks in master in particular the awesome Markdown edit feature!
smaller image sizes across the board

@jornh , yeap, just did!


ed: Add fedoraproject mirror.

The existing URL has gone dark; this commit adds one from fedoraproject.org
that still works. We put the new mirror first since ed is in the bootstrap
path, and 16.09 bootstrap doesn't try later URLs.
Motivation for this change
Bootstrap source tarball fetch is broken because the existing source URL went dark.
Things done

[ ] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Why does travis fail?

The travis failures are:

"The log length has exceeded the limit of 4 MB".
"No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself."
OSError: [Errno 7] Argument list too long

1 looks like a limitation of the test system and would likely have completed otherwise. Unsure about 2 - I suspect it was just taking more time than planned for - but I don't see how this CL would have caused it.
3. looks like a genuine error on Mac OS, due to some part of the test build overloading some command invocation with more data than the OS supports.
I believe all of these are test infra flakiness and not caused by this change.

Thanks!

This caused a mass rebuild directly on master.  I amended the expression so that there's no new attribute exposed to the builder and thus rebuild isn't caused (and cancelled all those Hydra jobs).

@vcunat can you elaborate why this caused a mass rebuild on master? It seems rather ... surprising to me!

@matthiasbeyer: the new attribute file_md5 passed to mkDerivation is (of course) passed as environment variable to the builder, which is an unpredictable change in principle and requires a rebuild.


Add support for Renzo Protocol

Background
The Renzo plugin is being developed as part of the GOAT SDK to provide integration with Renzo Protocol, a restaking protocol.
What does this PR do?
This PR implements a Renzo plugin that enables interaction with the Renzo protocol across multiple EVM chains (Mode, Base, Arbitrum, BSC, and Linea). The plugin provides three main functionalities:

Deposit/restake ERC20 LST tokens into Renzo
Deposit/restake native ETH into Renzo
Check ezETH balance for any address

What kind of change is this?

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

Documentation changes needed?
My changes do not require a change to the project documentation.
Testing
Can be done in typescript/examples/vercel-ai/mode file. Follow the docs to setup and then enter prompts to test out the plugin
Detailed testing results

Function
Prompt
Proof
Transaction Link

deposit LSTs
can you deposit 0.001 WETH erc20 token in Renzo?

View txn

depositETH
can you send 0.001 ETH to deposit it in Renzo?

View txn

ezETH balanceOf
can you check the ezETH balance for my wallet address in Renzo?

For plugins

[x] I have tested this change locally with key pair wallets
[ ] I have tested this change locally with hosted wallets (e.g. Crossmint Smart Wallets, etc.)

Discord username
sunosuporno

@0xaguspunk implemented the changes! The depositETH is not functioning when I remove the parseUnits calculations. I guess it is because ETH is not an ERC20. Rest everything is done I hope 😅

Made two small comments.
Also you need to delete the pnpm-lock file and run pnpm install again from the typescript directory!
Once done we can merge! :)

@0xaguspunk Made the changes!

Hey @sunosuporno congrats on getting this PR merged!
Please share an EVM wallet to receive the payment for the Mode-GOAT Bounties

Hello @fede2442, my wallet address is 0x07a721260416e764618B059811eaf099a940Af14 🙌


Crosswalk syntax error

Problem description

I saw a product documentation issue on the following URL:

https://www.pulumi.com/docs/guides/crosswalk/aws/ecs/#using-an-existing-ecs-cluster with relevant information

Other:

Code doesn't compile at:
// Fetch an existing cluster.
const cluster = new awsx.ecs.Cluster("custom", {
cluster: aws.ecs.Cluster.get("existing_cluster_id"),
});
Reported by:  Vladimir Makayev

It's not 100% clear to me what the compilation error was. I can only assume it was the missing import for @pulumi/aws? I'll leave this open to see if the original reporter might shed more light on this and fix the missing import in the meantime.

Closing this as we never heard back and hopefully the above PR addressed the original issue.


The -rd and -mr options didn't work, and they should have been --rd and --mr

The arg parsing logic was broken in a number of ways. For example, if any option was provided after -rd (RelWithDebInfo), it automatically reverted to -r (Release). The same for -g, etc. In addition "-rd" is non-standard for a multi-letter unix arg. It was changed to --rd.

Performance test reportHPX PerformanceComparisonBENCHMARKFORK_JOIN_EXECUTORPARALLEL_EXECUTORSCHEDULER_EXECUTORFor Each(=)(=)(=)InfoPropertyBeforeAfterHPX Commiteb604d5bfa8744d3c9cb3af402809c54e3d8f4eed850917591d09656ec1453cd9a99b5e453257dc0HPX Datetime2023-01-12T23:07:58+00:002023-01-23T22:33:25+00:00EnvfileClusternamerostamrostamCompiler/opt/apps/llvm/13.0.1/bin/clang++ 13.0.1/opt/apps/llvm/13.0.1/bin/clang++ 13.0.1Hostnamemedusa08.rostam.cct.lsu.edumedusa08.rostam.cct.lsu.eduDatetime2023-01-13T04:10:15.951027-06:002023-01-23T16:40:31.935875-06:00ComparisonBENCHMARKNO-EXECUTORFuture Overhead - Create Thread Hierarchical - Latch??InfoPropertyBeforeAfterHPX Commiteb604d5bfa8744d3c9cb3af402809c54e3d8f4eed850917591d09656ec1453cd9a99b5e453257dc0HPX Datetime2023-01-12T23:07:58+00:002023-01-23T22:33:25+00:00EnvfileClusternamerostamrostamCompiler/opt/apps/llvm/13.0.1/bin/clang++ 13.0.1/opt/apps/llvm/13.0.1/bin/clang++ 13.0.1Hostnamemedusa08.rostam.cct.lsu.edumedusa08.rostam.cct.lsu.eduDatetime2023-01-13T04:10:31.068958-06:002023-01-23T16:40:51.060977-06:00ComparisonBENCHMARKFORK_JOIN_EXECUTOR_DEFAULT_FORK_JOIN_POLICY_ALLOCATORPARALLEL_EXECUTOR_DEFAULT_PARALLEL_POLICY_ALLOCATORSCHEDULER_EXECUTOR_DEFAULT_SCHEDULER_EXECUTOR_ALLOCATORStream Benchmark - Add-----+++Stream Benchmark - Scale(=)--(=)Stream Benchmark - Triad-----+++Stream Benchmark - Copy(=)(=)(=)InfoPropertyBeforeAfterHPX Commiteb604d5bfa8744d3c9cb3af402809c54e3d8f4eed850917591d09656ec1453cd9a99b5e453257dc0HPX Datetime2023-01-12T23:07:58+00:002023-01-23T22:33:25+00:00EnvfileClusternamerostamrostamCompiler/opt/apps/llvm/13.0.1/bin/clang++ 13.0.1/opt/apps/llvm/13.0.1/bin/clang++ 13.0.1Hostnamemedusa08.rostam.cct.lsu.edumedusa08.rostam.cct.lsu.eduDatetime2023-01-13T04:10:46.398919-06:002023-01-23T16:41:06.590295-06:00Explanation of SymbolsSymbolMEANING=No performance change (confidence interval within ±1%)(=)Probably no performance change (confidence interval within ±2%)(+)/(-)Very small performance improvement/degradation (≤1%)+/-Small performance improvement/degradation (≤5%)++/--Large performance improvement/degradation (≤10%)+++/---Very large performance improvement/degradation (>10%)?Probably no change, but quite large uncertainty (confidence interval with ±5%)??Unclear result, very large uncertainty (±10%)???Something unexpected…

Performance test reportHPX PerformanceComparisonBENCHMARKFORK_JOIN_EXECUTORPARALLEL_EXECUTORSCHEDULER_EXECUTORFor Each(=)(=)(=)InfoPropertyBeforeAfterHPX Commitd4827232e3d49d63f41287db1e8b5767b6dbd95fd850917591d09656ec1453cd9a99b5e453257dc0HPX Datetime2023-01-12T14:41:15+00:002023-01-23T22:33:25+00:00ClusternamedaintdaintCompiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0EnvfileDatetime2023-01-12T16:07:32.649261+01:002023-01-23T23:45:47.486259+01:00Hostnamenid00267nid00078ComparisonBENCHMARKNO-EXECUTORFuture Overhead - Create Thread Hierarchical - Latch--InfoPropertyBeforeAfterHPX Commitda01e78993b6bb8da476492b2770f1cc3f117995d850917591d09656ec1453cd9a99b5e453257dc0HPX Datetime2023-01-18T08:41:20+00:002023-01-23T22:33:25+00:00ClusternamedaintdaintCompiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0EnvfileDatetime2023-01-18T09:57:57.669847+01:002023-01-23T23:46:08.827052+01:00Hostnamenid00005nid00078ComparisonBENCHMARKFORK_JOIN_EXECUTOR_DEFAULT_FORK_JOIN_POLICY_ALLOCATORPARALLEL_EXECUTOR_DEFAULT_PARALLEL_POLICY_ALLOCATORSCHEDULER_EXECUTOR_DEFAULT_SCHEDULER_EXECUTOR_ALLOCATORStream Benchmark - Add+(=)(=)Stream Benchmark - Scale(=)(=)(=)Stream Benchmark - Triad(=)(=)(=)Stream Benchmark - Copy(=)(=)(=)InfoPropertyBeforeAfterHPX Commit52952d870ab05881c0ef01bde746b95bf5e74ef0d850917591d09656ec1453cd9a99b5e453257dc0HPX Datetime2023-01-17T08:25:42+00:002023-01-23T22:33:25+00:00ClusternamedaintdaintCompiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0EnvfileDatetime2023-01-17T09:44:28.090718+01:002023-01-23T23:46:24.222234+01:00Hostnamenid00005nid00078Explanation of SymbolsSymbolMEANING=No performance change (confidence interval within ±1%)(=)Probably no performance change (confidence interval within ±2%)(+)/(-)Very small performance improvement/degradation (≤1%)+/-Small performance improvement/degradation (≤5%)++/--Large performance improvement/degradation (≤10%)+++/---Very large performance improvement/degradation (>10%)?Probably no change, but quite large uncertainty (confidence interval with ±5%)??Unclear result, very large uncertainty (±10%)???Something unexpected…

bors merge


Add citation text to init.py

Following suggestion by Arfon Smith (@arfon) it is recommended to make the citation process as easy as possible.

Fixed by 8b1ddaf68ed269a22c8068c844a996d13a0ab604

✨


Format keymaps

This is what :map <leader> gives me, it would be nice if we could format it in a readeable form:

Closing this since it's an upstream issue. Added to tracked issues


angular-in-memory-web-api/index.js does not export InMemoryWebApiModule

I started new project with current ionic2rc0, get the following error:
Error: Module ./node_modules/angular-in-memory-web-api/index.js does not export InMemoryWebApiModule (imported by ./.tmp/app/app.module.js)

ionic info
Cordova CLI: 6.3.1
Ionic Framework Version: 2.0.0-rc.0
Ionic CLI Version: 2.1.0
Ionic App Lib Version: 2.1.0-beta.1
OS: Distributor ID:	LinuxMint Description:	Linux Mint 17.3 Rosa
Node Version: v6.7.0

npm list -depth=0
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>extraneous
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>
Any ideas? Or is it a specific ionic problem? Thank you!

I downgraded to<EMAIL_ADDRESS>and it's working now.
But would be nice to get info how to use the newest version.

Something else is wrong as InMemoryWebApiModule  clearly is exported by in-memory-web-api.module.ts
and is re-exported by index.ts: export * from './in-memory-web-api.module';
I strongly suspect that you haven't updated your import statements to refer to angular-in-memory-web-api; they are probably still referring to  angular2-in-memory-web-api.

Thank you for your answer.
I upgraded angular-in-memory-web-api to version 0.1.5, but I get exactly the same error as mentioned above. I import the api two times in my code, both with the correct path/name (without the 2).
I also tried to make a new ionic project (ionic start --v2 test) and only import this api but nothing else. I get the same error..
app.module.ts
import { NgModule } from '@angular/core';
import { IonicApp, IonicModule } from 'ionic-angular';
import { MyApp } from './app.component';
import { AboutPage } from '../pages/about/about';
import { ContactPage } from '../pages/contact/contact';
import { HomePage } from '../pages/home/home';
import { TabsPage } from '../pages/tabs/tabs';
import { InMemoryWebApiModule } from 'angular-in-memory-web-api';
import { InMemoryDataService }  from './in-memory-data.service';

@NgModule({
  declarations: [
    MyApp,
    AboutPage,
    ContactPage,
    HomePage,
    TabsPage
  ],
  imports: [
    IonicModule.forRoot(MyApp),
    InMemoryWebApiModule.forRoot(InMemoryDataService)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    AboutPage,
    ContactPage,
    HomePage,
    TabsPage
  ],
  providers: []
})
export class AppModule {}

in-memory-data.service.ts
import { InMemoryDbService } from 'angular-in-memory-web-api';
export class InMemoryDataService implements InMemoryDbService {
  createDb() {
    let testDB = [
      { id: 11, name: 'Test 1' },
      { id: 12, name: 'Test 2' },
      { id: 13, name: 'Test 3' },
      { id: 14, name: 'Test 4' }
    ];

    return {testDB};
  }
}

ionic info
Cordova CLI: 6.3.1
Ionic Framework Version: 2.0.0-rc.0
Ionic CLI Version: 2.1.0
Ionic App Lib Version: 2.1.0-beta.1
OS: Distributor ID:	LinuxMint Description:	Linux Mint 17.3 Rosa
Node Version: v6.7.0

npm list -depth=0
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>extraneous
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>
npm ERR! extraneous<EMAIL_ADDRESS>./node_modules/angular-in-memory-web-api

Maybe this npm ERR! extraneous is a hint to the problem?

@sosnet the error of does not export InMemoryWebApiModule is because ionic2-rc0 uses rollup for to create the bundle. and rollup doesn't support importing commonjs module by default. Even though there is a plugin rollup-plugin-commonjs but it seems with some limitation.
I got same error and have to change tsconfig.json of angular-in-memory-web-api to export module with es2015 in this commit, and use it locally

Thanks @itryan to point out the problem. But I think I'm too new to all this stuff to fix it on my own.
I removed angular-in-memory-web-api and re-installed it via npm install git+https://github.com/itryan/in-memory-web-api/ --save from your repository. But I'm still getting the same error.

@sosnet  I only submitted the tsconfig.json file but the js files was built on the local machine. Just now i also uploaded the js file, hope it helps.

Thank you @itryan, it's working now!


Changes to WIT for Spin 2.0 [mini-SIP]

The following are my suggestions for changes to the Spin WIT from the Guest perspective. I'm opening this as an issue/mini-SIP as the changes are largely unrelated and are more a grab bag of "small improvements" rather than a single unified approach for improvement.
Interfaces with no changes
The following interfaces will not change at all:

config
http
llm (while stream support would be great to add, the lack of first-class streams makes it very difficult for us to provide an API that is user friendly enough)

key-value
The key-value interface will change in the following ways:

Move to using an actual resource instead of psuedo resources.

This moves from free standing functions to functions that take an implicit resource parameter. This actually matches almost 1 to 1 with how the SDKs expose these interfaces so user change should be minimal.
The close function is removed in favor of resource dropping

error::no-such-key is removed and store::get returns an result<option<list<u8>, error> instead of a result<list<u8>, error>

interface key-value {
  /// An open key-value store
  resource store {
    /// Open the store with the specified name.
    ///
    /// If `name` is "default", the default store is opened.  Otherwise,
    /// `name` must refer to a store defined and configured in a runtime
    /// configuration file supplied with the application.
    ///
    /// `error::no-such-store` will be raised if the `name` is not recognized.
    open: static func(name: string) -> result<store, error>

    /// Get the value associated with the specified `key` from the specified
    /// `store`.
    ///
    /// `ok(none)` will be returned if the key does not exist. `error::invalid-store`
    /// will be raised if `store` is not a valid handle to an open store.
    get: func(key: string) -> result<option<list<u8>>, error>

    /// Set the `value` associated with the specified `key` in the specified
    /// `store`, overwriting any existing value.
    ///
    /// `error::invalid-store` will be raised if `store` is not a valid handle
    /// to an open store.
    set: func(key: string, value: list<u8>) -> result<_, error>

    /// Delete the tuple with the specified `key` from the specified `store`.
    ///
    /// `error::invalid-store` will be raised if `store` is not a valid handle
    /// to an open store.  No error is raised if a tuple did not previously
    /// exist for `key`.
    delete: func(key: string) -> result<_, error>

    /// Return whether a tuple exists for the specified `key` in the specified
    /// `store`.
    ///
    /// `error::invalid-store` will be raised if `store` is not a valid handle
    /// to an open store.
    exists: func(key: string) -> result<bool, error>

    /// Return a list of all the keys in the specified `store`.
    ///
    /// `error::invalid-store` will be raised if `store` is not a valid handle
    /// to an open store.
    get-keys: func() -> result<list<string>, error>
  }

  /// The set of errors which may be raised by functions in this interface
  variant error {
    /// Too many stores have been opened simultaneously. Closing one or more
    /// stores prior to retrying may address this.
    store-table-full,

    /// The host does not recognize the store name requested.  Defining and
    /// configuring a store with that name in a runtime configuration file
    /// may address this.
    no-such-store,

    /// The requesting component does not have access to the specified store
    /// (which may or may not exist).
    access-denied,

    /// The store handle provided is not recognized, i.e. it was either never
    /// opened or has been closed.
    invalid-store,

    /// Some implementation-specific error has occurred (e.g. I/O)
    io(string)
  }
}

sqlite
The sqlite interface will change in the following ways:

Move to using an actual resource instead of psuedo resources.

This moves from free standing functions to functions that take an implicit resource parameter. This actually matches almost 1 to 1 with how the SDKs expose these interfaces so user change should be minimal.
The close function is removed in favor of resource dropping

interface sqlite {
  /// A handle to an open sqlite instance
  resource connection {
    /// Open a connection to a named database instance.
    ///
    /// If `database` is "default", the default instance is opened.
    ///
    /// `error::no-such-database` will be raised if the `name` is not recognized.
    open: static func(database: string) -> result<connection, error>

    /// Execute a statement returning back data if there is any
    execute: func(statement: string, parameters: list<value>) -> result<query-result, error>
  }

  /// The set of errors which may be raised by functions in this interface
  variant error {
    /// The host does not recognize the database name requested.
    no-such-database,
    /// The requesting component does not have access to the specified database (which may or may not exist).
    access-denied,
    /// The provided connection is not valid
    invalid-connection,
    /// The database has reached its capacity
    database-full,
    /// Some implementation-specific error has occurred (e.g. I/O)
    io(string)
  }

  /// A result of a query
  record query-result {
    /// The names of the columns retrieved in the query
    columns: list<string>,
    /// the row results each containing the values for all the columns for a given row
    rows: list<row-result>,
  }

  /// A set of values for each of the columns in a query-result
  record row-result {
    values: list<value>
  }

  /// A single column's result from a database query
  variant value {
    integer(s64),
    real(float64),
    text(string),
    blob(list<u8>),
    null
  }
}

redis
The redis interface will change in the following ways:

Move to using a resource so that each function does not need a supplied address. This mirrors how other "connection" based APIs like sqlite and key-value
get returns a result<option<payload>, error> instead of result<payload, error> to signify that the key does not exist.

interface redis {
  use redis-types.{payload, redis-parameter, redis-result, error}

  resource connection {
    /// Open a connection to the Redis instance at `address`.
    open: static func(address: string) -> result<connection, error>

    /// Publish a Redis message to the specified channel and return an error, if any.
    publish: func(channel: string, payload: payload) -> result<_, error>

    /// Get the value of a key.
    get: func(key: string) -> result<option<payload>, error>

    /// Set key to value. If the key already holds a value, it is overwritten.
    set: func(key: string, value: payload) -> result<_, error>

    /// Increments the number stored at key by one. If the key does not exist, it is set to 0 before performing the operation.
    /// An error is returned if the key contains a value of the wrong type or contains a string that can not be represented as integer.
    incr: func(key: string) -> result<s64, error>

    /// Removes the specified keys. A key is ignored if it does not exist.
    del: func(keys: list<string>) -> result<s64, error>

    /// Add the specified `values` to the set named `key`, returning the number of newly-added values.
    sadd: func(key: string, values: list<string>) -> result<s64, error>

    /// Retrieve the contents of the set named `key`.
    smembers: func(key: string) -> result<list<string>, error>

    /// Remove the specified `values` from the set named `key`, returning the number of newly-removed values.
    srem: func(key: string, values: list<string>) -> result<s64, error>

    /// Execute an arbitrary Redis command and receive the result.
    execute: func(command: string, arguments: list<redis-parameter>) -> result<list<redis-result>, error>
  }
}

postgres
The postgres interface will change in the following ways:

Much like redis, it will move to using a connection resource.
pg-error will be renamed error
error will lose the success variant

interface postgres {
  use rdbms-types.{parameter-value, row-set}

  /// General purpose error
  variant error {
      connection-failed(string),
      bad-parameter(string),
      query-failed(string),
      value-conversion-failed(string),
      other-error(string)
  }

  resource connection {
     /// Open a connection to the Postgres instance at `address`.
    open: static func(address: string) -> result<connection, error>

    /// query the database: select
    query: func(statement: string, params: list<parameter-value>) -> result<row-set, error>

    /// execute command to the database: insert, update, delete
    execute: func(statement: string, params: list<parameter-value>) -> result<u64, error>
  }
}

mysql
The changes to mysql mirror the changes to postgres 1 to 1

/// `error::invalid-store` will be raised if `store` is not a valid handle

Can this still happen with resource handles?

/// `error::invalid-store` will be raised if `store` is not a valid handle

Can this still happen with resource handles?

No, I think we can get rid of that case.  The guest will just trap if it somehow bypasses the binding generator and forges an invalid handle.

@dicej the issue is that "forging" a store handle is very easy in the legacy APIs where the store handle is just a number (even at the type level). Removing this error from new interface makes it hard to implement the old interface in terms of the new one.

This has been completed with the following PRs:

https://github.com/fermyon/spin/pull/1880
https://github.com/fermyon/spin/pull/1900
https://github.com/fermyon/spin/pull/1886
https://github.com/fermyon/spin/pull/1873
https://github.com/fermyon/spin/pull/1854


Strip off the srcPath when generating output - feature request

Currently
When specifying a srcPath, the path elements become part of the output generated.
For example if you had a large project and you wanted to run Mitosis at the project route and look into a/b/c/d/somewhere as input, the output will end up deeply nested with a/b/c/d/somewhere in its path.
Feature request
Strip off the srcPath when generating output, so that the src or other similar directories don’t become part of the output path; one should be able to move the Mitosis input around the filesystem without affecting Mitosis output.
This change would not be noticed in small trivial projects, but is of important when integrating into a larger build tool/build system.
Workaround
Wrapper script to cd and run Mitosis from wherever the input is.
(This is a very common technique when integrating a tool into a build system.)

My initial hunch is that Mitosis could grown to a huge and happy user base, with only a tiny fraction left behind by the lack of user-specified glob or multi src globs.


Pretrained model

Hi
Your SalGAN approach looks super interesting!
Do you provide a pretrained model? Might just be me who can't find the link :)
Best
Casper

Hi Casper,
thanks for you kind words.
I am not sure what you mean by "pretrained" model, but we do provide the models we trained, both generator on discriminator. You can find them on the "Models" section of our website or README.md.
Does this answer your question ?
If so, please close the issue.
Thanks !

Hi again
Well, guess i should learn to use my eyes better :)
Thanks a lot!


December Topics

ECDSA is expected to age out of efficacy soon due to harvest-now-decrypt-later threats of quantum computers.  Draft US NIST guidance is deprecating ECDSA for Federal systems from 2030 and disallowing it from 2035 onward:
https://nvlpubs.nist.gov/nistpubs/ir/2024/NIST.IR.8547.ipd.pdf
Biggest issue for Bitcoin is that adopting mitigations like FIPS-204 ML-DSA (previously "DILITHIUM") that US NIST recommends would mean growing signature size from 64 bytes to 2,420 bytes (also public key sizes grow to 1,312 bytes, and 5X CPU to sign - though verification is actually faster).

Slashing covenants
https://groups.google.com/g/bitcoindev/c/nrgqIXL2Cyk/m/9epQ8CMcAwAJ

https://x.com/t4t5/status/1861066474623782959

Alby "shared wallet" going away - evacuate funds and switch to your own or someone else's Alby Hub backend:  https://stacker.news/items/769253

https://github.com/GingerPrivacy/GingerWallet/discussions/116

Massive FUD has run amok on X.com after Google's latest quantum press release:
https://blog.google/technology/research/google-willow-quantum-chip/
Bottom line:

yes, quantum is a very real threat.
no, Bitcoiners should NOT panic.
Bitcoiners should be open-minded and engage in constructive dialog regarding the very real need to address the systemic degradation of ECDSA (and all asymmetric key cryptography) over the next 15 years.
the primary takeaway for HODLers is that the timechain will be okay for a fairly good while, but our wallets will be increasingly at risk.

HOLDers should opt for Bech32 SegWit addresses, limit accumulation per address, and stay apprised of quantum technological advancement and Bitcoin proposals to buttress against quantum threats.
quantum progress continues in line with Neven's Law (2^x^n), which is much faster than Moore's Law (2^n). [Quantum entanglement allows quantum computing power to double with each marginal qubit].

Seriously don't store mnemonics or passwords in your photos or send to others.  US authorities still have no timeline for when they can purge Salt Typhoon interlopers from domestic comms:  https://www.nbcnews.com/tech/security/us-officials-urge-americans-use-encrypted-apps-cyberattack-rcna182694

https://groups.google.com/g/bitcoindev/c/8O857bRSVV8/m/4cM-7pf4AgAJ

https://antoinep.com/posts/softforks/


Make an overlay always on top of other overlays

Please describe the feature you would like to request.
whenever a new overlay is created it is positions on top of other existing overlays (speaking wrt z-index).
provide a way to mark a overlay need to be shown always on top of other overlay's irrespective of order of creation
What is the use-case or motivation for this proposal?
In our application we are using overlay as container for in-app notifications (we don't use/follow material spec)
We also use overlay for different use-cases like full-window dialogs, custom drop-downs , and such things
opening new overlay is hiding the notifications which we do not want

For now, I am using the following workaround:
// somewhere_in_my_code.ts
const tmpClass = `panel-${Date.now()}`;
const dialog = this.dialog.open(ConfirmComponent,
  {data: {message}, panelClass: tmpClass, backdropClass: ['cdk-overlay-dark-backdrop', 'overlay-priority-1']});
dialog.afterOpened().subscribe(() => {
  if (typeof document !== 'undefined') {
    const panel = document.querySelector(tmpClass);
    if (panel && panel.parentElement) {
      panel.parentElement.classList.add('overlay-priority-1');
    }
  }
});

// styles.scss
.overlay-priority-1 {
    z-index: 1001 !important;
}

Just my 2 cents for others looking for an answer.
To achieve what you want, set the .cdk-global-overlay-wrapper element to have a z-index that's higher than the default of 1000. You cannot apply a style directly to this, but you can apply a class to the child element (panelClass).
With modern css you can also use the :has selector to style an element based on child elements. This way you don't have to use the javscript alternative in the previous comment. (caniuse support for :has is at 91% and supported in all major browsers)
const overlayConfig = new OverlayConfig({
      // .. other settings
      panelClass: 'overlay-priority',
    });

And in your global (s)css
.cdk-global-overlay-wrapper:has(.cdk-overlay-pane.overlay-priority) {
  z-index: 1001; // default modals are 1000
}


More examples with volumes

Continuity of https://github.com/humanitec-architecture/example-library/pull/105 + add more use cases based on https://github.com/Humanitec-DemoOrg/volumes.

Ready for your review, thanks!


Debug Arrow Marker inconsistent

Issue Type: Bug
When debugging a code file using the Debug Adaptor there's an inconsistent rendering of the step arrow, depending on how a specific source position was reached. This image shows a demonstration:

The step arrow (or what it is called internally) only shows up when a debug step doesn't change source line in the top stack frame. In the image there are 2 debug runs. One with single steps that also change the call stack top entry source line when jumping to subrules and back. As long as the next step remains in the same rule (here letters and digits) it shows up. The second run uses step-over and hence only uses the top level rule (start). As you can see the yellow arrow is shown properly in this case.
Also, when you jump back and forth between stack frames the yellow arrow never shows up.
And the example shows another problem here: there's always that yellow arrow in the gutter, indicating the curent line of the TOS element. It would be better to show that only if the column value in the stack frame is 0. If that value is > 0 the inline arrow should be shown instead (and the gutter arrow should disappear), to support the visualization. That would also correctly show the inline arrow for the first entry of the current line (which is never shown currently).
VS Code version: Code 1.30.1 (dea8705087adb1b5e5ae1d9123278e178656186a, 2018-12-18T18:05:00.654Z)
OS version: Darwin x64 18.2.0

System Info

Item
Value

CPUs
Intel(R) Xeon(R) CPU E5-1650 v2 @ 3.50GHz (12 x 3500)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: enabledrasterization: enabledvideo_decode: enabledvideo_encode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
1, 1, 1

Memory (System)
32.00GB (8.90GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (19)

Extension
Author (truncated)
Version

duk-debug
Har
0.4.1

dot
Ste
0.0.1

numbered-bookmarks
ale
6.1.0

vscode-svgviewer
css
1.4.7

vscode-eslint
dba
1.7.2

duk-debug
des
0.4.2

xml
Dot
2.4.0

tslint
eg2
1.0.42

php-intellisense
fel
2.3.10

vscode-mysql
for
0.3.0

live-html-previewer
hdg
0.3.0

vscode-auto-open-markdown-preview
hnw
0.0.4

beautify
Hoo
1.4.7

svg
joc
0.1.4

vscode-phpfmt
kok
1.0.30

vscode-antlr4
mik
2.1.1

prettify-json
moh
0.0.3

debugger-for-chrome
msj
4.11.1

vscode-yacc
se2
1.1.0

Watching the animation I realize it doesn't have to do with the source line at all. In the single step part you can see that no arrow is shown before LETTER*. Only when the call stack TOS moves to the semicolon column the arrow is shown again.

Thank you for the nice explanation, however we currently use a heuristic that we only show the arrow inline when a step occured on the same line as the previous step. Reason being: we want to make sure the user is aware that only the column has changed.
We do not always show the inline arrow to not drown the UX in too many details.
I understand there are limitation with this approach but currently we do not plan to change this.

Hmm, being myself a UX desktop dev I have a bit of a hard time to accept your explanation :-) I fail to see how the current behavior would be better in any aspect. If less UX changes would be a serious goal here, you could show the debug line background only for every second line. That's nonsense of course, but pretty much the same thing as with the inline arrow showing only if the source line didn't change. And actually, it's not exactly like that as I have shown in my second message. You probably show the arrow only when the source line stayed and same and the column changed.
In any case this behavior is only confusing, but thanks anyway.


Allow status-only type xxC common data classes

Describe the bug
IEC 61850 south client fails with error when exchange data is pointing to DPC type object (e.g. XCBR1.Pos) with missing data attributes of functional constraint [CO]. This is not very uncommon and should in my point of view not be a source for error.
To Reproduce
Steps to reproduce the behavior:

Load file with status-only DPC (e.g. XCBR1.Pos)
Make sure that this specific is requested in exchange_data
See error log and sniffer results. I see there a GetDataDefinition pointing to this very object requesting definition for data attributes of the type [CO]

Expected behavior
Allow xxC type common data classes of type status-only

Sorry wrong repo :(


add: #Hacktoberfest2022 WebApp to organization Dev tasks

WebApp to organization Dev tasks!
in file ./TasksDayWeb
@microsoft-github-policy-service agree

@microsoft-github-policy-service agree company=default

Thank you @ThalesIanMendes for your suggestion. This is a fun project. For now, as this is a great project for additional practice, the best place to share your creation would be in Show and Tell.
Closing this PR so you can share this project within Discussions. When we build out the ability to onboard additional projects to our repo for extra practice and exercises, we will announce to the community. Thank you!


Unable to load VSIX projects in VisualFSharp and ASP.NET workload is suggested

On RC# + VSIX, build vs
msbuild VisualFSharp.sln (this fails, probably due to the above issue)
Open VisualFSharp.sln in VS 2017.

Expected: VisualFSharpFull and VisualFSharpOpenSource are loaded and available.
Actual: They're not, and IPA for the ASP.NET project kicks in when you right-click to "Install Missing Features".

Closing, as this is fixed.


grpc: FIXES CVE-2023-44487

Description
force grpc version v1.58.3 for all dependencies as this version fixes CVE-2023-44487
FIXES: https://issues.redhat.com/browse/THEEDGE-3618
Type of change
What is it?

[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Documentation update
[ ] Tests update
[ ] Refactor

Checklist:

[X] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes
[X] I run make pre-commit to check fmt/vet/lint/test-no-fdo

Codecov Report
All modified lines are covered by tests :white_check_mark:
see 1 file with indirect coverage changes
:loudspeaker: Thoughts on this report? Let us know!.


Home Page

Here is a stab at translating the "Home Page".
I tried to use the kind of language that I use when talking and chatting with my peers in Swedish. So some technical terms are left untranslated because I believe that the Swedish React community recognises them as such. Feedback is appreciated.

Hello @michaellopez and thank you!
I will review this shortly and I will also add you to the progress issue assigned to home page.
The glossary you are referring to is not finished.

@rloqvist Updated the PR.
I'm unsure how to go about "Resolving conversations". Is that mine or the reviewers task?


(release-0.5 cherrypick of #1382) replace Attached condition with Accepted in HTTPRoute docs

What type of PR is this?
/kind documentation
What this PR does / why we need it:
Fixes a docs bug re: route conditions in v0.5.0.
Which issue(s) this PR fixes:

Does this PR introduce a user-facing change?:

NONE

cc @robscott

Thanks @skriss!
/lgtm
/approve

Linking #1382 in case it helps others see this got cherrypicked


S3  Docker Build Cache Authentication Issue

Hey @crohr,
I was testing out the new docker build s3 cache and am running into an authentication issue with AWS (403 forbidden to be exact). How are credentials passed along? Seems that it can be set using the standard SDK auth. Thanks!

This can happen if you set aws credentials in your workflow, as env variables instead of using the official AWS action. Can you share your workflow YAML maybe?

I think you're right, setting the AWS_ACCESS_KEY in a previous job threw off the authentication. Thank you for the quick response!


Add additional granularity for trailing-comma

It would be nice to have some additional granularity added to the trailing-comma rule. Our team currently desires to enforce trailing commas in certain cases, but not others.
Is this something we would be open to? And if so, would it be preferable to just extend the options on the existing rule, or split the rule up into different rules?
I would be happy to submit a PR for this, if it is something that we would want to do.
Approach 1: Additional Options
"trailing-comma": [
    false,
    {
        "objectliterals": [
            true,
            {
                "multiline": "never",
                "singleline": "never"
            }
        ],
        "namedimports": [
            true,
            {
                "multiline": "always",
                "singleline": "never"
            }
        ],
        "arrays": [
            true,
            {
                "multiline": "always",
                "singleline": "never"
            }
        ]
    }
]

Approach 2: Separate Rules
"trailing-comma-object-literals": [
    true,
    {
        "multiline": "never",
        "singleline": "never"
    }
],
"trailing-comma-named-imports": [
    true,
    {
        "multiline": "always",
        "singleline": "never"
    }
],
"trailing-comma-arrays": [
    true,
    {
        "multiline": "always",
        "singleline": "never"
    }
]

I think splitting the rule up like this defeats the spirit of the style convention we're trying to enforce with trailing-comma. If you use it in one of those syntaxes, then why not enforce it consistently across all of them?
For now, I'm disinclined to accept a PR for this change in core TSLint, but I'll leave this issue open for further discussion & feedback.

Personally, I would agree. I turned on the rule, but immediately got negative feedback from some of the other team members. Not that the personal opinions of a single team is a good reason to go changing TSLint core :smile:
Thank you for the quick reply!

I concur with @adidahiya here - it makes sense to have consistent lint rules for similar syntactic constructs. In this case, making the trailing-comma rule more granular would be more code and API complexity with the negative effect of encouraging inconsistent styles in users' codebases.
Of course, your team is always welcome to use the code from TSLint as as starting point and create a custom rule if you all decide you need something non-standard.
For what it's worth, trailing-comma with multiline: true is one of my favorite lint rules! It really makes line-wise editing simple which is great when working in an editor like VIM.


Issue with many points on one plane

I was testing your algorithm on cube and 3d octagon and it found intersecting coplanar triangles in cube and invalid face in octagon
I changed one line in qh__face_can_see_vertex_epsilon
if (dot <= epsilon && dot >= 0)
to
if (dot <= epsilon && dot > 0)
and algorithm start working correctly
cube (with some points inside face)
0, 50, 0
100, 100, 0
0, 100, 0
-100, 100, 0
-100, 0, 0
100, -100, 0
0, -50, 0
50, -50, 0
-100, -100, 0
0, -100, 0
100, 0, 0
100, 100, 200
-100, 100, 200
100, -100, 200
-100, -100, 200
3d octagon (invalid face with points 8,7,14)
40, 100, 0
100, 40, 0
100, -40, 0
40, -100, 0
-40, -100, 0
-100, -40, 0
-100, 40, 0
-40, 100, 0
40, 100, 100
100, 40, 100
100, -40, 100
40, -100, 100
-40, -100, 100
-100, -40, 100
-100, 40, 100
-40, 100, 100

I also stumbled onto this issue while creating convex hulls of spheres having regular n-gons (n being 16-32) on their poles. Examples:

The other side of the previous one looks even worse around the other pole (where there's no n-gon as it has one (randomized) point inside):

Project (made with Qt, issue found by unit tests) where this happened can be currently found here: https://github.com/GNSS-Stylist/GNSS-Stylus/blob/develop/UnitTests/tst_convexhull.cpp , function TestConvexHull::randomSpheres(). Sources there have a workaround for this issue (single point on the pole / center of the n-gon), but it's commented if someone wants to recreate it.
The fix mentioned above also fixes my issue so thanks!

Looks like the fix mentioned above doesn't fix all cases. While randomizing points I still stumbled into one case where the generated hull is broken:

Source (including the points) generating the hull above and obj- and xyz point cloud-files:
3d-quickhull_bug.zip
3d-quickhull sources included in the zip already has the aforementioned fix applied.
This type of breakage seems to be very rare. In my case I generated 100 spheres and this was the only one that broke when the pseudorandom generator's initial state changed. And generating one random number before the test fixed it again.
I have no idea what's  causing this type of breakage. Just for a test I tried to filter the points to be at least 0.001 units apart (in this case they are limited to around -20...20 units area, so precision of floats should be good enough), but this didn't change anything.

@GNSS-Stylist thanks for the details on this one, I had a setup to iteratively visualize the hull generation process which can help narrow down exactly what step leads to degeneration. I will try to get that running again and investigate your degenerate case.
In the meantime we can already integrate your commit that fixes issues for points on the same plane.

Found a lot simpler problematic shape while randomly rotating rectangular cuboids:

Red cuboid is the problematic one, green is the same shape in a different angle (mesh for it is also generated with 3d-quickhull).
Points generating the broken mesh (can be copy-pasted to the main.cpp found in my previous message):
qh_vertex_t vertices[] =
{
    {   -3.0012702992169213,    4.43013053449861,       -0.8459784447958123 },
    {   -3.8907708074140266,    14.250979827381919,     11.38491831100901	},
    {   8.430575024286357,      2.1030941122589777,     1.8539140394637963  },
    {   7.541074516089251,      11.923943405142285,     14.084810795268618	},
    {   -4.27546998821548,      1.133826236523765,      1.7081357045333831  },
    {   -5.164970496412586,     10.954675529407073,     13.939032460338204  },
    {   7.156375335287798,      -1.1932101857158681,    4.408028188792992   },
    {   6.266874827090692,      8.62763910716744,       16.638924944597814  },
};

Tried with and without the fix mentioned above, both versions generated identical meshes.
Tested also by changing all floats to doubles in quickhull.h and both meshes (this and the sphere above) were fixed.


Add missing TSG section link for WAM support

API change check
API changes are not detected in this pull request.


Release 1.0

Depend on beta.9
Roll this package dependencies to stable

https://pub.dev/packages/ffi/versions/1.0.0


Grid Breakpoints for phone, tablet, notebook, desktop, tv

There are many different devices in the modern world: phones, tablets, notebooks, desktops and TVs.
I am a web programmer and I have been given the task of creating a site layout. The layout was drawn for a monitor with a resolution of 1920 × 1080, and I have a monitor in 1440 × 812 (MacBook Pro). And the difference of 500 pixels (1920-1440) prevents us from making the layout of the site normally. I wanted more control points for more flexible settings.
If you do not add custom control points, then 2 options remain:

The designer can fit the content in 1140 pixels ($ container-max-widths), despite the fact that the monitor resolution: 1920 pixels ...
On the notebook display content as for a tablet ...

I propose to supplement the table of breakpoints:
$grid-breakpoints: (
// Mobile
xs: 0, // for Phone portrait and up
sm: 576px, // for Phone landscape and up
md: 768px, // for Tablet portrait and up
lg: 992px, // for Tablet landscape and up
// Desktop
xl: 1200px,  // for Notebook and up
hd: 1500px,  // for Desktop and up
tv: 2000px,  // for TV and up
) !default;

You can already customize the breakpoints.
/CC @MartijnCuppens

Yup, you already can customize this now. Adding more breakpoints by default won't be worth the additional file size.


fix public-ip usage

Fixes the issue with a socket not sending a valid UUID (fingerprint)

@jareddlc 0.2.3 published.


undefined symbol: bpf_detach_kfunc @ Fedora32

bpftrace can't execute @ Fedora32
$ bpftrace
bpftrace: symbol lookup error: bpftrace: undefined symbol: bpf_detach_kfunc
$ uname -a
Linux home 5.6.19-300.fc32.x86_64 #1 SMP Wed Jun 17 16:10:48 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
$ rpm -qi bpftrace
Name        : bpftrace
Version     : 0.10.0
Release     : 2.fc32
Architecture: x86_64
Install Date: 2020/05/30 Sat 11:28:56
Group       : Unspecified
Size        : 4074406
License     : ASL 2.0
Signature   : RSA/SHA256, 2020/05/20 Wed 06:23:36, Key ID 6c13026d12c944d0
Source RPM  : bpftrace-0.10.0-2.fc32.src.rpm
Build Date  : 2020/05/20 Wed 06:14:20
Build Host  : buildvm-06.phx2.fedoraproject.org
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : https://github.com/iovisor/bpftrace
Bug URL     : https://bugz.fedoraproject.org/bpftrace
Summary     : High-level tracing language for Linux eBPF
Description :
BPFtrace is a high-level tracing language for Linux enhanced Berkeley Packet
Filter (eBPF) available in recent Linux kernels (4.x). BPFtrace uses LLVM as a
backend to compile scripts to BPF-bytecode and makes use of BCC for
interacting with the Linux BPF system, as well as existing Linux tracing
capabilities: kernel dynamic tracing (kprobes), user-level dynamic tracing
(uprobes), and tracepoints. The BPFtrace language is inspired by awk and C,
and predecessor tracers such as DTrace and SystemTap

This problem has been caused by an update in the bcc package (bcc-0.15.0-1.fc32.x86_64).
The latest update (bcc-0.15.0-2.fc32.x86_64), which is still in "testing", fixes it:
https://bodhi.fedoraproject.org/updates/FEDORA-2020-2406f3a6c5
You can force the installation of this update with the following command:
 sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-2406f3a6c5

thank you @caringi . it works !


--boot-diagnostics-storage does not support managed boot diagnostics for az vm create

Describe the bug
In order to provision a virtual machine with managed boot diagnostics enabled, our documentation states that we must use the flag --boot-diagnostics-storage without any parameters passed to it. However, using --boot-diagnostics-storage without passing anything into it isn't allowed.
Related command
az vm create
Errors
argument --boot-diagnostics-storage: expected one argument
Issue script & Debug output
cli.azure.cli.core.azclierror: Traceback (most recent call last):
File "/opt/az/lib/python3.12/argparse.py", line 1931, in parse_known_args
namespace, args = self._parse_known_args(args, namespace)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/az/lib/python3.12/argparse.py", line 2168, in _parse_known_args
start_index = consume_optional(start_index)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/az/lib/python3.12/argparse.py", line 2089, in consume_optional
arg_count = match_argument(action, selected_patterns)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/az/lib/python3.12/argparse.py", line 2264, in _match_argument
raise ArgumentError(action, msg)
argparse.ArgumentError: argument --boot-diagnostics-storage: expected one argument
cli.azure.cli.core.azclierror: argument --boot-diagnostics-storage: expected one argument
Expected behavior
az vm create ... --boot-diagnostics-storage should create a virtual machine with managed boot diagnostics enabled
Environment Summary
{
"azure-cli": "2.66.0",
"azure-cli-core": "2.66.0",
"azure-cli-telemetry": "1.1.0",
"extensions": {
"aks-preview": "7.0.0b3",
"amg": "1.3.6",
"azure-devops": "1.0.1",
"k8s-extension": "1.6.1"
}
}
Additional context
No response

Thank you for opening this issue, we will look into it.

@yonzhan why was the bug tag from this issue removed? This isn't just a question for the azure-cli team, our customer facing documentation states that you should be able to create a VM with managed boot diagnostics using azure-cli >= 2.11.0, but it is physically impossible to do so because --boot-diagnostics-storage requires a parameter in order for the vm create to execute.


Allow basic event store interface in repository

We can allow any event store implementing the basic event store interface. If event store does not trigger action events the user has to call AggregateRepository::saveAggregate instead.

Coverage decreased (-0.008%) to 99.371% when pulling 435d209a9c475a46d8f965c00d5e2ca21cb8182f on feature/allow_plain_event_store_in_repository into a2aa3a1651f5a2176dc8adf636e5efa1853dcd91 on develop.

I think we should remove the commit listener and always call saveAggregate then. You cannot switch the event store implementation otherwise, because your repository is bound to the used event store implementation.

I guess decreased coverage can be ignored. It is only a side effect due to less loc

@prolic what about the identity map. When should it be cleared then?

Should we remove the aggregate from identity map when saveAggregate is called?

This means in all command handlers you need to remove or add save aggregate method when you switch the event store implementation. Especially the flywheel es is meant to be used for development and cannot exchange the postgres es. So remove the commit listener and always call saveAggregate is much safer.

Ah yes, saveAggregate should remove from identity map.

k, I'll update the PR

Coverage decreased (-0.03%) to 99.346% when pulling 74dccc72e4db51cabb55c05eec4b6cc4a7caf4a0 on feature/allow_plain_event_store_in_repository into a2aa3a1651f5a2176dc8adf636e5efa1853dcd91 on develop.

done @prolic
decreased coverage still caused by less loc


.Net Can I specify the Openai service instance used by the Agent?

In the kernel I will register multiple AzureOpenAI, they represent different models that have token limitations,
IKernelBuilder builder = Kernel.CreateBuilder();
builder.AddAzureOpenAIChatCompletion(...MODEL 1..  ,serviceid:"ser-a");
builder.AddAzureOpenAIChatCompletion(...MODEL 2..,serviceid:"ser-b");

I have two agents and I want to specify the serviceid used by each agent.
ChatCompletionAgent agent1 = new()
{
              ExecutionSettings = new OpenAIPromptExecutionSettings()
              {
                  ExtensionData = new Dictionary<String, Object>()
      {
                      { "ser-b" , new PromptExecutionSettings() }
      },
                  Temperature = 0.7,
                  ToolCallBehavior = ToolCallBehavior.AutoInvokeKernelFunctions
              },
              Instructions = "...........",
              Name = "ag1",
          };

Package
"Microsoft.Extensions.Logging.Console" Version="8.0.0"
"Microsoft.SemanticKernel" Version="1.13.0"
"Microsoft.SemanticKernel.Agents.Abstractions" Version="1.13.0-alpha"
"Microsoft.SemanticKernel.Agents.Core" Version="1.13.0-alpha"
"Microsoft.SemanticKernel.Agents.OpenAI" Version="1.13.0-alpha"
"Microsoft.SemanticKernel.Connectors.OpenAI" Version="1.13.0"
"Microsoft.SemanticKernel.Plugins.Core" Version="1.13.0-alpha"
"Microsoft.SemanticKernel.PromptTemplates.Handlebars" Version="1.13.0"

@strikene, thank you for this insightful question.  We have a variety of cases that warrant the support your are proposing that have high priority for further exploration / support.
As you've identified, the current implementation does not currently utilize service selection by id/key.  This results in default service-selection logic in Kernel:  https://github.com/microsoft/semantic-kernel/blob/main/dotnet/src/SemanticKernel.Abstractions/Kernel.cs#L229
Taking a step back, your insight seems to intersect the perennial question on whether to use Kernel as a singleton.  There are certainly compelling scenarios to consuming a shared kernel with multiple keyed-services.  Ultimately, Kernel can be treated as a light-weight container and there is no prohibition to managing multiple Kernel instances.
One of the primary cases where managing multple Kernel instances may be a simplifying factor has to do with plug-in / function definition.  Consider an example where several plug-ins are utilized by are desired to be partitioned according to role.  Perhaps a researcher agent may have access to certain data sources, a analysis agent may have access to evaluation tools, and a manager agent is coordinating the broader operation.  Defining all of the plug-ins / functions for each role in a single shared Kernel doesn't align with the role partitioning (i.e. the analysis agent could access the data-sources on its own...but perhaps without sufficient context / instruction).
For this reason, a starting point in agent space, we initially emphasized the affinitization of an agent to its own specific Kernel as we expect cases that rely on plug-ins / function-calling to be dominant:

https://github.com/microsoft/semantic-kernel/tree/main/dotnet/samples/GettingStartedWithAgents
https://github.com/microsoft/semantic-kernel/tree/main/dotnet/samples/Concepts/Agents

Coming back to your example, I'd expect you intended to include the kernel assignment:
ChatCompletionAgent agent1 =
  new()
  {
    Kernel = builder.Build(),
    ...
  };

For now, I'd be curious on your thoughts on an alternate approach (should you need to maintain a uber-Kernel as your source):
Kernel kernel = builder.Build();
ChatCompletionAgent agent1 =
  new()
  {
    Kernel = CreateKernelWithService(kernel, "ser-b")
    ...
  };

Kernel CreateKernelWithService(Kernel kernel, string serviceId)
{
    IKernelBuilder builder = Kernel.CreateBuilder();
    builder.Services.AddSingleton(kernel.Services.GetRequiredKeyedService<IChatCompletionService>(serviceId));
    return builder.Build();
}

@strikene, thank you for this insightful question. We have a variety of cases that warrant the support your are proposing that have high priority for further exploration / support.
As you've identified, the current implementation does not currently utilize service selection by id/key. This results in default service-selection logic in : https://github.com/microsoft/semantic-kernel/blob/main/dotnet/src/SemanticKernel.Abstractions/Kernel.cs#L229Kernel
Taking a step back, your insight seems to intersect the perennial question on whether to use as a singleton. There are certainly compelling scenarios to consuming a shared kernel with multiple keyed-services. Ultimately, can be treated as a light-weight container and there is no prohibition to managing multiple instances.Kernel``Kernel``Kernel
One of the primary cases where managing multple instances may be a simplifying factor has to do with plug-in / function definition. Consider an example where several plug-ins are utilized and desired to be partitioned according to role. Perhaps a researcher agent may have access to certain data sources, a analysis agent may have access to evaluation tools, and a manager agent is coordinating the broader operation. Defining all of the plug-ins / functions for each role in a single shared doesn't align with the role partitioning (i.e. the analysis agent could access the data-sources on its own...but perhaps without sufficient context / instruction).Kernel``Kernel
For this reason, a starting point in agent space, we initially emphasized the affinitization of an agent to its own specific as we expect cases that rely on plug-ins / function-calling to be dominant:Kernel

https://github.com/microsoft/semantic-kernel/tree/main/dotnet/samples/GettingStartedWithAgents
https://github.com/microsoft/semantic-kernel/tree/main/dotnet/samples/Concepts/Agents

Coming back to your example, I'd expect you intended to include the kernel assignment:
ChatCompletionAgent agent1 =
  new()
  {
    Kernel = builder.Build(),
    ...
  };

For now, I'd be curious on your thoughts on an alternate approach (should you need to maintain a uber-Kernel as your source):
Kernel kernel = builder.Build();
ChatCompletionAgent agent1 =
  new()
  {
    Kernel = CreateKernelWithService(kernel, "ser-b")
    ...
  };

Kernel CreateKernelWithService(Kernel kernel, string serviceId)
{
    IKernelBuilder builder = Kernel.CreateBuilder();
    builder.Services.AddSingleton(kernel.Services.GetRequiredKeyedService<IChatCompletionService>(serviceId));
    return builder.Build();
}

hi
I understand very well that when using proxies, provide separate Kernel for each agent to distinguish the AOAI instances used. If it was a new API, I would definitely do it.
In my case, we will assign a kernel to each user, and all log, azure storage, or aoai access rights in this kernel will be based on the user's identity, and since there will be both GPT4/4O/4T users can choose the model they use for the conversation (although 4 can already be replaced by new models, of course their prices are not the same, and in some cases GPT3 will even be chosen).  to evaluate the effect of prompt words under different models. Refactoring an API for the sake of a 'proxy' is a lot of work.

Thank you for the additional detail.  I will continue to move forward with determining service selector support and had just desired to provide an option that might unblock you in the meantime.

Thank you for the additional detail. I will continue to move forward with determining service selector support and had just desired to provide an option that might unblock you in the meantime.

Perhaps this feature is not frequently used, but upon hearing this news, I am still grateful for the team's decision. Looking forward to the new version


consistent notebook formatting for documentation

Changes the size of each notebook's title so that it'll appear correctly in the documentation.

Codecov Report

Merging #127 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #127   +/-   ##
=======================================
  Coverage   95.81%   95.81%
=======================================
  Files          34       34
  Lines        1458     1458
=======================================
  Hits         1397     1397
  Misses         61       61

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 327ee83...f9348d3. Read the comment docs.


Added .idea and .vscode to .gitignore

Checklist

[x] I read and understood the contributing guide as well as the code of conduct
[x] My changes generate no new warnings
[x] My code builds and runs on my machine
[x] I documented my code
[x] Review requested

Good addition!

Approved. But the real question is, why would anyone open this project in VS Code or IntelliJ IDEA? 😄

@wdg, @austincondiff :How many other reviews do we have to wait to approve the merge?

@wdg, @austincondiff :How many other reviews do we have to wait to approve the merge?

None, merging now.


region: disk list add manual snapshot count

这个 PR 实现什么功能/修复什么问题:
RT
是否需要 backport 到之前的 release 分支:
release/2.11
/area region

Codecov Report

Merging #3390 into master will increase coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master   #3390      +/-   ##
=========================================
+ Coverage    7.17%   7.17%   +<.01%
=========================================
  Files         492     492
  Lines       80826   80826
=========================================
+ Hits         5796    5798       +2
+ Misses      74542   74541       -1
+ Partials      488     487       -1

Flag
Coverage Δ

#aFlag
7.17% <0%> (ø)
:arrow_up:

Impacted Files
Coverage Δ

pkg/compute/models/disks.go
0.64% <0%> (-0.01%)
:arrow_down:

pkg/cloudcommon/db/fieldtags.go
0% <0%> (ø)
:arrow_up:

pkg/multicloud/aws/region.go
0% <0%> (ø)
:arrow_up:

pkg/compute/models/dbinstance_accounts.go
2.62% <0%> (ø)
:arrow_up:

pkg/cloudcommon/db/sharedresource.go
34.78% <0%> (ø)
:arrow_up:

pkg/multicloud/ucloud/vpc.go
0% <0%> (ø)
:arrow_up:

pkg/compute/models/zoneresource.go
0% <0%> (ø)
:arrow_up:

pkg/util/s3auth/interface.go
24.56% <0%> (ø)
:arrow_up:

pkg/multicloud/aws/dbinstance_database.go
0% <0%> (ø)
:arrow_up:

pkg/compute/models/networkschedtags.go
3.22% <0%> (ø)
:arrow_up:

... and 46 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 87f8150...c5e4bc2. Read the comment docs.

/lgtm

/approve


Say command's text skips ahead, based on previous Say command's text length

Describe the bug
My Say dialogue's Writer script is set to NOT write whole words, NOT instant complete, NOT do read ahead text, while writing speed was set to 30, yet, when the next Say command's text is displayed, it skips ahead. See gifs below.
To Reproduce

Create a scene with the following setup:
Say dialogue
fade duration: 1

Writer
writing speed: 30
write whole words: off
instant complete: off
do read ahead text: off
Make sure both Say commands are set to "Always Show" and untick "Fade When Done". Menu commands should NOT be "Hide if Visited".
Commands

First node to have a Say command and a Menu command that leads to the second node
Second node to have a Say command and a Menu command that leads back to the previous node.

Enter play mode, click the menu option, observe the text being written out and remaining onscreen.
Click the menu option to go back to the previous node.
Click the menu option again, observe text not being written out, but instead some of it appearing onscreen, as if the previous Say command's text's length affected it. See gifs below.

Expected behavior
Text in Say commands set to "Always Show" to be written out from scratch every time they're displayed.
Screenshots
Say text skipping ahead based on previous Say text's length:

Same thing, but I made the first Say text 1 character. Observe the difference:

Here, you can see the same text being displayed for the first time, being written out, then second time, it doesnt get written out, it just fully appears onscreen. It would be expected that it always gets written out from scratch like first time:

Confirmed, I've this issue with texts instantly revealed right after interacting with menu dialog

Man, this problem is all over my game now... Tried to track it down but found nothing

Unfortunately the pr by @breadnone #952 hasnt fixed the issue - here's a slower gif to demonstrate:
As you can see the first text "The ship Cormo was sitting in for two days" is quite long, and then, after selecting the menu option AFTER this text, the next text will start at this point:

but if I replace the "The ship Cormo was sitting in for two days" text with "Short", observe the change:

Hope this demonstrates the issue better!

I'm not sure why it doesn't fix it for you, the bug never appeared in my game anymore with that pr. Make sure you git cherry-pick the pr and not manually adding them to your script, incase you missed something.
Another thing you could try is after adding that PR, then  setting the DialogInput to false while your menu is up, then wait for next frame and set it back to true after the menu gets clicked. That said, Fungus doesn't have anything to handle input buffer, so I guess that's the issue

@breadnone I've just triple checked the PR, I've got all the changes from it (compared my version and yours in WinMerge too), and I even removed all the DialogInput components from everything and the same problem still persists.

OK, so I found a simple repro. And, I found putting a Wait 1 Frame on the block that is being called by the menu removed the issue in my simple repro scene.
While that's not a good solution, it would be helpful if you can test the same in your circumstances, so I can rule out that I found an unrelated bug.

Thanks, I'll try this asap and report back on the results!

@stevehalliwell Thank you so much, this seems to have completely fixed the issue!


Add a way to disable the ansible-runners from ansible

Add a disable flag that disables the ansible-runner from running on
cron. This is useful for testing where I don't want all the runners to
actually start.
I haven't added the reverse that removes the flag from git as I feel you
probably want to control this manually so the automation doesn't remove
your manual hold.


Support generation no comments in files with Gradle init

With a new option --no-comments and an alternative property org.gradle.buildinit.comments

@bot-gradle test without pts

I've triggered the following builds with parameters: -DenablePredictiveTestSelection=false for you. Click here to see all build failures.

PullRequestFeedback build

@bot-gradle merge

I've triggered a build for you. Click here to see all failures if there's any.


🐛 Fix type error for peer dependency when compiling typescript

CC : @wicksipedia , @JackDevAU
Hi Team,
As per conversation with Jack P and Wicksy, the current build pipeline in TinaCMS is broken, preventing any PRs from being merged. After investigation, this is likely due to a new release of one of the transitive packages used in TinaCMS radix and typescript compiler start throwing error

Figure : Error in build pipeline when running pnpm tsc
The solution was to upgrade the TypeScript version in the packages causing the error. However, this requires refactoring and testing each peer dependency to ensure compatibility with the new TypeScript version ⚠.
Tasks

[x] Upgrade typescript version to solve the build error in CI
[x] Fix error and refactor broken code after typescript upgrade
[ ] Clean up

Here are some reference for solution:
Some improvement made from Wicksy (standardize pnpm version and etc) - https://github.com/tinacms/tinacms/pull/4575
Possible solution (the last commit showing update typescript version will fix the issue) - https://github.com/tinacms/tinacms/pull/4574

Update:
Using Knip I've started going through and weeding out package dependancies that aren't being used. I think there may need to be a larger task down the line to audit tinacms and potentially re-architect some of the package scaffolding, clearing out the dead/unused code.
PR: https://github.com/tinacms/tinacms/pull/4591

✅ Done - Tested and deployed in version 1.6.5

TinaCMC version 1.6.5
I still get the same errors as above. I already tried a clean install

Hey @MihaiCGL are you able to share more info (frameworks, versions, etc) in a separate issue?
I've seen some GitHub issues where this is type of thing is originating from vite and one of its plugins

I also encounter the "use client" was ignored issue in my automated Tina builds. It doesn't seem to cause any issues beyond visual noise, but i'd prefer not to see it if it can be helped.


Fix failing test for 06e3a475874835055b6fa12de554c27352a64ece

Current coverage is 96.05% (diff: 100%)

No coverage report found for master at 38c4138.

Powered by Codecov. Last update 38c4138...856088f


Multipart form?

Package version eg. v9, v10:
Issue, Question or Enhancement:
can you tell me, how can i use this for multipart files??
Code sample, to showcase or reproduce:
// Employee
type Employee struct {
	Name  string
	Image *multipart.FileHeader
}

// Employees
type Employees struct {
	Data []Employee
}

{
    "data": [
        {
            "name": "some name1",
            "image": "file1.jpg"
        },
        {
            "name": "some name2",
            "image": "file2.jpg"
        }
    ]
}

@tshubham7 I'm not 100% clear on your use case. It looks like you incoming data is in JSON format.

Does it supports file validation?


Create prompts that can use QuestionFreeText (or other question types) to return a dictionary

It can be useful to have the agent return a dictionary (eg agent traits) but this is not addressed with existing question type prompts. Eg trying to manipulate QuestionFreeText to do this throws an error because the response is not a string:
q_ranges = QuestionFreeText(
    question_name = "ranges",
    question_text = """You are being asked to design a survey about job posts at Upwork.
    Provide a dictionary where the keys are dimensions of freelancers
    and the values are lists of possible options for those dimensions."""
)
q_ranges.by(model).run().select("ranges").print()

Another approach is to do something like this where you break in into steps:
https://embed.deepnote.com/dceaad48-76c8-4ecb-a682-3eea29a1bfb2/3ca7ff714cdb4e978b93345638d23d2c/7d72edc51bff40edab51344cf0c6ad24?height=1797.0999755859375