[$250] Submit expense - Tabs disappear when changing from Scan to Distance via SHIFT+TAB

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.83-0
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/4626993
Issue reported by: Applause - Internal Team
Action Performed:

Go to staging.new.expensify.com
Go to FAB > Submit expense
Go to Scan
Click on empty area on the RHP (like the empty header area)
Press SHIFT+TAB

Expected Result:
Nothing will happen
Actual Result:
RHP changes to Distance flow, and tabs (Manual, Scan, Distance) are missing
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/d86b3e9c-7d57-4722-b6ae-547be8e690f1
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0112bb5e5d8d723e7f
Upwork Job ID:<PHONE_NUMBER>232481793
Last Price Increase: 2024-07-04

Issue OwnerCurrent Issue Owner: @rayane-djouah

@tgolen  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

We think that this bug might be related to #vip-vsp

I'm demoting this one and assigning to external.

cannot reproduce in main. Offending PR: https://github.com/Expensify/App/pull/39520

Not produceable on Production and local

Proposal
Please re-state the problem that we are trying to solve in this issue.
Pressing SHIFT+TAB on the top section of the RHP updates the contents of the RHP.
What is the root cause of that problem?

The current implementation has a common FocusTrap wrapper (ScreenWrapper) for all three screens (Manual, Scan & Distance).

{* Common wrapper for all the three screens *}
<ScreenWrapper
    includeSafeAreaPaddingBottom={false}
    shouldEnableKeyboardAvoidingView={false}
    shouldEnableMinHeight={DeviceCapabilities.canUseTouchScreen()}
    headerGapStyles={isDraggingOver ? [styles.receiptDropHeaderGap] : []}
    testID={IOURequestStartPage.displayName}
>
    {({safeAreaPaddingBottomStyle}) => (
        <DragAndDropProvider
            setIsDraggingOver={setIsDraggingOver}
            isDisabled={selectedTab !== CONST.TAB_REQUEST.SCAN}
        >
            <View style={[styles.flex1, safeAreaPaddingBottomStyle]}>
                <HeaderWithBackButton
                    title={tabTitles[iouType]}
                    onBackButtonPress={navigateBack}
                />
                {iouType !== CONST.IOU.TYPE.SEND && iouType !== CONST.IOU.TYPE.PAY && iouType !== CONST.IOU.TYPE.INVOICE ? (
                    <OnyxTabNavigator
                        id={CONST.TAB.IOU_REQUEST_TYPE}
                        onTabSelected={resetIOUTypeIfChanged}
                        tabBar={TabSelector}
                    >
                        <TopTab.Screen name={CONST.TAB_REQUEST.MANUAL}>
                            {() => (
                                <IOURequestStepAmount
                                    shouldKeepUserInput
                                    route={route}
                                />
                            )}
                        </TopTab.Screen>
                        <TopTab.Screen name={CONST.TAB_REQUEST.SCAN}>{() => <IOURequestStepScan route={route} />}</TopTab.Screen>
                        {shouldDisplayDistanceRequest && <TopTab.Screen name={CONST.TAB_REQUEST.DISTANCE}>{() => <IOURequestStepDistance route={route} />}</TopTab.Screen>}
                    </OnyxTabNavigator>
                ) : (
                    <IOURequestStepAmount route={route} />
                )}
            </View>
        </DragAndDropProvider>
    )}
</ScreenWrapper>

When a click is made on the top empty area on the RHP (like the empty header area), the focus gets initiated on the common FocusTrap wrapper. Pressing SHIFT+TAB focuses the last element on the DOM tree which is the Next button of the Distance screen. (In the issue repro video, we can observe that the Next button of the Distance screen is focused)

Because of the translating nature of the Tabs component OnyxTabNavigator, the tabs (Manual, Scan, Distance) are translated to the left by 750px when the Next button of the Distance screen is focused. This is the reason behind missing of the tabs.

What changes do you think we should make in order to solve the problem?

Instead of having a common focus trap wrapper for all the screens, let's wrap each screen individually. By this approach, the focus of a screen remains trapped within the screen itself.

<TopTab.Screen name={CONST.TAB_REQUEST.MANUAL}>
    {() => (
        <ScreenWrapper
            includeSafeAreaPaddingBottom={false}
            shouldEnableKeyboardAvoidingView={false}
            shouldEnableMinHeight={DeviceCapabilities.canUseTouchScreen()}
            headerGapStyles={isDraggingOver ? [styles.receiptDropHeaderGap] : []}
            testID={IOURequestStartPage.displayName}
        >
            {() => (
                <IOURequestStepAmount
                    shouldKeepUserInput
                    route={route}
                />
            )}
        </ScreenWrapper>
    )}
</TopTab.Screen>

What alternative solutions did you explore? (Optional)
We can fix this issue also by not rendering the contents of other screens i.e. when the Manual screen is in view, the contents of the Split & Distance screens shouldn't be rendered.

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01fded0233eaf38db6

@rayane-djouah could you please provide an update here by EOD?

Proposal
Please re-state the problem that we are trying to solve in this issue.
tab key navigation is broken in create IOU request RHP
What is the root cause of that problem?
In IOURequestStartPage we disable tab key navigation by this code:
https://github.com/Expensify/App/blob/b33542383ac2cb8ea1e922aa12dd2265efccd0ab/src/pages/iou/request/IOURequestStartPage.tsx#L79-L92
Then when iouerqueststartpage rendered, all tab screen content are also rendered, which make tab key navigation jump to other tab screen.
What changes do you think we should make in order to solve the problem?
We must remove the code above that preventing tab key navigation.
Then in here:
https://github.com/Expensify/App/blob/b33542383ac2cb8ea1e922aa12dd2265efccd0ab/src/pages/iou/request/IOURequestStartPage.tsx#L154-L163
We return the content of tab screent to null if selectedTab isn't properly addressed for their screen name.

@rayane-djouah I am sorry there must be an error when I beautify the code.
please try this code:
<TopTab.Screen name={CONST.TAB_REQUEST.MANUAL}>
        {() => (selectedTab === CONST.TAB_REQUEST.MANUAL) ? (
            <IOURequestStepAmount
                shouldKeepUserInput
                route={route}
            />
        ) : null}
    </TopTab.Screen>
    <TopTab.Screen name={CONST.TAB_REQUEST.SCAN}>{() => (selectedTab === CONST.TAB_REQUEST.SCAN) ? <IOURequestStepScan route={route} /> : null}</TopTab.Screen>
    {shouldDisplayDistanceRequest && <TopTab.Screen name={CONST.TAB_REQUEST.DISTANCE}>{() => selectedTab === CONST.TAB_REQUEST.DISTANCE ? <IOURequestStepDistance route={route} /> : null}</TopTab.Screen>}

@rayane-djouah thanks for the reply. Please find the below explanation for the questions raised.

Could you clarify the cause of the current incorrect TAB navigation behavior on these "request start" pages? When the TAB key is pressed on the Manual tab, the focus is stuck on the "Next" button, and it does not shift to the tab switching buttons, currency switcher, or the back button. Additionally, when clicking on another tab and then pressing the TAB key, the focus is stuck on that tab button (e.g., the Distance button).

In contrast, the tab navigation works correctly in the assign task flow as seen here:

Irrespective of the pages, the TAB navigation behavior remains the same i.e. pressing TAB will move focus to the next interactive element in the DOM tree and SHIFT+TAB will move focus to the previous interactive element.
In assign task flow, all the interactive elements (back button, title & description input and next button) are in the same DOM tree. Hence the TAB navigation behaviour works as expected.
In the request start pages, all the tabs content (Manuel, Split & Distance) are rendered simultaneously in the same DOM tree. So the TAB navigation behavior follows the below order.

RHP's header back button
All the tabBars buttons (Manual, Split & Distance)
Interactive elements in the Manual tab such as currency selection dropdown, amount input field & Next button.
Interactive elements in the Split tab such as choose file button & so on.
Interactive elements in the Distance tab such as Start & Stop menu items, Mapbox & Next button.

Issue root cause explanation:

Clicking in the RHP header area activates the focus-trap within the RHP.
Pressing TAB focuses the first element in the above order i.e. RHP's header back button.
Pressing SHIFT+TAB moves focus to the previous interactive element in the above order i.e. from the first interactive element (RHP's header back button) to the last interactive element (Next button of the Distance tab).

In-order to have correct TAB navigation behavior, I've updated the initial proposal as follows.

Since the TAB navigation focus is already handled by focus-trap library, we can remove the below code block.

useFocusEffect(
    useCallback(() => {
        const handler = (event: KeyboardEvent) => {
            if (event.code !== CONST.KEYBOARD_SHORTCUTS.TAB.shortcutKey) {
                return;
            }
            event.preventDefault();
            event.stopPropagation();
        };
        KeyDownPressListener.addKeyDownPressListener(handler);

        return () => KeyDownPressListener.removeKeyDownPressListener(handler);
    }, []),
);

The fix for the issue is to only include the interactive elements of the focussed tab in the TAB navigation behavior order i.e. when the Manual tab is selected, the interactive elements of the Split & Distance tab should be removed from the TAB navigation tree by visually hiding them.

<OnyxTabNavigator
    id={CONST.TAB.IOU_REQUEST_TYPE}
    onTabSelected={resetIOUTypeIfChanged}
    tabBar={TabSelector}
>
    <TopTab.Screen name={CONST.TAB_REQUEST.MANUAL}>
        {(props) => (
            <View style={{visibility: props?.navigation?.isFocused() ? 'visible' : 'hidden', flex: 1}}>
                <IOURequestStepAmount
                    shouldKeepUserInput
                    route={route}
                />
            </View>
        )}
    </TopTab.Screen>
    <TopTab.Screen name={CONST.TAB_REQUEST.SCAN}>
        {(props) => (
            <View style={{visibility: props?.navigation?.isFocused() ? 'visible' : 'hidden', flex: 1}}>
                <IOURequestStepScan route={route} />
            </View>
        )}
    </TopTab.Screen>
    {shouldDisplayDistanceRequest && (
        <TopTab.Screen name={CONST.TAB_REQUEST.DISTANCE}>
            {(props) => (
                <View style={{visibility: props.navigation.isFocused() ? 'visible' : 'hidden', flex: 1}}>
                    <IOURequestStepDistance route={route} />
                </View>
            )}
        </TopTab.Screen>
    )}
</OnyxTabNavigator>

With the above update, the contents of all the tabs are never re-rendered and only the visible elements are included in the TAB navigation tree.

@vishnu-karuppusamy I think what you suggested above is similar to my proposal and it is really different with your original proposal.

@vishnu-karuppusamy - The idea of setting the hidden style to tab screen content if it's not focused is working correctly, but I think that there is a better solution than that. I think that the a better solution is to use focus trap functionality to fix this issue.
@vishnu-karuppusamy - I dont't understand something in your proposal: IOURequestStepAmount, IOURequestStepScan, and IOURequestStepDistance all have a ScreenWrapper under the hood, I don't see why we need to wrap them with a ScreenWrapper.

Yes, I'm aware that IOURequestStepAmount, IOURequestStepScan, and IOURequestStepDistance all have a ScreenWrapper under the hood. But the RHP's header section and the tab button (Manual, Split & Distance) are not a part of each page's TAB navigation DOM tree.

Proposal
Updated
@rayane-djouah Updated the below sections:

What changes do you think we should make in order to solve the problem?
What alternative solutions did you explore? (Optional)

@rayane-djouah: If, for example (just for example) the alternative proposal from @vishnu-karuppusamy is accepted, I would argue based on:
https://github.com/Expensify/App/blob/b021195b864211efbaaefe188226b2830b91b7d8/contributingGuides/CONTRIBUTING.md

After you reproduce the issue, complete the proposal template here and post it as a comment in the corresponding GitHub issue (linked in the Upwork job).
Note: Before submitting a proposal on an issue, be sure to read any other existing proposals. ALL NEW PROPOSALS MUST BE DIFFERENT FROM EXISTING PROPOSALS. The difference should be important, meaningful or considerable.

The alternative solution differs significantly from his initial proposal and closely aligns with mine.

Friendly bump @rayane-djouah 😃

@vishnu-karuppusamy - ScreenWrapper should be included on all pages by our guidelines, Also removing ScreenWrapper from IOURequestStartPage causes the elements behind the right-hand panel to be focusable:
Video
Screen.Recording.2024-06-26.at.1.18.50.AM.mov
Also, I didn't understand the purpose of the other proposed changes.

@rayane-djouah with the proposed updates, the common ScreenWrapper for all the tabs is removed. But each tab has its own ScreenWrapper which is enabled.
The major difference from the initial proposal is that we are utilizing the prop containerElements from the focus-trap-react library. In the proposal the fix is only applied for the IOURequestStartPage, if needed, I can propose the same for the chat page as well.
https://github.com/Expensify/App/assets/133900001/932f99fe-a5d2-407f-b994-be0f1043e821

@vishnu-karuppusamy - I dont't understand something in your proposal: IOURequestStepAmount, IOURequestStepScan, and IOURequestStepDistance all have a ScreenWrapper under the hood, I don't see why we need to wrap them with a ScreenWrapper.

@rayane-djouah Based on your previous reply, I thought you suggested removing the wrapping ScreenWrapper if it's unnecessary.

Any update @rayane-djouah ? 😃

@rayane-djouah Sorry for the delay here as I was OoO. I've added this to Wave Collect and will update once we have a priority there.

Cool it Melvin 😅

^^ Dammit, the sidepane jumped as I was trying to click the project. 😂

I imagine a "Polish" doesn't need to be increased, but curious your thoughts @trjExpensify 😄

I imagine a "Polish" doesn't need to be increased, but curious your thoughts @trjExpensify 😄

Agree.

https://github.com/Expensify/App/issues/43719#issuecomment-2168110266
@rayane-djouah Updated the below sections:
What changes do you think we should make in order to solve the problem?
What alternative solutions did you explore? (Optional)

Good timing @rayane-djouah - I was just typing a bump 😅 - Thanks you for updating! 😃

Issue not reproducible during KI retests. (First week)

I would like to re-assist the solutions proposed as both the solutions proposed such as hiding the in-active tabs and the use of containerElements prop in the focus-trap-react were proposed initially by me.
@rayane-djouah could you please confirm the above statement?
cc: @OfstadC

I think we should try to have tab navigation anywhere we can, so if it's
possible to re-enable tab navigation (it sounds like it), then I think we
should do it. I'll wait for ^ question to be resolved before doing anything
here though.
On Sun, Jul 21, 2024 at 2:34 AM vishnu-karuppusamy @.***>
wrote:

I would like to re-assist the solutions proposed as both the solutions
proposed such as hiding the in-active tabs and the use of
containerElements prop in the focus-trap-react were proposed initially by
me.
@rayane-djouah https://github.com/rayane-djouah could you please
confirm the above statement?
cc: @OfstadC https://github.com/OfstadC
—
Reply to this email directly, view it on GitHub
https://github.com/Expensify/App/issues/43719#issuecomment-2241527627,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJMABZ5WK76ZMN3YCTKTDLZNNXAJAVCNFSM6AAAAABJI5OZFOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENBRGUZDONRSG4
.
You are receiving this because you were mentioned.Message ID:
@.***>

Any update here @dominictb @rayane-djouah ? 😃

Thanks @rayane-djouah - since the automation failed. I'll posted the checklist below 😄

[ ] The PR that introduced the bug has been identified. Link to the PR:
[ ] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
[ ] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
[ ] Determine if we should create a regression test for this bug.
[ ] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.

Payment Summary:

@rayane-djouah paid $250 via Upwork
@dominictb paid $250 via Upwork


Add gnet

Please check if what you want to add to awesome-go-perf list meets quality standards before sending pull request. Thanks!
Make sure that you've checked the boxes below before you submit PR:

[x] I have added my package in alphabetical order.
[x] I have an appropriate description with correct grammar.
[x] I know that this package was not listed before.
[x] I'm adding a project that has value and isn't based only on my own opinion.
[x] This project/library/tool will or may improve performance in a special case.

Oops, my bad. Merged, thank you!


The indentation of {{ else }} is one level too high.

  {{ partial "counts" . }}
  {{ if .Params.module }}
    {{ $confidence := print "modules/" .Params.module "@" .Params.moduleVersion "/partials/confidence.html" }}
    {{ $feedbacks := print "modules/" .Params.module "@" .Params.moduleVersion "/partials/feedbacks.html" }}
    {{ $explanation := print "modules/" .Params.module "@" .Params.moduleVersion "/partials/explanation.html" }}
    {{ partial $confidence . }}
    {{ partial $feedbacks . }}
    {{ partial $explanation . }}
    {{ else }}
    {{ partial "confidence" . }}
    {{ partial "feedbacks" . }}
    {{ partial "explanation" . }}
  {{ end }}

Also I am not sure if this is related, but sometimes it does wrap tags in an unexpected way.

        arrow_back_iconBack to Lessons List

It's doesn't affect anything, but FYI.
Thanks
Andy

About the second wrapping, it's a prettier formatting thing.
If you put a space between the tags it'll break as you expect it to.

Ah perfect that makes sense. It's trying to not insert spaces where there were none :) cool.

The {{ else }} indentation problem seems to have come back in the latest version.
Strange, it was fine for a while now.

+1 for the {{ else }} problems. My company is looking at running prettier as a pre-commit hook on our Hugo site, but having that hook indent every single {{ else }} block in the whole repo to the wrong level would be very sad. Would love to know if a fix is in the works for this.

@LandGod this will be fixed with #49 🙉
Example:
{{ partial "counts" . }}
{{ if .Params.module }}
  {{ $confidence := print "modules/" .Params.module "@" .Params.moduleVersion "/partials/confidence.html" }}
  {{ $feedbacks := print "modules/" .Params.module "@" .Params.moduleVersion "/partials/feedbacks.html" }}
  {{ $explanation := print "modules/" .Params.module "@" .Params.moduleVersion "/partials/explanation.html" }}
  {{ partial $confidence . }} {{ partial $feedbacks . }} {{ partial $explanation . }}
{{ else }}
  {{ partial "confidence" . }} {{ partial "feedbacks" . }} {{ partial "explanation" . }}
{{ end }}

This was with printWidth: 100 inside the .prettierrc.

@LandGod the wrapping behavior comes from the chained tags. (

).
If you instead add a space between the different elements, prettier will use new lines for separation.
This is a behavior of the underlying HTML printer, not from this plugin 👀


Add uninstall test

For CI we want to use a single cluster to install and run
builds for different commits.
So the sequence would be

Push the images to the test registry
Run the install test
Run all other tests
Run the uninstall test
and maybe restart the test registry

This change adds the uninstall test

bors merge

bors merge

bors merge


Update gems (specifically to pull in net-ssh 4.0.1)

Signed-off-by: Tom Duffield<EMAIL_ADDRESS>Description
Update gems to pull in net-ssh 4.0.1 which has some fixes for HostKeyAlgorithms.
Issues Resolved

COOL-637
ZD 12361

Check List

[ ] New functionality includes tests
[ ] All tests pass
[ ] RELEASE_NOTES.md, has been updated if required (not required for bugfixes, required for API changes)
[ ] All commits have been signed-off for the Developer Certificate of Origin. See https://github.com/chef/chef/blob/master/CONTRIBUTING.md#developer-certification-of-origin-dco

This change is included in https://github.com/chef/chef/pull/5736/files


Add failing test case for reference.SplitHostname

See https://github.com/docker/distribution/pull/963/files/b07d759241defb2f345e95ed04bfdeb8ac010ab2#r66186285 for background context.
This adds a failing test case for the issue mentioned there.

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "split-hostname" git@github.com:ejholmes/distribution.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "split-hostname" git@github.com:ejholmes/distribution.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

I commented on the other discussion but will repeat this here. Currently the parser leaves such ambiguity up to the caller to resolve. We should provide better documentation and tools for handling this ambiguity. For the Docker use case, this specified case always gets canonicalized as a public image reference.
This is a good case to add since it is both a valid hostname and name component.
LGTM

@ejholmes Thanks for filing this. We are working towards incorporating a correct change here.

[Current coverage][cc-pull] is 54.72%

Merging [#1777][cc-pull] into [master][cc-base-branch] will decrease coverage by 6.90%

@@             master      #1777   diff @@
==========================================
  Files           120        120
  Lines         10455      10455
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
- Hits           6443       5721   -722
- Misses         3417       4231   +814
+ Partials        595        503    -92

[][cc-pull]

Powered by Codecov. Last updated by [75882f0...9e4f64c][cc-compare]
[cc-base-branch]: https://codecov.io/gh/docker/distribution/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/docker/distribution/compare/75882f079c9a2160af5df26c7b3a429f912b0b1d...9e4f64cf721aaee08ac2ddfe1ae2ec6330aac7c5?src=pr
[cc-pull]: https://codecov.io/gh/docker/distribution/pull/1777?src=pr

Closing in favor of #2132. Using the normalized name parser should give a result more consistent with what is used within the docker engine.


Catch changes to content better

Currently we use a debounce hook to avoid execute on change to often. However, current implementation steal focus from content editable div if you are not typing fast enough.
Improve by:

???

Dup of #11


ListView when displayed via showGeneralDialog shows gap at list start

Using showGeneralDialog in the sample code provided causes there to be a large gap before the first element and after the last element of the list. Using showDialog on displays the dialog as expected without any gaps. When running the sample app on desktop, the dialog is shown as expected without any gap.
Steps to Reproduce

Execute flutter run on the code sample
Click on show dialog button

Expected results: The dialog should look identical to the one displayed in the MyHomePage widget
Actual results: The listview in the dialog has a large gap before the first element and after the last element

Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  const MyHomePage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Sample screen'),
      ),
      body: SampleDialog(),
      floatingActionButton: FloatingActionButton.extended(
        onPressed: () {
          // uncomment to see the expected behaviour
          // showDialog(
          //   context: context,
          //   barrierDismissible: true,
          //   barrierLabel: "tests",
          //   builder: (context) {
          //     return SampleDialog();
          //   },
          // );
          showGeneralDialog(
            context: context,
            barrierDismissible: true,
            barrierLabel: "tests",
            pageBuilder: (context, animation, secondaryAnimation) {
              return SampleDialog();
            },
          );
        },
        label: const Text('Show dialog'),
      ),
    );
  }
}

