RFC: Introduce server-side data fetching for components

Which scope/s are relevant/related to the feature request?
platform
Information
This would add inline/external for components to fetch data, and be exposed to the component through an injectable function.
Requirements

Loaders would be inline/external to the component code

Loaders would be tree-shaken from the browser bundle

Code from the loader would run server-side only, with some glue code to run on the client
Type-safe API

Inline
// page.component.ts
import { AsyncPipe, JsonPipe } from "@angular/common";
import { Component } from "@angular/core";
import db from './db';

import { useLoader } from "@analogjs/router";

export const loader = async() => {
  const items = db.getItems();

  return {
    items: items
  };
};

@Component({
  selector: 'app-test',
  standalone: true,
  imports: [AsyncPipe, JsonPipe],
  template: `
    Test works

    {{ data$ | async | json }}
  `
})
export default class TestComponent {
  data$ = useLoader<typeof loader>(); // <-- { items: Item[] }
}

External
// page.server.ts
import db from './db';

export const loader = async() => {
  const items = db.getItems();

  return {
    items: items
  };
};

// page.component.ts
import { AsyncPipe, JsonPipe } from "@angular/common";
import { Component } from "@angular/core";
import { useLoader } from "@analogjs/router";

@Component({
  selector: 'app-test',
  standalone: true,
  imports: [AsyncPipe, JsonPipe],
  template: `
    Test works

    {{ data$ | async | json }}
  `
})
export default class TestComponent {
  data$ = useLoader<typeof loader>(); // <-- { items: Item[] }
}

Describe any alternatives/workarounds you're currently using
No response
I would be willing to submit a PR to fix this issue

[ ] Yes
[ ] No

What about dependency injection?
It would've been great to define loaders as methods on component classes.

Dependency injection works as normal on the client side, as it's a resolver that calls a backend API. The useLoader is a wrapper around the ActivatedRoute and a resolve property. Nothing too complex there to start. Loaders on route components feel too invasive and require going outside the normal component path

Dependency injection works as normal on the client side, as it's a resolver that calls a backend API. The useLoader is a wrapper around the ActivatedRoute and a resolve property. Nothing too complex there to start. Loaders on route components feel too invasive and require going outside the normal component path

I'm referring to dependency injection on the server side :)

Ahh, no its not doing that. I don't see much value in having DI there as you would mostly be using imports to access server-only code like Prisma, file-system access, etc.

Ahh, no its not doing that. I don't see much value in having DI there as you would mostly be using imports to access server-only code like Prisma, file-system access, etc.

I don't necessarily agree with that statement.

If you have some more concrete examples that would be great. Angular DI in SSR also assumes you're using the component as an API endpoint though, correct? I'm not intending to run Angular components on the server (yet 😉), so I'm trying to see where DI would fit in

How hard would it be to do something similar to NextJs and provide two loaders:

Like getServerSideProps who runs on every new request
Like getStaticProps which runs only on build time when static pages are built
Do you think there’s merit in doing that?
Interested to hear your opinion!

Those features are worth considering, but we don't necessarily have to mimic them as-is. NextJS is moving away from getServerSideProps and getStaticProps also with the 13.x release and app directory.

I didn't even know that until you pointed it out!
Seems like the tree shaken loader that you describe would be perfect then.
I need to try it, but I assume that Nitro automatically serves a pre-rendered route and if no static html exists it generates the page on each request. Then, having two functions definitely seems unnecessary.
I don't want to hijack this RFC with (sort of) unrelated things but looking at this NextJS documentation and this configuration option for Nitro made me think that it would be cool if you could add some config snippet (like 'use static'; or 'use swc'; ) to the top of the file and based on that the route would be marked as static, cached, etc.

Very much looking forward to this feature being available! Rich Harris had a recent talk that covered some of the important details and downfalls of these approaches which might be worth considering when deciding on the approach to take:
https://youtu.be/uXCipjbcQfM?t=1070
Key points:

Relying on tree-shaking can easily cause server code to be accidentally included in client-side bundle
Issues with source maps where they may include server code - leaking secrets/pose security issues

Thanks @ashley-hunter, I'll take a look. I've also been watching projects like TanStack Bling and I'm really interested in adopting this pattern. It supports server-only functions, as well as server-only imports.
You use the fetch$ function to wrap your call in, it returns you an RPC function to call using fetch, but everything inside the function is run on the server and not on the client.
import { fetch$ } from '@tanstack/bling'

const fetchFn = fetch$(async (payload) => {
  // do something
  return 'result'
})

fetchFn() <- Promise<string>

In Angular, we already have HttpClient so the thought is to have something like http$
import { http$ } from '@analogjs/platform/something';

const httpFn = http$(async (payload) => {
  // do something
  return 'result'
})

httpFn() <- Promise<string>

Where HttpClient does the work internally instead of fetch, so we could potentially take advantage of automatic cache transfer with Angular v16. Using the "loader" pattern would still be an option
// page.component.ts
import { AsyncPipe, JsonPipe } from "@angular/common";
import { Component } from "@angular/core";
import db from './db';
import { http$ } from '@analogjs/platform/something';

// runs on server
export const loader = http$(() => {
  const items = db.getItems();

  return {
    items: items
  };
});

Thoughts?

Thanks @ashley-hunter, I'll take a look. I've also been watching projects like TanStack Bling and I'm really interested in adopting this pattern. It supports server-only functions, as well as server-only imports.
You use the fetch$ function to wrap your call in, it returns you an RPC function to call using fetch, but everything inside the function is run on the server and not on the client.
import { fetch$ } from '@tanstack/bling'

const fetchFn = fetch$(async (payload) => {
  // do something
  return 'result'
})

fetchFn() <- Promise<string>

In Angular, we already have HttpClient so the thought is to have something like http$
import { http$ } from '@analogjs/platform/something';

const httpFn = http$(async (payload) => {
  // do something
  return 'result'
})

httpFn() <- Promise<string>

Where HttpClient does the work internally instead of fetch, so we could potentially take advantage of automatic cache transfer with Angular v16. Using the "loader" pattern would still be an option
// page.component.ts
import { AsyncPipe, JsonPipe } from "@angular/common";
import { Component } from "@angular/core";
import db from './db';
import { http$ } from '@analogjs/platform/something';

// runs on server
export const loader = http$(() => {
  const items = db.getItems();

  return {
    items: items
  };
});

Thoughts?

So https://qwik.builder.io ?

@marcus-sa not exactly. Qwik is much more fine-grained with its use of module extraction across the board. This isn't supported in Angular today, so this is isolated to data fetching

I really enjoy the simplicity that can be achieved through using TRPC, and compared to traditional, type-unsafe REST calls, reverting back to them can be quite painful. So I'm strongly in favour of a straightforward and type-safe approach like the one you are proposing.
I find the approach adopted by SvelteKit, where the code executed on the server is located in a distinct file labelled with .server in its name, to be quite nice. This approach has several advantages:

It makes it clear where this file is being executed.
It prevents any server-specific code (e.g. a database library) from being mistakenly imported by the client bundle.
It avoids the exposure of potentially sensitive information such as DB code through client sourcemaps.

But looking forward to a feature like this, will be very useful!

Definitely some good points in the talk to be considered! I like the .server files approach also. It would keep the Angular components clean and maybe less confusing for those coming to use Analog

Draft PR is up https://github.com/analogjs/analog/pull/446. Decided to go with the separate .server.ts support.

Draft PR is up #446. Decided to go with the separate .server.ts support.

This is awesome! Just for my understanding the load function would be executed on the server and transfer the data via TransferState?
Also, is it possible to pass the H3 event as a param to the load function?
So excited for this 🚀🚀🚀🚀🚀

Yes. The load function/resolver is like an RPC. Its called through an API endpoint on the server via HttpClient, and returns the results. That way it can be used with TransferState also without any extra work.
The H3 event is passed to the load function also. Need to add some types for the load function also
On the server call
load({
  params: event.context.params, // params/queryParams from the request
  req: event.node.req, // H3 Request
  res: event.node.res, // H3 Response
  fetch: $fetch // allows you to call API internal endpoints without an additional network request
});

// index.server.ts

export const load = async ({ req, res, params, fetch }) => {
  return {
    data: true,
  };
};

Draft PR is up #446. Decided to go with the separate .server.ts support.

This is awesome! Just for my understanding the load function would be executed on the server and transfer the data via TransferState?
Also, is it possible to pass the H3 event as a param to the load function?
So excited for this 🚀🚀🚀🚀🚀

Yes. The load function/resolver is like an RPC. Its called through an API endpoint on the server via HttpClient, and returns the results. That way it can be used with TransferState also without any extra work.
The H3 event is passed to the load function also. Need to add some types for the load function also
On the server call
load({
  params: event.context.params, // params/queryParams from the request
  req: event.node.req, // H3 Request
  res: event.node.res, // H3 Response
  fetch: $fetch // allows you to call API internal endpoints without an additional network request
});

// index.server.ts

export const load = async ({ req, res, params, fetch }) => {
  return {
    data: true,
  };
};

It'd be great if it could be abstracted away so that one could use Deepkt RPC for example.


sage: don't override pari

