Is it worth to put logger in a singleton?

So, currently I use logger like this way
///logger.dart file
final Logger logger = Logger(printer: PrettyPrinter());

///main.dart file
void main() {
  logger.d(
      'Run with either `dart example/main.dart` or `dart --enable-asserts example/main.dart`.');
}

But I read some info about singleton in dart, so don't know if I win something using it this way
///logger.dart file
class Log {
  factory Log() => _instance;
  Log._privateConstructor();
  static final Log _instance = Log._privateConstructor();

  final Logger log = Logger(
    printer: PrettyPrinter(), // Use the PrettyPrinter to format and print log
  );
}

///main.dart file
void main() {
  Log().log.d(
      'Run with either `dart example/main.dart` or `dart --enable-asserts example/main.dart`.');
}

I don't think it matters in this case. I would keep your code simple to understand. And I don't think the singleton pattern helps to make the code understandable.
In general I'm not a fan of globals and I pass my logger instances to my classes directly. It is a dependency of my class and as such I want to treat it that way. It goes counter to the accepted norm but I believe explicitness matters.

I agree with @hectorAguero
it is more intuitive becase we use print("some text") not Printer().print("some text")
for my side project I use logger as singleton and here is example code

class LoggerService {
  Logger _logger;

  static final LoggerService _instance = LoggerService._internal();

  static Logger instance = Logger();

  factory LoggerService() {
    return _instance;
  }

  LoggerService._internal() {
    // add initialization logic if needed example: Logger(printer: PrettyPrinter(methodCount: 0));
    _logger = Logger();
  }
}

void main() {
  LoggerService.instance.d('Log message with 2 methods');

  LoggerService.instance.i('Info message');

  LoggerService.instance.w('Just a warning!');

  LoggerService.instance.e('Error! Something bad happened', 'Test Error');

  LoggerService.instance.v({'key': 5, 'value': 'something'});
}

I would also prefer the singleton approach.

I suspect that, though I haven't tested it, the initialisation clock needs to be a singleton so that it has the same offset for different Logger instances, no?

People remember the rules but not what they are intended for. Global variable = bad is just a rule of thumb, not something that has to be adhered onto on every code base.
I personally split my loggers into different domains so I can change the logging levels for each domain for more clarity

class LogLevels {
  static Level? all = Level.warning;

  static Level get router => all ?? Level.info;
  static Level get bloc => all ?? Level.warning;
  static Level get auth => all ?? Level.info;
  static Level get api => all ?? Level.info;
  static Level get errorService => all ?? Level.error;
  static Level get initialization => all ?? Level.info;
}

class Log {
  static PrettyPrinter _printer = PrettyPrinter(
    methodCount: 0,
    errorMethodCount: 10,
  );
  static Logger get router =>
      Logger(printer: _printer, level: LogLevels.router);
  static Logger get bloc => Logger(printer: _printer, level: LogLevels.bloc);
  static Logger get auth => Logger(printer: _printer, level: LogLevels.auth);
  static Logger get api => Logger(printer: _printer, level: LogLevels.api);
  static Logger get errorService =>
      Logger(printer: _printer, level: LogLevels.errorService);
  static Logger get initialization =>
      Logger(printer: _printer, level: LogLevels.initialization);
}

class Log {
  late Logger _logger;

  Log._internal() {

    _logger = Logger();
  }

  static Logger to = _instance._logger;

  factory Log() => _instance;

  static late final Log _instance = Log._internal();

  static void v(dynamic message) {
    to.v(message);
  }

  static void d(dynamic message) {
    to.d(message);
  }

  static void i(dynamic message) {
    to.i(message);
  }

  static void w(dynamic message) {
    to.w(message);
  }

  static void e(dynamic message) {
    to.e(message);
  }

  static void wtf(dynamic message) {
    to.wtf(message);
  }
}

// if u use a singleton instance
// use with
// Log.i(...)


Test-SecretVault failure

I have no problems using the LastPass vault I have setup. But testing fails.

Is the failure from the LastPass extension or the Test-SecretVault command? The command offers no insight as to what it is testing so I have no way of knowing.

The function of Test-SecretVault is implemented by the extension vault, in this case SecretManatgement.LastPass.Extension. The implementation should write errors if the test fails, but SecretManagement does not enforce this.
Please create an issue for the last pass extension vault:
https://github.com/TylerLeonhardt/SecretManagement.LastPass

Filed an issue in the LastPass extension repo.


Default users on ubuntu should be in the lxd group

lxd is a core part of the Ubuntu cloud experience, so users should be in the lxd group.

It sounds like this code is going to get a lot of rework soon, so we'll carry this as a distro patch for now.


Add documentation details about Image formats and color space conversion

As mentioned as one part of https://github.com/godotengine/godot/issues/22031, the documentation about Image.FORMAT_* and ImageTexture.create_from_image() are unclear about which formats can cause a color space conversion and thus are unsuited for transferring non-color data into the shader.
This PR increases clarity.

Thanks for this! Can you amend this to remove the empty lines? :)

He told me he's in holidays now, I'll merge and fix the empty lines manually as I have a couple other such fixes I want to make anyway in other docs.

Cherry-picked for 3.0.7.


Breakpoints not working after adding sourcemaps in 0.8.x

Per @markerikson they don't always work.
https://twitter.com/acemarke/status/806353019902316545
We need reproducing cases to get to the root of the issue. If you can show code in which breakpoints are broken this would help.
If we don't fix them I intend to revert the sourcemaps change. We can't break breakpoints. But I hope we'll solve this instead.

I had exactly the same issue today.
I fixed my problem by adding new webpack.EvalSourceMapDevToolPlugin() to the plugin sections of both the development and production configs. After doing that, I am able to set and hit breakpoints in the ES6 source in Chrome DevTools.
Found the solution in the post here.
If this is an accepted fix I can submit a pull request.

Thanks for the comment. That feels like an odd fix so I'd rather not apply it without a full understanding of why this works.
But if you can reproduce this in your project, can you try updating Webpack to 1.14.0? It should contain a fix for a possibly related issue.

@gaearon Upgrading to 1.14.0 seems to work for me.

