The Configuration Template is not formatted correctly and can't be deployed

Summary
In the following article, the template is formatted incorrectly. The braces are out of line and the template cannot be deployed. The specific template is in Configure A Log Analytics Workspace section

The fix is as follows:

Move the closing square bracket on line 399 to line 310
A closing curly brace needs to be added on 311
The final closing curly brace may be removed

Azure documentation issue guidance
Thanks for opening an issue in the Azure technical documentation repository.
We use GitHub issues as the primary channel for customer and community feedback about the Azure documentation.
Creating an issue
We prefer that you create documentation feedback issues using the Feedback link on the published article - the feedback control on the doc page creates an issue that contains all the article details so you can focus on the feedback part.
You can also create a feedback issue here in the repo. If you do this, please make sure your issue lists:

[ ] The relevant Azure service or technology.
[ ] A link to the published documentation article that you have feedback about.
[ ] Clear, specific feedback that the author can act on.

Pull requests and article contributions
If you know the change that is needed in an article, we encourage you to submit the changes directly using a pull request. If the change is large, or if you want to contribute an entire article, follow these guidelines:

[ ] Don't surprise us with a big pull request or a pull request with a new article! Submit an issue that describes the details of the proposed large change or new article.
[ ] Include the service or technology area.

We'll route the issue to the appropriate content team for review and discussion.
Tech support and product feedback
If you would like to contact Microsoft about other things, such as product feedback or tech support, please review these guidelines:

If you need technical support using Azure, the paid and free support options are described here: https://azure.microsoft.com/support/options/.

Each article in the Azure technical documentation contains a product feedback button - it's best to submit product feedback directly from a relevant article. Otherwise, you can submit product feedback for most Azure products in the following product feedback forum: https://feedback.azure.com/forums/34192--general-feedback.

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

ID: d15cf474-1fc6-b97d-2a52-19f880e20ea9
Version Independent ID: 524c5814-49e0-11b4-ff0a-9953e7f9f0f6
Content: Use Azure Resource Manager templates to Create and Configure a Log Analytics Workspace
Content Source: articles/azure-monitor/platform/template-workspace-configuration.md
Service: log-analytics
GitHub Login: @MGoedtel
Microsoft Alias: magoedte

Hi @boscoedash - Thank you for your feedback. Since this channel is for driving improvements towards MS Docs, could you provide us with a URL of specific MS Documentation that your feedback may be most applicable to?

Apologies. I modified the description

@MGoedtel - kindly review and assist with the necessary doc edits.

@boscoedash & @femsulu - I will review the code block and correct the formatting issue.  It appears based on the last edits made by a different contributor it created this issue with the code.  #in-progress

I've identified the formatting issue and corrected and fixed a couple of other items during testing.  I've had to escalate this to the PG because there is one issue that I cannot resolve due to lack of reference documentation.

@boscoedash & @femsulu - I uncovered two issues with the JSON and corrected them - 1 section termination issue and syntax error with the customlogname section.  The updated article goes live later today.  #please-close.


Logistical Transporter/Pressurized Tube auto-eject not working, multipart bug.

When i have this setup, something seems to cause the auto-eject function to not work propatly. Was shown in the video attached below, removing the Plank Cover under the Logistical Transporter solves the problem. I'm guessing that there is something odd with the mulipart implementation.
Note that there is a Pressurized Tube under covered in Plank Covers. I've experienced this issue on Mekanism v6 and v7. Also tried the latest build: 1.7.10-<IP_ADDRESS> (Used in the video).
Here is a video showing the bug:
https://www.youtube.com/watch?v=wuC8oJ6t3iw

Fixed!

@aidancbrady Could you reopen this please? I'm still experiencing exactly the same issue as showed in the video on Mekanism <IP_ADDRESS> :-1:

Strange. I'll look into it

Excellent :)

Fixed after much code digging.  I was checking for a valid connection on the opposite side I was supposed to be, silly me.

Nice :)


Update WebXRHandTracking.ts

Temporarily remove XRHand compatibility test to avoid problems with compilation in certain environments.
Will find a solution at a later time

Does line 107 need to be updated as well?
"private generateHandPartsDefinition(hand: XRHand) {"

As it turns out, I was doing something wrong with my implementation in babylonNative, and mistakenly thought the problem was elsewhere. No need to complete this, unless other areas had difficulties as well.

Thanks for letting me know. PR closed, let me know if you still need any changes


[Broken]LinkedIn Learning - subtitles can't be downloaded

Checklist

[x ] I'm reporting a broken site support
[x ] I've verified that I'm running yt-dlp version 2021.09.02
[x ] I've checked that all provided URLs are alive and playable in a browser
[x ] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x ] I've searched the bugtracker for similar issues including closed ones

Verbose log

D:\Test>yt-dlp --newline --cookies cookies.txt -i -o "D:\Test\%(playlist_index)3d_%(title)s.mp4" -v --limit-rate 2M --min-sleep-interval 5 --max-sleep-interval 10 --write-sub "https://www.linkedin.com/learning/programming-foundations-fundamentals-3/the-fundamentals-of-programming"
[debug] Command-line config: ['--newline', '--cookies', 'cookies.txt', '-i', '-o', 'D:\\Test\\%(playlist_index)3d_%(title)s.mp4', '-v', '--limit-rate', '2M', '--min-sleep-interval', '5', '--max-sleep-interval', '10', '--write-sub', 'https://www.linkedin.com/learning/programming-foundations-fundamentals-3/the-fundamentals-of-programming']
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252
[debug] yt-dlp version 2021.09.02 (exe)
[debug] Python version 3.8.10 (CPython 64bit) - Windows-10-10.0.17763-SP0
[debug] exe versions: ffmpeg 2021-09-16-git-8f92a1862a-full_build-www.gyan.dev
[debug] Optional libraries: mutagen, pycryptodome, sqlite, websockets
[debug] Proxy map: {}
[debug] [linkedin:learning] Extracting URL: https://www.linkedin.com/learning/programming-foundations-fundamentals-3/the-fundamentals-of-programming
[linkedin:learning] the-fundamentals-of-programming: Downloading 360p JSON metadata
[linkedin:learning] the-fundamentals-of-programming: Downloading 540p JSON metadata
[linkedin:learning] the-fundamentals-of-programming: Downloading 720p JSON metadata
[linkedin:learning] the-fundamentals-of-programming: Downloading m3u8 information
[debug] Sort order given by extractor: res, source_preference
[debug] Formats sorted by: hasvid, ie_pref, res, source, lang, quality, fps, vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] 2230252: Downloading 1 format(s): progressive-720p
[debug] Invoking downloader on "https://dms.licdn.com/playlist/C4E0DAQHDUpArl1xv9Q/learning-original-video-vbr-720/0/1598695182397?e=1632603600&v=beta&t=U2wYVIiEVOx5OW8I0KSQ82IfrZJI828PTrPTozg5Fhs#.mp4"
[download] Sleeping 9.27 seconds ...
[download] Destination: D:\Test\NA_The fundamentals of programming.mp4
[download]   0.0% of 18.15MiB at 64.00KiB/s ETA 04:50
[download]   0.0% of 18.15MiB at 191.99KiB/s ETA 01:36
[download]   0.0% of 18.15MiB at 447.99KiB/s ETA 00:41
[download]   0.1% of 18.15MiB at 959.97KiB/s ETA 00:19
[download]   0.2% of 18.15MiB at 991.92KiB/s ETA 00:18
[download]   0.3% of 18.15MiB at  1.31MiB/s ETA 00:13
[download]   0.7% of 18.15MiB at  1.47MiB/s ETA 00:12
[download]   1.4% of 18.15MiB at  1.89MiB/s ETA 00:09
[download]   2.7% of 18.15MiB at  1.85MiB/s ETA 00:09
[download]   5.5% of 18.15MiB at  1.99MiB/s ETA 00:08
[download]  11.0% of 18.15MiB at  1.99MiB/s ETA 00:08
[download]  22.0% of 18.15MiB at  1.98MiB/s ETA 00:07
[download]  32.8% of 18.15MiB at  1.98MiB/s ETA 00:06
[download]  43.7% of 18.15MiB at  1.99MiB/s ETA 00:05
[download]  54.8% of 18.15MiB at  1.99MiB/s ETA 00:04
[download]  65.9% of 18.15MiB at  1.99MiB/s ETA 00:03
[download]  76.9% of 18.15MiB at  1.99MiB/s ETA 00:02
[download]  87.9% of 18.15MiB at  1.99MiB/s ETA 00:01
[download]  98.8% of 18.15MiB at  1.99MiB/s ETA 00:00
[download] 100.0% of 18.15MiB at  2.00MiB/s ETA 00:00
[download] 100% of 18.15MiB in 00:09

Description

I'm was trying to download subtitles along with videos from the linkedin learning video course.
But only video clips are downloaded. No subtitles.
Subtitles are available and they can be turned ON while watching videos directly on the linkedin learning website (same way like you turn them ON by pressing 'CC' on youtube).
The link for subtitles can be found if you check html source of that linkedin page ( by pressing CTRL+U) and look for 'data-captions-url' which is located inside  tag and it has a link for a subtitle.
So in the source file, it looks like this:
<video class="share-native-video__node video-js" data-sources="[{"src":"https://dms.licdn.com/playlist/....." data-poster-url="https://media-exp1.licdn.com....." data-captions-url="https://www.linkedin.com.....

IDK if this a region thing or what but i don't see the captions in the webpage.
The extractor doesn't even use webpages so it would be better to find captions from json.

I don't know. I think it has nothing to do with region.
For instance, go to this link: https://www.linkedin.com/learning/programming-foundations-fundamentals-3
Press the 'Introduction' drop-down and select first video 'The Fundamentals of Programmng'.
When page loads, check the source (CTRL+U)
Line 493 of the source starts with <video autoplay class="share-native-video__node video-js" data-s.....
In the same line look for: data-captions-url="https://www.linkedin.com...
Here are the screenshots:
https://i.imgur.com/uiip8vk.png
https://i.imgur.com/qsI4OaF.png
^ that data-captions-url  holds the link to subtitle file, which when link is pasted in the browser, download a file in *.vtt file format.

I can see the subs in browser. But as Ashish said, we should try to fetch it from the API if possible

Thanks @Ashish0804 for looking into this issue and for trying to fix it.
I checked it and it does download a subtitile. BUT there is a small 'glitch'.
When file is downloaded, the extension is *.srt (which is also what I like to see), while original file being a *.vtt file (which is the same thing), BUT...
When I tried to play the file with subtitle which was downlaoded with new 'fix', there was ony one messy 'text' over the video and then no subtitle text at all. Here is a screenshot:
https://i.imgur.com/jGLReCE.png
^ After that, I manualy downloaded a subtitle in *.vtt format by checking source code of the website and compared the content of both subtitles. Here on next screenshot you can see the difference (left is the sub downloaded by the fix, on the right is the *.vtt sub downloaded manualy from the browser)
https://i.imgur.com/Zec0mdi.png
In the subtitle downloaded by the fixed linkedin.py, we can see that...(compared to the original *.vtt from the site) there is no space (or 'empty line') after the subtitle text. Or if you will, 'before the new line of subtitle text begins'.
And... since the 'original' (on the right) sub has some 'WEBVTT' text at the begining, and the 'fixed' one doesn't, I would say, that there was some coding involved into 'cleaning' (adjusting) the subtitle file.
I tried to just add an empty line after every line of spoken words, and that 'fixed' it.
So instead having this:
1
00:00:00,070 --> 00:00:04,019
- Now more than ever, you hear about the importance
2
00:00:04,019 --> 00:00:06,040
of STEM education and the need
...it should be:
1
00:00:00,070 --> 00:00:04,019
- Now more than ever, you hear about the importance
<---------------   an empty line here ---------------------->
2
00:00:04,019 --> 00:00:06,040
of STEM education and the need
Could you check and re-fix the fixed extractor file, please?

