fix: runZoned / withClock not working

Is there an existing issue for this?

[X] I have searched the existing issues.

Version
0.5.1
Description
tl;dr What is the proper way to run a goldenTest in a Zone?
I want to mock DateTime.now() and for this I use the offical "clock" package.
Steps to reproduce
withClock uses runZoned under the hood and can return the callback/ result so I thought it should be possible to put it in somewhere in "goldenTest" - I tried:
builder: () => withClock<Widget>(
        Clock.fixed(DateTime(2022, 11, 17)),
        () => MyFancyWidget)

pumpWidget: (tester, widget) async => withClock(
        Clock.fixed(DateTime(2022, 11, 17)),
        () async {
          await tester.pumpWidget(widget);
        },
      ),

both did not work and the current dateTime was used instead, suggesting that for some reason the Zone was not used.
Expected behavior
I would expect both of the above examples to be valid.
This is an example of how withClock is used in a basic unit test:
test('returns a proper greeting on a Tuesday', () {
    final greeting = withClock(
      Clock.fixed(DateTime(2020, 09, 01)),
      () => Greeter().greet(),
    );

    expect(greeting, 'Happy Tuesday, you!');
# example from: https://iiro.dev/controlling-time-with-package-clock/

Screenshots
No response
Additional context and comments
So this all turns out to be a question of "What is the proper way to run a goldenTest in a Zone?"

Push <3

my current solution is having an optional parameter in the widget for clock annotated with @visibleForTesting
class MyFancyWidget{

  const MyFancyWidget({
    @visibleForTesting Clock clock = const Clock(),
  });

  @override
  Widget build(BuildContext context) {
     final now = clock.now();

     return Text(now.toString());
  }

}

Hi all, sorry for getting to this late, and thanks for filing the issue.
As @dkbast pointed out, this is a larger issue with the way test works. It runs in its own zone, and won't propagate user-defined values. We've seen this discrepancy before with other testing packages internally and in OSS projects.
Why this happens in Alchemist
The reason this issue arises in Alchemist is because the builder, pumpWidget and virtually all other arguments are passed to executed inside the testWidgets function internally, meaning all zone information is already lost at that point.
How Alchemist deals with this
In the past, we've solved this by saving a local copy of whatever is in the current zone to a variable and passing it to the body inside the test function. We do this with AlchemistConfig, for example, like so (truncated):
// file: lib/src/golden_test.dart

// ...

Future<void> goldenTest(
  String description, {
  // ...
}) async {
  // ...

  // Saves a local copy of the current zone's AlchemistConfig.
  // This is stored in an AlchemistTestVariant, which is eventually passed to the test,
  // circumventing the zoning issue that would otherwise make the current
  // AlchemistConfig unreachable.
  final config = AlchemistConfig.current();

  final currentPlatform = HostPlatform.current();
  final variant = AlchemistTestVariant(
    config: config,
    currentPlatform: currentPlatform,
  );

  // ...

  await goldenTestAdapter.testWidgets(
    description,
    (tester) async {
      final variantConfig = variant.currentConfig;
      // ...
    },
    tags: tags,
    variant: variant,
  );
}

Temporary solutions
There are multiple approaches to circumventing this issue, such as the one @inf0rmatix kindly suggested. Providing test-only values is a perfectly valid DI strategy IMO.
However, I can understand if it's not the most ergonomically attractive approach, since the monotony of passing things along like this through constructors everywhere is exactly why some of us love using Provider to pass things along through the context (an extremely similar mechanic to passing values through a Zone).
Other than that, I don't see a lot of consistent and relatively clean solutions for the time being. I would love it if someone could prove me wrong though! 😄
Long-term solution
After doing some experimenting, I have found some interesting potential solutions I would love for y'all to take a look at.
A branch with these experimental changes can be found at feat/zone-preservation (see diff).
It involves using the same mechanism as we use for the AlchemistConfig; saving a copy of the current zone in the goldenTest function and wrapping any function calls in this zone (using Zone.run).
There are two parts to this solution.
Accessing zoned values in the builder
This is relatively straightforward. There is virtually no need for widgets constructed inside the builder to know about the test zone (and, indeed, one could argue it shouldn't know it's inside a test), and these widgets have no dependencies on the test zone. Therefore, it's easy to save a copy of the current zone and run the builder callback inside it.
This is done using the following snippet. (Truncated)
// file: lib/src/golden_test.dart

@isTest
Future<void> goldenTest(
  // ...
) async {
  // ...

  final outerZone = Zone.current;

  await goldenTestAdapter.testWidgets(
    description,
    (tester) async {
      T wrapZone<T>(T Function() fn) =>
          config.runInOuterZone ? outerZone.run(fn) : fn();

      // ...

      await goldenTestRunner.run(
        // ...
        widget: wrapZone(builder),
        // ...
      );
    },
    // ...
  );
}

Creating a simple golden test that provides a zoned value above the test group and attempts to retrieve it inside the builder shows this approach works.
const zoneValueKey = #testZoneValueKey;
const providedValue = 42;

int? getZoneValue() => Zone.current[zoneValueKey] as int?;

void main() {
  runZoned(
    () {
      group('Zoned value test group', () {
        goldenTest(
          'zoned value test',
          fileName: 'zoned_value',
          textScaleFactor: 4,
          builder: () {
            final retrievedValue = getZoneValue();
            final isCorrect = retrievedValue == providedValue;

            if (!isCorrect) {
              print(
                'Expected zone value to be $providedValue, but '
                'was $retrievedValue instead. '
                'Seems like the zone value was not passed to the golden test '
                'properly.',
              );
            }

            return Text(
              '${isCorrect ? 'Correct' : 'Incorrect'}: $retrievedValue',
            );
          },
        );
      });
    },
    zoneValues: {zoneValueKey: providedValue},
  );
}

Output

AlchemistConfig integration
I added an option in AlchemistConfig called runInOuterZone to make sure people who do use the test zone in their builders (for some reason) can opt out of this change.
Accessing zoned values inside pumps and interaction
Enabling the same mechanic as above for pump actions and interaction callbacks is significantly trickier. The most predominant reason for this is that tester.pump(...) and friends don't work if they aren't run inside the Zone that was created by the test.
Wrapping all the methods in the same wrapZone(...) function is easy enough, but that means we can't call WidgetTester methods at all anymore, kinda defeating the whole point. 😋
So, at the moment, the only solutions I see to this problem that one could argue could be valuable to add to the package are:

A custom AlchemistWidgetTester that will inherit all method calls from the default WidgetTester, but is given the test zone instance first, so that it can execute all of its relevant methods inside that zone. I'm not a huge fan of this approach is it seems finnicky and would require upkeep.

BREAKING: Add an argument to all pump and interaction callbacks that will run a given function inside the outer zone. While this would work fine (this is what I've done in the above branch), changing any of the arguments of the pump and interaction callbacks would be a breaking change.

The following shows this approach working
// ...
pumpWidget: (tester, widget, runInOuterZone) {
  runInOuterZone(() {
    print('Zone value in pumpWidget: ${getZoneValue()}');
  });
  return onlyPumpWidget(tester, widget, runInOuterZone);
},
pumpBeforeTest: (tester, runInOuterZone) {
  runInOuterZone(() {
    print('Zone value in pumpBeforeTest: ${getZoneValue()}');
  });
  return onlyPumpAndSettle(tester, runInOuterZone);
},
whilePerforming: (tester, runInOuterZone) async {
  runInOuterZone(() {
    print('Zone value in whilePerforming: ${getZoneValue()}');
  });
},
// ...

Output

Like mentioned before, it does work but the breaking change in the arguments and the fact that tests will fail silently if users abuse the runInOuterZone function to run WidgetTester calls make it a hard sell for me. It also means we need to educate users about the use of this function.
There are alternatives that make the API more ergonomic or would prevent this from being a breaking change to begin with, but as far as I can think, every mitigation of any problem brings with it more complexity and maintenance in the internals of the package.
Feedback please!
If you ask me, we should leave the pump and interaction calls for what they are, but I think the zoning fix for the builder arg is an easy and welcome change. I say let's add some tests and do a release on that soon.
I'll leave it up to y'all to decide what about this you like and what you dislike.
Let me know if you have any questions or comments.
Thank you for reading.

Hi @dkbast @inf0rmatix, was wondering if you had the time to look at the above comment to see if it solves your issues. :)

Hi @jeroen-meijer - thank your for diving into this! From my perspective passing optional parameters is currently the best thing we can get. The experiment you did shows, that it would be possible to have zones/ overrides, but somebody accidentally breaking the test is to much of a risk for me.

Thanks for the effort, agree with both of you :)

Another fix for could also be by setting a custom pumpWidget and whilePerforming function where you wrap the tester.pumpApp and tester.pumpAndSettle with the withClock Function.
Test Code
whilePerforming: (WidgetTester tester) async {
    await withClock(
        Clock.fixed(DateTime(2022)),
        () async => tester.pumpAndSettle(),
    );
    return Future.value();
},
pumpWidget: (tester, widget) async {
    await withClock(
        Clock.fixed(DateTime(2022)),
        () async => tester.pumpWidget(widget),
    );
},

I created an example repo with an fully working example: https://github.com/jxstxn1/alchemist_zone_test/


[sdl2] Fix build when VCPKG_BUILD_TYPE is set to "release"

Describe the pull request
Fix sdl2 port build when VCPKG_BUILD_TYPE is set to release

What does your PR fix?

Fixes #13800

Which triplets are supported/not supported? Have you updated the CI baseline?

No changes to support.

/azp run

@JackBoosY @dan-shaw The errors I'm seeing in CI do not appear to be released to this PR?

/azp run

/azp run

/azp run

@past-due Our CI has been unstable and we are trying to get it fixed

I've rebased this PR on latest master, and converted the CONTROL file to a manifest.
Would it be possible to get this merged soon? (I'm having some unrelated issues with vcpkg's "overlay ports" feature I'm trying to track down, so it would be nice to get this merged and unblocking of our CI.)


Feature Request: MultiAutoCompleteComboBox / MultiAutoCompleteComboBoxField

It would be great to have a combination of your existing MultiSelectField and the MultiAutoCompleteField, so that users can select multiple search results at a time based on the provided search term.
Is this something you would consider implementing?

Hi @d-schroeder,
I really don't get what you're after. Can you please elaborate?

Basically, I'm looking for a component that allows the selection of multiple autocomplete search results. This might be achievable using a ComboBox-like component (as your MultiSelectField) that also provides the "onSearch" parameter just like your MultiAutoSelectField.
Behavior-wise this would probably mean that unless the component gets passed any initial items, there would be no selectable values until the user types in a search term which triggers a request to my backend.

Well, there's some kind of this feature already built-in into the Multi-Autocomplete:

But you will only get this if you have more items then those which fit into the available display area of the "tokens".

Ok re-reading your feature request for the third and fourth time: So you want to be able to select multiple items when the search results are shown. So checkboxes at this point:

Exactly, I want to select multiple suggestions at a time. Sorry if that wasn't phrased clearly!

Makes sense, but I don't have any capacity / interest / inclination to implement this.
I would accept a Pull Request from your side though 😀.
Could be the default behaviour...

Alright, then I might just pick this up when I find the time 👍


mininet: Fix path to telnet

Motivation for this change
There is no telnet attribute in the all-packages.nix (anymore?).
The inetutils package contains telnet.
Python 2 is deprecated, therefore switching to python 3.
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

is the python3 switch important enough for a release note @dasJ ?

I don't think so


Remove output channel from common

Docs-preview is creating multiple output channels.  We only need the channel created in extension.ts so this PR removes the additional channel spun up in common.ts.

Codecov Report

Merging #709 into master will decrease coverage by 25.70%.
The diff coverage is 35.29%.

@@             Coverage Diff             @@
##           master     #709       +/-   ##
===========================================
- Coverage   49.34%   23.63%   -25.71%
===========================================
  Files          76       14       -62
  Lines        5304      952     -4352
  Branches      902      161      -741
===========================================
- Hits         2617      225     -2392
+ Misses       2298      705     -1593
+ Partials      389       22      -367

Impacted Files
Coverage Δ

...ocs-preview/src/markdown-extensions/codesnippet.ts
9.75% <8.33%> (ø)

docs-preview/src/markdown-extensions/column.ts
10.25% <100.00%> (ø)

docs-preview/src/markdown-extensions/image.ts
88.00% <100.00%> (ø)

docs-preview/src/markdown-extensions/includes.ts
26.66% <100.00%> (ø)

...s-preview/src/markdown-extensions/rootDirectory.ts
25.00% <100.00%> (ø)

docs-preview/src/markdown-extensions/xref.ts
13.75% <100.00%> (ø)

docs-markdown/src/helper/ui.ts

...ocs-markdown/src/helper/triple-colon-extensions.ts

...cs-markdown/src/controllers/redirects/utilities.ts

.../src/controllers/redirects/daisyChainResolution.ts

... and 86 more

Continue to review full report at Codecov.

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

@jamarw can you check why there is such a big coverage drop?

@jamarw can you check why there is such a big coverage drop?

Will do


pull an image from private registry (CFCR)

tutorial: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
Was created registry secret and app deployed to cluster of the project Kubernetes

Good


Create reports?

A possibility rather than a pressing need:
Over in ENVO, we create simple tabular files for non-owl-inclined software developers to work with. These are dubbed "reports" and are simplistic exports of the ontology content. As this is SPARQL-driven (via arq and jena), perhaps you'd like to take a crack at impementing (and improving?) this @marieALaporte?
Our  sparql files produces reports. The Makefile drives this in these lines

Merging this with #10


[Improvement-13932][API] Tenant parameters and Worker group parameters are put together in the task startup parameters

…put together in the task startup parameters

Purpose of the pull request

this pr closes #13932
after change:

Brief change log

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

(or)
If your pull request contain incompatible change, you should also add it to docs/docs/en/guide/upgrede/incompatible.md

Codecov Report

Merging #13935 (091b12d) into dev (119f08d) will decrease coverage by 0.09%.
 Consider uploading reports for the commit cc8cab4 to get more accurate results

@@             Coverage Diff              @@
##                dev   #13935      +/-   ##
============================================
- Coverage     38.86%   38.78%   -0.09%
+ Complexity     4455     4429      -26
============================================
  Files          1158     1158
  Lines         42439    42349      -90
  Branches       4780     4731      -49
============================================
- Hits          16494    16424      -70
+ Misses        24123    24108      -15
+ Partials       1822     1817       -5

Impacted Files
Coverage Δ

...inscheduler/api/controller/ExecutorController.java
17.94% <0.00%> (ø)

...er/api/controller/ProcessDefinitionController.java
58.62% <ø> (ø)

...nscheduler/api/controller/SchedulerController.java
82.60% <ø> (ø)

...eduler/api/dto/workflow/WorkflowCreateRequest.java
100.00% <ø> (ø)

...eduler/api/dto/workflow/WorkflowUpdateRequest.java
36.36% <ø> (-5.31%)
:arrow_down:

...che/dolphinscheduler/api/python/PythonGateway.java
17.16% <0.00%> (-0.08%)
:arrow_down:

...r/api/service/impl/ProcessInstanceServiceImpl.java
60.44% <ø> (+0.52%)
:arrow_up:

...org/apache/dolphinscheduler/api/vo/ScheduleVo.java
0.00% <0.00%> (ø)

...rg/apache/dolphinscheduler/dao/entity/Command.java
0.00% <ø> (ø)

...ache/dolphinscheduler/dao/entity/ErrorCommand.java
9.52% <ø> (ø)

... and 14 more

... and 28 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Update data partitioning

Update the h5 format to only contain datasets, where each dataset is the concatenation of all data types
Update the Generator class to fit the new data format


Testing of genotypic data web services

Hello every one, I am about to complete implementing BRAPI calls for SNP-seek, to query genotypic, phenotypic and passport data for the 3024 rice genomes. My main concern is the huge genotype matrix if the entire matrix is queried. Aside from paging and tsv format, I have implemented several workarounds to handle memory constraints and improve response.
With this, do we have a common testing client (ex. flapjack) I can use to test compliance and performance, before I make it "officially" public ? The docs are here
http://snp-seek.irri.org/swagger-brapi/index.html
but as I said it still needs client testing especially for large queries.
Thanks.
Loc

Could you elaborate on your concerns for the genotype matrix stuff?
You can certainly use Flapjack to test compliance and performance and we'd be happy to help with this. There should be a new release in a few days - but we need to look at some of the BrAPI issues again as it's not currently compliant with the evolved spec (and the public versions have never had BrAPI functionality exposed in them anyway).
Iain

I'm not familiar whats the maximum dimension flapjack can handle, but in any case every client has a maximum to handle  (our maximum data dimension is 3k x 32M). Query and data transfer for large matrices takes time from minutes to hours, so user-interactivity is sacrificed. So I suppose a user downloads large data on first use, leave, and when done save the result locally, then use the local copy for future use. This is where the tsv format is appropriate.
But suppose the query is large and the user is in "interactive-mode", if paging is not specified does this mean the server have to return all, which can take a long wait ? So I set a maximum number of records to return, and the client application needs to check the paging if all or just a subset was returned, then requery for the next pages if required.
Thanks that you can assist and we can test these cases, both in the server and client side. Please keep me posted when ready.
Loc

This was touched upon in the last Hacklethon. Every server can set its maximum what to return in the JSON. Large datasets are only available via the .tsv downloads. Is this something to address with a statuscode in the JSON, saying "data to large, download the file otherwise "?

Loc: Are you comfortable with Richards suggestion of returning a message saying that the user should use .tsv downloads for large data sets?  If so, I would propose that we close this issue.
Thanks,
Jan Erik

You could argue that if the server didn't want to support large downloaded, then it shouldn't specify JSON as a supported response in the /calls details. However, that's on the assumption that BrAPI implementations are 'allowed' to have methods that never respond with JSON. It would also fail if you still wanted a server to allow JSON for small requests.

Closing this issue. This seems to be an implementation discussion, not an issue with the actual spec.
Please move any further implementation discussions like this to the Community Forum
If there are an updates to the spec you need to help support large data sets, please open a new issue.
Related to testing clients, BRAVA (built by IPK) is publicly available and is an excellent tool for basic testing. Also, I'm working on a use case based testing tool for doing more targeted testing. This is still under construction, but should be available soon.


Feature: Chrome extension docs need sub folders for the "using" section

Type of feature
🍕 Feature
Current behavior
https://docs.opensauced.pizza/chrome-extension/using-the-chrome-extension/

Suggested solution
Should be
Chrome extension usage
- using the extension
  - feature 1
  - feature 2

Additional context
No response
Code of Conduct

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

Contributing Docs

[ ] I agree to follow this project's Contribution Docs

The simple solution is each feature gets its own page.

.docstake


Need a hook to get parameters - useParams

You need to make a custom hook useParams to get the route parameters.
import  { useParams }  from "wouter"

const Component = (props) => {
   const { id } = useParams()

   return (

{ id }

  )
}

Your solution that you provided in the comment is not suitable for complex cases, you have to constantly write the path. Sometimes it is complex and has a regular expression, and it is not a good idea to write it all the time.
const Component = () => {
  const [, params] = useRoute("/user/:name");
  return
{params.name}</hi>
};

Your example is simple, now let's see how we can get the parameters from the given route.
/en/product/gamepad-sony-dualshock-4-v2-cuh-zct2e-8
const Component = () => {
  const [, { id, lang }] = useRoute('(/)*:lang([a-z]{0,2})/product/([a-z0-9-_]*[-_]*)*:id')
  return
{id}</hi>
};

Also, this solution is not suitable when you need to access the parameters, when the component is universal and it does not know how the routes are described in the application.

This is a previous discussion item, I remember the point of disagreement is whether it needs to be provided by wouter or defined by the user.

I think this should be available in the default library because it's a much needed feature. It will be much more convenient and better if this function is made by the Wouter authors, because third-party developments cannot guarantee the same level of quality and optimization. For some it will work well, for others there will be bugs.
And it's just nicer when many good ones are available out of the box.

maybe will be supported in wouter-next

There is a native browser API for this, why do you need this library to waste a single byte of code doing what is already
available out-of-the-box?
https://stackoverflow.com/a/9870540/104380

You are talking about query params. I'm talking about route parameters. Try to take /admin/panel/product-offer/4598/product/246 these parameters and understand what is what.
It should be in the library because it's convenient.
const { offerId, productId } = useParams()

There is a native browser API for this, why do you need this library to waste a single byte of code
doing what is already available out-of-the-box?

what are "route params"? everything should always be in the window URL query so when the user refreshes, the state will persist

what are "route params"? everything should always be in the window URL query so when the user refreshes, the state will persist

@m4n1ac47 Actually meant parameters extracted from a route e.g. "/home/:foo/:bar should give you { foo: .., bar: ...}, not query parameters.
Also, please be respectful, your tone is offensive to others.

It's a cultural issue. I have no idea what might sound offensive to you since in my culture this is considered normal, everyday talk. I have zero idea what specific word triggered you or frightened you. I did not use any offensive words so your reaction saying it is offensive seems super bizarre.

what are "route params"? everything should always be in the window URL query so when the user refreshes, the state will persist

So, how do I get issue number from this url https://github.com/molefrog/wouter/issues/245
window.location.hash.split('/').reverse()[0]

I am against this, because I would prefer this lib to remain as slim as possible, and it is up to a developer if they want to remove a prefix such as # (which I don't understand why they use it in the first place and why should it be removed if they are using it...)
Any text manipulation should be done by the developer and not be bundled by this lib, IMHO

@m4n1ac47 why not just do this:
const Component = ({lang, id}) => {
   return (

{ id }

  )
}

<Route path="/:lang/product/:id">{({id, lang}) =>
   <Component id={id} lang={lang}/>
}</Route>

Regexes aren't supported anyway.

@josuevalrob easy:
<Route path="/molefrog/wouter/issues/:issueId">{({issueId}) =>

Issue #{issueId}

}</Route>

I don't think think we're going to support this anytime soon. Thank you all for the discussion.


Show content of a Div as Tooltip

Hi
I need some help, would be glad if someone can give me a hint.
I work on a project where I want to use tooltipster over an illustrated map.
You can see my tries:  here
The Tooltip works, but it shows the content of every tooltip, not just of the one it should.
This is the HTML of a point with a tooltip inside
`
+Tooltip 1
This is the content of Tooltip 1`
This is the jQuery
$('.tipicon').tooltipster({
arrow: false,
animation: 'grow',
delay: 100,
speed: 300,
maxWidth: 400,
touchDevices: true,
contentAsHTML: true,
trigger: 'click',
onlyOne: true,
contentCloning: true,
content: $('.tipcontent').detach(),
});
How can I get only the .tipcontent of the selected .tipicon?

Hello,
first of all, you may want to check Tooltipster v4, because in your code you're trying to use options that do not exist anymore. You can see the migration guide in #566
Then I'd suggest you use the new data-tooltip-content attribute as suggested in the documentation, please check it out.

Or use functionInit as shown in the documentation too.

Thank you!
Sorry for not checking all those changes from v3 to v4.


Add function to report Agent time usage to Stripe

Summary
This PR introduces a new mechanism to report usage-based billing metrics to Stripe.
Key changes:

Database Schema Updates

Changed the column type from integer to numeric in agentActivities to handle larger values that may exceed the 32-bit integer limit.

And the column's name in TypeScript was wrong, I've fixed.

Introduced a new agent_time_usage_reports table to track accumulated agent usage time on a per-team, per-billing-cycle basis.

Usage-based Billing Logic

Added a new AgentTimeUsageDAO class that encapsulates database operations related to agent time usage, including transactional updates.
Implemented the processUnreportedActivities function that identifies unprocessed agent activities within a given billing cycle, calculates the incremental usage in minutes, and reports those increments to Stripe via their v2.billing.meterEvents API.

Integration with Stripe

Upgraded the Stripe API version and library version to ensure compatibility with the new events API.

stripe.v2.billing.meterEvents. was not in previous version.

When new usage increments are detected, we create a meter event in Stripe to reflect the additional chargeable minutes.

Unit Tests

Added unit tests (agent-time-usage.test.ts) to cover edge cases, including boundaries at exactly 60 seconds and slightly under a full minute.
Tested scenarios such as no unreported activities, increments less than a minute (which results in no billing update), and handling data across multiple billing periods.

The processUnreportedActivities Function Explained
processUnreportedActivities is the core of this PR and is responsible for tying together the data retrieval, calculation, and reporting logic.
What does it do?

Determines the correct billing cycle based on the current subscription data and a given targetDate.
Fetches all agent activities that have not yet been associated with a usage report within that billing cycle.
Calculates the total accumulated duration of all these activities and determines how many additional whole minutes have accrued since the last report.
(We track usage in whole minutes because our Stripe product is configured to bill on a per-minute basis.)
If there are new billable increments, creates a usage report, marks activities as processed, and reports the increment to Stripe as a meter event.

How does it work?
flowchart TD
    A[Determine Billing Cycle] --> B[Fetch Unreported Activities]
    B --> |Activities Found| C[Calculate Total Usage Duration]
    B --> |No Activities| J[Return no changes]
    C --> D[Get Last Usage Report]
    D --> E[Calculate Increment in Whole Minutes]
    E --> |Increment > 0| F[Create Stripe Meter Event]
    E --> |Increment = 0| J[Return no changes]
    F --> G[Create Usage Report in DB]
    G --> H[Mark Activities as Processed]
    H --> I[Return Report ID]

Key Points in the Flow:

Accumulate Duration: Sums totalDurationMs from all unreported activities.
Determine Increment: Converts the accumulated duration into whole minutes and compares it to the previously reported total minutes.
Meter Event Creation: If there’s at least a 1-minute increment, we send that increment to Stripe.
Database Consistency: Creates a usage report and updates activities to ensure no double counting in subsequent runs.

Additional Notes

We currently retrieve the customerId from Stripe subscriptions each time. In the future, we may store it in our DB to reduce external API calls.
Using numeric for totalDurationMs avoids overflow issues with extremely large durations.
The included tests cover various edge cases, ensuring that increments are calculated accurately.

What I didn't do

This function is not called anywhere.
I will implement it in the following PRs.

TODO

[x] Ensure the Stripe update does not affect other areas.
[x] Run migration for Preview
[ ] Run migration for Production

Thank you for your reviews.
@shige Could you run migration and deploy for Production?

Could you run migration and deploy for Production?

@satococoa
I did it! bun drizzle-kit migrate 🚀


Fix install instructions for MXNET-R

Description
The PR fixes instructions on index page for MXNET-R installation for Windows(GPU support)
Checklist
Essentials
Please feel free to remove inapplicable items for your PR.

[x] Changes are complete (i.e. I finished coding on this PR)
[x] Code is well-documented:
For user-facing API changes, API doc string has been updated.
For new C++ functions in header files, their functionalities and arguments are documented.
For new examples, README.md is added to explain the what the example does, the source of the dataset, expected performance on test set and reference to the original paper if applicable
Check the API doc at http://mxnet-ci-doc.s3-accelerate.dualstack.amazonaws.com/PR-$PR_ID/$BUILD_ID/index.html
[x] To the my best knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

Changes

[x] Changing name of bucket storing R binaries

Comments

This PR fixes the name of bucket storing new R binaries. It also fixes some broken links.

@aaronmarkham @hetong007 Could you please take a look?


nixos/murmur: add iniPath, config, user, group options

Motivation for this change
Make it possible to provide a password through NixOps's deployment.keys
deployment.keys = with lib; {
      murmurIni.text = ''
      ${config.services.murmur.config}
      serverpassword=${readFile ./keys/murmurPassword}
      '';
};

services.murmur = {
  iniPath = "/run/keys/murmurIni";
  group = "keys";
};

Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

nvm, closing
I made these changes before commit 533560de5ba1d245a150433de9f4212721443379, which added support for using EnvironmentFile in murmurd.service. That's much less hacky.


Phi-3.5-mini-instruct complains about "rope_scaling"

Same root cause as that of issue #92
typeMismatch(Swift.String, Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "rope_scaling", intValue: nil), _CodingKey(stringValue: "long_factor", intValue: nil)]
It's a pity, as phi-3.5 comes with a lot of goodies.

I never had this issue with Phi-3.5 mini, but you can check if https://github.com/ml-explore/mlx-swift-examples/pull/155 fixes this for you.

StringOrNumber has been enhanced:

https://github.com/ml-explore/mlx-swift-examples/blob/main/Libraries/MLXLMCommon/StringOrNumber.swift

let me see if this is still a problem

Looks good!
./mlx-run llm-tool --model mlx-community/Phi-3.5-mini-instruct-8bit --prompt "Why is the sky blue?"

Why is the sky blue? The sky appears blue to the human eye due to a phenomenon called Rayleigh scattering. This occurs when sunlight enters Earth's atmosphere and interacts with the gases and particles in it. Sunlight is made up of a spectrum of colors, and when it reaches the atmosphere, it is scattered in all directions by the gases and particles. Blue light is scattered more than other colors because it travels as shorter, smaller waves. This scattering process causes the blue light to```

oh and it looks like we already had a preset for it:
    static public let phi3_5_4bit = ModelConfiguration(
        id: "mlx-community/Phi-3.5-mini-instruct-4bit",
        defaultPrompt: "What is the gravity on Mars and the moon?",
        extraEOSTokens: ["<|end|>"]
    )


Fix B3 extraction

B3 extraction is severely broken. A few issue reports all deal with this issue as well as a couple of PR's have been provided of which none really fix the issue as of yet.
For proper B3 extraction see:
https://github.com/openzipkin/b3-propagation
And for a Go implementation see the community supported native Zipkin implementation:
https://github.com/openzipkin/zipkin-go/tree/master/propagation/b3

fixed through #119.


Middaleware::Session::Pool

Except from adding the Middaleware::Session::Pool, I removed some white spaces (OCD sorry) also, I changed IndexOutOfBounds to IndexError as per crystal HEAD changes.

@bararchy thanks, good work!


Update prepare.yml

Add support FreePBX
Description of PR

Type of change

Feature Pull Request
Bugfix Pull Request
Docs Pull Request
Fixes an issue

Hi @darco1991
I see you have created 3 different PR's for 1 functionality. Can you combine all these changes and place it in 1 PR? It will makes things easier to verify/test.


custom response required from request validator plugin

Where is the problem?
https://docs.konghq.com/hub/kong-inc/request-validator/
What happened?
I am using request validator plugin in one of my service. but plugin always returned me same generic response i.e {"message":"request param doesn't conform to schema"}. I have configured one field "requestId" as required field. but if someone dont pass requestId plugin returns as {"message":"request param doesn't conform to schema"}. Ideally it should return some custom response like "requestId is missing" or "length of requestId should not more then 10 characters"
What did you expect to happen?
I am using request validator plugin in one of my service. but plugin always returned me same generic response i.e {"message":"request param doesn't conform to schema"}. I have configured one field "requestId" as required field. but if someone dont pass requestId plugin returns as {"message":"request param doesn't conform to schema"}. Ideally it should return some custom response like "requestId is missing" or "length of requestId should not more then 10 characters"
Code of Conduct and Community Expectations

[X] I agree to follow this project's Code of Conduct
[X] I agree to abide by the Community Expectations

Hey @HassanAM, thanks for the report! Unfortunately, this repository handles documentation only, and we don't can't fix issues with the product.
Request validator is an enterprise plugin, which leads us to believe that you have an account manager here at Kong. The best way to get this feedback looked at is to submit it to your account manager so that we can tie the request to your organization.


Check vendor folder when using kirby-cms-path: false

When using
composer.json
"extra": {
   "kirby-cms-path": false,
}

the cli fails. I am not sure if "kirby-cms-path" sets the path or you can just use false so it's moved to vendor.
Using kirby.cli.json doesn't seem to help but that is pointing to vendor autoloader so it should not matter where kirby is?

Could you check if the version on develop fixes this problem for you? Make sure to run the CLI in the same root as your index.php

For me this doesn’t work, even with the dev version (dev-main 9182f92). I have also tried using the kirby.cli.json but with no luck.

perhaps related… I have
"extra": {
    "kirby-cms-path": "htdocs/kirby"
  }

in the composer.json.
and this directory structure:
<myabspath>
composer.json
-- htdocs
    .htaccess
    index.php
    -- kirby
    -- site
    ...

When I run the Kirby Cli in the directory where the composer.json is, it works - showing the possible commands.
Now when I run kirby clear:cache for example, The Kirby installation could not be found is returned.
If I change into the "htdocs" directory (where the index.php and .htaccess etc "live"), and run the cli there, I get
PHP Warning:  require_once(/<myabspath>/htdocs/kirby/vendor/autoload.php): Failed to open stream: No such file or directory in /.config/composer/vendor/getkirby/cli/bin/kirby on line 17

Warning: require_once(/<myabspath>/htdocs/kirby/vendor/autoload.php): Failed to open stream: No such file or directory in /.config/composer/vendor/getkirby/cli/bin/kirby on line 17
PHP Fatal error:  Uncaught Error: Failed opening required '/<myabspath>/htdocs/kirby/vendor/autoload.php' (include_path='.:/usr/share/php:..') in /.config/composer/vendor/getkirby/cli/bin/kirby:17
Stack trace:
#0 /.config/composer/vendor/bin/kirby(120): include()
#1 {main}
  thrown in /.config/composer/vendor/getkirby/cli/bin/kirby on line 17

Fatal error: Uncaught Error: Failed opening required '/<myabspath>/htdocs/kirby/vendor/autoload.php' (include_path='.:/usr/share/php:..') in /.config/composer/vendor/getkirby/cli/bin/kirby:17
Stack trace:
#0 /.config/composer/vendor/bin/kirby(120): include()
#1 {main}
  thrown in /.config/composer/vendor/getkirby/cli/bin/kirby on line 17

I have a second installation where the composer.json, .htaccess, index.php and the kirby directory all are on the same level -- there the cli works fine.
Thanks for the cool new version, aside from the cli hickup described here, it was a very smooth update.

Had the same issue. With a slightly customized setup and a public docroot inside the main project root, the cli tool only works from within the public docroot, not from the project root.


Wallet fixup

On top of #142
Here's what the plugin looks like half screen and whole screen:

The red seems kinda bright. Is there a corresponding green for when you received money?

There is, they are all-red or all-green, meaning hex-values #FF0000 or #00FF00, I can tone them down a bit to like #aa0000 and #00aa00 if you'd like.

Why remove the copy-to-clipboard shortcut in Addresses? I find it very convenient.

And, was the Create Address removed as well, or moved elsewhere?

@pmknutsen I enabled a right-click context-menu a while ago with the whole UI that allows copy-paste, but I could add that back in. Create Address is the "+" button in the lower right.

I am in favor of bringing back the copy-to-clipboard button

Copy-to-clipboard button is back!

@lukechampine @DavidVorick boop

for future reference, better than amending here would be to specifically git revert c219021 to make your intentions clear.

The eyeglass is too close to the addresses, it looks unnatural

boop @DavidVorick @lukechampine


Feature/smart join views

Scope & Purpose
This PR adds support for smart joining views.

[ ] Bug-Fix for devel-branch (i.e. no need for backports?)
[ ] Bug-Fix for a released version (did you remember to port this to all relevant release branches?)
[ ] Strictly new functionality (i.e. a new feature / new option, no need for porting)
[ ] The behavior in this PR can be (and was) manually tested (support / qa / customers can test it)
[ ] The behaviour change can only be verified via automatic tests

Related Information
(Please reference tickets / specification etc )

[x] There is an internal planning ticket: https://github.com/arangodb/team-orco-planning/issues/134
[x] Enterprise component: https://github.com/arangodb/enterprise/pull/260

Testing & Verification
This PR adds tests that were used to verify all changes:

[x] Added new integration tests: enterprise/tests/js/shell/server/smart-join-cluster.js

Documentation

[ ] Added a Changelog Entry
[ ] Added entry to Release Notes
[ ] Added a new section in the Manual

Obsoleted by https://github.com/arangodb/arangodb/pull/10309


Backwards

In working out an algorithm that wants to move back through time, it seemed helpful to do a simple explainer on iterating back in time - i.e., taking the haplotype view instead of the tree-by-tree view.
This is a draft of that. Suggestions for nicer python or fun examples welcome! So far it's not demonstrating anything that you couldn't do tree-by-tree.

Nice. I like this. Note that there are a few examples of iterating up and down the graph at https://tskit.dev/tutorials/args.html#graph-traversal, but I don't actually do anything with the traversals, so your examples are better.
Also note that some of stuff might also link in to https://github.com/tskit-dev/tskit/discussions/2869, and there are some suggestions of things you might want to calculate there. One thing that is much easier to do compared to the tree-by-tree approach is to find all the descendant samples of a particular ancestral node (or alternatively, all the internal nodes that are ancestors of a particular sample).


typo: enviroment -> environment

Also fixed on "including" typo

@nschonni : Thanks for your contribution! The author, @rayne-wiselman, has been notified to review your proposed change.


Format implementation assignments, ifs

Initial go ahead with formatting of the implementation. Works with assignments and IF statements.
Format this:
msg.CreateEx(evt, 0);
IF len(str) > 0 AND len(str) > 0 AND len(str) > 0 AND len(str) > 0 AND len(str) > 0 AND len(str) > 0 THEN
	msg.SetJsonAttribute(str);
END_IF

msg.Send(0);

Into this:
msg.CreateEx(evt, 0);
IF len(str) > 0
	AND len(str) > 0
	AND len(str) > 0
	AND len(str) > 0
	AND len(str) > 0
	AND len(str) > 0
THEN
	msg.SetJsonAttribute(str);
END_IF

msg.Send(0);

I just want to stop here with a working example and go over any major changes to implementation before continuing on this path.

I've made the line ending and indentation into global variables (#42). This shortens the initialization of the different code types a lot. You can also add the line length as a global variable.

All sounds good to me, I'll make the changes. One thing I'm unsure about is what to do with multi assignments.
a := b := c := 4;
Are these allowed? Or shall they be broken up into single lines?
The left operand will therefore need to be an array.

Ok, now supports fixing multiline function calls (not inside an if though). Also fixed a bunch of other parsing issues.
One major item that needs to be addressed is recursively setting types. This is why function calls inside an IF ... THEN don't work as it treats as plain text currently.
DbAck.execRet3(ADR(qryTool1), ADR(partId), SIZEOF(partId), arg1 := F_UDINT(deviceId), arg2 := F_INT(localGlobals.machiningToolSet[deviceId - 4].insert[1].number), arg3 := F_INT(localGlobals.machiningToolSet[deviceId - 4].insert[1].rotation), )

Becomes
DbAck.execRet3(
	ADR(qryTool1),
	ADR(partId),
	SIZEOF(partId),
	arg1:=F_UDINT(deviceId),
	arg2:=F_INT(localGlobals.machiningToolSet[deviceId-4].insert[1].number),
	arg3:=F_INT(localGlobals.machiningToolSet[deviceId-4].insert[1].rotation),
);

General comment. It would be a good idea to break up this PR into multiple ones. Like one for function calls, one for if statements, etc. It is becoming quite large now and difficult to review. Also it would be good to have unit tests from the start.


added new photo

Hi there , please accept my pull request #hacktoberfest

give a screen shot of your changed are!!

give a screen shot of your changed are!!

I contributed to Messi photo gallery

give a screen shot of your changed are!!

I contributed to Messi photo gallery

Ok fine.Just go to your updated HTML web page take a screen shot and drag the file here.I just want to see the particular changes

I've sent the screenshot.

@Rohan-A-V give a star to this repo thank you for contributing


#765: Fix typos in DoD asciidoc

 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.Kian seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Can be closed because of wrong branching.


(Re)Remove _createDataStoreWithProps from dataStoreContext.ts

This API along with the supporting context props were removed in #2931 and #2951 but Bohemia was not prepared to receive these blessings in the 0.25 release and they needed to be added back in.  We expect they might be ready by 0.27

@leeviana is bohemia ready for the new create flow? is this something that can be done for november and consumed in 0.29?

We still set the rootcomponentconfig during initializingfirsttime. Since our office container now supports different root configs, we still allow for initialConfigs to be used for those components. We could go back to what we had years ago (IComponentWithInitialConfig) but is this really what is recommended for generic initial config values for all components?

IComponentWithInitialConfig kind of sounds like a step backward?  If more time is needed to get it right that's fine (especially since Vlad has more related changes in the pipe that may affect this); just wondering if this item is ready to do

IComponentWithInitialConfig is essentially what scriptor is hacking now but I think for this issue we only care about root component creations. @cristighr1995 does it make sense to take in root component config (canvas component type + initial config for canvas component) on some sort of Canvas related provider interface method instead of the initial config?

Related: https://github.com/microsoft/FluidFramework/issues/8292

@heliocliu @vladsud  can you help us clarify what the original intention was with this deprecation. @leeviana has shared her comments here: https://github.com/microsoft/FluidFramework/issues/8292, and that ticket would be covered with the solution that we determine here (around _createDataStoreWithProps ).
Partner repos seem to be relying on createDataStoreWithProps to inject initial config for their Data Objects (through datastore context). What is the alternative path here?  Datastore creation paths leading through runtime are dealing with IFluidDataStoreFactory interface that provides no means of handing off this initial config.
@vladsud I have seen related changes here: https://github.com/microsoft/FluidFramework/pull/4163. It still seems that partners would need to deal directly with aqueduct/dataobjecy factory APIs to setup initProps.


Memory leak on updateOne in the loop

Bug Report
Memory leaks when I use updateOne inside the loop over cursor. I simplify the query to set field exactly the same. In original I need to convert it from string to Date object.
This code is running inside symfony cli command. If I comment the line with updateOne, memory usage is 10MB constanst.
        $cursor = $this->collection->find([], ['projection' => ['datetime' => 1], 'sort' => ['_id' => 1]]);

        foreach ($cursor as $row) {
                $this->collection->updateOne(['_id' => $row['_id']], ['$set' => ['datetime' => $row['datetime']]]);
        }

It consumes memory at rate about 2MB per 1000 queries.
Environment
rpm -q centos-release
centos-release-7-7.1908.0.el7.centos.x86_64
php -v
PHP 8.1.15 (cli) (built: Jan 31 2023 15:13:17) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.15, Copyright (c) Zend Technologies
with Zend OPcache v8.1.15, Copyright (c), by Zend Technologies
with Xdebug v3.2.0, Copyright (c) 2002-2022, by Derick Rethans
php -i | grep -E 'mongodb|libmongoc|libbson'
/etc/php.d/50-mongodb.ini,
mongodb
libbson bundled version => 1.23.1
libmongoc bundled version => 1.23.1
libmongoc SSL => enabled
libmongoc SSL library => OpenSSL
libmongoc crypto => enabled
libmongoc crypto library => libcrypto
libmongoc crypto system profile => enabled
libmongoc SASL => enabled
libmongoc ICU => enabled
libmongoc compression => enabled
libmongoc compression snappy => enabled
libmongoc compression zlib => enabled
libmongoc compression zstd => enabled
libmongocrypt bundled version => 1.5.2
libmongocrypt crypto => enabled
libmongocrypt crypto library => libcrypto
mongodb.debug => no value => no value
MongoDB: '4.4.18'
composer show mongodb/mongodb
versions : * 1.15.0

Sorry, I've found real reason. It is symfony stopwatch in debug mode.


Updated GML.js to 2023.1 version

Updated GML language data to most up-to-date version, based on 2<IP_ADDRESS>4 runtime (January 2023 release), with many features added in recent months. Many functions in current definition file were outdated (they were marked as deprecated for around 5-10 years or even already removed in recent months and years).
Changes
Generated from GameMaker runtime internal fnames file, with rule:

KEYWORDS: manually, as they are built-in in IDE and not mentioned in fnames file
BUILT_INS: functions; everything that have [a-z_]+\(.*?\) in definition (both UK and US spelling)
SYMBOLS: macros; everything that ended with # in fnames
LANGUAGE_VARIABLES: various global/local variables (reserved words); everything that ended by * (readonly), @ (instance variable), or didn't ended with (...)
That exact fnames file can be found here: https://gist.github.com/gnysek/a69ec324df61131b2546d1580f29a760

Checklist

[x] Added markup tests, or they don't apply here because... (only keyword updates)
[x] Updated the changelog at CHANGES.md

Please explain removal of LITERALS.

I moved then to SYMBOLS, where other GM literals were already. All of those are generally macros which are converted (usually) to integers on compile time.


This is a new take on the classic snake game. Instead of growing when it eats, this speedy snake increases in speed after eating apples, creating a unique mechanic that is a novel way to play a classic game!

How to play your game?

Press WASD to move, L to restart, J to enable hard mode (speed increases more for each apple eaten) and K to enable easy mode

Coding experience:

I have been messing around with programming in different languages for a couple of years, learning python and java in some of my high school classes. I also have learned some javascript/html/css to build websites, although I am still learning in that department :)