Motivation for this change
Getting pretty close to the goal of no dependency overrides for sage :)
Sage assumes that pari does not use threads. However instead of
disabling them at compile time, we can diable them at runtime instead.
As a result, sage doesn't need its own version of pari anymore. That
means less rebuilds, less complexity and easier debugging.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
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 nox --run "nox-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)
[ ] Fits CONTRIBUTING.md.

No attempt on aarch64-linux (full log)
The following builds were skipped because they don't evaluate on aarch64-linux: sage
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnfree = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnfree = true; }
to ~/.config/nixpkgs/config.nix.

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: sage
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

Success on x86_64-linux (full log)
Attempted: sage
Partial log (click to expand)
configuring
building
installing
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/w1yw5i94j45vv122m81c7nghzpv2x42v-sage-wrapper-8.3
strip is /nix/store/1hi76hr87bd1y1q1qjk0lv8nmcjip1c8-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/w1yw5i94j45vv122m81c7nghzpv2x42v-sage-wrapper-8.3/bin
patching script interpreter paths in /nix/store/w1yw5i94j45vv122m81c7nghzpv2x42v-sage-wrapper-8.3
checking for references to /build in /nix/store/w1yw5i94j45vv122m81c7nghzpv2x42v-sage-wrapper-8.3...
/nix/store/w1yw5i94j45vv122m81c7nghzpv2x42v-sage-wrapper-8.3


Don't Merge! PR real time test for webhook case

Docs Build status updates of commit 9898f64:
:clock10: Full build: the average full build time is 5 min(s) 56 sec(s), this is based on the last 688 build(s) for this repository.

Docs Build status updates of commit 9898f64:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

docs-ref-conceptual/testing.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Configure Azure Pipelines

This configuration builds the application and produces builds for both Debug and Release configurations.

 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.:x: erikschaberg sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


Carvana Pre-trained Weights

Are the pre-trained weights using the Carvana dataset available for either VGG11 or VGG16? Thanks.

Could the author provide the pretrained model on Carvana? :)


chore: add more friendly warnings

As the title

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 51.37%. Comparing base (121df0a) to head (af9ecec).
Report is 2 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #671      +/-   ##
==========================================
- Coverage   52.66%   51.37%   -1.29%
==========================================
  Files         172      129      -43
  Lines       11334    10721     -613
==========================================
- Hits         5969     5508     -461
+ Misses       5044     4896     -148
+ Partials      321      317       -4

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


Rework of OEE, Performance, Quality and Availability

Description
This PR includes a couple of updates realted to CalculateOEE, CalculatePerformance, CalculateQuality and CalculateAvailability. These functions have not been touched for at least a year now, so they need some updates.
Involves #23, and Zendesk ticket 40
Type of change
Please delete options that are not relevant.