OOOF
I didn't see this bug bcoz it works for me on potplayer.
I'll push a fix later today.


x/tools/gopls: send back ranges for parse errors

We currently only send the starting position of an error in LSP diagnostics. We should determine the end of the error as well. For type errors, we can just get the length of the identifier. We will need another approach for parse errors.

Happy to take this one, but need some pointers on how to get to the identifier given just the token.Position from the error message.  Seems we need to convert to a token.Pos, I'm not sure how to convert in that direction.

@zmb3: I saw your reply and started trying to refactor things to make it easier to fix this bug, and then I got a bit carried away and got through about 3/4 of the fix myself. Did you want to fix this yourself or is it cool if I send out my CL?

No, please go ahead and send your CL. I’m anxious to see what you came up with 😀

The above CL attempted to address this by using the AST to determine ranges for parse errors. However, this had the unexpected consequence of making the ranges either too large or unintuitive for the user. Most likely, we will want to modify the error ranges based on the type of the error, which will require error codes to allow us to distinguish between the different errors.

I don't think that this is actually necessary at this point. Until we have error codes or ranges coming back from go/parser, we can't make progress here. Going to close this issue.


Parse error where rustc parses correctly

Sorry if this has already been reported, I couldn't find an issue for it.
pub trait Trait<T>
where
    for<'a> (&'a T,): Send,
{
}

Syntax Error: expected a path
Syntax Error: expected colon
Syntax Error: expected comma

fixed on master


Add algebraic simplications for mul, div, add etc.

x * 1 = x
x / 1 = x
x * 0  = 0
x + 0 = x
x - 0 = x
x * 0 = 0
x * -1 = -x
x  / -1 = -x
If x / 0 is detected anywhere throw errors.
Consecutive const binary operations.
y = (x + c1) + c2 --- > y = x + (c1+c2) -- > y = x + c3 where c3  = c1 + c2 const folded.
y = ( x * c1 ) * c2 --- > y = x * (c1 * c2)
etc...

Got something in the works for x*1 = x.
Getting the odd identity(x) operation popping out. Thanks to your recent help, I was able to handle the
x1 and 1x cases with matchers.
Currently breaking another test for this though.

Awesome. Thanks

Fixed with https://github.com/ROCmSoftwarePlatform/AMDMIGraphX/pull/1281


Support for materialization = view

In the current dbt-iris release, when using materialization = view, it's in fact generating tables that are fully materialized. This was due to some limitations or inconveniences in the IRIS version at that time, but I believe the acute ones have been addressed and we have a customer that really needs the view option because of dataset size.
Happy to sort out any remaining wrinkles and collaborate on a solution.

Hi @daimor ,
I'm poking around with a simple approach to add support for this in my fork, but wanted to know if there are any expected unit test failures that I can safely ignore. These don't feel related to what I'm trying:

\tests\functional\basic\test_simple_reference.py::test_simple_reference
\tests\functional\shared_tests\test_concurrency.py::TestConcurrency::test_concurrency

Hi, that's great,
I'll try to find time to look at it
as far as I remember, the most issues were with renaming views, or columns in the view

I think I have the test_simple_reference case covered now, but find the test suite a little hard to navigate, so I'm not sure whether there are tests on renaming columns that are now passing, or they're still silently skipped from the parent project.
FWIW, I'm taking a rather blunt approach to renaming views, just recreating them as needed. That hasn't appeared to cause any trouble with cascaded fallout so far, but again I'm not sure whether I need to un-skip more tests from the parent project.

check out views branch
it fails mostly at rename
AS expected, IDENTIFIER (rename) found ^ alter view "test17338394554585243025_test_concurrency"."view_model__815b4eb7983b46038e85b1de28b6b559" rename>

SQL for rename defined in macros rename_relation

IRIS doesn't support an ALTER VIEW v RENAME ... command (and has no intent to add that), so the approach I took in my fork is to drop and recreate, after reading the view definition query from the dictionary tables. That seems to work (also after marking views as renamable, having found the trick in your branch), with the exception of that concurrency test, which I still don't quite understand.

I also found an issue with this test, and as far as I got, there is something to do with cascade drop, and/or clearing cache. Need to find out how to refresh cache. When the second create of table_a happens, it thinks that it's still exists. And only happens when view used instead of table

Ha, this is the pre-existing problem that ALTER TABLE t RENAME tt fails when there are views referring to t. Let me check with development where that stands and what options we'd have to work around it without requiring an IRIS server change.


How to get private video token?

Hi, thank you for open sourcing this SDK!  🙌
I've been trying to use this SDK to show private videos, but I wasn't able to find a way to get one-time private video token besides from parsing one of the URLs returned as assets map in GET /videos/:videoId endpoint response.
Is there a way to get this token seamlessly / did I miss something in the documentation? 😅
If not, does it make sense to add this token to the mentioned endpoint response so it can be easily passed to the PlayerSdk constructor?

Thanks for using the SDK!
You are correct: the only way to get a new private token is from the API (or the same endpoint with one of our SDKs). Since the player SDK can be run client side, we cannot allow it to generate private tokens - that sort defeat the purpose of having a private token :)
Doug

@dougsillars thank you for the quick response! Sorry if I phrased the question badly - I didn't mean that the player SDK should generate it. 😄
This token is returned by the GET /videos/:videoId authenticated endpoint which is exposed by the NodeJS SDK API, but it's only returned in the form of the query param in the assets bag values (i.e. embed code, player URL, etc.).
That way, user has to parse one of the assets bag properties to get the token (for example player URL).
So to rephrase the question - does it make sense for that authenticated endpoint (and NodeJS SDK get method) to return the raw token in the response, besides assets bag?
This now seems like a question that should be asked in NodeJS SDK repo, so if you'd like so, I can move it there. 🙂

No worries - I think it is ok to discuss here.  The Node SDK is merely returning the API response.  Since the API response only returns the token in the assets.. that's where it is.  I'll mention this to the dev team.


touch up "travel times" screen (formerly "trip summaries")

bar chart
Primarily, use more human bucket intervals, like with the "risk exposure" viz. This also puts the long tail of trips into a single bucket.
before

after

scatter plot
ui polish: remove undesirable left padding, tweak title
before

after

I'm considering adding a toggle to switch the scatter plot to log scale...

I'm considering adding a toggle to switch the scatter plot to log scale...

That'd be a nice feature! The long tail of a few trips lasting over 2 hours kind of hides the interesting patterns in most trips.

I was a bit disoriented by the labels not lining up with the bars. I know they mark the boundaries between bars, but with the longer text, it just felt off. I tried extending the tick marks to see if it changes anything, but it doesn't seem to do much:

So I think it's all fine, just a thought.

I was a bit disoriented by the labels not lining up with the bars.

Yeah, I see what you mean. Now that units are included in the label it's harder to perceive it as centered on the bar boundaries...
I'll try adding some little lines like in your mockup, I think it could help a little.

I was a bit disoriented by the labels not lining up with the bars.

Yeah, I see what you mean. Now that units are included in the label, it's harder to perceive it as centered on the bar boundaries...
I'll try adding some little lines like in your mockup, I think it could help a little.

Ok, here's where I landed:

WDYT?
I also rebased and included some clippy-fixes for some recently merged code.


(feat) QUIC Client Initial parser

This diff is a draft for adding a routine to parse QUIC Client Initial packets.
This is useful for netem because it will allow us to emulate middleboxes that read and filter based on the SNI and protected QUIC header fields.
Reference issue: #2480

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

207 of 296 (69.93%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-1.06%) to 80.935%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

dissect.go
1
3
33.33%

quiccrypto.go
49
64
76.56%

quicparse.go
157
229
68.56%

Totals

Change from base Build<PHONE_NUMBER>:
-1.06%

Covered Lines:
2165

Relevant Lines:
2675

💛  - Coveralls


WIP: OCPBUGS-23544: Improving performance of creating VMs in Azure

This will enable us to change the number of concurrent reconciles so that we can test the behaviour of the controller when we increase the number of reconciles from the default value of 1.
It also ensures that we set the networkAddresses and providerID fields in the status when the VM is created, rather than waiting for the next reconcile to update these. This is important because the network addresses not being set causes the CSR approver not to work, which, when scaling up in large quantities, can cause a backlog which eventually prevents any CSRs being approved. This change should mitigate those slow approvals.

/jira refresh

Some hack in vendor for now for testing

/test unit

/lgtm

/lgtm

/retest
Issues do not appear to be related

/approve


[BUG] Telegram Bot API not sending all chat_member updates

I have noticed an issue with the Telegram API where it is not sending all updates related to the chat_member field, specifically when a user joins a channel where my bot is a member. In my use case, I generate an invitation link for a user in a channel where my bot is an admin, and when the user clicks on the link and enters the channel, I expect to receive an update indicating that the user has joined. However, in 20% of cases, I do not receive this update, even though I have received all other updates (verified by checking the update_id).
It's worth noting that in 80% of cases, I do receive the update indicating that the user has joined, so it's not a problem with my setup or configuration.
This issue is not sustainable as it affects the reliability of my bot's functionality. I have tried using both webhook and polling methods to receive updates, but the issue persists.
**What I do **

Generate an invitation link for a user in a channel where your bot is an admin.
The user clicks on the link and enters the channel.
Check for updates using getUpdates or webhook.
In 20% of cases, the update indicating that the user has joined may not be received.

I suspect that the issue may be related to users not having a username, but I am not sure. Please investigate this issue and let me know if there is a solution. Thank you.
More explanations:
I have a Telegram bot in a channel.
I use the API to generate unique invitation links.
I invite people with these links. They successfully join my channel.
I use https://api.telegram.org/bot" + BOT_TOKEN + "/getUpdates with allowed_updates: [
"update_id",
"chat_member",
"message",
"channel_post",
]
I successfully retrieve the updates and store everything in my database. I have checked and I have all the update_id, so I have not missed any updates, I have a complete list of numbers.
Previously, I was using the webhook, but I had the same problem I have now, so I switched, thinking that it could be different and more reliable, but it's the same.
In my updates, I successfully retrieve chat_member but not 100% of the time, it seems.
When I give 100 invitation links to my channel to 100 people,
I obtain chat_member updates with the link inside, which proves that it is the chat_member object generated by link X.
The problem is that I do not receive 100% of the chat_member updates. In about 15-20% of cases, I do not receive any chat_member updates, and I do not have any missed update_id.
It is as if Telegram does not create chat_member objects in some cases... yet these 100 tests are on the same channel with the same bot, using the same code and configuration, for 100 random people.
So my question is:
Are there limits that prevent the bot API from creating 100% of the chat_member objects? If there are many objects to create in a short period of time?
Or are there users who are causing problems? If they do not have a username, for example?
I think the problem lies with Telegram during the creation of objects because I do have the complete sequence with the update_id number. I have tried to find a pattern among the users, but it is difficult to see anything.
Thank you very much

