Detail how to access updated Entry info from Entry:EVENT_AFTER_SAVE

I can't seem to get the Craft event info which I needed for the details of me Slack message.
I had assumed it would be data on $notifiable when defining public function toSlack($notifiable)
This however errors out.
If it is possible could you update the documentation with examples of collecting the data from an event such as which entry was changed.

You can access all the information of the event with $this->event in your notification.


Re-render with conda-smithy version 1.0.0

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

LGTM!


fix copy paste error in ssl reload command helper

This PR fixes an error in reload command helper for ssl

Thanks for your contribution.


Suggest

Hello team, may I ask if we are suitable for this product? I only have a mysql database. We only focus on making it easier for users to operate on the database, and can record additions, deletions, and changes to the database by different users.

Hey @xulun2468, Hue supports MySQL via sqlalchemy or JDBC interface. You should be able to perform all the operations for your use-case from the Hue editor for MySQL.
You can give it a try by following the below doc section to help you with the config setup: https://docs.gethue.com/administrator/configuration/connectors/#mysql
Hope it helps!

Hey @xulun2468, Hue supports MySQL via sqlalchemy or JDBC interface. You should be able to perform all the operations for your use-case from the Hue editor for MySQL.
You can give it a try by following the below doc section to help you with the config setup: https://docs.gethue.com/administrator/configuration/connectors/#mysql
Hope it helps!

Thank you very much for your reply, I have another question, how do I know who deleted a certain database, where do I check these records

Hey @xulun2468, Hue supports MySQL via sqlalchemy or JDBC interface. You should be able to perform all the operations for your use-case from the Hue editor for MySQL.
You can give it a try by following the below doc section to help you with the config setup: https://docs.gethue.com/administrator/configuration/connectors/#mysql
Hope it helps!

Thank you very much for your reply, I have another question, how do I know who deleted a certain database, where do I check these records

IIRC we have debug or info level logging of who executed statements via Hue and other audit details, that can help you identifying the user doing certain statement operations.


New Resource - xApplicationRequestRouting

A resource to create and manage configurations for the ARR IIS module.
I am planning on writing this as a MOF resource based on the other resources that exist in the xWebAdministration module.

Sorry that nobody answered your issue for so long. I label this as resource proposal and help wanted. If you still want to run with this, let me know and a label it as 'in progress'.


No audio on windows.

I'm using recent version of this plugin and have successfully connected and did a phone call using asterisk server from android and web. But for windows, calling works but without audio. I am using the example from this repo with my server settings. I searched on all issues and was not able to find anything about microphone and audio related issues for windows. Please correct me if I'm missing something. And yes, there is no audio on both sides. Neither the microphone is working, nor the speaker.
Steps to reproduce the behavior:

Build on windows.
Connect to asterisk server
Call

There are no audio related errors logged on the console as well as the microphone permission also doesnot show on the taskbar of windows.
System Infomation()
Flutter SDK Version: Channel dev, 2.6.0-11.0.pre, on Microsoft Windows [Version 10.0.22000.318], locale en-US
Target OS and Version: Windows 11
Host OS and Version: Windows 11 Version 10.0.22000.318

I tried was playing around with Windows and have the same issue with no audio.
From this ticket, it looks like support for Windows still needs to be tested out: https://github.com/flutter-webrtc/dart-sip-ua/issues/141


Failed v0.26 release

Looks like the v0.26 release has filed to publish both the release and snapshot artifacts:

https://github.com/deepjavalibrary/djl-spring-boot-starter/actions

This failure is caused by JDK 17 upgrade. I created a PR to address this issue: https://github.com/deepjavalibrary/djl-spring-boot-starter/pull/37

0.26 has been released


Avoid calling asynchronous requests from setInterval()