[ x ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Test A
[ ] Test B

Test Configuration:

Kubernetes Version:
Helm Version:
Hardware:

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules
[ ] I have checked that my issue complies with the Contributing guidelines

Codecov Report

Merging #1194 (c35b89c) into main (691b3bf) will decrease coverage by 0.13%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main    #1194      +/-   ##
==========================================
- Coverage   13.02%   12.88%   -0.14%
==========================================
  Files          29       29
  Lines        7932     8018      +86
==========================================
  Hits         1033     1033
- Misses       6827     6913      +86
  Partials       72       72

Impacted Files
Coverage Δ

golang/cmd/factoryinsight/dataprocessing.go
31.83% <0.00%> (-0.14%)
:arrow_down:

golang/cmd/factoryinsight/http.go
0.00% <0.00%> (ø)

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 691b3bf...c35b89c. Read the comment docs.


Help with training on segmenter.py

Hello, I have run into trouble when attempting to use segmenter.py. I have axial volumes, (25x128x128), and attempted to use the pre-trained models in MU-Net-R to run segmenter.py on these scans. The outputs, when loaded in, contained zeroes except for ones at the bound indices. When attempting to add the --train flag, I wasn't sure how to incorporate all of my .nii files to train the model on, or if there were any validation samples around, and am unsure whether I need to modify anything regarding the folds/foldfiles. I feel as though I'm doing something wrong on the command line, but I'm unsure how to proceed. Any tips would be fantastic! I created a private repo with two axial .nii datasets if necessary.

Could you please paste the command you are using and the directory tree of your dataset? I would need a bit more information to understand what is missing for you to train the network.

Here are the scans that I was using: https://github.com/js-kki/KKI-MUNet/tree/main/scans
Here is the output of an attempt of running segmenter.py on one of the trained models: https://github.com/js-kki/KKI-MUNet/tree/main/segmentation_attempt1
Here are a few train commands I have tried to submit:
python3 segmenter.py --savefolder ./trained_models/ --train ./ multislice_image.nii test_1
python3 segmenter.py --savefolder ./trained_models/ --train --mask multislice_image_Mask.nii.gz, multislice_imageRE0972 --folds 2 ./ multislice_imageWM9986.nii EBmodVal_0
python3 segmenter.py --savefolder ./trained_models/ --train --mask multislice_image_Mask.nii.gz --folds 2 ./ multislice_imageWM9986.nii, multislice_imageRE0972 test_1

So, files should be organized in different folders, so inside your root folder you would have something like:
dataset_root
--1
----scan.nii
----label1.nii.gz
----label2.nii.gz
----brain_mask.nii.gz
--2
----scan.nii
----label1.nii.gz
----label2.nii.gz
----brain_mask.nii.gz

Then you would train it with something like:
python3 segmenter.py /path/to/dataset_root scan.nii my_model --train --savefolder /path/to/my_trained_models --mask brain_mask.nii.gz --labels label1.nii.gz label2.nii.gz
If you are still experiencing issues please copy and paste any error messages you might be receiving and the actual folder structure in which your data is organized.

So, files should be organized in different folders, so inside your root folder you would have something like:
dataset_root
--1
----scan.nii
----label1.nii.gz
----label2.nii.gz
----brain_mask.nii.gz
--2
----scan.nii
----label1.nii.gz
----label2.nii.gz
----brain_mask.nii.gz

Then you would train it with something like:
python3 segmenter.py /path/to/dataset_root scan.nii my_model --train --savefolder /path/to/my_trained_models --mask brain_mask.nii.gz --labels label1.nii.gz label2.nii.gz

All I have is the scans, no mask or labels. The attempt of running segmenter without these is in the folder titled "segmentation_attempt1", and the output mask is unusable. Is it possible to run this without the mask/labels, or is it possible to extrapolate the mask and labels from your trained runs?

Well, this is a supervised learning algorithm and you would need to retrain if for your dataset, so I'm afraid that without some labeled data this won't work. I do not have a set of weights for a model general enough to work on any given MRI dataset.
Something you could consider doing is to prepare manual labels for a small number of samples, e.g. 5, use that to label a larger dataset, refine manually, and repeat on more data. Whether this is worth it depends on your use case.

Thank you for the advice, I'll be sure to get back to you if I have further questions.


Can methods of a class be compiled as extension methods in dart2js?

dart2js
Dart SDK version: 2.10.5 (stable) (Tue Jan 19 13:05:37 2021 +0100) on "macos_x64"
Consider the code:
import 'dart:html';
import 'dart:math';

class Foo {
  final int bit;

  const Foo(this.bit);
}

extension Ff on Foo {
  bool isSet(Foo flag) {
    return (bit & flag.bit) == flag.bit;
  }
}

void main() {
  final rnd = Random();
  final bit = rnd.nextInt(1);
  final foo = Foo(bit | 2 | 8);

  querySelector('#output').text = 'FooHasBFlag: ${foo.isSet(Foo(1))}, FooHasDFlag: ${foo.isSet(Foo(8))}';
}

Dart2JS transpiles all main() to:
var t=C.m.p(1)|2|8
document.querySelector("#output").textContent="FooHasBFlag: "+((t&1)===1)+", FooHasDFlag: "+((t&8)===8)

Foo doesn't even exist in the built code.
However, this does not happen when the method isSet is a method of the Foo class. The result is that Foo exists and all its stuff.
Is it possible to make a class be optimized like when used as extension?

Hi @jodinathan, when you get the desired effect it is due to a lot of optimizations happening. It is hard to predict looking at the source code whether any of these optimizations will happen, and there is no reliable way of guaranteeing that the optimization will always happen.
The optimization chain is as follows. First, the isSet method in the extension is inlined. After the body of the method is copied into main by inlining, some simplifications can happen. The compiler can see that this.bit and flag.bit are from objects created immediately before, so it can do load elimination to replace these field accesses with arguments to new Foo. This leaves the constructor calls unused, so they can be removed by dead code elimination.
When I tried to reproduce you finding, I actually get the same optimizations for static extensions methods and regular instance methods! I am using the latest dart2js (which will be in 2.15).
var t=B.m.q(1)|10
document.querySelector("#output").textContent="FooHasBFlag: "+((t&1)===1)+", FooHasDFlag: "+((t&8)===8)

(You can see dart2js is now doing a better job of simplifying bitwise-or operations, with (x|2)|8 --> x|10.)
Inlining of isSet is a prerequisite for the sequence of optimizations, and you can encourage this by putting a @pragma('dart2js:tryInline') annotation on the method.
In real code, there are often factors that prevent the other optimizations from happening. Most likely the compiler can't see directly where the Foo objects were created, making it impossible to remove them or determine what is in their bit fields. This would happen if they are passed as parameters or are on a field of an object. Without these subsequent optimizations, inlining turns out to have be a less obvious choice - the code will be larger, thus slower to download, and now the operations are smeared all over the code, which means that the JavaScript engine can no longer boost performance by JIT-compiling the original method.
I'm going to close this issue as a odd combination of 'infeasible' and 'already implemented'.
I'm saying 'infeasible' because the small sample program (with all the Foo objects created within a single method) gives a best-case view of what is possible, and in 'real code' the optimizations are unlikely to be as good.
I'm saying 'already implemented' because dart2js has always compiled instance methods and extension methods essentially the same way. The different forms of methods just look slightly different in the internal representation, and this, in dart2js 2.10.5, was enough that the extension method was seen as 'only just small enough' to risk inlining and the instance method was seen as 'only just large enough' to avoid the risks of inlining. It appears that the line has shifted a little (and will likely shift again) but methods of a class are already compiled with no fundamental prejudice over extension methods.


License Verification Automation

Tell us about your request
We need automatic license verification to avoid issues like https://github.com/awslabs/karpenter/issues/608 when adding new dependencies.
Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
Not all licenses are apache2, and developers can easily make mistakes.
Are you currently working around this issue?
Manually

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Automated license verification is performed in our CI for packages that end up in the karpenter executable. However, packages that are used in tests are not checked since they are removed from the executable that is distributed.
https://github.com/awslabs/karpenter/blob/main/Makefile#L41-L43
I thought golicense might just work if we fed it test binaries generated with go test -c but it seems to not like those:
$ golicense aws.test
⚠  "aws.test" ⚠

This executable was compiled without using Go modules or has
zero dependencies. golicense considers this an error (exit code 1).

Oh wow. This is a great clarification.


Support for renaming file names

It would be helpful if amber provided also support for renaming files.
There is a common tool called rename (from the linux-utils package), but it doesn't support regex.
On the other hand, simply doing a for loop in bash is error prone (non-interactive & requires working bash knowledge) and doesn't support recursion.
Thus, I think that it would be a nice functionality for amber to provide. Any chances?

Big +1 for this one, and if I may, I'd like to extend the request to directory names as well.
Amber is a great tool, I'm using for templating and refactoring projects, but my workflow still requires a lot of annoying scripting and other tools to handle file names and directory names. If ambr could handle those as well, then good gravy, this tool is an all-time great!

(I did discover this tool, which is like the inverse of Amber, it only does files and directories: https://github.com/ismaelgv/rnr )


Email - Fallback to hostname for admin email address

Check what happens in 4.8 first with a missing admin_email first - if it's not hostname then update this issue
4.9 upgraded the symfony mailer
As part of this symfony stopped sending emails with a 'From' address
This is set via
SilverStripe\Control\Email\Email:
  admin_email<EMAIL_ADDRESS>
This is often set via yml that copied over from installer recipes.
Sites that do no have this configuration used to work prior to 4.9, though upon upgrading many have stopped sending emails
Because of this, fallback to setting this to no-reply@[hostname]
Remember to add a unit test :-)
Fix for this needs to target 4.9 and be merged up.  Release new versions of 4.9.x and 4.10.x
Note recipe-cms 4.9.0 has ~ requirements so users of this can easily receive this fix
ACs

[ ] Validate what used to happen on 4.8
[ ] The generated email does not expose key server info
[ ] A sensible default has been identified and implemented.

PRs

[x] https://github.com/silverstripe/silverstripe-framework/pull/10236

Post-merge

[ ] Merge-up
[ ] Add $this->extend('updateDefaultFrom', $defaultFrom); to the bottom of Email::getDefaultFrom() in a PR targetting 4

Likely update code here
https://github.com/silverstripe/silverstripe-framework/blob/4/src/Control/Email/Email.php#L279

Just to summarise some of the discussions we've been having, reveling the host name of the server might not be advisable as this information could be sensitive.
Could we do something like using use the the domain from the SS_BASE_URL or Director::host()?

related: silverstripe/silverstripe-cms#2412

Using 4.7.x-dev and swiftmailer 5 (where you could still use the mail() function)
/etc/php/7.4/apache2/php.ini
sendmail_path = /home/www-data/go/bin/mhsendmail -t
myemail.yml
---
Name: myemail
After:
  - '#project-emailconfig'
---
SilverStripe\Core\Injector\Injector:
  Swift_Transport:
    class: Swift_MailTransport
    # class: Swift_SendmailTransport
    # constructor:
    #   0: '/home/www-data/go/bin/mhsendmail -t'
# SilverStripe\Control\Email\Email:
#   admin_email:
#<EMAIL_ADDRESS>'Admin-email'

Following email header show up in mailhog:
Content-Type: multipart/alternative; boundary="_=_swift_v4_1645065101_44ea918f4d1bea00d5e288cfa08b8132_=_"
Date: Thu, 17 Feb 2022 15:31:41 +1300
From:
MIME-Version: 1.0
Message-ID<EMAIL_ADDRESS>Received: from localhost by mailhog.example (MailHog)

          id<EMAIL_ADDRESS>Thu, 17 Feb 2022 15:31:41 +1300
Return-Path: <www-data@www>
Subject: Your password reset link
To<EMAIL_ADDRESS>

Tested on SC AWS using 4.7.0 with a commented out admin_email
# SilverStripe\Control\Email\Email:
#   admin_email<EMAIL_ADDRESS>
The password reset password was from<EMAIL_ADDRESS>

Replicated error on CCL hosting using 4.9.0 - graylog error was
error-log.ERROR: Uncaught Exception Swift_TransportException: "Cannot send message without a sender address" at /sites/cmstest-uat/releases/20220217060137/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php line 195 {"exception":"[object] (Swift_TransportException(code: 0): Cannot send message without a sender address at /sites/cmstest-uat/releases/20220217060137/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php:195)"} []

Surprisingly, did not replicate error on AWS using using 4.9.0 - lost password email was sent with a from address of<EMAIL_ADDRESS>

Firs part is done. There's some smallish follow up work to add an extension hook.

Extension hook - https://github.com/silverstripe/silverstripe-framework/pull/10251

@andrewandante
4.9.2
4.10.3

Absolute stars, thanks @emteknetnz and @maxime-rainville !


Creating AKS cluster on a /24 Azure VNet Subnet fails

What kind of request is this (question/bug/enhancement/feature request):
Bug
Steps to reproduce (least amount of steps as possible):

Create a virtual network in Azure, then create a Subnet in it with a /24 IP allocation.
Attempt to deploy a 3-node AKS cluster to this subnet via Rancher.

Result:
The cluster creation attempts to reserve 333 IP addresses, which is crazy:
Containerservice.ManagedClustersClient#CreateOrUpdate: Failure sending request: StatusCode=0 -- Original Error: autorest/azure: Service returned an error. Status=400 Code="InsufficientSubnetSize" Message="Pre-allocated IPs 333 exceeds IPs available in Subnet 251" Target="agentPoolProfile.count"
Other details that may be helpful:
A /24 subnet is very common and deploying to one shouldn't be broken out of the box.
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI):
v.2.2.4
Installation option (single install/HA):
single install

Cluster information

Cluster type (Hosted/Infrastructure Provider/Custom/Imported):
Provider - Azure AKS

Machine type (cloud/VM/metal) and specifications (CPU/memory):
Standard_DS11_v2

Kubernetes version (use kubectl version):
1.13.5

Docker version (use docker version):
N/A

Nevermind, you can close this I guess, this is an Azure AKS limitation. I guess I just need to create bigger subnets...

Root cause: Even Advanced Networking is selected, the network Plugin was set to azure not kubenet.
Workaround: Use the API or curl to create the cluster by overriding "networkPlugin": "kubenet" in the azureKubernetesServiceConfig.


Printing with print_rich a lot of colored text breaks formating after output overflow.

Godot version
4.1
System information
Win 10
Issue description

When causing "output oveflow" by printing a lot of text, formating breaks. Possible because enclosing tag get flushed.
Suggested solution: clear text formating after output oveflow warning.
Steps to reproduce
Print a lot of text with different text tags (like [color] or [bgcolor]) to console. For example in _process function.
Minimal reproduction project
N/A

@bruvzg Is there a way to reset formatting for all tags in RichTextLabel? We could use print_rich() for this before printing the "[output overflow, print less text!]" error.

There's no exposed function for this, but it should be easy to implement it, something like:
void RichTextLabel::pop_all() {
	_stop_thread();
	MutexLock data_lock(data_mutex);

	current = main;
	current_frame = main;
}


Dropdown not working on Android native browser

Dropdown does not work, no animation showing like in previous issues. Android version 6.0.1 only on the native browser. Anyone have a quick fix while this bug get worked out?

Hi @ryanbarsatan, which issues are related to this one?

Closing the issue until there’s a reply.


Consider shading raster tiles on the frontend

See for example blog post description at https://stamen.com/making-a-snappy-raster-map-with-shaders/

encode TIFF data into "base 256" RGB values as PNGs
serve PNGs
intercept rendering and shade/map colours on the frontend

https://github.com/dnomadb/dnomadb.github.io/tree/master/shader
https://github.com/stamen/mapbox-texture-layer/

Questions

what would the server side look like? pack rendered PNGs into a .mbtiles? read data values straight off GeoTIFF?
how's the client-side performance? any device requirements?
how to hook in and get values on hover/click?
any way to pack multiple layers in?
any benefits to non-PNG encoding?