@levlam if you have few minutes to check this. Thanks a lot

This can be caused only by using multiple sessions for the bot. If the bot uses multiple sessions, then updates can be missed.
See https://github.com/tdlib/telegram-bot-api#moving-a-bot-to-a-local-server for the correct way to move the bot to a local server (or any other Bot API implementation).


Clash meta for windows

Is there any clash Meta for windows that have similar ui to clash for windows?

@hiddify clash verge

@hiddify clash verge

Thanks
It would be nice if you mention it in the readme file

https://github.com/MetaCubeX/Clash.Meta/pull/318

Thanks It would be nice if you mention it in the readme file

https://docs.metacubex.one/used


Add a (basic) TypeScript definitions for the viewer components (issue 13267)

Please note that while the gulp types/gulp typestest tasks (obviously) still work with this patch, I've got no idea if the output is first of all even useable and secondly if it's actually useful in practice.
However, in the interest of closing some (seemingly simple) issues, I suppose that this probably shouldn't hurt (and we'd need TypeScript users to help improve things here).
Fixes #13267

Let's add this; thanks!


Hypersolvers in neurodiffeq

Nice work on the package. I was wondering if you'd be interested in eventually adding hypersolvers to neurodiffeq; it should be pretty straightforward given the machinery you've built here! We have a small reference PyTorch implementation here.

We are certainly interested! We'd be interested in hearing more and even setting up a short chat to discuss how to proceed. @shuheng-liu

Hi @Zymrael , thanks for your interest. Hypersolvers seem really interesting and we'd love to have that in the library. Currently, we're working on several other features. It would probably take some time before our team eventually implement the hypersolvers. If you (or anyone you know) would like to contribute to the library, we'd really appreciate it! I can map out the part where you can add the new functionality so that you won't feel disoriented. Either way, please let us know.

Sorry for the late reply, lot of deadlines to take care of. Pinging @Juju-botu as he's also working on hypersolvers currently and is interested in contributing. I'll reach out via email to set up a quick intro + brainstorming talk.


Add async_function type for tool schema & fix bugs

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

Comparison is base (2a496ca) 82.88% compared to head (1826c27) 82.88%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##              dev     #849   +/-   ##
=======================================
  Coverage   82.88%   82.88%
=======================================
  Files         225      225
  Lines       12439    12441    +2
=======================================
+ Hits        10310    10312    +2
  Misses       2129     2129

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

All tests passed (2 unrelated failures) https://github.com/geekan/MetaGPT/actions/runs/7796600529/job/21261574498?pr=849


Added another tutorial

Hi, I added another tutorial in the docs (reversing the API of an Android game). Let me know if I should change anything.

Thanks for the great PR. It's always awesome to see people trying to improve the docs. However, I'm a bit :-1: to this in its current form. This tutorial puts a lot of emphasis on how the specific game works, with relatively little mitmproxy explanation. I feel that there is a large conceptual overlap with the GameCenter tutorial as well. May I ask what your motivaton was/where you saw shortcomings with the current state? :smiley:

Hi, thanks for your positive feedback :smiley: I saw that there weren't a lot of tutorials on how to use mitmproxy (3), so I went ahead and converted a blog post of mine to fit into the docs (as a real-world example in using mitmproxy). In hindsight, this probably wasn't the greatest idea... Let me know if you still want to use it for something/adapt it. (Going to try to improve code coverage for a while now)


@conda-forge-admin, please add bot automerge

Additional comment:
No response

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added bot automerge in conda-forge/proxsuite-feedstock#3.


Update Single-Page-Application-with-AD-FS.md

Description:
There are 5 GitHub image link filename extensions in uppercase .PNG instead of lowercase .png, but all the linked image files have been lowercase only, for quite a long time.
The 5 existing uppercase image link filenames are causing the 5 images to show up as broken on the GitHub page, but there is no good reason, as I see it, that the link filenames should stay incorrect and only be correct on docs.microsoft.com when the GitHub filenames have been lowercase for 3-5 years.
Changes proposed:

convert uppercase GitHub image link filename extensions .PNG to lowercase .png to match the actual filenames
(ref. commit 387e9cf chore: Fix casing on addgroupsetp images / bbd253a updating)

Codestyle changes:

modify casing and change "appsettings" to  'appSettings XML' in the code block description

Whitespace changes:

normalize numbered list leading whitespace from 4 to 1
standardize whitespace around MarkDown table cell dividers
add missing MD indent marker compatibility spacing

Additional notes:

Ask the MS Docs team members if the Startup.Auth.cs file code block could possibly have been modified to use diff syntax highlighting, add red minus lines to the code to be removed, and add green plus lines to code to be added, instead of the text "remove:" / "and add:" text lines, which are not part of the code itself.

Ticket closure or reference:
Ref. #849 (Almost unrelated ticket, the link only directed me to the document on GitHub to discover this discrepancy.)

@illfated : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@illfated : Thanks for your contribution! The author(s) have been notified to review your proposed change.


CMakeLists.txt update for CURAND

Hi,
The CUDA cmake module includes a variable  ${CUDA_curand_LIBRARY},
so you don't need to manually search for find_library(CURAND_LIB curand).
The NCCL appears to be REQUIRED if using CUDA? In which case,
the CMakeLists.txt could maybe benefit from a message(STATUS "NCCL lib in: ${NCCL}") ?
Also, the cmake .. and make in the root directory is a wee bit confusing.
Another thing, I kept getting segfaults, because I hadn't run ./script/download_resource.sh so maybe this should be in the README.md for silly people such as myself? :grinning:
By the way, thanks a ton for putting this repo together, it is really useful!!
Best,
Alex
diff-patch:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 558a85b..b7c2bb0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -23,7 +23,6 @@ find_library(CAFFE2_GPU_LIB Caffe2_GPU)
 find_library(GLOG_LIB glog)
 find_library(GFLAGS_LIB gflags)
 find_library(NCCL_LIB nccl)
-find_library(CURAND_LIB curand)

 if(NOT CAFFE2_LIB)
   message(FATAL_ERROR "Caffe2 lib not found")
@@ -75,7 +74,7 @@ if(OpenCV_LIBS)
 endif()

 if(CUDA_LIBRARIES)
-  list(APPEND ALL_LIBRARIES ${CUDA_LIBRARIES} ${CUDA_CUDART_LIBRARY} ${NCCL_LIB} ${CURAND_LIB})
+    list(APPEND ALL_LIBRARIES ${CUDA_LIBRARIES} ${CUDA_CUDART_LIBRARY} ${NCCL_LIB} ${CUDA_curand_LIBRARY})
   add_definitions(-DWITH_CUDA)
 endif()

Thanks Alex, really appreciate all that. I updated the CMake config with the two changes and added a mentioning of ./script/download_resource.sh in the readme.
About he cmake .. and make: I copied this pattern from the Caffe2 CMake setup. The goal here is to keep all build products in the build/ folder instead of the root. Is there a more elegant way to do this?

I must have made a mistake, if you keep everything under build thats absolutely fine!
You could try to use CMakeLists.txt to download the models (I can provide the diff patch if you want), but I am assuming that users may already have the models downloaded from caffe?
Also, is NCCL a requirement or optional?

You're right. The NCCL reference is unnecessary; i removed it. For some reason it was needed in the past to resolve linker errors.

You can still use it with a custom cmake flag, e.g., -DUSE_NCCL and then search for it.
Thanks for the examples, very useful 👍


Pin back werkzeug version to avoid flask issue

Werkzeug have released version 1.0.0: https://pypi.org/project/Werkzeug/1.0.0/. The API has changed and this causes issues in the flask packages. E.g.
File "/vagrant/src/serviceapi/.tox/py3/lib/python3.6/site-packages/nmoscommon/webapi.py", line 53, in <module>
    import flask_oauthlib.client
  File "/vagrant/src/serviceapi/.tox/py3/lib/python3.6/site-packages/flask_oauthlib/client.py", line 18, in <module>
    from werkzeug import url_quote, url_decode, url_encode
ImportError: cannot import name 'url_quote'

The werkzeug release notes has an item that explains: Remove most top-level attributes provided by the werkzeug module in favor of direct imports. For example, instead of import werkzeug; werkzeug.url_quote, do from werkzeug.urls import url_quote. Install version 0.16 first to see deprecation warnings while upgrading.

CI build failures are happening on the branch but not the PR. I don't know what the difference is and whether the branch failure can be ignored.


Paradiso error with versions newer than 0.2.0

I install using pip on windows. Up to version 0.2.0, I did not get any errors when running simpeg TDEM inversion. Now it complains about needing pydiso. My problem is that the pip install of pydiso needs compilers and other libraries. Can something be done so that the new versions behave like 0.2.0?

If you need 0.2 behavior, I’d recommend installing 0.2.
If you need 0.3, then your current options are:

install pydiso (which as you’ve noticed is not as easy as pip install because it needs compilers and other libraries). However installing pymatsolver through conda-forge will install pydiso for you if you’re on an intel machine.

or:

Use the most recent main branch of SimPEG at https://github.com/simpeg/simpeg. It has been updated to support the changes. A new release version of SimPEG will likely be out in a week.

Thanks for the feedback. I will use 0.2 for now and wait for the new SimPEG.


error on CMAKE command

Hey there,
i'm using a OrangePi 5 8Gb RAM with Debian 12 Wormwhole and for some reason when i try to execute this command:
cmake .. && cmake --build . --parallel $(nproc) && cd ..
I get this error:
orangepi@orangepi5:/app/ai/mlc-llm/build$ cmake .. && cmake --build . --parallel $(nproc) && cd ..
-- Hide private symbols
-- TVM_HOME: 3rdparty/tvm
-- Hide private symbols...
-- Forbidding undefined symbols in shared library, using -Wl,--no-undefined on platform Linux
-- Didn't find the path to CCACHE, disabling ccache
-- VTA build with VTA_HW_PATH=/app/ai/mlc-llm/3rdparty/tvm/3rdparty/vta-hw
-- Build VTA runtime with target: sim
-- Enabled runtime search for OpenCL library location
-- Couldn't build OpenCL-Gtests
-- Build with contrib.random
-- Build with contrib.sort
-- Build with contrib.hybriddump
-- Git found: /usr/bin/git
-- Found TVM_GIT_COMMIT_HASH=3001b20b0dd114cad23fccb25cbb055ce80a224e
-- Found TVM_GIT_COMMIT_TIME=2023-11-01 10:48:36 -0400
-- Building with TVM Map...
-- Build with thread support...
-- system-nameLinux
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- VERSION: 0.2.00
-- Found atomic: /usr/lib/aarch64-linux-gnu/libatomic.so.1
CMake Error at 3rdparty/tokenizers-cpp/CMakeLists.txt:131 (add_library):
  add_library INTERFACE library requires no source arguments.