Core Library
@azure/msal-node
Core Library Version
Latest
Wrapper Library
Not Applicable
Wrapper Library Version
Latest
Description
Hello team! I'm reporting a bug which happens in the odd case that a network request might take longer than an interval. In such cases, users will experience their Node process not to close properly, and errors might not be able to bubble up appropriately.
This issue happens because acquireTokenWithDeviceCode( has a setInterval that triggers an async function in this line: msal-common/src/client/DeviceCodeClient.ts#L156. The interval is triggered with a duration of pollingIntervalMilli.
The function sent to that setInterval is an asynchronous function that calls and waits for executePostToTokenEndpoint(.
It could be the case that executePostToTokenEndpoint( can take longer than the interval's duration. In which case, setInterval will trigger the asynchronous function again, since setInterval does not wait for the internal function to finish.
I am aware that pollingIntervalMilli is set to be as many seconds as deviceCodeResponse.interval says (source link). In the cases I've been able to test, this means 5 seconds. Depending on the network speed and the availability of the services, executePostToTokenEndpoint( might not be fulfilled on time.
For that acquireTokenWithDeviceCode(, this could be fixed by using an for loop, similar to:
// Assuming the for loop is within an async function, of course
private async acquireTokenWithDeviceCode(
  /* ... */

  // Instead of returning a promise and calling to setInterval inside of that promise...

  for (let i = 0; i <= maxIterations; i++) {
    if (request.cancel) {
      /* ... */
    } else if (userSpecifiedTimeout && userSpecifiedTimeout < deviceCodeExpirationTime && TimeUtils.nowSeconds() > userSpecifiedTimeout) {
      /* ... */
    } else if (TimeUtils.nowSeconds() > deviceCodeExpirationTime) {
      /* ... */
    } else {
      /* ... */
      const response = await this.executePostToTokenEndpoint(/* ... */);

      if (response.body && response.body.error === Constants.AUTHORIZATION_PENDING) {
        this.logger.info(response.body.error_description || "no_error_description");
      } else {
        return response.body;
      }

      // Here or somewhere near this we would wait some time.
      // In this example we use a new function: delay
      // The for loop won't start again before this promise is resolved.
      await delay(pollingIntervalMilli);

    }
  }

}

For the code above to work, delay could be defined as follows:
function delay<T>(t: number, value?: T): Promise<T \| void> {
  return new Promise((resolve) => setTimeout(() => resolve(value), t));
}

This issue is not blocking us.
Error Message
No response
Msal Logs
No response
MSAL Configuration
Not applicable.

Relevant Code Snippets
See the description.

Reproduction Steps
To reproduce this one would need to mock the HTTP layer to artificially introduce a delay longer than the interval duration.
Expected Behavior
The polling of the device code endpoint should not happen before the interval finishes.
Identity Provider
Other
Browsers Affected (Select all that apply)
Other
Regression
No response
Source
Internal (Microsoft)

Thanks @sadasant. Community PRs welcome btw if you know the exact change and we can help with the tests.


Publish latest version to hex

The latest version in github is not currently available in hex, which makes it difficult to use it as a dependency for other hex packages.

closed with v0.2.5, bc73974


VTS L1 Enhancement - Test Profile Changes - Device Setting - Display

This task is to modify the L1 concerning the latest Test profile changes if any.  If there are no changes concerning the test profile, this Jira can be closed with proper information.
Interface file: rdk-halif-device_settings/include/dsDisplay.h at develop · rdkcentral/rdk-halif-device_settings · GitHub
L1 changes: rdk-halif-test-device_settings/src/test_l1_dsDisplay.c at develop · rdkcentral/rdk-halif-test-device_settings · GitHub
Test Profile: rdk-halif-test-device_settings/profiles/include/sink/Panel_4K_Display.yaml at 8b614a7bf13455c0093e1c2431b2791a9c8e9c98 · rdkcentral/rdk-halif-test-device_settings · GitHub

all changes are now available in tag 3.1.0


Headers can only created at second line, not at first line.

headers can not be created at first line.
in the DoxygenCompletionHandler.cs file, line 255,
change to
else if (oldLine <= 1)
then headers can be created at first or second line.

Removed a wrong cursor offset. Hopefully fixes your problem


sort less used pref. settings to the bottom

Prefix less used pref settings with x_ in order to have them display at the end of our preferences dialog (things like the sdk location should be at the top).
before:

after:

@abarth and @radicaled

(the Logging setting will only show up for developers of the plugin)


Remove version: MatteoRossi.iCopy version 1.7.0

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

URL: https://sourceforge.net/projects/icopy/files/iCopy/1.7.0/iCopy1.7.0setup.exe
OK
(Automated message - build 923)

URL: https://sourceforge.net/projects/icopy/files/iCopy/1.7.0/iCopy1.7.0setup.exe
OK
(Automated message - build 923)

URL: https://sourceforge.net/projects/icopy/files/iCopy/1.7.0/iCopy1.7.0setup.exe
OK
(Automated message - build 923)

Close with reason: Package still available;


Expose ErrorHandler protocol; inject errorHandler into Turntable

Bumping Xcode to 10.2
Exposing ErrorHandling protocol and injecting errorHandler into Turntable. This might be useful if custom handling is required, for example, you might want to fail current test if a request wasn't found. This change doesn't introduce breaking changes.

struct ReplayErrorHandler: ErrorHandler {
    func handleTrackNotFound(_ request: Request, playTracksUniquely: Bool) {
        XCTFail("Record not found: \(request)")
    }

    func handleUnknownError() {
        XCTFail("Unknown error")
    }
}

hey @dmcrodrigues, do you have a chance to review?


⚠ Bofrost.at has degraded performance

In c684440, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1420 ms

Resolved: Bofrost.at performance has improved in 3b0b808.


F-Droid build failed

https://gitlab.com/linsui/fdroiddata/-/jobs/7165447286 Could you please take a look? Thanks!

The nodejs in bookworm is 18.19.0. Does this work?

It works. :)


Processes tab

a tab for the processes to be shown while it's happening.

Where do you want this to be placed? Top-right? Bottom-right? Entire right? What should I do when the help-box is displayed?


Mounting squashfs image via b2_fuse causes entire file download

Hello @sondree!
Thanks for your excellent work.
I'm trying to mount a squashfs image from b2 bucket mounted with b2_fuse, but this makes b2_fuse to download entire image. I thought that would not be necessary since implementation of 'range' parameter to avoid this.
I mount image that is 186 MiB long, but I intend to move my entire archive of half of my life (just under 1 TiB in size), mount over b2_fuse, and... (put anything here).
This would solve many issues with lack of attributes / timestamp support, only 1000 items returning in file list etc. This might in turn boost sales of B2 product to variety of new customers / integrators I guess.
But there is no point in mounting 1 TiB image if it requires prior download to one's desktop / laptop / mobile phone, right?
Thanks again. Stay safe.
Marcin.

Hello Marcin!
It is true that with the range parameter you would not need to download the entire file normally. This is a feature I wanted to implement (but have not gotten around to) which would also enable streaming of media. Unfortunately, this is not the only hurdle to overcome. If you were able to mount your image (without downloading it entirely) you would still have to download a complete copy in order to modify the image. This is because file operations in B2 are atomic, they assume that the entire file is present and available at the time of upload.
I, like you, wanted to use B2 for general file storage and this was in part why I made B2Fuse. I agree that this feature would be very beneficial and a great use case for B2. Currently, however, there are no viable software options that would allow you to use B2 like described.
From my research I have more or less concluded that in order to enable the type of use that I would like, essentially having B2 as a giant expandable NAS, you would have to implement a whole custom filesystem on top of B2 block storage. There is a number of reasons why this is hard, consistency is one. Things get even worse if you ever want to allow concurrent access to the data, as that would require additional safeguards as to not corrupt data.
And finally, yes you are correct that it would be no point mounting a 1 TiB image.
Best
Sondre

Hi Sondre,
Thanks for quick answer.
Are we both talking about read-only squashfs filesystem images? When mounting r/o none of your worries apply, right?
All you'd need to take care of would be some smart LRU/MFU and the like cache persistence policy in order to get maximum performance when working with remote SquashFS images.
Best regards,
Marcin.

Well I was under the assumption you wanted something RW, with read-only none of these apply yes. Still you would be better off with support for streaming/partial file downloads.

Closing this as the feature of streaming/partial/sparse files is covered under another enhancement issue open (ref #25 )


Missing ${ENV} in notification emails

Looked into this issue and found the following:

To test, just need to finalize a FOM. This sends the email (no need to run FOM batch).
We have logic for test environment to ensure all emails send to FLNR.AdminServicesCariboo. For prod, the emails are sent to the district office. For other environments (originally dev), the emails come to me (basil). This means for the demo environment I would get the emails as well.
Current logic (in main branch): in mail.service.ts sendDistrictNotification - retrieve environment variable ENV and uses it in prefix of subject, even for production. There's logic to default to 'dev' if not specified, but I don't think this worked.

Ah, I think because the template supplied ${ENV} and ENV wasn't defined, the env variable got the value ${ENV} which skipped the defaulting. So the change to supply ${ZONE} should work. The only outstanding item is we should decide whether I should still get the emails for the demo environment, or perhaps change this to Anne-Marie?

I raised #198 for an enhancement to email that includes the demo environment changing who gets these emails.


unable to get local issuer certificate

We have configured https for tfs 2018 on premise. its ssl certificate is local. so when running this task we get the following error message:
"unable to get local issuer certificate"

I found the solution just set the variable Agent.SkipCertValidation=true

Hi,
indeed, you can disable the ssl check in that way. I'm using the vsts-node-api for all of the calls to VSTS and you can check here how some of the options are passed in:
https://github.com/Microsoft/vsts-node-api/blob/1dc7a4af55e588ed7143b7bb563fb92ba385f291/api/WebApi.ts#L123
Also you could get/set a caCert file in the same way on your agent and import the certificate in it.
Based on this feedback I may add an extra option to ignore ssl cert on the task itself.

On that, check if Agent.ClientCertArchive is pointing to any file if not, you could set that to point to a cacert file of your choice that contains your certificate.

actually the environment variable "Agent_CAInfo" can be set to the path of the certificates file
something like this
set Agent_CAInfo=E:\TFSAgents\ca-bundle.crt
where ca-bundle.crt file contains the azure devops server (tfs) certificate


Scatter type doesn't show the labels

In spite of line types shows labels, scatter type doesn't show it.
A workaround is possible by using line and changing css:
chart-id .c3-line{
stroke-width: 0px;
}
I'm not sure if it is an error.

hi there, any plans on this one enhancement req. or works arounds?

@masayuki0812 are there plans to add this for scatter charts?

Happy New Year :) Also interested in this feature

+1

What is the reason to use here only bar or line data?
https://github.com/c3js/c3/blob/9556e38b41402c661c8e6d5c608d755ac2da84d5/src/text.js#L28-L31
I have added scatter data there and it looks good:

Hi, sorry for the late response. Now data label on scatter plot is not supported.

@masayuki0812 , do you have a plan to support it in the future. If not then why you don't want to support?

@nnnuker how did you add the scatter?


Fix return value for long press

@marcochavezf Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]


add functionality for the import csv

after issue #1  has been solved we can connect the backend API with the frontend to import and add to database .

#6 fixed this issue. although there are some bugs for which we will open new issues.


chore(microsoft-word): add noobieyuh as maintainer

I saw the "looking for maintainers" message, and I have decided that I want to become a maintainer for Microsoft Word. Let me know if there's something else I need to do :)

Hi! Glad to hear that you want to become a maintainer for the Microsoft Word userstyle. We typically prefer if maintainers have contributed at least once before, though I know this isn't documented/mentioned in that text you came across. Would you like to take a stab at #1466? For reference on adding options to a userstyle, see the following:
https://github.com/catppuccin/userstyles/blob/6b71d06299f02467ca4f0df9cb8c19d7bf28a88f/styles/youtube/catppuccin.user.css#L17
https://github.com/catppuccin/userstyles/blob/6b71d06299f02467ca4f0df9cb8c19d7bf28a88f/styles/youtube/catppuccin.user.css#L375-L380
The first is setting the new option variable in the metadata (see https://github.com/openstyles/stylus/wiki/Writing-UserCSS#var for documentation on that syntax), and then the second is using that variable in the userstyle itself. If you have any questions feel free to join the Catppuccin Discord and find us in the #userstyles channel :)

Hi! Glad to hear that you want to become a maintainer for the Microsoft Word userstyle. We typically prefer if maintainers have contributed at least once before, though I know this isn't documented/mentioned in that text you came across.

Oh, okay. I understand, that makes sense :)

Would you like to take a stab at #1466?

Yeah, sure! Should I make a new pull request for it?

Yes please do! You can find our documentation on contributing at https://github.com/catppuccin/userstyles/blob/main/docs/CONTRIBUTING.md.


cell magics

You might consider adding support for some cell magics (which are kernel-specific).
I tried executing %pwd and !pwd from a ChatLLM cell, but they were just fed to the LLM.

BTW, the reason I was trying these was that {{%% include sys.prompt %%}} is not working for me in either a ChatLLM System Prompt cell or a ChatLLM cell.  So I was trying to figure out why not -- I have sys.prompt in the same directory as the notebook.

Anyway, cell magics might be a convenient way for a user to temporarily or persistently change the the settings (temperature, model, truncation, etc.).

Ok, so lengthy discussion here, which is all going to come across like a big excuse, but hear me out :-).
Originally I had thought to implement this all with a cell-magic-like interface, so that these basically just worked within normal Jupyter notebooks.  You could then But, and maybe this was a mistake: 1) it seemed a bit less clean, because I couldn't figure out how to as-easily not override all the features of typical notebooks with my own settings (like the different renderer, the model selection for blocks, etc).
So the upshot here is that .chatllm notebooks are not Jupyter notebooks in the end.  They have the same notebook format (which is really VSCode's interface), but there is no backing kernel, no default support for cell magic, that kind of thing.  It means it's really a different environment entirely, which in some ways feels a lot cleaner to me, but is also a bit of a confusing UX for those who are going to come to this assume it's a typical notebook.
I'm not entirely sure if going a more pure Jupyter notebook plugin/extension (even just in VSCode) would be the better route.  I'll look into whether cell magics can be supported separately even for a normal notebook.

BTW, the reason I was trying these was that {{%% include sys.prompt %%}} is not working for me in either a ChatLLM System Prompt cell or a ChatLLM cell. So I was trying to figure out why not -- I have sys.prompt in the same directory as the notebook.

Oh, and also, the reason this likely isn't working is that links are all relatively to the open VSCode workspace folder.  So you'll need to run the "Open Folder" command in VScode, and ensure that your links are relatively to that.  Another minor annoyance of not actually having a backing kernel.  Maybe there is an easier way around this, though, it feels like most people are virtually always going to want/expect links relative to the notebook, and not the project workspace (which then would require always opening the project workspace).

https://ipython.readthedocs.io/en/stable/interactive/magics.html says:

Whether Magics are available on a kernel is a decision that is made by the kernel developer on a per-kernel basis. To work properly, Magics must use a syntax element which is not valid in the underlying language.
... You can create and register your own Magics with IPython.

So I think even if you were using a kernel, you would have to write code to parse out the magic directives yourself.  Just as you currently parse include.

I'll look into whether cell magics can be supported separately even for a normal notebook.

Yep, I can definitely parse cell magics if needed (my comment was only that I had thought that certain magics like %%pwd etc used the kernel, but this may not be true).  I'm mainly trying to decide if it's a good idea overall...
One thing to note: for your temperature example, you know that you can add this via the model settings, right?  If you open the model settings, you can add a temperature parameter.  It seems a bit cleaner to me to just have a separate model you'd run with temp=0 rather than have a separate cell magic.  Because different models have different parameters/names, and which of these should correspond to cell magics or not?
I'll think about it, though.  I see the value in easily specifying some of the more "common" settings, I just worry a bit about feature creep if we start to define a lot of magics (and how to determine which parameters "deserve" their own magic, etc).
BTW, I did fix the relative file location issue in #6 (and the bug in the model names in the example files).  This is merged into main, and I'll update the plugin on the marketplace shortly.

My thinking was that you might want to use different temperatures in different cells (and be able to see in the notebook that you did that).
Not limited to temperature, of course.  You might switch among the registered models in the same way.  As you say, that might also change the default temperature.
It's possible that this kind of thing is more useful to people who are using the notebook to experiment with prompt engineering for building reusable systems.  Which may not be a scenario that you're trying to support.  You may be more focused on users who are just trying to talk to ChatGPT to get some ad hoc work done.  Folks who are doing prompt engineering may want to use an ordinary Python notebook with a package like https://github.com/guidance-ai/guidance -- that gives them more fine grained control, including the ability to store inputs and outputs in variables.

BTW, I did fix the relative file location issue in https://github.com/locuslab/chatllm-vscode/pull/6 (and the bug in the model names in the example files)
Yes, I saw, thanks!


UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc0 in position 5096: invalid start byte

I input python tools/train.py configs\swin\cascade_mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_giou_4conv1f_adamw_3x_coco.py to train my dataset, but it generates UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc0 in position 5096: invalid start byte
How can I solve this problem?
Thanks

Would this answer help? https://stackoverflow.com/a/42340744

Would this answer help? https://stackoverflow.com/a/42340744

yes, thanks!
But what is this mean?
RuntimeError: CUDA error: CUBLAS_STATUS_EXECUTION_FAILED when calling cublasGemmEx( handle, opa, opb, m, n, k, &falpha, a, CUDA_R_16F, lda, b, CUDA_R_16F, ldb, &fbeta, c, CUDA_R_16F, ldc, CUDA_R_32F, CUBLAS_GEMM_DFALT_TENSOR_OP)
can you also give me some help?

I have solved!
Thanks

你好，请问你怎么解决的呀


Update instructions to list all packages needed by tutorial

Most packages can be installed via rosdep as they are real dependencies.
Some packages are needed by the tutorial but not the code, and need to be installed on top.
Already needed by the tutorial:

ros2components (should be part of ros_core once https://github.com/ros2/variants/pull/13 released)
rviz2 (can be removed if we assume minimum requirement is having desktop installed)

Soon used by the tutorial:

rosbag2 + ros2bag (currently not in any variant, ideally should be part of ros_core)
rosbag2_bag_v2_plugins (for playing ROS1 bags)
rqt + plugins (currently not in any variant, ideally should be part of desktop)

@Karsten1987 Feel free to add things to this list as you go

ros2action should also be added until https://github.com/ros2/variants/pull/12 is released

Instructions added to the tutorial  in https://github.com/Karsten1987/roscon2018/pull/43


Home cabinet screen

Please check home page and browse cabinet page design. It's responsive upto 530-535px.
Screenshots:
https://prnt.sc/s912gh
https://prnt.sc/s912mj

Not this repo I guess 😉


chore: script for configuring lifecycle of sccache DO space backend

Summary of changes

The ever-growing DO space bucket for forest CI sccache has reached ~900GB. This PR adds a script that automatically delete records after 30 days by setting the lifecycle policy.
Changes introduced in this pull request:

Output:
{"ResponseMetadata": {"RequestId": "tx00000f41d9262b278c627-0066f54318-5289b42e-sfo3a", "HostId": "", "HTTPStatusCode": 200, "HTTPHeaders": {"x-amz-request-id": "tx00000f41d9262b278c627-0066f54318-5289b42e-sfo3a", "content-type": "application/xml", "content-length": "253", "date": "Thu, 26 Sep 2024 11:18:48 GMT", "strict-transport-security": "max-age=15552000; includeSubDomains; preload", "x-envoy-upstream-healthchecked-cluster": ""}, "RetryAttempts": 0}, "Rules": [{"Expiration": {"Days": 30}, "ID": "cache-retention", "Prefix": "", "Status": "Enabled"}]}

Reference issue to close (if applicable)

Closes
Other information and links

Change checklist

[x] I have performed a self-review of my own code,
[x] I have made corresponding changes to the documentation. All new code adheres to the team's documentation standards,
[x] I have added tests that prove my fix is effective or that my feature works (if possible),
[x] I have made sure the CHANGELOG is up-to-date. All user-facing changes should be reflected in this document.

Given you introduced Python here - a linter needs to be added to the CI!

@LesnyRumcajs Python linter added (black and flake8)


Support for nodejs16.x runtime

ToDo:

Upgrade sammy: https://github.com/milliHQ/sammy/issues/13
Upgrade @vercel/build-utils
Set default runtime to nodejs16.x in variables.tf
(blocked) Wait for Terraform AWS Provider v4.15.0 to be released (https://github.com/hashicorp/terraform-provider-aws/issues/24714, https://github.com/hashicorp/terraform-provider-aws/pull/24768)

Hi! :D We are using your lovely library and noticed that edge functions now support node 16.

However I think setting the "engines": { "node": "14.x" } field in your package.json is the right solution here.
The CLI should still build fine with Node.js 16, but since we currently don't support the nodejs16.x runtime, it does not make sense to allow the creation of Lambdas with Node.js 16 as target.

Are we able to look into supporting node 16? Node 14 is significantly out of date at this point, especially with the version of npm it ships with. Let me know if you need help with anything on this, happy to help.
Thank you in advance! @ofhouse :D

Hey @nyt-larahelenaroth,
didn't noticed yet that Node.js 16 runtime was released to Lambda@Edge as well. Thanks for the reminder.
Upgrading should only have a small impact since it is only used by the router module.
The Next.js functions itself run on standard Lambdas that already support Node.js 16.

@ofhouse Amazing! Thank you so much for replying & so glad to hear :D Please let us know timing so we can adjust once the support is deployed. Exciting news!


Move and Rename Art Light Scene to add Lutron Lights

Move Art Light scene from Vera to Home assistant, so that we can use the stairwell art light.  Rename to evening/morning lights.

Perhaps do this with a helper group, and use the art light schedule (rename to evening/morning lights or something)

Created helper light group 'light.art_lights', then plugged into automation that uses the schedule.art_lights.  Disabled Vera schedules, and removed the code to create the switch.art_light. It now just operates directly on the group.
Waiting to see if it works...  needed to adjust from 'switch' service to 'light' service, then we're good.


Added proper support for resume.

This change also led to a rewamp of some of the internal
as there was Arc that was getting invalidated, in a way
that no calls would work through it, so I had to change
some of the underlying structure to get the new session
up the call stack.
This is done with having a watch channel, a channel
that only hold the last value sent to it, and then updating
it to the new arc on every reconnect.
Signed-off-by: Valdemar Erk<EMAIL_ADDRESS>
Also misc fixes
This includes the update to get it working with the latest version
of tokio-tungstenite.

This change is ready for review, but I am going to be running with it for a bit to see if any issues arise.


[riverpod_graph] Supports outputs other than Mermaid.js

Is your feature request related to a problem? Please describe.
riverpod_graph is very useful !
However, when many relationships, the lines can become intricate and the diagram difficult to understand.
This seems to be a problem with the dagre layout engine used by mermaid.js.

https://github.com/dagrejs/dagre/issues/256
https://github.com/mermaid-js/mermaid/issues/1969

Describe the solution you'd like

support other diagram tool format output
I personally think D2 is better, the syntax is almost identical to mermaid.

https://d2lang.com/tour/intro/
Describe alternatives you've considered

https://github.com/eclipse-sprotty/sprotty also support elk
https://plantuml.com/en/elk  PlantUML is so popular

Additional context
Creating the images in this repository with D2 would result in the following
https://github.com/rrousselGit/riverpod/tree/master/packages/riverpod_graph

ProviderNodeItem.shape: circle
_StateInspectorSettingsDialog.shape: circle
ProviderScreenBody.shape: circle

_hasErrorProvider -> ProviderScreenBody
_showInternals -> _StateInspectorSettingsDialog: {style.stroke-width: 5}
_showInternals -> _StateInspectorSettingsDialog: {style.stroke-dash: 3}
_showInternals -> _StateInspectorSettingsDialog: {style.stroke-dash: 3}
_showInternals -> ProviderScreenBody: {style.stroke-width: 5}
_selectedProviderNode -> ProviderScreenBody: {style.stroke-width: 5}
selectedProviderIdProvider -> ProviderNodeItem: {style.stroke-width: 5}
selectedProviderIdProvider -> ProviderNodeItem: {style.stroke-dash: 3}
selectedProviderIdProvider -> ProviderScreenBody: {style.stroke-width: 5}
selectedProviderIdProvider -> _selectedProviderNode: {style.stroke-width: 5}
selectedProviderIdProvider -> _hasErrorProvider: {style.stroke-width: 5}
sortedProviderNodesProvider -> selectedProviderIdProvider
sortedProviderNodesProvider -> _selectedProviderNode: {style.stroke-width: 5}
sortedProviderNodesProvider -> _hasErrorProvider: {style.stroke-width: 5}
_rawProviderIdsProvider -> sortedProviderNodesProvider: {style.stroke-width: 5}
_providerListChanged -> _rawProviderIdsProvider: {style.stroke-width: 5}
hotRestartEventProvider -> _rawProviderIdsProvider: {style.stroke-width: 5}
hotRestartEventProvider -> instanceProvider: {style.stroke-width: 5}
hotRestartEventProvider -> _rawProviderNodeProvider: {style.stroke-width: 5}
ProviderEvalProvider -> _rawProviderNodeProvider: {style.stroke-width: 5}
ProviderEvalProvider -> _rawProviderIdsProvider: {style.stroke-width: 5}
serviceProvider -> _providerChanged: {style.stroke-width: 5}
serviceProvider -> _providerListChanged: {style.stroke-width: 5}
serviceProvider -> libaryEvalProvider: {style.stroke-width: 5}
libaryEvalProvider -> instanceProvider: {style.stroke-width: 5}
instanceProvider -> instanceProvider: {style.stroke-width: 5}
evalProvider -> instanceProvider: {style.stroke-width: 5}
instanceProvider -> estimatedChildCountProvider: {style.stroke-width: 5}
isExpandedProvider -> estimatedChildCountProvider: {style.stroke-width: 5}
instanceProvider -> _hasErrorProvider: {style.stroke-width: 5}

That's certainly more organized
I don't really care about what underlining syntax is used. If an alternate package renders more readable graphs, let's use that
Fancy doing the update?

Yes. I would be happy to submit a pull request for the feature.


mdformat breaks LaTeX formulas

Context
When I have an .md file with the following content:
a formula:
$$
\sum^{n}_{k=0} k = \frac{n (n+1)}{2}
$$
an inline formula $a^2 + b^2 = c^2$.

and I run mdformat, it returns:
a formula:
\$$
\sum^{n}_{k=0} k = \frac{n (n+1)}{2}
$$
an inline formula $a^2 + b^2 = c^2\$.

note the extra \ at the $-symbols.
Sadly, this breaks the LaTeX-formulas in our documentation.
Thanks a lot!
Proposal
I would expect that there is some mechanism to keep the LaTeX-formulas as they are (maybe related to #359).
Tasks and updates
No response

Hi there!
Please see https://github.com/executablebooks/mdformat/issues/334 and https://github.com/executablebooks/mdformat/issues/325

Installing mdformat-myst bring support for the syntax you use.

@hukkin : we have mdformat-myst installed and the problem is still the same.
@jim-max  forgot to list our pip packages, here they go:
mdformat==0.7.17
mdformat-gfm==0.3.5
mdformat_frontmatter==2.0.1
mdformat_myst==0.1.5
mdformat_tables==0.4.1

Can you have a second look at the problem, please?
Or is there something that fixes it in the mean time?


norm of operator cannot be recalculated and stored

currently, once the norm has been calculated it cannot be recalculated and stored with
norm_a = operator.norm()
norm_b = operator.norm(iteration=10000)

it will be that norm_b is anctually the same thing as norm_a. The only way to recalculate it it'd be by
norm_c = operator.calculate_norm(iteration=10000)

but then the value wouldn't be stored/updated.
The norm method should understand if iterations has changed and recalculate if needed be.

Is this really required for the symposium or can it wait? I'd think we are ok as we just need to compute the norm once and then use it, not recompute it?


Redefining branches causes an error

In a Jypter notebook, it prevents you from "re-doing" a cell, which should be allowed.
cell 1:
def add_calRatio(ds):
    '''
    Add a ".CalRatio" onto the definition of a `loose_jet`.
    '''
    def calratio(emf):
        return emf

    ds.loose_jets['emf'] = ds.loose_jets.getAttributeFloat('EMFrac')
    ds.loose_jets['calRatio'] = lambda j: calratio(j.emf)

And the cell that causes the error when run twice:
mc_ds = all_samples[0]
add_calRatio(mc_ds['data'])

This turns out to be an accidental empty warning message - so it looked like an error in Jupyter. Weird!


Link of “HoloLens 2 Mixed Reality Production” was expired

In the ToC on the left, Tutorials->HoloLens 2 Mixed Reality Production link was directing to Unreal site/Home page

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

ID: 52d81088-3130-6cf2-f874-63b5320f593a
Version Independent ID: eafae35d-7c72-580f-799c-06f3ba4673e2
Content: Introducing MRTK for Unreal - Mixed Reality
Content Source: mixed-reality-docs/mr-dev-docs/develop/unreal/unreal-mrtk-introduction.md
Product: mixed-reality
Technology: mr-dev
GitHub Login: @Sean-Kerawala
Microsoft Alias: sekerawa

The link in the TOC is directing to https://dev.epicgames.com/community/learning/courses/M97/hololens-2-mixed-reality-production-for-unreal-engine/orLB/introduction-to-hololens-2-mixed-reality-production-for-unreal-engine. This seems to be correct.

Link is fixed already. Closing.


Will Nuitka support version 3.11 new features as soon as possible?

According to benchmark suite tests, version 3.11 gained an average of 20% performance improvement and it's all free, will our project benefit from these performance improvements? If the new version is supported, how soon is it expected to be released, I just tried to compile in the new version and got an error and looks like the new version is not currently available

I'm also wondering if it will be possible to compile for ARM64 Windows too, as Python 3.11 is the first version to officially support Windows ARM64.

Many of the improvements of 3.11 are for things that Nuitka already does, so the combined gain might increase, but I don't have any estimates yet. Python 3.11 will of course be supported in the future, but it's not a 24h job to add a new Python version to Nuitka. A lot of internals changed, and as it sometimes the case, I can never know when it will be working as a 3.10 replacement at least, there might always be more that I don't know about yet.
Support me with purchasing subscription of Nuitka commercial if you want: https://nuitka.net/doc/commercial.html#sponsorship

@infinitepower18 I have previously encountered ARM64 Python, and MSVC reports, but the quality was not as good. In theory, there should be nothing holding it back, outside of Scons not setting it up automatically maybe. You will be very welcome to work with me on that, if you are up for a bit of ping/pong reporting, or willing to donate a Surface Laptop to me.

@kayhayen Can we start posting Nuitka bugs related to Python 3.11 or it isn't allowed yet?

@h8n71r5t It's not really useful yet, because at this point, everybody will have the same errors, making it not work at all. I will need to announce experimental support for it to be useful.

I can confirm that there are certain errors during the compilation with Python 3.11. Let's now patiently wait for the developers to update Nuitka so that it can work with Python 3.11.

I have made a posting explaining the process and status, which actually has made big advances:  https://nuitka.net/posts/python311-support.html

so 1.5 is coming and still no 3.11 support?

I actually expect it to be there, have made progress with generators, going to make a new post soon. But 1.5rc coes not yet have the changes, as some refactorings regressed asyncgen for old Python. Life is hard with these things.

So, I have made some good progress the other day. Most basic tests seem to work. It appears the the "current" exception, which was normalized in Python3 so far, no longer is. But Nuitka matched that, and left performance on the table to be compatible, and now has to reverse its stance there. For the time being, sys.exit() makes Nuitka crash. And it seems that next on compiled generators, i.e. manually through that built-in is doing the same thing maybe. The usage works locally, but afterwards state is corrupted such as to segfault elsewhere. Lets see how hard this will be to track down.
I think I will release 1.5 once 3.11 works on the first level as indicated in my post, and I should make a new post of that tomorrow or so. Had been ill, and spared myself of PR somewhat during that time, but this also feels like substantial progress.

I have updated the roadmap like this:
-  Basic tests appear all work now.

-  There is a lack of integration of compiled and uncompiled generators
   with each other, this needs porting still.

-  Attribute lookups for types with a generic one need to update that
   code path, they will be slower in 3.11 until we do that.

-  Execute Python 3.10 test suite in a compatible way with 3.11, so far
   we got to ``test_compile.py`` and are making good progress, solving
   issues one by one, deciding when to do 1.5 release based on when we
   hit a wall there.

-  And and execute Python 3.11 test suite in a compatible way with 3.11

-  MSVC in debug mode hates the Python headers, probably because they can
   not longer be used outside of C11 mode, and C++0x is not compatible enough
   for it. We might have to require newer MSVC and implement C11 mode for the
   new enough Windows SDK that allows it.

Pretty certain now that within 1-2 weeks, we will have a 3.11 supporting release that will be largely indistinguishable for 3.10 features and some new things. However, e.g. resource reader files, I fixed today incompatibly through new changes, and there may be some more issues in stock for say metadata, this kind of thing. But it surely feels good. The next pre-release that I will make tomorrow will probably be relatively good for most people. I changed develop to only give a warning, but using before 1.5rc8 or factory cannot be recommended.
At this point, I don't need any reports if your stuff is not working. I will surely want to first get all the failing tests, where issues are easily isolated to work.

It seems the CPython 3.10 test suite is passing for the largest part, and the last major problem was that standalone crashed on Windows.
For performance, attributes are going to be worse now, and there are a couple of TODOs, but at least 3.11 shall become usable.

standalone crashed on Windows

I had noticed that, happy to be able to confirm it seems resolved.
(I had not reported it due to your previous comment - I assume you will let people know when issues actually should be reported.)

Actually with 1.5 release, it's good to go I think. Obviously, for 3.11 new features or behavior changes not followed, there won't be support yet. For now, 3.11 will be usable instead of 3.10, as a replacement of that, but not really a 3.11 replacement. I have not executed the new tests of new functionality or changed behaviors.
And indeed, I wasn't going to look e.g. at standalone like first thing, which you as a user of course will. But me of course the base is most critical.
As for performance, I am not happy with the attribute setting/getting stuff not yet being there. I would still recommend 3.10 for now, but I don't feel like 3.11 will not work for the vast majority of you guys now on develop and soon on main. My intent is for 1.6 to be a release that will be almost fully 3.11 compatible.
Some things, e.g. match syntax, or e.g. 3.7 importlib.resources are longer running issues, where incrementally things get better, but so far I have not yet looked at 3.11 for crazy new features. But the way I learn the Python changelog is by executing their test suite with Nuitka if you get what I am doing there.

The current onefile issue is blocking me from releasing 1.5 btw, but I hope it's sorted out soon. I was going to release it tomorrow or so, but now only once I know my performance improvements there didn't make things less reliable.

The onefile issue turns out to be not an regression, and is fixed too, so nothing but changelog and generally me reviewing if I forgot something, is what it takes now. I also found that e.g. importlib.resources didn't work with my 3.11 tests, but that is also fixed on develop. From here on it seems to be cleanup only.

So current develop is very close to what 1.5 will be. If you find anything there that is not related to 3.11 specific code (like a new PEP being used), reporting against develop will be considered fair game now.

In terms of hotfixing for 3.11 it depends on how much I will find to do once I go over the 3.11 test suite, which naturally will be a bit slower, since randomness, etc. there is always a lot of time spend on cherry-picking changes there, so progress there is slow, and at times, new features or changes are not easy to backport. For 3.11 the develop version may remain the one to use until 1.6 at least, but we will see how much it is.

I am ill right now, therefore delaying the release, just to not get into pressure. Please hammer develop as if it was the release.

Here is a case when 1.4.7 works fine, despite many warnings, but 1.5rc12 fails. Built in venv with Python 3.10.6 and 3.11.2 respectively. I'm testing the binaries on Ubuntu 22.04 where they were built and with Docker and deb-slim image. Logs attached below.
nuitka-1.4.7.txt
nuitka-1.5rc12.txt

@pauljurczak this is not for reporting via comments in this issue. Running inside docker seems to be the preferred way to compile programs that otherwise would not run, i.e. you probably do not have matplotlib in your Python3.11 there, which is of course obvious if you run it inside the container.

You are right. There is a mix-up with two virtual environments in the same VSCode projects.

So, the release is going out today. I am therefore modifying the issue. I think it was good to have it as a point to make quick reports. I expect new issues to be created for 3.11 specific reports. Should there continue to be bottom posting of supposed findings with no good report context, I am going to lock it, so content is relevant.

Putting it to 1.6, I believe there are not that many missing features, but since there is no "CPython311" test suite yet, I will not really know. The first step will be to create the test suite following the instructions I have written up in the developer manual.

I don't think it's much more far off than a month to have the full support. Actually my knowledge right now suggests there are barely new features in 3.11 outside of those painful core changes to gain performance. We shall see. I will soon wade my way through the test suite. Also I think I will try and do cross Python version comparisons, to identify, if and where Nuitka falls off, sometimes I might have not noticed degradation. With 1.4 most of those are supposed to be addressed, but who knows.
Full compatibility is the major selling point of Nuitka in my book. So any statement of it not being fully compatible hurts me of course. But there is also #2099 which I will have to deal with.
For performance work, I will mostly let go of it, and rather work on the class scalability stuff, which will get clear from looking at the changelog, why that is so big.

Any recent noteworthy developments?

AFAIK, @kayhayen is still planning to do it for the 1.6 release. We should just be patient.

Never found this, of course the 1.6 release is out and claims full 3.11 support. In fact, I just made the 1.7 release. The performance for attributes are something to look at in the coming months, I believe we stand a chance that after serious cleanups (we have multiple variations of tp_getattr code forms), there should be a chance that we can improve this part of Python as well. And maybe, who knows, our JIT part in there will be far better or not.


update example for a post involving image editing

Python 2 support was dropped from Twython, thanks!
In Python3 we actually have to use BytesIO, see https://github.com/python-pillow/Pillow/issues/2205

Coverage remained the same at 57.143% when pulling 33f46c087ec6c92dd325101169f3c5c0894d3b7c on kannes:patch-1 into 02fb35651dd253254ff22c51c591d1bd0c9cf807 on ryanmcgrath:master.

Appreciate it!

Appreciate it!


Can/should inputs without a name attribute be ignored?

I have some form elements that are used to toggle other form fields with JS.
Something like this:
<select onChange={ toggleExtraFields }>
  <option value="foo" />
  <option value="bar" selected />
</select>

I don't want this field to be serialized, as it's only used to toggle UI. But currently, even though it has no name attribute, it gets serialized as:
undefined: 'bar'

Do you see any problems with ignoring un-named inputs in the serialize method, or is that something worth adding? I'm happy to tackle that if so.

Hm, how does the browser handle this? The goal of this module has historically been to deal with these fields in a manner similar to how a browser would handle active fields.

Looks like it ignores them (at least in Chrome): https://jsfiddle.net/xv5hmLq3/
<form>
  <input type="text" value="This should not show up"/>
  <input name="foo" value="Foo"/>
  <button>Submit</button>
</form>

serializes to
?foo=NAMED%21

Ok, can you make a PR with tests? I agree that having undefined as a key
doesn't make much sense.
On Friday, July 1, 2016, Dan Tello<EMAIL_ADDRESS>wrote:

Looks like it ignores them (at least in Chrome):
https://jsfiddle.net/xv5hmLq3/

Submit

serializes to
?foo=NAMED%21
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/defunctzombie/form-serialize/issues/39#issuecomment-229941268,
or mute the thread
https://github.com/notifications/unsubscribe/AAFLOP6MNSlTJ-HTEv9CnubsgdEjmU8Cks5qRRB-gaJpZM4JCuUH
.

Whelp, turns out the library already does this:
https://github.com/defunctzombie/form-serialize/blob/master/index.js#L45-L47
My issue was that the input's name was the string 'undefined'. Ignore me! Thanks for the great work on this library.


Some pages have extra space on top of header bar

Those pages have header bar with separate parts: left and right. The right part have extra space above.
For example:
http://hmfaysal.github.io/Notepad/
http://xcv58.com
More screenshots can be found:
https://github.com/xcv58/Blog/issues/1

Thank you for reporting, I marked this as a bug.


Can you add how much is pending to be near stable 1.0 ?

It will be good if you can add missing things to get stable 1.0, so that people will start help you out because most of people are eagerly waiting for such kind of DB

@dgandhi17 Good idea, I'll definitely draft a roadmap. But to be considered stable, we also have to let some time pass and collect feedback from the first users.
I hope to release a reliable beta version in Q1 2021 and a stable version 1.0 in Q2 2021.

@dgandhi17 Good idea, I'll definitely draft a roadmap. But to be considered stable, we also have to let some time pass and collect feedback from the first users.
I hope to release a reliable beta version in Q1 2021 and a stable version 1.0 in Q2 2021.

Well I will try to play with this db as I am planning to use it in future.

Well I will try to play with this db as I am planning to use it in future.

Here are the next todos. I'll extend this over time: https://github.com/isar/isar/blob/main/TODO.md

Hi @leisim I'm currently contemplating whether I should switch to Isar (I'm currently using Hive but my app has not made it to production yet). At this point, do you have a more clear plan for when the beta and stable 1.0 versions will be released. Thanks in advance :)

Hey @peterwvj! Yes I hope to release a stable version within the next two months.
The next version will bring a lot of new features (support for freezed, getByIndex, final properties, inheritance etc.).
After that I need to work on more unit tests.


Add test cases for RuleService of soul-admin(#507)

Make sure that:

[ ] You have read the contribution guidelines.
[ ] You submit test cases (unit or integration tests) that back your changes.
[ ] Your local test passed mvn clean install -Dmaven.javadoc.skip=true.

the checkstyle is failed.Maybe you should mvn install before the commit it.

Codecov Report

Merging #584 (74f6c59) into master (dcaf2b7) will increase coverage by 13.69%.
The diff coverage is n/a.

@@              Coverage Diff              @@
##             master     #584       +/-   ##
=============================================
+ Coverage     20.46%   34.16%   +13.69%
- Complexity      341      539      +198
=============================================
  Files           197      198        +1
  Lines          4656     4669       +13
  Branches        496      497        +1
=============================================
+ Hits            953     1595      +642
+ Misses         3604     2942      -662
- Partials         99      132       +33

Impacted Files
Coverage Δ
Complexity Δ

...va/org/dromara/soul/common/constant/Constants.java
50.00% <0.00%> (ø)
1.00% <0.00%> (ø%)

...org/dromara/soul/plugin/rewrite/RewritePlugin.java
46.15% <0.00%> (ø)
3.00% <0.00%> (?%)

...org/dromara/soul/admin/result/SoulAdminResult.java
73.33% <0.00%> (+20.00%)
7.00% <0.00%> (+3.00%)

...a/org/dromara/soul/admin/page/PageResultUtils.java
25.00% <0.00%> (+25.00%)
1.00% <0.00%> (+1.00%)

...romara/soul/admin/controller/PluginController.java
58.82% <0.00%> (+47.05%)
8.00% <0.00%> (+7.00%)

...dromara/soul/admin/config/SecretConfiguration.java
100.00% <0.00%> (+50.00%)
2.00% <0.00%> (+1.00%)

.../java/org/dromara/soul/common/utils/UUIDUtils.java
56.25% <0.00%> (+56.25%)
7.00% <0.00%> (+7.00%)

.../dromara/soul/admin/listener/DataChangedEvent.java
57.14% <0.00%> (+57.14%)
1.00% <0.00%> (+1.00%)

.../java/org/dromara/soul/common/utils/GsonUtils.java
75.53% <0.00%> (+63.82%)
20.00% <0.00%> (+16.00%)

...ava/org/dromara/soul/admin/vo/RuleConditionVO.java
66.66% <0.00%> (+66.66%)
1.00% <0.00%> (+1.00%)

... and 19 more

Continue to review full report at Codecov.

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


feat: add index option to case import

Resolves #133

Summary by CodeRabbit

New Features

Introduced a new command-line option for specifying the index case in the pedigree during case import.
Enhanced flexibility in the caseimportinfo-create command by allowing users to define the index case name.

Bug Fixes

Improved logic for determining the index case, ensuring it defaults correctly when not specified.

If no manual index is specified, ideally the index should be assigned to the first affected sample in the pedigree, not just the first sample overall.


[Feature Request] Make VACUUM more efficient via optimistic execution mode

Feature request
Introduce an new boolean flag, optimisticExecution, this would perform an initial transaction log check for file generating operations and the most recent Vacuum operation run before running the rest of the Vacuum operations to evaluate if Vacuum has already been run within the retention period. This would make the Vacuum operation fast when there haven't been any new file generation operations outside the retention period.
Which Delta project/connector is this regarding?

[x] Spark
[ ] Standalone
[ ] Flink
[ ] Kernel
[ ] Other (fill in here)

Overview
Run Vacuum multiple times in a row without any changes to a delta table and it will run in the same amount of time (too long), always performing the same operations: listing files, comparing the file list against the transaction log, and then performing any deletions.
Vacuum should introduce a new default enabled feature flag that first uses the transaction log to evaluate if there were any file generation operations run within N days of when the last Vacuum operation took place, if not it would not proceed with the rest of the Vacuum operation.
I implemented a wrapper around the Vacuum operation which does exactly this so that we can run Vacuum much more frequently and have it self evaluate if there's hypothetically anything to vacuum. This makes repeat runs of the Vacuum operation where files have only been added within the retention period take sub 1 second rather than the normal duration of a Vacuum operation.
This could be called optimisticExecution mode since technically there could still be files that fall outside the retention window that would not be caught but the key thing is being optimistic about how often a true vacuum operation should be run and base this off of the retention hours... so if we are retaining 7 days of history, this feature would prevent a full vacuum operation from execution more than once w/in 7 days.
Motivation
Decrease the cost of frequently running Vacuum.
Further details
draft of modifications to gc() method:
  def gc(
      spark: SparkSession,
      deltaLog: DeltaLog,
      dryRun: Boolean = true,
      optimisticExecution: Boolean = true,
      retentionHours: Option[Double] = None,
      inventory: Option[DataFrame] = None,
      clock: Clock = new SystemClock): DataFrame = {
    recordDeltaOperation(deltaLog, "delta.gc") {

      val vacuumStartTime = System.currentTimeMillis()
      val path = deltaLog.dataPath
      val deltaHadoopConf = deltaLog.newDeltaHadoopConf()
      val fs = path.getFileSystem(deltaHadoopConf)

      import org.apache.spark.sql.delta.implicits._

      val snapshot = deltaLog.update()
      deltaLog.protocolWrite(snapshot.protocol)

      val snapshotTombstoneRetentionMillis = DeltaLog.tombstoneRetentionMillis(snapshot.metadata)
      val retentionMillis = retentionHours.map(h => TimeUnit.HOURS.toMillis(math.round(h)))
      val deleteBeforeTimestamp = retentionMillis match {
        case Some(millis) => clock.getTimeMillis() - millis
        case _ => snapshot.minFileRetentionTimestamp
      }
      val basePath = fs.makeQualified(path).toString

      if (optimisticExecution) {
        val vacuumNeeded = {
          val history = snapshot.history.getHistory(None)
          val vacuumDateThreshold = new Date(deleteBeforeTimestamp)
          val fileGeneratingOperations = Seq(
            "WRITE", "STREAMING UPDATE", "MERGE", "OVERWRITE", "UPDATE", "CREATE OR REPLACE TABLE"
          )

          val latestVacuum = history.filter(_.operation == "VACUUM END")
            .sortBy(_.timestamp)
            .reverse
            .headOption

          val latestVacuumTimestamp = if (latestVacuum.nonEmpty) {
            latestVacuum.get.timestamp
          } else {
            val oldestFileGenOperation = history.filter(op => fileGeneratingOperations.contains(op.operation))
              .sortBy(_.timestamp)
              .headOption

            if (oldestFileGenOperation.nonEmpty) {
              oldestFileGenOperation.get.timestamp
            } else {
              new Date(System.currentTimeMillis())
            }
          }

          if (latestVacuumTimestamp.before(vacuumDateThreshold)) {
            val changesAfterVacuum = history.filter(op =>
              op.timestamp.after(latestVacuumTimestamp) && fileGeneratingOperations.contains(op.operation)
            )
            changesAfterVacuum.nonEmpty
          } else {
            false
          }
        }
        if (!vacuumNeeded) {
          logInfo(s"Garbage collection has already been run withing the retention period, skipping garbage collection."
          return spark.createDataset(Seq(basePath)).toDF("path")
        }
      }

      logInfo(s"Starting garbage collection (dryRun = $dryRun) of untracked files older than " +
        s"${new Date(deleteBeforeTimestamp).toGMTString} in $path")
      val hadoopConf = spark.sparkContext.broadcast(
        new SerializableConfiguration(deltaHadoopConf))
      val parallelDeleteEnabled =
        spark.sessionState.conf.getConf(DeltaSQLConf.DELTA_VACUUM_PARALLEL_DELETE_ENABLED)
      val parallelDeletePartitions =
        spark.sessionState.conf.getConf(DeltaSQLConf.DELTA_VACUUM_PARALLEL_DELETE_PARALLELISM)
        .getOrElse(spark.sessionState.conf.numShufflePartitions)
      val startTimeToIdentifyEligibleFiles = System.currentTimeMillis()

      val validFiles =
        getValidFilesFromSnapshot(
          spark,
          basePath,
          snapshot,
          retentionMillis,
          hadoopConf,
          clock,
          checkAbsolutePathOnly = false)

      val partitionColumns = snapshot.metadata.partitionSchema.fieldNames
      val parallelism = spark.sessionState.conf.parallelPartitionDiscoveryParallelism
      val allFilesAndDirsWithDuplicates = inventory match {
        case Some(inventoryDF) => getFilesFromInventory(basePath, partitionColumns, inventoryDF)
        case None => DeltaFileOperations.recursiveListDirs(
          spark,
          Seq(basePath),
          hadoopConf,
          hiddenDirNameFilter = DeltaTableUtils.isHiddenDirectory(partitionColumns, _),
          hiddenFileNameFilter = DeltaTableUtils.isHiddenDirectory(partitionColumns, _),
          fileListingParallelism = Option(parallelism)
        )
      }
      val allFilesAndDirs = allFilesAndDirsWithDuplicates.groupByKey(_.path)
        .mapGroups { (k, v) =>
          val duplicates = v.toSeq
          // of all the duplicates we can return the newest file.
          duplicates.maxBy(_.modificationTime)
        }

      recordFrameProfile("Delta", "VacuumCommand.gc") {
        try {
          allFilesAndDirs.cache()

          implicit val fileNameAndSizeEncoder =
            org.apache.spark.sql.Encoders.product[FileNameAndSize]

          val dirCounts = allFilesAndDirs.where(col("isDir")).count() + 1 // +1 for the base path
          val filesAndDirsPresentBeforeDelete = allFilesAndDirs.count()

          // The logic below is as follows:
          //   1. We take all the files and directories listed in our reservoir
          //   2. We filter all files older than our tombstone retention period and directories
          //   3. We get the subdirectories of all files so that we can find non-empty directories
          //   4. We groupBy each path, and count to get how many files are in each sub-directory
          //   5. We subtract all the valid files and tombstones in our state
          //   6. We filter all paths with a count of 1, which will correspond to files not in the
          //      state, and empty directories. We can safely delete all of these
          val diff = allFilesAndDirs
            .where(col("modificationTime") < deleteBeforeTimestamp || col("isDir"))
            .mapPartitions { fileStatusIterator =>
              val reservoirBase = new Path(basePath)
              val fs = reservoirBase.getFileSystem(hadoopConf.value.value)
              fileStatusIterator.flatMap { fileStatus =>
                if (fileStatus.isDir) {
                  Iterator.single(FileNameAndSize(
                    relativize(fileStatus.getHadoopPath, fs, reservoirBase, isDir = true), 0L))
                } else {
                  val dirs = getAllSubdirs(basePath, fileStatus.path, fs)
                  val dirsWithSlash = dirs.map { p =>
                    val relativizedPath = relativize(new Path(p), fs, reservoirBase, isDir = true)
                    FileNameAndSize(relativizedPath, 0L)
                  }
                  dirsWithSlash ++ Iterator(
                    FileNameAndSize(relativize(
                      fileStatus.getHadoopPath, fs, reservoirBase, isDir = false),
                      fileStatus.length))
                }
              }
            }.groupBy(col("path")).agg(count(new Column("*")).as("count"),
              sum("length").as("length"))
            .join(validFiles, Seq("path"), "leftanti")
            .where(col("count") === 1)

          val sizeOfDataToDeleteRow = diff.agg(sum("length").cast("long")).first()
          val sizeOfDataToDelete = if (sizeOfDataToDeleteRow.isNullAt(0)) {
            0L
          } else {
            sizeOfDataToDeleteRow.getLong(0)
          }

          val diffFiles = diff
            .select(col("path"))
            .as[String]
            .map { relativePath =>
              assert(!stringToPath(relativePath).isAbsolute,
                "Shouldn't have any absolute paths for deletion here.")
              pathToString(DeltaFileOperations.absolutePath(basePath, relativePath))
            }
          val timeTakenToIdentifyEligibleFiles =
            System.currentTimeMillis() - startTimeToIdentifyEligibleFiles

          val numFiles = diffFiles.count()
          if (dryRun) {
            val stats = DeltaVacuumStats(
              isDryRun = true,
              specifiedRetentionMillis = retentionMillis,
              defaultRetentionMillis = snapshotTombstoneRetentionMillis,
              minRetainedTimestamp = deleteBeforeTimestamp,
              dirsPresentBeforeDelete = dirCounts,
              filesAndDirsPresentBeforeDelete = filesAndDirsPresentBeforeDelete,
              objectsDeleted = numFiles,
              sizeOfDataToDelete = sizeOfDataToDelete,
              timeTakenToIdentifyEligibleFiles = timeTakenToIdentifyEligibleFiles,
              timeTakenForDelete = 0L,
              vacuumStartTime = vacuumStartTime,
              vacuumEndTime = System.currentTimeMillis,
              numPartitionColumns = partitionColumns.size
            )

            recordDeltaEvent(deltaLog, "delta.gc.stats", data = stats)
            logInfo(s"Found $numFiles files ($sizeOfDataToDelete bytes) and directories in " +
              s"a total of $dirCounts directories that are safe to delete. Vacuum stats: $stats")

            return diffFiles.map(f => stringToPath(f).toString).toDF("path")
          }
          logVacuumStart(
            spark,
            deltaLog,
            path,
            diffFiles,
            sizeOfDataToDelete,
            retentionMillis,
            snapshotTombstoneRetentionMillis)

          val deleteStartTime = System.currentTimeMillis()
          val filesDeleted = try {
            delete(diffFiles, spark, basePath,
              hadoopConf, parallelDeleteEnabled, parallelDeletePartitions)
          } catch {
            case t: Throwable =>
              logVacuumEnd(deltaLog, spark, path)
              throw t
          }
          val timeTakenForDelete = System.currentTimeMillis() - deleteStartTime
          val stats = DeltaVacuumStats(
            isDryRun = false,
            specifiedRetentionMillis = retentionMillis,
            defaultRetentionMillis = snapshotTombstoneRetentionMillis,
            minRetainedTimestamp = deleteBeforeTimestamp,
            dirsPresentBeforeDelete = dirCounts,
            filesAndDirsPresentBeforeDelete = filesAndDirsPresentBeforeDelete,
            objectsDeleted = filesDeleted,
            sizeOfDataToDelete = sizeOfDataToDelete,
            timeTakenToIdentifyEligibleFiles = timeTakenToIdentifyEligibleFiles,
            timeTakenForDelete = timeTakenForDelete,
            vacuumStartTime = vacuumStartTime,
            vacuumEndTime = System.currentTimeMillis,
            numPartitionColumns = partitionColumns.size)
          recordDeltaEvent(deltaLog, "delta.gc.stats", data = stats)
          logVacuumEnd(deltaLog, spark, path, Some(filesDeleted), Some(dirCounts))
          logInfo(s"Deleted $filesDeleted files ($sizeOfDataToDelete bytes) and directories in " +
            s"a total of $dirCounts directories. Vacuum stats: $stats")

          spark.createDataset(Seq(basePath)).toDF("path")
        } finally {
          allFilesAndDirs.unpersist()
        }
      }
    }
  }

Willingness to contribute
The Delta Lake Community encourages new feature contributions. Would you or another member of your organization be willing to contribute an implementation of this feature?

[ ] Yes. I can contribute this feature independently.
[x] Yes. I would be willing to contribute this feature with guidance from the Delta Lake community.
[ ] No. I cannot contribute this feature at this time.

LMK if this feature makes sense and I'll submit a PR.

@allisonport-db @scottsand-db @dennyglee I'm more than happy to contribute this feature, I'm just looking for a thumbs up before I spend the time to prep a PR, can I get some feedback on this idea?
Thanks!


Enable linting for Cypress tests

Using the Cypress ESLint Plugin will also allow us to adhere to Cypress best practices.

Done in #475


Request support for LORATAP WiFi Smart Curtain

Please add this device as "loratap_wifi_smart_curtain.yaml"
I have it working locally, so every update deletes it (did not try the calibration).
Cant attach yaml, so I zipped it.
loratap_wifi_smart_curtain.zip

@make-all Sorry to bother you, will this device not be added? I didn't found it in any other device, it's a combination of few.


Don't do the duplicate check if not an identifier

Passes locally
TODO: should add logic to handle it correctly in a future PR when we have time

LGTM pending tests.


Add Toggle Switches Category and several Components

Fixes Issue🛠#999

Closes #999
Description👨💻

Added the mentioned section and few components
Type of Change📄

[x] New feature (non-breaking change which adds functionality)

Checklist✅

[x] I am an Open Source contributor

Screenshots/GIF📷

https://github.com/Rakesh9100/Beautiify/assets/137754636/a1843bc9-56da-44f9-bcc2-aece911d2ac6

@Rakesh9100 please review this

@Rakesh9100 It has been a week... Please review this issue and assign the other issues

@Rakesh9100 please review and merge this pr so that i can open a new one


Mortgage performance: Fix ordering of MSA dropdown

This alphabetizes the state MSA dropdown list and adds the non-MSA entry at the
bottom of the list, in case we haven't turned to other solutions.
The ordering in the API call can be checked on build:
[BUILD]/data-research/mortgages/api/v1/metadata/state_msa_meta/

It makes sense to outsource the alphabetizing to the back-end. 👍


Can't import settings

Firefox 17esr Greasemonkey 1.11beta1, Userscript version of dev build 506 and I can't import my settings.  I browse to the .part file and it says The File Is Not Valid.

The exported settings should have a ".ytcs" file extension. *.part are usually temporary files browsers create during downloads (and delete after the download is completed). Are you sure you're picking the correct file?

On Firefox it saves as a .part file.  It never had a issue importing it before.  Would renaming the extension from .part to .ytcs work?

I just tested with the Firefox extension, it gives a *.ytcs file by default for me. However, when I renamed the file to a .part extension, YouTubeCenter wouldn't import it, so you should try renaming it as you suggested.

Firefox saves partially-downloaded files as .part until the download is complete. Your initial settings export did not completely save, which is why the import is not working.

Yes renaming the extension from .part to .ytcs works

I've set a restriction on YouTube Center to only allow files with the .ytcs extension. This is to prevent people from accidentally upload the wrong file.


Support /base/*? semantics

TL;DR: the docs are wrong here:
{/* will match everything else */}
<Route path="/:rest*">
   {(params) => `404, Sorry the page ${params.rest} does not exist!`}
</Route>

"/:rest*" does not in fact match "everything else" (does not match paths containing empty path segments).
Real world use-case that currently cannot currently be matched in this way: https://en.wikipedia.org/wiki///
Rather than showing the 404 page, the page will be blank for any path containing double slashes!

See https://github.com/WICG/urlpattern/issues/163 for why the existing capability /base/:remaining_path* doesn't cover all the bases! Instead, a pattern that does match everything after /base is /base/*?. For compatibility with react-router's behavior, the * segment's value could be auto-named simply * (cannot conflict with a named identifier since named identifiers must be alphanumeric). The * identifier can be of course renamed in the render function if you don't want to do params['*'], e.g.:
<Route path='/*?'>
    {({'*': rest}) => `404, Sorry the page ${rest} does not exist!`}
</Route>

Use-case: with a couple additional customizations, this enhancement will allow a robust nested router architecture.
Alternative: forget about URLPattern's questionable syntax choices and implement the same semantics with /base/*, dropping the trailing ? and staying consistent with react-router:
<Route path='/*'>
    {({'*': rest}) => `404, Sorry the page ${rest} does not exist!`}
</Route>

2nd Alternative: update the current behavior to align with the docs (even though this isn't currently compatible with URLPattern or path-to-regexp), and allow the existing syntax of /:remaining_path* to match arbitrary paths (including those with empty path segments in them).  We could then do /base/:_* to achieve the same thing as react-router's /base/*. Not quite as concise (which could be annoying for users who are repeating this pattern constantly), but it would work.

This has been added in v3-rc.1. I have switched to https://github.com/lukeed/regexparam which is more reliable and smaller.


Add linking for native_toolchain_c

Extend API by providing a CBuilder.link.

[x] I’ve reviewed the contributor guide and applied the relevant portions to this PR.

Contribution guidelines:

See our contributor guide for general expectations for PRs.
Larger or significant changes should be discussed in an issue before creating a PR.
Contributions to our repos should follow the Dart style guide and use dart format.
Most changes should add an entry to the changelog and may need to rev the pubspec package version.
Changes to packages require corresponding tests.

Note that many Dart repos have a weekly cadence for reviewing PRs - please allow for some latency before initial review feedback.

@dcharkes if you want to take a first look.

coverage: 91.823% (-0.2%) from 92.067%
when pulling a6467926e7e9da4a89ada50db1091a29593fb92e on exposeLinkFromCtoolchain
into 695c0656dc649e6858ec0a6e09c6102c4b005b7e on main.

coverage: 89.634% (-1.0%) from 90.599%
when pulling 01a684690d69195598050c51c84c2eb746128cd4 on exposeLinkFromCtoolchain
into 0dd11f52fbc8705aea2750356416b88e8c699a55 on main.

Given that we won't run the link hooks sometimes, we probably want to have this available for BuildConfigs and LinkConfigs. This would mean for CLinker to implement Builder in addition to Linker, currently not possible as their methods are both called run.
We should rename them to build and link, and make CLinker and CBuilder implement both.

Given that we won't run the link hooks sometimes, we probably want to have this available for BuildConfigs and LinkConfigs. This would mean for CLinker to implement Builder in addition to Linker, currently not possible as their methods are both called run.
We should rename them to build and link, and make CLinker and CBuilder implement both, after this PR has landed.

Alternatively, we could move all the logic into a shared base class and have CBuilder and CLinker only have the run that delegates to the base class.

Using CBuilder in hook/link.dart is an anti-pattern, the "heavy lifting" should be done in the build hook. And the link hook should only do the linking, it shouldn't do the building of static libs.
Using CLinker in hook/build.dart is unlikely, due to not having a static lib from somewhere yet?

Maybe we should explore some different designs (including https://github.com/dart-lang/native/pull/1131?) to see how verbose the typical build+link hook would be where a user links only their own native code in the link hook if linking is enabled and otherwise does a dylib in the build hook. E.g. what does the code in the two hooks look like with the 3 options.


Remove document.title hack in docs.js for isomorphic apps

See information here:
https://github.com/willowtreeapps/react-sapling/blob/62a1ec03f459d779759b3c0c56662525a9c13ce5/src/build/shared/docs.js#L9

Relates to issue #18

published to<EMAIL_ADDRESS>See ab3293e for changes.


cephcsi v2.1.0 helm charts are not release

cephcsi helm charts for release v2.1.0 is not present in https://github.com/ceph/csi-charts, we have only 2.0.1 as of now.

CC @humblec

@humblec @nixpanic how about doing a minor release today to get updated missing helm charts?

Is this something we missed @Madhu-1 at time of 2.1.0 ?

IMO, Instead of doing a minor release just for this, lets do it with maybe with some more fixes..etc with delay.

This is due to the failed arm64 building during a release, as the deployment got failed when building the arm64 image it exited

Is it possible to manually push the charts and fix the automated push for the next release? That would be my preference.

Is it possible to manually push the charts and fix the automated push for the next release? That would be my preference.

i don't have the access. only @humblec is having. @humblec can you push helm charts for 2.1.0 release?

Sure. .will do.

Sure. .will do.

It should be resolved now. v2.1.0 charts are available here for both rbd and cephfs.  https://github.com/ceph/csi-charts

@humblec should those also get tagged in the csi-charts repository? It seems there are no tags now, but that might be a good enhancement so that pointing to a release is easy.

@humblec should those also get tagged in the csi-charts repository? It seems there are no tags now, but that might be a good enhancement so that pointing to a release is easy.

Yeah, make sense and its available now :+1:  @nixpanic

this is fixed now


Add convenience function phasefunction

So that users don't have to explicitly add FastGaussQuadrature to their Project.toml, and also so that they don't care to make all these uncessary intermediate steps.
Closes #85

@cfranken there is a "problem" here. The product w_μ .* f does not sum to 2, but to 4.
Also, what's going on with the Project.toml file? It originally had version 2 there, but the last tagged release was version 3. Where is the missmatch coming from...? Is the branch you tag releases from not the master branch?

Furthermore, I have a suggestion. Would it be better/more suitable if the function returned
φ = [acos.(μ); -reverse(acos.(μ))]
f = [f; reverse(f)]

?

Furthermore, I have a suggestion. Would it be better/more suitable if the function returned
φ = [acos.(μ); -reverse(acos.(μ))]
f = [f; reverse(f)]

?

For the RT, this isn’t needed, so we would prefer to keep it as is as the main purpose in this package is a to supply optical properties to the RT

The final phase function shouldn’t be multiplied with the weights, the integral over [-1,1] is already normalized in f11 if Gauss Quadrature is used.

I don't get it. I want to have the following output:
A simple function x, f(x) defined over some vector x that is a proper probability distribution over x. I care not about internals, or quadratures. I want to have an object that I can integrate over a specific subset of the range x.
Specifically I want to calculate the asymmetry factor, or any proxy of it, so I want to have an object f(x) that I can integrate for x from -1 to 0, and from 0 to 1, and to do this in a simple manner.
What's your suggestion for return values that satisfy this? If you don't multiple with the weights then "the integral of f11" is not normalized, its sum is whatever arbitrary value like 27521.0.
BTW, the μ output is a well defined axis if one takes the cosine:
 diff(acos.(μ))
1999-element Vector{Float64}:
 -0.0015572369508469741
 -0.0015664332766682776
 -0.0015685111189385204
 -0.001569299293568971
 -0.0015696806931848606
 -0.0015698938411747854
 -0.0015700249278571832
 -0.001570111256474327
 -0.0015701711090692072
 -0.001570214302643702
 -0.0015702464920641646
 -0.0015702711213512188
 -0.0015702903853189731
 -0.0015703057364575557
 -0.001570318166971063
 -0.0015703283734098683
 -0.0015703368563810827
 -0.0015703439831766808
 -0.0015703500282091554
 -0.0015703551998327292
 -0.0015703596585532331
 -0.0015703635296291374
 -0.0015703669119671027
 -0.0015703698845142

equidistant in good approximation

Please check the new version, we implemented two phase_function functions, once for a polydisperse aerosol (requires a UnivariateAerosol) and ones for a mono-modal aerosol:
https://github.com/RupeshJey/RadiativeTransfer.jl/blob/e46bcf7a4df72e59dc13cc6a67b0803fefc7faf2/src/Scattering/Mie/compute_NAI2.jl#L342
https://github.com/RupeshJey/RadiativeTransfer.jl/blob/e46bcf7a4df72e59dc13cc6a67b0803fefc7faf2/src/Scattering/Mie/compute_NAI2.jl#L246
it also directly computes the asymmetry factor itself and returns it.


python310Packages.lupupy: 0.2.5 -> 0.2.7

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.lupupy is: Python module to control Lupusec alarm control panels
meta.homepage for python310Packages.lupupy is: https://github.com/majuss/lupupy
meta.changelog for python310Packages.lupupy is: https://github.com/majuss/lupupy/releases/tag/v0.2.7
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.2.7 with grep in /nix/store/fbprdaivksn9yawh0rqx4nnljiz1ys6x-python3.10-lupupy-0.2.7
found 0.2.7 in filename of file in /nix/store/fbprdaivksn9yawh0rqx4nnljiz1ys6x-python3.10-lupupy-0.2.7

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath
python310Packages.lupupy
python311Packages.lupupy

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/fbprdaivksn9yawh0rqx4nnljiz1ys6x-python3.10-lupupy-0.2.7 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python310Packages.lupupy https://github.com/r-ryantm/nixpkgs/archive/2e82629b56a10d9c07ae765b1f3dd615af6f8a0a.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/fbprdaivksn9yawh0rqx4nnljiz1ys6x-python3.10-lupupy-0.2.7
ls -la /nix/store/fbprdaivksn9yawh0rqx4nnljiz1ys6x-python3.10-lupupy-0.2.7/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

python310Packages.lupupy
python311Packages.lupupy

Maintainer pings
cc @fabaff for testing.

@ofborg build python311Packages.lupupy


Percentage Difference Between Printer Monitor and Octoprint Web Interface

Since the Print Time Genius plugin adjusts the percentage complete from the default (which is much more accurate in my experience), the percent shown on the printer monitor does not match the octoprint web interface. This is a request to implement a similar solution to that linked below in an octoprint plugin.
https://github.com/pwnbus/OctoPrint-Progress-Title/issues/2

The only issue I have with this is it appear that the Octoprint server would require the Time Genius Plugin -- I do not plan on implementing solutions that require plugins to be installed.  Ife I am missing something, please let me know.

Thanks for taking a look at this. It seems like the plugin where this issue was previously noticed and addressed uses an if/else statement to work with or without print time genius.
https://github.com/pwnbus/OctoPrint-Progress-Title/pull/5/files#diff-d974064e041ed343df7b2140d7ee9aad715070f99150401c87a4d7f095d15cb9

Yeah, I was looking at that.  You could easily update your own code to do the same thing with the response data.


Fixed issue #1772: Unfortunately, the TransactionService for a closed…

… thread was not be removed from the _transactions dictionary within the TransactionMonitor.
Therefore a finalizer for the TransactionService was added, which takes care of removing the transaction from the _transactions dictionary.

Thanks @frankneumann !

Thanks @frankneumann !


style(main): import Montserrat font from statics

Hey, Platformatic team!
I was playing around with the @platformatic/ui-components and I've seen that the used font Montserrat is never imported when you run the app with Vite.
This little fix imports the font from the static path.

Tnx @mateonunez , can you please sign-off the commit?
See here

The commit has been signed-off. Thanks for the nit guys! 😁


selinux: some files under the data-dir are container_runtime_exec_t that should not be so

Environmental Info:
K3s Version: any
Node(s) CPU architecture, OS, and Version: any os/arch with selinux enforcing
Cluster Configuration: 1 .. n
Describe the bug:
When k3s disgorges it's user-land content to disk it leverages a .lock file at the root of the data-dir (via flock) that does not get cleaned up. By default, our selinux policy has everything under and including the data-dir to be labeled container_runtime_exec_t (because containerd and runc need to transition to container_runtime_t process label to function correctly). Additionally, the strongswan/ipsec config directory/files are incorrectly labeled container_runtime_exec_t.
To recap, these locations on disk for a running k3s installation have content with labels that could lend elevated privilege via the container_runtime_exec_t label:

${data-dir}/.lock
${data-dir}/current/etc/**

Steps To Reproduce:
install via https://get.k3s.io on a supported selinux system
Expected behavior:
The following locations are correctly labeled:

${data-dir}/.lock
${data-dir}/current/etc/**

container_lock_t and container_config_t respectively
Actual behavior:
The following locations are incorrectly labeled:

${data-dir}/.lock
${data-dir}/current/etc/**

container_runtime_exec_t :disappointed:
Additional context / logs:

https://github.com/k3s-io/k3s/issues/4401
https://github.com/containers/container-selinux/pull/156
https://github.com/k3s-io/k3s-selinux/pull/25

Backporting
n/a

Closing https://github.com/k3s-io/k3s/issues/4401 in favor of this issue

Validated on v1.22.4-rc1+k3s1, files are labeled correctly.
[centos@ip-172-31-30-172 ~]$ k3s -v
k3s version v1.22.4-rc1+k3s1 (1a513bba)
go version go1.16.10
[centos@ip-172-31-30-172 ~]$ ls -lZ /var/lib/rancher/k3s/data/.lock
-rw-------. 1 root root system_u:object_r:container_lock_t:s0 0 Nov 23 00:57 /var/lib/rancher/k3s/data/.lock
[centos@ip-172-31-30-172 ~]$ ls -lZ /var/lib/rancher/k3s/data/current/etc/
total 0
drwxr-xr-x. 5 root root system_u:object_r:container_config_t:s0 118 Nov 23 00:58 strongswan
[centos@ip-172-31-30-172 ~]$ ls -alZ /var/lib/rancher/k3s/data/current/etc/strongswan/
total 12
drwxr-xr-x.  5 root root system_u:object_r:container_config_t:s0 118 Nov 23 06:51 .
drwxr-xr-x.  3 root root system_u:object_r:container_config_t:s0  24 Nov 23 06:51 ..
-rw-r--r--.  1 root root system_u:object_r:container_config_t:s0 608 Jul 12 19:23 ipsec.conf
drwxr-xr-x. 10 root root system_u:object_r:container_config_t:s0 119 Nov 23 06:51 ipsec.d
-rw-------.  1 root root system_u:object_r:container_config_t:s0  48 Jul 12 19:23 ipsec.secrets
-rw-r--r--.  1 root root system_u:object_r:container_config_t:s0 281 Jul 12 19:23 strongswan.conf
drwxr-xr-x.  3 root root system_u:object_r:container_config_t:s0 138 Nov 23 06:51 strongswan.d
drwxr-xr-x. 16 root root system_u:object_r:container_config_t:s0 218 Nov 23 06:51 swanctl
[centos@ip-172-31-30-172 ~]$


The server hangs when trying to connect

When I try to connect to the server it hangs completely. Antizapret is running in a container. I tried enable DCO packages and without dco packages. No difference

I think I found the problem. The kresd service takes away "all" the memory and loads the system. How much memory is needed to run the container?

500 megabytes is not enough :(

Yes, kresd loads list of all blocked domains. It consumes around 300-400 Mb of RAM. Minimal requirements is 1Gb or RAM.
There is a new ENV variable, to skip download of lists:
 # EN: Do not update lists from the Internet
      # RU: Не обновлять списки из интернета
      - SKIP_UPDATE_FROM_ZAPRET=true

Use it and define domains manually in include.hosts.custom.txt. This will gratly reduce ram consumption


Repair switch support for V1.7 YAML manifest

Add YAML manifest entries for winget repair behavior
Manifest Entries includes:
- The Repair switch, within InstallerSwitch, allows for custom repair of a package.
- The RepairBehavior enum field, present in the Installer, determines the repair behavior for the source package used to repair a package.
- Updated the test manifest (ManifestV1_7-MultiFile-Installer.yaml) and the test code that validate the Repair switch and RepairBehavior fields.
[How Validated:]

Made the necessary changes to the manifest
Ran the ManifestValidation tests that are part of AppInstallerCLITests and verified that all the tests passed

[Test Result:]
Filters: [ManifestValidation]
===============================================================================
All tests passed (4008 assertions in 30 test cases)

TODO's:

[ ]  Determine the interdependency validation between the "RepairBehavior" and "Repair" fields. Should this be a semantic validation or a validation at the time of workflow execution as an early validation step?

[x] I have signed the Contributor License Agreement.
[x] This pull request is related to an issue.

Related to :

#148

Microsoft Reviewers: Open in CodeFlow

/azp run

Does this PR also add support for it in the COM API?

Does this PR also add support for it in the COM API?

The scope of this PR is limited to manifest support for the Repair functionality. While we do have plans to add support for the COM API, that change is not included in this PR. The repair workflow and COM API implementation will be addressed in separate PRs, allowing us to more effectively manage the complexity and address feedback on different aspects of the implementation.

Does this PR also add support for it in the COM API?

The scope of this PR is limited to manifest support for the Repair functionality. While we do have plans to add support for the COM API, that change is not included in this PR. The repair workflow and COM API implementation will be addressed in separate PRs, allowing us to more effectively manage the complexity and address feedback on different aspects of the implementation.

I see; Thanks!


finish lecture-worksheet-1

I have completed section 2 of this worksheet (corresponding to Class 3 - R Markdown).

To approach the issue of how to guide students through practicing R Markdown in RStudio, while still using the worksheet, there are two components to section 2: (1) Answer a few autograded questions in quiz form, and (2) Open the worksheet document in .Rmd form (which we will provide to students through Canvas) in RStudio, and follow the instructions for the second activity, which is adapted from last year's STAT545 guidebook content, and won't be autograded, which I don't think is a problem since this worksheet is optional.

Based on your comments about nbGrader on my last push request (#30), I have adapted the content that I had written thus far to a format more appropriate for nbGrader that is hopefully easier for Team Sonja. Thanks again for clarifying that!

In addition, I have added "An important note" section to remind students that submission of this worksheet is optional, an "Attributions" section to credit inspiration for the worksheet's contents, and an "Instructions + Grading" section. About the latter, I don't know if adding it to this first worksheet is confusing and it's better to just put up the instructions overall elsewhere, or have them both elsewhere (somewhere in the website / canvas?) and at the start of every worksheet. I did clarify that students should keep in mind that this worksheet is still optional, but I'm still not sure if it's confusing to have them there altogether.

I am also somewhat worried that the instructions about opening the Rmd in RStudio are not clear enough, but I'm not sure of how to make them better!

I look forward to hearing your feedback and I hope you like the final result! Thank you.

Oh no! I apologize, I just realized that in moving the lecture-worksheet-1.Rmd to a new folder ("worksheets") locally and pushing my changes, now it doesn't show the differences between the original and this updated version because it appears as a brand new document 😞  I'm so sorry, I'll remember not to move files until pull requests are resolved!

Thank you for this! This worksheet looks like a winner. There is still one more thing that needs changing before passing it on to Team Sonja: there should only be one "solution chunk" (not two), and there should be a "test chunk" that follows the solution chunk. For example, the following two code chunks currently follow Question 1.2:
answer1.2 <- #youranswer

### BEGIN SOLUTION
answer1.2 <- 1
### END SOLUTION

Side note: the first code chunk will throw an error, which means that (I think) nbgrader won't be able to compile the student version of the worksheet.
These should be combined into one code chunk like so:
#answer1.2 <- youranswer
### BEGIN SOLUTION
answer1.2 <- 1
### END SOLUTION

Then, there should be another code chunk following, containing tests. It will eventually contain something like this:
test_that("Question 1.2", {
    expect_equal(digest(as.numeric(answer1.2)), "6717f2823d3202449301145073ab8719")
})

Notes about this choice of test:

The function digest::digest() "encrypts" the object (in this case, the numeric 1) into a unique hash, so that students don't see the answer (otherwise, they'd see something like expect_equal(answer1.2, 1), and so would know that the answer is 1. To come up with "6717f2823d3202449301145073ab8719", I had to manually run digest::digest(as.numeric(1)).
We have to be flexible with the type of object a student creates. It's possible (although unlikely) that a student provides an integer as an answer -- answer1.2 <- 1L -- which gets digest()ed differently. Hence the as.numeric().

I think we should see if Team Sonja can write the tests. We can prompt them with something like this:
# Test that students answer with 1

We'd also give them the above intel about digest() and being careful about not making the comparison too strict, and then provide feedback when they come up with a draft.

Apologies as I just read this now after I wrote Worksheet 2 and I made the same mistakes! I will correct the chunks and add tests, I can try using digest myself but I may leave the tests for Team Sonja if you confirm that's okay (like you mentioned, adding comments with what should be tested). Thank you for the feedback!

I may leave the tests for Team Sonja if you confirm that's okay

Certainly!


fix: switch to inclusive range

Fixes: https://github.com/tromey/vlq/issues/10

I think over in #10 we agreed to just use ..= and drop backward compatibility.  Could you do that instead?

Could you do that instead?

Done :+1:

Thank you.