Potential benefits:

less server-side work
avoid workarounds with lossy colour-map encoding to parse data values back out on hover
maybe better colour-mapping options (log transform, dynamic palettes?)

Closing as unlikely given current priorities - still an interesting candidate for some exploration if possible.


Derivation of the Fisher-z independence test

Hi, I would like to understand where the derivation of the Fisher-z test comes from. I have tried to derive it from Wikipedia (https://en.wikipedia.org/wiki/Partial_correlation), since that source is the most elaborating. I think I understand everything, but I am not very sure about why the inverse of the matrix is used. Is there any documentation available to read into?
Kind regards,
Vera

Hi Vera! This might help: https://en.wikipedia.org/wiki/Partial_correlation#Using_matrix_inversion


Filter staffs from OSS page

PR-Codex overview
This PR updates the username elasticbottle to ElasticBottle and corrects a typo in the username mmeigoni.
Detailed summary

Updated username from elasticbottle to ElasticBottle
Corrected typo in the username mmeigoni

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

📝 Changed routes:

/open-source

(view full size)

Commit 4da4070bef9869e01787e641fc8c573276ab21b1 (https://thirdweb-7h0nbz0tp.thirdweb-preview.com).


can i user it in Fragment pls?

like the title des

Yes. You can use this library on your Fragments.
It's a little different but you can reference here to use in Activity.

Yes. You can use this library on your Fragments.
It's a little different but you can reference here to use in Activity.


Dev Feature: Live Reloading Resource Packs

This is a QoL improvement for developers who are developing vane.
It adds

Several gradle tasks, for ease of cleaning up the paper-run workspace.
Better logging for the generation of translation files from the annotation.
A very barebones simple http server, capable of only serving single files.
A file watcher, which recompiles the resource pack when changes are detected to runtime translation files in the run/vane-* directory.

I believe the examples I showed in discord of errors I have made should be enough to show why this is useful :-).
p.s. I'm sorry about the spotty commit history, I'm trying to make a habit of cleaner development, but it was being developed in parallel with the soulbound changes,.

Merged, thanks a lot! (GitHub didn't detect this merge, probably because I had to rebase to fix a conflict)


Removed strip() method in load_value() method from data.py file

removed strip() method in load_value() method, so now response value contain leading and trailing spaces while printing data in console. Change with reference to issue #400

What do you think about adding test for this fix?

Hi @arys-splunk , Added new test case for the fix, let us know if any other changes are required

What do you think about adding test for this fix?

Hi @arys-splunk , Added new test case for the fix, let us know if any other changes are required

I am not familiar with the code, let's wait what @zenmoto and @fantavlik say.


added hkz

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@944c5b9). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #45   +/-   ##
=========================================
  Coverage          ?   67.08%
=========================================
  Files             ?       12
  Lines             ?      714
  Branches          ?        0
=========================================
  Hits              ?      479
  Misses            ?      235
  Partials          ?        0

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 944c5b9...9f86e83. Read the comment docs.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@944c5b9). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #45   +/-   ##
=========================================
  Coverage          ?   67.08%
=========================================
  Files             ?       12
  Lines             ?      714
  Branches          ?        0
=========================================
  Hits              ?      479
  Misses            ?      235
  Partials          ?        0

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 944c5b9...9f86e83. Read the comment docs.


function getRedirectUrl is not forking for me

it was fetching endlessly
i've changed it like this:
const getRedirectUrl = async (url) => {
if(url.includes("vm.tiktok.com") || url.includes("vt.tiktok.com")) {
url = await fetch(url, {
redirect: 'manual',
follow: 30,
})
const body = await url.text()
console.log(chalk.green('[*] Redirecting to: ' + url))
return body
}
return url;

}
the code above works. pls check if this is a global bug tiktok. hope i helped someone

please re-clone this repository, if you are still experiencing the same problem, please comment again


Escape Telegram Markdown Characters