CMake Error at 3rdparty/tokenizers-cpp/CMakeLists.txt:132 (target_link_libraries):
  Cannot specify link libraries for target "tokenizers_c" which is not built
  by this project.

-- Configuring incomplete, errors occurred!
See also "/app/ai/mlc-llm/build/CMakeFiles/CMakeOutput.log".
See also "/app/ai/mlc-llm/build/CMakeFiles/CMakeError.log".

I followed all the previous instructions without problems.
What could my problem be?
Thanks for your support.

Seems error comes from “Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)”. Try google search and install missing package then retry. Maybe because your system is too new or just different ditro have different libs pre installed.

Hi, thanks for your reply.
I have installed doxygen, but the problem is still there.
Any other idea ?
Can you share your output of this command, so i can compare it ?
Thanks again for your support.

Hi @Chrisz236,
sorry for the long time.
I wanted to tell you that in the end I solved the problem by buying an OPi5 Plus, and with Debian 12 Wormhole everything installed easily.
I can't tell you now if it's linked to a HW problem or the installed system, but the installation seems to be not compatible with the OPi5.
Thanks for the support.

Ah, good to hear that. Have fun with your new OPi5 Plus :)


Add parallel parsing with MPI

Now able to read BUFR files in parallel via MPI. This is supported through bufr2netcdf.x (just run it as mpi process), and also via the python interface (please see the updated docs).
Adds Dependency

MPI

Examples

bufr2netcdf.x: mpirun -n 4 bufr2netcdf.x ./test/testinput/data/gdas.t12z.mtiasi.tm00.bufr_d ./test/testinput/bufrtest_mtiasi_mapping.yaml temporary_{splits/satId}.nc
python

  import sys
  import bufr
  from bufr.encoders import netcdf

  def mpi_example():
      DATA_PATH = 'testinput/data/gdas.t18z.1bmhs.tm00.bufr_d'
      YAML_PATH = 'testinput/bufrtest_mhs_basic_mapping.yaml'
      OUTPUT_PATH = 'testrun/mhs_basic_parallel.nc'

      bufr.mpi.App(sys.argv)  # Initialize the MPI application (not needed if ioda script)
      comm = bufr.mpi.Comm("world")  # Get the MPI communicator
      container = bufr.Parser(DATA_PATH, YAML_PATH).parse(comm)  # Parallel parse the BUFR file
      container.gather(comm)  # (OPTIONAL) Gather the DataContainer data from all the ranks

      if comm.rank() == 0:
          netcdf.Encoder(YAML_PATH).encode(container, OUTPUT_PATH) # Encode the DataContainer object

@rmclaren I built the bufr-query with this feature branch.
Will test it with ATMS and IASI, check the timing, and report back to here.

@emilyhcliu Thanks! Now I am nervious :)

@rmclaren Here are my MPI test results for IASI and CrIS using bufr2netcdf.x
The processing time for reading BUFR:
IASI - 1 processor is ~280 seconds
IASI - 4 processors is ~ 68 second

CrIS - 1 processor is ~343 seconds
CrIS - 4 processors is ~ 84 seconds

However, the CrIS MPI processing has problems at the `gathering` part at rank 0.
The receiving data size is less than the buffer size (see messages below).

IASI  with single processor
mpirun -n 1 ${src_dir}/build/bin/bufr2netcdf.x ${input_file} $yaml ${output_file}
+ mpirun -n 1 /work/noaa/da/eliu/EMC-bufr-query-mpi/bufr-query/build/bin/bufr2netcdf.x /work/noaa/da/eliu/EMC-bufr-query-mpi/run_iasi/testinput/2021080100/gdas.t00z.mtiasi.tm00.bufr_d /work/noaa/da/eliu/EMC-bufr-query-mpi/run_iasi/bufr2ioda_mtiasi_mapping.yaml '/work/noaa/da/eliu/EMC-bufr-query-mpi/run_iasi/testoutput/2021080100/bufr_backend/gdas.t00z.mtiasi_{splits/satId}.tm00.nc'
MPI startup(): Warning: I_MPI_PMI_LIBRARY will be ignored since the hydra process manager was found
BufrParser: Parsing file /work/noaa/da/eliu/EMC-bufr-query-mpi/run_iasi/testinput/2021080100/gdas.t00z.mtiasi.tm00.bufr_d
Executing Queries
Building Bufr Data
Exporting Data
Finished [277.964s]

IASI with 4 processors
mpirun -n 4 ${src_dir}/build/bin/bufr2netcdf.x ${input_file} $yaml ${output_file}
+ mpirun -n 4 /work/noaa/da/eliu/EMC-bufr-query-mpi/bufr-query/build/bin/bufr2netcdf.x /work/noaa/da/eliu/EMC-bufr-query-mpi/run_iasi/testinput/2021080100/gdas.t00z.mtiasi.tm00.bufr_d /work/noaa/da/eliu/EMC-bufr-query-mpi/run_iasi/bufr2ioda_mtiasi_mapping.yaml '/work/noaa/da/eliu/EMC-bufr-query-mpi/run_iasi/testoutput/2021080100/bufr_backend/gdas.t00z.mtiasi_{splits/satId}.tm00.nc'
MPI startup(): Warning: I_MPI_PMI_LIBRARY will be ignored since the hydra process manager was found
MPI startup(): Warning: I_MPI_PMI_LIBRARY will be ignored since the hydra process manager was found
MPI startup(): Warning: I_MPI_PMI_LIBRARY will be ignored since the hydra process manager was found
MPI startup(): Warning: I_MPI_PMI_LIBRARY will be ignored since the hydra process manager was found
BufrParser: Parsing file /work/noaa/da/eliu/EMC-bufr-query-mpi/run_iasi/testinput/2021080100/gdas.t00z.mtiasi.tm00.bufr_d
BufrParser: Parsing file /work/noaa/da/eliu/EMC-bufr-query-mpi/run_iasi/testinput/2021080100/gdas.t00z.mtiasi.tm00.bufr_d
BufrParser: Parsing file /work/noaa/da/eliu/EMC-bufr-query-mpi/run_iasi/testinput/2021080100/gdas.t00z.mtiasi.tm00.bufr_d
BufrParser: Parsing file /work/noaa/da/eliu/EMC-bufr-query-mpi/run_iasi/testinput/2021080100/gdas.t00z.mtiasi.tm00.bufr_d
MPI task: 0 Executing Queries for message 0 to 8104
MPI task: 3 Executing Queries for message 24315 to 32419
MPI task: 1 Executing Queries for message 8105 to 16209
MPI task: 2 Executing Queries for message 16210 to 24314
MPI task: 0 Building Bufr Data
MPI task: 2 Building Bufr Data
MPI task: 3 Building Bufr Data
MPI task: 1 Building Bufr Data
MPI task: 0 Exporting Data
MPI task: 2 Exporting Data
MPI task: 3 Exporting Data
MPI task: 1 Exporting Data
MPI task: 2 Finished [68.162s]
MPI task: 0 Finished [68.643s]
MPI task: 3 Finished [68.918s]
MPI task: 1 Finished [69.26s]

CrIS  with single processor
mpirun -n 1 ${src_dir}/build/bin/bufr2netcdf.x ${input_file} $yaml ${output_file}
+ mpirun -n 1 /work/noaa/da/eliu/EMC-bufr-query-mpi/bufr-query/build/bin/bufr2netcdf.x /work/noaa/da/eliu/EMC-bufr-query-mpi/run_cris/testinput/2021080100/gdas.t00z.crisf4.tm00.bufr_d /work/noaa/da/eliu/EMC-bufr-query-mpi/run_cris/bufr2ioda_crisf4_mapping.yaml '/work/noaa/da/eliu/EMC-bufr-query-mpi/run_cris/testoutput/2021080100/bufr_backend/gdas.t00z.crisf4_{splits/satId}.tm00.nc'
MPI startup(): Warning: I_MPI_PMI_LIBRARY will be ignored since the hydra process manager was found
BufrParser: Parsing file /work/noaa/da/eliu/EMC-bufr-query-mpi/run_cris/testinput/2021080100/gdas.t00z.crisf4.tm00.bufr_d
Executing Queries
Building Bufr Data
Exporting Data
Finished [343.05s]

CrIS  with 4 processors
mpirun -n 4 ${src_dir}/build/bin/bufr2netcdf.x ${input_file} $yaml ${output_file}
+ mpirun -n 4 /work/noaa/da/eliu/EMC-bufr-query-mpi/bufr-query/build/bin/bufr2netcdf.x /work/noaa/da/eliu/EMC-bufr-query-mpi/run_cris/testinput/2021080100/gdas.t00z.crisf4.tm00.bufr_d /work/noaa/da/eliu/EMC-bufr-query-mpi/run_cris/bufr2ioda_crisf4_mapping.yaml '/work/noaa/da/eliu/EMC-bufr-query-mpi/run_cris/testoutput/2021080100/bufr_backend/gdas.t00z.crisf4_{splits/satId}.tm00.nc'
MPI startup(): Warning: I_MPI_PMI_LIBRARY will be ignored since the hydra process manager was found
MPI startup(): Warning: I_MPI_PMI_LIBRARY will be ignored since the hydra process manager was found
MPI startup(): Warning: I_MPI_PMI_LIBRARY will be ignored since the hydra process manager was found
MPI startup(): Warning: I_MPI_PMI_LIBRARY will be ignored since the hydra process manager was found
BufrParser: Parsing file /work/noaa/da/eliu/EMC-bufr-query-mpi/run_cris/testinput/2021080100/gdas.t00z.crisf4.tm00.bufr_d
BufrParser: Parsing file /work/noaa/da/eliu/EMC-bufr-query-mpi/run_cris/testinput/2021080100/gdas.t00z.crisf4.tm00.bufr_d
BufrParser: Parsing file /work/noaa/da/eliu/EMC-bufr-query-mpi/run_cris/testinput/2021080100/gdas.t00z.crisf4.tm00.bufr_d
BufrParser: Parsing file /work/noaa/da/eliu/EMC-bufr-query-mpi/run_cris/testinput/2021080100/gdas.t00z.crisf4.tm00.bufr_d
MPI task: 2 Executing Queries for message 3297 to 4944
MPI task: 0 Executing Queries for message 0 to 1648
MPI task: 1 Executing Queries for message 1649 to 3296
MPI task: 3 Executing Queries for message 4945 to 6592
MPI task: 2 Building Bufr Data
MPI task: 0 Building Bufr Data
MPI task: 3 Building Bufr Data
MPI task: 1 Building Bufr Data
MPI task: 2 Exporting Data
MPI task: 0 Exporting Data
MPI task: 3 Exporting Data
MPI task: 2 Finished [83.773s]
MPI task: 0 Finished [84.216s]
MPI task: 3 Finished [84.329s]
MPI task: 1 Exporting Data
MPI task: 1 Finished [87.826s]
Abort(1009870350) on node 0 (rank 0 in comm 0): Fatal error in PMPI_Gatherv: Message truncated, error stack:
PMPI_Gatherv(401)..........................: MPI_Gatherv failed(sbuf=0x1271526b0, scount=667239, MPI_CHAR, rbuf=0x1295adc20, rcnts=0x4991ebf0, displs=0x4991b3b0, datatype=MPI_CHAR, root=0, comm=MPI_COMM_WORLD) failed
MPIR_Gatherv(554)..........................:
MPIDI_Gatherv_intra_composition_alpha(2658):
MPIDI_NM_mpi_gatherv(397)..................:
MPIR_Gatherv_intra_auto(39)................:
MPIR_Gatherv_allcomm_linear(86)............:
MPIR_Localcopy(44).........................: Message truncated; 667239 bytes received but buffer size is 222413