class SampleDialog extends StatelessWidget {
  const SampleDialog({super.key});

  @override
  Widget build(BuildContext context) {
    return Dialog(
      child: SizedBox(
        height: 300,
        child: ListView(
          children: List.generate(
            30,
            (index) => Text(
              'test $index',
              style: Theme.of(context).textTheme.titleLarge,
            ),
          ),
        ),
      ),
    );
  }
}

Thanks for the report @flikkr
Looking at the code implementation, since you have ListView inside the dialog, it adds padding by default. See the documentation:
By default, [ListView](https://api.flutter.dev/flutter/widgets/ListView-class.html) will automatically pad the list's scrollable extremities to avoid partial obstructions indicated by [MediaQuery](https://api.flutter.dev/flutter/widgets/MediaQuery-class.html)'s padding. To avoid this behavior, override with a zero [padding](https://api.flutter.dev/flutter/widgets/BoxScrollView/padding.html) property.
So, in order to resolve the issue, you'll need to pass padding inside ListView as below which shows the expected result:
child: ListView(
          padding: const EdgeInsets.all(0),

Closing, as this is not an issue.


JAVA-3118: Add support for vector data type in Schema Builder, QueryBuilder

Currently, the SchemaBuilder works with vector like this:
    assertThat(
            createTable("foo")
                .withPartitionKey("k", DataTypes.INT)
                .withColumn("v", new DefaultVectorType(DataTypes.FLOAT, 3)))
        .hasCql("CREATE TABLE foo (k int PRIMARY KEY,v VECTOR<FLOAT, 3>)");

Or
assertThat(createTable("foo")
            .withPartitionKey("k", DataTypes.INT)
            .withColumn("v", DataTypes.custom("org.apache.cassandra.db.marshal.VectorType(org.apache.cassandra.db.marshal.FloatType,3)")
            ))
            .hasCql("CREATE TABLE foo (k int PRIMARY KEY,v VECTOR<FLOAT, 3>)");

Please let me know if you want something like .withColumn("v", DataTypes.vector(DataTypes.FLOAT, 3)).

what's the CASSANDRA ticket for this ?
i will test this downstream here:

https://github.com/spring-projects/spring-ai/blob/main/vector-stores/spring-ai-cassandra/src/main/java/org/springframework/ai/vectorstore/CassandraVectorStoreConfig.java#L551-L568
https://github.com/spring-projects/spring-ai/blob/main/vector-stores/spring-ai-cassandra/src/main/java/org/springframework/ai/vectorstore/CassandraVectorStoreConfig.java#L502-L512
https://github.com/spring-projects/spring-ai/blob/main/vector-stores/spring-ai-cassandra/src/main/java/org/springframework/ai/vectorstore/CassandraVectorStore.java#L342-L345

i can't get this to compile
[ERROR] Failed to execute goal org.revapi:revapi-maven-plugin:0.10.5:check (default) on project java-driver-query-builder: The following API problems caused the build to fail:
[ERROR] java.method.addedToInterface: method com.datastax.oss.driver.api.querybuilder.select.Select com.datastax.oss.driver.api.querybuilder.select.Select::orderBy(com.datastax.oss.driver.api.querybuilder.select.Ann): Method was added to an interface.
[ERROR]

am i doing something wrong ?

Is there a separate ticket for vector similarity functions ?
https://cassandra.apache.org/doc/latest/cassandra/developing/cql/functions.html#vector-similarity-functions

One other thing worth mentioning: the Cassandra impl also supports a way to get "the similarity calculation of the best scoring node closest to the query data as part of the results".  Take a look at the similarity_dot_product() function (and the other choices as well) in the relevant Cassandra docs.  The query builder should have support for those as well.

The revapi thing is fixed and the vector similarity function is already supported by the existing Function term. I added tests for it as examples: https://github.com/apache/cassandra-java-driver/blob/19148d5cb9e2e2975a4d503358e9fae8737e0fcc/query-builder/src/test/java/com/datastax/oss/driver/api/querybuilder/select/SelectSelectorTest.java#L235-L274
In terms of the spring-ai downstream, as we won't actually break any API, is there anything we should test or how?

Good call on the similarity_* functions @SiyaoIsHiding!

I assume @lukasz-antoniak comment here about adding getAnn() in DefaultSelect should be addressed here. Thank you for your suggestion! It's added.

I'm not 💯 sure what the accessors on DefaultSelect are intended to do but I suppose it does make sense to keep it consistent and add an accessor for the Ann object.
Either way I'm satisfied with where this stands now... 👍 from me!

Raised by another user in separate communication: we should add some updates to the documentation reflecting these new features.  Specifically we should update relevant areas of the query_builder section of the manual.

@SiyaoIsHiding I'm okay with the idea behind these changes but we do need to fix a few things before this is merge-ready.  Specifically:

The branch conflicts discussed above need to be resolved... I'm guessing those are largely from CASSJAVA-2
Let's also add the doc updates referenced above

Once these fixes are in (and we get a second +1) I think we're okay to move forward.

Testing this with https://github.com/spring-projects/spring-ai/pull/1817
I'm getting from this code:
SchemaBuilder.createTable(keyspace, table)
    .ifNotExists()
    .withPartitionKey(partitionKey.name, partitionKey.type)
    .withClusteringColumn(clusteringKey.name, clusteringKey.type)
    .withColumn("embedding", DataTypes.vectorOf(DataTypes.FLOAT, vectorDimension))
    .build();

this failure:
com.datastax.oss.driver.api.core.servererrors.SyntaxError: Error setting type org.apache.cassandra.db.marshal.VectorType(384): Invalid definition for comparator org.apache.cassandra.db.marshal.VectorType.
	at com.datastax.oss.driver.api.core.servererrors.SyntaxError.copy(SyntaxError.java:50)
	at com.datastax.oss.driver.internal.core.util.concurrent.CompletableFutures.getUninterruptibly(CompletableFutures.java:151)
	at com.datastax.oss.driver.internal.core.cql.CqlRequestSyncProcessor.process(CqlRequestSyncProcessor.java:55)
	at com.datastax.oss.driver.internal.core.cql.CqlRequestSyncProcessor.process(CqlRequestSyncProcessor.java:32)
	at com.datastax.oss.driver.internal.core.session.DefaultSession.execute(DefaultSession.java:234)
	at com.datastax.oss.driver.api.core.cql.SyncCqlSession.execute(SyncCqlSession.java:56)
	at org.springframework.ai.vectorstore.CassandraVectorStoreConfig.ensureTableExists(CassandraVectorStoreConfig.java:244)

@michaelsembwever Can you see the debug log from this line?
logger.debug("Executing {}", createTable.asCql());

I wonder what asCql() outputs. I ran your code with substituted values
    assertThat(SchemaBuilder.createTable("ks", "mytb")
            .ifNotExists()
            .withPartitionKey("k", DataTypes.INT)
            .withClusteringColumn("v", DataTypes.TEXT)
            .withColumn("embedding", DataTypes.vectorOf(DataTypes.FLOAT, 3)))
            .hasCql("CREATE TABLE IF NOT EXISTS ks.mytb (k int,v text,embedding vector<float, 3>,PRIMARY KEY(k,v))");

And this will pass. I ran the cql statement in cqlsh, it turns out no problem, either.

Solved merge conflict and updated doc. I just realized our CI broke. Can any one of you committers click the button to run tests for this PR please? Here: https://ci-cassandra.apache.org/blue/organizations/jenkins/cassandra-java-driver/detail/PR-1931/8/pipeline

createTable.asCql() is
CREATE TABLE IF NOT EXISTS test_springframework.ai_vector_store (id text PRIMARY KEY,content text,embedding 'org.apache.cassandra.db.marshal.VectorType(384)',country text,year smallint,meta1 text,meta2 text)

Are you sure you are using my PR version? That full class name looks like an outdated 4.x branch install before this commit: https://github.com/apache/cassandra-java-driver/commit/e84378681aecdbb87696dc4b53cb6fd336c82b6b

And it seems like our CI isn't configured with credentials. It met GitHub quota limit.

Thank you for testing the downstream too


Fixed #39679 make sqlite ffi sample run success

See my comments on https://dart-review.googlesource.com/c/sdk/+/127456.
I've also started the test bots to see if changing the pubspec.yaml doesn't break our tests.

@dcharkes I change as you suggest, but seems it not sync to gerrit.
I have in trouble getting push to gerrit, I can only upload change to github .

I'll look into it. (Might have been the fact that I added extra try-bots, changing the git-hash.)


Provide small VM image with PXE server that chainloads to netboot.xyz

Situation, system A is working properly, system B needs an OS installation. System B can only boot with legacy PXE, nothing else.
The quickest solution would be:

Install VirtualBox or another VM solution on system A
Bridge the virtual ethernet interface of VirtualBox to a wired ethernet port on system A
Set up a PXE server which chainloads to netboot.xyz inside this VirtualBox
Connect the wired ethernet interfaces of system A and B to each other
Use legacy PXE boot on system B

If the VirtualBox environment has two network interfaces, it could provide the internet connection with NAT+IP masquerading as well, but that could also be done on the host.
Would it be possible to provide one or more PXE server VM images for this purpose? It would seem like a very quick way to get up and running when no physical boot medium is available.

So you want a basic DHCP server that provides the netboot stuffs? If thats it, I . could make a quick alpine ova but I'm not sure how much it helps.

Exactly yep! Basic DHCP and I suppose a TFTP server that points to the netboot.xyz image. I think it would be a perfect way to bootstrap many environments.

@jschwartzenberg Would a docker container work?

Not for all cases. If system A is an old Windows installation for instance. The solution I imagine could even be used by non-technical people to get this going if they have just two notebooks with at least one of them running any working OS plus just one UTP cable to connect the two.
An OVA would be easy enough to import in either VMware or VirtualBox on many platforms. Possibly providing an image with a few QEMU executables and a launch script would make it even easier.

On windows, just use https://tftpd32.jounin.net/ or similar

Install manjaro -> yay -S pixiecore -> sudo pixiecore quick xyz
Really any distro with the AUR will work, but manjaro is the most popular with an installer.

Something that's installable through netboot.xyz itself is indeed great already if it's then set up with just one command. @thecakeisalie25 thanks a lot for the info!

This image will provide TFTP endpoint and eventually a web based interface (track here: https://github.com/netbootxyz/webapp ) for customizing the files.
https://github.com/linuxserver/docker-netbootxyz
Though no DHCP server as supporting that kind of stuff is a huge headache.
I understand this is not exactly what you are looking for, but this will be the best solution we will be releasing unless someone outside the project decides to create something that is completely all inclusive either as a full VM or Docker Image.


[BP-1.8][FLINK-12342][yarn] Remove container requests in order to reduce excess containers

Backport of #10089 onto release-1.8.

Manually merged.


Java Not Found

Submitted from Marina Radcke:
Running the task using a Windows Server 2019 agent leads to the error:
'java' is not recognized as an internal or external command, operable program or batch file.

I get the same error when running the dependency-check.bat file (downloaded from OWASP) in a Command-Line task. Java is installed, running java -version in Command Prompt shows the version, and running dependency-check.bat directly on the server is working, too.

Solved by adding environment variable JAVACMD to the server and setting it to C:\PROGRA~2\Java\jre1.8.0_211\bin.
It is important to use PROGRA~2, otherwise, the spaces in "Program Files (x86)" cause trouble.

Is this issue occurring on a self hosted 2019 build server? Or an Azure-hosted build agent?

It's a self-hosted 2019 build server.

Ok, perfect. thanks for letting us know about this scenario.
I'm going to close this issue.


(WIP) Improve performance of all feature calculations

Feature calculation makes several calls to Entity.query_by_values. This pull request optimizes these calls using a pandas merge instead of isin.
This is still a work in progress as we benchmark it across different datasets.

Codecov Report

Merging #224 into agg-functions will decrease coverage by 0.02%.
The diff coverage is 100%.

@@                Coverage Diff                @@
##           agg-functions     #224      +/-   ##
=================================================
- Coverage          93.54%   93.51%   -0.03%
=================================================
  Files                 71       71
  Lines               7650     7623      -27
=================================================
- Hits                7156     7129      -27
  Misses               494      494

Impacted Files
Coverage Δ

...utational_backend/test_calculate_feature_matrix.py
99.27% <ø> (-0.02%)
:arrow_down:

featuretools/entityset/entityset.py
93.53% <ø> (-0.16%)
:arrow_down:

featuretools/tests/entityset_tests/test_es.py
99.3% <ø> (-0.01%)
:arrow_down:

featuretools/entityset/entity.py
88.39% <100%> (+0.12%)
:arrow_up:

Continue to review full report at Codecov.

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


lockscreen media controls

the lockscreen media controls dosn`t appear on ios8

You have to implement - remoteControlReceivedWithEvent: and - canBecomeFirstResponder.
See sample code in LMViewController.m.


Error when logging

Hi,
I am trying to add Bugfender in a react native app. I have followed the installation instructions, but I get this error when trying to log with a statement like this:
Bugfender.i('NISSE-I', message);
Error I get is:
TypeError: _rnBugfender.default.i is not a function. (In '_rnBugfender.default.i('NISSE-I', message)', '_rnBugfender.default.i' is undefined).
React Native: 0.63.3
Client OS & Version: iOS 14.2, on iPad
Any idea what could be going wrong?

Hi @jaltin , it looks like you're calling a non-existent function. Bugfender.i() doesn't exist. Maybe you can use Bugfender.d() instead.
You can see all the methods supported in the README file or here:
https://github.com/bugfender/rn-bugfender/blob/master/bugfender.js

You can see all the methods supported in the README file or here:
https://github.com/bugfender/rn-bugfender/blob/master/bugfender.js

Thanks for your help @jgimenez. Unfortunately something else came in between so I haven't managed to test it yet, but it sounds absolutely right what you say. I see that you closed the issue which is correct, and if/when I get a chance to test again I will post here.

Sure, please feel free to follow up if there's anything else we can help you with.
I'm wondering why you were calling i(), though. Did you find this code in an example or copy-paste it from somewhere else, maybe?

I'm wondering why you were calling i(), though. Did you find this code in an example or copy-paste it from somewhere else, maybe?

We were trying to replace an existing logging tool with bugfender, and that framework has debug/info/warning/error log levels. We tried to replace one of the existing info logs with a bugfender log, and erroneously/stupidly then used an i() instead of d(). Our bad.

Ah I see, good to know. We're going to add more logging levels soon. The native Bugfender SDKs already support it, but the RN adapter doesn't yet. Stay tuned, we'll update it soon.


subscript out of bounds using code template for light gbm

when using your code template for ligthgbm with tidymodels here
https://github.com/RMHogervorst/templates_ml/blob/master/R/example_lightgbm.R
I get an error (solved installing tree package)
1: All models failed. See the `.notes` column.
]> lgbm_tuned$.notes
lgbm_tuned$.notes
[[1]]
# A tibble: 1 x 1
  .notes
  <chr>
1 internal: Error in pkg_list[[1]]: subscript out of bounds

SOLVED INSTALLING package tree
Thanks in advance

cool that you fixed it! All these packages are in active development, so it could very well be that my code no longer works because there are better ways now

yes, using lightgbm in tidymodels is a minefield. Issues every step. Now having random crashes....


Difference between SB Admin and SB Admin 2

What is the difference between SB Admin and SB Admin 2?

SB Admin 2 is still using Bootstrap framework 3.3.7 as seen in the css and js files being used.

Bootstrap v3.3.7 (http://getbootstrap.com)

There are also different third party plugins being used in SB Admin 2 that are not part of SB admin.
Ultimately, SB Admin is using the newer Bootstrap framework and is a cleaner base admin template to start with if you plan on adding your own third party scripts or plugins. While SB Admin 2 has more functionality thanks to the third party plugins, it is also better suited for supporting some older browsers (mainly IE 8) since I believe the new bootstrap's css its based off of flex, which was not standard back then for browsers.

Long story short, SB Admin is a baseline template with very little custom design added to it. It serves as a toolkit for developers to use in order to start a project, but not a pre-designed theme.
SB Admin 2 will be using SB Admin as a dependency, and will then add/overwrite SB Admin and Bootstrap as needed in order to become a fully designed admin theme, as opposed to an admin template (or layout).
Hopefully this clears things up. With the release of SB Admin v5.0.0 I am getting closer to updating SB Admin 2 - which may get a name change as well because it might get a little confusing if there is an SB Admin v5 and an SB Admin 2 v5...

What about a FAQ section in the README.md of both sb-admin and sb-admin-2 where you explain this relationship of both projects?


Upgrade to jsonschema>=3.0.1; Resolves #317

Upgrade jsonschema to jsonschema>=3.0.1. jsonschema==3.0.1 tested and works. See also: #286

Travis CI is currently down (requires extra steps to set up the repository after renaming). (Will merge once test passes on Travis CI. )


[WIP] Grunt asset processing

To get early feedback I have opened this pull request, don't merge it yet!
I have started to integrate Grunt and Bower to handle the assets like concat, minify and so on. On top of that I'm vendoring out all external assets like bootstrap, jquery and so on. If you've got questions or suggestions you know where to comment :)

@fuxiaohei especially you should review the stuff! I'm not totally sure if I have replaced the stuff in lib.js with the correct external libs.

I think I can review it after all ng template and assets are migrated.. It should be done before 0.7

I think I can review it after all ng template and assets are migrated.. It should be done before 0.7

What do you think when this will happen? I would like to build this on top of it of course :)

Closing this for now, I will reopen it when we continue on that :)


Added more Device shortcuts and removed out of date functionality

Hi,
Not sure if this is the way you wanted to go with this, but I thought it would be nicer to call Push from Device directly, rather than having to specify the Iden on the Client.Push functions.
Rather than repeat the code entirely, I have used the existing Client functions but passed through the Device.Iden automatically. This meant accessing Client from Device struct however, so I did need to add it in during the call to Devices() and Device(nickname).
On the Device(nickname) function, not sure if the error should be a plain string or separated out to a struct?
Also have removed the out of date List and Address pushes and structs as they have been "deprecated in forever" according to the API docs.
Test cases added as always.
EDIT: Just realised I didn't edit the readme, let me know if this PR is something that you're interested in and I'll add the readme change to the commit before merge.
Cheers,

Thank you. I'll definitely merge it, so you can go ahead!
As for the error: It's probably best to make it an exported constant and reference that instead, we don't need a new struct, i.e.: var ErrDeviceNotFound = errors.New('Device not found'). This way people can use it for equality checks.

Done and done I think,

👍


"Deprecated" message

I'm getting the following message:

: Unparenthesized a ? b : c ? d : e is deprecated. Use either (a ? b : c) ? d : e or a ? b : (c ? d : e)
in xxxx/grav/user/plugins/social-media-links/social-media-links.php
on line
69

Thanks for your report.
This looks like a warning that shouldn't impact functionality. I think I can provide a fix in a few days but if you'd like you can contribute a small fix yourself and I will merge it.

I'm sorry, I don't know PHP, so I can't usefully contribute. Just reporting :)

PR #3 fixes this

Thx @paulrudy for your PR, I'm really ashamed, that I forgot this totally...

No worries at all!


Development Documentation Overhaul

Closes #8353
Closes #8966
Closes #9951
Closes #10355
Partially addresses #8575, but information about using Cython as a bridge to other compiled code should be added.
development_workflow.rst and all files in the /gitwash adapted from NumPy documentation.
Most existing SciPy documentation has been preserved, but may have been moved (e.g. parts from HACKING.rst.txt have been redistributed). Please see self-review for more information.
Questions:

[x] Why does HACKING.rst.tst exist separately in the scipy root directory? Why not just put the contents in \doc\source\hacking.rst? Just curious.
[x] The extra slow tests are run by adding SCIPY_XSLOW=1 as an OS environment variable?
[x] How should I credit NumPy for the Git and Development Workflow documentation?

TODO:

[x] Fix CI failure.
[x] link to CONTRIBUTING.rst somewhere. (I don't know that I've run across this before, so if it had a link before perhaps it was buried?)
[x] Read through everything. I know there are a lot of issues due to things moving around.

Installing SciPy
--------------
/home/circleci/repo/doc/source/dev/contributor/quickstart_mac.rst:59: WARNING: Title underline too short.

Installing SciPy
--------------
/home/circleci/repo/doc/source/dev/contributor/quickstart_mac.rst:5: WARNING: Duplicate explicit target name: "here".
/home/circleci/repo/doc/source/dev/gitwash/useful_git.rst:227: WARNING: Unknown target name: "scipy/master".

Will fix.

Why does HACKING.rst.tst exist separately in the scipy root directory? Why not just put the contents in \doc\source\hacking.rst? Just curious.

It predates more extensive html docs, and that file name is (used to be) commonly used by projects for developer docs.

The extra slow tests are run by adding SCIPY_XSLOW=1 as an OS environment variable?

yes

How should I credit NumPy for the Git and Development Workflow documentation?

don't, in the docs themselves. just put it in the description of this PR. that applies to other credits too (e.g. I saw a "thanks to Yarik ..." note somewhere).

link to CONTRIBUTING.rst somewhere. (I don't know that I've run across this before, so if it had a link before perhaps it was buried?)

I don't think you should link back to that. It's a very concise intro, and is a file that GitHub recognizes so it needs to be there. It's an intro point to link to the real docs, no need to reverse that flow of information/attention.

Contributing to SciPy
Contributor Table of Contents

This naming is a bit odd. How about something like "Ways to contribute to SciPy" and "Contributor Guide"?

Re: "Thanks to Yarik", I didn't add that. It was in the NumPy version, but I'll remove it.
Yes, I'll change the names.

Changed names and fixed some errors, but somehow my changes are making Sphinx complain about 100 files that aren't included in any toctree. I compared to another doc build, and these warnings aren't present there, so I assume these are why Makefile:115: recipe for target 'html-scipyorg' failed. Some of them are for my files, but most of them aren't. How could the changes I made to the development documentation break all of this content generated from docstrings?
Does everything have to be in a toctree?
WARNING: duplicate object description of scipy.io.wavfile, other instance in io, use :noindex: for one of them
WARNING: duplicate object description of scipy.io.arff, other instance in io, use :noindex: for one of them
WARNING: duplicate object description of scipy.io, other instance in io, use :noindex: for one of them
looking for now-outdated files... none found
pickling environment... done
checking consistency... /home/circleci/repo/doc/source/building/faq.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/building/index.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/dev/contributor/benchmarking.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/dev/contributor/compiled_code.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/dev/contributor/cython.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/dev/contributor/development_workflow.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/dev/contributor/pep8.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/dev/contributor/quickstart_mac.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/dev/contributor/recommended_development_setup.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/dev/contributor/runtests.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/dev/gitwash/gitwash.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.LowLevelCallable.function.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.LowLevelCallable.signature.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.LowLevelCallable.user_data.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.integrate.BDF.step_size.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.integrate.LSODA.step_size.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.integrate.OdeSolver.step_size.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.integrate.RK23.step_size.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.integrate.RK45.step_size.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.integrate.Radau.step_size.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.integrate.complex_ode.y.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.integrate.ode.y.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.interpolate.BSpline.tck.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.interpolate.Rbf.A.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.interpolate.interp1d.fill_value.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.io.netcdf_variable.isrec.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.io.netcdf_variable.shape.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.optimize.LbfgsInvHessProduct.H.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.optimize.LbfgsInvHessProduct.T.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.StateSpace.A.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.StateSpace.B.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.StateSpace.C.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.StateSpace.D.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.StateSpace.dt.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.StateSpace.poles.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.StateSpace.zeros.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.TransferFunction.den.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.TransferFunction.dt.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.TransferFunction.num.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.TransferFunction.poles.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.TransferFunction.zeros.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.ZerosPolesGain.dt.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.ZerosPolesGain.gain.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.ZerosPolesGain.poles.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.ZerosPolesGain.zeros.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.dlti.dt.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.dlti.poles.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.dlti.zeros.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.lti.dt.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.lti.poles.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.signal.lti.zeros.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.bsr_matrix.blocksize.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.bsr_matrix.dtype.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.bsr_matrix.has_canonical_format.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.bsr_matrix.has_sorted_indices.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.bsr_matrix.nnz.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.bsr_matrix.shape.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.coo_matrix.dtype.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.coo_matrix.nnz.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.coo_matrix.shape.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.csc_matrix.dtype.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.csc_matrix.has_canonical_format.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.csc_matrix.has_sorted_indices.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.csc_matrix.nnz.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.csc_matrix.shape.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.csr_matrix.dtype.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.csr_matrix.has_canonical_format.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.csr_matrix.has_sorted_indices.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.csr_matrix.nnz.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.csr_matrix.shape.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.dia_matrix.dtype.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.dia_matrix.nnz.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.dia_matrix.shape.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.dok_matrix.nnz.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.dok_matrix.shape.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.lil_matrix.nnz.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.lil_matrix.shape.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.linalg.LinearOperator.H.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.linalg.LinearOperator.T.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.spmatrix.nnz.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.sparse.spmatrix.shape.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.spatial.ConvexHull.points.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.spatial.ConvexHull.vertices.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.spatial.Delaunay.convex_hull.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.spatial.Delaunay.points.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.spatial.Delaunay.transform.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.spatial.Delaunay.vertex_neighbor_vertices.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.spatial.Delaunay.vertex_to_simplex.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.spatial.HalfspaceIntersection.dual_vertices.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.spatial.HalfspaceIntersection.halfspaces.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.spatial.Voronoi.points.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.spatial.Voronoi.ridge_dict.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.stats.gaussian_kde.neff.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.stats.gaussian_kde.weights.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.stats.rv_continuous.random_state.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.stats.rv_discrete.random_state.rst: WARNING: document isn't included in any toctree
/home/circleci/repo/doc/source/generated/scipy.stats.rv_histogram.random_state.rst: WARNING: document isn't included in any toctree

I'm trying to improve the checklist for submitting a PR:
https://13487-1460385-gh.circle-artifacts.com/0/html-scipyorg/dev/contributor/development_workflow.html#checklist-before-submitting-a-pr

What is the easiest way to find the version number of the next release, if not running scipy.__version__ from the development version? I don't see it in setup.py.
Is the wiki the place to add to the release notes? Is that a reliable way to get the next version number?

@larsoner Hi Eric, you mentioned you'd be willing to review this. Before that, I was wondering if you had any idea what is causing the Sphinx build to fail. My comment above:

Changed names and fixed some errors...

describes the issue in more detail. I see there are also some new errors:
/home/circleci/repo/doc/source/dev/contributor/rendering_documentation.rst:44: WARNING: malformed hyperlink target.
source/dev/core-dev/github.rst:10: WARNING: duplicate label labels-and-milestones, other instance in /home/circleci/repo/doc/source/dev/core-dev/github.rst
source/dev/core-dev/github.rst:61: WARNING: duplicate label backporting, other instance in /home/circleci/repo/doc/source/dev/core-dev/github.rst
source/dev/core-dev/deprecations.rst:4: WARNING: duplicate label deprecations, other instance in /home/circleci/repo/doc/source/dev/core-dev/deprecations.rst
source/dev/core-dev/distributing.rst:4: WARNING: duplicate label distributing-a-release, other instance in /home/circleci/repo/doc/source/dev/core-dev/distributing.rst
source/dev/core-dev/distributing.rst:88: WARNING: duplicate label supported-py-numpy-versions, other instance in /home/circleci/repo/doc/source/dev/core-dev/distributing.rst
/home/circleci/repo/doc/source/dev/core-dev/releasing.rst:4: WARNING: duplicate label making-a-release, other instance in /home/circleci/repo/doc/source/dev/core-dev/index.rst
/home/circleci/repo/doc/source/dev/core-dev/versioning.rst:4: WARNING: duplicate label version-numbering, other instance in /home/circleci/repo/doc/source/dev/core-dev/index.rst

I understand the first one about the "malformed hyperlink target". But the rest about duplicate labels are puzzling. They just showed up when I moved the Core Developer documentation files into their own folder. I didn't make changes to all those files, and there are not duplicate labels within those documents.
There is also:
../HACKING.rst.txt:26: WARNING: undefined label: deciding-on-new-features (if the link has no caption the label must precede a section header)

Which I understand. I actually had defined the label, then removed it when I saw Sphinx complaining about duplicate labels locally.
If you can't think of anything, I might need to just re-create this branch and PR. I guess I'd start with a fresh master and re-make changes, proceeding carefully to determine when the errors start to pop up.

Should be able to look tomorrow. In the meantime can you rebase on latest master to make sure it hasn't been fixed there?

@larsoner Genius! (or I'm a noob.)
I'm sure I rebased on master before branching, so I didn't suspect there was something wrong with it.
Now all that's left is the duplicate labels:
source/dev/core-dev/github.rst:10: WARNING: duplicate label labels-and-milestones, other instance in /home/circleci/repo/doc/source/dev/core-dev/github.rst
source/dev/core-dev/github.rst:61: WARNING: duplicate label backporting, other instance in /home/circleci/repo/doc/source/dev/core-dev/github.rst
source/dev/core-dev/deprecations.rst:4: WARNING: duplicate label deprecations, other instance in /home/circleci/repo/doc/source/dev/core-dev/deprecations.rst
source/dev/core-dev/distributing.rst:4: WARNING: duplicate label distributing-a-release, other instance in /home/circleci/repo/doc/source/dev/core-dev/distributing.rst
source/dev/core-dev/distributing.rst:88: WARNING: duplicate label supported-py-numpy-versions, other instance in /home/circleci/repo/doc/source/dev/core-dev/distributing.rst
/home/circleci/repo/doc/source/dev/core-dev/newfeatures.rst:5: WARNING: duplicate label deciding-on-new-features, other instance in /home/circleci/repo/doc/source/dev/core-dev/index.rst
/home/circleci/repo/doc/source/dev/core-dev/releasing.rst:4: WARNING: duplicate label making-a-release, other instance in /home/circleci/repo/doc/source/dev/core-dev/index.rst
/home/circleci/repo/doc/source/dev/core-dev/versioning.rst:4: WARNING: duplicate label version-numbering, other instance in /home/circleci/repo/doc/source/dev/core-dev/index.rst

For your convenience, links to the "offending" files:
github.rst
deprecations.rst
distributing.rst
newfeatures.rst
releasing.rst
versioning.rst
index.rst

@larsoner CI is happy and the toctrees are gone. I still need to make the modifications Fletcher suggested, but they are relatively small.

What is the easiest way to find the version number of the next release, if not running scipy.version from the development version? The checklist says to get it from setup.py, but I don't see it there. Update: I'm recommending getting it from the version number of the newest release notes on the wiki.

It is in setup.py (see below) for development branch, but you'd be right that a released version of SciPy probably wouldn't have the next version string around IIRC. I suppose you could also check the milestones available on GitHub, but programmatically probing the next SciPy stable release from an older stable release would indeed seem confusing to me.
 56 MAJOR = 1
 57 MINOR = 4
 58 MICRO = 0
 59 ISRELEASED = False
 60 VERSION = '%d.%d.%d' % (MAJOR, MINOR, MICRO)

Thanks @tylerjreddy didn't see that before. I'm adding it to the checklist.

@fletcheaston please review changes and "resolve conversations" as appropriate.
@larsoner Made most changes suggested and deferred two to #10366.

@mdhaber I'm happy with the addition of pybind11. I'll leave #10355 open for now, feel free to close it once this is merged.

@kai-striega @larsoner I've responded to comments and cleaned commit history. Can we merge before the sprint at the SciPy conference (July 13/14)?

Sounds good to me.
On Mon., 1 Jul. 2019, 08:33 Matt Haberland<EMAIL_ADDRESS>wrote:

@Kai-Striega https://github.com/Kai-Striega @larsoner
https://github.com/larsoner I've responded to comments and cleaned
commit history. Can we merge before the sprint at the SciPy conference
(July 13/14)?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/scipy/scipy/pull/10286?email_source=notifications&email_token=AHFOJNIFRBSBIC2NH6UDTBTP5FGEZA5CNFSM4HWPVCI2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODY4XAMQ#issuecomment-507080754,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHFOJNMF2X43PZM4HSJQFFTP5FGEZANCNFSM4HWPVCIQ
.

I added gh-10386 with instructions on adding a new scipy.stats distribution.  I kept it separate so that it wouldn't get lost in the conversation of this PR.  Similarly the process to add a function to scipy.special is sufficiently complicated that it should be written down.  (There are some old minimal docs in scipy/doc/source/dev/modules.rst but developers would probably appreciate step-by-step instructions for the ~10 steps needed.)
Does this Overhaul have an obvious place for such instructions?

@pvanmulbregt adding those is a great idea. There is definitely a good place for them, but yeah - this PR is already massive, so let's get this merged and then you can fit these documents into the new table of contents.
@kai-striega @larsoner I tried to clean the commit history after responding to your comments. Look ready to go? If so, would one of you hit the green button?

@mdhaber just confirming merge or squash & merge?

@Kai-Striega I've tried to keep the commits logical. If you think they look OK to you, regular merge is good.

@mdhaber, a belated thanks for this!
Earlier in the discussion you asked about the file HACKING.rst.txt.  I still have a question about it.  I'd like to see that file changed to CONTRIBUTING.rst (and merge anything from the existing CONTRIBUTING.rst into that file if it is not already there).  Having both is clearly redundant, and the current CONTRIBUTING.rst has just a couple paragraphs.  The first section title in HACKING.rst.txt is "Ways to contribute", so the name CONTRIBUTING.rst seems the most appropriate for the merged file, and these days it just seems like the right name to use.
Is there any reason to not merge these?  I can do it if there is no reason not to.

@WarrenWeckesser note that @rgommers wrote on June 10:

Why does HACKING.rst.tst exist separately in the scipy root directory? Why not just put the contents in \doc\source\hacking.rst? Just curious.

It predates more extensive html docs, and that file name is (used to be) commonly used by projects for developer docs.

link to CONTRIBUTING.rst somewhere. (I don't know that I've run across this before, so if it had a link before perhaps it was buried?)

I don't think you should link back to that. It's a very concise intro, and is a file that GitHub recognizes so it needs to be there. It's an intro point to link to the real docs, no need to reverse that flow of information/attention.

If it's OK to break from history and not have a HACKING.rst.txt, it sounds like putting that file's contents into CONTRIBUTING.rst would satisfy GitHub, and it makes more sense to me, too.


Create in-memory store backed by a Java Map

It would be useful to have an in-memory store. The first version of this will use a standard Java HashMap. It will not scale to large volumes, but it will be very high performance for queries. It should be optimised to support aggregation efficiently.
This has the following use-cases:

A simple in-memory cache of Elements that have been retrieved from a large store.
The creation of examples of how operations work, how views work, etc, without the need to use the AccumuloStore.
The aggregation of data within a streaming process, i.e. ingest data into an in-memory map aggregating properties if the same element is seen multiple times followed by periodic export of the whole graph into a larger (e.g. Accumulo-based) store.

Future versions of this could use libraries that allow off-heap storage to allow scalability to larger volumes, but the initial version will use a Java HashMap.

This functionality is something that I was planning to implement using Redis, which would be a good match. Redis supports loading of Redis HashMaps into Java HashMaps, and setting Java HashMaps into Redis HashMaps.
I believe using the Storage class would be a good starting point.

@AdamRobertsEF Apologies, we've only just noticed your comment. Implementing an in-memory store using Redis would be very interesting and useful. This issue is for a simple in-memory store that will not scale. Redis would obviously allow greater scalability. If you do implement a Redis store, please consider contributing it here.

Closing this issue as it has been merged into develop. There are other open issues to improve the current MapStore, and alternative in-memory stores could be developed, e.g. using Redis - new issues should be created for these.


input-mask primitive

Disclaimer: this is actually not even indirectly tied to Solid.js (it works happily with composed and native events and has no dependencies whatsoever). Still, I think it's worth keeping, as this is a regular requirement.

Shouldn't the createInputMask primitive be renamed to something like inputMask or maskInput. It is not declarative, but imperative, nothing gets created, just "handled" :)


stop working

hey Microsoft
when i try to update windows 10 21h1 new version release on beta channel recently
i got a lot of issue like stop working my pc working slow windows update installation use a lot of time
but when stop powertoys my pc got smooth working
ℹ Computer information

PowerToys version:
PowerToy Utility:
Running PowerToys as Admin:
Windows build number: [run "winver"]

📝 Provide detailed reproduction steps (if any)

…
…
…

✔ Expected result
What is the expected result of the above steps?
❌ Actual result
What is the actual result of the above steps?
📷 Screenshots
Are there any useful screenshots? WinKey+Shift+S and then just paste them directly into the form

can you do the "report bug" link so we can get some logs.  a screenshot of task manager could be help as well with what is consuming CPU
Did it work fine before you got the 21h1 insider drop?

its working now better but at the time of installation every other update it got stucked

now its working but at the time up of installation update it got stucked


Add states to FSDrift

Results for minikube_jjb

Test
Result
Retries
Duration (HH:MM:SS)

test_ycsb
Pass
0
00:00:40

test_fiod
Pass
0
00:02:42

test_fs_drift
Pass
0
00:01:10

test_smallfile
Pass
0
00:01:39

test_pgbench
Pass
0
00:00:53

test_iperf3
Pass
0
00:01:43

test_sysbench
Pass
0
00:00:37

test_uperf
Pass
0
00:03:58

test_byowl
Pass
0
00:00:32

Results for kni_jjb

Test
Result
Retries
Duration (HH:MM:SS)

test_ycsb
Pass
0
00:01:03

test_fiod
Pass
0
00:04:22

test_fs_drift
Pass
0
00:01:28

test_smallfile
Pass
0
00:02:04

test_pgbench
Pass
0
00:01:06

test_iperf3
Pass
0
00:01:48

test_sysbench
Pass
0
00:00:47

test_uperf
Pass
0
00:04:42

test_byowl
Pass
0
00:00:37

ok, so there are 2 states, Starting and Running.   I guess I could have done that, but I don't understand what it gets you yet.  It looks like you want the long-running tasks to each be in a separate state, and the quick initialization stuff all gets shoved into Starting state.   Is that it?  Go ahead and merge, I'm ok with it.

LGTM however wondering where the minishift test is

/rerun minishift

Results for minishift_jjb

Test
Result
Retries
Duration (HH:MM:SS)

test_ycsb
Pass
0
00:00:46

test_fiod
Pass
1
00:03:19

test_fs_drift
Pass
1
00:01:15

test_smallfile
Pass
1
00:04:03

test_pgbench
Pass
2
00:03:57

test_iperf3
Pass
2
00:06:25

test_sysbench
Pass
1
00:01:45

test_uperf
Pass
0
00:03:59

test_byowl
Pass
0
00:00:34


docs(build): run path updated

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


Unable to run

Installer version: 5507u
Number of files: 9
ERROR: Can't call method "format_cldr" on an undefined value at ./uninno.pl line 62.
ERROR: Can't call method "format_cldr" on an undefined value at ./uninno.pl line 62.
ERROR: Can't call method "format_cldr" on an undefined value at ./uninno.pl line 62.
ERROR: Can't call method "format_cldr" on an undefined value at ./uninno.pl line 62.
ERROR: Can't call method "format_cldr" on an undefined value at ./uninno.pl line 62.
ERROR: Can't call method "format_cldr" on an undefined value at ./uninno.pl line 62.
ERROR: Can't call method "format_cldr" on an undefined value at ./uninno.pl line 62.

Thanks for the report, I'll look into it.
Do you have a test file?

Good catch!
I added a fix in c80b6, can you check if it works now?


Prior based on weights

We would like to enable general priors. Here is a first pass at enabling any prior on any model parameter.
Closes #60
In a first test I set a function from the Python side which updated the chi2. this caused significant issues with the speed due to the global interpreter lock from the Python side.
Now we just set a weight for each model in the fullLib libary. Given that we have access to fullLib we can then use any feature in the SED to determine the prior.
Change Description
A new prior class which is applied to each onesource object prior to the fit.

[x] My PR includes a link to the issue that I am addressing

Solution Description

Code Quality

[x] I have read the Contribution Guide
[x] My code follows the code style of this project
[ ] My code builds (or compiles) cleanly without any errors or warnings
[x] My code contains relevant comments and necessary documentation

New Feature Checklist

[ ] I have added or updated the docstrings associated with my feature using the NumPy docstring format
[ ] I have updated the tutorial to highlight my new feature (if appropriate)
[ ] I have added unit/End-to-End (E2E) test cases to cover my new feature
[ ] My change includes a breaking change

[ ] My change includes backwards compatibility and deprecation warnings (if possible)

Documentation Change Checklist

[ ] Any updated docstrings use the NumPy docstring format

Build/CI Change Checklist

[ ] If required or optional dependencies have changed (including version numbers), I have updated the README to reflect this
[ ] If this is a new CI setup, I have added the associated badge to the README

Other Change Checklist

[ ] Any new or updated docstrings use the NumPy docstring format.
[ ] I have updated the tutorial to highlight my new feature (if appropriate)
[ ] I have added unit/End-to-End (E2E) test cases to cover any changes
[ ] My change includes a breaking change

[ ] My change includes backwards compatibility and deprecation warnings (if possible)

"apply_nz = 1;  // Apply n of z if it is specified unless we switch it off"
I don't think N(z) prior should be applied by default. I would use a uniform prior by default.
"It must not take source properties which do not change during fit."
I would have said the reverse. If it changes during the fit, how could you prepare the prior in advance? Maybe I missed the general idea here.
"// General function allowing pybind overwriting
std::function<vector(vector, onesource*)> weights_function ="
If I understand well, this function should be prepared before the fit, object per object, in the python interface. That's a good way to proceed. The difficulty is if you need to use anything related to the normalisation dm. But as a first approximation, one could simply use a ratio of observed/predicted flux in a given band.

I actually added the apply_nz switch so that it could be turned off for individual objects. As currently implemented it will only be applied if set as before in the config but with this switch you could turn it off on individual objects. Bu yes I agree it needs A bit of thought if it is applied alongside another set of weights.

It is important to use github mechanisms of issues for RFC and introduction of ideas and ideas of implementation, but the ultimate way to illuminate the usage and behavior of a new piece of code is the unit testing. I know it is easier said than done :)

I'll work on a unit test...

I have noticed that the moving of the N z prior out of onesource is causing an issue with the z distribution with peaks at z=1,2 . Looking into it...

Possibly interesting test prior is HSC mass-SFR relation in Tanaka et al. emission line ratios. Luminosity function. Some work on performance impact and benchmarking.


Drop warning related to no input files

I'm proposing removing this warning because:
A) I intentionally do not specify any input files because I do not want any added to the release – that feels like normal usage that maybe does not need a warning.
B) The warning message is confusing:
🤔  not include valid file.

@softprops Let me know if you'd have time to review and merge this change. If not, I'll close this PR.

Closing, see https://github.com/softprops/action-gh-release/pull/266#issuecomment-1297136024 for more information

@softprops it would be helpful to have something like this merged.
Or, if you want to have the action log something, this might be a better message:
if (files.length == 0) {
  console.warn(`No files were specified for the release. No files will be uploaded.`);
}


isort Categorized src submodule as Known(ThirdParty) (NoMatch) inside src

Hi!
ruff 0.3.4
I am trying to use ruff --select I on our monorepo
.
├── pyproject.toml
└── src
    └── dir
        └── module
            ├── __init__.py
            └── a.py
        └── test_module
            ├── __init__.py
            └── test_a.py

I have a config
[tool.ruff]
...
src = ["src/*"]

[tool.ruff.lint]
preview = true
select = ["I"]
...

When I run ruff from beside pyproject.toml everything works as intended
import pytest

from module import a

But when I run ruff from inside src/dir the test_a.py is sorted in wrong order
from module import a
import pytest

cd src/dir
ruff check --fix-only --verbose --config /Users/serjflint/monorepo/pyproject.toml test_module/test_a.py
warning: One or more modules are part of multiple import sections, including: `setup`
[2024-04-17][09:58:26][ruff::resolve][DEBUG] Using user-specified configuration file at: /Users/serjflint/monorepo/pyproject.toml
[2024-04-17][09:58:26][ruff::commands::check][DEBUG] Identified files to lint in: 4.061541ms
[2024-04-17][09:58:26][ruff::diagnostics][DEBUG] Checking: /Users/serjflint/monorepo/src/dir/test_module/test_a.py
[2024-04-17][09:58:26][ruff_linter::rules::isort::categorize][DEBUG] Categorized 'pytest' as Known(ThirdParty) (KnownThirdParty)
[2024-04-17][09:58:26][ruff_linter::rules::isort::categorize][DEBUG] Categorized 'module' as Known(ThirdParty) (NoMatch)
[2024-04-17][09:58:26][ruff::commands::check][DEBUG] Checked 1 files in: 33.535708ms

Seems similar to issue https://github.com/astral-sh/ruff/issues/10266 but the other way around

Probably related to https://github.com/astral-sh/ruff/issues/10927 in some way

As a workaround I added everything from "src/*" to known-first-party. https://github.com/astral-sh/ruff/issues/10926 would have helped here.

I'll try to reproduce.

I'm unable to reproduce:
project/src/dir on  main [$?]
❯ cargo run check . --fix -n --verbose
    Finished dev [unoptimized + debuginfo] target(s) in 0.10s
     Running `/Users/crmarsh/workspace/ruff/target/debug/ruff check . --fix -n --verbose`
[2024-04-17][10:47:26][ruff::resolve][DEBUG] Using configuration file (via parent) at: /Users/crmarsh/workspace/ruff/project/pyproject.toml
[2024-04-17][10:47:26][ruff_workspace::resolver][DEBUG] Included path via `include`: "/Users/crmarsh/workspace/ruff/project/src/dir/module/__init__.py"
[2024-04-17][10:47:26][ruff_workspace::resolver][DEBUG] Included path via `include`: "/Users/crmarsh/workspace/ruff/project/src/dir/module/a.py"
[2024-04-17][10:47:26][ruff_workspace::resolver][DEBUG] Included path via `include`: "/Users/crmarsh/workspace/ruff/project/src/dir/test_module/test_a.py"
[2024-04-17][10:47:26][ruff_workspace::resolver][DEBUG] Included path via `include`: "/Users/crmarsh/workspace/ruff/project/src/dir/test_module/__init__.py"
[2024-04-17][10:47:26][ruff::commands::check][DEBUG] Identified files to lint in: 13.962334ms
[2024-04-17][10:47:26][ruff::diagnostics][DEBUG] Checking: /Users/crmarsh/workspace/ruff/project/src/dir/module/a.py
[2024-04-17][10:47:26][ruff::diagnostics][DEBUG] Checking: /Users/crmarsh/workspace/ruff/project/src/dir/test_module/__init__.py
[2024-04-17][10:47:26][ruff::diagnostics][DEBUG] Checking: /Users/crmarsh/workspace/ruff/project/src/dir/test_module/test_a.py
[2024-04-17][10:47:26][ruff::diagnostics][DEBUG] Checking: /Users/crmarsh/workspace/ruff/project/src/dir/module/__init__.py
[2024-04-17][10:47:26][ruff_linter::rules::isort::categorize][DEBUG] Categorized 'pytest' as Known(ThirdParty) (NoMatch)
[2024-04-17][10:47:26][ruff_linter::rules::isort::categorize][DEBUG] Categorized 'module' as Known(FirstParty) (SourceMatch("/Users/crmarsh/workspace/ruff/project/src/dir"))
[2024-04-17][10:47:26][ruff::commands::check][DEBUG] Checked 4 files in: 4.112042ms
All checks passed!

Because we can't organically discover a workspace root.

The problem is your use of --config. Using --config means we have to use the current working directory as the root for resolving relative paths.

Thanks for the investigation. How to pass a working directory as a parameter? Or force to use the directory of the config for path resolution?

The original example you provided works because we discover the workspace root by discovering the pyproject.toml on disk in the parent directory. That's the intended setup -- can you not do that?

The original example you provided works because we discover the workspace root by discovering the pyproject.toml on disk in the parent directory. That's the intended setup -- can you not do that?

Unfortunately I can not. There is a lot of CI with different wrappers and users can call ruff from any place in the repo.

If you use configuration on-disk, rather than passing --config, the calls will always yield the same results regardless of the current working directory. It's the most robust way to invoke Ruff.

If you use configuration on-disk, rather than passing --config, the calls will always yield the same results regardless of the current working directory. It's the most robust way to invoke Ruff.

Not unless someone puts their one config in a submodule.
My use case is to force everyone in the project use the same config as in the CI regardless. And I wish for that config to mean the same everywhere in the project.
I can fallback to an on-disk configuration or write a wrapper to replace cwd, but that would still be a workaround. The same as my current solution with manually passing all submodules.


Error:(16, 20) error: cannot find symbol class AutoValueMoshi_JsonAdapterFactory

Trying to compile a pure java module and I have added
compileOnly 'com.ryanharter.auto.value:auto-value-moshi:0.4.0'
to my gradle file but it seems like my factory class isn't being generated...
This is the static method for my JsonAdapterFactory class:
public static JsonAdapter.Factory create() {         return new AutoValueMoshi_JsonAdapterFactory();     }

Just tested using provided in my Android module as well and still can't get it to work.
Am I missing something obvious?

Ignore me. I didn't have any static JsonAdapter methods in my model classes.
Could maybe make that clearer in the ReadMe?
It makes sense now, but the wording kinda suggests that the @MoshiAdapterFactory annotated abstract class can be used instead of the individual JsonAdapter methods in each model class - which are obviously also required in order for the factory to actually be generated.

Yeah, we get this issue a lot, so we should update the readme. I'm open to
suggestions if you want to submit a PR, otherwise I'll look at it
tomorrow.
On Sun, Oct 2, 2016, 11:29 AM Kavi Dhokia<EMAIL_ADDRESS>wrote:

Closed #54 https://github.com/rharter/auto-value-moshi/issues/54.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/rharter/auto-value-moshi/issues/54#event-809608808,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABPJblVYUBOFzYRlSZCX1p7m76Qc83dbks5qv9v7gaJpZM4KMC1k
.


How to achieve dimming of all objects except for focused object in a group

I've been trying to think of a way to show an object within a group as being "editable" vs. "focused".
Background:
Imagine a UI with only and encoder. So you have available only three actions - left, right, click.
You can use left/right to select an object within a group, and use the style modifier to highlight the focused object in some way. This is fine.
But, you don't have another set of two buttons - for example, up/down, to edit the focused object.
So instead, you use the click of the encoder to switch from selecting an object to editing an object.
This functionality is implemented outside of lvgl, since there is nothing built in.
At this point there seems no easy way to further indicate the focused object is now editable (that is, turning the encoder will now edit the object as opposed to focusing the next/prev object).
An attempt to handle this outside of lvgl:
I want to do something like dim all objects other than the focused object when "edit" mode has been entered. This makes it very clear that this object is editable.
Let's say my GUI is always a page with some objects grouped in the page.
I'm thinking something like this:
When edit mode is entered, a new page is created to cover the existing page, with some opacity so that the existing page appears dim.
At the same time, the focused object is moved from the original page to the new page, so that it remains undimmed.
Clicking again to leave edit mode, the object is moved back to its original page, and the new page is deleted.
The overall effect would just appear as if everything but the focused and editable object dimmed.
But... I'm having a hard time achieving this effect. The first problem is creating the page on top of the existing page, while having the exact same dimensions. This is necessary so that the object's position appears the same as it jumps from page to page.
The second problem is with the opacity. It seems like no matter how I style it, the new page fully covers the old instead of being semi-opaque.
If there are any ideas of how to achieve this effect, or just in general how to deal with focused vs editable with just an encoder as the UI, please chime in!

I managed to achieve something close to what I was imagining:

In the image the top slider is in "edit" mode and looks normal whereas everything else appears dim.
The outstanding issue is that for some reason the scrollbar of the page is not dimmed along with everything else.
As far as I can tell, it should be, because the "overlay" object is created on top of the page (the original page and the overlay have the same parent). Also the size of the "overlay" fills the whole screen.
But yeah, it's not a simple solution... a lot has to be handled. Moving the focused object to to new "overlay" object when editing and back to the original page when leaving edit mode is not as simple as it sounds at first, due to the way the x & y are determined in the scroll-able part of the page vs. the actual page. Also, when you move an object from the page to the "overlay" it will change the page size since there are fewer objects. So, you have to lock in the page scroll-able height after filling it with the objects you know will be inside it.
Anyway, it sorta works and is better than having no way of indicating an object is being edited vs. just being in focus.
I think some discussion around the original problem could maybe help reveal a better solution or something that can be done within lvgl so that an encoder controlled UI is feasible.

Is the scroll bar enabled on the new page?  What are the settings in the scroll bar style?

Actually instead of doing a new page for the "overlay" I just went with a base object. That made more sense since I really just needed a completely blank full-screen object with some opacity. So the scroll bar is definitely on the original page.
I don't think there is anything in the scroll bar style that could make it appear to be in the front even when an object is in front of the page. Maybe I'm wrong though, I have to take a look...
One interesting thing I just tested. If the "overlay" is set to 255 (fully opaque), everything goes black as you would expect, except for the object being edited of course.
Change the opacity to 254, and the scrollbar comes back at full intensity. So the scrollbar seems to be either there or not, without any regard for the opacity of an object in front of it.

Yeah, looking at the page design function in lv_page.c, it appears the scroll bar is draw after everything else.  I'm guessing to make sure it's drawn above all widgets on the page?
static bool lv_page_design(lv_obj_t * page, const lv_area_t * mask, lv_design_mode_t mode)
{
    if(mode == LV_DESIGN_COVER_CHK) {
    	return ancestor_design(page, mask, mode);
    } else if(mode == LV_DESIGN_DRAW_MAIN) {
        /*Draw without border*/
        lv_style_t *style = lv_page_get_style(page, LV_PAGE_STYLE_BG);
        lv_coord_t border_width_tmp =  style->body.border.width;
        style->body.border.width = 0;
        lv_draw_rect(&page->coords, mask, style);
        style->body.border.width = border_width_tmp;

	} else if(mode == LV_DESIGN_DRAW_POST) { /*Draw the scroll bars finally*/

        /*Draw only a border*/
        lv_style_t *style = lv_page_get_style(page, LV_PAGE_STYLE_BG);
        lv_coord_t shadow_width_tmp =  style->body.shadow.width;
        uint8_t empty_tmp =  style->body.empty;
        style->body.shadow.width = 0;
        style->body.empty = 1;
        lv_draw_rect(&page->coords, mask, style);
        style->body.shadow.width = shadow_width_tmp;
        style->body.empty = empty_tmp;

		lv_page_ext_t * ext = lv_obj_get_ext_attr(page);

		/*Draw the scrollbars*/
		lv_area_t sb_area;
		if(ext->sb.hor_draw) {
		    /*Convert the relative coordinates to absolute*/
            lv_area_copy(&sb_area, &ext->sb.hor_area);
		    sb_area.x1 += page->coords.x1;
            sb_area.y1 += page->coords.y1;
            sb_area.x2 += page->coords.x1;
            sb_area.y2 += page->coords.y1;
			lv_draw_rect(&sb_area, mask, ext->sb.style);
		}

		if(ext->sb.ver_draw) {
            /*Convert the relative coordinates to absolute*/
            lv_area_copy(&sb_area, &ext->sb.ver_area);
            sb_area.x1 += page->coords.x1;
            sb_area.y1 += page->coords.y1;
            sb_area.x2 += page->coords.x1;
            sb_area.y2 += page->coords.y1;
			lv_draw_rect(&sb_area, mask, ext->sb.style);
		}
	}

	return true;
}

I saw that, but I think it is only supposed to draw after all of it's children, not its siblings.
If it does indeed draw after its siblings as well, I think is unintended or at least unexpected behavior. When a sibling is in front of a page, it should be in front of the scrollbar as well.
Hopefuly @kisvegabor can chime in on that.

Hi,
The scrollbar is drawn when all the children of the page is drawn.
If you created the opaque base object as the sibling of the page (e.g. lv_obj_create(lv_scr_act(), NULL);) then it should cover the scrollbar. If you send a simplified code of your GUI I could test it.
To the original issue (selected-edited mode): What about using a different style mod function in edit and selected modes. A "lighter" in selected and a "more visible" in edit?


axisOrdering is not being set

Problem
It seems that setting the axisOrdering via a script is not working unless one the following conditions are met:

There is axis label content. (The fact that this is usually the case makes this issue a lot less important, I know)
The axisOrdering is greater than zero.
The axisOrdering is set explicitly as a string.

Test script
from fontTools.designspaceLib import DesignSpaceDocument, AxisDescriptor, AxisLabelDescriptor

doc = DesignSpaceDocument()
a1 = AxisDescriptor()
a1.minimum = 1
a1.maximum = 1000
a1.default = 400
a1.name = "weight"
a1.tag = "wght"

# Change the 0 below to a 1, and re-run
a1.axisOrdering = 0
doc.addAxis(a1)
print(doc.tostring())

Expectation
The following is expected: <labels ordering="0"/>.
Results
Nothing is written to the doc.
Thoughts

I’m thinking that fontTools is interpreting a 0 value without a label context as something akin to None and that's why it doesn't write.
If the value is meant to be set as a string and not an integer, then I think the example in the documentation needs updating: https://fonttools.readthedocs.io/en/latest/designspaceLib/python.html#axisdescriptor

Current workarounds

Set explicitly as a string.
Add some axis label content.

Thank you!

Maybe this line:
https://github.com/fonttools/fonttools/blob/fbd89a0f55921a8ecb9f6b6a16f94ecfa711db7b/Lib/fontTools/designspaceLib/__init__.py#L1599
Should be like this instead:
        if axisObject.axisOrdering is not None or axisObject.axisLabels:

Can you see if that helps?

I cloned the fontTools repo, set it up as an external package for RF, and changed that line, and it worked! Thanks, Just! Is it helpful for me to make a PR?

Is it helpful for me to make a PR?

Yes please!