Telegram doesn't escape the markdown characters, which might somehow cause the problem. And rather than escape these characters before call the Send or Reply functions, perhaps it's more elegant to place it inside the telebot and call when the telebot.ModeMarkdown is set.
P.S, Only four special characters need to be escaped, [ ` * _.

Well, this seems to be my fault. Adding this would cause all tokens to be escaped, so this has to be done by the caller.


[SPARK-22839][K8S][WIP] Remove the use of init-container for downloading remote dependencies

What changes were proposed in this pull request?
Removal of the init-container for downloading remote dependencies. Built off of the work done by @vanzin in an attempt to refactor driver/executor configuration elaborated in this ticket.
How was this patch tested?
This patch was tested with unit and integration tests.

Can one of the admins verify this patch?

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1032/
Test PASSed.

Merged build finished. Test PASSed.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-spark-integration/1026/

retest this please

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-spark-integration/1026/

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1033/
Test PASSed.

Merged build finished. Test PASSed.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-spark-integration/1027/

retest this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1034/
Test PASSed.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-spark-integration/1028/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-spark-integration/1028/

I'm not sure there was a consensus at the end of that discussion, and @mccheah has been working on some internal refactoring here also. @foxish

My impression was that we did reach a consensus that this was the right idea from the mailing list discussion. Specifically http://apache-spark-developers-list.1001551.n3.nabble.com/Kubernetes-why-use-init-containers-tp23113p23140.html.
We want to get this in before we start refactoring because it reduces the size of the code that actually needs to be refactored by a sizable amount.

If that's the consensus, then great! I thought some people still wanted to keep the init container around for some reason.

+1, the benefits outweigh the desire to be k8s-like in the approach. We should have tests that validate the behavior changes though. I'm wondering if we should move the integration tests into the repo first, before indulging in any large scale refactors.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1067/
Test PASSed.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-spark-integration/1061/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-spark-integration/1061/

I think tests are failing because you're missing changes to run the driver through spark-submit in the entry point script:
https://github.com/vanzin/spark/commit/7e1dd8f0823993a9c1872c203f7bf4e0d7da3b09#diff-c12f609c87a8093c2902284459fbe84b

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1072/
Test PASSed.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-spark-integration/1066/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-spark-integration/1066/

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1112/
Test PASSed.

Merged build finished. Test PASSed.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-spark-integration/1105/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-spark-integration/1105/

@ifilonenko you can't just remove the init container without replacing its functionality. In my patch that was done by using spark-submit to run the driver. But here you have nothing. That's why the tests are failing.

@vanzin you are definitely right and that is what needs to happen. However, one of the functions of the init container was resolving the file location which atm isn’t supported unless the spark-application that is testing this service uses
SparkFiles.get(). This is something I am looking into right now either on the integration testing side or maybe there could be some way to bring back this resolution (as the file is currently being stored in /tmp)

SparkFiles.get() is the official way of retrieving anything that is distributed using --files. So if the application is not using that, it's relying on undocumented behavior.
In the error logs from jenkins, the path of the file ("/var/spark-data/spark-files/pagerank_data.txt") seems to be provided by the test code as part of running spark-submit. That seems wrong, since the test code doesn't really have control of whether files will show up. If the file is already in the image somehow, then it's probably a case of the test and the image not agreeing about what the path is. If the file is uploaded using --files, then providing an absolute path to the app is wrong (or, at worst, the app should be using just the file name and using SparkFiles.get() to find its actual location).

BTW I wonder why are we still relying on integration tests that do not live in the Spark repo...

It's just because we haven't PR'd them yet. There's some cleanups that I wanted to do before doing that.

@vanzin I just opened this PR for putting the integration tests in the Spark repo: https://github.com/apache/spark/pull/20697

@vanzin @mccheah @foxish This is ready for your review as it passes unit tests and integration tests. At the moment, it is required that we modify the integration tests to call SparkFiles.get().

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1167/
Test PASSed.

Merged build finished. Test PASSed.

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-spark-integration/1160/

That's one scenario where an init-container /might/ help. But be aware that your YARN example only works in a single one scenario - YARN cluster mode, and maybe even then may need some config customization. And it may not even work in some cases (e.g. YARN data directory mounted with noexec). YARN client, nor any other supported cluster manager, is able to do what you're saying.
Personally I feel it's perfectly ok to require a custom docker image in these cases, since they're so uncommon (I've never seen one of our users use the yarn-cluster feature for this purpose). People can have a "main" Spark image and a "debug" one that can be easily chosen from when submitting the app.
During this discussion I think someone mentioned that it might be possible to side-load init containers into Spark without this. I'm not that familiar with kubernetes, but if that's possible, it's another way you could achieve this without Spark having its own init container.

Oh, btw, if you think that is a really, really important feature, you still don't need an init container for that. You can just run the dependency download tool before you run spark-submit in the driver container. Problem solved.

Hm, noted that we're making this tradeoff. We have an internal use case where we're pushing a custom logging properties file into the container using spark.files. Logging properties files need to be in the container before the JVM starts to configure the appenders from the get-go, but logging properties are more dynamic and probably don't belong in a statically built Docker image. We use YARN cluster mode primarily and rely on its file distribution, and we migrated to the fork's implementation of Kubernetes without having to change our internal setup.
I think we can adapt to this change, but I don't think the use case I've described is as uncommon as one may think. There's plenty of lower-level tooling out there that requires the JVM to load files in static initializations.

Oh, btw, if you think that is a really, really important feature, you still don't need an init container for that. You can just run the dependency download tool before you run spark-submit in the driver container. Problem solved.

Agreed. Init-containers are but one option to support this. The question was more if running spark-submit in client mode is completely sufficient, which it seems like it isn't in this specific case.

Newest push passes all tests (with this merged I will then merge in this)
KubernetesSuite:
- Run SparkPi with no resources
- Run SparkPi with a very long application name.
- Run SparkPi with a master URL without a scheme.
- Run SparkPi with an argument.
- Run SparkPi with custom labels, annotations, and environment variables.
- Run SparkPi with a test secret mounted into the driver and executor pods
- Run FileCheck using a Remote Data File
Run completed in 2 minutes, 37 seconds.
Total number of tests run: 7
Suites: completed 2, aborted 0
Tests: succeeded 7, failed 0, canceled 0, ignored 0, pending 0
All tests passed.

I welcome the opinion of the community on the strategy for passing spark.driver.extraJavaOptions to the driver as I am currently specifying the SPARK_CONF_DIR to be pointed at the JAVA_PROPERTIES file. Open to any better suggestions.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1475/
Test PASSed.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-spark-integration/1459/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-spark-integration/1459/

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1511/
Test PASSed.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-spark-integration/1495/

Results from integration testing:
Discovery starting.
Discovery completed in 123 milliseconds.
Run starting. Expected test count is: 8
KubernetesSuite:
- Run SparkPi with no resources
- Run SparkPi with a very long application name.
- Run SparkPi with a master URL without a scheme.
- Run SparkPi with an argument.
- Run SparkPi with custom labels, annotations, and environment variables.
- Run SparkPi with a test secret mounted into the driver and executor pods
- Test extraJVMProprties being present on Driver
- Run FileCheck using a Remote Data File
Run completed in 3 minutes, 22 seconds.
Total number of tests run: 8
Suites: completed 2, aborted 0
Tests: succeeded 8, failed 0, canceled 0, ignored 0, pending 0
All tests passed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1574/
Test PASSed.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-spark-integration/1558/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-spark-integration/1558/

@vanzin anything other feedback before merging this?

I probably won't have time to review this carefully, so if you're happy with it, don't wait for me.

Think someone with permissions to merge has to do so here.

@mccheah you're a committer...

Merge button doesn't appear for me in the UI =( will need to look into that.

@mccheah workflow is to use dev/merge_spark_pr.py

@mccheah you should have gotten an e-mail from Matei explaining the basics of how to merge PRs.

There's a section explaining it at the bottom of https://spark.apache.org/committers.html


Tests failing on julia 0.6

On Julia 0.6.0-pre.alpha.182, Pkg.test("Mosek") errors out with:
[apitest]
  > lo1
( ... deprecation warnings ... )
ERROR: LoadError: LoadError: Mosek.MosekError(1385, "The A matrix element at constraint 'c01' (0), variable 'x01' (0) is specfied twice.")
Stacktrace:
 [1] putacolslice(::Mosek.MSKtask, ::Int32, ::Int32, ::Array{Int64,1}, ::Array{Int64,1}, ::Array{Int32,1}, ::Array{Float64,1}) at /home/mlubin/.julia/v0.6/Mosek/src/msk_functions.jl:2884
 [2] (::##2#46)() at /home/mlubin/.julia/v0.6/Mosek/test/apitest.jl:35
 [3] context(::##2#46, ::String) at /home/mlubin/.julia/v0.6/FactCheck/src/FactCheck.jl:475
 [4] (::##1#45)() at /home/mlubin/.julia/v0.6/Mosek/test/apitest.jl:5
 [5] facts(::##1#45, ::String) at /home/mlubin/.julia/v0.6/FactCheck/src/FactCheck.jl:449
 [6] include_from_node1(::String) at ./loading.jl:539
 [7] include(::String) at ./sysimg.jl:14
 [8] include_from_node1(::String) at ./loading.jl:539
 [9] include(::String) at ./sysimg.jl:14
 [10] process_options(::Base.JLOptions) at ./client.jl:305
 [11] _start() at ./client.jl:371
while loading /home/mlubin/.julia/v0.6/Mosek/test/apitest.jl, in expression starting on line 3
while loading /home/mlubin/.julia/v0.6/Mosek/test/runtests.jl, in expression starting on line 3
error in running finalizer: Base.ArgumentError(msg="stream is closed or unusable")

@chriscoey

I have looked into this and I suspect that it is a Julia bug (nightly build from around March 24). I can reproduce the problem in a call to putacolslice, where it looks like the argument asub::Array{Int32} is passed to MOSEK as an array if int64 instead if int32. The other arguments are correctly passed, including first::Int32 and last::Int32.
Printing n elements from asub as passed to MOSEK in Julia: [0, 1, 0, 1, 2, 0, 1, 1, 2]
Printing 2*n int32s in asub in the MOSEK dll: [  0 0 1 0 0 0 1 0 2 0 0 0 1 0 1 0 2 0]
I'll try to make a small example that reproduce the problem without MOSEK.

That makes sense. On Julia 0.6 Int32[1,2,3] - 1 gets promoted to Vector{Int64}. You have to write something like Int32[1,2,3] - Int32(1) instead. I see this appears here.

Ahh, I see! Yep, that fixes it. I'll push when I have ironed out some other errors.

Some warnings are not fixed since they would not be compatible with Julia 0.5.


Sidepanel Code Block bugs

Bug report
Describe the bug
As I open a sidepanel demo, the code blocks on the page do not dim with the rest of the website, similar to issue supabase/supabase-ui-web#42, except the code blocks do NOT dim at all
To Reproduce
Steps to reproduce the behavior, please provide code snippets or a repository:

Go to The sidepanel demonstration page
Scroll down to any of the side panel demonstrations
Press the 'Open sidepanel' button
As the sidepanel opens, the code blocks do not dim with the rest of the website

Expected behavior
A clear and concise description of what you expected to happen.
Anything on the website behind the sidepanel fades
Screenshots
If applicable, add screenshots to help explain your problem.

System information

OS: Windows 11
Browser (if applies) Brave

Additional context
Add any other context about the problem here.

Just to add to this I found that some of the side panel examples do not open on the page. I've taken a video showing what happens:
https://user-images.githubusercontent.com/22655069/156070629-7aba5ae3-3eb4-4b39-a1a9-31c742d16c0d.mov
The basic example seems to open all the time but the others do not.
System information

OS: macOS Monterey
Browser: Google Chrome - version: 98.0.4758.109


restore new store interface

Coverage decreased (-0.9%) to 84.093% when pulling 700e20d4a653b19894ef89b1409acff0efd2a2cb on xyl_not_add_all_store into 9e284613dd7c30e3895e58c13e2d9325e2411d1c on master.

Coverage decreased (-1.3%) to 83.688% when pulling 81a9be2de26fdb99d874e391d6882a76c187194c on xyl_not_add_all_store into 9e284613dd7c30e3895e58c13e2d9325e2411d1c on master.

Coverage decreased (-1.3%) to 83.688% when pulling dd4b690efc18c1be8c4f380ed4a58fe5ac3bffa5 on xyl_not_add_all_store into 9e284613dd7c30e3895e58c13e2d9325e2411d1c on master.

Coverage decreased (-1.2%) to 83.704% when pulling d44c77b6f435b86268d3661ae0fc1dea9161f14d on xyl_not_add_all_store into 9e284613dd7c30e3895e58c13e2d9325e2411d1c on master.

Coverage decreased (-1.2%) to 83.704% when pulling e10517bbe58c2475160cd5a0c79d48777a88d813 on xyl_not_add_all_store into 9e284613dd7c30e3895e58c13e2d9325e2411d1c on master.

Coverage decreased (-0.8%) to 84.109% when pulling 217b6e4199221c56e5502a756f9ecc3e1622f99d on xyl_not_add_all_store into 9e284613dd7c30e3895e58c13e2d9325e2411d1c on master.

Coverage increased (+0.6%) to 85.52% when pulling 367506e1dfd6ea465a580522f6658185d4b4cb3c on xyl_not_add_all_store into 9e284613dd7c30e3895e58c13e2d9325e2411d1c on master.

Coverage decreased (-1.2%) to 83.789% when pulling b9ace0d90e330ca654f067c5e0d6e796ccf442d4 on xyl_not_add_all_store into 9e284613dd7c30e3895e58c13e2d9325e2411d1c on master.

Coverage decreased (-0.9%) to 84.248% when pulling b52e1afb92002afabc287296b5e2959a7ea5f2ae on xyl_not_add_all_store into 5ef238df9d4d5a796196068290e65df76e225020 on master.


oai-mme container command not running as the ci-scripts directory is missing

docker build --target oai-mme --tag oai-mme:production
--file component/oai-mme/ci-scripts/Dockerfile.ubuntu18.04 .

don't use this ./scripts/syncComponents.sh --mme-branch samsumg-s10-5g-g977u-merged
just use this command:
./scripts/syncComponents.sh
then it can solve your problem


This modules is throwing some errors

Please follow this issue on this link: https://github.com/MacKentoch/reactNativeBeaconExample/issues/1
I've try in many ways to install this lib an it only throws errors

I also try this:
""'@affibox Alright this issues is due to RN 0.29+.
rnpm is now integrated into react native does no more have the same behaviors.
Thank you for having submitted this issue I was not aware of that before!
So since RN 0.29+:
no more use rnpm link
if too late, so follow react-native-beacons-android#issuecomment-233583330 to fix it (I tested this fix it works)
but use react-native link (you won't have to fix with that)
Now you have also an answer for react-native-beacons-android#18 so that I save a bit time to @mmazzarolo (Hi btw!)"""
An the las issue was this:
'''C:\Users\jcbar\Desktop\affibox\reactnative\RuralKing>react-native link
rnpm-link info Android module react-native-beacons-android is already linked
rnpm-link info Linking assets to ios project
rnpm-link ERR! It seems something went wrong while linking. Error: Expected "/* Begin ", "/* End ", """ or [A-Za-z0-9_.] but "<" found.
Please file an issue here: https://github.com/rnpm/rnpm/issues
C:\Users\jcbar\Desktop\affibox\reactnative\RuralKing\node_modules\promise\lib\done.js:10
throw err;
^
SyntaxError: Expected "/* Begin ", "/* End ", """ or [A-Za-z0-9_.] but "<" found.
C:\Users\jcbar\Desktop\affibox\reactnative\RuralKing>'''

Hello @affibox!
Let's try to isolate the issues by creating a new react-native project (just follow the steps below):

I guess you installed globally the react-native cli, let's update it: npm i -g react-native-cli
Initialize a new react-native project react-native init TestProject (this should install a new project with the current 0.30 release)
Go to the new project cd TestProject and install the stable version of react-native-beacons-android: npm i -S<EMAIL_ADDRESS>Link the react-native-beacons-android module to the android internals with react-native link
Try using the module on a real device (not on an emulated one)

Let me know what happens when you follow the steps above :)


The dialogue TestScene show the line ID rather than line content

Describe the bug
When I test a dialogue file by the Test dialogue button in the Dialogue tab. The
Affected version

Dialogue Manager version:
Commit: 6040ec00ad4020abec611bc617ee56530048618d
Parents: 7aa82d0363f418f858db3166bd31f7ca18e6b545
v2.25.4
Godot version:
4.1.2 stable

To Reproduce

Create a new godot project with godot.
Create addons folder in the project root directory.
Copy dialogue manager addon into the addons folder.
Create a new dialogue file with line IDs, and open it in the Dialogue tab.
eg.

~ this_is_a_node_title

Nathan: [[Hi|Hello|Howdy]], this is some dialogue. [ID:t1c0e3d7581]
Nathan: Here are some choices. [ID:t8560cd3eb3]
- First one [ID:teb33591345]
	Nathan: You picked the first one. [ID:ta6719c3862]
- Second one [ID:t0519d77d22]
	Nathan: You picked the second one. [ID:tfb8cac0d57]
- Start again [ID:t1724927b8c] => this_is_a_node_title
- End the conversation [ID:tfaf5d03d55] => END
Nathan: For more information see the online documentation. [ID:tdf84d3b3a4]

=> END

Click the Test dialogue button.

Expected behavior
We expect that the dialogue line content and options content should be show in the test window.
Screenshots

It shows line IDs rather than line contents.

It shows line IDs rather than options contents.

It will show line IDs until you set up translation for your project.


[Feature]: Evaluation with TensorRT backend

This PR includes:

[x] Add evaluation feature for TensorRT
[x] Evaluate supported models with TensorRT backend
[x] Update related docs.
[x] This PR depends on mmcv PR#1034 for FCOS model.

Results and Models

Model
Config
Metric
PyTorch
ONNX Runtime
TensorRT

FCOS
configs/fcos/fcos_r50_caffe_fpn_gn-head_4x4_1x_coco.py
Box AP
36.6
36.5
36.3

FSAF
configs/fsaf/fsaf_r50_fpn_1x_coco.py
Box AP
36.0
36.0
35.9

RetinaNet
configs/retinanet/retinanet_r50_fpn_1x_coco.py
Box AP
36.5
36.4
36.3

SSD
configs/ssd/ssd300_coco.py
Box AP
25.6
25.6
25.6

YOLOv3
configs/yolo/yolov3_d53_mstrain-608_273e_coco.py
Box AP
33.5
33.5
33.5

Faster R-CNN
configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py
Box AP
37.4
37.4
37.0

Mask R-CNN
configs/mask_rcnn/mask_rcnn_r50_fpn_1x_coco.py
Box AP
38.2
38.1
37.7

Mask AP
34.7
33.7
33.3

Notes:

All ONNX models are evaluated with dynamic shape on coco dataset and images are preprocessed according to the original config file.

Mask AP of Mask R-CNN drops by 1% for ONNXRuntime. The main reason is that the predicted masks are directly interpolated to original image in PyTorch, while they are at first interpolated to the preprocessed input image of the model and then to original image in other backend.

The performance drop for TensorRT is reasonable due to the detailed difference of resize op.

Ping @ZwwWayne


Documentation needed for the repository

As a user I want to go into the docs folder and see information on using the project. Can you copy the structure from https://docs.apolloapi.io

[ ] docs updates for prompt testing, env vars, setup


Search for melodic pattern distributed among a given number of syllables

To narrow down the search result

[ ] This pattern is spread over [dropdown menu with numbers] words
[ ] This pattern is spread over [dropdown menu with numbers] syllables

Example:

On the search filter panel:

Logic flow: Melodic pattern (wildcards), then count the syllable distribution, then output the matches

looking good. But limiting the search to 5 syllables doesn't seem enough. Can we increase this number?


Drop go 1.7 from test matrix, add 1.12

The current version of gensupport requires golang 1.8, so unless we vendor older versions building on go 1.7 will fail.

Hmm, looks like go 1.8 is also failing now, still worked a couple of days ago.


Warning message gives incorrect information

When I use get_huc8() and the warning message tells me that it is deprecated, it incorrectly instructs me to use type='huc8' instead of type='huc08', so I immediately get an error when I try the new command. Likely a very quick fix to add the 0 in the warning message.
# I use the deprecated function:
nhdplusTools::get_huc8(id = "18020129")
 In nhdplusTools::get_huc8(id = "18020129") :
  this function is deprecated -- use get_huc(..., type = "huc8") instead

# Then try to follow it's suggestion but get an error:
nhdplusTools::get_huc(id = "16050101", type="huc8")
Error in nhdplusTools::get_huc(id = "16050101", type = "huc8") :
type must be one of huc02 huc04 huc06 huc08 huc10 huc12

# So I have to try a third time:
nhdplusTools::get_huc(id = "16050101", type="huc08")

But warning goose chaises are so fun, aren't they! Thanks for the heads up.


bfile of the genotype

Hello, thank you so much for the detailed description on how to perform TWAS.
May I ask has the bfile of the genotype been provided here or somewhere else? I would like to run all the pipeline, while can not get the file.
Thanks!

Hello!. Genotype data is not provided here. To get access, you'll need to use dbGAP.

Thank you for answering!
May I ask the output model files(db file and covariance file) when generating the models built for TWAS can be shared? Because it was not easy to apply access dbGAP.


provide a working example for memoize

Turns out that arrays are objects and for some reasons are different - is this a bug in the memoization?
Anyways I found a lot better example that is easier to understand, works and shows off another great feature of D.
However for the debug statement to be printed it depends on #181, it needs
rdmd -debug

Ping @ZombineDev
Btw I couldn't find a nice & simple way to print the BigInt in scientific notation - ideas?

Instead of (ab)using debug, you can just showcase the main reason to use memoize in first place - to save execution time. Here's an alternative example:
import std.bigint;

/**
Computes the power of a base with an exponent.

Returns:
    Result of the power as an
    arbitrary-sized integer
*/
BigInt bigpow(uint base, uint exp) pure
{
    // to help debugging pure functions
    // can contain impure debug code

    BigInt result = base;
    while (exp > 0)
    {
        result *= base;
        exp--;
    }
    return result;
}

void main()
{
    import std.stdio;
    import std.functional: memoize;
    import std.conv : text;
    import std.datetime: benchmark, to;

    // memoize caches the result of the function
    // call depending on the input parameters.
    // pure functions are great for that!
    alias fastBigPow = memoize!(bigpow);

    void test()
    {
        auto len = fastBigPow(5, 10000).text.length;
        writef("calculating length = %s took: ", len);
    }

    foreach (i; 0 .. 10)
        benchmark!test(1)[0].to!("msecs", float).writeln;
}

I prefer @ZombineDev's solution because the result is at least as convincing that memoize works and shows the real-world benefit of how D can makes things perform better, still just requiring one a few bytes more. I also ran it on the tour online and performance gains are visible there too.

Instead of (ab)using debug, you can just showcase the main reason to use memoize in first place - to save execution time. Here's an alternative example:

That's a great idea!
I rebased with this and made two minor modifications

documentation header was now greater than 48 chars -> line break
I moved "took" to the benchmark function to avoid confusion

I moved "took" to the benchmark function to avoid confusion

That was also how I did it at first, but it made benchmark a couple of magnitudes slower, which made the memoize win by a much smaller margin - something like 20ms vs 1-2ms (instead of 0.005ms).

That was also how I did it at first, but it made benchmark a couple of magnitudes slower, which made the memoize win by a much smaller margin - something like 20ms vs 1-2ms (instead of 0.005ms).

Sorry for the confusion - I just moved the console output printing word "took" to the foreach loop. At least on my machine this doesn't affect the huge gained speed-up.

48 chars :-)

There were actually more occurences.
Fixed them and filled #196.
Btw we also should fix the mobile view (#44) to actually get advantage of the 48 chars rule.


chore(blog): april summary article

Community summary updates for April

Hey @alequetzalli, could you please review

/ptal

/rtm


merge main into 0042 branch

Summary
Issue: #ISSUE_NUMBER
Replace "ISSUE_NUMBER" with the number of your issue so that GitHub will link this pull request with the issue and make review easier.
Checklist
All checks are run in GitHub Actions. You'll be able to see the results of the checks at the bottom of the pull request page after it's been opened, and you can click on any of the specific checks listed to see the output of each step and debug failures.

[ ] Tests are implemented
[ ] All tests are passing
[ ] Style checks run (see documentation for more details)
[ ] Style checks are passing
[ ] Code comments from template removed

Questions
Include any questions you have about what you're working on.

no need for a PR for pulling into your branches, feel free to merge or close :)


Search input refreshes after page render

If you enter text in the search bar before the page has finished rendering, it will be erased.

:100:


iOS support

Is there any change iOS support will get built in?

Hi @dirkvranckaert,
sadly there currently doesn't seem to be a way to get that kind of functionality on iOS :/
(See https://github.com/klydra/wifi_hunter/issues/6)

@elmar001 What iOS app can do that? The problem is that you can't do it at all on iOS, because Apple doesn't allow it afaik.

There is one native iOS app which lists all nearby WiFi SSIDs. It works perfecly with all iOS versions including iOS 15.5.

@elmar001 Which one?

Sure, I have tested with several apps. This one is the only one which you can check without log in - https://apps.apple.com/au/app/wifi-master-by-wifi-com/id1099085132
This one is bit different tho it asks to go wifi settings diable and enable wifi then it lists all wifi SSIDs inside the app. I have one another app which directly shows all wifi SSIDs very similar to Android. But that one requires user account so not possible to show you.

@elmar001
I can only imagine that these apps are doing this somehow via the Hotspot Helper API.
However, you'll first have to register to get access to it and that requires you to then actually use it for it's intended purposes : Hotspot Apps.
By default, the API doesn't allow you to query available WiFis AFAIK.

I have looked everywhere and even with the correct entitlements an iOS app cannot currently read the RSSI of the current wifi unfortunately.


Upgrade to a newer jsPlumb

@SteveBarnett ready for review.

(sorry about the overly large diff -- the PR isn't that big, its just the jsPlumb files skewing the diff size)

:+1: once Travis is happy.

:+1: on the zero diff.


fixed: comment and readme are incorrect, there is no ko login

ko login is not a valid command, it is ko auth login.

https://github.com/google/ko/pull/277

https://github.com/google/ko/pull/277


source code link in demos.

hi @oblomov-dev
something happend with sourcecode link in demos..
seems it does nothing...

Yes I delete them step by step, that there is only the single way by pressing strg+f12 to jump to the source code. But it is work in progress and will take a little bit with all these samples...

oh ok, thanks


[iOS] Apple Pay as last stored or at least stored payment method

Is your feature request related to a problem? Please describe.
Hi!
I could not found how can we add storing Apple Pay payment method.
iOS, Drop-In
The problem is:

We used ok Credit Cards as our payment methods (works ok, big thanx!)
Lots of users saved their Cards as Stored payment methods.
Later On we added Apple Pay.
Users want to use Apple Pay as much as fast as possible, they want use Apple Pay as last used/suggested/preferable Stored Payment method, without removal original credit cards from stored payment methods list = without removal popup with last stored payment method.

Describe the solution you'd like
Can we add "save stored payment method" toggler to apple pay Adyen's popup with Apple Pay button (before native Apple Pay popup shows) ?
And then show Apple Pay button as last used stored payment method, like Adyen dropin does for CC(previously used with save method toggler=ON)
And also show  Apple pay in list of stored payment methods.
Describe alternatives you've considered
Additional context
New toggler could be here :

Apple pay in stored payment methods list:

Apple pay can be shown here in last used stored payment method, as 1st Adyen/Dropin screen for faster payment flow with Apple Pay and with or just without any other saved cards:

Not correct repository


Add host/prepare-custom-image deployment

This PR adds a deployment for the package added by https://github.com/PlanktoScope/device-pkgs/pull/15 to assist with the process of creating customized SD card images from booted systems.

I tested the script added by this PR and it seemed to work, so I will merge this PR now.


remove firebase support from dartpad

remove firebase support from dartpad

Starting as a draft as this will require discussion, comms, and some planning.

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

Contribution guidelines:

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

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

Thanks for opening this!
Do consider removing the Firebase sample from the dropdown as a first step that could land separately/earlier. It's what clearly indicates Firebase is supported currently.

@devoncarew I noticed this also removed support for the Flame packages. Is that a goal or were they causing issues?

@devoncarew I just noticed this also removed support for the Flame packages. Is that a goal or were they causing any particular issue?

Negative - that was not a goal. I suspect I confused them w/ firebase related packages.

I'll look into re-adding these packages.

I'll look into re-adding these packages.

Thanks! Let me know if you have any issues.
Fire and flame do seem similar 🔥


Pre beta demo

Please add a meaningful description for your change here

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

Codecov Report

Merging #130 (6002f9f) into master (774008d) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #130   +/-   ##
=======================================
  Coverage   46.08%   46.08%
=======================================
  Files         195      195
  Lines       19457    19457
=======================================
  Hits         8967     8967
  Misses       9521     9521
  Partials      969      969

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 774008d...6002f9f. Read the comment docs.


[Bug]: Java package not recognized by SBOM creators

Please add the exact image (with tag) that you are using
eclipse-temurin:17-jre-alpine
Please add the version of Docker you are running
24.0.5
What happened?
We are using eclipse-temurin:17-jre-alpine as base for many images. We are creating SBOMs (CycloneDX) for all our images using trivy. We discovered that these SBOMs do not include the JRE (but all other APKs from the base image). The reason is likely that the JRE is not installed as an APK but extracted from a Tar archive.
The question I have is whether you are aware of any SBOM creators that can still detect the JRE. Or are there any plans for providing a complete SBOM for the Docker image which we can then merge with our additions?
Relevant log output
No response

@gdams - I think you and tianon were looking at this space recently

I have a feeling that https://github.com/anchore/syft/pull/3217 might help here, It appears to add detection support for Temurin to Syft which can be used to generate an SBOM

Jep, syft is indeed able to detect the JRE (even if it is added as Oracle). However, we have to use trivy because it adds metadata that is required for subsequent vulnerability scanning with trivy. I'll try to make the trivy developers aware of this problem.


folderOpen tasks do not run in old codespaces

Reported by @bhavyaus and @joyceerhl

Have an existing codespace which contains a task that runs on folder open.
Open the codespace.
🐛 The task does not get run.

Adding a task that runs on folder open succeeds in that same codespace.

likely fixed by https://github.com/microsoft/vscode/pull/197381


Realm updated to handle Null

https://github.com/realm/realm-cocoa/issues/628#issuecomment-94050752
What changes are required on the Realm-JSON lib to handle the null fix Realm has made?

Are there any syntactical changes to the way you use realm because of this? Likely this is won't be supported until its an official feature in Realm.

after checking it out more. It's only a file system change for now. We can
close this issue for now.
Also the readme suggests this library already handles null, could you show
an example.
On Tue, Apr 21, 2015 at 06:12 Matthew Cheok<EMAIL_ADDRESS>wrote:

Are there any syntactical changes to the way you use realm because of
this? Likely this is won't be supported until its an official feature in
Realm.
—
Reply to this email directly or view it on GitHub
https://github.com/matthewcheok/Realm-JSON/issues/39#issuecomment-94613510
.


Access http://xx//(double /) will list all files in gitblit.jar

Access http://xx//(double /) will list all files in gitblit.jar
Gitblit GO (Linux) 1.8.0 is used.

Cool!  Maybe we can call that a feature. ;)

Do you see this as a problem?
It's rather easy to prevent, but I have no idea if disabling directory listing would have side effects, e.g. on LFS. So if it is just an oddity and nothing serious, we could leave it at this.


pydantic 2.5.0 not installable through Azure DevOps artifact feed, too long description

Initial Checks

[X] I confirm that I'm using Pydantic V2

Description
We use an internal python package feed in Azure DevOps for all our work with pypi as an upstream feed.
As of pydantic 2.5.0 we cannot install pydantic and get the following error:
ERROR: Could not install requirement pydantic<3,>=1.8 from https://pkgs.dev.azure.com/raysearch/_packaging/9c695c7d-adf5-4647-a8d4-6f094f7d25f5/pypi/download/pydantic/2.5/pydantic-2.5.0-py3-none-any.whl#sha256=7ce6e766c456ad026fe5712f7bcf036efc34bd5d107b3e669ef7ea01b3a9050c (from aws-sam-translator->-r /tmp/pipenv-qcg_0521-requirements/pipenv-t350iuwj-constraints.txt (line 15)) because of HTTP error 400 Client Error: Bad Request - The package description exceeds the maximum length of 324608 bytes. (DevOps Activity ID: B93B62E1-E724-4530-8BA4-71B2BB7C070B) for url: https://pkgs.dev.azure.com/raysearch/_packaging/9c695c7d-adf5-4647-a8d4-6f094f7d25f5/pypi/download/pydantic/2.5/pydantic-2.5.0-py3-none-any.whl for URL https://pkgs.dev.azure.com/raysearch/_packaging/9c695c7d-adf5-4647-a8d4-6f094f7d25f5/pypi/download/pydantic/2.5/pydantic-2.5.0-py3-none-any.whl#sha256=7ce6e766c456ad026fe5712f7bcf036efc34bd5d107b3e669ef7ea01b3a9050c (from https://pkgs.dev.azure.com/raysearch/_packaging/raysearch-ml-pypi/pypi/simple/pydantic/) (requires-python:>=3.7)
Azure DevOps has a limit on the size of the package description (324608 bytes) which seems fairly resonable. It looks like the pydantic package description includes the changelog that goes back more than 5 years. At the end there is already a link to earlier changes, so maybe more of the changelog in the description could be cut of.
Another alternative is to not have links to PRs and authors in the description changelog and just keep that in the more extensive changelog on the docs page (https://docs.pydantic.dev/latest/changelog/).
Seems a bit weird to me to have such an extensive changelog in a package description instead of describing the current state of the package. Maybe a link to the changelog page is enought?
Anyway, we (and I guess quite a few other users of Azure DevOps) have to lock pydantic dependencies to <=2.4.2 for now.
Example Code
No response
Python, Pydantic & OS Version
pydantic version: 2.4.2
        pydantic-core version: 2.10.1
          pydantic-core build: profile=release pgo=false
                 install path: C:\Users\raghag\.virtualenvs\test-lG5Cm2Di\Lib\site-packages\pydantic
               python version: 3.8.7 (tags/v3.8.7:6503f05, Dec 21 2020, 17:59:51) [MSC v.1928 64 bit (AMD64)]
                     platform: Windows-10-10.0.19041-SP0
             related packages: typing_extensions-4.8.0

Hi @fraghag,
This is a duplicate of https://github.com/pydantic/pydantic/issues/8105.
This has been fixed in 2.5.1.


Pls Guide - Integrate application POD with Collector deployed via helm charts from this repo

Hi - This is the first time trying to integrate OTel collector and application in kubernetes, earlier have integrated in local without containerisation. I tried deploying the demo chart but most of the containers are not running and I keep getting one or the other issue. So planning to integrate my application pod with the collector. Please advise if the below approach will work or any suggestions.

Install kubernetes operator and collector chart what is provided in this repo.
Install Prometheus , Grafana and Jaeger helm's as standalone deployment. (Its supported in demo since the chart fails , planning to deploy it independent pieces)
Deploy my hello-world java application pod with java opentelemetry agent and configure with OTLP collector endpoint as <IP_ADDRESS>:4318.  Since my Otel collector listens for HTTP on 4318
2024-05-02T08:04:15.060Z	info	otlpreceiver@v0.99.0/otlp.go:152	Starting HTTP server	{"kind": "receiver", "name": "otlp", "data_type": "logs", "endpoint": "<IP_ADDRESS>:4318"}

With the above steps application can emit the telemetry data to collector and collector is already configured to export traces and metrics to prometheus https://github.com/open-telemetry/opentelemetry-helm-charts/blob/main/charts/opentelemetry-collector/values.yaml.
Jaeger , Prometheus are given with {env:MY_POD_IP} ip , instead of that i should override the collector yaml to use respective POD IP's.
prometheus:
config:
scrape_configs:
- job_name: opentelemetry-collector
scrape_interval: 10s
static_configs:
- targets:
- ${env:MY_POD_IP}:8888
Do you see any issues with this integration approach

I highly suggest following this guide: https://opentelemetry.io/docs/kubernetes/getting-started/


⚠ Bofrost.be has degraded performance

In 0f0c1b3, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 824 ms

Resolved: Bofrost.be performance has improved in 0c94566 after 9 minutes.


Documentation request

Hi,
I'm passing on the following documentation request from @mackjenn:
The example for displaying an image shows how do do it in DS9 or Ginga
http://imexam.readthedocs.io/en/latest/imexam/examples.html#basic-usage
But the example for tvmark only shows how to load a coordinate list in Ginga.
http://ginga.readthedocs.io/en/latest/manual/plugins_local/tvmark.html
How do you do it in DS9??

@SaraOgaz , if your problem is with TVMark plugin, that belongs in Ginga's repo, not here. Also, documenting DS9 is out of scope for Ginga. IRAF's tvmark task is already documented at http://stsdas.stsci.edu/cgi-bin/gethelp.cgi?tvmark (and that is the one people used with DS9).

Sorry, this was my bad.  @mackjenn, we can talk about this offline if you want.

There's is an example here: http://imexam.readthedocs.io/en/latest/imexam/examples.html#advanced-usage-interact-with-daophot-and-astropy
that shows how to mark objects in the DS9 image using imexam if you're still interested, mark_region_from_array() is the function. It's also shown in input line 23 here: https://github.com/spacetelescope/imexam/blob/master/example_notebooks/imexam_ds9_photometry.ipynb


Clean up code for Formulation in advance of Coastal introduction

I want to slot in new code for Coastal total water level (TWL) functionality as cleanly as possible with the existing code base. In particular, it seems like CoastalFormulation should be a natural analog to the existing CatchmentFormulation. A lot of stuff there in the baseFormulation interface right now is specific to the existing lumped catchment models, or is just defunct. I try to clean out what's gotten in my way so far, to make the subsequent additions easier.
Additions
None
Removals

Nexus Manager class stub that was added years ago and never fleshed out or used
Scalar overload of Formulation::get_var_value_as_double, which was papering over an assumption of single element arrays that we agreed should be made more explicit

Changes

Move various functionality that's largely specific to our implementation of lumped catchments down from the Formulation base class to the CatchmentFormulation intermediate class
Move functionality duplicated across the several Bmi_{C,Cpp,Fortran,Py}_Formulation up to their common base Bmi_Module_Formulation class
Move arrays of variable names describing required parameters to BMI modules to class static members, to avoid duplicate allocation per instance.

Testing

Local testing on macOS
CI

Checklist

[x] PR has an informative and human-readable title
[x] Changes are limited to a single goal (no scope creep)
[x] Code can be automatically merged (no conflicts)
[x] Code follows project standards (link if applicable)
[x] Passes all existing automated tests
[x] Any change in functionality is tested
[x] New functions are documented (with a description, list of inputs, and expected output)
[x] Placeholder code is flagged / future todos are captured in comments
[x] Project documentation has been updated (including the "Unreleased" section of the CHANGELOG)
[x] Reviewers requested with the Reviewers tool :arrow_right:

I think this is mostly in shape to clear the path for Coastal needs. I'm still uncertain about create_formulation, but that could be addressed in a subsequent PR.


Added fiat currency list supported by cryptocompare

This fixes the issue: https://github.com/ExodusMovement/cryptocompare/issues/24

It was tested using following code snippet and found out which currencies are supported by cryptocompare:

const cryptocompare = require('cryptocompare');
global.fetch = require('node-fetch')

const globalCurrencies = ["USD","CAD","EUR","AED","AFN","ALL","AMD","ARS","AUD","AZN","BAM","BDT","BGN","BHD","BIF","BND","BOB","BRL","BWP","BYR","BZD","CDF","CHF","CLP","CNY","COP","CRC","CVE","CZK","DJF","DKK","DOP","DZD","EEK","EGP","ERN","ETB","GBP","GEL","GHS","GNF","GTQ","HKD","HNL","HRK","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KHR","KMF","KRW","KWD","KZT","LBP","LKR","LTL","LVL","LYD","MAD","MDL","MGA","MKD","MMK","MOP","MUR","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SDG","SEK","SGD","SOS","SYP","THB","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","UYU","UZS","VEF","VND","XAF","XOF","YER","ZAR","ZMK"];
const supportedCurrencies = [];

const timer = setInterval(function () {
    let globalCurrency = y.pop();
	if (! globalCurrency) { clearInterval(timer); return; }
	cryptocompare.convert('BTC', globalCurrency).then((data) => {
        console.log(data)
        supportedCurrencies.push(data);
    });
}, 100);

Thanks for this, I was going to do it but I read somewhere that the maintainers don't want to handle their own lists in the package, rather it just functioning as an api.

Closing as per @kennedybaird.


please consider releasing fips203-ffi to crates.io

Thanks for the work on this crate, and the review and merging of the proposed C FFI.
I would find it really useful if the fips203-ffi crate were released on crates.io.
If you're up for publishing it there, that would be great!

I like the idea. I am approaching a stopping point on a FIPS 204 update (wrt constant-time) and will then dig into this.

great, thank you!  If that works, and i'm able to integrate the released fips203-ffi crate into my own workflows (and possibly into debian), then i might take a crack at offering a similar set of FFI and python bindings for the fips204 work too.

I got the clippy fixes sorted out, and also found/fixed a few in the ffi code.
We should be good-to-go with https://crates.io/crates/fips203-ffi
Let me know if it works well for you.
Your help is appreciated!

The FFI is now in debian, including the python bindings as well.  I probably need to register it on PyPI to reserve the python module name.  I'll try to do that in the coming week.
Debian users can now apt install python3-fips203 and it uses your work here, @integritychain.  exciting! ☺

This is great news, thank you very much for your help on this.
I've learned some new stuff from you!