@emilyhcliu Would it be possible to copy the CRIS data you ran (data and configs) to the HERA HPC?

I improved the printing of time stamp information. It now prints time to parse, time to encode, and the total time elapsed.

@emilyhcliu Would it be possible to copy the CRIS data you ran (data and configs) to the HERA HPC?

@rmclaren Yes, I will do that now.  I will let you know when I have the files on HERA in a few minutes.

@rmclaren
Here is my EMC-bufr-query  (with your feature/in_parallel branch) on HERA:
/scratch1/NCEPDEV/da/Emily.Liu/EMC-bufr-query-mpi/bufr-query

The input files, mapping files, and the associate scripts are in the following directory:
/scratch1/NCEPDEV/da/Emily.Liu/EMC-bufr-query-mpi/run_cris

bufr2netcdf_bufr.sh is the script submitted to SLURM to do mpi run
sbatch bufr2netcdf_bufr.sh

I just submitted the script and here is the output:
SLURM_bufr2netcdf.o63173267
The run reproduced the error at the MPI gathering step I described above.
Please let me know if you need more information.

@emilyhcliu Thanks!

@emilyhcliu So the problem happened while gathering string fields, which are a little more complicated than the numerical fields. I believe I fixed the problem.

The satwind tests looked good (see Issue #14)
I will repeat tests for IASI and CrIS again and document the results here.
@nicholasesposito You have the high-level API converter worked for aircraft.  Could you please test it with MPI?
I can show you examples to test the MPI during JEDI Junction.

@rmclaren
Can I test bufr-query MPI in JEDI using feature/bufr_in_parallel from the IODA repository?

@emilyhcliu @rmclaren built bufr-query and ioda-bundle/ioda using their corresponding feature/parallel branches on Hercules and successfully created the output file for the ADPUPA prepBUFR data.
It seems that MPI is taking a bit more time to run the job. Should this not be in other way?
Without MPI:  Runtime:      1.89 sec
MPI: Runtime:                     1.91 sec

@PraveenKumar-NOAA How are you running it exactly?

@rmclaren thanks, now I ran it correctly using 'srun -n ..' I created a plot for the number of nodes vs time for my ADPUPA test.
Chart1.pdf

I ran aircraft profiles (prepbufr) withs run and mpi and got these results:
No mpi:

Runtime:     18.17 sec,  Memory: total:   813.37 Mb, per task: min =   813.37 Mb, max =   813.37 Mb

With mpi:

Runtime:     17.87 sec,  Memory: total:   926.29 Mb, per task: min =   926.29 Mb, max =   926.29 Mb
Runtime:      5.41 sec,  Memory: total:     1.17 Gb, per task: min =   312.46 Mb, max =   857.89 Mb
Runtime:      3.51 sec,  Memory: total:     1.64 Gb, per task: min =   264.66 Mb, max =   566.26 Mb
Runtime:      3.02 sec,  Memory: total:     2.07 Gb, per task: min =   230.46 Mb, max =   460.74 Mb
Runtime:      2.64 sec,  Memory: total:     3.40 Gb, per task: min =   225.84 Mb, max =   354.71 Mb

Wonder if someone could approve this PR so I can go ahead and merge it?

@rmclaren I seem to remember the output nc files did not contain all the data due to the merge not working correctly or something like that, but I may be wrong. Was that fixed, and if so, is that in this PR?

@nicholasesposito Were you comparing data generated with IODA to data (output files) generated with bufr-query? The output files were not expected to be identical in these cases due to small differences in the way header information is encoded, and the fact that IODA filters out fields with missing data (this is what I recall you ran into, but don't remember excactly). There is also the issue @emilyhcliu reported (#14), but this has been fixed.

That works. Thanks !

Thanks everyone!


[Error] Please enable function calling before using the agent.

Describe the bug
Unable to start an agent. Core aichat works as expected, models are usable, rag is usable etc...
To Reproduce

Clone functions repo

Add agents and functions to agents.txt or tools.txt as needed

Link functions repo under ~/.config/aichat/functions

Configuration
aichat --agent coder

Please enable function calling before using the agent.

ls ~/.config/aichat/functions/
agents  agents.txt  Argcfile.sh  LICENSE  README.md  scripts  tools  tools.txt

Environment (please complete the following information):
system     "Fedora Linux 40 (Workstation Edition)" Linux 6.10.5-200.fc40.x86_64 x86_64

aichat 0.20.0

which aichat
~/.cargo/bin/aichat

default model: model: ollama:llama3.1:8b-instruct-q4_0   # Specify the LLM to use
Config:
models:
      - name: llama3.1:8b-instruct-q4_0
        max_input_tokens: 8192
        supports_function_calling: true

@oatmealm

Unable to start an agent.
What does this mean? You need to report the error details.

That's the error I'm seeing when I try to start an agent, i.e. aichat --agent coder

@oatmealm
I still don't understand the issue you are describing. Is taking a screenshot really that hard?

It is recommended to submit bugs by https://github.com/sigoden/aichat/issues/new?assignees=&labels=&projects=&template=bug_report.md&title=
We can't help you without bug details.

@oatmealm
please submit the output of aichat --info.

The function_calling must be true. If you install llm-functions correctly, it should be true.

Oh, I see. Sorry for the messy report.
I'm not sure if function calling as implemented by aichat is an implementation detail of aichat or depends on abilities of the model itself...? AFAIK llama3 under ollama doesn't support function calling natively.
I have a model setup this way:
models:
      - name: llama3.1:8b-instruct-q4_0
        max_input_tokens: 8192
        supports_function_calling: true

model                   ollama:llama3.1:8b-instruct-q4_0
max_output_tokens       -
temperature             -
top_p                   -
dry_run                 false
stream                  true
save                    true
keybindings             emacs
wrap                    no
wrap_code               false
save_session            -
compress_threshold      4000
function_calling        false
use_tools               -
rag_reranker_model      jina:jina-reranker-v2-base-multilingual
rag_top_k               4
highlight               true
light_theme             false
config_file             /home/xxx/.config/aichat/config.yaml
roles_file              /home/xxx/.config/aichat/roles.yaml
env_file                /home/xxx/.config/aichat/.env
functions_dir           /home/xxx/.config/aichat/functions
rags_dir                /home/xxx/.config/aichat/rags
sessions_dir            /home/xxx/.config/aichat/sessions
messages_file           /home/xxx/.config/aichat/messages.md

@oatmealm
In your AIChat info, the value of function_calling is false. This is the reason for the error. You may not have successfully installed llm-functions.
Perform the following checks:

Ensure llm-functions is installed correctly, does the directory /home/xxx/.config/aichat/functions exist? does /home/xxx/.config/aichat/functions/functions.json exist?
Ensure there is no function_calling: false in config.yaml.

I see. I was working of the example config file but didn't copy over the functions section.  That's taken care of.
I don't see any functions.json though...

@oatmealm

III. Run argc build to build tools and agents.

Maybe you missed this operation.

It errors on building coder but produces the json file. Thanks for the help I think I can continue from here 😅


Global mouse hook

Is your library can be used to create global mouse hook? If so, can you provide me some snippet code?

Hi, actually I don't know, if that would be possible with the available bindings - never needed something like that.
This repo is only containing C# bindings for parts of the Windows API, so if you know how to do it with that API (there are probably examples of StackOverflow & Co. for Windows API based hooks), you can try rebuild it using this repo's classes.


Testlet Simplification

After considering the discussion in https://github.com/Mierdin/todd/issues/27, I have determined that there's a need to adjust the way testlets are being done. In short, the current approach of performing all tests using external testlets written in bash, etc, creates a level of complexity that makes it more difficult to get started with ToDD than it needs to be. In short, any testlets that are "packaged with" ToDD should be written in pure Go, and compiled into the agent, instead of the current, complicated approach.
However, the flexibility offered by the current approach MUST be preserved, for those that wish to leverage their own testing applications. So, in short, I've started work on the following approach:

Write some "standard" tests and build them into the todd-agent. There will be no need to download these from the ToDD server at runtime. However, the functionality that allows a user to populate the server's asset directory with their own testlet will be preserved. The only change here is that the existing testlets in the repo will be moved to the agent properly.
A framework will be built (leveraging Go interfaces) that will ensure that the built-in tests follow the established standard. This will keep the user experience between native and non-native as similar as possible.

Tasks

Implement Standardized testlets. For this effort, at a minimum, ping, bandwidth, and http must be implemented.

The bulk of the testing logic will be kept in 3rd-party imports, rather than built into the todd-agent. For instance, the native ping testlet could leverage https://github.com/tatsushid/go-fastping (or other) instead of re-implementing the ping functionality in the agent.
Since the tests are being written in Go, they should have unit tests.
Need to decide in what formats arguments should be sent to native testlets

Update documentation

Each built-in test type needs to be documented in detail. Not just the arguments it accepts and the metrics it gathers, but also how it works. What libraries it uses, etc.
Update the existing "build your own testlet" doc to properly reflect these changes

Misc

This does not address collectors; those will be taken care of in another patch

Opened https://github.com/Mierdin/todd/pull/80 to begin this process, but this is just the beginning. https://github.com/Mierdin/todd/pull/80 only adds infrastructure for native testlets and only the "ping" testlet has been written so far. The other testlets should be phased out once they have their own projects created.


[BUG] - Docker: Resource punkt not found

Description
I'm unable to launch the docker container after a clean pull
(WSL2, Docker 24.0.5, image digest sha256:d239cbf3733c58a065c516ab2d936929487cedf39098813d0aada47bbb540f07)
Reproduction steps
docker run -e GRADIO_SERVER_NAME=<IP_ADDRESS> -e GRADIO_SERVER_PORT=7860 -p 7860:7860 -it --rm taprosoft/kotaemon:v1.0

Screenshots
No response
Logs
Warning: Cannot statically find a gradio demo called demo. Reload work may fail.
Watching: '/app' '/app'

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/llama_index/core/utils.py", line 65, in __init__
    nltk.data.find("tokenizers/punkt")
  File "/usr/local/lib/python3.10/site-packages/nltk/data.py", line 579, in find
    raise LookupError(resource_not_found)
LookupError:
**********************************************************************
  Resource punkt not found.
  Please use the NLTK Downloader to obtain the resource:

  >>> import nltk
  >>> nltk.download('punkt')

  For more information see: https://www.nltk.org/data.html

  Attempted to load tokenizers/punkt

  Searched in:
    - '/root/nltk_data'
    - '/usr/local/nltk_data'
    - '/usr/local/share/nltk_data'
    - '/usr/local/lib/nltk_data'
    - '/usr/share/nltk_data'
    - '/usr/local/share/nltk_data'
    - '/usr/lib/nltk_data'
    - '/usr/local/lib/nltk_data'
    - '/usr/local/lib/python3.10/site-packages/llama_index/core/_static/nltk_cache'
**********************************************************************

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/app/app.py", line 13, in <module>
    from ktem.main import App  # noqa
  File "/app/libs/ktem/ktem/main.py", line 2, in <module>
    from ktem.app import BaseApp
  File "/app/libs/ktem/ktem/app.py", line 8, in <module>
    from ktem.components import reasonings
  File "/app/libs/ktem/ktem/components.py", line 11, in <module>
    from kotaemon.base import BaseComponent
  File "/app/libs/kotaemon/kotaemon/base/__init__.py", line 1, in <module>
    from .component import BaseComponent, Node, Param, lazy
  File "/app/libs/kotaemon/kotaemon/base/component.py", line 6, in <module>
    from kotaemon.base.schema import Document
  File "/app/libs/kotaemon/kotaemon/base/schema.py", line 8, in <module>
    from llama_index.core.bridge.pydantic import Field
  File "/usr/local/lib/python3.10/site-packages/llama_index/core/__init__.py", line 10, in <module>
    from llama_index.core.base.response.schema import Response
  File "/usr/local/lib/python3.10/site-packages/llama_index/core/base/response/schema.py", line 9, in <module>
    from llama_index.core.schema import NodeWithScore
  File "/usr/local/lib/python3.10/site-packages/llama_index/core/schema.py", line 18, in <module>
    from llama_index.core.utils import SAMPLE_TEXT, truncate_text
  File "/usr/local/lib/python3.10/site-packages/llama_index/core/utils.py", line 89, in <module>
    globals_helper = GlobalsHelper()
  File "/usr/local/lib/python3.10/site-packages/llama_index/core/utils.py", line 67, in __init__
    nltk.download("punkt_tab", download_dir=self._nltk_data_dir)
  File "/usr/local/lib/python3.10/site-packages/nltk/downloader.py", line 774, in download
    for msg in self.incr_download(info_or_id, download_dir, force):
  File "/usr/local/lib/python3.10/site-packages/nltk/downloader.py", line 629, in incr_download
    info = self._info_or_id(info_or_id)
  File "/usr/local/lib/python3.10/site-packages/nltk/downloader.py", line 603, in _info_or_id
    return self.info(info_or_id)
  File "/usr/local/lib/python3.10/site-packages/nltk/downloader.py", line 1006, in info
    self._update_index()
  File "/usr/local/lib/python3.10/site-packages/nltk/downloader.py", line 949, in _update_index
    ElementTree.parse(urlopen(self._url)).getroot()
  File "/usr/local/lib/python3.10/xml/etree/ElementTree.py", line 1222, in parse
    tree.parse(source, parser)
  File "/usr/local/lib/python3.10/xml/etree/ElementTree.py", line 580, in parse
    self._root = parser._parse_whole(source)
xml.etree.ElementTree.ParseError: unclosed token: line 80, column 4

Browsers
No response
OS
No response
Additional information
No response

same happens for me, is there any solution to this?

This is likely an issue with WSL 2 and the firewall settings of the host preventing the download triggered by nltk.

I am on a corporate network, so it could be some firewall issue. However, loads of other Docker images can pull from the internet just fine (although Alpine is known to be sketchy with connectivity).

I had the same problem, with only Punkt not downloading and running correctly.
But I have tried to solve this problem, I hope my ideas can help you.

Make sure your internet connection is OK, you can try ping google.com

Manually Download the NLTK Package.
Once inside the container, run the following command to download and cache the NLTK data.
python -c "import nltk; nltk.download('punkt')"

After confirming the data is cached, exit the container.
Then, save the container as a new image to avoid re-downloading the data in the future.
docker commit <container_id> taprosoft/kotaemon:v1.1

From now on, you can use the new image taprosoft/kotaemon:v1.1 to start containers, which will skip the NLTK data download step.
docker run -e GRADIO_SERVER_NAME=<IP_ADDRESS> -e GRADIO_SERVER_PORT=7860 -p 7860:7860 -it --rm taprosoft/kotaemon:v1.1


Multi-env layers always updating without changes. Environments hardcoded makes productive working impossible

Before opening, please confirm:

[X] I have installed the latest version of the Amplify CLI (see above), and confirmed that the issue still persists.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

How did you install the Amplify CLI?
npm
If applicable, what version of Node.js are you using?
16.10.0
Amplify CLI Version
7.6.4
What operating system are you using?
Mac
Amplify Categories
function
Amplify Commands
env, pull, push, status, update
Describe the bug
Our plan was to use lambda layers to improve productivity and share code across multiple functions. We are working in an multi-env project, where we are facing a lot of issues with layers.

When switching between environments via amplify env checkout xyz all lambda layer versions are getting updated to new versions with new descriptions/timestamps without any change in the source code from the layer. So when a team member switches from e.g. dev to sandbox1 environment, all layer files are modified and needs to be committed with git, without any change in the code. Because we are using multiple layers tracking all files and check if everything is fine is a lot of work.
We are hosting the app on amplify as well and everytime we deploy a new version triggered by a change on GitHub, the backend is building in the amplify deployment workflow again and updates again all layers. So everytime we push our code to git and amplify deploys it, the backend is due to the automatic layer updates on a different version than our local amplify project. This means if we check the status of the amplify environment with amplify status all functions with layers and the layers itself are on Update because local and cloud backends are always different

These continuous updating layers and git modifications by the amplify cli makes working nearly impossible.
When a team member wants to merge code from e.g. dev to staging the following workflows are necessary

git checkout staging
git merge dev -> Sometimes this is causing conflicts in git with layer versions even though we didn't made any  change in the layer config
amplify env checkout staging -> Now in every layer every parameters.json file gets automatically modified with the current timestamp at the description property.
amplify push -> Amplify CLI detects changes in layers, but we didn't make any changes. Next update of the layer. No we are out of sync from local layer versions
git add . && commit -m "merged from dev in staging" && git push -> This fires the CD-Pipeline in the amplify console. At the build step amplify is building the backend again and updates again the lambda layers.
Now local and cloud layers are completely different versions, but we didn't change anything in there code!
amplify pull to get the updated layer versions from the build pipeline again to the local project
git add. && commit -m" fetching new layer versions -> Committing the new versions

Now if we push it again to the cloud we would began at number 5 again
With this incredible bad developer experience we have to delete all layers and copy the desired code directly into the different lambda functions. This is very time consuming but makes less headache to work with our team than using layers.
Expected behavior
When working with different environments and team members, the environment shouldn't be hardcoded due to changes in git.
Deploying to the cloud should not update all layers again so the local configuration is always wrong after deploying the app.
Deploying to cloud and working on different environments shouldn't trigger any change in git tracked files.
This should only, of course, happen, when we really change the code of the layer and not only the environment without touching the layer
Reproduction steps

Create new function with amplify add function
Create new layer with amplify add function
Attach the layer to the function amplify update function
Create new env amplify add env test
Switch to the env amplify env checkout test

You can see that the environment is hardcoded and was modified automatically by the CLI

Add hosting in the console for CI/CD
Push your changes to the cloud
Wait that the deployment finishes
Check the status with amplify status

You can see that the function status is update because the CI/CD builded the backend again and updated the layer and is now one version before the local one
GraphQL schema(s)

# Put schemas below this line

Log output

# Put your logs below this line

Additional information
No response

Hey @chris-mds :wave: thanks for raising this! I have been able to reproduce this behavior, where checking out an Amplify environment will produce updates to the layer's CloudFormation template and updates the layer's parameters.json file as well, however I am not able to reproduce the Update status in the attached functions. To clarify, when attaching a function to the layer are you selecting the latest Lambda Layer version?
Here is a sample diff after switching environments: https://github.com/josefaidt/9386/commit/86a6995a59e179c127470055d59a3c9c15393315
And if we then check out the same environment again we will see changes to the team-provider-info.json file: https://github.com/josefaidt/9386/commit/2c997403ec1ed2deda6e949f2f8bdbbaffd676d6

Hi @josefaidt,
Thank you for your answer. Yes I am always selecting latest layer version.
Is it supposed to be updated every time? In my opinion the environment should be declared as a variable like in every other category to prevent having changes in git.
I also found the issue for the update status: This is due to the CI/CD pipeline from hosting.
When creating / updating a function on my local environment my machine is creating the package-lock.json file with lockfile-version 2 because we are using npm 7.
When the CI/CD pipeline is building the backend again, it is using an other npm version so the package-lock.json is created with lockfile-version 1. Now local environment and cloud environment are different and we have our update status.
How could we use layers without having these updating issues?

Hey @chris-mds thank you for that clarification! Ideally the layer version would not be updated when checking out an existing environment given no changes were made to the layer. For the npm issue, I would recommend updating npm as a part of your buildspec (amplify.yml) to match the npm version used locally. This can be accomplished by adding an additional step to the backend build phase
version: 1
backend:
  phases:
    # IMPORTANT - Please verify your build commands
    build:
      commands:
        - npm i -g npm@7
        - '# Execute Amplify CLI with the helper script'
        - amplifyPush --simple
# ...

Marking as a bug 🙂

Hi @josefaidt ,
Thank you for your fast reply! I will test your suggestion on a new test environment and will give feedback soon.

related to https://github.com/aws-amplify/amplify-cli/issues/8216

Thanks for catching the lambda layer increment. We are sorry that it bothers you. Here's what we found about the issue:

It happens on Amplify Hosting when deploying a new commit from Git
It happens on local if pull and push by the following steps

amplify pull --appId <app-id> --envName <env>
amplify push --force

Note: The local command would create a new version and delete all the old versions.
It creates a new layer because Amplify CLI detected code change (code). It looks like a design because it would print "Content changes in Lambda layers detected." (code) when it detects layer change, but no matter if there's any layer change, it always create a new layer (code).
After more investigation, I found it's because if we create a new folder and amplify pull the resource, the previousHash would be empty (code, code).
previousHash (latestPushedVersionHash) is created locally for amplify push, so a new folder doesn't have it.
It can not be resolved by a quick fix and need to re-design how we should handle the situation.

Would be very nice if it would not always redeploy the layer(s) when no change has happened to them.
It would shave a lot of time from total deployment time. Now all lambda's that are using the layer(s) also redeploy all the time.

I add to @Nxtra comment above.  My production deploy are now taking over 30 min so to pass through a staging and pre-live set now takes an hour and a half.  This seems crazy for a 1 line change in a single lambda.


where are you readme

where are you readme

If you think a README could help, feel free to write one and PR it! It is just a standard cmake project though, there are no special build instructions.


broken import with plot3d realted to ext/ipyvolume

https://github.com/maartenbreddels/vaex/blob/2924541ec199a6852a78d1d5689695430d27c525/vaex/ext/ipyvolume.py#L1
There is no PlotBase in ext/bqplot.py

Thanks again, you can use sth like this for now:
ds.plot_widget("x", "y", "z", vx="vx", vy="vy", vz="vz", backend="ipyvolume", f="log1p", shape=100, smooth_pre=0.5)

plot3d should plot_widget with backend ipyvolume as default, I'll keep this open til that is fixed.


make --retina flag an actual flag

I just added is_flag=True to the @click decorator.
It no longer requires an argument after it (i.e. --retina 1)
Thanks for the great debugger!

Nice !
Thanks for your help ;)


Allow manually setting top-levels for JSON Schema input

From https://github.com/Microsoft/vscode-debugadapter-node/blob/master/debugProtocol.json .
This schema defines all its types inside definitions of the schema which quicktype does not appear to output anything for (perhaps because the types don't appear to be reachable)?
Is this something that can worked around or that can be improved in quicktype?
Smaller reproduction
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "VS Code Debug Protocol",
  "description": "A json schema for the VS Code Debug Protocol",
  "type": "object",
  "definitions": {
    "ProtocolMessage": {
      "type": "object",
      "description": "Base class of requests, responses, and events.",
      "properties": {
        "seq": {
          "type": "integer",
          "description": "Sequence number."
        },
        "type": {
          "type": "string",
          "description": "One of 'request', 'response', or 'event'.",
          "_enum": [
            "request",
            "response",
            "event"
          ]
        }
      },
      "required": [
        "seq",
        "type"
      ]
    }
  }
}

Correct, this schema only defines a top-level map type.
There are two options, if you can't modify the schemas:

Make one schema for each type that uses "$ref" to refer to the definition in the master schema.  To do that we'd have to finally implement cross-file references ;-)

We could add an option to quicktype to let you specify which schema definitions you want as top-level types.

What are your thoughts?

We could make the option allow a wildcard which would take in all types.

@Marwes Do you happen to know why the enum is defined with "_enum" and not "enum" in the Schema?  quicktype only recognizes the latter.  I've never seen the former before.

No idea, might just be a typo I guess.

Tried it, but it doesn't seem to be working. I have git version installed.

@gintsmurans The way to do it now is to specify it as part of the input filename on the command line:
quicktype --src-lang schema "/my/schema.json#/definitions/"

Did this work for anyone? I got an empty Converter.java without any definitions specified inside using 15.0.223. Here's my command:
quicktype --lang java --src-lang schema ./sample-json-schema.json#definitions
This is the output:
package io.quicktype;

import java.util.*;
import java.io.IOException;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.core.JsonProcessingException;

public class Converter {
    // Serialize/deserialize helpers

    public static Object fromJsonString(String json) throws IOException {
        return getObjectReader().readValue(json);
    }

    public static String toJsonString(Object obj) throws JsonProcessingException {
        return getObjectWriter().writeValueAsString(obj);
    }

    private static ObjectReader reader;
    private static ObjectWriter writer;

    private static void instantiateMapper() {
        ObjectMapper mapper = new ObjectMapper();
        reader = mapper.reader(Object.class);
        writer = mapper.writerFor(Object.class);
    }

    private static ObjectReader getObjectReader() {
        if (reader == null) instantiateMapper();
        return reader;
    }

    private static ObjectWriter getObjectWriter() {
        if (writer == null) instantiateMapper();
        return writer;
    }
}

The only way to make it work for me was to specify each JSON Schema file separately in the same command line:
quicktype --lang java -s schema schema1.json schema2.json schema3.json
The output includes entity classes along with a Converter class with getters and setters for each class. Still, this is not optimal, as you can't pass a single dereferenced JSON Schema with multiple definitions. Any other suggestion? Thanks!

Nevermind. It works if you include the trailing slash. In my case:
quicktype --lang java --src-lang schema ./sample-json-schema.json#definitions/


Make AirVisual platform async + other adjustments

Description:
This PR makes the following changes to AirVisual:

Bumps the underlying library (pyairvisual) to 1.0.0.
Makes the platform async.
Removes the radius configuration parameter (no longer used in the AirVisual API).
Fixes a bug with colliding unique IDs between U.S. and Chinese sensors.
Adds in support for scan_interval.
Rearchitects the platform the be more consistent in style with other sensor platforms.

BREAKING CHANGES
First, the radius configuration parameter no longer does anything and has been removed. This won't negatively impact any existing integrations, but it should still be noted.
Second, this PR will modify the unique IDs for each sensor to correctly include the locale. New unique IDs will now include _us_ and _cn_ – example:
sensor.us_air_quality_index:
  config_entry_id:
  name:
  platform: airvisual
  unique_id: Los Angeles,California,USA_us_air_quality_index
sensor.chinese_main_pollutant:
  config_entry_id:
  name:
  platform: airvisual
  unique_id: Los Angeles,California,USA_cn_main_pollutant
sensor.us_air_pollution_level:
  config_entry_id:
  name:
  platform: airvisual
  unique_id: Los Angeles,California,USA_us_air_pollution_level
sensor.chinese_air_pollution_level:
  config_entry_id:
  name:
  platform: airvisual
  unique_id: Los Angeles,California,USA_cn_air_pollution_level
sensor.chinese_air_quality_index:
  config_entry_id:
  name:
  platform: airvisual
  unique_id: Los Angeles,California,USA_cn_air_quality_index
sensor.us_main_pollutant:
  config_entry_id:
  name:
  platform: airvisual
  unique_id: Los Angeles,California,USA_us_main_pollutant

Related issue (if applicable): N/A
Pull request in home-assistant.github.io with documentation (if applicable): https://github.com/home-assistant/home-assistant.github.io/pull/5534
Example entry for configuration.yaml (if applicable):
sensor:
  - platform: airvisual
    api_key: API_KEY
    show_on_map: false
    city: Los Angeles
    state: California
    country: USA

Checklist:

[x] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass

If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[x] New dependencies have been added to the REQUIREMENTS variable (example).
[x] New dependencies are only imported inside functions that use them (example).
[x] New or updated dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[x] New files were added to .coveragerc.

perfect.


svelte-kit package

Now that #511 is merged, it makes sense to have an issue for this, if only to bat around ideas. It doesn't need to be part of the public beta, but ideally would be part of 1.0.
To recap:
Almost every app has an internal library of some sort. In a SvelteKit app, the library lives in src/lib and is available as $lib. Meanwhile, almost every component library has a demo/documentation site, or at the very least something Storybook-esque during development.
Therefore an app and a component library are the same thing, but with a different focus: in SvelteKit, an app is a project where the content of src/routes is the important thing, while a component library is a project where the content of src/lib is the important thing. Other than that, they're basically the same, and can benefit from the same development workflow.
We already have a way of building apps — svelte-kit build. Component libraries also need to be built for distribution. We should add a svelte-kit package command (open to alternative name suggestions) that does the following:

Finds components/modules that should be public. I'd suggest the same logic as in src/routes — any file that doesn't have a leading _ in its filename (or that of a parent directory) is considered public
Builds them for distribution. In the case of .svelte files, this would mean applying preprocessors, but otherwise leaving components uncompiled. In the case of everything else, it would presumably mean running everything through the same Vite config as would normally apply to an app, except on a 1:1 transform basis since bundling is probably impossible to do in the general case given the requirement to leave .svelte files uncompiled
Creates a package.json with an "exports" field that exposes the public files (with similar name handling as routes — for example a src/lib/Foo/index.svelte might become import Foo from 'my-lib/Foo')
Probably some other stuff

The output of this would be a dist folder with everything the component library needs neatly packaged up, ready for npm publish.

I like this idea!
I think the trickiest part is going to be preprocessing. There's an issue in component-template repo asking for this. There's also a exploratory PR implementing this (but only for Svelte files) and also a POC specifically for TypeScript. The problem with preprocessing in general is that you can't just get away with preprocessing Svelte files only, you need the same for all your .ts / .scss /etc files. In the case of TypeScript, you also want to create type definitions which can be used, and ideally you don't need to write them yourself.

First, thanks for all your work on Svelte and SvelteKit, it's all really promising! It would be awesome when setting up a library would be as simple as running a single command, like setting up a new app :sunglasses:
From a library developer perspective, the following are the points that give me a hard time when setting up a new a library:

create a setup containing both the library code and a test/demo page, like Rich explains in the introductory text
(similar to Library Mode of Vite)
generate output that can be consumed in various ways:

A Svelte application
Other frameworks: React, Vue, Angular (Svelte is perfect in this regard because it delivers real standalone components 😄)
A bundle that can be loaded directly in a browser (typically UMD output)
Different environments: ES Modules, CommonJS

Those outputs have overlap. I can imagine in the end it is sufficient to generate three outputs to address all those needs I list above: Svelte, ES bundle, UMD bundle.

This exists now: https://kit.svelte.dev/docs#packaging

Awesome, thanks for all your effort!
After some difficulties I managed to refactor the setup of my library to SvelteKit 😎 . The refresh speed of the dev server is really a game changer 🚀 .


Please, publish as an npm module

done

@jcguarinpenaranda Is this working for you as expected?

Thank you! I saw the package is already published on npm, today I'm going
to test it :)
El jul 7, 2017 6:57 a. m., "Gerhard Preuss"<EMAIL_ADDRESS>escribió:

@jcguarinpenaranda https://github.com/jcguarinpenaranda Is this working
for you as expected?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/lipp/login-with/issues/29#issuecomment-313651441, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AG3gNeEODbJqYZoa-Eyl2g4OcLxlrdWVks5sLg8QgaJpZM4OP3E6
.


Various Engine Generator errors

Inside Gemfile: incompete 'git "git://github.com/resolve/refinerycms.git" do' line messes stuff up; doesn't include refinerycms-testing in proper order
spec_helper.rb not generated at all
Need more tests for engine and form generation

More to come.

Do we even need these things in engine? User generates engine in refinery app context so there's no need for separate Gemfile and spec_helper and these two things would be necessary only when engine gets extracted as a separate gem.
What should we do?

Yeah we need Gemfile and spec_helper.rb as part of setting up the extension to be testable out of the box.

"Need more tests is not an issue" :P

This is part of an ongoing theme of improving our tests, clearly.


sectionResult is not assignable to Common.Logging.Configuration.LogSetting for Common.Logging.Portable

Hello,
I have a solution that contains both PCL and non-PCL projects. I've added the config sections below to my web.config.
<configSections>
    <sectionGroup name="common">
      <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
    </sectionGroup>
  </configSections>

  <common>
    <logging>
      <factoryAdapter type="Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter, Common.Logging">
        <arg key="level" value="INFO" />
        <arg key="showLogName" value="true" />
        <arg key="showDateTime" value="true" />
        <arg key="dateTimeFormat" value="yyyy/MM/dd HH:mm:ss:fff" />
      </factoryAdapter>
    </logging>
  </common>

