FI 1.3.0 files

FI 1.3.0 schema files uploaded

iOS 1.1.3. : all codes are valid
Android 1.1.2.-acc : all codes are valid


BUG: avoid app freeze on mac

After recent changes to allow native file browsers,
clicking the button would apparently create a dialog
on mac but it was not visible.  Because it was modal
the app would be alive but unresponive.
This change replaces show() and raise() which work
for QDialog with exec() which is apparently needed
for the native dialog to work properly.
https://discourse.slicer.org/t/slicer-is-freezing-on-macos-when-clicking-on-import-dicom-files/18624
Co-authored-by: Andras Lasso<EMAIL_ADDRESS>

We could probably don't need this->ImportDialog->setWindowModality(Qt::ApplicationModal); (I think this is the default for modal popups already).
We may also consider using exec() for the query popup, too (instead of raise+show).

We could probably don't need this->ImportDialog->setWindowModality(Qt::ApplicationModal); (I think this is the default for modal popups already).

At least with raise and show this change made the dialog appear, but you could still click on buttons and interact with the app even though the dialog remained on top, so very unconventional behavior.

We may also consider using exec() for the query popup, too (instead of raise+show).

I never saw bad behavior with that one, probably because it's a non-native dialog, so I left it as-is.

I never saw bad behavior with that one, probably because it's a non-native dialog, so I left it as-is.

OK. Maybe just add a comment there, that exec may work better if issues are observed (appears on the wrong monitor, etc.).

May want to already begin using open() over exec(). The note in the documentation says