Heh. I was debating whether to file an issue or not, but it was late and I was curious if @TheLarkInn had anything to say first.
I see that #1188 is tagged for 0.8.2, so I'll look forward to that.  Thanks for looking into this!
(Side note: having looked at the Webpack 1.x code for handling the devtool config option, what it actually does is parse strings like "#cheap-module-inline-source-map", and turn that into several distinct variables, such as the prefix character, inline vs eval, etc.  Part of that process is deciding whether to use SourceMapPlugin or EvalSourceMapPlugin.  Also, manually adding a sourcemap plugin instance to the plugins array will wind up overriding the one created from the devtool option as far as I've seen.)


.htaccess

The .htaccess example gets stuck in an infinite loop if used with laravel
<IfModule mod_rewrite.c>;
    RewriteEngine on

    RewriteRule ^.*$ /public/$1 [NC,L,QSA]
</IfModule>;

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule (.*) public/$1 [L]

the rewrite condition is need so it doesn't constantly get validated over and over again.

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

ID: 9ba00ed4-0fb2-ae6f-dec8-fc1e6a77c6e0
Version Independent ID: 0b72e7cc-958d-378d-34b5-029c187db2a5
Content: Configure PHP apps - Azure App Service
Content Source: articles/app-service/containers/configure-language-php.md
Service: app-service
GitHub Login: @cephalin
Microsoft Alias: cephalin

@pollend Thanks for the feedback. We are actively investigating and will get back to you soon.

@pollend  Thanks for your patience. Are you still experiencing this issue?  As a work around, can you try deploying your Laravel application with a custom Docker image instead.
@cephalin is this expected behavior?

I was having performance problems with the web app so I configured a docker container with ngnix and php-fpm

I went with publishing my app using docker.


refactor Refactor all rewrite logical unit tests by match-pattern

Proposed changes
Issue Number: close #17625
Problem summary
Refactor all rewrite logical unit tests by match-pattern.
Checklist(Required)

[ ] Does it affect the original behavior
[ ] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 34.42 seconds
stream load tsv:          463 seconds loaded<PHONE_NUMBER>9 Bytes, about 154 MB/s
stream load json:         40 seconds loaded<PHONE_NUMBER> Bytes, about 56 MB/s
stream load orc:          75 seconds loaded<PHONE_NUMBER> Bytes, about 14 MB/s
stream load parquet:          31 seconds loaded 861443392 Bytes, about 26 MB/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230311160627_clickbench_pr_112828.html

In my understanding, this pr is not about "enhancement".
Could you title it with "codeStyle" or something else, please.
"enhancement" is specific to performance improvement.

Thanks @englefly for the remind and @jackwener for the reveiw, I have updated this commit's prefix to Refactor and address your comments, please take a look again.

run buildall


Possible 2.1 regression: Type 'void[]' is not assignable to type 'void'.

TypeScript Version:  2.1.1  (npm i<EMAIL_ADDRESS>Code

function f(): Promise<void>[] {

    let p: Promise<void>[] = [];

    p.push(Promise.all(f()));

    return p;
}

Expected behavior: I believe this should compile without errors, as it does in 2.0
Actual behavior:
tsc --lib es6 p.ts
p.ts(6,12): error TS2345: Argument of type 'Promise<void[]>' is not assignable to parameter of type 'Promise'.
Type 'void[]' is not assignable to type 'void'.

Isn't it more like 2.1 improvement ?
# TS 2.0
let b: Promise<void>
let b2: Promise<void[]>
b = b2 // <- OK

# TS latest
let b: Promise<void>
let b2: Promise<void[]>
b = b2 // <- Proper error: void[] not assignable to void

No it's not. Anything is assignable to void because most of the time, it OK to discard the value.

Ok, I will let others answer it then.
I was just making an observation that this works in TS2.0 but throws error string[] is not assignable to string in latest
let a: Promise<string>
let b: Promise<string[]> = Promise.resolve(['test'])
a=b

and that you can't assign void[] to void even in TS2.0:
let c: void = undefined;
let d: void[] = [undefined];
c = d // Error: void[] is not assignable to []

Ok, I see that void was deliberately made incompatible with any other type in typescript. And stricter check in 2.1 for promises is an improvement for any type, except void.
So the question essentially becomes: is there any way to express that any promise is assignable to Promise<void>? After all, this code is valid:
let pv: Promise<void>;
let pn: Promise<number>;

pv.then(function() {
    // ok
});

pn.then(function() {
    // also ok - not using the number here
});

shouldn't this be valid too?
 pv = pn; // error. why ?

Answer: Promise<void> was the wrong choice, Promise<{}> works for me.
Sorry for the noise.


No such file or directory error

First off - thank you for putting together this repository. I am looking forward to seeing this project succeed.
I had a question about loading the data -- when I tried to follow your instructions under "Getting Started," I get an error "No such file or directory [...] /healthd_dmgrcs_mortality_disc/synthetic_data.csv." I looked at the loaded data, and sure enough, the data was loaded, but it looks like the synthetic data is a .tab file. This seemed like an error, and I was wondering whether I could still trust the generated data?

We are looking into it. Thanks for raising an issue! For background, are you using the Github code or the PyPI package?

I tried using both the PyPI package and the Github code.

@zcalhoun The PyPI version needs to be updated since it has the error but we don't see an error when installing directly from the repository:
pip install "git+https://github.com/NSAPH-Projects/space@dev#egg=spacebench[all]"

We will update the PyPI version, in the meantime, can you uninstall your current version (pip uninstall spacebench) and install from Github as above? If the problem persists, please let us know and include a code sample and information about your system so we can reproduce the error.

A new version in PyPI v0.1.4 has been released.

Hi Mauricio,
Thank you for following up. I am still seeing the issue when I try to load the datasets. I think the issue is with this line of code:
https://github.com/NSAPH-Projects/space/blob/ad1630038abee4fdab3080f25fba30bd4a4df85c/spacebench/env.py#L296
Basically, you should replace the 1: with -1, so that you are always getting the file type. This error stems from the fact that I was using a relative reference with ./, which doesn't work with the way you've written this line of code. I can make the change and issue a pull request if you'd like.

. I can make the change and issue a pull request if you'd like.

That would be fantastic!

I see what you mean in the code -- there are two separate lines of code that use similar logic to load the .csv/.tab/.parquet files, and then a separate set of code to open up graphml/tar.gz files. I made updates to both that should address the issue I encountered (see PR #151).


bug: negative degree in streaming hash join with rearranged chain

When running with RW_NO_CACHE=1, this will panic steadily on tpch q15. We may investigate this later. cc @yuhao-su
thread 'tokio-runtime-worker' panicked at 'attempt to subtract with overflow', stream/src/executor/managed_state/join/mod.rs:64:9

Originally posted by @BugenZhao in https://github.com/singularity-data/risingwave/pull/1528#discussion_r840518053

Seems the problem is caused by the incorrect UpdateDelete rows mentioned in #1811. Can't reproduce now.


config: Do not allow runtimes to ignore properties defined by the spec

Otherwise a runtime could silently ignore a property it didn't want to implement, which would be confusing for runtime callers.  This closes a potential loophole in the restriction from #559.

This would benefit from the clearer platform/protocol slug language in #570, so if #570 lands first I'll rebase this PR around it and tighten the “target platform” wording here.

This would benefit from the clearer platform/protocol slug language in #570…

#570 landed, and I've floated some work tying settings to platforms in #747.  I recommend reviewing #747 first, and then I'll reroll this if/when that lands.

We are going to figure out a better way to word this.

let's make a decision on whether this is required for v1.0.0

IMO we can decide on the specifics of this edge case post-1.0
@crosbymichael what's your opinion on clarifying this being a 1.0 or 1.1 concern?

On Wed, May 24, 2017 at 08:48:07AM -0700, v1.0.0.batts wrote:

let's make a decision on whether this is required for v1.0.0

I don't think the current spec is particularly clear, but if folks
read the current wording like I do 1 and we end up landing wording
settling on @tianon's interpretation 1, that would be a breaking
change (e.g. configs targeting Linux that set process.user.username
would go from being legal to being illegal).  So if we punt to
post-1.0, settle on @tianon's interpretation, and feel like my current
reading has any merit, we'd have to bump to 2.0 when we landed wording
for @tianon's interpretation.

Rebased around #850 with 19ed44c → ffa1718, changing the “target platform” link from #platform to spec.md#platforms.

Does this mean that everything that cannot be defined for one platform must be moved to platform specific code or explicitly annotated?

On Tue, Jun 27, 2017 at 07:39:23AM -0700, Justin Cormack wrote:

Does this mean that everything that cannot be defined for one
platform must be moved to platform specific code or explicitly
annotated?

Yes!  For example, in rc6 we have wording restricting
process.user.uid, etc. to POSIX platforms 1 and wording restricting
everything in config-linux.md to Linux 2.
To make those restrictions more explicit, we could declare them in the
property specification 3, but that approach was rejected 4.
Regardless of whether the declaration is on the property itself or
somewhere else in the spec, I think we need to be (and generally are)
very clear about which platforms a property is defined for.  Not
clearly documenting that association will make life confusing for
config authors.  For example, a Linux or Solaris runtime that ignores
process.rlimits would violate at least [5,6,7,8].

house keeping:
is this still an interested topic?


twister: 0.9.34 -> 2019-08-19

Motivation for this change
Wouldn't build with OpenSSL 1.1.x anymore. The new revision makes it work
Development is still going on, but the last release was in 2015: https://github.com/miguelfreitas/twister-core/issues/433
The daemon runs but I don't know how to test more.
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-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
[x] Fits CONTRIBUTING.md.

cc #68361

backported in 4909a5e764fe9e47ae5512ca795db314bca6b49b


Intellisense for templates

Not a bug, just a question.
Is it possible to obtain intellisense for templates, i.e. available parameters

Not yet :/. I'm going to track this under #98 - it would be a hugely beneficial feature to add, but it's also a lot of work.


Wrong labels on multisig Tx details page

https://aeternity-blockchain.atlassian.net/browse/SW-1338
Describe the bug
Incoming multisig Tx is marked as Spend Out in details.
hash: th_Xj9WegpmAcfHzC3wtbGjhLHPRHzRQJeuXKLeUZMPE7Z8fZRr6
Expected result
Should be marked as Spend In.
Steps to reproduce

Open incoming Tx
Compare labels

Environment selector

Firefox
MacOS
Web wallet

https://github.com/superhero-com/superhero-wallet/assets/147718725/0fba28df-99c7-4a22-9cf4-9bbf36fc2e19

Not reproducible for me on the current dev branch. Can be closed.


[Model] RBDash Added

Adding RBDash model
Details :
RBDash GitHub repository: https://github.com/RBDash-Team/RBDash
RBDash model: https://huggingface.co/RBDash-Team/RBDash-v1.2-72b

@anzhao920 Thank you for your contribution, I was wondering if you forgot to use the variable options in the build_mme and build_hallusionbench functions under the rbdash.py file and if it needs to be added to the prompt. If not, I will consider removing this variable.

Thank you so much for your reply. I've removed these unused variables. PTAL.

https://huggingface.co/RBDash-Team/RBDash-v1.2-72b This page is 404, where can the model weight be downloaded?

https://huggingface.co/RBDash-Team/RBDash-v1.2-72b This page is 404, where can the model weight be downloaded?

@FangXinyu-0913 My apologies for not making the Hugging Face model public earlier. It is now available for download. Please try the link again: https://huggingface.co/RBDash-Team/RBDash-v1.2-72b.

I encountered this problem when loading, but the repository you provided(https://huggingface.co/laion/CLIP-convnext_large_d_320.laion2B-s29B-b131K-ft-soup) does not contain the file preprocessor_config.json, and I would like to ask which repository should I go to download it.

 I encountered this problem when loading, but the repository you provided(https://huggingface.co/laion/CLIP-convnext_large_d_320.laion2B-s29B-b131K-ft-soup) does not contain the file preprocessor_config.json, and I would like to ask which repository should I go to download it.

@FangXinyu-0913 The preprocessing configuration for the model (OpenCLIP-ConvNeXt-L) we are using is consistent with clip-vit-large-patch14-336. Please use the configuration available at: https://huggingface.co/openai/clip-vit-large-patch14-336/blob/main/preprocessor_config.json.
Apologies for the previous issues in our official RBDash README. The vision encoder used for this model is actually InternViT-6B-448px-V1-5 rather than clip-vit-large-patch14-336. The README has now been updated accordingly, and you can find the details here: https://github.com/RBDash-Team/RBDash?tab=readme-ov-file#pretrained-weights.

@anzhao920 Thank you for your answer. I'm experiencing this problem when loading models. It looks like it's due to the lack of video memory that makes it difficult to fully load the model onto the GPU, and I wanted to ask if there is a way to spread the model weights evenly across the GPUs (like the automodel.from_pretrained function that sets the device_map parameter) so that I can make sure that the model is loading correctly.

 @anzhao920 Thank you for your answer. I'm experiencing this problem when loading models. It looks like it's due to the lack of memory that makes it difficult to load the model onto the GPU fully, and I wanted to ask if there is a way to spread the model weights evenly across the GPUs (like the automodel.from_pretrained function that sets the device_map parameter) so that I can make sure that the model is loading correctly.

@FangXinyu-0913 Setting 'device_map' to 'auto' when loading the model should be sufficient.

I added device_map='auto', but still encountered OOM, so I also add device='cpu'. This allowed the model to load successfully, but it was slow, and ran into this problem. What do you think could be done to fix it?

I added device_map='auto', but still encountered OOM, so I also add device='cpu'. This allowed the model to load successfully, but it was slow, and ran into this problem. What do you think could be done to fix it?

@FangXinyu-0913 Could you please provide the type of GPU you use for testing and the number of GPUs you test with? We plan to replicate the setup locally and will submit it once we've confirmed it works.

I added device_map='auto', but still encountered OOM, so I also add device='cpu'. This allowed the model to load successfully, but it was slow, and ran into this problem. What do you think could be done to fix it?

@FangXinyu-0913 Could you please provide the type of GPU you use for testing and the number of GPUs you test with? We plan to replicate the setup locally and will submit it once we've confirmed it works.

NVIDIA A800-SXM4-80GB * 2. Thanks for your help!

Thank you for your reply! I have successfully loaded the model on 4 A800 and will be merging this PR within the day. If you have any comments for further changes, feel free to submit a commit or comment.

eval result on MMBench_EN:

eval result on MMBench_EN:

@FangXinyu-0913 Hi Xinyu,
I have a question regarding the performance of our model on the OpenCompass multi-modal leaderboard. According to the leaderboard, our model’s score on MMBench is 80.2. However, the figure you provided shows a score of 83.1.
Could you please help clarify the reason for this discrepancy? Thank you!

eval result on MMBench_EN:

@FangXinyu-0913 Hi Xinyu,
I have a question regarding the performance of our model on the OpenCompass multi-modal leaderboard. According to the leaderboard, our model’s score on MMBench is 80.2. However, the figure you provided shows a score of 83.1.
Could you please help clarify the reason for this discrepancy? Thank you!

Hi, @anzhao920 ,
On the leaderboard we present the average score of MMBench_V1.1_EN_TEST and MMBench_V1.1_CN_TEST, while the screen shot @FangXinyu-0913 provided is for MMBench_V1.0_EN_TEST.

eval result on MMBench_EN:

@FangXinyu-0913 Hi Xinyu,
I have a question regarding the performance of our model on the OpenCompass multi-modal leaderboard. According to the leaderboard, our model’s score on MMBench is 80.2. However, the figure you provided shows a score of 83.1.
Could you please help clarify the reason for this discrepancy? Thank you!

Hi, @anzhao920 , On the leaderboard we present the average score of MMBench_V1.1_EN_TEST and MMBench_V1.1_CN_TEST, while the screen shot @FangXinyu-0913 provided is for MMBench_V1.0_EN_TEST.

Hi, @kennymckormick Thank you very much for the clarification!


fix(client): Correctly execute batch transactions with single statement

When only a single request was executed within $transaction, it always
got executed via singular request endpoint (and not batch). This
endpoint is never run via transaction and cannot set isolation level.
Fixed by forcing batch transaction requests to always go throu
requestBatch endpoint.
Fix https://github.com/prisma/prisma/issues/17555

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


Provide encryption key for DATA volume type (in addition to ROOT) to copy volume.

ScaleIO plugin fails to migrate encrypted DATA Volume between clusters:
Unable to convert/copy from <REDACTED> to <REDACTED>, due to: qemu-img: Could not open 'file.filename=/dev/disk/by-id/emc-vol-<REDACTED>': Parameter 'encrypt.key-secret' is required for cipher].
	at org.apache.cloudstack.engine.orchestration.VolumeOrchestrator.migrateVolume(VolumeOrchestrator.java:1382)
	at org.apache.cloudstack.engine.orchestration.VolumeOrchestrator.storageMigration(VolumeOrchestrator.java:1493)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

Added change to provide passkey not only for ROOT but for DATA Volume as well.
Description

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[X] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[ ] Major
[X] Minor

Bug Severity

[ ] BLOCKER
[ ] Critical
[ ] Major
[X] Minor
[ ] Trivial

Screenshots (if appropriate):
How Has This Been Tested?

Tested manually.

@blueorangutan test

@blueorangutan package

@sureshanaparti a [SL] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: ✔ el8 ✔ el9 ✔ debian ✔ suse15. SL-JID 11065

@blueorangutan test

@sureshanaparti a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests

[SF] Trillian test result (tid-11434)
Environment: kvm-ol8 (x2), Advanced Networking with Mgmt server ol8
Total time taken: 59984 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr9663-t11434-kvm-ol8.zip
Smoke tests completed. 139 look OK, 1 have errors, 1 did not run
Only failed and skipped tests results shown below:

Test
Result
Time (s)
Test File

test_01_redundant_vpc_site2site_vpn
Failure
469.01
test_vpc_vpn.py

all_test_ssvm
Skipped
---
test_ssvm.py

@JoaoJandre since this is a bugfix, causing failure when migrating encrypted DATA Volume between clusters - can we consider it?

@rohityadavcloud since it is a bugfix we can consider it. But we need the author to describe their tests and/or have some 3rd party testing.

Thanks @JoaoJandre we've asked our @borisstoyanov to do some QA.


Can't override default index view

As stated here: https://github.com/SyrusAkbary/Flask-SuperAdmin/blob/master/flask_superadmin/base.py#L198
I am doing this:
class MyHomeView(AdminIndexView):
    @expose('/')
    def index(self):
        return render_template('adminhome.html')

admin = Admin(index_view=MyHomeView)
admin.init_app(app)

What I get:
Traceback (most recent call last):
  File "./run.py", line 3, in <module>
    from test import app
  File "/Users/g/test/test/__init__.py", line 48, in <module>
    admin.init_app(app)
  File "/Users/g/test/lib/python2.7/site-packages/flask_superadmin/base.py", line 448, in init_app
    app.register_blueprint(view.create_blueprint(self))
TypeError: unbound method create_blueprint() must be called with MyHomeView instance as first argument (got Admin instance instead)

Thanks you saved me ... just spent 2 days trying to figure out what am i doing wrong :)


Bridge0 network interface is destroyed at some point of the NomadBSD booting process.

Hello.
Some setting is wrong because bridge0 for some reason is destroyed at some point of the booting process and when NomadBSD is fully loaded it is not present on the network configuration,like you can see here :
https://pastebin.ubuntu.com/p/7xSQXnDfxG/
I can show you some important configuration files,with the hope that you understand why that happens and any bhyve VM can't connect to internet.
/boot/loader.conf : https://pastebin.ubuntu.com/p/GWBF7bFg6k/
/etc/rc.conf : https://pastebin.ubuntu.com/p/JsDYCkhh8B/
/etc/sysctl.conf : https://pastebin.ubuntu.com/p/DyWWrbFP4V/
dmesg : https://pastebin.ubuntu.com/p/FDRjh3YKgK/
very thanks.

Hi  @Marietto2008,
it's just a guess. In /usr/local/etc/devd/networkmgr.conf comment out the line
        action "/usr/local/share/networkmgr/auto-switch.py $subsystem";

with a #.

Pic 6 is not related to that error,so,ignore it.
Il giorno mer 14 dic 2022 alle ore 14:31 Mario Marietto <
@.***> ha scritto:

NomadBSD is affected by a serious bug "FUSE protocol violation for server
mounted at /usr/local : cache incoerent ! To prevent data corruption
disable the data cache by mounting with -o direct_io". I tried to fix it by
modifying the script located on* /etc/rc.d/mount_uzip :*
changing this :
-o allow_other,use_ino,suid,nonempty,kernel_cache \
with this :
-o allow_other,use_ino,suid,nonempty,direct_io \
I didn't see that error anymore,but unfortunately sometimes I see a
similar error,that forces me to reboot because the system become not
usable. I've attached some screens to show you that I have attached to this
email.
Il giorno mer 14 dic 2022 alle ore 10:56 mrclksr @.***>
ha scritto:

Hi @Marietto2008 https://github.com/Marietto2008,
it's just a guess. In /usr/local/etc/devd/networkmgr.conf comment out
the line
    action "/usr/local/share/networkmgr/auto-switch.py $subsystem";

with a #.
—
Reply to this email directly, view it on GitHub
https://github.com/nomadbsd/NomadBSD/issues/135#issuecomment-1350764081,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFYNC5JTYZIHGJ6QB6SIOTWNGKWVANCNFSM6AAAAAAS4I4TXQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Mario.

--
Mario.

How is this related to the bridge issue?

There is no relation between them. Your suggestion about putting the
bridge0 up worked. The bridge problem is closed. The latter problem that I
have reported is different and not related to the first one.
Il giorno mer 14 dic 2022 alle ore 14:39 mrclksr @.***>
ha scritto:

How is this related to the bridge issue?
—
Reply to this email directly, view it on GitHub
https://github.com/nomadbsd/NomadBSD/issues/135#issuecomment-1351368761,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFYNC5CVSTXBR2PIR3C2K3WNHEYZANCNFSM6AAAAAAS4I4TXQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Mario.

Ok. Do not post to unrelated issues, please.

When I said : "I didn't see that error anymore",I talked about this error
: "FUSE protocol violation for server mounted at /usr/local : cache
incoerent ! To prevent data corruption disable the data cache by mounting
with -o direct_io",not to the bridge0 error. So I presume it is fixed. But
actually I often see the error reported on the pictures that I have
attached. I'm not sure if it is related to the error "Fuse protocol
violation",but I suppose yes,in some way,because the effect is similar. The
system became not usable,unstable,no application reply anymore.
Il giorno mer 14 dic 2022 alle ore 14:42 Mario Marietto <
@.***> ha scritto:

There is no relation between them. Your suggestion about putting the
bridge0 up worked. The bridge problem is closed. The latter problem that I
have reported is different and not related to the first one.
Il giorno mer 14 dic 2022 alle ore 14:39 mrclksr @.***>
ha scritto:

How is this related to the bridge issue?
—
Reply to this email directly, view it on GitHub
https://github.com/nomadbsd/NomadBSD/issues/135#issuecomment-1351368761,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFYNC5CVSTXBR2PIR3C2K3WNHEYZANCNFSM6AAAAAAS4I4TXQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Mario.

--
Mario.


[Backport 2.x] Add AutoExpandReplica in the validation of replica count enforcement

Description
Backporting the changes merged in #4994.

Overriding as Jenkins has failure due to https://github.com/opensearch-project/opensearch-build/issues/2847 and local builds are passing


Could you open source of the samples trained？

Awesome project！
Could you open source of the samples you trained ？

Thanks!  I could probably gather some together; I'd like to have (maybe a separate repo?) with the machine learning stuff (including samples to train), but for now I don't have a great way to do that.  Also, some of them are very large (file size), so there's not a great way to share them.

I have no idea how any of this stuff works (lol) but would love to help! Let me read this article. Thanks!

Yes, exactly - I did PNGs though

Ah cool! So replacing flower_photos with ui_photos or something and folders for different types of UI that are JPGs.
I would love to write up some guide for others who are interested in making this plugin better!


ValidationError: 101 validation errors for PointStruct vector -> 0 value is not a valid float (type=type_error.float)

Current Behavior
vectors = []
for image in images:
     img = cv2.imread(f"{saved_images_path}/{image}")
     image_embedding = img_encoder(img)
     vectors.append(image_embedding)

this way I create my vectors and throw them into the vectors array. then I reformat it to be float64.
np_vectors = np.array(vectors,dtype="float64")
Finally, I export these vectors to qrant, but I get an invalid float error.
import numpy as np
from qdrant_client.models import PointStruct

qdrant_client.upsert(
     collection_name=my_collection,
     points=[
         PointStruct(
             id=i,
             vector=np_vectors.tolist(),
             payload=payload
         )
         for i in index
     ]
)

Expected Behavior
The vectors I created are working without error by qdrant.
Steps To Reproduce
No response
Environment
- Towhee version(e.g. v0.1.3 or 8b23a93):last version
- OS(Ubuntu or CentOS):Google Cloud vertexAI
- CPU/Memory:8 vCPUs, 52 GB RAM
- GPU:No

hey
from the first look it seems like you needed to set vector=np_vectors[i].tolist() instead of vector=np_vectors.tolist()

@zeynepiskndr is the issue still actual for you or we can close it?

@joein I appreciate your help. problem solved.


Any contribution policy?

How can i contribute to the corpus data?
Do I have any rule?
Can I add whatever can I say?
Would you add restrictions on training data regard certain contents, in order to be approved?

you can make a fork and add it there, then send a PR. if it matches the owner may merge it in


ObjectOf does not perform excess key check

Greetings,
Have been playing around with the library and it fantastic, so big thanks!
Noticed that ObjectOf does not seem to check for additional keys as part of the ObjectOf guard; is this intentional?
For example, with the following setup
const isAppleObject = ObjectOf({
                apple: isString
            })

isAppleObject({apple: "Granny Smith", mango: "Bowen"}) // Returns true

Greetings,
Yes, that is the intended behaviour, it aims to replicate "assignability"
const someFunc = (val: {A: string}) => {}

const value = {A: "Hello", B: "Hello"}

someFunc(value)

I could add some typeguard variants that test against exact type match


Analyse code that has Lombok as dependency

Hi,
I have Java based Gradle Project that has multiple sub-projects (java too).
"Master" Gradle Project is just a wrapper and doesn't have any line of Java code.
Subprojects "heavily depend" on using lombok.
    // lombok
    compileOnly "org.projectlombok:lombok:${lombokVersion}"
    annotationProcessor "org.projectlombok:lombok:${lombokVersion}"

Gradle version: 6.4
Java version: 11
id "com.autonomousapps.dependency-analysis" version "0.46.0"
After I've added this plugin, I was able to execute:
./gradlew buildHealth

and got advice-*.json's as result of report.
But now if I try to run
./gradlew clean build

with this plugin, I'm getting following error:

Task :app:findDeclaredProcsMain
Could not reflectively access processor class lombok.launch.AnnotationProcessorHider$AnnotationProcessor

Task :app:abiAnalysisMain FAILED
Task :app:analyzeClassUsageMain FAILED

FAILURE: Build completed with 2 failures.
And failures are:
1: Task failed with an exception.

What went wrong:
Execution failed for task ':app:abiAnalysisMain'.

A failure occurred while executing com.autonomousapps.tasks.AbiAnalysisWorkAction

2: Task failed with an exception.

What went wrong:
Execution failed for task ':app:analyzeClassUsageMain'.

There was a failure while executing work items
A failure occurred while executing com.autonomousapps.tasks.JarAnalysisWorkAction

Any help/answer would be appreciated.
Thank You

Would you be able to provide a build scan from the failure?
On Thu, Jun 4, 2020, 4:52 AM Aleksandar<EMAIL_ADDRESS>wrote:

Hi,
I have Java based Gradle Project that has multiple sub-projects (java too).
"Master" Gradle Project is just a wrapper and doesn't have any line of
Java code.
Subprojects "heavily depend" on using lombok.
// lombok
compileOnly "org.projectlombok:lombok:${lombokVersion}"
annotationProcessor "org.projectlombok:lombok:${lombokVersion}"

Gradle version: 6.4
Java version: 11
id "com.autonomousapps.dependency-analysis" version "0.46.0"
After I've added this plugin, I was able to execute:
./gradlew buildHealth
and got advice-*.json's as result of report.
But now if I try to run
./gradlew clean build
with this plugin, I'm getting following error:
Task :app:findDeclaredProcsMain
Could not reflectively access processor class
lombok.launch.AnnotationProcessorHider$AnnotationProcessor
Task :app:abiAnalysisMain FAILED
Task :app:analyzeClassUsageMain FAILED
FAILURE: Build completed with 2 failures.
And failures are:
1: Task failed with an exception.

What went wrong:
Execution failed for task ':app:abiAnalysisMain'.

A failure occurred while executing
com.autonomousapps.tasks.AbiAnalysisWorkAction
2: Task failed with an exception.

What went wrong:
Execution failed for task ':app:analyzeClassUsageMain'.

There was a failure while executing work items
A failure occurred while executing
com.autonomousapps.tasks.JarAnalysisWorkAction
Any help/answer would be appreciated.
Thank You
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/issues/188,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABJG5PNF5KZOVMRUCFVBBCLRU6DILANCNFSM4NSRSPXQ
.

I'll try to prepare "dummy" project so you can test it your own. Will let you know here once I'm done.

Thank you, a reproducer would be very helpful. Would love to get this resolved for you.

I took a stab at this myself, but was unable to reproduce an issue. A reproducer would be great.

Hi,
I've prepared you non-working (master branch) and working (develop branch) example.
You can find it here:
https://github.com/staleks/lombok-analyse-android
If you need any more details please let me know.

Thank you, I expect that will be very helpful.
On Sat, Jun 13, 2020, 3:13 AM Aleksandar<EMAIL_ADDRESS>wrote:

Hi,
I've prepared you non-working (master branch) and working (develop branch)
example.
You can find it here:
https://github.com/staleks/lombok-analyse-android
If you need any more details please let me know.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/issues/188#issuecomment-643602286,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABJG5PII7XMJFCKOQB5TQADRWNGNXANCNFSM4NSRSPXQ
.

I've taken a look, and I'm not sure this has anything to do with lombok. It may instead be something to do with the spring plugin. Take a look at this build scan, and note that app:jar is SKIPPED. I ran another build with -i and saw that it was skipped because it's onlyIf is false (i.e., the jar task is disabled). The plugin depends on that task for various kinds of analysis.
Before I dive any deeper, I think I need to understand why the jar task is being disabled. I don't have any experience with the spring framework. Can you shed any light?

Maybe this will shed some light?
https://stackoverflow.com/a/49361992/1437865

As suggested by that post, I've explicitly added in app/build.gradle
jar {
     enabled = true
}

Please check following branch: feature/DAA-188-analysis
URL: https://github.com/staleks/lombok-analyse-android/tree/feature/DAA-188-analysis
Now it works :)
Thank You for all of your effort.
Now if I look output, I've noticed following statement:
> Task :domain:advicePrinterMain
Unused annotation processors that should be removed:
- compileOnly("org.projectlombok:lombok:1.18.12")

But as you can notice, I've added some Lombok's annotations on Country.java class.
Can you please elaborate on this?

Thanks for confirming that enabling the jar task solves it.
Regarding that advice, it looks like a bug! I'll take a look.

So, one of the things the plugin does to detect unused annotation processors is look at the imports in the source code and compare that against the declared supported annotation types of the processor. Lombok declares that it supports lombok.*, but the source imports lombok.AccessLevel, lombok.Getter, and lombok.NoArgsConstructor. tl;dr I need to support star notation :D

I now have a PR fixing the star-import issue, but it doesn't address the disabled jar issue. Is that a blocker for you? Trying to handle that would be ... awkward.

Hi,
as long as you have it somewhere in documentation, for this combination, I'm ok as we "fixed" it :)

Sounds good! I'll update the docs. Thanks for the issue and working with me to resolve it.

I may have a slightly better solution than adding this to the docs. Looks like I can check if the jar task is enabled in the onlyIf predicate of a consuming task, and then emit a more specific warning.

I just released v0.49.0 which resolves this.


Remove useless imports and redundant type cast

Motivation:
There are some redundant imports and unnecessary type cast
Modification:
Remove useless imports and unnecessary type cast
Result:
The code is cleaner than original

@chrisvest Thanks


Listeners plugin exposes incorrect typedefs

Declared here
declare module 'router5/dist/types/router' {
    interface Router {
        // ...
        addListener(name: string, callback: Listener): void
        removeListener(name: string, callback: Listener): void
        // ...
    }
}

These types are incorrect, because addListener does not take a event name, as implemented here:
router.addListener = cb => addListener('*', cb)
router.removeListener = cb => removeListener('*', cb)

PR to fix this incoming.

Any update on this?


Cap hand-raise timer

Hour -> infinity?

Infinity symbol in the timer looks weird. If "∞" is sideways , it looks like an upright "8". And if it's upright, it looks like a sideways "8".

Fixed by #102


Extract 9:16 thumbs from video & using VTT seems to lose the resize

Hola!
When extracting 9:16 thumbs from a 16:9 video, I would pass
.../rs:fill:480:640/vts:35
This works as expected.
However, when I pass in vtt:
.../rs:fill:480:640/vts:35/vtt:1:5:5:120:160
The extracted thumbs in the video tile are the original 16:9.
Will send a sample privately.

Hey @routehero!
vtt always does "resize--to-fit" scaling. Currently, the only way to get tiles of the exact size provided is using the extend_tile argument of vtt: vtt:1:5:5:120:160:1. Though I guess this is not what you want.

I can add an argument that would enable "resize-to-fill" scaling of the tiles, but it will always use the center of a frame (as with ce gravity). Would it work for you?

On our site, we plan to have a feature where the user can select a 9:16 portion of a 16:9 video.
Using ffmpeg, I would do something like:
only iframes:
ffmpeg -y -skip_frame nokey -i ../bbb_sunflower_1080p_30fps_normal.mp4 -vf "fps=1/5,crop=x=0:y=0:w=ih*9/16,scale=480:640,tile=5x5"  test%05d.jpg
all frames:
ffmpeg -y -i ../bbb_sunflower_1080p_30fps_normal.mp4 -vf "fps=1/5,crop=x=0:y=0:w=ih*9/16,scale=480:640,tile=5x5"  test2%05d.jpg
Being able to specify the x= parameter in this case is key to the feature, so center-based gravity would not be appropriate.

Well, it's possible. But I'd rather allow specifying a focus point (like in the fp gravity) instead of offsets. The focus point is generally easier to use and it can have proper defaults (0.5x0.5 for center). From the frontend's point of view, it's a little bit more complex but not rocket science. Basically, it can be calculated as (x_offset + selected_area_width/2) / video_width. What do you think about this?

Sounds good to me.

I made a test build test-vtk-fill that adds 3 additional arguments to vtt. Now its arguments look like this:
vtt:%step:%columns:%rows:%tile_width:%tile_height:%extend_tile:%trim:%fill:%focus_x:%focus_y

fill: when set to 1, t or true, imgproxy will resize frames to fill a tile and will crop projecting parts (as with resizing_type:fill).
focus_x and focus_y: floating point numbers between 0 and 1 that define the coordinates of the center of the tile. Treat 0 and 1 as right/left for focus_x and top/bottom for focus_y. Applicable only when fill is used.
Please check if this does the job for you.

Initial testing looks good to me!

Nice! Please drop a line here when you make sure it works for you so I can merge this to the upstream.

Hey @routehero! Did you have a chance to test the feature? I'd like to merge it to the upstream.

Yes, looks good over here!

The feature is released in v3.24.0


Update materialize functions

Enable free materialize function and use NSError:

That bug isn't fixed yet, but this also won't ever compile. Somewhat
Reasonably, you are unable to use a protocol as a concrete type for a
generic type that has a type constraint with that protocol.
To get around this, we should use NSError for the error type, since we
can always safely cast from ErrorType to NSError.
Not sure if we should make this change to the initializer as well. Seems like
it might be safer than using a force cast.

Remove static materialize function:

Now that we have the initializer that takes a function, this seems less
interesting. Returning a function is much less useful than just passing a
function and getting a Result.

ping @antitypical/result
Seems like this might be good to make a decision about before releasing Swift 2.0 support.

:+1: from me.


Unexpected behavior with merging a traced Stream with another Stream

Merging a stream (.merge, .mergeHaltBoth, etc.) that uses bayou for tracing with another stream breaks the usage of child spans.
I know this project is just experimental, but I am also following the discussion of adding similar functionally to natchez so I figured I would share anyway. I have not pulled down and tested Ross' branch to verify the same behavior.
Merging a stream that uses bayou with another stream (even untraced streams) causes the underlying IOLocal to not properly update its state. I see no errors, but when I step through the debugger, the IOLocal will call set with the new Span[IO], but the next get still returns the default span. so every Trace[F] method acts upon the original root span used when instantiating the IOTrace. If the same stream is not merged with another, you can create and nest child spans as you would expect.
Here is an example of a single stream with its tracing output, which matches my expectations. (scala-cli https://gist.github.com/ryanmiville/6e4d756eceac70f9919c1de859e48f5a)
And here is the exact same stream merged with another stream, along with its traces. (scala-cli https://gist.github.com/ryanmiville/71d06f76dfe7c62ab96f342f5bed72b5)
Unfortunately, I don't know much about the inner workings of fs2 or IOLocal to provide any insight.
I don't expect you to really do anything about it, but I just wanted to bring it up in case the same behavior ends up making it into natchez, so it can at least be documented.

Yes, no worries, thank you very much for trying this out and writing this up! Pinging @rossabaker and @systemfw so they can have a look as well.

Thanks!   I've been a little queasy about Trace[IO], and this makes me much more queasy.  IOLocal values are visible on the fiber we set them, and are passed to any fibers we start.  But they don't magically make it through more complicated types.  If the stream interpreter hops fibers between these two lines, "child" will not be created from span (aka "new_root"), but from whatever trace was initialized with ("root"):
            _    <- Stream.resource(trace.spanR(span))
            _    <- Stream.resource(trace.spanR("child"))

I don't really know what to do about this.

Generally speaking I'm queasy on *Local because of this type of issues, but also queasy on the alternative (tagless + Kleisli) because it raises the complexity floor so high for a non-core business logic like tracing that it's unjustifiable outside of highly skilled teams for me...now if we're lucky, this problem might be specific to merge, but I suspect Ross' general point will hold

For context, all concurrent combinators in fs2 follow a roughly similar pattern:

create a Channel or Queue
Add some code to the input streams to manage stream level interruption (typically with onFinalize and interruptWhen)
compile.drain.start the Streams
return the output Stream out of that Queue/Channel

The fact that the different streams end up running in different fibers doesn't bode too well for IOLocal propagation, but I haven't done a full analysis on the issue. It'd also be interesting to check what happens with Resource, although the situation there is both simpler, and offers more tools for control like allocatedCase

Tracing resources with IOLocal seems ... pretty good?  I posted a full gist, but the intersting bits are:
    trace.use { implicit trace =>
      def io(name: String): IO[Unit] =
        trace.span(name)(
          IO(Thread.currentThread.getName)
            .flatMap(t => trace.put("thread" -> t))
        )

      val acquire = trace.span("acquire")(IO.unit)
      val release = trace.span("release")(IO.unit)
      val r = trace.spanR("resource") >> Resource.make(acquire)(_ => release)
      r.use(_ => trace.span("use")(IO.race(io("a"), io("b")).void))
    }

acquire, release, and use are children of resource.  a and b are raced on different threads, but still are children of use.

  I clearly voided the warranty here, but I left trace in a horrible state.

I've also been experimenting, to see how hard it is to break Stream tracing. So far I've minified down to https://github.com/armanbilge/bayou/commit/2ca914e211715bac59073fea281535663dcb3204 which basically inserts a Queue between two Streams.
    def run: IO[Unit] = {
      trace.use { implicit trace =>
        foo(stream).compile.drain
      }
    }

  def foo[F[_], O](
    s: Stream[F, O]
  )(implicit F: Concurrent[F]): Stream[F, O] =
    Stream.eval(Queue.unbounded[F, Option[O]]).flatMap { q =>
      Stream.eval(s.enqueueNoneTerminated(q).compile.drain.start).flatMap { _ =>
        Stream.repeatEval[F, Option[O]](q.take).unNoneTerminate
      }
    }

    val entryPoint = Log.entryPoint[IO]("example")

    val trace = entryPoint.root("root").flatMap(r => Resource.eval(Trace.ioTrace(r)))

    def stream(implicit trace: IOTrace): Stream[IO, Unit] = {
        Stream(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
          .covary[IO]
          .chunkN(3)
          .flatMap { chunk =>
            for {
            _    <- Stream.resource(trace.spanR("green kangaroo"))
            _    <- Stream.resource(trace.spanR("child"))
            _    <- Stream.eval(trace.put("vals" -> chunk.toList.mkString(",")))
            _    <- Stream.sleep[IO](1.second)
            } yield ()
          }
    }

Gives:
[info] {
  "name" : "root",
  "service" : "example",
  "timestamp" : "2022-03-09T01:53:38.047505Z",
  "duration_ms" : 4523,
  "trace.span_id" : "fec8a9f6-9c78-43e1-9de5-e909406f5819",
  "trace.parent_id" : null,
  "trace.trace_id" : "b3396a93-4342-452e-8d53-88653d9e2bed",
  "exit.case" : "succeeded",
  "vals" : "10",
  "children" : [
    {
      "name" : "child",
      "service" : "example",
      "timestamp" : "2022-03-09T01:53:38.475466Z",
      "duration_ms" : 1036,
      "trace.span_id" : "b3b5586e-1573-418f-aaf6-ec249150acdb",
      "trace.parent_id" : "b3396a93-4342-452e-8d53-88653d9e2bed",
      "trace.trace_id" : "b3396a93-4342-452e-8d53-88653d9e2bed",
      "exit.case" : "succeeded",
      "children" : [
      ]
    },
    {
      "name" : "green kangaroo",
      "service" : "example",
      "timestamp" : "2022-03-09T01:53:38.466419Z",
      "duration_ms" : 1074,
      "trace.span_id" : "a0965406-9196-4671-940b-dea74a9e0e8d",
      "trace.parent_id" : "b3396a93-4342-452e-8d53-88653d9e2bed",
      "trace.trace_id" : "b3396a93-4342-452e-8d53-88653d9e2bed",
      "exit.case" : "succeeded",
      "children" : [
      ]
    },
    ...
  ]
}

So sadly, child is not nested under green kangaroo. I really cannot understand why.

Ok, minimized down to noneTerminate ...
def run: IO[Unit] = {
      trace.use { implicit trace =>
        stream.noneTerminate.compile.drain
      }
    }

stream.map(identity).compile.drain

It calls this:
  private[fs2] def mapOutput[F[_], O, P](s: Stream[F, O], f: O => P): Pull[F, P, Unit] =
    interruptScope(mapOutputNoScope(s, f))

And when I reimplement mapOutputNoScope, it's fine.  interruptScope sounds ominous.

stream.interruptScope.compile.drain does it.  I can confirm that it's releasing resources in the reverse order they're acquired, but the child is not seeing the same IOLocal state as the parent.  I suspect it's in InterruptionContext, but I'm not familiar enough to have an idea what can be done about it.

Thanks. Minimized to this:
//> using scala "3.1.1"
//> using lib "co.fs2::fs2-core:3.2.5"

import cats.effect._
import fs2._

object Bayou extends IOApp.Simple:
  // def run = s.compile.lastOrError.flatMap(IO.println) // List(2, 1)
  def run = s.interruptScope.compile.lastOrError.flatMap(IO.println) // List()

  def s = Stream.eval(IOLocal(List.empty[Int])).flatMap { local =>
    Stream.eval(local.update(1 :: _)).flatMap { _ =>
      Stream.eval(local.update(2 :: _)).flatMap { _ =>
        Stream.eval(local.get)
      }
    }
  }

Ok, I think we more-or-less got to the bottom of it in https://github.com/typelevel/fs2/issues/2842#issuecomment-1062859215. Whenever interruption is involved, so are multiple fibers. And whenever multiple fibers are involved, you are liable to lose these sorts of modifications to fiber-local state once the fiber is completed/discarded.

It looks like there's some hope to fix this in fs2 :) but, what it means for Bayou is that it would probably specifically need a spanS(...): Stream[F, Unit]-style method to make the magic invocations on the Stream.

it would probably specifically need a spanS(...): Stream[F, Unit]-style method

FWIW I have already been adding a spanS as a convenience method in my project. To echo @SystemFw's sentiment, tracing should be a frictionless addition to our codebase, so I personally welcome specific methods for specific use cases. :)

What region of the stream would have to be non-interruptible?  The spanS effects that set the local state, or everything inside spanS?
      def spanS[F[_]: MonadCancelThrow: Trace](name: String) =
        // plus future magic
        Stream.resource(Trace[F].spanR("stream"))

      trace.use { implicit trace =>
        for {
          d  <- Deferred[IO, Either[Throwable, Unit]]
          s   = Stream(1).repeat.take(100000)
          s2  = s ++ Stream.eval_(d.complete(Either.unit)) ++ s
          x  <- (spanS[IO]("stream") >> s2).interruptWhen(d).compile.foldMonoid
          _  <- IO.println(x)
        } yield x

Can x be less than 200000?

Re (1): I wonder if we can have the release step check to see if the span currently in the fiber is actually the one that it installed. If not, maybe better not to touch it? Who knows!
Re (2): yeah, this is a tricky one. If you follow good practices with by closely associating spanR with fiber scopes e.g.  Supervisor then I think that takes the worst of the bite away.

Not releasing in a state mismatch makes things mildly worse.  Not only do we end on a different span, but we leak a span:
Status quo:

ambient
a open
b open

Init
root
🚫
🚫

acquire a
a
✅
🚫

acquire b
b
✅
✅

release a
root
🚫
✅

release b
a ⚠
🚫
🚫

If we :

ambient
a open
b open

Init
root
🚫
🚫

acquire a
a
✅
🚫

acquire b
b
✅
✅

release a
b
✅  ⚠
✅

release b
a ⚠
✅ ⚠
🚫

I love your tables! :)
I could be misunderstanding, but the span in question should definitely still close. But, while doing so it shouldn't change the ambient span if it didn't install the one that's already there. But then if I read your table correctly I think we end up in the same final state anyway.

Oh, right.  If we close it without resetting it, the only difference from the status quo is that b, not root, is ambient after release a.  The end state is indeed the same.

the only difference from the status quo is that b, not root, is ambient after release a

IMO that's probably slightly better. But at this point you are in undefined-behaviour-ish territory anyway.

I would err on the side that has an open span as the ambient span, so fields have somewhere to go.  But that's not a distinction here.  And if there are lots of bs, making sure stray fields end up on b instead of root prevents overwrites.  I think that is probably the best we can do.

The definition in https://github.com/tpolecat/natchez/pull/526/commits/e2afc8515a19e7f7650a76b85e806bf468b7b092 works, albeit with a bit different API.  new_root spans the outer stream, and chunk is spanned by child:
    Trace[Stream[IO, *]].span("new_root")(
      Stream(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
        .covary[IO]
        .chunkN(3)
        .flatMap { chunk =>
          Trace[Stream[IO, *]].span("child")(
            Stream.eval(trace.put("vals" -> chunk.toList.mkString(","))) >>
            Stream.sleep[IO](1.second)
          )
        }
    )

Full frankengist, which is @ryanmiville's example and my Trace.

I had to add //> using plugin "org.typelevel:::kind-projector:0.13.2" to get it to compile. Having a look now :)

Oh, I couldn't find that syntax and have been adding that as a command line argument.  Yay.
I have an API design comment on this, but it may be more germane to the Natchez PR.

So, is the problem with Resource the use? It's not obvious to me what the exact equivalent of use is for Stream. If we didn't use with a function but instead used use more like compile, then there isn't the issue about the ambient span not covering use?

An entire stream can be traced because we can exchange its untraced effects F for traced effects F via translate.  We can similarly exchange the effects of acquiring and releasing a resource.  But there is no hook to exchange the output of use.  The f in fold would need to be exchanged.  We can't add an Exchange to the Resource algebra because the ADT is a public API.  It is thus up to the user of the resource to apply the F ~> F themselves... if they can even see it.

Oh, now I think I understand your other comment about how it's easier for Stream. Thanks, I think I'm slowly catching up.
This is the second time Resource being a public ADT has been annoying. I asked about it before and my understanding was the design choice was so fs2 could interpret it. But I think Resource#allocatedCase covers that use-case now, but we can't revoke it anymore :(

When we trace a resource through the lens of Trace[Resource[IO, *]].span, it's more intuitive.  Acquisition and release are part of the resource, and use happens on the outside.
    trace.use { implicit trace =>
      Trace[Resource[IO, *]].span("child")(
        Resource.make(
          trace.span("acquire")(IO.unit))(
          _ => trace.span("release")(IO.unit))
      ).surround(trace.span("use")(IO.unit))
    }

As a practical matter, it would prevent an http4s tracer from tracing anything about the body that it didn't know from the headers.
I know less about skunk.  The Session interface is full of Resources, but tracing is deeply embedded.  A better comparison to http4s might be that tracing doesn't happen through a middleware, but is baked directly into the backend.

allocatedCase is another way to view the problem: where in F[(B, ExitCase => F[Unit])] are we going to put the code that can exchange the output of a B => F[C] to be provided later?

Just figured I'd share that we've been using a custom Trace at work for the last few months that is essentially a combination of bayou and @rossabaker's F ~> F implementation and it's been working well for us.
I've open sourced it here. I don't intend to promote yet another tracing library. I'd much rather get these sort of things added to bayou or natchez itself.

@ryanmiville that's great, thanks for trying it out in the wild and sharing your implementation! I agree about upstreaming, ideally to Natchez itself. Towards that you should definitely add a similar comment to one of Ross's PRs if you haven't yet.
Bayou itself was only started as an experiment, but if you consider it a "step up" I'd be very very happy to accept a PR here with your changes :)

Thanks for the feedback @armanbilge . I'll probably whip up a PR in the next week or two.
I'm excited to eventually try out otel4s :)


ptvo.info website down

Hello,
I don't know how to contact you so I'm posting here, your website seems down.

Thank you for your work.

Restored. Thank you!


Rationale for joining connected and commonLikes events

In a typical Omegle response body you would have
[["connected"], ["commonLikes", ["Soccer"]], ...

So what is the rationale for joining them in a single event?
For you that meant you had to specialize event parsing for each chat type.

Because you would never get a commonLikes  event without a connected event. If you do, something is wrong. Adding the common interests as an argument works well with the rest of the API.

@coal0 thanks! Sounds good.


Make obsidian omnipotent in daily management - Full functionalities similar to ticktick and toggl track

implement all functionalities in
ticktick https://help.ticktick.com/articles/7054286604315131904
toggl track https://toggl.com/track/
Enhance Obsidian to be an all-encompassing solution for daily management, incorporating a comprehensive set of features akin to both TickTick and Toggl Track. This includes integrating a daily timer, Pomodoro technique, Eisenhower Matrix (4-quadrant time management system), habit tracker, task archiving, and the ability to create events seamlessly under the daily folder (Daily notes folder/folder named with the current date/Events).

https://forum.obsidian.md/t/make-obsidian-omnipotent-for-daily-management/72112

This is a good aspiration but out of scope for the plugin. Some features will be added.

Time Ruler currently supports the Pomodoro Timer which is fully customizable for length as well.
You can create tasks in Daily notes automatically with the "+" button
Eisenhower Matrix settings would be nice, I'll think about those.

I agree, time tracking would be pretty cool. I can add a feature with the Timer where when you check off a task it sets the task's length based on the length of time spent, then resets the timer. Completed/weekly review is upcoming in next version

Yes that would be great! I'm looking forward to seeing that improvements! Thank you!


Better CLI args

Update Main.hs to use https://hackage.haskell.org/package/cmdargs-0.10.20
Merge the results better AppSettings, allow all settings to be passed via cmdline, including path to config file

Done-ish with 85e6c7f


Trying to get LocalSubscriber example to work

I run the local subscriber with no arguments, note I changed the host from localhost to my mqtt-broker.
sbt:root> project examples
sbt:examples> runMain net.sigusr.mqtt.examples.LocalSubscriber
[warn] Credentials file /home/me/.ivy2/.credentials does not exist
[warn] Credentials file /home/me/.ivy2/.credentials does not exist
...
[info] running net.sigusr.mqtt.examples.LocalSubscriber
Transport disconnected
Transport connected
 → ConnectFrame(Header(false,0,false),ConnectVariableHeader(true,true,false,0,false,false,5),Local-Subscriber,None,None,Some(Local-Subscriber),Some(yolo))
 ← ConnackFrame(Header(false,0,false),0)
Session started
 → SubscribeFrame(Header(false,1,false),0,Vector((Local-Subscriber/stop,2), (AtMostOnce,0), (AtLeastOnce,1), (ExactlyOnce,2)))
Transport disconnected
Transport connected
 → ConnectFrame(Header(false,0,false),ConnectVariableHeader(true,true,false,0,false,false,5),Local-Subscriber,None,None,Some(Local-Subscriber),Some(yolo))
 ← ConnackFrame(Header(false,0,false),0)
 → SubscribeFrame(Header(true,1,false),0,Vector((Local-Subscriber/stop,2), (AtMostOnce,0), (AtLeastOnce,1), (ExactlyOnce,2)))
Session started
Transport disconnected
Transport connected
 → ConnectFrame(Header(false,0,false),ConnectVariableHeader(true,true,false,0,false,false,5),Local-Subscriber,None,None,Some(Local-Subscriber),Some(yolo))
 ← ConnackFrame(Header(false,0,false),0)
Session started
 → PingReqFrame(Header(false,0,false))
 ← PingRespFrame(Header(false,0,false))
 → PingReqFrame(Header(false,0,false))

It fails to stop on the Local-Subscriber/stop topic and prints nothing on the AtMostOnce.
I never see it report a SubAck.
Also maybe its related but it reports transport disconnected right after the SubscribeFrame.
Any suggestions welcome!

The fact that it fails to stop is because there is no successful subscription to the topic Local-Subscriber/stop. And, as far as I can see, it looks like it's the subscription that fails (as you mentioned no SubAck is traced and disconnection occurs just after the subscription attempt which is a normal sing that something went wrong).
Just to get further insight, what kind of broker are you using ? Could you try to subscribe to this broker with mosquitto-sub ? What would be valuable for me is to see the complete mosquitto-sub command line you'll use, and run it with the -d to get some message exchange traces. Moreover, if you look at the code, the Local-Subscriber provides the credentials Local-Subscriber/yolo to the broker. This may be the cause of your issue here, but anyway it would be nice to try to incorporate this in your mosquitto-sub command line.
Let's see if there is something interesting out of this...

Ok infos:
I have these diffs from starting from hash bcd04b3d9b493e9d910007373c09c1a7dab6c5ed:
@@ -54,7 +54,7 @@ object LocalSubscriber extends App {
     )
     val transportConfig =
       TransportConfig[Task](
-        "localhost",
+        "mqtt-broker",
         1883,
         // TLS support looks like
         // 8883,
@@ -66,9 +66,9 @@ object LocalSubscriber extends App {
       SessionConfig(
         s"$localSubscriber",
         cleanSession = false,
-        user = Some(localSubscriber),
-        password = Some("yolo"),
         keepAlive = 5
+//        user = Some(localSubscriber),
+//        password = Some("yolo"),

Reran, same behavior:
[tulth@crm-114 fs2-mqtt]$ sbt
[info] Loading settings for project global-plugins from metals.sbt ...
[info] Loading global plugins from /home/tulth/.sbt/1.0/plugins
[info] Loading settings for project fs2-mqtt-build from plugins.sbt ...
[info] Loading project definition from /mnt/nfs/tulth/scala/mqtt-fs2-fun/fs2-mqtt/project
[info] Loading settings for project root from build.sbt ...
[info] Set current project to root (in build file:/mnt/nfs/tulth/scala/mqtt-fs2-fun/fs2-mqtt/)
[info] sbt server started at local:///home/tulth/.sbt/1.0/server/ce06dbe2da41d5f9aae8/sock
sbt:root> project examples
[info] Set current project to examples (in build file:/mnt/nfs/tulth/scala/mqtt-fs2-fun/fs2-mqtt/)
sbt:examples> runMain net.sigusr.mqtt.examples.LocalSubscriber
[warn] Credentials file /home/tulth/.ivy2/.credentials does not exist
[warn] Credentials file /home/tulth/.ivy2/.credentials does not exist
[warn] Multiple main classes detected.  Run 'show discoveredMainClasses' to see the list
[info] running net.sigusr.mqtt.examples.LocalSubscriber
Transport connected
 → ConnectFrame(Header(false,0,false),ConnectVariableHeader(false,false,false,0,false,false,5),Local-Subscriber,None,None,None,None)
 ← ConnackFrame(Header(false,0,false),0)
Session started
 → SubscribeFrame(Header(false,1,false),0,Vector((Local-Subscriber/stop,2), (AtMostOnce,0), (AtLeastOnce,1), (ExactlyOnce,2)))
Transport disconnected
Transport connected
 → ConnectFrame(Header(false,0,false),ConnectVariableHeader(false,false,false,0,false,false,5),Local-Subscriber,None,None,None,None)
 ← ConnackFrame(Header(false,0,false),0)
 → SubscribeFrame(Header(true,1,false),0,Vector((Local-Subscriber/stop,2), (AtMostOnce,0), (AtLeastOnce,1), (ExactlyOnce,2)))
Session started
Transport disconnected
Transport connected
 → ConnectFrame(Header(false,0,false),ConnectVariableHeader(false,false,false,0,false,false,5),Local-Subscriber,None,None,None,None)
 ← ConnackFrame(Header(false,0,false),0)
Session started
 → PingReqFrame(Header(false,0,false))
 ← PingRespFrame(Header(false,0,false))
 → PingReqFrame(Header(false,0,false))
 ← PingRespFrame(Header(false,0,false))
^C
[warn] Canceling execution...
[error] Total time: 14 s, completed Nov 8, 2020 10:01:11 AM
sbt:examples>  → DisconnectFrame(Header(false,0,false))
Transport disconnected
2020-11-08 10:01:11,198 shutdown-hooks-run-all ERROR No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging. See https://logging.apache.org/log4j/2.x/manual/configuration.html for instructions on how to configure Log4j 2
Transport connected
 → ConnectFrame(Header(false,0,false),ConnectVariableHeader(false,false,false,0,false,false,5),Local-Subscriber,None,None,None,None)
 ← ConnackFrame(Header(false,0,false),0)
Session started
[tulth@crm-114 fs2-mqtt]$

Trying something similar with mosquitto_sub, at the end I sent it some events using the MQTT Explorer app:
$ mosquitto_sub -d -h mqtt-broker -t Local-Subscriber/stop
Client mosq-x7lRbXfewhffMZaFb9 sending CONNECT
Client mosq-x7lRbXfewhffMZaFb9 received CONNACK (0)
Client mosq-x7lRbXfewhffMZaFb9 sending SUBSCRIBE (Mid: 1, Topic: Local-Subscriber/stop, QoS: 0, Options: 0x00)
Client mosq-x7lRbXfewhffMZaFb9 received SUBACK
Subscribed (mid: 1): 0
Client mosq-x7lRbXfewhffMZaFb9 received PUBLISH (d0, q0, r0, m0, 'Local-Subscriber/stop', ... (1 bytes))
1
Client mosq-x7lRbXfewhffMZaFb9 received PUBLISH (d0, q0, r0, m0, 'Local-Subscriber/stop', ... (1 bytes))
0
Client mosq-x7lRbXfewhffMZaFb9 sending DISCONNECT

I notice the message ID in mosquitto_sub is 1, where it seems to be 0 in fs2-mqtt.
The spec says:

2.3.1 Packet Identifier
SUBSCRIBE, UNSUBSCRIBE, and PUBLISH (in cases where QoS > 0) Control Packets MUST contain a
non-zero 16-bit Packet Identifier

Maybe this is my root issue?

I applied these diffs and it got a suback:
@@ -35,10 +35,10 @@ object IdGenerator {
   private def idQueue[F[_]: Concurrent](q: Queue[F, Int]): F[Fiber[F, Unit]] = {
     def go(v: Int): Stream[Pure, Int] =
       v match {
-        case 65535 => Stream.emit(0) ++ go(1)
+        case 65535 => Stream.emit(1) ++ go(2)
         case _     => Stream.emit(v) ++ go(v + 1)
       }
-    go(0).through(q.enqueue(_)).compile.drain.start
+    go(1).through(q.enqueue(_)).compile.drain.start
   }

I am not sure this is the correct patch as I am not familiar with the code.

Well spotted!
Thank you for the fix.
I've leaved this project abandoned for too long... I'll take advantage of this to update some dependencies, check if everything is still alright, and produce a 0.4.1 version.

happy to help!  I am excited to replace some of my home automation python mqtt services with scala versions (why? fun/learning!).


cmd/link: panic during go install -buildmode=shared -linkshared std

What version of Go are you using (go version)?
go version devel +80a0517 Tue Mar 15 16:25:40 2016 +0000 linux/386

What operating system and processor architecture are you using (go env)?

GOARCH="386"
GOBIN=""
GOEXE=""
GOHOSTARCH="386"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/home/yuval/go.git"
GOTOOLDIR="/home/yuval/go.git/pkg/tool/linux_386"
CC="gcc"
GOGCCFLAGS="-fPIC -m32 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build105912400=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"

What did you do?
running GOHOSTARCH=386 GOARCH=386 ../bin/go install -buildmode=shared -linkshared std
from the src directory.

What did you expect to see?
success

What did you see instead?

# /tmp/go-build111140044/libstd.so
panic: method slice pointer in ".dup" leads to a different symbol

goroutine 1 [running]:
panic(0x81d5080, 0x1e9e2bf0)
        /home/yuval/go.git/src/runtime/panic.go:500 +0x331
cmd/link/internal/ld.decodetype_methods(0x1cdb1b50, 0x0, 0x0, 0x0)
        /home/yuval/go.git/src/cmd/link/internal/ld/decodesym.go:351 +0x31d
cmd/link/internal/ld.(*deadcodepass).flood(0x1853bd94)
        /home/yuval/go.git/src/cmd/link/internal/ld/deadcode.go:306 +0x998
cmd/link/internal/ld.deadcode(0x18796000)
        /home/yuval/go.git/src/cmd/link/internal/ld/deadcode.go:59 +0x1ae
cmd/link/internal/ld.Ldmain()
        /home/yuval/go.git/src/cmd/link/internal/ld/pobj.go:190 +0x1290
cmd/link/internal/x86.Main()
        /home/yuval/go.git/src/cmd/link/internal/x86/obj.go:44 +0x1c
main.main()
        /home/yuval/go.git/src/cmd/link/main.go:25 +0xf6

CC @mwhudson

Hm happens on linux/amd64 too. Oh good.


Data publication next steps

With Craig off the project, we need to determine how to move the data publication forward.

Can we start this before reprocessing is totally complete?
What are we publishing? A manifest of the data and how to access it?

We need sample datasets as well, possibly for inclusion in publication but also to support things like Phenome '19 meeting and DARPA effort.
We also need to get rough idea of who will be responsible for what aspects of this. We should schedule a dedicated meeting early next week, possibly with @craig-willis to do knowledge handoff (or point us in right direction of any existing writeup) so between @tcnichol and myself we can figure out how to proceed.

Closing this issue and prioritizing 223 in March sprint.


fix #935 fix the problem of application clock

+1

Current coverage is 62.65%

Merging #944 into master will change coverage by +0.15% by 16a0d60

Coverage Diff
@@            master    #944   diff @@
======================================
  Files          208     208
  Stmts         4187    4187
  Branches         0       0
  Methods          0       0
======================================
+ Hit           2617    2623     +6
  Partial          0       0
+ Missed        1570    1564     -6

Uncovered Suggestions

+0.74% via ...yarn/Constants.scala#22...52
+0.43% via ...ne/PipeLineDSL.scala#72...89
+0.33% via ...rt/QueryServer.scala#127...140
See 7 more...

Powered by Codecov


Spack package for UM vn7.3

See Issue https://github.com/ACCESS-NRI/spack-packages/issues/59. Create the Spack package um7 to be used for ACCESS ESM 1.5. The build is to be based on https://github.com/coecms/access-esm-build-gadi but using the ACCESS-NRI/UM_7 repository instead of file:///g/data/access/access-svn/cmip5/branches/dev/jxs599/trunk_ESM1.5/submodels/UM.

See also https://github.com/nci/spack-repo/tree/main/packages/um


Delivery Service APIs: Health

[ ] get /api/$version/deliveryservices/:id/health

this endpoint is addressed in #2232


feat: new index builder

Codecov Report
Attention: Patch coverage is 16.58615% with 518 lines in your changes are missing coverage. Please review.

Project coverage is 79.11%. Comparing base (72b6715) to head (fa27c80).
Report is 4 commits behind head on main.

Files
Patch %
Lines

rust/lance/src/index/vector/builder.rs
0.00%
217 Missing :warning:

rust/lance-index/src/vector/pq/storage.rs
1.35%
73 Missing :warning:

rust/lance-index/src/vector/sq/storage.rs
19.48%
60 Missing and 2 partials :warning:

rust/lance-index/src/vector/flat/storage.rs
53.06%
46 Missing :warning:

rust/lance-index/src/vector/flat/index.rs
0.00%
42 Missing :warning:

rust/lance-index/src/vector/v3/storage.rs
0.00%
23 Missing :warning:

rust/lance/src/index/vector/utils.rs
0.00%
22 Missing :warning:

rust/lance-index/src/vector/quantizer.rs
5.88%
16 Missing :warning:

rust/lance-index/src/vector/utils.rs
62.85%
13 Missing :warning:

rust/lance/src/index/vector/ivf.rs
55.55%
4 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2401      +/-   ##
==========================================
- Coverage   79.70%   79.11%   -0.59%
==========================================
  Files         200      204       +4
  Lines       54937    55787     +850
  Branches    54937    55787     +850
==========================================
+ Hits        43788    44138     +350
- Misses       8609     9092     +483
- Partials     2540     2557      +17

Flag
Coverage Δ

unittests
79.11% <16.58%> (-0.59%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

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


Button HTML

Hey, im pretty new to HTML with js. so how can I trigger this with a html button etc

Hey, im pretty new to HTML with js. so how can I trigger this with a html button etc

https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events


Create a troubleshooting wiki page.

Topic include:

What to do with invalid geometry errors.
What to do with validation issues.

yes, whar should i do with invalid geom?

If at all possible, please use the data from the latest release.  There should be very limited use cases for requiring an up-to-date on-demand output of the data.  If there is a particular area that is assigned a timezone identifier that seems incorrect, please create an issue about that.  If you run into individual build errors, please create a new issue describing the problem you're running into.


skip testing hashes since they are useless

This allows us to merge simple improvements such as #50 without tedious and useless work.
Xref https://github.com/trixi-framework/Trixi.jl/issues/680

Same for me - as discussed in the issue above, everything we can do in a short amount of time is bad. Getting something that works reasonably well takes more time than we have right now.


Support multiple EBS volume types & set default to less-expensive gp3

This is a minor change that could offer a very small cost-savings for bastion hosts. We would like to see it reflected upstream if possible.
If the change to a gp3 default is concerning due to a large volume of TF updates, could the support for specifying volume_type still be added so we can manually specify gp3?
NOTE: This change overlaps partly with #72.

That PR absorbed some other work that wasn't ready for upstream b/c we based it on master
This change responds to the PR comment: https://github.com/cloudposse/terraform-aws-ec2-bastion-server/pull/72#discussion_r640105565

what

Changes the root volume of the bastion instances from gp2 to the newer gp3 type
Still allows support for gp2, standard or any other volume types
Adds validation to volume-type var. All TF 0.13+ types are included: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance#volume_type

why

The gp3 type now being set as default is both less expensive per-GB and more-performant for small volumes

Since bastion servers have small boot volumes they should never need the larger-sizes where gp2 is needed
This is mainly a cost-savings for bastion disk-patterns

Allowing volume-type to be specified allows gp2 or standard volume-types if required

references

https://aws.amazon.com/about-aws/whats-new/2020/12/introducing-new-amazon-ebs-general-purpose-volumes-gp3/

I think the "Auto Format" workflow failure is due to a configuration error or traffic-issue for your "cloudpossebot" @Gowiem. The repo it's getting a 403 from is publicly accessible: https://github.com/WorkingGroupLink/terraform-aws-ec2-bastion-server/
remote: Permission to WorkingGroupLink/terraform-aws-ec2-bastion-server.git denied to cloudpossebot.
fatal: unable to access 'https://github.com/WorkingGroupLink/terraform-aws-ec2-bastion-server/': The requested URL returned error: 403
Error: Process completed with exit code 128.

@mbijon happens sometimes. Mind pushing an empty commit? It will sometimes resolve itself --
git commit --allow-empty -m "Trigger CI"
git push

Thanks!

/test all

Done @Gowiem. Unfortunately it also triggered a merge-commit on my end & failed again anyway...

@mbijon happens sometimes. Mind pushing an empty commit? It will sometimes resolve itself --
git commit --allow-empty -m "Trigger CI"
git push

Thanks!

Ah @mbijon I think with you opening from another org ("WorkingGroupLink"), it's not getting the proper permissions... I'm not sure what the deal is there. @Nuru can I bug you to shed some knowledge on how this works when you have a minute? I know I've seen you poke people for this before.

@Gowiem wouldn't it work better, faster if you cherry-picked my code into a local branch?
If so, I pushed a cleaner branch without the merge commits to here. Just grab the 2 most-recent commit for the work that matters: https://github.com/WorkingGroupLink/terraform-aws-ec2-bastion-server/commits/mbijon/volume-type

/terratest


Rename prop and propPath related functions

In order for better :corn:sistancy, it makes sense to move to more explicit names for some of the prop, propPath based functions. With the merger of this and this, it makes sense to go with the get, set, unset convention and allow us to drop the prefixing of prop to path based functions.
All existing functions will remain, but will be deprecated and completely removed at version 1.0.0. The code should exist in one location and have the deprecated function reference the new version, The functions documentation should be moved to the new name for the description and code examples. The index views should point to the new function name, with some indication of its deprecation.
The following function are to be affected by this work:

[x] helpers/assoc -> helpers/setProp
[x] helpers/dissoc -> helpers/unsetProp
[x] helpers/propOr -> helpers/getPropOr
[x] helpers/propPathOr -> helpers/getPathOr
[x] Maybe/prop -> Maybe/getProp
[x] Maybe/propPath -> Maybe/getPath
[x] predicates/propPathSatisfies -> predicates/pathSatisfies
[x] predicates/propPathEq -> predicates/pathEq

These are all complete and shipped to production as part of 0.12.0
Closing.


Possible to Use with React Native?

Is it possible to use this library inside of a React native app? I'm wondering if https://github.com/magicismight/react-native-svg can be used internally to convert SVG elements into their native equivalents.

Perhaps it is possible perhaps to inject raw computed d3/svg code into the react native webview component?
https://facebook.github.io/react-native/docs/webview.html

That's an interesting question! looking at react-native-svn it doesn't appear to support dynamically generated SVG element, however, someone else is looking into this:
https://github.com/magicismight/react-native-svg/issues/75
I think that using a WebView would be a much easier option!

@ColinEberhardt I was actually able to get it to work on React Native in a not-too-hacky way with WebView, check out https://github.com/facebook/react-native/issues/8984
I inject the d3/d3fc JavaScript code and HTML code (with d3 and d3fc dependencies specified in script tags) into the WebView component to get d3fc charts to render from almost 100% local code. The only thing non-local is the d3 and d3fc dependencies that must be retrieved from a CDN.

Great, thanks for letting us know how it solved it.


[Custodians Library] migrate to new repository & Add example

Migrate the Custodial Wallet Library to : https://github.com/hashgraph/hedera-custodians-library

### Tasks
- [ ] Add an example to an example folder exaplaining how the library should be used

Migration : 1 day
Deployment (Github action) : 4 days


doccex

Hi,
there is a rails engine called doccex - https://github.com/mustardseeddatabase/doccex.
Is this a fork of this library? And/or what are the different basic characteristics of your project?
Thankx

That gem seems to be for creating files, rather than reading them. I don't think it's related at all.

Confirmed, that repository is unrelated.


Clarify README about what this package does

While browsing through Revise issues I found this package. Not being a user of Python/docopt or Fire, I struggle to understand from the README what niche this package fills. I don't think I understood it until I visited the GitHub page for docopt and saw the title "docopt creates beautiful command-line interfaces"---perhaps that's the purpose of Comonicon? Aside from saying that directly, perhaps the demo in https://github.com/comonicon/Comonicon.jl#zero-duplication could explicitly show how one calls main from the command line?
I would recommend putting statements like The frontend @main and @cast will try to parse everything you typed and turn them into part of your command line. This includes your function or module docstrings, your argument and keyword argument names, types and default values second, after you've told ignorant potential users why they might be interested in using Comonicon.

Thanks, Tim! I have been a bit lazy in updating the documentation of this package. Let me update the README now. Please also feel free to change the README

Oh, so much nicer now, thanks!


App settings are not saved to the cloud if user closes the app before next scheduled auto sync

I modified the settings (hPa -> Pa) and confidently after ~30sec or so closed the app and assumed that the setting got saved ok.   But after opening the web UI hours later, I noticed that the new setting never got saved to the cloud.
We've discussed this before and I still think we'll need a similar "Successfully saved" toast message after something is saved to the cloud that we already have on the web UI. These kinds of issues are annoying and they decrease trust of users when they cannot be sure if, for example, their new alert levels got saved to the cloud or not.

I've tried to investigate this one and I only partly agree with your suggestion.
Currently app is saving user settings with the next sync so there is
a delay (not for alarms). And this can be easily fixed. We should send to the cloud all changes right away.
It's probably a usual thing to show "Successfully saved" for web but not for Android. We have a local storage to keep user settings and usually it's not a big deal if temperature unit wasn't synced to the cloud due to bad Internet connection. We'll automatically try to send it again without any action needed from user. Worst case scenario is that user will have to set same setting twice for Android and for web (by the way it was requred to refresh page for me to apply synced temperature unit settings in station web).
In most of the cases I would prefer to avoid showing to user these "Successfully saved" toasts. But for alerts we should think about some sort of indication if it's synced with the cloud or not. And what should user do if it's failed to sync right away?

Currently app is saving user settings with the next sync so there is a delay (not for alarms). And this can be easily fixed. We should send to the cloud all changes right away.

Let's do this.
About the other enhancements (indicate user if settings are saved ok to the cloud or not), let's open a separate issue and agree mutually over there a way to implement it.

QA passed.


Add Logistic Regression Model

Description:
I would like to contribute by adding a Logistic Regression model to the project. Logistic Regression is a powerful and widely used classification algorithm that can be helpful for predicting binary outcomes.
Proposed Contribution:

Implement a Logistic Regression model using Python (or any relevant programming language used in this repository).
Include a well-documented code that explains each step of the model creation, training, and evaluation process.
Provide a sample dataset for demonstration and explain how to use the model for predictions.
Add comments and docstrings for better code readability and understanding.

Additional Information:

Please assign this issue to me so that I can start working on it and contribute to this project.
Also add tag of Hacktoberfest.

I assigned it. please read the guidelines before do the PR. Please star the repo and follow me for my encouragement


Customized LLaVA Setup

I wonder whether there is a guideline on hosting customized LLaVA model. I have both mmprojector and base models gguf files. Feel free to point me any related materials/links.
Many thanks,
Rui

Hi Rui,
For using LLaVA models with ollama create, check out this example: https://huggingface.co/xtuner/llava-phi-3-mini-gguf/blob/main/OLLAMA_MODELFILE_F16 which shows how to build an Ollama model from both the language and projector files.
Hope this helps!


duration value has many issues

Describe the bug

does not change units properly -- should auto-convert current value to value in new units
in Settings, LongPressTime now is 1s, but you can't + without it going to 0 and this then breaks clicking entirely. also doesn't allow typing a value into the field.
needs to support things like 1.1 sec etc.
should parse standard step, min, max tags

How to reproduce
tried to reproduce in demo with tags but not reading tags etc.
Example code
No response
Relevant output
No response
Platform
macOS

The standard tags issue is #816.


dotool: 1.3 -> 1.5

Description of changes

Changes: https://git.sr.ht/~geb/dotool/tree/master/item/CHANGELOG.md
Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

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

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

[x] Fits CONTRIBUTING.md.

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

Hi, I have included manual page. Hope way of just copying is fine.
I was wondering how to use dotool without root, even tho I'm in input group, and made this PR to bump version.
Can anyone let me know if we need module or how to make it work without root?
Thank you!

For anyone wanting to make it work for user, make sure user is in uinput group actually.
And enable;
hardware.uinput.enable = true;

Result of nixpkgs-review pr 326320 run on x86_64-darwin 1

1 package built:

dotool


bump version

Change Description
Bump version to 2.0.0-develop.
Consensus Changes

[ ] Consensus Changes

API Changes

[ ] API Changes

Documentation Additions

[ ] Documentation Additions

Are you going to bump version in README.md on release branch?

@heifner: Yes, README bumps will come shortly before release as usual. I'm only changing this now so I can get eosio.contracts dependencies to work.


All sampled images in image list

I changed the object_detector.eval interface again 🤣

I looked at using functools.lru_cache for the images.get_image function.  image.py code runs some side-effects when a image is dropped from the cache (deletes image frome trame state).  I did not see a "item ejected" callback for lru_cache.

@PaulHax it seems that the current BufferCache does not remove the item from the trame cache, in any case I believe that we should detach the cache from the trame state, the evicting instruction is self.cache.popitem(last=False). lru_cache decorator should be able to substitute this.

@PaulHax looks good, I want to better understand this, we went through the changes a couple of weeks ago but I Want to review this in more detail. I wonder if you could edit the description to add a brief note of the feature, the reason for adding the proposed new modules and why we want to change the existing "library" modules.

it seems that the current BufferCache does not remove the item from the trame cache,

Holy mem leak Batman!  Good catch.  I fix in PR cuz i can't push to this branch anymore =)
If you have an idea on how to use lru_cache as user scrolls through long image list i'm all ears.  I still don't know how that would work.

If you have an idea on how to use lru_cache as user scrolls through long image list i'm all ears. I still don't know how that would work.

How about wrapping the image into a class that implements the del method, the class also has a ref to the state. In this manner the imagewrapper class can deallocate itself from the state just before being destroyed.

Refactored images.py to use @lru_cache for loading and tranforming images with a wrapper the __del__ trick. 🎉


500 Internal Server Error

I'm receiving a 500 Internal Server error when using Webhooks with Stripe. I've tried to use remote debugging on ExecuteAsync but this is happening before this call.
Actual message from postman
{
"Message": "WebHook receiver 'Stripe' could not process WebHook due to error: Object reference not set to an instance of an object."
}
I've used the instructions from the video, but altered it for Stripe. I've updated global.asax to register Webhooks.

I tried it out and can get the test event just fine. I assume you are not just trying test events though.
If you have the source (or enabled source debugging) you can set a breakpoint in StripeWebHookReceiver.ReceiveAsync (or catch exceptions) -- that should lead you to what is going on.
Do you get any other entries in the trace messages?

Hi I was trying the test events (charge.succeeded) via the stripe dashboard > Account settings > webhooks.
I did a search of the project for StripeWebHookReceiver.ReceiverAsync and ReceiverAsync and it could not be found.
I followed the https://www.youtube.com/watch?v=gbr-wZVl6d4 did the tasks (apart from the specific providers tasks) exactly.

I see the issue -- it's that the initializer function WebHookConfig.Register(...) is not called in the server setup path. If you add this line WebHookConfig.Register(config); to the end of WebApiConfig.Register then it works.
@bradygaster -- where is WebHookConfig.Register() normally called in the template?
Henrik

Btw, this should now be easier to diagnose: 39558cd49fa0340e630399f8e27b0107752efcf8

@HenrikFrystykNielsen the code for that template is here. If it needs a pull request feel free to send me one. https://github.com/bradygaster/AspNet.WebHooks.ConnectedService/blob/master/AspNet.WebHooks.ConnectedService/Content/WebHookHandler.tt

Closing as invalid since the problem is external to this repo.


Make the list of supported DBs look like a list

Markdown.pl requires that a list is separated from previous paragraph by a blank line. Explanation in https://github.github.com/gfm/#example-283.

Thank you, @yurloc !


chore: move kad replication factor to config

Why
The replication factor was hardcoded in.
What

Moves the kad replication factor into NetworkConfig.

Checklist

[x] I have made corresponding changes to the tests
[x] I have made corresponding changes to the documentation
[x] I have run the app using my feature and ensured that no functionality is broken

We're not using kademlia at all for key value store, or replication, right?

No, only discovery afaik.

I'm not sure it even matters what's set there in that case, as kad would never actually do replication. If our actual replication behavior is configurable like this, we should provide that in the configs instead

Atm the actual replication behaviour is sending a caching request to all connected peers. Okay makes sense. There was a todo comment for this in the code though.

We can probably just remove the comment, cc @b0xtch in case there was a specific reason for it