When I try running my application I get the following error.

Type 'Common.Logging.Configuration.LogSetting, Common.Logging, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=af08829b84f0328e' of parameter 'sectionResult' is not assignable to target type 'Common.Logging.Configuration.LogSetting, Common.Logging.Portable, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=af08829b84f0328e'
Parameter name: sectionResult

The output structure looks like this:
web.config
bin
    PCL
    Non-PCL
    Common.Logging.dll
    Common.Logging.Core.dll
    Common.Logging.Portable.dll
The PCL references Common.Logging.Portable and the Non-PCL references Common.Logging.
What am I doing wrong?

  Can you elaborate on what you mean by

The output structure looks like this:
web.config
bin
PCL
Non-PCL
Common.Logging.dll
Common.Logging.Core.dll
Common.Logging.Portable.dll

Do you mean that's the structure of the various projects in your solution?  Or other?  It may be that you're attempting something that's either not supported or at a minimum intended to work but somehow not properly tested by us, but I can't tell for certain (yet).  As I think I understand your situation, this should be supported.  At a glance, your config file contents appear proper/correct, so I don't immediately think that's a factor.
If its difficult for you to describe your structure, would it perhaps be possible for you to create a mostly-empty solution (e.g., no code really necessary) but with the types of projects and their references to each other (and the relevant Common.Logging assemblies) that mimic your case and attach it as a ZIP file to this issue thread?  That might be the simplest way to convey the details of what you're trying to do (?)
Also, as a quick test can you temporarily update your references to the 3.4-RC2 pre-release package(s) and advise whether the issue is still present?  We're planning to release 3.4-GA on either 7/31 or 8/1 (e..g, in 4-5 days) and so if updating to the latest solves the issue I'd (obviously) recommend that you just update to 3.4-GA once its released.
Thanks!