Code
Check off the items that are true.

[x] The game was made using the Sprig editor.
[x] The game is placed in the in the /games directory.
[x] The code is significantly different from all other games in the Sprig gallery (except for games labeled "demo").
[x] The game runs without errors.
[x] The name of the file/game contains only alphanumeric characters, -s, or _s.
[x] The game name is not the same as the others from gallery

Image (If an image is used)

[x] The image is in the /games/img directory.
[x] The name of the image matches the name of your file. Example: sokoban_plus.js -> sokoban_plus.png.

Thanks for PR!

Game very good! could you add more details in the sprite? snake eyes...

I just updated, made new functionality for pause/play as well as making my sprites look more lively (both snake and wall!)

Ok I removed it - thanks for pointing it out!

My friend actually found the github page, and he told me about it - I thought it was cool so tried it out!! So glad I did!

nice!


Remove Misbehaviour interface and replace with Header interface

Summary
Remove misbehaviour interface and use the Header interface instead (they will have the same functions after #874)
Splitting pr recommendation:
PR 1
Rename proto files of light client misbehaviour. For example, in 07-tendermint, Misbehaviour, should become a DuplicateHeightHeader or something like that.
We should have a normal Header and a duplicate height header. A normal header may update the client if it does not validate BFT time and the duplicate height header may prove a fork resulting in the client becoming frozen.
PR 2
Change the API to use Header instead of Misbehaviour

For Admin Use

[ ] Not duplicate issue
[ ] Appropriate labels applied
[ ] Appropriate contributors tagged/assigned

Within the misbehaviour header handler, we need to type cast Header to a concrete misbehaviour header type.
Maybe it's easier to use MisbehaviourHeader and oneof internally over misbehaviour types (e.g. DuplicateHeightHeader as an internal type)?
A series of attempted type casts doesn't hurt either if we add misbehaviour types I suppose haha.

Let's merge Header and Misbehaviour and name the interface ClientMessage as @AdityaSripal suggests here

closed by #1107


Napari window not showing on laptop screen after working with external display

🐛 Bug
I regularly switch from working with napari on my laptop that is connected to an external screen to working on just my laptop (no screen connected). I have a problem with displaying the napari viewer when I work on my just my laptop after it has been connected to an external screen the last time I worked with napari.
When I call the napari viewer on my laptop, the viewer does not show on my laptop screen. The viewer get's created and I can see it's icon in the Windows taskbar, but the viewer itself does not open. Even when I click on the icon in the taskbar, I cannot make it appear.
To Reproduce
I work on a Windows 10 Enterprise computer that is regularly connected to a larger external display.

When connected to the external display, I call the napari viewer from a Jupyter Notebook using from napari.viewer import Viewer napari_viewer = Viewer() and display the viewer on my external screen.
If I, next time that I work, am disconnect from this external display and call the napari viewer (from napari.viewer import Viewer napari_viewer = Viewer()) again, the bug arises.

Expected behavior
When I call the napari viewer for the second time (while disconnected from my external display), I expect the viewer to open as normal and display on my laptop screen.
Environment
The bug happens with both the environments in which I have napari installed.
Environment 1:
napari: 0.4.16
Platform: Windows-10-10.0.19044-SP0
Python: 3.8.13 (default, Oct 19 2022, 22:38:03) [MSC v.1916 64 bit (AMD64)]
Qt: 5.15.2
PyQt5: 5.15.7
NumPy: 1.24.3
SciPy: 1.9.1
Dask: 2022.02.1
VisPy: 0.10.0
OpenGL:

GL version: 4.6.0 - Build <IP_ADDRESS>2
MAX_TEXTURE_SIZE: 16384

Screens:

screen 1: resolution 1920x1080, scale 1.0

Plugins:

console: 0.0.6
napari-svg: 0.1.6
scikit-image: 0.4.16

Environment 2:
napari: 0.4.16
Platform: Windows-10-10.0.19044-SP0
Python: 3.9.13 (main, Aug 25 2022, 23:51:50) [MSC v.1916 64 bit (AMD64)]
Qt: 5.12.9
PyQt5: 5.12.3
NumPy: 1.23.2
SciPy: 1.8.1
Dask: 2022.6.1
VisPy: 0.10.0
OpenGL:

GL version: 4.6.0 - Build <IP_ADDRESS>2
MAX_TEXTURE_SIZE: 16384

Screens:

screen 1: resolution 1920x1080, scale 1.0

Plugins:

console: 0.0.6
morphometrics: 0.0.6.dev9+g7c2bb20
napari-svg: 0.1.6
napari-tools-menu: 0.1.17
napari_skimage_regionprops1: 0.5.4
napari_skimage_regionprops2: 0.5.4
scikit-image: 0.4.16

Additional context
My workaround at this moment is:

Close all my Jupyter Notebooks
In my command prompt run napari --reset
Reopen whichever Jupyter Notebooks I was running / working on

The napari 0.4.16 is not the latest released. Could you check if it still happens in 0.4.17?

Thanks for the quick reply!
The napari viewer still partially opens outside of my laptop screen, but with the newer version I am able to use the Windows taskbar icon to maximize it on my laptop screen and then continue working without any problems.

Great to hear you have it working--btw is that in the same env? so updated napari in place with the same Qt version? or new napari in new env, with new Qt?
You can post napari --info again I guess

Ok. So I think that I know the source of the problem. We restore the previous position of viewer without checking if the coordinates are fitting on the current screen.

@seraweevers Could you attach a sketch of how you position your displays?
I think that the source of the problem is in these lines:
https://github.com/napari/napari/blob/5bced982e57d8d5876884a8f18df6e3efb5084d7/napari/_qt/qt_main_window.py#L288-L291
W should not use only the primary screen but all screens and check if the image fits on any available screen.
I also meet negative coordinates that we do not check in any way.

Forgive me for my mediocre drawing. But this is the setup I use. The external display is positioned (vertically) above the laptop screen.

When you will have access to this monitor could you move the viewer on it open console and execute this line viewer.window._qt_window.pos() and paste output of command.
In my case it looks like this:
viewer.window._qt_window.pos()
Out[1]: PyQt5.QtCore.QPoint(2459, 353)

It indeed produces negative values, already when connected to the external screen.
napari_viewer.window._qt_window.pos()
Out[1]: PyQt5.QtCore.QPoint(-15, -2040)

Hi @seraweevers,
I am working on your issue at the moment. Could you confirm please whether this only happens when napari was not set to full screen on the external screen?

@seraweevers #5915 is open to fix the issue you have.

@melonora Just wanted to confirm here that the problem indeed only arises when not using napari in full screen. When I use the viewer in full screen on my external display and then disconnect and reopen napari, it opened full screen on my laptop display without any problems.

@seraweevers Thanks for confirming


Change from sercom to Hardware-Serial

The original ALEDD uses Sercom to talk to the KNX-BCU. Change this to Hardware-Serial of the ItsyBitsy M0

Works great!


feat: update sdk version to v21.126

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

Comparison is base (5f7a0ef) 100.00% compared to head (8dd8689) 100.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##            master       #29   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           19        19
  Lines         2539      2539
=========================================
  Hits          2539      2539

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

run fitgen 21.126


Update site IA (information architecture)

We will be publishing new content on the Salt website, so need to revisit our IA and top-level site navigation to ensure we can accommodate that new content.
Obviously, we want our IA to be reasonably stable, but we can't predict the future so the deliverable for this issue is an agreed IA structure we're confident will last at least 6 months. If changes to the IA and nav are needed past that timeframe, that's acceptable.
### Tasks
- [ ] Agree and document new IA
- [ ] Update site's top-level navigation UI as needed
- [ ] Move/rename existing pages as needed
- [ ] Setup a means to measure how well the new IA is performing (or not)

Known and expected content
Here is a list of pages and sections we already have or expect to publish over the next 6 months or so. The IA we come up with should prioritize accommodating this content in a sensible way. Please add more items if I've missed anything.

Homepage
Component status
Component gallery page (see #1288)
Per-component docs pages (see epic #562 for more info)
Per-pattern docs pages (documentation template work for that is being done in #1196, page designs would follow later)
Getting started for designers
Getting started for developers
Roadmap
Support & contributions
Research approach and methods
Typography foundations (see #1466)
States foundations (see #1467)
Layout foundations (see #1468)
Duration foundations (see #1469)
Elevation foundations (see #1470)
Opacity foundations (see #1471)
Iconography foundations (see #1472)
Color foundations (see #1473)
Division foundations (see #1474)
Scale foundations (see #1475)
Modes foundations (see #1476)
Spacing foundations (see #1477)
Density foundations (see #1478)
Data Visualization (see #1388)
Developer principles (see #1131)
Content design guidelines (see #1059)
Characteristics/design tokens
Salt team page?
Contribution guidelines
What is Salt?
Who is Salt for?
The ecosystem
Partners (might eventually overlap with the proposed community showcase - see #1209)
Case studies
FAQ

External links

GitHub
Blog (on Medium)
Figma community page
Release notes (on GitHub)

Copying some internal discussions about the new IA below as comments for future reference. Please continue the discussion in this issue via comments.

From @shinytoyrobots on 30. March:

As @JoanaMMoreira demo’ed yesterday, the Salt site has been rebuilt on Mosaic architecture.
To follow up on that work, now we can start looking at expanding the scope and scale of our content – both to provide guidance to design system users, and also to influence the ongoing design and development work of the site to be more content-driven.
I put together a draft sitemap as a potential starting point; keeping in mind that we can iterate quickly and revise based on feedback and analytics, as we create content.
About Salt

What is Salt?
Who is it for?
The ecosystem
Our roadmap
Releases
Partners
Case studies
Our research approach

Getting started

Designers
Developers
Contributing
FAQ

Guidelines

Content
Architecture

Principles

a11y
Density
Color
Typography
Etc…

Toolkit

Components
Patterns
Tokens
Design kits
Community catalog
Icons

From @sion-docs on 31. March:

Looks good.
In terms of content, with the new Partner initiative I think we need to be engaging users a bit more and even giving them a voice. Case studies moves towards this, but regular blogs and things like interviews would be a really good way to make them feel part of a dialogue rather than them just getting the content we deliver them. Eventually if we could curate things like videos or podcasts where our partners are the ones telling other users how they used Salt that would be great.

From @shinytoyrobots on 3. April:

The discussion I’ve had with Tanya around the blog, and my general preference, is to use an external blogging platform like Medium or Substack. Several other design system teams do this (Polaris, Carbon, etc).
It provides greater discoverability, it reduces the need for us to engineer anything in our site (we can, of course, link out). We can connect articles to related topics, but it should be more about thought leadership imo, and certainly less focused on “news of updates/releases”.

From Mitch Rose on 3. April:

I agree an external platform with a focus on thought leadership and case studies is the best approach for the blog.

From @james-nash on 3.
A few thoughts:

I agree with @pseys’s suggestion of using “Foundations” over “Priniciples”

With the slight caveat, that if we had a set of overarching principles (akin to SalesForce Lightning’s “Clarity, Efficiency, Consistency & Beauty”), we’d still need a “Principles” page somewhere. But the stuff we have about usage of color, typography, space, etc. feels more at home in a section labelled “Foundations” IMHO.

I agree with @bhoppers2008’s suggestions around a11y content (i.e. surface it where relevant – e.g. on component pages or design foundations.

I also second his suggestion of having an a11y page under guidelines that outlines the higher-level approach or motivations

On the subject of blogging, I’m certainly keen for us to have one and to use it to publish thought leadership content.

I am a little weary of using a 3rd party platform like Medium to do it though. Yes, they’re convenient and have big audiences. But we’re then also subject to the whims of an external company who wants to monetize our content. It might also make automated integrations of blog posts into other sections of our site harder. For example, let’s say we have a blog post that somehow relates to Data Grid. Wouldn’t it be neat if the Data Grid component page automatically displays a link to that post (and vice versa). It’s probably still doable via APIs, but we’ve then got to align tags (or whatever metadata connects those things) on 2 separate platforms in order for those kinds of integrations to work. Perhaps we can aspire to the POSSE model (Public (on your) Own Site, Syndicate Elsewhere). We could have our own blog within the site, which has the canonical versions of the posts. But we (perhaps with the help of automation) publish copies in places like Medium to reach a wider audience.
FWIW, I wouldn’t object to starting with only an external blog, but I’d very much like the longer term goal to having our own blog as the official source.

While agree with grouping components, patterns, tokens, etc. into one section, I’m not sure about calling it “Toolkit”. I guess it might be familiar to JPM folks who have experience of UITK. But, to me at least, the word “tool” in the context of design systems makes me think of applications that consumers use to get stuff done (e.g. Figma, IDEs, plug-ins, CLI utilities, etc.). I therefore think of components, patterns, tokens, etc. as static things we give to consumers to be used via their tools. Carbon calls the equivalent section on their site “Assets”, which feels like a better fit to me. However, I’m also weary of us already copying lots of ideas from Carbon, so if anyone has a better suggestion I’m all ears!

From @shinytoyrobots on 3. April:

Just on that final point…
Using “Toolkit” is definitely used primarily to maintain a thread between UITK and Salt. I think there’s some perception benefits in doing so.
I agree “Assets” (or similar term) might be more fundamentally accurate term.
I guess it’s a discussion about both how much importance we want to place on maintaining that UITK -> Salt thread, and how we might go about that.

From Mike Brown on 3. April:

Thanks for all the feedback around the IA. We’re going to take the suggestions and use it to build out a finalised version, working with the research team to find out what works best as our approach.
On the blog front, I lean towards Medium but appreciate James’ note that we are at the whims of a third party. My concern is whether we would be able to reach the same size audience without Medium, and publishing in two places could lead to confusion around which link to publicise and share. I like the idea of starting with Medium and moving to an official blog later, especially in the early stages as we’re looking to build excitement externally.
I plan to build out a content strategy that we can use to make the case for an external blog — would be great to use it to walk readers through unique development challenges, or thought leadership pieces like Robin mentioned.

From @shinytoyrobots on 3. April:

Yes – move ahead and then refine would be my aim.
I would like our research to be almost exclusively focused on insights and feedback based on something we’ve built, rather than something we’re thinking of building. 😊 i.e. we have our own hypothesis on why we’re doing something, and the impact it will have, and we should either validate or invalidate that based on feedback on our initial release.
So, in this case – we internally confirm the top level sitemap IA as a team, build that based, and research the impact on our defined aims and on our OKRs.

From Mike Brown on 4. April:

I have drafted the below IA based on Robin’s draft and some further research:

Other design system sites separate out patterns and components to provide fast access to each section
Guidelines and foundations merged into one to cover similar types of content that will be accessed less frequently
Dynamic content (community catalog, blog) given greater prominence

About Salt

What is Salt?
Who is it for?
The ecosystem
Roadmap
Releases
Partners
Case studies
Our approach

Getting started

Designers
Developers
Contributing
Design kits
FAQ

Foundations

Content
Architecture
A11y
Density
Color
Typography
Tokens

Components
Icons
Patterns
Community catalog

@mikearildbrown

@mikearildbrown I like it. Couple of thoughts:

The current Salt site has 'Support' in the navigation. It's very easy to find atm and could be important during the next 2yr migration. Thoughts on keeping that in the nav?
There are 7 items (potentially 8 with Support)... is that too much for the site nav?
Bundling everything into Foundations concerns me a little. @pseys's approach to the new foundations pages forms a sort of guide to visual design using the system. Will it be diluted by putting other 'stuff' in there?

Random suggestion...Should/could foundations be in Getting started, under 'Design' and 'Dev', depending on what the foundation relates to (design foundation or tech foundation)? How important is it that 'Foundations' is top level?

Could A11y be in Getting Started? I'm still not sure what this 'page' would document, but it it's our strategy for accessibility perhaps this might be an appropriate section?

Whilst it's not high priority, can we pencil in a place for Training content?

We do something similar already:

Our always-present app header shows only level 1 links
Pages within "Getting started" add a left-hand vertical nav with level 2 links (and our components section will be doing the same)

What I meant was, perhaps we might consider having an always-present nav that accommodate more links at once. That may or may not be a vertical nav.

FYI: As mentioned in the issue description above, the priority here is to come up with an IA that's good enough to house what we anticipate adding over the next 6 months or so.
If our IA can live longer than that, that's great. But, if we need to significantly rejig it at that point to accommodate new content and/or in response to user feedback, then that's fine too.
To help inform this discussion, I'm therefore gathering a list of existing and expected content we expect to publish on our site over the next couple of quarters. I've added it do the issue description above and will refine/update as I find out more and we begin to prioritise things.
For now, it's a big list of all content-related issues we already have and a few other things that have been talked about here and there.
Feel free to add more items that I've missed.

@shey-v for visibility

@mikearildbrown Looks good.

Can we agree what A11y will be. If it's just us clarifying our stance on accessibility at a strategic level should it be in getting started?
What's the reason for community catalog as a separate area of the site? Should community catalog just be a view in the component and pattern areas respectively? Seems like extra work for consumers to find 'stuff' if we're separating community components/patterns into a different part of the site from core components/patterns.

@mikearildbrown That structure's looking good. I'm a little confused by what "Branding" and "Content" are doing alongside Salt though. Perhaps that's what you meant by this:

we have three pillars to the site and Salt is one of three

Can you elaborate? The site is the Salt site. Are you suggesting there may be additional branding and content sites at some point?
@bhoppers2008, yes, I think we need to flesh out what a11y page(s) and content we anticipate having. I would suggest we could look into producing some or all of the following:

A11y advice for Salt consumers (could probably like under "Foundations" in Mike's suggested IA). This page/section could cover stuff like:

What a11y concerns Salt does and does not take care of for you? (i.e. make it clear there's still a fair amount of responsibility on consumers to get it right)
Suggested approach to incorporating a11y into your overall project (i.e. consider it from the start - don't leave it to the very end)
Links to useful resources and further reading (e.g. W3C WAI patterns, Deque university, Microsoft's Inclusive Design site, etc. etc.)

Statements about Salt's own a11y conformance & goals (this probably belongs somewhere under "About Salt" and may not even warrant a whole page, but could be a section somewhere)

Something along the lines of: "the Salt components and theme aim to meet or exceed all relevant WCAG 2.1 success criteria. If you find issues, please report them here. etc. etc."
Note that this would be about what our DS itself (React components, Figma libs, etc.) supports - not the Salt website itself (which is a thing built with Salt).

Per-component a11y info (we already have a tab for this in our upcoming component page layout, but I think there's more content that could eventually live in there):

Best practices: I.e. stuff you need to know when using this specific component (e.g. on buttons we mention about when you do/don't need an accessible label for an icon in the button)
Keyboard usage: Document the supported keyboard interactions that the component has
Known limitations & deviations: List of a11y limitiations (e.g. due to 3rd party dependencies out of our control) and/or intentional deviations from the standards
Known bugs: List of open a11y bugs on this component (stuff we acknowledge is a bug and we intend to fix)

Salt website accessibility statement (probably a footer link alongside stuff like "Terms of use" and "Privacy policy").

This would be outlining the a11y commitments the Salt website makes, known issues, how to report a problem, etc.
See https://www.w3.org/WAI/planning/statements/ for more info on a11y statements in general

Beyond that, I guess there may be lots of little ad-hoc a11y mentions and tips in relevant sections. For example, our color foundations docs probably should say something about how to use our characteristics to achieve sufficient contrast rations, the typography foundations might say something about minimum text sizes and honoring the user's default text size preferences, etc. etc. But, I'd consider those just part of those other pages' contents and thus not standalone things we need to write and accommodate in our IA / nav.

What's the reason for community catalog as a separate area of the site? Should community catalog just be a view in the component and pattern areas respectively?

Yes, that's my expectation too. Rather than a single "community catalogue" somewhere on a our site, I want us to expand sections like Components, Patterns, etc. to be able to list satellite DS's components / patterns / etc. alongside our own. I've written up the concept in this epic issue: #1205

There is some confusion here. Branding and Content may be broader pillars of a design industrialization "umbrella" of sites and services, but that is a separate consideration from how we build out the Salt site.
The community index is, most likely, going to be visible only internally - as I would expect the assets there to be broadly business specific and not open sourced. But we should be moving towards convergence of those indices. And I would argue that actually we want to break down the distinctions between "core" and "community" over time, to continually further democratize the contribution model.
The best analogy I can draw is something like the AWS catalog - where everything exists within the same index, but there are clear markers of that is AWS and what is 3rd party produced/maintained.

I think it ends up being practically irrelevant to make clear the three pillars until we have at least two pillars. ;) (In the sense that it doesn't have a significant impact on how we present the Salt site itself).
I think the robustness of content and the numerous categorizations implies the need for a vertical left hand navigation rather than a top nav - we'll end up forcing it to be too cluttered.
Refining your previous proposal with most recent thoughts...
Top navigation

Home (logo on far left)
Search bar
(future) "site switcher" to move, e.g., between pillars

Left navigation

About Salt

What is Salt?
Who is it for?
The Salt ecosystem
Roadmap
Releases
Partners
Case studies
Research approach and methods
News
Blog
FAQs

Designing

Get started
Design kits
Tutorials
Other resources

Developing

Get started
Tutorials
Other resources

Contributing

Introduction / overview

must include Contributor licensing

Bug fixes
Feature requests
Documentation
Components
Patterns
Icons
Tools and add-ons

Guidelines

a11y
Architecture (high level developer / code architectural considerations - this could also go in the "Developer" section)
Content

Foundations

Density
Color
Typography
Tokens
etc

Assets (nav section title, but not a link)

Components

Index
Accordion
Button
etc...

Patterns

Index
Login flow
Dashboard
etc...

Icons
Community catalog

Footer

Terms of use
Privacy policy
Feedback
Bug report
Feature request
Contact us

We need to start populating some of this content - especially getting our roadmap updated and published.
@shey-v @JoanaMMoreira - it feels like this requires at least an initial implementation of https://github.com/jpmorganchase/salt-ds/issues/1054 (Vertical Nav) to cater for the expanded content. What do you think?

Now that we've added Nav Item to the backlog perhaps we can get together @shey-v @JoanaMMoreira to discuss feature requirements to support Vertical and Horizontal Navigation patterns. @joshwooding and I have already started knocking a few requirements together, including:

Orientation support (vertical, horizontal)
Activation bar at top–rather than bottom–aligned to navigable characteristic.
Activation bar custom colour support.
'Always on' as optional (ie., Bar doesn't have to stay visible/no toggle state).

'Level' to drive label inset amount.

'Parent item' as bool to determine presence of arrow (to right in vertical nav, at bottom in horizontal nav).
Pattern examples of stacked nav items, horizontal and vertical.
Pattern example of nav item 'nesting'.
Pattern example of nav item with nested cards (MCP).
Pattern example of nav item with nested mega menu (MCP).

Sounds good! It would also be good to loop in the Mosaic team so they can add our component into Mosaic

re: FAQs
In a discussion with a potential stakeholder they asked the following questions
By no means a full set but a good sample created by a real user.

what browsers do you support?
what framework dependencies do you have?
how often do you release breaking changes?
what accessibility standard do you support?
how big is the core development team?
how do we add components to our own product which might not exist in Salt Design system?

I agree that we can't contain more content than that in a horizontal navigation. Though I think we capture a lot of extra richness here.
I'd re-order Home | **About** | Getting started | Foundations | Components | Support and contributions
(We could probably also give ourselves a little more flexibility if we dropped Home as an actual nav option and just used the top left logo as that fairly standard pattern)

Yes, we're planning to do some updates and a release for the guide - it makes sense to do this as part of a migration to Salt (I've been chatting to James about this). The amount of content in the guide is significant, meaning that although we plan to build it out, it already feels like it qualifies as a pillar. One other thing is that we've just been promoting the fact that we've moved Content to a global nav item on UITK, so if we're now going to be redirecting users to Salt, it will seem odd UX for them to find Content a bit hidden under Foundations when they get there.

Ha - sorry - I meant Guidelines, not Foundations!

@mikearildbrown everything should be possible. Did you have any concerns?


Whitelist all of HTML spec safelisted schemes.

Testing plan:
Ideally, we'd generate sample URI fixtures for each schemes?
GIFs or screenshots:

I pushed a revised version of this after consultation with @andersk; I'll merge after CI passes.
Would you be up for doing a follow-up PR to remove file:// link support?  Browser security models have changed in a way that makes that feature no longer exist at the browser level, so we should probably remove the ability to make useless file:// links at this point.

Would you be up for doing a follow-up PR to remove file:// link support?

OK, after this PR is merged.

Merged, thanks @rht!


[dev] SOURCE SHIFT: transfer home page divide and conquer notes from local files to vault source

DONE


Adding an option to choose a specific IP of the server

It will be very nice if you can add the option MultiHome here:
https://github.com/FezVrasta/ark-server-tools/blob/master/tools/arkmanager#L125

in the dev branch 1.1 you can add any parameter you want. We'll release it soon


Difference between enabling diagnostic settings and Application Insights for API Management

It's not clear what the difference is between enabling Diagnostic Settings to write to a Log Analytics Workspace and enabling Application Insights in API Management as they both use a Log Analytics Workspace.
Does one provide more detail than the other or should both be enabled? If they are both enabled then will some data be logged twice (and therefore charged twice)?
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: c26c1996-853e-9a55-5802-8c4095d545b9
Version Independent ID: 437f5553-6914-c0ef-9370-bb11d3a0fa4b
Content: Integrate Azure API Management with Azure Application Insights - Azure API Management
Content Source: articles/api-management/api-management-howto-app-insights.md
Service: api-management
GitHub Login: @mikebudzynski
Microsoft Alias: apimpm

@pholding Thanks for the feedback! We will review and update accordingly.


Bitcoin Checker not functioning well 3/3/2024

Observed that the app doesn't update prices like before. It takes some hours just to update price even after i set my refresh interval to 1min.

Seems it only applies to Binance.. Maybe there has been an update to their price ticker.

And now Kraken. Still can live with that


Update logo of KonTActs

KonTActs now contains a logo that was designed to better meet represent the purpose of the application.

Closes #249

Maybe we can add it beside "KonTActs" on the home page as well!

Good point. I'll add it in a separate pr


Having problem to use the Reshape in Keras

OS Platform and Distribution (e.g., Linux Ubuntu 16.04):  Windows 10
TensorFlow backend (yes / no):  yes
TensorFlow version:  1.13.1
Keras version:  2.24-tf
Python version:  3.6.8
CUDA/cuDNN version:  10.0
GPU model and memory:  GeForce GTX 750 Ti

Describe the current behavior
When using Reshape layer of Keras and -1 is used to infer the shape, the output shape is incorrect.
Describe the expected behavior
Code to reproduce the issue
from tensorflow.python.keras.layers import Input, Lambda, Conv2D, Reshape, TimeDistributed
from tensorflow.python.keras.models import *
import tensorflow.keras as keras
a = Input(shape=(12,), dtype = 'int32')
# a.shape == (None, 12)
d = Reshape((-1, 2, 2))(a)
# actual result： d.shape == (None, None, 2, 2)
# expected result： d.shape == (None, 3, 2, 2)

I was able to reproduce the issue. GitHub gist is here. I have tried the same with TF2.0-beta also and the result is same. Here is the gist . Thanks!

Issue seems to persist even after using K.reshape.
from tensorflow.python.keras.models import *
import tensorflow.keras as keras
from keras import backend as K

a = Input(shape=(12,), dtype = 'int32')
d = K.reshape(a,(-1, 2, 2))

Reshape layer use tf.reshape() when using tensorflow backend and tf.reshape() won't deduce the shape when two undetermined dims are presented.
That's what happened when you use -1 in reshape because the batch channel is also undetermined.
(Code)[https://github.com/keras-team/keras/blob/9080613dbc6f0840d7544bccc416121f0864a7fd/keras/layers/core.py#L402] here indicate that they already put batch channel in the reshape so adding another -1 for shape prediction is impossible.


[FLINK-7617] Remove string format in BitSet to improve the performance of BuildSideOuterjoin

What is the purpose of the change
Remove string format in BitSet to improve the performance of BuildSideOuterjoin
Brief change log

BitSet.set
BitSet.get

Documentation

Does this pull request introduce a new feature? (no)

Performance

HashVsSortMiniBenchmark: use buildSideOuterJoin
testBuildFirst:       16s 208ms(before)    10s 98ms(after)
testBuildSecond:    7s 793ms(before)     6s 67ms(after)

R: @KurtYoung

Thanks @JingsongLi for your contribution
LGTM, +1 to merge
cc @fhueske @StephanEwen

+1 to merge this

Hi @KurtYoung, do you want to merge this to the release-1.3 branch as well?

@fhueske sure


[BlobStoreCompaction] Always enable target index duplicate checking to ignore duplicate PUTs

We experienced a compaction error due to duplicate PUTs in log. This is a weird error since there shouldn't be any duplicate PUTs in the log. However, it takes too long to figure out why it happened. Before we fully understand the root cause, this is a bandage to temporarily fix the issue.
We can always check the duplicates in target persistent index while we are check if a IndexValue is a valid one or not. If it's a duplicate of certain IndexValue in target persistent index, then it's not a valid one. This logic would ignore the duplicate PUT and mark it as invalid.

Codecov Report

Merging #1660 into master will increase coverage by 0.02%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master    #1660      +/-   ##
============================================
+ Coverage     73.53%   73.55%   +0.02%
- Complexity     8731     8735       +4
============================================
  Files           621      621
  Lines         48012    48014       +2
  Branches       6059     6059
============================================
+ Hits          35304    35317      +13
+ Misses        10864    10856       -8
+ Partials       1844     1841       -3

Impacted Files
Coverage Δ
Complexity Δ

...main/java/com/github/ambry/config/StoreConfig.java
100.00% <100.00%> (ø)
1.00 <0.00> (ø)

...ava/com/github/ambry/store/BlobStoreCompactor.java
90.52% <100.00%> (+0.28%)
122.00 <0.00> (+2.00)

.../main/java/com/github/ambry/router/PutManager.java
87.09% <0.00%> (-1.30%)
30.00% <0.00%> (ø%)

...ain/java/com/github/ambry/router/PutOperation.java
92.89% <0.00%> (-0.49%)
124.00% <0.00%> (-1.00%)

...ava/com/github/ambry/router/NonBlockingRouter.java
79.16% <0.00%> (-0.42%)
55.00% <0.00%> (-1.00%)

...va/com/github/ambry/replication/ReplicaThread.java
83.35% <0.00%> (-0.13%)
130.00% <0.00%> (-2.00%)

...n/java/com/github/ambry/store/PersistentIndex.java
91.51% <0.00%> (+0.10%)
263.00% <0.00%> (+1.00%)

...java/com/github/ambry/router/GetBlobOperation.java
90.79% <0.00%> (+0.15%)
49.00% <0.00%> (+1.00%)

...in/java/com/github/ambry/store/BlobStoreStats.java
85.30% <0.00%> (+0.17%)
138.00% <0.00%> (ø%)

... and 6 more

Continue to review full report at Codecov.

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


Bugfix/meson build issue

Meson build will not let multiple people working on a box to build. It leads to conflict as it is stored to the /tmp/ directory. This leads to issues if you have multiple people with same box/level access on a machine. This build change fixes that so instead it uses /tmp/tmp.<random_UID>/ to store the libcndp.so file and libcndp_pmds.a file.

Submitted upstream, going to close this WIP PR


make sure that scipy solver is proper linked against lapack/blas using openmp

on alex:
>>> print(np.__config__.show())
Build Dependencies:
  blas:
    detection method: pkgconfig
    found: true
    include directory: /usr/local/include
    lib directory: /usr/local/lib
    name: openblas64
    openblas configuration: USE_64BITINT=1 DYNAMIC_ARCH=1 DYNAMIC_OLDER= NO_CBLAS=
      NO_LAPACK= NO_LAPACKE= NO_AFFINITY=1 USE_OPENMP= HASWELL MAX_THREADS=2
    pc file directory: /usr/local/lib/pkgconfig


Prometheus 2.12.0 panics?

Hi,
Updated to HEAD this morning:
level=info ts=2019-08-19T15:34:34.047Z caller=main.go:329 msg="Starting Prometheus" version="(version=2.12.0, branch=HEAD, revision=43acd0e2e93f9f70c49b2267efa0124f1e759e86)"
level=info ts=2019-08-19T15:34:34.048Z caller=main.go:330 build_context="(go=go1.12.8, user=root@7a9dbdbe0cc7, date=20190818-13:53:16)"
level=info ts=2019-08-19T15:34:34.049Z caller=main.go:331 host_details="(Linux 4.14.134-boot2docker #1 SMP Mon Jul 22 20:22:16 UTC 2019 x86_64 d63665af60aa (none))"
level=info ts=2019-08-19T15:34:34.049Z caller=main.go:332 fd_limits="(soft=1048576, hard=1048576)"
level=info ts=2019-08-19T15:34:34.049Z caller=main.go:333 vm_limits="(soft=unlimited, hard=unlimited)"
panic: runtime error: slice bounds out of range
goroutine 1 [running]:
github.com/prometheus/prometheus/promql.parseBrokenJson(0xc0008db000, 0x4e21, 0x4e21, 0x2a6b7c0, 0xc00077a3f0, 0x0, 0x0, 0xc00028e1c0)
/app/promql/query_logger.go:45 +0x131
github.com/prometheus/prometheus/promql.logUnfinishedQueries(0xc00028e1c0, 0x1a, 0x4e21, 0x2a6b7c0, 0xc00077a3f0)
/app/promql/query_logger.go:70 +0x552
github.com/prometheus/prometheus/promql.NewActiveQueryTracker(0x7ffc471c3e7f, 0xb, 0x14, 0x2a6b7c0, 0xc00077a3f0, 0x2a6b7c0)
/app/promql/query_logger.go:108 +0x131
main.main()
/app/cmd/prometheus/main.go:361 +0x52bd
Is there any migration necessary between 2.11.1 and 2.12.0 .
Best regards.
Peter

Sorry for the delayed response, have been away on holidays.
I did not have any issues upgrading and no migration was necessary.
Looking on the Prometheus github it looks like people experiencing the same issue restarted without any issues, does the issue keep recurring after a restart?

still does :-(

I've tried this on a several different machines with different specs both, fresh installs and old and I cannot replicate the issue, I would suggest lodging an issue over at https://github.com/prometheus/prometheus/issues with all the detail requested to see if they might be able to help.


Add option not to remove tmp directory when doing convert_olmo_to_hf_new.py

Attempting to remove it causes an error when using NFS.

I'll split this out into 2 separate PR's and do again.


Add comment for future developers

Warning! No news item is found for this PR. If this is a user-facing change/feature/fix, please add a news item by copying the format from news/TEMPLATE.rst.

@sbillinge Would we want to create a news item for this? Thought maybe editing past news file would cause the check to pass lol...

Ah, further to my review comments, I see that the edits to the news were editing a previous news to make it better....so kudos for that!  Please ignore that part of my comments!

thanks @cadenmyers13 . We don't want a news for this one because there is already a news for this issue so it will be duplicated in the changelog.
Also, the commit messages are not up to standard and there appears to be multiple commits for a PR that just adds a one line comment.
I will close this.  Could you do it over maybe?
Also, I see a comment that says # when.  Is this providing the user useful information?  I doubt it.
I would love it if we could try and raise our aspirations for code quality and take ownership of our projects, like our children that we want to be proud of.  It means loving the code a bit and always trying to think of ways to make it better.

Got it! Will do. I made multiple commits because I was dissatisfied with wording (I was being indecisive). I can clean it up and make a new PR tomorrow.

In that case multiple commits are ok, but you need to commicate through the commit messages.  That is one reason (not the only one) why they are so important.


Callable error

I can't run tool :(
/home/kali/Desktop/CloudFail/cloudfail.py:180: SyntaxWarning: "is not" with a literal. Did you mean "!="?
while choice is not 'y' and choice is not 'n':
/home/kali/Desktop/CloudFail/cloudfail.py:180: SyntaxWarning: "is not" with a literal. Did you mean "!="?
while choice is not 'y' and choice is not 'n':
/home/kali/Desktop/CloudFail/cloudfail.py:180: SyntaxWarning: "is not" with a literal. Did you mean "!="?
while choice is not 'y' and choice is not 'n':
/home/kali/Desktop/CloudFail/cloudfail.py:180: SyntaxWarning: "is not" with a literal. Did you mean "!="?
while choice is not 'y' and choice is not 'n':
/home/kali/Desktop/CloudFail/cloudfail.py:182: SyntaxWarning: "is" with a literal. Did you mean "=="?
if choice is 'y':
Traceback (most recent call last):
File "/home/kali/Desktop/CloudFail/cloudfail.py", line 9, in
import socks
File "/home/kali/Desktop/CloudFail/socks.py", line 62, in
from collections import Callable
ImportError: cannot import name 'Callable' from 'collections' (/usr/lib/python3.10/collections/init.py)

Hello, try this
sed -i 's/from collections import Callable/from collections.abc import Callable/g' socks.py

i got this:
Traceback (most recent call last):
File "/home/kali/CloudFail/cloudfail.py", line 17, in
from DNSDumpsterAPI import DNSDumpsterAPI
File "/home/kali/CloudFail/DNSDumpsterAPI.py", line 13, in
from bs4 import BeautifulSoup
File "/usr/local/lib/python3.10/dist-packages/bs4/init.py", line 35, in
from .builder import builder_registry, ParserRejectedMarkup
File "/usr/local/lib/python3.10/dist-packages/bs4/builder/init.py", line 7, in
from bs4.element import (
File "/usr/local/lib/python3.10/dist-packages/bs4/element.py", line 5, in
import Callable
ModuleNotFoundError: No module named 'Callable'

Hmm, i you have just to edit line 62
Replace this "from collections import Callable"
with this "from collections.abc import Callable"
on file socks.py, but you also have errors about bs4, did you run the installation instructions?


Test | Skip Host Name In Certificate Unit Test for Named Instance Sql Server

This PR is no longer needed as another PR replaces it,


Shift + End selecting the project name not always work

Discord username
No response
What type of issue is this?
Intermittent – Occurring irregularly
Is this issue blocking you from using Enso?

[ ] Yes, I can't use Enso because of this issue.

Is this a regression?

[ ] Yes, previous version of Enso did not have this issue.

What issue are you facing?
When I want to Shift + End select the project name to rename it sometimes skips the shift and moves the cursor to the end instead of selecting it.
https://user-images.githubusercontent.com/108271897/235890843-0e324804-f1ec-4b27-89da-e037203e84c2.mp4
Expected behaviour
Shift + End always selects entire text after the cursor
How we can reproduce it?
repeat the sequence of:
Home -> Shift + End
several times
Screenshots or screencasts
No response
Enso Version
2023.5.2 nightly
Browser or standalone distribution
Standalone distribution
Browser Version or standalone distribution
standalone
Operating System
Windows
Operating System Version
Win11pro 22H2 22621.1555
Hardware you are using
12th Gen Intel(R) Core(TM) i9-12900HK / RTX3060 Laptop / Nvidia Drivers 531.68

I can't reproduce it myself on MacOS, might be hardware- or OS-related issue

No longer supports editing so deprecated issue.