Note: Avoid using this function; instead, use open(). Unlike exec(), open() is asynchronous, and does not spin an additional event loop. This prevents a series of dangerous bugs from happening (e.g. deleting the dialog's parent while the dialog is open via exec()). When using open() you can connect to the finished() signal of QDialog to be notified when the dialog is closed.

https://doc.qt.io/qt-5/qdialog.html#exec

May want to already begin using open() over exec().

This behaves the same as raise() and show() (at least on mac with current Qt).  Probably because it's a native dialog so let's stick with exec for now.
It turns out ctkDICOMQueryRetrieveWidget is a QWidget not a QDialog so it doesn't have an exec().
So I think we're good with this and ready to merge.

I agree, the current content of the PR looks good to me.


pprof: unstable-2023-07-05 -> unstable-2024-02-27

Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Adding you @NickCao as you reviewed and merged the last PR on this program in #245809

Diff: https://github.com/google/pprof/compare/200ffdc848b879f8aff937ffeba601c186916257...401108e1b7e7e113ef887df16b6227698eb5bb0f
LGTM.


InfluxDB requires username and password

Make sure you are running the latest version of Home Assistant before reporting an issue.
You should only file an issue if you found a bug. Feature and enhancement requests should go in the Feature Requests section of our community forum:
Home Assistant release (hass --version):
0.30.0.dev0
Python release (python3 --version):
Python 3.5.1
Component/platform:
influx
Description of problem:
It seems that somehow the requirement of a username and a password sneaked in for InfluxDB (https://github.com/home-assistant/home-assistant/commit/61e2da88272ccb0db700ca732197bcb7a637b2f6). An InfluxDB instance can be used without a username/password and this should be the default.

Problem-relevant configuration.yaml entries and steps to reproduce:
influxdb:

https://github.com/home-assistant/home-assistant.github.io/issues/1003


C#: Allow exporting generic properties

Updated version of https://github.com/godotengine/godot/pull/83432, this adds support for exporting generic properties, methods, and signals in C#.

Closes https://github.com/godotengine/godot/issues/74960
Closes https://github.com/godotengine/godot/issues/82939

Can this be added in 4.4?


Burndown chart - Sprint 3

The burndown chart  has been added above. This issue can be closed.

Hour: 2


PolicyBackend: Avoid going through DNS to avoid timing issues with connectivity

At least one problem seems to be connectivity between PolicyBackend and Mixer. This looks like it is due to delay of DNS update, as otherwise the service seems to be active.
This PR updates configuration generation to use the direct address of the PolicyBackend when generating Mixer configuration.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: ozevren
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pkg/OWNERS [ozevren]
tests/integration/mixer/OWNERS [ozevren]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Do you have a suggestion? I considered changing the bypass adapter to wait
more or do connection lazily but that seem to be much bigger surgeries and
i am not sure if they are the right thing to do given Mixer v2 plans
anyways.
On Wed, Jun 12, 2019 at 12:04 PM Kuat<EMAIL_ADDRESS>wrote:

@kyessenov commented on this pull request.
This looks fine to make it less flakey, but it doesn't test what the real
world would exercise.
In the real world, putting IP address into a config is frowned upon, and
we should try to focus our testing on the practical use cases.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/pull/14758?email_source=notifications&email_token=AECHYI7DYOMOGBDGDLSL7VTP2FCFFA5CNFSM4HXOMRR2YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOB3LNFRY#pullrequestreview-248959687,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AECHYIYP2N6EUDARDTQEGRDP2FCFFANCNFSM4HXOMRRQ
.

Insert a delay? Given that DNS is eventually consistent, we can't force it to be faster than it currently is. There is a real issue with gRPC LB having hard 30s timeout that we're going to mask with the change to IP addresses.

Until we have a viable Mixer v2 implementation, we are stuck with Mixer v1 fulfilling critical requirements. So I think it is important to test it well.

How long? A minute? (The Bypass adapter code in Mixer already has a
retry/backoff loop in the order of a minute, so this would be in addition
to that). Delays themselves are hacky. There is no guarantee that they
would work, and they tend to make tests run for much longer time (e2e Mixer
tests are a good example, where most of the test is actually waits and took
~40 minute to complete last I checked). If we're going to hack through the
problem, I'd much rather do the IP address solution as it categorically
avoids a particular vector for flaky behavior by eliminating DNS related
issues.
On Wed, Jun 12, 2019 at 12:37 PM Kuat<EMAIL_ADDRESS>wrote:

Until we have a viable Mixer v2 implementation, we are stuck with Mixer v1
fulfilling critical requirements. So I think it is important to test it
well.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/pull/14758?email_source=notifications&email_token=AECHYI3AL7HLGIFGNUD5KOLP2FGBJA5CNFSM4HXOMRR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXRSJRQ#issuecomment-501425350,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AECHYIYYD6LPXJWZU7GYR4TP2FGBJANCNFSM4HXOMRRQ
.

A minute is not long enough. Ultimately, this is a gRPC issue since it hard codes 30s fixed retry timeout. The solution is either start things in the right order (e.g. wait for DNS to become available before Mixer), fix gRPC (by piling on the issue or replacing LB backend), or add longer timeout. Longer timeout is the easiest fix.

Please don't refer to delays as flakes. This is working as intended, since lots of underlying components (DNS, gRPC) are eventually consistent and do expect slow initialization for things to settle. You can't expect the overall system to stabilize immediately without working through every single library / dependent system. However, replacing these systems with instant mocks means we don't test the actual thing, which in the case of gRPC or DNS is more important than faking them.

First, I am not sayin delays are flakes, I am saying they are hacks. :) Second, they are hacks, as a delay and a retry loop are different things. And we have an ample amount of the former in numerous tests. They contribute to flakes and test run times. The test framework and components already have numerous retry loops in various places, precisely to make them work resiliently in an eventually consistent system. Also there is already a retry loop in Mixer bypass adapter with a 1 minute range, and it is failing to solve this problem, so it looks like the propagation delays are either longer than that, or there is some other issue at play.
I can add a DNS lookup from the test framework to further reduce the window, but even that is possibly not the right solution. Most likely, the check needs to be done from the Mixer pod itself.

Given that gRPC only retries DNS every 30s, 1 minute delay is far from enough. 5 minute is more realistic.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: ozevren
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: geeknoid
If they are not already assigned, you can assign the PR to them by writing /assign @geeknoid in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

mixer/OWNERS
pkg/OWNERS [ozevren]
tests/integration/mixer/OWNERS [ozevren]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@ozevren: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-bookInfoTests-trustdomain.sh
fa98ae5bb11b523fa20bb720be12f69402271503
link
/test e2e-bookInfoTests-trustdomain-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/lgtm
/approve

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: kyessenov, ozevren
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

mixer/OWNERS [kyessenov]
pkg/OWNERS [ozevren]
tests/integration/mixer/OWNERS [ozevren]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Update IeaseMusic to 1.0.6

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

Additionally, if adding a new cask:

[x] Named the cask according to the token reference.
[x] brew cask install {{cask_file}} worked successfully.
[x] brew cask uninstall {{cask_file}} worked successfully.
[x] Checked there are no open pull requests for the same cask.
[x] Checked the cask was not already refused in closed issues.
[x] Checked the cask is submitted to the correct repo.

I believe its better to clean up the PR just with 1 commit updating leasemusic


Fotran lexer: detect keywords formed by two keywords without inter-wo…

…rd spaces.

Fix for issue #1188.
I took the list of keywords affected by this issue from the VIM fortran lexer.
All the affeced keywords are ending keywords, that is, "end" followed by another keyword without space.

Merged, thanks for your contribution!


feat(client-gen): Ctor generation

Some initial ideas towards resolving #114

@holykol as discussed, we can merge it just for the sake of not losing the job, but it doesn't like exactly what we want to have as a result of resolving #114.


Adapt the data augmentation script for spinal cord MS lesions

This PR is an adaptation of the original data augmentation script for SCI data. The dataset used for adapting the script is basel-mp2rage which contains both healthy controls and MS patients within the same dataset.
The main point of diversion from the original data augmentation script is that there could be multiple MS lesions for a given subject and the script attempts to use all the lesions and pastes them on the healthy subjects.

Thanks for the PR!
I made a few minor improvements (see my last three commits) and tested the PR on basel-mp2rage using the following:
$ python /Users/valosek/code/model_seg_sci/generate_new_lesions/augment_lesions_intra_dataset.py -path-data /Users/valosek/data/data.neuro.polymtl.ca/basel-mp2rage -path-qc /Users/valosek/data/data.neuro.polymtl.ca/basel-mp2rage/qc -num 100 -seed 99

One thing I noticed is that in case of >1 lesion, the same coordinate on the centerline is chosen for each lesion:
Healthy subject: sub-C077, Patho subject: sub-P113
Pathological subject /Users/valosek/data/data.neuro.polymtl.ca/basel-mp2rage/sub-P113/anat/sub-P113_UNIT1.nii.gz: ASL, (240, 256, 176), (1.0, 1.0, 1.0)
Reoriented to RPI
Healthy subject /Users/valosek/data/data.neuro.polymtl.ca/basel-mp2rage/sub-C077/anat/sub-C077_UNIT1.nii.gz: ASL, (240, 256, 176), (1.0, 1.0, 1.0)
Reoriented to RPI
Number of individual lesions = 5

Inserting Lesion 1 out of 5
Mean lesion/SC Intensity Ratio of Patho Subject sub-P113: 0.7427999086232937
Trying to insert lesion at (86, 93, 40)
Mean Lesion/SC Intensity Ratio of Augmented Subject (AFTER LESION INSERTION): 0.7425630015106464
Mean Lesion/SC Intensity Ratio of Augmented Subject (AFTER INTENSITY MODIFICATION): 0.7425630015106464
Inserting Lesion 2 out of 5
Mean lesion/SC Intensity Ratio of Patho Subject sub-P113: 0.800870590856875
Trying to insert lesion at (86, 93, 40)
Mean Lesion/SC Intensity Ratio of Augmented Subject (AFTER LESION INSERTION): 0.8006816200988428
Mean Lesion/SC Intensity Ratio of Augmented Subject (AFTER INTENSITY MODIFICATION): 0.8006816200988428
Inserting Lesion 3 out of 5
Mean lesion/SC Intensity Ratio of Patho Subject sub-P113: 0.8036495727145505
Trying to insert lesion at (86, 93, 40)
Mean Lesion/SC Intensity Ratio of Augmented Subject (AFTER LESION INSERTION): 0.8190013834091774
Mean Lesion/SC Intensity Ratio of Augmented Subject (AFTER INTENSITY MODIFICATION): 0.8034226736992179
Inserting Lesion 4 out of 5
Mean lesion/SC Intensity Ratio of Patho Subject sub-P113: 0.7649154167171618
Trying to insert lesion at (86, 93, 40)
Mean Lesion/SC Intensity Ratio of Augmented Subject (AFTER LESION INSERTION): 0.7971001326641276
Mean Lesion/SC Intensity Ratio of Augmented Subject (AFTER INTENSITY MODIFICATION): 0.7646939088458415
Inserting Lesion 5 out of 5
Mean lesion/SC Intensity Ratio of Patho Subject sub-P113: 0.8150617725672186
Trying to insert lesion at (86, 93, 40)

I find the code overly complicated. And also it does not properly account for PVE. My suggestion is:

simply the code to do a "placing a small object (lesion) inside a bigger object (cord mask)"
apply gaussian filter on the lesion mask and use weighted sum/multiplication to place the lesion with PVE

For the first achievement, example of code from chatGPT:
Prompt:
Terminal output
write a code in python that does the following:
- inputs:  a small 3D binary object (ones: object, zeros: background), a larger 3D binary object (ones: object, zeros: background)
- output: a mask of the binary object placed inside the larger object, at a random location

Terminal output
import numpy as np

def place_small_in_large(small_obj, large_obj):
    """
    Place a smaller 3D binary object inside a larger 3D binary object.

    Parameters:
    - small_obj: 3D numpy array representing the smaller object
    - large_obj: 3D numpy array representing the larger object

    Returns:
    - Mask of the large object with the smaller object placed at a random location
    """

    # Check if the small object can fit inside the large object
    if (small_obj.shape[0] > large_obj.shape[0] or
        small_obj.shape[1] > large_obj.shape[1] or
        small_obj.shape[2] > large_obj.shape[2]):
        raise ValueError("The small object is larger than the large object in one or more dimensions!")

    # Find the available placement range for each dimension
    x_range = large_obj.shape[0] - small_obj.shape[0] + 1
    y_range = large_obj.shape[1] - small_obj.shape[1] + 1
    z_range = large_obj.shape[2] - small_obj.shape[2] + 1

    # Randomly choose the starting coordinates within the available range
    x_start = np.random.randint(0, x_range)
    y_start = np.random.randint(0, y_range)
    z_start = np.random.randint(0, z_range)

    # Create a copy of the large object to place the small object in
    result = large_obj.copy()

    # Place the small object inside the large object at the chosen location
    result[x_start:x_start+small_obj.shape[0],
           y_start:y_start+small_obj.shape[1],
           z_start:z_start+small_obj.shape[2]] = small_obj

    return result

# Example usage:
small_obj = np.array([[[0, 1], [1, 1]], [[1, 1], [1, 0]]])
large_obj = np.zeros((5, 5, 5), dtype=int)

result = place_small_in_large(small_obj, large_obj)
print(result)

Similarly to https://github.com/ivadomed/model_seg_sci/issues/44, I'm closing this draft PR as not planned


fix: remove duplicate ruff code

This tiny PR removes a duplicate code definition in the ruff configuration.

Thanks! I noticed this briefly after sorting but then forgot about it.


CompactCalendarView.CompactCalendarViewListener is required?

On sample, the listener is informed, but on documentation isn't informed to be required.
If not informed, occur an NPE on month events:
public void showNextMonth() {
    this.compactCalendarController.showNextMonth();
    this.invalidate();
    this.listener.onMonthScroll(this.compactCalendarController.getFirstDayOfCurrentMonth());
}

I suggest a null test for this.listener

Ah that was a recent change I made the other day :(. I'll fix that today. Unfortunate , that class isn't tested since it forwards on calls to the class which actually does the processing.

Just need to release today.

Now available in:
dependencies {
    compile 'com.github.sundeepk:compact-calendar-view:1.7.2'
}


refactor: remove DefaultProps from the StatusBar Component

Summary
Issue #31607. defaultProps makes it difficult to migrate components to functional.
Changelog
[General] [Changed] -  Remove defaultProps from the StatusBar Component.
Test Plan
Verified the behaviour of the existing functionality after the removal on the RN Tester app.
https://user-images.githubusercontent.com/11355609/120085709-a2b35f80-c0da-11eb-94f2-2649270155ef.mov

Hi @lunaleaps! Thank you for your suggestion! I just made a new commit could you take a look at it and see if that's what you had in mind? I added default value to the animated prop and showHideTransition prop whenever createStackEntry is called, so when you have animated or showHideTransition set to undefined, the values will be automatically set to false and "fade" respectively.

@Fannolo Great thank you! Would you also be interested in writing a jest test for this component? You can take a look at VirtualizedList-test as an example: https://github.com/facebook/react-native/blob/dc80b2dcb52fadec6a573a9dd1824393f8c29fdc/Libraries/Lists/tests/VirtualizedList-test.js
you can check out the Jest API:
and run the the test via
yarn test

@Fannolo Great thank you! Would you also be interested in writing a jest test for this component? You can take a look at VirtualizedList-test as an example: https://github.com/facebook/react-native/blob/dc80b2dcb52fadec6a573a9dd1824393f8c29fdc/Libraries/Lists/tests/VirtualizedList-test.js
you can check out the Jest API:
and run the the test via
yarn test [name of your test]

Hi @lunaleaps, I added some tests to the StaturBar component could you take a look and see if I'm going on the right direction? Thanks!

@Fannolo Yup! That looks great! Great to assert that the value of the prop is set to its default if not passed in. You can also try running your tests before and after your changes to see if anything has changed.

Hi @lunaleaps sorry for the long wait, I checked if the tests were working with the old version of the code and everything looks fine! Lemme know if you can review the pull request!


Documentation needs major update

Query variables - It's hard to query for the values and it constantly throws error.
The documentation lacks here.
More examples are required on how to pull tags as query variables.

@piotr-signalfx Please look into it.


Add the ability to refer to applicant personal number

This PR adds the ability to refer to the personalNumber of the applicant, in a similar fashion as other applicant properties, in accordance with #CU-2qa0nn9.
In order to get this to show up in the app (on grundansökan);

Add a new hidden field to the step with the firstName field, with the ID hiddenPersonalNumber and tag personalNumber and load from applicant info applicant.personalNumber
To the "about you" step, add a new field with the id hiddenPersonalNumber in the blank category.

Task linked: CU-2qa0nn9 Vi ska kunna hänvisa till sökandes personnummer i summeringen


Replace old breadcrumb implementation in the top bar with new breadcrumb component.

Pull Request Description
Implements #7312:  Replace the legacy code used for the project breadcrumbs and update them to the new design.

 This should be fixed by providing a better mechanism to re-use components with different styles. The current mechanism assumes that a component will use the same theme for every instance. Implementing this is out of scope for this task, though.
Checklist
Please ensure that the following checklist has been satisfied before submitting the PR:

[x] The documentation has been updated, if necessary.
[x] Screenshots/screencasts have been attached, if there are any visual changes. For interactive or animated visual changes, a screencast is preferred.
[x] All code follows the
Scala,
Java,
and
Rust
style guides. In case you are using a language not listed above, follow the Rust style guide.
All code has been tested:

[x] Unit tests have been written where possible.
[x] If GUI codebase was changed, the GUI was tested when built using ./run ide build.

QA :red_circle:

Breadcrumb icons are offset vertically (I have checked this is not present on develop):

Any node double-clicked is added to the breadcrumb stack, even if it isn't collapsed.

When the breadcrumb stack contains multiple levels, their layout is intermittently incorrect (this should read main > func4 > func5 > func6):

Warnings like this are logged frequently:

Note the message size.

3 seems to be related to #7605. Let's fix it as part of this PR.

1. Breadcrumb icons are offset vertically (I have checked this is not present on `develop`):
   ![image](https://user-images.githubusercontent.com/1047859/262876509-a41a91df-02c7-4d65-bb94-ea060c19ad4e.png)

Fixed

2. Any node double-clicked is added to the breadcrumb stack, even if it isn't collapsed.
   ![image](https://user-images.githubusercontent.com/1047859/262880273-f7b21c66-0518-4dca-97dd-408fb898edc2.png)

Fixed

3. When the breadcrumb stack contains multiple levels, their layout is intermittently incorrect (this should read `main > func4 > func5 > func6`):
   ![image](https://user-images.githubusercontent.com/1047859/262879806-8ee25d36-1732-4a42-ad07-501d476bb251.png)

This is not fixed yet. After internal discussion it will not be fixed with this PR but as separate work item #7605.

4. Warnings like this are logged frequently:
   ![image](https://user-images.githubusercontent.com/1047859/262869112-abd496cb-8d15-4ba9-966b-094ad85fce5a.png)
   Note the message size.

This is also fixed by changing the logging.
@kazcw It would be great if you could re-test the PR with the fixes.

QA: :green:
The issues have been addressed. Looks good!


Don't cancel master branch

This commit prevents dedup from cancelling the master branch when using
branches=true

👍


Replace use of xmlstartlet with xmllint in shared makefile for canonicalization of xml

@jzaki you are making this PR to the wrong branch, change the base branch to upgrade-schema-2020-03


Example doesn't work

but it work if import ptomasroos/react-native-multi-slider here https://github.com/ptomasroos/react-native-multi-slider/blob/master/example/Example.js#L14

Did you npm install in the example/Example as well? Since it moves the lib files over there.

Yes. Npm 3. Node 7

Thanks! I've fixed the example now!


Copy from context menu copies entire response in Copilot Chat

Does this issue occur when all extensions are disabled?: Yes/No

Version: 1.96.0-insider (user setup)
Commit: 231d37338a58ff22c223a7ed7d4c1e7142c513d2
Date: 2024-11-04T14:19:41.196Z
Electron: 32.2.1
ElectronBuildId: 10427718
Chromium: 128.0.6613.186
Node.js: 20.18.0
V8: 12.8.374.38-electron.0
OS: Windows_NT x64 10.0.26100

Steps to Reproduce:

Select a single word in a Copilot Chat response
right-click
select "copy" from the context menu
paste into notepad, etc.
See that the entire response was copied, not just the selected text

FYI - Using ctrl+c instead copies just the selected text.

https://github.com/microsoft/vscode-copilot-release/issues/416


Is it possible to include issue comments ?

I use this workflow in my repos. I included both the issue and issue_comment trigger for the workflow but it doesn't seem to work for the latter. Is there a way to run this for subsequent issue comments ? It also does not run when the original comment is edited to add more labels.

Hi @s-canchi!  Thanks for your feedback.  Both of these ideas sounds useful.  I'll add this to my backlog for development.  Or feel free to submit a PR for these enhancements.  PRs welcome.


[2209] Apply draft course details section

Context
https://trello.com/b/BBEuhbHM/publish-register-sprint-board
Changes proposed in this pull request

Create a new namespace ApplyApplications to house the controllers, views etc
Move trainee data under this new namespace
Created 2 new controllers and all that goes with it that drive the behaviour for this feature
Tweaked PublishCourseDetailsController, SubjectSpecialismsController and LanguageSpecialismsController so they can be reused by the apply appplication course review
Tweaked the example data rake task to create more realistic courses and subjects

Apply course details page sample

Apply course confirmation

 page sample
Guidance to review

Visit draft trainees index page
Filter by "Imported from Apply"
Now, some trainees will have only one subject specialism, therefore the confirmation page will be displayed. If you want to try out selecting a subject specialism, go back to the list of trainees from Apply and choose another. One of them will require selecting multiple specialisms or languages.

 [L] Apply draft course details section

working for me, nice one!


Segfaults even with duckdb v0.7+ installed

Hi,
I'm giving lance a try and get segfaults even with duckedb v0.7.1. I'm using Mac OS with m1 chips.
Any ideas ?

I've just find out why I get this. I have a large parquet file with binary image inside. Generated from coco dataset. When I run a query with duckdb.query("SELECT * ...") I get a segfault. But if I specify a column like "SELECT image ..." it works.

Would you be able to share the data?

If you do "SELECT * EXCLUDE(image) ...", do you still get a segfault? If so, can you share the parquet dataset without the image column (hopefully making it much smaller) ?
OR if like the first 10 rows still reproduces the error, just share the first 10 rows?

Another possibility is that we're working on https://github.com/eto-ai/lance/pull/664 which adds support for list-of-dict or list-of-struct-with-dict fields. If you've converted data from parquet, it's possible this is the problem too.
If you can, please share the data so we can verify it from our end before the next release


aria-disabled buttons should have same CSS as disabled

If you're building a form then you may want the submit button to be disabled until the form has been completed correctly. Using the disabled attribute on the submit button will however not allow the user to tab to it.
A better solution could to be disable click events on the submit button and make the button be announced as disabled with the aria-disabled="true" attribute. If you do that with Bootstrap though it doesn't use the disabled state button CSS. (Quick demo: https://stackblitz.com/edit/bootstrap-disabled-buttons )
I read about this on: https://a11y-101.com/development/aria-disabled
TLDR: A disabled button currently has CSS something like this:
.btn.disabled, .btn:disabled, fieldset:disabled .btn {
   ....
}

I suggest it should include aria-disabled="true" buttons so compiled CSS would be:
.btn.disabled, .btn:disabled, fieldset:disabled .btn, .btn.aria-disabled="true" {
    ....
}

I know there are more accessibility considerations regarding my form scenario example mentioned above, but I still think it probably makes sense for aria-disabled="true" buttons to use the same styles as disabled buttons.

Thanks for this suggestion @coliff. Your StackBlitz link seems to be broken, could you please update it if possible?
If I understand the content correctly, we're talking here simply to ensure some visual consistency so that disabled or aria-disabled="true" applied on a button would have the same rendering. My first feeling would be that it could work even if we would need to double-check some edge cases.
@patrickhlauke would it make sense to you to have such a defensive CSS approach or would it be necessary on the contrary to have a different rendering?

Could you @coliff  or @julien-deramond tell me, in which section of Bootstrap should i find the actual issue in real time, I opend Bootstrap many times but I couldn't find it.
I want to fix it. My humble request please give me some  hints....
Though I am newbie in contribution I am going anywhere whithout solve it.

Thanks @AgentKaash but this is not yet decided whether we're going to make this modification or not. So there's no PR to provide at the moment.

in which section of Bootstrap should i find the actual issue in real time, I opend Bootstrap many times but I couldn't find it

It's not in the documentation. This would be a defensive CSS approach for this use case.

for me , @julien-deramond , i really want to. anyways thanks for helping me out . But i figure out many things .Though this is not for me but i learnt something new today as a newbie in contribution.
Sir would you suggest me some of projects? i know you all are busy somewhere for something new, if you help me i will very greatful.
and thanks a lot sir. wish you have a wonderful day.

In principle, I don't have anything against also applying the regular .disabled styling to cases where aria-disabled="true" is set.
Of course, you can achieve this currently by manually adding the .disabled class (like you would with "faked" buttons that use <a>, for instance)
<button type="button" class="btn btn-primary disabled" aria-disabled="true"> … </button>

If we go with these styles being applied out-of-the-box directly based on the aria-disabled attribute, we can then tweak the explanation in https://getbootstrap.com/docs/5.3/components/buttons/#disabled-state about authors needing to add .disabled themselves.
If we don't want to go with this, we can at least expand the explanation in https://getbootstrap.com/docs/5.3/components/buttons/#disabled-state to mention that the same caveat about adding .disabled to links also needs to be done for buttons that aren't really disabled

is it something which i can solve?

We'd probably need to make a decision on which direction to go (see my two suggestions above). @julien-deramond et al?


Engine still reports as 'v2.6-alpha'

Minor.

Nope :)
https://github.com/BabylonJS/Babylon.js/blob/master/src/babylon.engine.ts#L414

Wow, my local repo is really not updating.


Analog of XCTestObservation

Description
It will be good to have a way to observe testing process. Analog to the XCTestObservation and XCTestObservationCenter in the XCTest
Expected behavior
No response
Actual behavior
No response
Steps to reproduce
No response
swift-testing version/commit hash
No response
Swift & OS version (output of swift --version && uname -a)
No response

Seems as library has Event API already.  API to register event handlers should be added (maybe as dynamic library through command-line arguments) or through some macros in code.

I agree this is something we want to expose as public API eventually.
Tracked internally as rdar://129609023

We have a lot of the moving parts already. What we don't have is a way to hook into the event stream arbitrarily.
Currently, there is support for streaming JSON descriptions of events to an arbitrary file when using swift test. Xcode doesn't offer a way to enable that functionality, but it could be done.
Would that be sufficient for your use case?

Experimental implementation on branch jgrynspan/469-observer-attribute.


Use NürnbergPassNumber in Digitale Druckerei (administration frontend)

As a user I want to identify my card uniquely. The people who create cards should assign me an ID. A way to automatically generate globally unique IDs could be useful. The id  should be entered in the digitale druckerei.
Pass number is provided by nürnberg.
Acceptance Criteria:

[ ] Should contain exactly 8 (numeric) digits (nürnberg) and should not start with 0.
[ ] An ID Should be unique (at least in the nürnberg project) (we don't need to enforce this)
[ ] Is only set for the nürnberg project
[ ] No need to add this to the canonical data format.

It's still somewhat unclear, for what the Id will be used and where it should come from and how it should look like. Need to discuss with customer.

It's now clarified. (I adjusted the description).

related to #698


Fix MockFileInfo.FullName - normalize paths

Fixes https://github.com/System-IO-Abstractions/System.IO.Abstractions/issues/425
Feedback highly appreciated

@fgreinacher to be clear, this is ready for review 👼

I‘m on vacation for a week. Will take a look when I’m back!

Have a good holiday!

Changed are done, expect the unit tests.
PS I think you can asign me nowadays to the PR, would help me in reminder this was still open 👼

I see the XFS helper, tried that one

All set then 👍
PS merge master is not really needed if you would squash (recommend!) this one on merge PR . It's a r build so 100 percent safe.

Thanks a lot for your contribution 👍


Issue #202 add flame life + bomb movement

As requested in issue #202 adds further array to observation of an agent. flame_life ticks down like the bombs except it starts at 3.
EDIT: also added bomb movement direction in as further map of ints where bomb movement is int in action space
EDIT 2: when squashing commits make_flame_map function got copied twice. The second force push removed that error.
EDIT 3: the third force push were two spelling errors I found in the documentation. My bad!

looks pretty good, although not sure why the need for the +1?

lgtm! thanks :).


Cant find the resourcepack

I see the datapack but icant find the resourcepack version

Theres instructions right here? Are they confusing

Yes, because  Ifollowed those instructions and only found a datapack, no resourcepack

Yes, because Ifollowed those instructions and only found a datapack, no resourcepack

Which file are you clicking and send a screenshot please


Prerequisite Steps:
1. Make sure your provider has community provider attributes:
  Example:
  $ provider-services query provider get akash1<REDACTED> -o text
  ...
  attributes:
  ...
  - key: host
  value: akash
  - key: tier
  value: community

Ref documentation:.
2. Make sure your provider *.ingress resolves to your provider IP (ideally worker node IP)
host <anything>.ingress.<yourdomain>

Example:
$ host anything.ingress.akash.pro
anything.ingress.akash.pro is an alias for nodes.akash.pro.
nodes.akash.pro has address <IP_ADDRESS>

More info on what DNS records should look like are available in the Akash Documentation here.

3. Please make sure your Akash provider doesn't block any Akash specific ports.

If you are using a firewall, please follow this doc:
https://docs.akash.network/providers/build-a-cloud-provider/akash-cloud-provider-build-with-helm-charts/step-9-firewall-rule-review
If you are behind NAT, then you need to make sure these ports are open between your provider worker nodes and the internet.

Audit Steps:
1. Title the issue: " [Provider Audit]: Provider Address" (e.g. "[Provider Audit]: provider.europlots.com")
2. Wait for response via comments. If no issues during provider Audit, process will be complete, provider should start bidding on leases, and Audit ticket will be closed.
3. If there are issues during the provider Audit, debug those issues, and Audit will be complete.
4. Audit Issue will be closed by core team member.
Leave contact information (optional)

Name - Abraham
Discord handle or Telegram handle: freakin | blkbox
Contact email address<EMAIL_ADDRESS>

Hi @freakinfofa :wave:
It looks like your provider isn't seeing my deployment order requests - dseq 15209027 & dseq 15209064.
Please check if your RPC node is syncing with the tip of the chain.
Can you please pass me the output for these commands:
kubectl -n akash-services get pods

kubectl -n akash-services get pods -o custom-columns='NAME:.metadata.name,IMAGE:.spec.containers[*].image'

kubectl -n akash-services exec -ti statefulset/akash-node-1 -- akash status

kubectl -n akash-services get statefulset/akash-provider -o yaml |grep -A1 AKASH_NODE

kubectl -n akash-services logs statefulset/akash-provider --tail=10000000 | grep -E '15209027|15209064'

Your provider is missing one attribute:
- key: host
  value: akash

Current attributes:
$ provider-services query provider get akash15yfjl6rz9u600ze48afspskg4mccx8fq5h6wp7 -o text
attributes:
- key: organization
  value: blkbox.cloud
- key: tier
  value: community
- key: region
  value: us-east
- key: capabilities/storage/1/class
  value: beta3
- key: capabilities/cpu/arch
  value: x86-64
- key: capabilities/gpu/vendor/nvidia/model/1080ti
  value: "true"
- key: capabilities/cpu
  value: AMD
- key: capabilities/gpu
  value: nvidia
- key: network-speed-down
  value: "400"
- key: network-speed-up
  value: "100"
- key: capabilities/memory
  value: DDR4
- key: location-type
  value: home-office
- key: email
  value<EMAIL_ADDRESS>- key: status-page
  value: status.akash-blkbox.cloud
- key: capabilities/storage
  value: NVMe
host_uri: https://provider.akash-blkbox.cloud:8443
info:
  email: ""
  website: ""
owner: akash15yfjl6rz9u600ze48afspskg4mccx8fq5h6wp7

kubectl -n akash-services get pods
NAME                                      READY   STATUS    RESTARTS       AGE
akash-hostname-operator-6795445db-nlq8r   1/1     Running   4 (14d ago)    51d
akash-provider-0                          1/1     Running   10 (23h ago)   8d
kubectl -n akash-services get pods -o custom-columns='NAME:.metadata.name,IMAGE:.spec.containers[*].image'
NAME                                      IMAGE
akash-hostname-operator-6795445db-nlq8r   ghcr.io/akash-network/provider:0.4.8
akash-provider-0                          ghcr.io/akash-network/provider:0.4.8
kubectl -n akash-services exec -ti statefulset/akash-node-1 -- akash status
Error from server (NotFound): statefulsets.apps "akash-node-1" not found
kubectl -n akash-services get statefulset/akash-provider -o yaml |grep -A1 AKASH_NODE
- name: AKASH_NODE
value: http://<IP_ADDRESS>:26557
    - name: AKASH_NODE
      value: http://<IP_ADDRESS>:26557

kubectl -n akash-services logs statefulset/akash-provider --tail=10000000 | grep -E '15209027|15209064'
Defaulted container "provider" out of: provider, init (init)

Im having some issues with the transfer.sh timing out... let me know if i can provide the logs via a different method?
curl -T provider.log.gz https://transfer.sh
curl: (28) Failed to connect to transfer.sh port 443 after 130359 ms: Connection timed out


Feature request: add support for inline PHP

Currently, this is not able to properly format code that contains inline PHP, e.g.:
  if (isTrue) {
    myVar = '<?php echo $this->__('Case 1') ?>';
  } else {
    myVar = '<?php echo $this->__('Case 2') ?>';
  }

It would be nice if you could add support for inline PHP.

That's the input?  Is that also the expected output?

@bitwiseman js-beautify appears to trip up only when both the JavaScript string and inline PHP string use the same type of quote (single vs. double), e.g.:
Input:
if (true) { str = '<?php echo $this->__('Some text 1') ?>'; }

Output:
if (true) {
  str = '<?php echo $this->__('
  Some text 1 ') ?>';
}

js-beautify adds a newline at the first nested PHP quote character. However, if JS and PHP strings use different quotes, then it's fine, e.g.:
Input:
if (true) { str = '<?php echo $this->__("Some text 1") ?>'; }

Output:
if (true) {
  str = '<?php echo $this->__("Some text 1") ?>';
}

My python-fu is not strong, but would it be possible to do something like this (high level)?

Extract the inline PHP code (using regexp pattern /<\?php\s.+?\?>/) and place it in a temp variable.
Replace the inline PHP code with some placeholder text that won't cause the nested quote confusion, e.g.: if (true) { str = '##inline_php_1##'; }. The incremented number at the end should be added in case there are multiple inline PHP embeds, e.g.: if (true) { str = '##inline_php_1## blah blah blah ##inline_php_2##'; }.
Do the beautification.
Finally, replace the placeholder text with the inline PHP code that was saved in the temp variable.

You can apply this to pretty much any language that can have inline server code, e.g.:
ColdFusion:
if (true) { str = '#request.event.getArg('paramName')#'; }

JSP:
if (true) { str = '<%= request.getParameter('paramName') %>'; }

Ruby:
if (true) { str = '<%= @date.strftime('%A, %d %B %Y') %>'; }

We'd just need to create a regex pattern for each language, which people can contribute to :-).

Yes, as you have recognized this is general problem with templating languages vs pure javascript.  The beautifier has been tweaked and hacked any number of times to make it not behave badly when dealing with templating of various kinds.  The case you describe isn't so bad, but it can get ugly really fast: What happens to the indenting when some uses a more complex php that traverses lines?
What really need is to switch to a more configurable model where you can specify additional beautifiers and the order in which they run.  Each beautifier would tokenize the parts of the code it understands and pass the rest on to the next one in the list.  In the long run that is the only way I see this being viable.
Of course, that change would introduce additional complexity and make testing that much harder.

@bitwiseman The work-around isn't perfect, as you stated, but at least it won't break the PHP parser or result in malformed JavaScript. The worst case scenario is that some JavaScript will remain un-beautified.
Since I am using only the Python module, I will try to implement a fix there.

We for the fix to be accepted you're going to have to implement it in both javascript and python.  If you're more comfortable writing javascript, you might as well do that and then port to python.

OK, thanks for the heads up. I'm currently using the 'jsbeautifier' Python module from inside Notepad++  using the Python Script plugin to format my text selection. Since I needed a quick fix, I implemented the steps I outlined above in my Python Script plugin script instead of the module itself, which is too complicated for me and would take too long. For those who are curious, here is my fix that is implemented in the Python Script plugin:
sSelectedText = editor.getSelText()
if sSelectedText:
  import jsbeautifier
  import re
  # Extract inline PHP code and replace with placeholder
  matches = re.findall(r'<\?php\s.+?\?>', sSelectedText, re.DOTALL)
  for i, val in enumerate(matches):
    sSelectedText = re.sub(re.escape(val), '@@' + str(i) + '@@', sSelectedText)
  # Beautify selection
  options = jsbeautifier.default_options()
  options.indent_size = 2
  sSelectedText = jsbeautifier.beautify(sSelectedText, options)
  # Replace placeholder with inline PHP code
  for i, val in enumerate(matches):
    sSelectedText = re.sub('@@' + str(i) + '@@', matches[i], sSelectedText)
  # Output to Notepad++
  editor.replaceSel(sSelectedText)

Now js-beautify is working, well, beautifully. Here are some sample test cases...
Input:
if(true){str='1: <?php echo $this->__('Some text 1') ?>\n2: <?php echo $this->__('Some text 2') ?>';}

Output:
if (true) {
  str = '1: <?php echo $this->__('Some text 1') ?>\n2: <?php echo $this->__('Some text 2') ?>';
}

Input:
if (true) { str =
'1: <?php echo $this->__('Some text 1') ?>\n' +
'2: <?php echo $this->__('Some text 2') ?>' }

Output:
if (true) {
  str =
    '1: <?php echo $this->__('Some text 1') ?>\n' +
    '2: <?php echo $this->__('Some text 2') ?>'
}

Input:
if(true){ str = '<?php
                 if (true) {
                   echo 'Something true';
                 } else {
                   echo 'Something false';
                 }
                 ?>'; }

Output:
if (true) {
  str = '<?php
                 if (true) {
                   echo 'Something true';
                 } else {
                   echo 'Something false';
                 }
                 ?>';
}

Ah, now I see what you meant. :smile: Well, I can't use this but thank you for posting it so others can.


noUi-background element nonexistent?

Hi, in the original noUiSlider there's an element classed 'noUi-background' that can be used to color the slider's background (to make it contrast with the base). It's used on the Ember noUiSlider docs but the element can't be found when I actually use it. Am I just missing it somehow? Thanks

The .noUi-background class got removed in version 9.0.0 of nouislider. You should use .noUi-target instead.


Feature request: JSON config parser before argument parser!

@xtaci It's quite illogical to implement command line argument parsing before calling config parsing func and especially annoying when it comes to SIP003 (shadowsocks plugin) scripting. For flexibility I suggest you change the config parsing sequence a bit. Client impl (arg|conf), for instance, should be like this in case parseJSONConfig() would not overwrite all arguments passed to the main program
// ... lines of code .... (Line 243)
		config := Config{}
		if c.String("c") != "" {
			err := parseJSONConfig(&config, c.String("c"))
			checkError(err)
		}

		config.LocalAddr = c.String("localaddr")
		config.RemoteAddr = c.String("remoteaddr")
		config.Key = c.String("key")
		config.Crypt = c.String("crypt")
		config.Mode = c.String("mode")
		config.Conn = c.Int("conn")
		config.AutoExpire = c.Int("autoexpire")
		config.ScavengeTTL = c.Int("scavengettl")
		config.MTU = c.Int("mtu")
		config.SndWnd = c.Int("sndwnd")
		config.RcvWnd = c.Int("rcvwnd")
		config.DataShard = c.Int("datashard")
		config.ParityShard = c.Int("parityshard")
		config.DSCP = c.Int("dscp")
		config.NoComp = c.Bool("nocomp")
		config.AckNodelay = c.Bool("acknodelay")
		config.NoDelay = c.Int("nodelay")
		config.Interval = c.Int("interval")
		config.Resend = c.Int("resend")
		config.NoCongestion = c.Int("nc")
		config.SockBuf = c.Int("sockbuf")
		config.KeepAlive = c.Int("keepalive")
		config.Log = c.String("log")
		config.SnmpLog = c.String("snmplog")
		config.SnmpPeriod = c.Int("snmpperiod")
		config.Quiet = c.Bool("quiet")
// ... lines of code .... (Line 274)

I don't know if you've noticed the difference, but the one I proposed obviously follows more logic.

Those are the projects we are working on
https://github.com/w1ndy/kcptun-plugins
https://github.com/PantherJohn/kcptun-plugins

https://github.com/xtaci/kcp-go/issues/107

@xtaci

i think you can just give up specifying -c  or specifying an empty json file

@xtaci Thanks. You made my day.


added null check for buttons title in options

Hi!
Thanks for your great library!
We found one strange bug which occur if
takePhotoButtonTitle == null and
chooseFromLibraryButtonTitle is less than 10 symbols plus is assigned dynamically (from texts system)
The reason is difference in serialization of strings with different length.
In details explained here:
http://stackoverflow.com/questions/33105750/nsjsonserialization-generating-nscfstring-and-nstaggedpointerstring
To solve this we added explicit check that takePhotoButtonTitle and chooseFromLibraryButtonTitle are not null

This seems fine, but why would takePhotoButtonTitle or chooseFromLibraryButtonTitle ever be null unless the user explicitly set them to null? We give them default values in the JavaScript module. With your fix, if the user did explicitly set them to null nothing would happen when clicked. I'm assuming you are just trying to prevent a crash but I think it's safe to assume that these should just never be null because it would provide a bad experience anyway.

User can disable takePhotoButton if set takePhotoButtonTitle=nullin options.
That's what we are doing (because we need possibility to choose picture only from Gallery and not with camera)
And we set it to null - so this action will not be shown (it will not add this UIAlertAction  in showImagePicker):
if (![takePhotoButtonTitle isEqual:[NSNull null]] && takePhotoButtonTitle.length > 0) {
        UIAlertAction *takePhotoAction = [UIAlertAction actionWithTitle:takePhotoButtonTitle style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
            [self actionHandler:action];
        }];
        [self.alertController addAction:takePhotoAction];
    }

Well it sounds like you don't need the picker at all! If you only want to choose from gallery you should build your own action button and then use ImagePicker.launchImageLibrary(options, (response)  => {}); directly.

Yeah, thanks :)
That's a good idea
But I think we need to add this check into code. Otherwise, other users can face the same problem because:

In showImagePicker method we are checking ![takePhotoButtonTitle isEqual:[NSNull null]].
It can be useful for example if you need to generate ImagePicker buttons dynamically (and sometimes pass null to not show button).

But in actionHandler such check was not performed. So it could lead to uncaught exceptions in Native code and crash of the app without a possibility to catch it from JS code.
Because when we check isEqualToString: someString and this someString has the type of NSTaggedPointerString and is null - we receive an uncaught exception.

"It can be useful for example if you need to generate ImagePicker buttons dynamically (and sometimes pass null to not show button"
I disagree. No one should be passing null. Like I said, if people do not want to be showing certain buttons then they should not be calling showImagePicker. The launchImageLibrary and launchCamera convenience methods were provided for exact that reason - you can build the UI however you'd like and then access the underlying functionality.


Add unfoldM, to go with the same addition to conduit

Closing for now, due to issues mentioned in comments.


docs: fix typo snowflake

Checklist

[x] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[ ] Links to related issues (if applicable)
[ ] Tests for the changes have been added/updated (if applicable)
[x] Docs related to the changes have been added/updated (if applicable)

superseded by https://github.com/datahub-project/datahub/pull/4505


Consider optimistic handling of schema metadata

Stargate services often use the following pattern:

get the schema metadata, for example with StargateBridgeClient.getKeyspace()
build a DML query based on this schema
execute that query

The current implementation of getKeyspace() (v2.0.0-ALPHA-11) uses a cache, but it sends a background gRPC query to check that the metadata is still up to date. We use DescribeKeyspaceQuery.hash to optimize the happy path when nothing has changed (by sending an empty response), but that's still an extra network hop.
We could save that call with an optimistic approach:

the client builds its query based on its current version of the metadata
it sends the query, keyspace name and keyspace hash to the bridge
if the hash is up to date, the bridge returns the response
otherwise:

the bridge sends a special response that contains the new keyspace metadata
the client rebuilds the query based on the new metadata, and retries
the client updates its cache

This retry process could be abstracted behind a new StargateBridgeClient method:
Response executeQuery(String keyspaceName, Function<CqlKeyspaceDescribe, Query> query)

As a first step, we can implement a dummy version of that method (based on the current ones, no actual retries) and evaluate the impacts on the service code:

do all cases fit the trivial scenario above?
how does it affect readability?
do we also need this for batches? (probably for docs)

Then we can add the actual implementation, which will require a new gRPC call.

What would the "failing" case look like then and how would the users of the client recover from the situations where the schema did change? Seems like in all cases where the execute query is called, it would require such a retry scenario?


Math functions

Sass should at a minimum have feature parity with Less when it comes to mathematical functions.
These are sorely missing from Sass:

sqrt
sin
asin
cos
acos
tan
atan
pi
pow
mod

I thought this was the proper repo to file such feature requests? sass/sass#851 hasn't had any activity in 2 years, and the repo description says:

After 26 March 2019, this repository's history will be deleted.

The code in sass/sass has been copied to sass/ruby-sass. That code history will be deleted and that repository will be merged with this one. See https://github.com/sass/sass/issues/2480 for details. At present, we're using sass/sass for most feature discussion, and sass/language just for discussion of the proposals which are included here.

sass/sass#851 hasn't had any activity in 2 years

Sass is a large project with few resources behind it and a lot of work to do. It can take a long time to get around to any given issue.


Debug control for supervisor domains

Root supervisor domain manager should be able to control which supervisor domains are allowed to be debugged.
Initial debug configuration for a supervisor domain is expected to be derived from some configuration/manifest (and optionally reported as part of attestation) -- and then enforced by the root domain manager via this debug control.
Debug state of the Root supervisor domain manager itself is expected to be gated by the platform RoT (and also optionally reported as part of attestation).

The proposed change to support this is to add a "debugEnabled" control bit into the Smsdid CSR

10/3 - this topic is discussing external debug (not self-hosted debug).
Base Threat model:

Debug is disabled by default and has to be opted-into via explicit authorization at some point in the system reset sequence.
[Any keys derived for attestation/sealing takes the external debug state (enabled/not-enabled) into account]
If debug is disabled, then it cannot be enabled without a system reset (typically through the RoT).
Corollary - debug module is in the TCB to establish debug state before root domain manager is initialized.

(Open) Expand to include Tracing.
(Open) Performance monitoring - self hosted is ok/contained within supervisor domain. PMU events controlled by external event monitors should be treated same as debug.
(Exists) Root domain manager is able to disable hart instruction counters to prevent leakage of info across SDs.
Separate controls or one control for external debug/trace/perf "opt-in/allowed/capability"?
Some SD use cases may need separate allowed controls/policies. for CC, one control is deemed enough (separate works also). does not need to be an atomic control since the capability is not effective until the SD is entered.

We have a new TG for this issue. The proposed charter aims to target both Smmtt and WorldGuard: https://github.com/riscv-admin/external-debug-security/blob/main/CHARTER.md
You can find the proposal draft here (it will be migrated to RISC-V git repo): https://github.com/joxie/riscv-debug-security/blob/main/spec/Secure Debug Proposal.md
According to proposed draft, mdbgsec CSR is a machine mode CSR, which control external debug and trace enables per privilege level. It can be re-configured during context switch between supervisor domains. Does it matches with your aim here, @rsahita ?
To prevent M-mode TCB, there is an plan to add lock feature as discussed here: https://github.com/joxie/riscv-debug-security/issues/9

11/28 - "debugAllowed" per supervisor-domain can be firmware state managed (and will need to be part of the attestation state of the SD).  However M-mode does not have control over external debug state machine - so the input into this FSM has to come via a configuration bit that feeds into the external debug state machine.
We propose to add this configuration bits per SD in the M-mode CSR: "msdcfg" CSR (which currently also holds Smsdia configuration for SDs).

@gokhankaplayan please see discussion from today above.

Let me give the answer with respect to the proposed secure debug draft:

thanks - some opens - Where would the opt-in policy per Supervisor domain be stored - does that become a software convention?

It is not stored per supervisor domain. mdbgsec CSR has opt-in policy per privilege level (U/VU/VS/HS/M). The current draft relies on context switch between domains. The debug policy for each supervisor domains is known by M-mode software.

and to confirm - the debug controls for the Supervisor domain (HS/S(V)/U(V) are activated when the supervisor domain is entered via MRET?

Yes, they will be activated when entered via MRET.

Resolution: We propose to add this configuration bits per SD in the already proposed M-mode CSR: "msdcfg" CSR (which currently also holds Smsdia configuration for SDs).

Why do you think opt-in debug policy per SD is required in a CSR? In other words, why is context switch not good enough? This topic has discussed here: https://github.com/joxie/riscv-debug-security/issues/9. But, we could not elaborate about the reasoning. If you give us more reasoning, per ID opt-in policy can be also added to mdbgsec CSR?

@rsahita the current external debug security draft provides one register (M-mode) for root domain to control external debug for every SD, that assumes existence of a manifest for each domain with debug policies and other configurations. The manifest needs to be attested and stored in root domain memory and root domain manager will need to reprogram mdbgesc with debug policy when switching supervisor domain.
If my understanding to above proposal is correct it is to add an index to msdcfg to select which policy to use, similar to SDICN, correct? Looks like you also assume that the policy comes from an external hardware component that outside of the hart?
If that's the case then we can make it work.
We may need to simplify the proposal to just differentiate M and sub-M though.

The proposal is as follows:

The msdcfg CSR contains the sdedbgen bit that controls whether the current scheduled SD is external debug enabled. This bit is context switched (along with rest of the msdcfg) per SD. The medbgen is a external debug enable for the M-mode driven by the debug module and is established by the RoT. When privilege is M, the medbgen gates the haltreq_i from the debug module and if is 0 prevents the hart from entering debug mode. When privilege is less than M, the OR of the sdedbgen and medbgen gates the haltreq_i from the debug module and the hart will enter debug mode if either is 1.
The configuration for sdedbgen is obtained from the manifest of the SD and is managed by the M-mode monitor in secure memory.
The external debug security extension will need to define the full rules around what is allowed in debug mode. When medbgen is 1, there are no restrictions. When medbgen is 0 but sdedbgen is 1, then the debug mode may be entered but has to have restrictions such as M privileged CSR accesses are prohibited and Memory accesses by instructions executed in debug mode cannot use M privilege. When medbgen is 0 and sdedbgen is also 0, then the rules around triggers configured with action=1 that may fire - such as always cause breakpoint exception.

@ved-rivos's proposal is very similar to the secure debug proposal draft. I believe there are more details in this proposal about the debug behaviours: https://github.com/joxie/riscv-debug-security/blob/main/spec/Secure Debug Proposal.md
The difference is that medbgen is in Debug Module and managed by root of trust. Whereas M-mode external debug enabled is in a core CSR mdbgsec and managed by a M-mode secure monitor. I believe other differences are just about naming.
If we can align together in a meeting (Smmtt TG meeting or Secure Debug Proposal TG Meeting), we can merge the proposals.

Maybe I am wrong, but I think msdcfg is corresponding to mdbgsec in current external debug proposal.
medbgen looks more like system level debug enable/disable nob, maybe more accurate to say, it can be from authentication module or fuse block or even root of trust engien etc.
From very high level, I think the proposal makes sense, there're some differences need to be addressed.

It may be better to perf-hart split debug control nob to a separate CSR because we want debug security to be able to function with and without Smmtt
The per-domain enable/disable nob as a whole makes perfect sense, now external debug security proposal has finer control granularity (V)U/(V)S/M, it may make sense to simplify the proposal to just M and sub-M. @gokhankaplayan what do you think

@joxie, I agree with you about simplifying the proposal to M and sub-M. There is no use for more granular debug control.

medbgen as shown is an external signal and can be driven by the authentication module or fuse block or RoT - thats why its shown as originating from the debug module. The msdcfg is not related to MTT - it holds configurations related to a supervisor domain. Whether the SD uses MTT or PMP for memory access control is orthogonal. The supervisor domain specific configurations held in msdcfg - including the external debug policy - are context switched per SD.

In order to compare the proposals, I drew the above diagram for External Debug Security TG proposal. I hope it reflects the latest consensus with @joxie.
External debug enables of M-mode and Supervisor Domains are controlled by mdbgsec CSR. M-mode debug enable (mdbgen) has a lock bit for M-mode TCB. The default value of debug enable after reset is determined by SoC System, which is typically life-cycle fuse. The debug authentication, which interacts with DM registers (authenticated/authbusy/authdata) is considered orthogonal with the privilege based control.
Debuggability in M-mode can be granted differently. E.g.  ROM and Non-ROM code in M-mode can be isolated in terms of debuggability. I think the approaches to this use case are different in two proposals.

As a result of joint meeting of Smmtt TG and Debug Security TG-12/11/2023, the consensus is that there is machine mode debug enable should not be part Core CSR. Only supervisor domain debug enable will be part of a Core CSR.

As a result of joint meeting of Smmtt TG and Debug Security TG-12/11/2023, the consensus is that there is machine mode debug enable should not be part Core CSR. Only supervisor domain debug enable will be part of a Core CSR.

I think the concern is not M-mode debug enable being part of core CSR, but that the user have only supervisor mode debuggability cannot potential alter the debuggability of M-mode (e.g. by glitching or ROP etc.).
The scheme posted by @gokhankaplayan looks promising. We could enforce different policy in lifecycle with the default value in mdbgsec (by fusing or authentication).

mdbgen
mdbgen_lock
sdbgen

ROM debug phase
1
0
0

Secure monitor debug phase
0
0
0

Sub-M debug phase
0
1
0

In ROM debug phase, we could debug from the very beginning of ROM, because the chip is still in control of vendor. After this phase, the secure monitor could be debugged in a relatively trusted environment and the ROM could enable debug for secure monitor after it secure itself with PMP for example. Lastly, when the product is shipped, the M-mode debuggability is locked forever and secure monitor is responsible to manage sub-M mode debuggability.

the ROM could enable debug for secure monitor after it secure itself with PMP for example

The issue is about the above statement. Instead of ROM itself, HW RoT should enable debug for secure monitor. Therefore, mdgben should not be part of Core CSR.
As far as I understood It is potential security leak for privilege escalation attacks. The security experts in this group can clarify the security leak better than me.

the ROM could enable debug for secure monitor after it secure itself with PMP for example

The issue is about the above statement. Instead of ROM itself, HW RoT should enable debug for secure monitor. Therefore, mdgben should not be part of Core CSR.
As far as I understood It is potential security leak for privilege escalation attacks. The security experts in this group can clarify the security leak better than me.

That's correct. Basically we are saying M mode control should rely on a higher entity on CoT, either RoT or HW.

Please also see the requirement SR_GEN_007 in the RISC-V security model

I am thinking if we move it out of CSR and keep only one signal mdbgen to control machine mode debuggability, we might lose the capability to manage life-cycle of machine mode code. What about we have HW CoT/RoT to determine the default value of mdbgen_lock and mdbgen? In this way, the M-mode debugablility is still in control of HW CoT/RoT, and there still the chance for different actors to manage lifecycle when HW RoT/CoT unlocks M-mode.
BTW,  CSR scales well if we have large amount of harts.

Revisited the idea of moving mdbgen out of CSR. Agree it will cover more larger range of use cases with RoT inside the hart or outside the hart.

I think we could mandate a sideband signal in external debug spec coming from external to control machine mode debugability. Moreover, in order to meet SR_GEN_012 in RISC-V security model, the sideband signal should be clamped/locked until reset.  Besides, since there is only one bit left in CSR per hart, it might be more economic to group it in mseccfg (0x747 on RV64).

Please see PR 20 @joxie @gokhankaplayan @ved-rivos

The current proposal has only a knob in CSR to enable debuggability for supervisor mode. It will result in privilege escalation if a domain has  only U-mode application (e.g. PENGLAI TEE architecture). This choice of U-mode only domain might reduce overhead of context switch (without save/restore S-mode context).

There are tow direction to mitigate:

In addition to S mode knob, add another U mode knob.
Mandate that the SW has to add a thin layer of S mode runtime to enable self-hosted debug

merged #20 (i think the above comment from Jin is a separate issue - if required please open it separately Jin)


Adding gpt-2 large (774M parameters) model

Per request #1061
Also, fix a small restriction in a few conversion scripts (easier loading from original JSON configuration files).

Oops @LysandreJik forgot to add it in the list of pretrained models of the doc

@thomwolf Added it with 2f93971

You're the best!


Fixes workbox dependencies

cc @jeffposnick @philipwalton (didn't open an issue since both the problem and fix are relatively straightforwards)
Description of what's changed/fixed.
The workbox-webpack-plugin is trying to access the babel-runtime package (because it gets transformed using babel-plugin-transform-runtime), which isn't declared in its dependencies. As a result package managers offer no guarantee as to which version will be provided, or even if babel-runtime will be installed at all.
This diff simply adds the dependency that's missing, based on what I found in the package-lock.json at the root of the repository.

Thanks—this is something that I caught when doing a dependency update sweep in preparation for our v4 release: https://github.com/GoogleChrome/workbox/pull/1658/files#diff-d9674ca55441128e3145e9552ce61a71R31
I believe that we were getting by because workbox-build was pulling in the babel-runtime package implicitly, but it's obviously preferable to have it explicitly listed, as it should be in that PR.
My personal preference would be to just defer to that upcoming change in v4 unless this is something that is actively causing a failure for you with the current v3 release.

I noticed it while working on https://github.com/facebook/create-react-app/pull/5136, which adds support for Plug'n'Play to create-react-app. Since package boundaries are enforced under this environment, it throws an error:

Gotcha—Okay, we can merge this in for a 3.6.2 release given that.

Thanks—I was just going to ask about the depcheck 😄

Coverage remained the same at 86.079% when pulling debb46f53015ca59266e4612265bc755702a1179 on arcanis:fixes-workbox-dependencies into 361246146e5ebe38e2376ff32403dcd9e0934a02 on GoogleChrome:master.

3.6.2 is out with the fix: https://github.com/GoogleChrome/workbox/releases/tag/v3.6.2
Thanks again!


⚠ Quirk Club Argentina (API endpoint) has degraded performance

In 65ea65d, Quirk Club Argentina (API endpoint) (https://us-central1-quirkclub-dev.cloudfunctions.net/api/check/api) experienced degraded performance:

HTTP code: 200
Response time: 12363 ms

Resolved: Quirk Club Argentina (API endpoint) performance has improved in 30a345c after 10 minutes.


Remove PhEDEx related code from MSTransferor

Impact of the new feature
ReqMgr2MS - MSTransferor
Is your feature request related to a problem? Please describe.
Code will become much more readable, maintainable and robust once we can remove all the PhEDEx related logic from MSTransferor.
Describe the solution you'd like
Stop supporting PhEDEx-based input data placement, thus removing all the related code from MSTransferor.
Once we clear that up, applying Rucio-related optimizations will be much easier.
Describe alternatives you've considered
The only alternative would be to wait a little longer for this, like wait until Dec/2020...
Additional context
none

Duplication of https://github.com/dmwm/WMCore/issues/9995


disable LA on sgx1 machine

[load_qe ../qe_logic.cpp:641] Error, call sgx_create_enclave QE fail [load_qe], SGXError:4004.
Error:  sgx_qe_get_target_info() with error code 0xe035
[load_qe ../qe_logic.cpp:641] Error, call sgx_create_enclave QE fail [load_qe], SGXError:4004.
Error:  failed to get QE's target info e035
Error:  failed to verify evidence 0xa000e035
Error:  failed to verify certificate extension 0xa000e035
failed to negotiate 0x907fffff

https://github.com/alibaba/inclavare-containers/pull/839/checks?check_run_id=2429429745

@liying-000 Please track this issue.

Duplicated to https://github.com/alibaba/inclavare-containers/issues/827


Fixed #27 issue

Fixed: https://github.com/hellogerard/jobby/issues/27

Thanks! Should be in next release.


Error: lxml.etree.XMLSyntaxError: Input is not proper UTF-8, indicate encoding !

Describe the bug
Getting the following error, when attempting to dump config on 1 out of 40 devices.
lxml.etree.XMLSyntaxError: Input is not proper UTF-8, indicate encoding !
Bytes: 0xCD 0xCD 0xCD 0xCD, line 693552, column 14

To Reproduce
Steps to reproduce the behavior:

Your script

import sys
from scrapli_netconf.driver import NetconfDriver
from settings import HOST
from settings import USERNAME
from settings import PASSWORD

device = {
    "host": HOST,
    "port": 22,
    "auth_username": USERNAME,
    "auth_password": PASSWORD,
    "strip_namespaces": True,
    "transport": "paramiko",
    'timeout_socket': 180,
    'timeout_transport': 180,
    'timeout_ops': 180,
}

connection = NetconfDriver(**device)
connection.open()
config = connection.get_config(source="running")

What you're connecting to (vendor, platform, version)
Cisco ASR 9903 Router

Stack Trace
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File ".../lib/python3.11/site-packages/scrapli_netconf/driver/sync_driver.py", line 177, in get_config
response.record_response(raw_response)
  File ".../lib/python3.11/site-packages/scrapli_netconf/response.py", line 114, in record_response
    self._record_response_netconf_1_1()
  File ".../ccd/lib/python3.11/site-packages/scrapli_netconf/response.py", line 267, in _record_response_netconf_1_1
    self.xml_result = etree.fromstring(
                      ^^^^^^^^^^^^^^^^^
  File "src/lxml/etree.pyx", line 3257, in lxml.etree.fromstring
  File "src/lxml/parser.pxi", line 1916, in lxml.etree._parseMemoryDocument
  File "src/lxml/parser.pxi", line 1803, in lxml.etree._parseDoc
  File "src/lxml/parser.pxi", line 1144, in lxml.etree._BaseParser._parseDoc
  File "src/lxml/parser.pxi", line 618, in lxml.etree._ParserContext._handleParseResultDoc
  File "src/lxml/parser.pxi", line 728, in lxml.etree._handleParseResult
  File "src/lxml/parser.pxi", line 657, in lxml.etree._raiseParseError
  File "<string>", line 693552
lxml.etree.XMLSyntaxError: Input is not proper UTF-8, indicate encoding !
Bytes: 0xCD 0xCD 0xCD 0xCD, line 693552, column 14

OS (please complete the following information):

OS: [e.g. Ubuntu, MacOS, etc. - Note scrapli_netconf is not supported on Windows]

OS: Ubuntu
paramiko           3.3.1
scrapli            2023.7.30
scrapli-netconf    2023.7.30

👋 thats an exception coming from lxml -- there was an older similar (I think) issue in #18 -- but iirc adding recover=true in the xml parser solved this. do you have some special characters or something in a description or anywhere else in the config/whatever you are fetching? can you get the raw xml and share that and/or try to parse it w/ lxml?

Thanks for the reply...
Running with debug, the scrapli.log file doesn't contain any 0xCD characters.
As I'm not calling lxml directly.  Where does recover=true, get added?

you won't see 0xCD - I think its a Í character. that in your config somewhere? recover is already set here. basically you have bad utf-8 and lxml barfs is all I know :D. if you share the config/section with it if you can narrow it down I can look more.

I don't see any 0xCD characters in the scrapli.log file.
Here's the script I used to check...
import collections
INFILE = 'scrapli.log'
count = collections.Counter()
file = open('scrapli.log', "r", encoding="utf8")
for line in file.readlines():
    for c in line:
        count[ord(c)] += 1

for character in sorted(list(count)):
    print(chr(character), hex(character), count[character])

And the output...
 0xa 31
  0x20 4722323
" 0x22 67358
# 0x23 84
$ 0x24 21
% 0x25 18
& 0x26 3517
' 0x27 2264
( 0x28 1
) 0x29 1
* 0x2a 725
, 0x2c 1987
- 0x2d 1142489
. 0x2e 54998
/ 0x2f 637537
0 0x30 195958
1 0x31 157047
2 0x32 162970
3 0x33 91363
4 0x34 72590
5 0x35 50253
6 0x36 68506
7 0x37 46161
8 0x38 41468
9 0x39 50723
: 0x3a 51588
; 0x3b 2356
< 0x3c 911621
= 0x3d 40456
> 0x3e 911625
? 0x3f 3292
A 0x41 60186
B 0x42 61988
C 0x43 48109
D 0x44 6171
E 0x45 31103
F 0x46 5754
G 0x47 4540
H 0x48 6851
I 0x49 42568
J 0x4a 16
K 0x4b 5033
L 0x4c 51689
M 0x4d 13342
N 0x4e 15940
O 0x4f 70771
P 0x50 30980
Q 0x51 70
R 0x52 48437
S 0x53 77022
T 0x54 69314
U 0x55 5068
V 0x56 2885
W 0x57 8296
X 0x58 37344
Y 0x59 4012
Z 0x5a 2065
[ 0x5b 2
\ 0x5c 696829
] 0x5d 10
_ 0x5f 105856
a 0x61 905516
b 0x62 259167
c 0x63 641554
d 0x64 438664
e 0x65 1278656
f 0x66 163565
g 0x67 405619
h 0x68 134243
i 0x69 1006020
j 0x6a 65
k 0x6b 8465
l 0x6c 307484
m 0x6d 391167
n 0x6e 1798103
o 0x6f 686758
p 0x70 460465
q 0x71 44812
r 0x72 713269
s 0x73 681472
t 0x74 1096392
u 0x75 277475
v 0x76 266947
w 0x77 98141
x 0x78 91233
y 0x79 209217
z 0x7a 73
| 0x7c 100

you're going to be much better off just dumping a breakpoint in the response somewhere around here.
I cant really do much other than say that the char is in there somewhere and lxml doesnt like it. I dunno if the writer object just handles/normalizes the char and thats why it's not in the log or something like that (an interesting side quest perhaps). if you breakpoint there and snag the output and share that I think that will be much more useful since its right before the issue occurs and should be fairly clear whats up (and maybe/hopefully easy to fix? but no promises, esp as lxml is the one complaining not scrapli)

gunna close this for now. holler if ya can get us some more info and we can figure out what's what!


Use stable file paths in scalac actions

Description
This PR follows same pattern for temp files as java_library does when it compiles sources.
For each target create a working directory target-bazel-out/_scalac/target-name containing:

classes - this is where compiled scala code and resources goes before packaging into jar
sources - this is where srcjars are extracted and each one has it's own directory named as srcjar file
eg. target-bazel-out/_scalac/target-name/sources/srcjar-file-name

Working directory is deleted if it exists and new one is created.
Motivation
Solves https://github.com/bazelbuild/rules_scala/issues/1311
Thought we don't know when and why scalac embeds source file paths into class files.
Also fixes minor annoyance when tmp folders keep accumulating when srcjars are used.
This is not a big issue but sometimes makes debugging harder.

Any news on this?
Can I help with moving it forward?


Revert "Add GitHub fork me ribbon"

Found two issues:

Not appearing on homepage
Blocking out side menu items and mobile menu button on smaller screen sizes

whoop O_O
good pulling this back out quickly :)
Sorry I didn't specify my type of code review - I liked the implementation but I hadn't tested it :x


No inverse for data definition constructors with field validation functions

When defining a data definition with field validation functions it is not possible to °New the structure:
# Experimental!
~Foo {A: °0type|B: °0type}
°Foo Foo 7 42

Error:
Error: Inversion failed: cannot invert New because no inverse found
  at 3:1
3 | °Foo Foo 7 42
    ─

If the constructor does not contain any field validation functions this works as expected:
# Experimental!
~Foo {A B}
°Foo Foo 7 42

Output:
42
7

@kaikalii this still doesn't work when using [] instead of {}:
# Experimental!
~Foo [A: °0type|B: °0type]
°Foo Foo 7 42


TOFFEE CRUSH

🎮 Game Request
I have  created Toffee Crush using HTML, CSS, and JavaScript. Here the user would get to play a game which is similar candy crush .
there would be options like  swap candy pieces, crush candy pieces, and generate new ones.
I have already started working in this and I need the help of your game zone to publish it

Point down the features
Match-3 Gameplay: The core mechanic should involve matching at least three candies of the same type in a row or column.
Level-based Progression: Design a progression system with multiple levels of increasing difficulty and different objectives
Select program in which you are contributing
GSSoC23
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @766athul !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

/assign

Hey @766athul 👋!
@kunjgit here,
We have this annoucement to make 📢!!
We have updated our README 🚀
Make sure you follow proper guideline to raise your next issues !!
Make sure you join our Discord🕹 if you haven't 😇
Thank you 💗!


Access data from removed components

What problem does this solve or what need does it fill?
When removing components (or despawning entities with those components), we often want to perform cleanup. Unfortunately, this work typically requires data from that removed component, rather than just the entity that was returned. See our example for the current behavior.
What solution would you like?
Store the Removed data in a special "purgatory" sparse set that we keep around until the frame-after-next, using the same double-buffer strategy as Events.
What alternative(s) have you considered?
Write custom commands to remove components that require cleanup, like despawn_recursive. This is hard to extend though and forces the user to not clean stuff up.
Always emit a "to despawn" event, and then clean things up before the data is lost by making sure that the cleanup systems run first.
Users manually archive and then access the components that they need to access once removed.
Additional context
Relevant to how we despawn entities in a parent-child hierarchy, e.g. despawn_recursive.
We will need to do the same thing with Resources as well.

Thought: rather than moving the data at all, we could use a Removed flag, ala change detection. By default, entities with this flag are always excluded from queries. You can access them by including Removed<T> in your query filter.
Then, only actually remove the data at the end of the frame after they were removed, with no copying required. Build off of #1471.

I think storing removed components in a SparseSet is good if "removal tracking" is opt-in, but it seems overly expensive as a default.
An option that has zero cost(*) that I've proposed previously: both storage types do a "swap remove", which leaves removed components packed at the end of the component storage vector (ex: len <= index < capacity). Provided new values aren't written to that space (ex a new component is added) and we track the number of removed components, we can assume that these indices contain the removed component values.
For correctness, we need to ensure that components removed directly (ex: let x = world.remove::<T>(entity).unwrap()) are not exposed in this way (which will complicate state management).
(*) this is not actually zero cost in all cases. it opens up the doors to "allocation garbage" if components are removed, then other components are spawned in the same frame. We can't reuse the existing capacity, so we need to allocate new space, then do a "swap insert" to ensure "active" components are packed at the front of the vec.

Thought: rather than moving the data at all, we could use a Removed flag, ala change detection. By default, entities with this flag are always excluded from queries. You can access them by including Removed in your query filter.

This is reasonable, but it means that all queries need to incur the cost of per-entity "filters" to check for the removed flag. I'm assuming Unity pays this cost as they use flags to temporarily remove components (which means there is precedent in a widely used ECS), but I'm still a little hesitant to do it.

This is reasonable, but it means that all queries need to incur the cost of per-entity "filters" to check for the removed flag. I'm assuming Unity pays this cost as they use flags to temporarily remove components (which means there is precedent in a widely used ECS), but I'm still a little hesitant to do it.

Does query caching save us here? My intuition is that in most cases this is a one time cost.

I'm assuming Unity pays this cost as they use flags to temporarily remove components

@BoxyUwU was telling me that this feature was also present in Shipyard, and very useful there. It looks like they return the removed component if it existed; which isn't a great choice for our model.

Does query caching save us here? My intuition is that in most cases this is a one time cost or a twice-per removal cost.

Nope. We cache archetype and table matches, not entity matches (which would be too expensive to justify)

@BoxyUwU was telling me that this feature was also present in Shipyard, and very useful there. It looks like they return the removed component if it existed; which isn't a great choice for our model.

It looks like that api does "actual removes" just like we do:
https://docs.rs/shipyard/0.4.1/src/shipyard/remove.rs.html#140
https://github.com/leudz/shipyard/blob/cd208b6cba3395986b4a9948eab5ab21f9cfe24a/src/sparse_set/mod.rs#L219

Shipyard does provide this functionality just not through regular removes. In shipyard when you remove a component it returns it immediately. But you can also delete a component to not have it returned immediately and then later iterate over deleted components. Components on despawned entities are considered "deleted". I believe in shipyard deletion tracking is opt-in but this would all be fine for the use-case I need this for.

Solved when #10756 is merged.

#10756 has been merged and component hooks do provide a way to access the data in a removed component before it's removed from the World.


Admin page

title & desc editing
variants editing
order locking
solver choice
edit/remove orders
clear/reset
pieces per pizza

Pizza Variants as Drop down: only "classic" for now
Solver as Drop Down
Combination of Variants & Solver determines required order format -> if changed maybe invalidates orders

Stats


openai: use ollama in test

Ollama has some support for openai emulation and could be a nice way to support more tests without requiring an API key or a public endpoint. This might be a nice way to extend coverage of the openai, which could also run relevant versions of the tests also in the ollama llm package. What do you think?
e.g. Some test configuration could work when OPENAI_API_KEY is not set, but OLLAMA_TEST_MODEL is.
	llm, err := openai.New(
		openai.WithBaseURL("http://localhost:11434/v1"),
		openai.WithModel(ollamaModel),
		openai.WithToken("unused"),
		// openai.WithHTTPClient(httputil.DebugHTTPClient),
	)

for test, I think that use testcontainer with ollama, but I need try it.

yep you can use testcontainers or use a system managed one. If you are using small models the perf hit of running via containers may not be a big deal.

@devalexandre there is an Ollama module for Go: https://golang.testcontainers.org/modules/ollama/ 😉

fyi if you are doing multiple tests or ones where the completions aren't quick, could be simpler to use system managed. here's an example of that in practice and it works https://github.com/block/goose/blob/49a30b4d22329e10262128d08aab03964f910d9f/.github/workflows/ci.yaml#L52-L100

I'm going to submit a PR for this, will link to this issue once ready


Question about the implementation

Thanks for the inspiring work! I have a question about the implementation of the rbp.
While in original derivation,
$v=\frac{\partial L^Q}{\partial W_b}$ (line 14 in Alg. 1), where $W_b$ is the classifier weight before dummy GD, the implementation
https://github.com/renmengye/inc-few-shot-attractor-public/blob/master/fewshot/models/rbp.py#L40 seems to compute the gradient w.r.t. classifier weight after dummy GD. Is there any problem?

Hi, there shouldn't be problem with compute the gradient after the dummy GD and in fact it is by design. It is backproping through the dummy GD step multiple times to compute the gradient of the converging process.


Fix the npm task error

What about to move the verifyExternalLinks from the app folder to script folder? I guess we don't need this file in the app, right? Or am I missing something?


feat: change the default of use_legacy_format from True to False

This is a fairly small change code-wise but has significant meaning in terms of support.
I think the v2 format is at a point where:

We have dog-fooded it enough that we have confidence it works
We can commit to supporting backwards compatibility as we improve the format

This doesn't mean things are final.  There are still considerable changes to come, especially with how we handle struct & list encodings (I'll be raising a separate issue with my intentions here).  Still, these can be handled by evolving encodings (e.g. we may need "simple struct" to continue even if we add a new "zipped struct" (or whatever)).
This does mean there will be some maintenance going forwards.  We will need to ensure that files written today continue to be readable even in future versions.

Maybe we could state something like "files written in version X will remain readable in all versions released in the next year" but I think that would scare people off.
We might also want a new flag at some point that is use_experimental_encodings but I can't imagine anyone would ever turn that on (better to stick with our current strategy of enabling encodings manually with environment variables until we are comfortable with them)

Backwards compatibility

We will need to ensure that files written today continue to be readable even in future versions.

I don't think this should be too difficult. We have a folder where we keep around files written by older versions. We can have a policy that whenever we make a big change to V2, we make new dataset with old version in these files.
https://github.com/lancedb/lance/tree/main/test_data
Forwards compatibility
I'm actually more worried about forward compatibility within the context of datasets. This can be split into two questions:

If I write a dataset with Lance version X, then write to it with version X + n, will version X still be able to read it?
If I write a new dataset with version X, how many versions back will it still be readable?

For (1), I wonder if we should have some entry in the manifest for target Lance file version, and only upgrade it when explicitly requested. That way users can control the compatibility of the data. This goes against our earlier thought that users should be able to mix and match.
It would also be helpful to maintain a table of Lance library and file versions supported:

Lance File version
Library support
Default as of
Changes

1
0.0 - current
0.0

1.2
0.7.0 - current
0.14.0
Nullability

1.3
0.18.0 - current

FSST encoding for strings

If I write a dataset with Lance version X, then write to it with version X + n, will version X still be able to read it?

Not today.  Though we could have a "compatibility mode" where version X + n writes files that version X can read.

For (1), I wonder if we should have some entry in the manifest for target Lance file version, and only upgrade it when explicitly requested. That way users can control the compatibility of the data. This goes against our earlier thought that users should be able to mix and match.

I like this idea, though it is complicated.
I suppose we will need to support some kind of rolling update.  Where a fleet using the Lance format upgrades some systems but not others.  The dateset manifest would indicate we are using version X.  The updated systems are capable of writing X + n files but they see the dataset manifest and only write out version X.  Then, once all systems are upgraded, users can advance the dataset to version X + n.
We could tie this into migration.  E.g. when a user wants to upgrade to version X + n they run a migration command which rewrites all the existing files as X + n in addition to setting X + n for new files.

Closing in favor of "max writer version" which will be in a different PR


typo fix

I have noticed that repositories and developers were swapped in the shell commands in the Examples section in README.md. This pull request fixes that.

Thank you! =)