Sorry, the title was misleading. The original title referenced a different issue that I worked around while I was in the middle of writing.
In my previous post where I show the output structure, I added some indentations to show what is under the bin folder, but the indentations didn't show up. I edited my previous post and now it looks good.
What happened was I tried having all my projects reference Common.Logging.Portable, but the error I ran into was it couldn't find the ConfigurationSectionHandler. I took a look at the Common.Logging.Portable dll and it wasn't there. I then just tried adding the Common.Logging dll to my bin folder, so it could find the ConfigurationSectionHandler. It found it, but then I ran into the error in my previous post.
I'll make a small project and send it to you tomorrow.

@braingame26
Thanks for the clarification -- after your indentations that makes more sense to me :)
We'll wait for your 'repro sample' project and then try to dig into this for you.  As mentioned, I think what you're trying to do should be supported, but its also certainly possible that you've uncovered a design flaw in our existing multi-targeting packaging strategy that we need to address ASAP.
Thanks!

common.logging.tests.zip
Here's 2 sample solutions I made that demonstrates the problems I'm running into. Thanks!

I've taken a look @ the sample projects (thanks for taking the time to create these, BTW, they are perfect for conveying your issue clearly).
From my review of the samples, I believe that you are hitting the issue that was addressed in issue #71 (which has since been CLOSED because we implemented the proposed change outlined there in 3.0-GA).
If you wouldn't mind, could you review the content of #71 and let us know if you agree that its describing your use-case?  If so, then the answer (as outlined in that issue) is for your PCL classes that need a direct way to interact with LogManager to take a dependency on the ILogManger interface declared in the Common.Logging.Core assembly  rather than invoking LogManager directly.
For clarity, I've reworked your two test samples such that they (now) both run without any exceptions and attached them as common.logging.tests-reworked.zip.
This should be the same/similar structure as was used in the test branch referenced in #71 , still available for review at https://github.com/net-commons/common-logging/tree/pcl-experimentation/examples/PCLExample.
After you've reviewed #71 and my rework of your sample in detail (attached), let us know if that represents a viable mechanism to address your current issue.  If not, we'd be interested to understand the ways that this approach is a mismatch for your needs.
Thanks again for taking the time to craft these sample solutions, they were very helpful for clarifying your intent.

Thanks for the rework. I'll get back to you this afternoon (it's currently 9:50 AM here).

Thanks for taking the time to make the rework. So basically you have to pass the LogManager to the PCL, and the PCL just uses the ILogManager interface.
The product I'm developing is using a very large framework. The framework has specific ways I can add extensions to the framework, then it will dynamically load my extensions. So I'm not calling the constructors, so I can't pass in the LogManager.
The framework has it's own logging. What I ended up trying on Friday was creating my own implementation of the logging interface it uses. My implementation then calls common.logging. So the framework will load my logger, then my code (in the portable dlls) can calls it, then it calls common.logging. This is working :)

@braingame26 great to hear that you have found some mechanism that works for your use-case.
I'm honestly not sure that I completely understand how using your own logger interface allows you to solve your issue any differently than taking a dependency on the ILog interface in Common.Logging.Core would.  But of course you know the specific details of your framework's strengths and weaknesses (and the hooks that permit you to satisfy its dependencies) much better than myself.  I'll certainly defer to your conclusion that implementing your own 'wrapper interface' around Common.Logging is a necessary (and viable) way to solve your issues.
As I said, happy that you managed to find a pattern than works for you.  I'll close this issue for now; feel free to re-open it and/or start a new one should anything (else) come up!


[CO-391] API WIP-handlers for external transactions. WIP!

Description
Moving handlers for API V1 (for external wallets) from legacy wallet to the new one.
Linked issue
https://iohk.myjetbrains.com/youtrack/issue/CO-391
Type of change

[ ] 🐞 Bug fix (non-breaking change which fixes an issue)
[x] 🛠 New feature (non-breaking change which adds functionality)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)
[ ] 🏭 Refactoring that does not change existing functionality but does improve things like code readability, structure etc
[ ] 🔨 New or improved tests for existing code
[ ] ⛑ git-flow chore (backport, hotfix, etc)

Developer checklist

[x] I have read the style guide document, and my code follows the code style of this project.
[ ] If my code deals with exceptions, it follows the guidelines.
[ ] I have updated any documentation accordingly, if needed. Documentation changes can be reflected in opening a PR on cardanodocs.com, amending the inline Haddock comments, any relevant README file or one of the document listed in the docs directory.
[ ] CHANGELOG entry has been added and is linked to the correct PR on GitHub.

Testing checklist

[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

QA Steps

Screenshots (if available)

I am a bit confused here to be honest ^^" ... The PR says "Moving handlers for API V1 (for external wallets) from legacy wallet to the new one." and I see a lot of renaming, clean up in V1/Types and new functions but I don't really see how this is moving Legacy to the current one :/ ... Maybe it's worth separating in two PRs ? One with the adjustments and one that does the actual moving?


Maybe it's a global issue...I can't use the cmd+v

Seems I can't use the Copy (cmd+c) & Paste (cmd+v)?
SW:0.2.2
OS:Big Sur 11.1

Fixed. 0.2.3

Fixed. 0.2.3


How to select a language now with the Eleven Multilingual v1

Hello,
is it possible now to select the language like in the UI with the new Eleven Multilingual v1 by the API with your python library ?
Regards,

Hi! This has been added to the python api in v0.2.8 (pip install elevenlabs -U). You can use it as follows:
from elevenlabs import generate, play

audio = generate(
    text="¡Hola! Mi nombre es Arnold, encantado de conocerte!",
    voice="Arnold",
    model='eleven_multilingual_v1'
)

play(audio)


Fix add GitHub Organization

In response to #97

AFAIR, removing the token blocks to use this workflow from forks

Did not know that factored in; I saw weird issues with GitHub auth, so figured start this before using the outcome to try further things still. Looks like you've been able to fix the pipeline some other way.


Bugfix/v2 crashes on reload and log formats

Looks good, tested in LS bailo ops. able to see required logs and suppress unnecessary ones.


[Godot 2.1.4] Custom node types can't add a script via the Add A Script button.

Specifically in Godot 2.1.4, when you add a custom node type to the node hierarchy, it will have it's script already attached. If you then remove that script by clicking on the trash can icon, you would expect the trash can to change to the Add A Script button, but it doesn't. Consequently, you can only add a script to a custom node type by directly editing the attached script value in the Inspector.

Note: custom node types can't have a script attached to them other than the script defined by its plugin, because any object in Godot can have only 1 script. If you remove the script from the custom node, the node isn't custom anymore and should revert to its base node type.

I think this is the intended behaviour of custom nodes.
Some of your options are making the main logic in a loaded script, on a children of the custom node or extend the script with the logic so the custom node have a "clean" script.

Oh, I didn't realize that without the script, the custom type would cease to be custom...my mistake. I'll close this issue then. Thanks.

Upon re-examination, it would seem that this actually IS still a bug. I've tested that you can remove the custom node's script, reload it with a different script that extends the custom script, and it will still work properly, so you definitely CAN still use scripts other than the one defined by the plugin.
However, that's beside the point in this case. The trash can icon doesn't update when you remove the initially provided script. This makes it more difficult to add a new script that extends the plugin's script when it is removed. It's a usability issue. Perhaps clicking on the add a script button when selecting a custom node would have it inherit the custom script automatically as well?

This is fixed in master

Thanks, closing as fixed in 3.1 then. At this stage only critical bug fixes will still be considered for the 2.1 branch.


Feature/line seg map multiplebucket

It would prefer not to rely on ducktrack only for the tests. We could make a consistency test where we use the code of Lorenzo to generate a few bunches, measure bunch length and z mean with the xfields, track a few synchrotron period with this map and check that the bunch does not move.


[Bug]:   FortiClient 7.0.9 detects Virus FSA/RISK_HIGH//2000006931 in extracted file fastlist-0.3.0-x86.exe during installation

Version

[X] I'm using version 1.14.1

Known issues

[X] I've checked Known issues

Existing issues

[X] I've checked Existing issues

Advanced Preferences

[X] I've checked Advanced Preferences

What operating system are you using?
Windows
Operating System Version
Windows 11 22H2 22621.2213
Reproduction steps
Detection occurs during attempted installation using Stretchly-Setup-1.14.1.exe
Expected Behavior
No malware detection
Actual Behavior
Malware reported and installation file quarantined by Fortinet FortiClient.
Relevant log output
No response
Preferences
No response
Additional information
No response
Code of Conduct

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

Hi, this seems to be false positive: https://github.com/MarkTiedemann/fastlist/issues/2
From what I read most of the major antiviruses are not longer marking this as issue: https://www.virustotal.com/gui/file/017411f3b0b5c0402cc3b2cb87c32c6fc71abd82e5b17ea6108990096c75a65d/detection


Add pinot based completeness check verifier

A simple pinot http client to query the tier-to-count map for completeness check.

@ibuenros


{aks}az aks update: update outbound ip description and remove limitation

Related command

'az aks update`
Description

remove limitation in description because the feature has been implemented in azure-cli and backend service.
Testing Guide

History Notes

[AKS] az aks update: update outbound ip description and remove limitation

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] The PR title and description has followed the guideline in Submitting Pull Requests.

[x] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

aks


How do I find out what version of oidc-client I have?

If I download version 1.7.0 and the string "1.7.0" is not found in oidc-client.js. Please make it easy to see what version of oidc-client.js or oidc-client.min.js I have.

So you have a proposal to automatically add that from package.json during the build?

No. I don't know enough about JavaScript builds to propose a solution to this.

It would be nice if the version number of the oidc-client was embedded somewhere within the oidc-client.js, which would make it easy to identify which version of the script it is.

Any suggestions?

Done.


Create a NSM adapter for Meshery

Repo for the adapter here

We now have a adapter.

Yaaaaeeessss.