Data collection transparency

Motivation
Our Observability Platform uses a lot of resources. Those resources are needed to manage the big amount of data that we have to handle. And that data comes from sources that we do not control, but our internal and public customers control. So we need to make them aware of the resource usage and create a way on how we can make resource cost per source of data transparent.
Todo

[ ] Create a monitoring dashboard that shows the resource usage per source of data

This source of data can be the service monitors for now
Do we have resource usage issues with logging right now?

[ ] Enrich the documentation on how to monitor and app with a passage about resource cost and the dashboard:

see https://intranet.giantswarm.io/docs/monitoring/monitoring_of_apps/
https://intranet.giantswarm.io/docs/monitoring/monitoring-architecture/
https://intranet.giantswarm.io/docs/monitoring/monitoring-components-access/

Ideas:

Monitoring: How to detect churn
Monitoring: How to track down the resource usage per jobs https://github.com/giantswarm/giantswarm/issues/30727

Outcome

We have a dashboard with which we can make transparent which source of data leads to high resource usage of our observability platform

We now have dashboards to investigate prometheus-agent targets: https://github.com/giantswarm/giantswarm/issues/30727. Does it cover the first part of the issue?

It's missing per-agent-pod metrics usage.
I'll add it then I guess we can close this issue.

ServiceMonitors overview dashboard has been updated.
I guess that's OK for now, and we can close this issue.


Clone job on INT bed did not update the JobName

On INT Bed
How to reproduce

in Home Page, my recent job, find one job;
open the job, and click clone.

Expectation
the job will be cloned and able to submit
What I got

Note: the clone works well when I clone others' job.

Already merged in #2802.


Add source_type and source_name to all events before sending through proposal logic

Consider moving source_type and source_name to event group to save read/writes.

https://github.com/ADACS-Australia/TraceT/commit/bb83692a0c33700a3c690762f0288956b4291069


DEFECT: Install permissions of lib/cmake incorrect for sudo make install

[x] I am reporting a bug others will be able to reproduce and not asking a question or requesting a new feature.

System information including:

OpenCoarrays Version: master
Fortran Compiler: all
C compiler used for building lib: any
Installation method: cmake (and maybe install.sh)
All flags & options passed to the installer: None other than using sudo
Output of uname -a: Linux but may affect mac too
MPI library being used: MPICH
Machine architecture and number of physical cores: 4
Version of CMake: 3.14.3

To help us debug your issue please explain:
What you were trying to do (and why)
System install to default location
What happened (include command output, screenshots, logs, etc.)
sudo make install created /usr/local/lib64/cmake and sub-directories with the wrong permissions. umask would have fixed this, BUT it might be good to handle this from the installer? Need to check.
What you expected to happen
Be able to read all installed files as any user
Step-by-step reproduction instructions to reproduce the error/bug
cmake ..
make -j 4
sudo make install # /usr/local/lib64/cmake does not yet exist

This may be a "won't fix" because using correct umask is typically how people control software permissions during make install


Subscribe param not an object?

In the documentation example for subscribe, you have this:
branch.subscribe((bundle) => {
  if (bundle && bundle.params && !bundle.error) {
  	// grab deep link data and route appropriately.
  }
})

The if is checking if bundle exists, then checking if bundle.params exists (while also checking that an error doesn't exist). Is there a reason that your checking if bundle exists in the first place? This tells me that there are times when the callback is firing and the params might not always be an object.
This reason I'm asking about this is we are seeing an error in our app with a message null is not an object (evaluating 'e.params').  This is how we are using subscribe:
branch.subscribe(({ params }) => {
  if (params) {
    handleAction(params);
  }
});

This shorthand, destructuring will error if what it's trying to destructure is not an object.. hence why I'm asking about your verbose if statement...
Also, is there ever a scenario when params would be an object and a value but there would also be an error?

@dwilt Which version of react-native-branch is generating this error?
Yes, destructuring assignment is a nicer way to handle this. I don't think that bundle can ever be undefined or null here, so that if (bundle) is unnecessary, as you point out. There are three parameters passed back to the subscribe callback. You could do this:
branch.subscribe(({error, params, uri}) => {
  if (error) {
    // there was an error. this is a String
    return
  }

  if (params) {
    // this is an Object with the Branch params if it's nonnull
  }

  if (uri) {
    // This is a String with the original URI handled by the app, before passing off to the Branch SDK.
  }
})

I'm not sure when you would get anything but an Object for params, but I'll review.

I'm not 100% sure it was Branch but the error looked like it. We're still dealing with sourcemap issues on our side (else this would be really obvious).
The version we are currently using is 1.0.4.


Question about training baselines and 3D input

Hi, Thanks for your great work and clean codebase! I wonder if I can directly train a diffusion policy baseline on the current codebase and data processing pipeline. Or do you have any plans to release that part of the code?
More specifically, I note that Since MoDE uses action chunking, it needs to load multiple (~10) episode_{}.npz files for each inference. In combination with batching, this results in a large disk bandwidth needed for each iteration (usually ~2000MB/iteration). If I train a diffusion policy, do I need to follow this step?
In addition, if to train a diffusion policy with point cloud input, where are we supposed to change to support both training and rollout evaluation?

Hi,

I can directly train a diffusion policy baseline on the current codebase and data processing pipeline.

Do you mean a DDPM variant? You can directly use the MoDE agent and just substitute the MoDeDiT Transformer part with a CNN-based variant or any other transformer architecture and remove the loss parts of the load balancing. Or what exactly do you want to train? I only have code for my EDM-based variant, as I wanted to compare it with the same diffusion hyperparameters. I would recommend the EDM-based anyway, since in my opinion its better.

if to train a diffusion policy with point cloud input

I never trained a 3d variant myself in this codebase. LIBERO does not have a depth-based input as far as I know. For CALVIN you can directly add it here in the config:
https://github.com/intuitive-robots/MoDE_Diffusion_Policy/blob/main/conf/datamodule/calvin.yaml#L15
You also then need to revise the preprocessing to include the new modality:
https://github.com/intuitive-robots/MoDE_Diffusion_Policy/blob/main/conf/datamodule/transforms/calvin_transforms.yaml
See this link for all depth-based information available for CALVIN: https://github.com/mees/calvin/tree/main/dataset
By changing that you can load the depth maps from CALVIN dataset too.

If I train a diffusion policy, do I need to follow this step?

So the reason for that is that the CALVIN dataset stores all modalities for a single timestep in a seperate file. When you train any policy with action chunking this would require your dataloader to open 10 of these timestep files to only extract actions from each file. So by having a seperate file with all actions we can speed up the training. You can adjust the action chunking length how you like it. This is only for faster training. Just run it once and then you dont have to worry anymore about it.
The framework is flexible to various policies.
Let me know if that helps or if you have any other questions!

Hi, Thanks for your response! I noticed that you have included Diff-P-CNN and Diff-P-T  baselines in your experiment. I wonder if you use the same action chucking preprocess for these baselines or treat them differently. Since I want to train a Diff-P-T  based policy, I'm supposed to directly add an additional Diff-P-T  agent right?

Yes, I don't wanna add them to this repo directly. You can write me an email to<EMAIL_ADDRESS>and I can share my implementation for it. Both use the same action chunking logic as MoDe to enable a fair comparison.

Hi, just sent my email. Thanks for your response and happy Christmas!


Withdrawn and desk rejected invitations should have the same template as the submission invitation

I think this is fixed? cc @celestemartinez ?


build and installation failed

error encounter  when run
Traceback (most recent call last):
  File "example/mnist/mlp.py", line 2, in <module>
    from data import mnist_iterator
  File "/mxnet/example/mnist/data.py", line 6, in <module>
    import get_data
ImportError: No module named get_data

cd ..; python example/mnist/mlp.py

same to https://github.com/dmlc/mxnet/issues/188

pls update the doc part

After #191  You should be able to run the basic example from any directory


New UI for Folder breakdown + Commit workflow for Folder breakdown

Linear
https://linear.app/intuita/issue/INT-820/smart-defaults-for-branching-out-and-creating-pr
https://user-images.githubusercontent.com/32841130/233644720-a9316a62-384f-4903-8aad-90bb82a9bdcb.mov

Will open UI tweaks in a separate PR


da.asarray broken for Dask Series / DataFrame

I suspect as a result of adding .shape / .size in https://github.com/dask/dask/pull/3212
Looking into a fix now. IIUC, we used to create an intermediate NumPy array here https://github.com/dask/dask/blob/master/dask/array/core.py#L3321-L3322
I don't think we want to return to that behavior.
I've just opened https://github.com/dask/dask/pull/3884. If we call that, then asarray(dask_frame) will work, but we need to decide what the default behavior should be: perform an intermediate computation to discover the chunk lengths, or allow the chunk lengths to be unknown?
Eagerly computing the lengths is backwards compatible (and more efficient than the old version), but somewhat at odds with the rest of dask. I'm not sure what's best here.

I think that it is best to avoid computation if possible.  I think that we should produce a dask array with unknown chunk lengths.

Agreed. Fixing this in #3884

Closing as it appears this was fixed. Please feel free to reopen if I've misinterpreted this.


cleaning and improvement

Bug fixes

Remove extra context manager class left in Tier1 folder.

New features

Improve error message in Manager classes, with try/catch blocks for OpenCL error management.
Add more unity test for manager classes.

Miscellaneous

Exclude throw branches from coverage analysis. This is to avoid taking in account the branche coverage of the stl or other library on which we do not have control. Though it makes the coverage less precise, it is a bit more honnest of the state of our API.

Codecov Report

Merging #50 (8e1b3ab) into master (4d64c89) will increase coverage by 0.55%.
The diff coverage is 42.75%.

@@            Coverage Diff             @@
##           master      #50      +/-   ##
==========================================
+ Coverage   50.49%   51.04%   +0.55%
==========================================
  Files         182      185       +3
  Lines        4387     4400      +13
  Branches     2030     2040      +10
==========================================
+ Hits         2215     2246      +31
+ Misses        487      466      -21
- Partials     1685     1688       +3

Impacted Files
Coverage Δ

clic/includes/core/cleDeviceManager.hpp
100.00% <ø> (ø)

clic/includes/core/clePlatformManager.hpp
100.00% <ø> (ø)

clic/src/core/cleGPU.cpp
55.55% <0.00%> (-1.59%)
:arrow_down:

clic/tests/device_test.cpp
14.28% <14.28%> (ø)

clic/src/core/cleCommandQueueManager.cpp
40.74% <16.66%> (-32.60%)
:arrow_down:

clic/src/core/cleContextManager.cpp
50.00% <33.33%> (-10.00%)
:arrow_down:

clic/src/core/cleDeviceManager.cpp
54.94% <37.93%> (-4.15%)
:arrow_down:

clic/tests/types_test.cpp
61.90% <44.44%> (+21.16%)
:arrow_up:

clic/tests/context_test.cpp
50.00% <50.00%> (ø)

clic/tests/commandqueue_test.cpp
57.14% <57.14%> (ø)

... and 10 more

Continue to review full report at Codecov.

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


Add new public key for client libraries

For our new client libraries we want to use a full public/private
key for our libraries as we no longer use strong name identity
for security reasons and we want to make building our libraries
easier for anyone. The strong name public key is only for identity
purposes now.
The public key for AzureSDKClient is: 92742159e12e44c8
fixes https://github.com/Azure/azure-sdk-for-net/issues/5985.
cc @AlexGhiondea @KrzysztofCwalina
@KrzysztofCwalina can you add this key to the .NET guidelines?

cc @chidozieononiwu

@AlexGhiondea @KrzysztofCwalina  I'm merging this to get the change in before we ship another preview but please let me know if there are concerns and I will address them later.

@KrzysztofCwalina can you add this key to the .NET guidelines?

Is this something that we want individual developers to do, or it will happen automatically? I want .net guidelines to be only the things we want developers to do.

As long as developers follow the correct convention then it will just happen automatically but I do think it may still be worth calling it out even if it is just for reference.


Add option to prevent pub global run intl_utils:generate from running automatically

Imagine if you have 100+ .arb files, after use Extract to ARB option to extract a string to all the arb files.
The plugin then runs pub global run intl_utils:generate 100+ times.
It should run only once. Or we should have an option to prevent it from running automatically.

Hi @simonpham
It should run pub global run intl_utils:generate once, but that command would generate it for all languages (arb files).
Why do you think it runs 100+ times?
Do you have performance issues, and what IDE do you use, VSCode or Android Studio?

It should run pub global run intl_utils:generate once, but that command would generate it for all languages (arb files).
Yes. This is true.
That command will run once if I made a change to an ARB file & save.
But if I made changes to multiple ARB files & save, that command will run multiple times. This is not necessary and causes a huge impact on performance.

I use IntelliJ/Android Studio.

Nice catch @simonpham, thanks!
I could reproduce it when using "Save All".
I am closing this issue, and I opened a new issue for Android Studio IDE plugin https://github.com/localizely/flutter-intl-intellij/issues/48 since it is related to IDE plugin, not to intl_utils package.
Feel free to add more info there in case I missed something.


qemu: Fix the issue of missing reap qemu process

Some programs may have their own children reapers which has reaped the
qemu's process before cmd.Wait to reap it. For this case, the cmd.Run/cmd.Wait
will get an error contains substring of "no child processes", thus it's needed
to ignore this error and deal it as success.
Fixes: #65
Signed-off-by: fupan<EMAIL_ADDRESS>

Coverage decreased (-0.2%) to 80.11% when pulling 5360fd068f66c36b5b5222786d54f974e71b7537 on lifupan:master into 99e0358ba9aa0d4e794256ad84d240e541212e69 on intel:master.

Coverage decreased (-0.2%) to 80.11% when pulling 5360fd068f66c36b5b5222786d54f974e71b7537 on lifupan:master into 99e0358ba9aa0d4e794256ad84d240e541212e69 on intel:master.

Hi, @markdryan I'd like the first option, but in that case, it will output some annoying error log as below:
logger.Errorf("Unable to launch %s: %v", path, err)
which would give the wrong notifying.

@lifupan If you don't care about logging you can just pass in nil for the logger parameter.  If you do care about logging you can simply create a custom logger that filters out the message you know to be erroneous.

@markdryan Thanks, I'll send a PR to kata-containers and close this PR.


remove mitigated_by attribute (1/3)

This PR removes all the field related functionality and the model side of it. It however preserves the actual DB columns to be N-1 compatible and introduces temporary serializer-only attribute to keep API compatibility.
First part of OSIDB-126 according to https://develop.sentry.dev/database-migrations/#deleting-columnstables

@Elkasitu (@JakubFrejlach) I tried to remove the manual one and create migrations again but the result is completely the same migration so I left the commits the way they were. The dummy serialize method is a different thing. There are to possible approaches I see. We can either collect the deprecated_field attributes until the major version and then remove them all or we can remove them in two consecutive minor releases and replace by the dummy serialize method. I am thinking what would be better. Keeping the deprecated fields would mean to have the model messy for longer. Dummy serialize methods means more code to create manually. I am not sure whether there are any other differences which matter. No strong preference from my side.

@osoukup I think deprecate_field is safer and more convenient:

With the manual method, you need to remember to manually modify the migration and do it properly in multiple steps. With deprecate_field you just have to wrap the existing field and the migrations will be correctly generated.
It is trivial to remove fields that use the deprecate_field wrapper (in fact, you can probably do it with a single call to the sed command) and can be part of a checklist for major releases, for the manual method we'd need to remember or mark dummy serializer methods to be removed in subsequent versions (whether minor or major doesn't really matter).
While the model might look messy, the deprecated fields are easy to spot, and with the manual method we just move the "messiness" from the model to the serializer really.

Closing in favor of https://github.com/RedHatProductSecurity/osidb/pull/55


Option to Hide Update notification & Fragment Caching ParseError exception handling (PHP7)

Adds a new "Hide Plugin Update Notification" checkbox under General Settings' Miscellaneous area. This allows the user to decide if they want to hide the WordPress notification message about updating to the latest w3tc.

This resolves a minor issue when users implement <--mfunc but trigger a ParseError exception when using php7.  Prior to php7 the eval() function returned false when an error occurred.  w3tc would then display a friendly error message on screen and resume.  As of php7 the code is halted on parse errors.  This revision makes it so that when using php7 a parsing error will act like previous php versions when using w3tc by informing the user but continuing to process the page.

Our hosting system provides automated plugin updates if the user chooses to do so.  The process works like this.  A backup is made, the plugin is updated, a script is run to these the site and if an error is encountered, a roll-back takes place and the site owner is notified of the potential issue and the plugin is then updated manually.  With the current plugin naming, our system is automatically overwriting Fix w/ the other versions due to numbering.  Curious if you have any thoughts or solutions on this?  I was surprised to see in a test site that the author/version information was inherited from W3TC.


Add action for build

Add action for build and publish release by commit with some tag like "release"

Done. Use for it a https://github.com/marketplace/actions/gh-release


[Feature request] az ad app permission admin-consent: Migrate https://main.iam.ad.ext.azure.com/ to Microsoft Graph

Related command
az ad app permission admin-consent
Is your feature request related to a problem? Please describe.
az ad app permission admin-consent internally calls https://main.iam.ad.ext.azure.com/ endpoint:
https://github.com/Azure/azure-cli/blob/38eaebb6936a32be13e2c4afba8e600ce9c91513/src/azure-cli/azure/cli/command_modules/role/custom.py#L959
This endpoint has several limitations:

This endpoint is now deprecated
It can only be called by a user, not a service principal.
It fails in Cloud Shell, because https://main.iam.ad.ext.azure.com/ is not a resource supported by Cloud Shell (#8912, #14230)
It doesn't support sovereign clouds (#9942)

Describe the solution you'd like
Migrate https://main.iam.ad.ext.azure.com/ to Microsoft Graph.
Describe alternatives you've considered
Remove az ad app permission admin-consent and replace it with fine-grained az ad app permission grant and https://github.com/Azure/azure-cli/issues/22768.
Additional context

Thank you for opening this issue, we will look into it.

Can you please inform me if this ticket is going to be managed and what the fixed estimations are?
My problem is listed above under #2 item:

It can only be called by a user, not a service principal.


the request of a dependency is an expression - webpack

Prerequisites

[x] I have searched for similar issues in both open and closed tickets and cannot find a duplicate
[x] The issue still exists against the latest master branch of Select2
[x] This is not a usage question (Those should be directed to the community)
[x] I have attempted to find the simplest possible steps to reproduce the issue
[ ] I have included a failing test as a pull request (Optional)

Steps to reproduce the issue

install select2 via npm
start node dev server (eg: npm run dev)

Expected behavior and actual behavior
When I follow those steps, I see...
WARNING  Compiled with 1 warnings

 warning  in ./~/select2/src/js/select2/translation.js

Critical dependencies:
27:25-38 the request of a dependency is an expression

 @ ./~/select2/src/js/select2/translation.js 27:25-38

I was expecting...
"no error"
Environment
Browsers

[ ] Google Chrome
[ ] Mozilla Firefox
[ ] Internet Explorer

Operating System

[X] Windows
[ ] Mac OS X
[ ] Linux
[ ] Mobile

Libraries

jQuery version: NA
Select2 version: master

Proposal
This is due to webpack context
when i change
var translations = require(path);
to
i have to remove the './' in path because sometimes it is set
var translations = require('./' + path.replace('./',''));
no errors occurs

I found a hack to solve this issue without changing the source and wrote it up in a StackOverflow answer, How can I using select2 with webpack?. It involved using the imports-loader to neuter the require(path) call with options: "require=>false" and statically loading the language files by other means. See #5385.


fix(clipboard-manager): match Rust method parameters with native methods

Ensured that the parameters for the run_mobile_plugin method in Rust code's readText and writeText methods match the expected native method names.
Below is a screenshot of one of the errors fixed:

Leaving the other error here as a reference for anyone text searching anything similar:
No command write found for plugin clipboard-manager

thank you


Support default dtype in L.InceptionBN

This PR is a part of #4582, makes L.InceptionBN support default dtype.

jenkins, test this please.

Jenkins CI test (for commit f9f6aaead5223a2054f200291806ad42702836c2) succeeded without errors!

LGTM!


Disable min-public-methods in pylintrc

Pylintrc complains about too few public methods, G2Loader uses a dummy class and doesn't need > 1  method.

See #71


updated login endpoint url

I updated the endpoint url for the login and everything else seemed to work for me. Idk if anything else is broken but everything seems to be fixed from my end.

nice find


1.2 Test cases fail on local ftp connection tests

iMac-van-Johnny:redbox-scan johnny$ ./tests.sh
./tests.sh: line 3: export: =': not a valid identifier ./tests.sh: line 4: export: =': not a valid identifier
./tests.sh: line 5: export: `=': not a valid identifier
PHPUnit 4.8.0 by Sebastian Bergmann and contributors.
Runtime:        PHP 5.5.31
Configuration:  /Users/johnny/Dropbox/Sites/Redbox/scan/redbox-scan/phpunit.xml
...........EE.........E..............
Time: 2.42 seconds, Memory: 5.50Mb
There were 3 errors:

Redbox\Scan\Tests\FtpAdapterMiscTest::test_ftp_set_passive_mode_returns_null_if_not_connected
Argument 1 passed to Redbox\Scan\Adapter\Ftp::setPassiveMode() must be an instance of Redbox\Scan\Adapter\bool, boolean given, called in /Users/johnny/Dropbox/Sites/Redbox/scan/redbox-scan/tests/FtpAdapterMiscTest.php on line 31 and defined

/Users/johnny/Dropbox/Sites/Redbox/scan/redbox-scan/src/Adapter/Ftp.php:81
/Users/johnny/Dropbox/Sites/Redbox/scan/redbox-scan/tests/FtpAdapterMiscTest.php:31

Redbox\Scan\Tests\FtpAdapterMiscTest::test_ftp_set_active_mode_returns_null_if_not_connected
Argument 1 passed to Redbox\Scan\Adapter\Ftp::setPassiveMode() must be an instance of Redbox\Scan\Adapter\bool, boolean given, called in /Users/johnny/Dropbox/Sites/Redbox/scan/redbox-scan/src/Adapter/Ftp.php on line 91 and defined

/Users/johnny/Dropbox/Sites/Redbox/scan/redbox-scan/src/Adapter/Ftp.php:81
/Users/johnny/Dropbox/Sites/Redbox/scan/redbox-scan/src/Adapter/Ftp.php:91
/Users/johnny/Dropbox/Sites/Redbox/scan/redbox-scan/tests/FtpAdapterMiscTest.php:46

Redbox\Scan\Tests\FtpAdapterTest::test_ftp_authenticate_returns_true
Argument 1 passed to Redbox\Scan\Adapter\Ftp::setPassiveMode() must be an instance of Redbox\Scan\Adapter\bool, boolean given, called in /Users/johnny/Dropbox/Sites/Redbox/scan/redbox-scan/tests/FtpAdapterTest.php on line 35 and defined

/Users/johnny/Dropbox/Sites/Redbox/scan/redbox-scan/src/Adapter/Ftp.php:81
/Users/johnny/Dropbox/Sites/Redbox/scan/redbox-scan/tests/FtpAdapterTest.php:35
FAILURES!
Tests: 37, Assertions: 41, Errors: 3.
iMac-van-Johnny:redbox-scan johnny$ php -v
PHP 5.5.31 (cli) (built: Feb 20 2016 20:33:10)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
iMac-van-Johnny:redbox-scan johnny$

Bye bye bug ! :wave:


Remove defaulting working_dir to ./.

If you pass working_dir as ./, it'll still work and run the detection algorithm. However, omit it by default, as when the module or function is actually sent to the env, then the working_dir is automatically added based on the file where the code was.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#915  👈
#914
#909
#908
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @rohinb2 and the rest of your teammates on  Graphite

Merge activity

Jun 25, 3:28 PM EDT: @rohinb2 started a stack merge that includes this pull request via Graphite.


Allow binary blobs

In order to safely transfer binary blobs/filtes, the API needs to use base64 encoding when appropriate. postBlob() however always uses "utf-8". So there needs to be either an additional argument in write() and postBlob() that specifies the encoding, or postBlob() needs to detect if the file is binary or not, and adjust the encoding automatically.
This little snippet seems to be able to detect binary data:
/[\x00-\x08\x0E-\x1F]/.test(data)

See http://stackoverflow.com/questions/1677644/detect-non-printable-characters-in-javascript
I'm currently dealing with similar issues in Prose: https://github.com/prose/prose/pull/255

@mattpass Was this ever dealt with? There seems to be some binary file handling in postBlob, which I'm looking at briefly due to #149.

@aendrew Nope, was awaiting a pull request and going to check that out. Nothing submitted or coded by myself here.


Only attempt to set dns server if provided

This patch simply avoids throwing an NPE if the dnsServerAddress is not provided. This allows fallback to the system resolver.

Hi @easel, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;

Thanks @easel for your contribution.  It would be great if you can provide an associated test case(s).

I'll see if I can figure out the appropriate place for the tests, I forward ported this from the dawn of time and haven't kept on the development of the test cases =p

:+1: also for adding a test that reproduces the problem

Makes sense. Switched to .isEmpty.

once some tests have been added this is ready to merge.

Hmm. Tests were there and have disappeared. Will investigate.

Ok tests are here now, complete with license header. Also created an issue and referenced it in the commit log. Hopefully good to go now!

@easel thanks for your contribution.


Experiment with cache settings across CI workflows

I've switched several CI workflows from using remote ccache storage in a GCS bucket to using "local" ccache storage in GitHub Actions caches, mainly by using https://github.com/hendrikmuhs/ccache-action. A few adjustments to the caching strategy could save minutes per workflow run.
Note that Bazel uses a global mutable cache (i.e. shared across many commits): https://bazel.build/remote/caching. The default way to use ccache with GitHub Actions from that ccache-action creates immutable cache entries and cache hits within a build are unlikely if the selected cache entry was from a substantially different commit (such as whenever the LLVM commit pin changes).
Experiments to try:

[ ] Evaluate https://github.com/mozilla/sccache . ccache-action has a variant: sccache mode but that might not be enough
[ ] Change when the cache is saved vs restored. I set new jobs to only save on push events, but pkgci_build_packages always saves the cache, even on pull_request events. Saving the full compiler build cache takes 2m30s to upload 800MB, which can be a bottleneck before other jobs are queued up
[ ] Use different cache keys - maybe mix the LLVM commit hash into the key (instead of the commit ref itself?), to limit the number of cache entries generated and increase the likelihood of a cache hit actually being useful
[ ] Check cache hit rate across platforms. Linux x64 clang generally has high cache hit rates, but Windows x64 MSVC and Linux arm64 clang may have more cache misses due to compiler options / unsupported features in ccache / cmake / the compiler.
[ ] Prepopulate caches on (persistent) runners - ccache, git submodules / a partial git checkout, docker images, python deps, etc.

I'll add my own idea here: somehow orchestrate runners to run distcc/icecream.

Just jotting this down for posterity/future reference; these settings seem to universally beneficial for increasing hits:
echo CCACHE_SLOPPINESS=include_file_ctime,include_file_mtime,time_macros >> $GITHUB_ENV

while this setting
echo CCACHE_COMPILERCHECK=content >> $GITHUB_ENV

only helps on linux and windows but on mac has the opposite effect (increasing misses), even though it's supposed to also work there as well.
In general you can set CCACHE_COMPILERCHECK to string:<IDSTRING> (see here) and probably a good candidate for <IDSTRING> is the output of clang -v (or whatever).


Refactor conf package

Create a config struct that can be mocked.
Create a configSnapshot struct that is returned upon calling config.Read(), that can be used as a snapshot of the actual config file
Only write fields that diff from the defaults

Done (#86)


bootstrap version 4 custom download like version 3

we can download custom download for bootstrap version 3 https://getbootstrap.com/docs/3.4/customize/ but same thing is missing for version 4, It will be really great if we can custom download and their will be easy for us for page speed optimization.Thanks.

Sorry, we have no plans to bring this back. There's @Johann-S's project you can use, but it seems it's a little outdated: https://johann-s.github.io/bs-customizer/


Crashlytics issue

I am getting this error while building this project
Crashlytics found an invalid API key: null.
Check the Crashlytics plugin to make sure that the application has been added successfully!
Contact<EMAIL_ADDRESS>for assistance.

You need to add your own Crashlytics API Key. However Crashlytics is being sunset and transitioned into Google Firebase. I would recommend just removing the Crashlytics component for now as its only there for helping provide Beta builds to other non developer users.


Deploying 32-bit app

Does "deploy a 32-bit app unless the app..." mean that when deploying from Visual Studio to Windows platform, one should select target runtime "win-x86" instead of "portable"?

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

ID: ec484002-18c1-6a0d-00de-820d56f038d3
Version Independent ID: 7903ce53-2cbb-f083-7479-c8abc30211a0
Content: Host ASP.NET Core on Windows with IIS
Content Source: aspnetcore/host-and-deploy/iis/index.md
Product: aspnet-core
Technology: aspnetcore-hostdeploy
GitHub Login: @guardrex
Microsoft Alias: riande

Hello @mcurko ... Yes ... sorry for the delay. Today has been 🏃😅 all day.
The answer is 'yes' ... you'll get a published Framework-Dependent Deployment for x86, and you'll need the .NET Core x86 runtime installed to run it.
For example if you have the 2.2.3 x86 runtime installed, you can set that Target Runtime to win-x86 (leaving the Deployment Mode to Framework-Dependent). You get an app that will run with the 32-bit dotnet.exe found in c:\Program Files (x86)\dotnet folder as long as you have 2.2.3's runtime installed for x86.
I went to test my own IIS setup with one of my test apps here for this. I had a problem a few days ago with bad ASP.NET Core Modules from a bad Preview 3 hosting bundle install that I did. My x64 64-bit apps run just fine on IIS/ANCM with the repairs that we made ... however ... I go to put this x86 test app on IIS here ... and :boom::cry: I'm NOT going to try to repair that today. lol ... I'm exhausted.
In theory, @mcurko, you should be able to deploy that app to IIS, set the app pool to Enable 32-bit Applications with True.
With your good ANCM (not a broken setup like I have), it should ✨ Just Work:tm: ✨.
Leave this issue open even if you get things working on your IIS/ANCM. I'd like to inquire with the engineers on this because I'd like to know why if Target Runtime is Portable the default app bitness is x64 ... if that's the default OOB experience (or default with x64 VS2019, which is what I installed here) ... should we change this language a little bit in the topic? Should we link to instructions or have a section in the topic that further elaborates on VS/publishing and bitness? Leave this open ... I'll ask next week.

Note to self:
crit: Microsoft.AspNetCore.Hosting.Internal.GenericWebHostService[6]
      Application startup exception
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.MissingMethodException: Method not found: 'Microsoft.AspNetCore.Builder.IApplicationBuilder Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions.UseRouting(Microsoft.AspNetCore.Builder.IApplicationBuilder, System.Action`1<Microsoft.AspNetCore.Routing.IEndpointRouteBuilder>)'.
   at testselfcontained.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env, IOptionsMonitor`1 dpo)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
   at Microsoft.AspNetCore.Hosting.Internal.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder)
   at Microsoft.AspNetCore.Hosting.Internal.ConfigureBuilder.<>c__DisplayClass4_0.<Build>b__0(IApplicationBuilder builder)
   at Microsoft.AspNetCore.Hosting.Internal.GenericWebHostBuilder.<>c__DisplayClass13_0.<UseStartup>b__2(IApplicationBuilder app)
   at Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>c__DisplayClass0_0.<Configure>g__MiddlewareFilterBuilder|0(IApplicationBuilder builder)
   at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)
   at Microsoft.AspNetCore.Hosting.Internal.GenericWebHostService.StartAsync(CancellationToken cancellationToken)

@guardrex
I am getting the error that you identified, when I deploy to an IIS server, but not when I run inside of Visual Studio.  .NET Core 3.0.0-preview4-27615-11 X64 v<IP_ADDRESS>  Is there a resolution to this?
MissingMethodException: Method not found: 'Microsoft.AspNetCore.Builder.IApplicationBuilder Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions.UseRouting(Microsoft.AspNetCore.Builder.IApplicationBuilder, System.Action1<Microsoft.AspNetCore.Routing.IEndpointRouteBuilder>)'.`
Thanks.

@dpedrelli I don't have additional info on it beyond what engineering says generally: Use 32-bit tooling to produce 32-bits apps. Idk if using the 32-bit VS resolves that, but that is possible. Idk if it's a known problem that the VS team is aware of. It doesn't currently show up in the ASP.NET Core issues (open or closed).
You can open it on the aspnet/AspNetCore issues. If they say that it's a VS tooling problem, then they'll probably instruct you to use the Report a Problem process built-into VS to report it: It generates an issue internally for the VS tooling folks.
If you open an engineering issue, paste a link to that into this convo so that I can track on it for the docs.

@guardrex


Modify docker section on getting-started

Description of the modifications
It appeared docker section on getting-started (https://dpf.docs.pyansys.com/getting_started/docker.html) isn't up-to-date anymore and should be removed and/or replaced by docker section on user-guide (https://dpf.docs.pyansys.com/user_guide/getting_started_with_dpf_server.html).
Useful links and references
Outdated documentation: https://dpf.docs.pyansys.com/getting_started/docker.html
Up-to-date documentation: https://dpf.docs.pyansys.com/user_guide/getting_started_with_dpf_server.html

Hi @ClappeB! This outdated page is not accessible via links from within the documentation. Do you know where this page is mentioned/linked-to?
Once I know that I will simply delete this page from the documentation.

For reference, this is the up-to-date link to access the stable documentation page for Getting Started now that we have multi-versioned documentation:
https://dpf.docs.pyansys.com/version/stable/getting_started/index.html

Ok, I'll just remove it then, since the only one which should pop-up is the section in getting_started_with_dpf_server.
Thank you for the find!


[feature] Getting connected wallet metadata

What problem does this new feature solve?
I want to get connected wallet info such as icon and name.
this was possible with previously versions via provider.
Describe the solution you'd like
adding a hook can solve this issue, or maybe there is a solution i don’t t know .
thanks.

Hey @itsnyx 👋 you can access the provider and then the session using the useAccount hook:
const {connector} = useAccount();
and then
const provider = await connector?.getProvider();
console.log(provider.session);

hello @ignaciosantise i've checked the provider and it was ok but somehow there were no icons for Metamask wallet i don't know where is the problem, but other metadata such as name link etc were present and ok.
thanks for the help.


Install guide is missing some supported Linux distributions

Here https://docs.microsoft.com/en-us/java/openjdk/install#install-on-centos-7-rpm the only described Linux distributions are Ubuntu 18.04 and 20.04, Debian 9 and 10, Cent OS 7 but the server has packages for distributions mentioned above and additionally for:
Ubuntu, from 14.04 to 22.04; Debian 8, 11 and Stretch; Cent OS 6 and 8; Fedora, from 26 to 34; openSUSE 12, 15, 42.3; rhel, from 6 to 8; sles 11, 12 and 15.
I believe some of them (e.g. Fedora) are officially supported by You and should be described in this document.

I'm closing this as we are not currently planning to expand the test matrix and package availability.
We will continue to provide commercial support as per our policy [1].
https://docs.microsoft.com/en-us/java/openjdk/support#operating-systems-and-linux-distributions


RPIP-52: Rewards Specification v9

Will have to add the reference implementation links eventually

Will have to add the reference implementation links eventually

Yep, once implemented. I'll try not to forget.


Disabling offline access

https://github.com/react-boilerplate/react-boilerplate/blob/master/docs/general/remove.md
I see the instructions for removing it, but it would be nice to simply be able to disable it. For example I was debugging a problem with the deployment of a production app. I was misled into thinking I had caching problems at the server. I finally figured out that the offline support was caching a copy and using it even though there was a more recent version available from the server, It was doing this even with 'Disable cache' set in Chrome.
Or is this a bug? Why was the offline support not checking for a newer index.html when there was a network connection available? Should the offline support honor the 'Disable cache' setting in the debugger?

To temporary disabling SW go to chrome dev tools then Application tab. Select Service Workers from the left pane. Check update on reload and bypass for network.
Disabling cache the way you did it has nothing to do with SW.


The data editing tab does not open when the breakpoint is active

Godot version
3.3.4 and 3.5 beta 5
System information
Windows 11, GTX 1660 Super, GLES3
Issue description
It's hard to explain in words, but I'll try. There is a global script - "Global", which is in the autostart. It has this.
extends Node
var rel_table = [
	[
		{ "sa": 1}
	],
	[0]
]

There is an empty scene with a script attached that has this.
extends Control
func _ready():
	var s = G.rel_table
	print(s)

Put a breakpoint on print(s),
Run the scene, debugger opens, click on Globals->G.
Now we have the data we need opened in the inspector. Click on Members->Rel Table (expand).
Press 0->Array(size 1).
Finally click on 0->Dictionary...
And absolutely nothing. Dictionary tab won't open. That is, the tab tries to open, but it closes immediately.
Steps to reproduce
see description
Minimal reproduction project
test.zip

In action (3.4.4.stable), sometimes it doesn't open at all, sometimes it closes immediately:

Duplicate of https://github.com/godotengine/godot/issues/25375.


[BUG]Azure API key not working for the crewAI agent workflow

Description
Hi, I am testing a simple agent using crewAI. My region (Hong Kong) doesn't support openAI so I am using Azure open AI. But it seems that it doesn't work for crewAI. There is no problem if I use the Azure API settings in other programs like having chats without crewAI.
Steps to Reproduce
Error appears when I run the codes.
Expected behavior
The crewAI agent workflow works.
Screenshots/Code snippets
Code:
`
import chainlit as cl
from chainlit import run_sync
from crewai import Agent, Task, Crew
from crewai_tools import tool
import os
from langchain_openai import AzureChatOpenAI
azure_api_key = "..."
azure_endpoint = "https://...-openai-evaluation-2.openai.azure.com/"
azure_api_version = "2024-02-15-preview"
OpenAI_LLM_name = "gpt-4-1106-preview"
os.environ["OPENAI_API_VERSION"] = azure_api_version
os.environ["AZURE_OPENAI_ENDPOINT"] = azure_endpoint
os.environ["AZURE_OPENAI_API_KEY"] = azure_api_key
os.environ["AZURE_OPENAI_VERSION"] = azure_api_version
os.environ["AZURE_OPENAI_DEPLOYMENT"] = OpenAI_LLM_name
os.environ["AZURE_OPENAI_KEY"] = azure_api_key
os.environ["AZURE_API_KEY"] = azure_api_key
os.environ["AZURE_API_BASE"] = azure_endpoint
os.environ["AZURE_API_VERSION"] = azure_api_version
llm_chat = AzureChatOpenAI(
azure_endpoint=azure_endpoint,
azure_deployment=OpenAI_LLM_name,
openai_api_version=azure_api_version,
)
@tool("Ask Human follow up questions")
def ask_human(question: str) -> str:
"""Ask human follow up questions"""
human_response  = run_sync( cl.AskUserMessage(content=f"{question}").send())
if human_response:
return human_response["output"]
extractor = Agent(
role='Expert Data Extractor',
goal='Extract key data from human interaction',
backstory="""You work at a Data Retrieval Office.
Your expertise lies in extracting facts and data of your need from short incomplete human conversations.
... and ask important follow up questions to extract key data while talking to humans.
You talk with human ... you ask follow up questions to human based on what you need next.
.....
""",
# verbose=True,
allow_delegation=False,
llm=llm_chat,
tools= [ask_human]
)
task = Task(
description="""Extract key information from User communication and represent the final extracted  data as JSON""",
expected_output="All Extracted data in JSON with no extra text only JSON",
agent=extractor
)
crew = Crew(
agents=[extractor],
tasks=[task],
verbose=True,
)
crew.kickoff()
`
Operating System
Windows 11
Python Version
3.10
crewAI Version
0.70.1
crewAI Tools Version
0.12.1
Virtual Environment
Venv
Evidence
Error:
`
12:20:45 - LiteLLM:INFO: utils.py:2790 -
LiteLLM completion() model= gpt-4-1106-preview; provider = openai
Agent: Expert Data Extractor
Task: Extract key information from User communication and represent the final extracted  data as JSON
2024-10-16 12:20:45 -
LiteLLM completion() model= gpt-4-1106-preview; provider = openai
2024-10-16 12:20:45 - LiteLLM call failed: litellm.AuthenticationError: AuthenticationError: OpenAIException - The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable
12:20:45 - LiteLLM:INFO: utils.py:2790 -
LiteLLM completion() model= gpt-4-1106-preview; provider = openai
Agent: Expert Data Extractor
Task: Extract key information from User communication and represent the final extracted  data as JSON
2024-10-16 12:20:45 -
LiteLLM completion() model= gpt-4-1106-preview; provider = openai
2024-10-16 12:20:45 - LiteLLM call failed: litellm.AuthenticationError: AuthenticationError: OpenAIException - The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable
12:20:45 - LiteLLM:INFO: utils.py:2790 -
LiteLLM completion() model= gpt-4-1106-preview; provider = openai
Agent: Expert Data Extractor
Task: Extract key information from User communication and represent the final extracted  data as JSON
2024-10-16 12:20:45 -
LiteLLM completion() model= gpt-4-1106-preview; provider = openai
2024-10-16 12:20:45 - LiteLLM call failed: litellm.AuthenticationError: AuthenticationError: OpenAIException - The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable
`
Possible Solution
None.
Additional context
None.

Please see our docs on our move away from langchain, we use LiteLLM instead now
https://docs.crewai.com/concepts/llms
Also I recommend you rebuild your crew with the crewai create crew command
https://docs.crewai.com/quickstart


Add Documentation for Sign-in with Apple

Is your suggestion related to a missing or misleading document? Please describe.
We'll be on-boarding sign in with Apple capability to the Identity Server with https://github.com/wso2/product-is/issues/15501 and requires to add documentation to the IS doc space.

Need to document below points in addition to the general content.

Enabling JIT and setting attributeSyncMethod to NONE. (This is by default done if trying through the console)
For management console:

Regenerate client secret property.
Client secret expiry time (metadata field)

Adding claim mapping.
Enabling Assert identity using mapped local subject identifier for the SP


Motors not working from breaking update changes to ev3dev

Having updated ev3dev, python bindings for motors fail to work due to breaking changes but I don't know enough to work out what I need to change where to make the motors work...?
thanks
---tony

@psychemedia you can fix by downgrading the kernel. Why, I don't know. See the end of this
https://github.com/rhempel/ev3dev-lang-python/issues/130

Yes, downgrading should fix the issue. The problem is that this library (the Python library) hasn't yet been updated to work with the newer kernel; using the older one is the temporary solution. @rhempel is working on getting it updated.

run-direct is broken in the kernel driver: https://github.com/ev3dev/ev3dev/issues/621

btw, dumb question, where are there clean docs for the current user-level ev3  functions, and which IDE d'you recommend running via SSH, that would preferably be able to figure out code completions etc? I think I used pico last time round, but it gets old.
Edmund

This is a very annoying issue lol, and @edmundronald I use atom with the atom-sync package installed for it, which once setup saves a local copy of the files you are working on, and then copies them onto the robot or computer depending on which was updated last.  Just a note, for the atom-sync you need rsync installed on your computer and the ev3 for it to work...

@edmundronald and @nadehi18, please open a new issue to discuss IDEs - this is for the Python binding not being up to date with the kernel, and my inability to find spare time lately to fix that. Hopefully this weekend I can get some more traction.
@dlech, have you got a proposed fix for the run-direct issue into a branch for us to try?

@rhempel https://github.com/ev3dev/lego-linux-drivers/commit/efd2269e8d26df29f5c73a507f7f33b2bdd8380e
Looks like it's in master over there.

@rhempel and @nadehi18 I have created a new issue for IDEs.
https://github.com/rhempel/ev3dev-lang-python/issues/160

I've create a motor class, that works!
[ev3dev-python-API] (https://github.com/ValorNaram/ev3dev-python-API)
Its current in debug mode and uses the tacho-motor driver (/sys/class/tacho-motor)


Improvements

Hi,
I haven't found a good reason why Java 12 should be required and it is end of life soon, so I set it to 11 (this is a LTS version) to be able to run it with Amazon Corretto. Besides that I aligned the Spring Framework version with the one used by Spring Boot and slightly improved the docs.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

There was another PR that I did not merge that contained the doc writer pass on the readme. If you could rebase, please do.


Clean pagination parameters that are not integers, resolves #581

I elected to set bad values to nil rather than a value so that bad values fall through to
defaults and we don't have to keep them in sync.

Closing this to clean up my list.  Feel free to re-open and merge in the future.


stylize objectConstruction.py

Btw just saying, if we turned on pylint we would be forced to address a lot of these style issues :)


Data Release: Improve Nextflow resume in Solr Indexer

Discussed with Ala about repeated resuming happened in https://github.com/EBISPOT/goci/issues/1383. We agreed to make the following changes.

Wait for 1h before every resume attempt (so that the job scheduler error gets resolved)
Only resume a few times (to avoid repeated resuming)

[x] Create pull request - https://github.com/EBISPOT/gwas-utils/pull/177
[x] Test in sandbox with fake data - https://github.com/EBISPOT/gwas-utils/pull/177#issuecomment-2489083207
[ ] Update conda envs with the new version

https://github.com/EBISPOT/gwas-utils/releases/tag/0.1.27b.6


Increase image sizes for some test outputs and other possible test issues

I spent just an hour marching through all VisIts ~2800 image outputs and noted any that caught my eye as perhaps requiring re-baselining at a higher resolution, say 1Kx1K. The list I compiled here is not necessarily complete and I freely admit I was somewhat arbitrary in choosing which images caught my eye for closer examination. There are perhaps other 50% more images that would appear to fit in this group also that I simply overlooked. ansys1_0.png ansys2_0 ansys3_0 CGNS_0_00 CGNS_0_03 CGNS_0_05,06,07 CGNS_1_03,04,07 FITS_2_01 Fluent_03 nastran1_0 (same as ansys1_0) nastran2_0 (same as ansys2_0) nastran4_0,1,2 OpenFOAM_01,02,03,04,06(blank),07,08,09 OpenFOAM_ReadZones_01,02,03 PATRAN1_0 (same as ansys1_0) PATRAN2_0 (same as ansys2_0) PATRAN4_0,1,2 proteindb_1_07 proteindb_2_07 proteindb_3_07 Velodyne_0_05,0_06 Xmdv_01,02,03 claw_01,03 closedatabase04 (blank) curve1,2,3 (labels) Exodus_07 global_node_ids07 image04 imgvol_03 (blank) itaps_14 kulllite_06 lata_10,11,12,13 leos_03 (blank) leos_06 metadata_1_expr_grad_tensor metadata_1_expr_grad_tensor_diagonal metadata_1_vector_airVfGradient metadata_1_vector_grad mili24,25 miranda_raw_reader4,5 netcdf_0_00,01,3_02,03 netcdf_3_09 (blank) pdb_allinone_12,15 pdb_family_12,15 (same as allinone) pdb_multi_12,15 pixie_04 reopen_32,40 (blank) samria_07,12 shapefile_2_03,4_00,01,02 silo_05,06,21,36-39 (same for altdriver) tecplot_03,21,22,24 vista_diablo_02 vtk_08,15 (all use < 20% of image), 22 (30 & 31 supposed to be same as Silo data?) xyz_01-06 (all) clonecopy_Window2CopyPlots clonefirstref_02 (blank and small) coord_expr_08 curve_anim1-6 (labels) expr2engine_00,03 expr_cmfe_01 vector_add_const vector_cross field_op_01,02,03,05,07,08 keyframe0305,07 lineout (all labels), CurvesFromSamrai mir (all) mir_curv2d_plic mir_rect3d_discrete missingdata (all) pos_cmfe_14 selections_4_01 symm_10 meshtype_point_05,06,07 ops_box07 (blank) clip08-17 (very small) defer_expr_04,05,06,07,08 indexselect06,11,14 (also very small) moveoperator_12 (blank) ops_onion_peel_26 ops_onion_peel01,02 (small) ops_refl07,08,09 ops_Slice23 ops_thresh07 (08 small), 12 (small) ops_transform02,04 curve_1_06,2_03,2_05 label_0_00, 0_15, 0_16, 0_17, 1_00, 7_00,01,03,8_00 mesh_curve_02 mesh_opaque_06,07,08 parcoords_12-14 pics_MB_3D_ugrid* (small) ray_trace_09 scatter?? sl_integration_10 subset_07 surface_02,03 line_scan (labels) queriesOverTime (labels) annotation/annot2d (too small) legends (too small) renderpoint view (labels) Problem of type 1: Plot too small This is an easily fixed problem but thought I would point it out anyways. Most of the image is blank. The solution is to ensure plot fills as much of available image real estate as possible. We aren't checking for this in testing and maybe we should compute the pixel coverage metrics and initially warn a developer of a would-be baseline image of this kind before committing and using it in testing. Problem of type 2: Image too small to reveal important details, This image is supposed to demonstrate VisIt's ability to deal with "missing data" where some data is plotted but some values in the input are missing but I think it is just as likely that missing and non-missing data points are landing in the same pixel masking the intended effect of the test. Problem of type 3: Image being used where non-image comparison would be better This image is a curve plot. Why not just compare the actual curve data instead of some rendered version of the plot, especially for plots with wide dynamic range, a lot of the little variations are washed out in any image reasonably sized or not. At 300x300 image size, we're saying any variations less than a third of a percent are not relevant. Problem of type 4: 2D input scene too busy. 2D rendering involves resolving the color at each pixel. When input scene geometry density is too high, many primitives map to the same pixel. What we see then in a 300x300 is determined somewhat by an arbitrary order of operations. The same scene presented in a different ordering will result in a different. Maybe I am confusing or planar 3D issues with true 3D issues here though. Problem of type 4b: 3D input scene too busy. This is the same as 4 but with 3D data. It isn't clear to me whether 3D rendering has the ability to improve or make worse the problem of input scene primitive density being too high. On the one hand, there is an additional dimension used to disambiguate what gets drawn to a pixel. So, it sounds like 3D ought to be less sensitive to this problem. On the other hand, just looking at the image visually, I am not sure I can say for sure that the rendered output is what I was expecting. Problem of type 5: Lighting, shading or view angle obscures important details In this example, shading and angle to eye is such that 3D input scene variation is washed out. This isn't true of the whole image here but is true of a large portion of it. If we employ metrics to determine image diffs, this kind of image result has the ability to dilute the metric. Problem of type 6 Basically the same as 4 but in this case, we are testing a 'scatter plot' in VisIt. So, the sort of funky shape and appearance is indeed what we want to test. Problem of type 7: Key details from calculational work performed by VisIt not rendered at fine enough detail. This is testing a very important capability in VisIt: Material Interface Reconstruction (MIR). It is testing one of several MIR algorithms and key aspects of the result I think are muddied by image size and/or choice in view zoom. If we embarked on an effort to improve our choices for test images, the examples above might serve as a good starting point on how to improve things. In addition, we should consider things like sensitivity of test results to irrelevant changes such as in compilers, thirdpartylibraries, running at single our double precision, parallel rendering vs. serial rendering, etc. In addition, just because an image exhibits one or more of the problems mentioned here doesn't mean the whole image isn't testing something useful. But it does mean that the non-useful portions of the image wind up diluting any metrics we might choose to use as a means of disambiguating acceptable differences from unacceptable ones. For certain, to zeroorder an across the board rebaseline to 1kx1k image size would help to reduce though probably not in all cases fix these issues. It would likely also help to prevent us from introducing new issues of these same kind. The only downside is an increase in storage needed for baseline dir in our repository and subsequent checkouts. Given the current size of our repository on NERSC systems, ~1.5Gb, the increased storage would be 2-3%, so really not much. There would be about a doubling of the size of a checkout of the test directory. Where image results are posted for browsing, we would probably have to reduce the number of months we maintain previous test results from maybe 6 to 4. Honestly, to sift through ~2800 images and identify just those we think should be rebaslined at 1kx1k as opposed to just doing all of them isn't really worth the trouble, particularly when the only thing it saves us is 100200 megabytes of disk space. Disk space is cheap. Developer time isn't.
-----------------------REDMINE MIGRATION-----------------------
This ticket was migrated from Redmine. As such, not all
information was able to be captured in the transition. Below is
a complete record of the original redmine ticket.
Ticket number: 1671
Status: Pending
Project: VisIt
Tracker: Feature
Priority: Normal
Subject: Increase image sizes for some test outputs and other possible test issues
Assigned to: Mark Miller
Category: -
Target version: -
Author: Mark Miller
Start: 11/26/2013
Due date:
% Done: 0%
Estimated time:
Created: 11/26/2013 05:11 pm
Updated: 07/08/2014 07:02 pm
Likelihood:
Severity:
Found in version: 2.12.3
Impact: 3 - Medium
Expected Use: 3 - Occasional
OS: All
Support Group: Any

Accidentally transferred as a Silo issues. Cut-n-pasted back here and closed the Silo copy. But, that copy still holds some useful image attachements. https://github.com/markcmiller86/silo-issues/issues/18#issuecomment-470663316


Spine support

This code does not support every possible scenario at the moment, but I think it's fine because it doesn't seem to break anything either and it's very much an opt-in feature.
Please give it a spin, I couldn't break anything in the test room, but something may always come up.
I hope to work more on this in the future, our AdventureJam requires NPCs (implemented either as a new script or through item.gd) to be animated, so some future work is guaranteed.

As mentioned on IRC before the weekend, I'm very sceptical of adding software specific logic to Escoria. Especially when that software is both proprietary and only runs on proprietary platforms. Ideally, Spine would either export directly to Godot or to an intermediate open format that could be used by Godot.
They also have an issue for adding support for Godot, which has been marked as "ready", though there is no further news:
https://github.com/EsotericSoftware/spine-runtimes/issues/728
What are your thoughts on this, @StraToN?

Even better would be if Godot allowed method overloading so the Spine module could be beat into API compliance and Escoria wouldn't have to care.
I would really hate to have to permanently fork Escoria and maintain it over a feature that some others may actually use as well.
Does it really matter that much that the JSON exports have been made with closed software and the runtime is a bit so-so on the opensource/free front?

There was a reply on the above issue that "ready" means "ready to start development", so let's see. If this doesn't go in, maybe I'm stuck with keeping this commit around, but @StraToN 's opinion would also be valuable.

Even better would be if Godot allowed method overloading so the Spine module could be beat into API compliance and Escoria wouldn't have to care.

Yes, I agree that this is more of a concern for Godot projects in general and not one specific to Escoria.

I would really hate to have to permanently fork Escoria and maintain it over a feature that some others may actually use as well.

I understand that this would be very inconvenient. However, would it not be almost as convenient to just make a copy of player.gd with your changes that can live with your project files instead of Escoria upstream? That way you would only need to diff against Escoria's player.gd the few times there player.gd has some upstream changes that you want to include in your project. Either that or apply your changes from stash or checkout that one file from a branch.

Does it really matter that much that the JSON exports have been made with closed software and the runtime is a bit so-so on the opensource/free front?

My concern is that by adding software specific logic we help maintain a reliance on that specific proprietary software. I feel the same way about accepting docx as a de-facto document standard. It may be convenient but I feel uneasy about it.

On Mon, Apr 23, 2018 at 01:33:24PM -0700, Eivind wrote:

Even better would be if Godot allowed method overloading so the Spine
module could be beat into API compliance and Escoria wouldn't have to care.

Yes, I agree that this is more of a concern for Godot projects in general and
not one specific to Escoria.

I agree, men det er livet :/ Gotta play the cards we're dealt.

I would really hate to have to permanently fork Escoria and maintain it
over a feature that some others may actually use as well.

I understand that this would be very inconvenient. However, would it not be
almost as convenient to just make a copy of player.gd with your changes
that can live with your project files instead of Escoria upstream? That way
you would only need to diff against Escoria's player.gd the few times there
player.gd has some upstream changes that you want to include in your
project. Either that or apply your changes from stash or checkout that one
file from a branch.

You make a good point. Basically a stash in a no-go, because by implication
I would never commit the Spine code anywhere. It could be in a separate branch
from which I cherry-pick it. Then I'd track master (and feature branches) but
constantly rebase my gamedev branch, and maintain a Spine branch, and re-apply
it from the branch.
In this case it would be easier to simply rebase constantly.
However, a spine_player.gd file could maybe work the easiest, but patch
management halfway outside git is also a hassle. This is why PRs are made ;)
Are you completely opposed to merging a spine_player.gd file into master?
Or some other kind of architecture that separates Spine support? I don't
know what it would be beside that one file. Problem is, though, that whoever
touches player.gd should also touch spine_player.gd which can be easy to
miss.
It could also be that someone gets into Dragonbones and would we then have
a dragonbones_player.gd? Would it be more acceptable because it's more
open-source? Probably not because that's reliance too.

Does it really matter that much that the JSON exports have been made with
closed software and the runtime is a bit so-so on the opensource/free
front?

My concern is that by adding software specific logic we help maintain a
reliance on that specific proprietary software. I feel the same way about
accepting docx as a de-facto document standard. It may be convenient but I
feel uneasy about it.

I feel uneasy too, but getting things done has to trump uneasy feels. The
upside here is that the API used from the Spine module appears very stable
and Escoria would use a limited subset of it.
.docx sucks golf balls compared to the Spine API, which is beautiful and
well documented.
The other upside is that getting things done has to trump massaging a pull
request, if the answer to everything is no. A leadership decision needs to
be made, like the Esoteric Software guy on the other issue, and then again
c'est la vie and I gotta deal with it.
I also feel uneasy because I may have inadvertedly cracked a can of worms,
like some kind of Pandora, but with code :/
Thanks for the good feedback even if it probably ends up hurting me! :D

I had a new idea as well. Could there be a spine branch in the main repository? It would have a notice in the readme that it gets rebased often and force-pushed, so it should be used for cherry-picking only, and then it would be sort of supported but off-master.

Nothing is hassle-free but then it would be hosted.
However, that branch should never contain more than one or two commits (if the README notice is separate) and I don't know if you want to give me that kind of power to the main repo, even if I swear every branch that goes to master will continue to respect the PR process.

It could be in a separate branch
from which I cherry-pick it. Then I'd track master (and feature branches) but
constantly rebase my gamedev branch, and maintain a Spine branch, and re-apply
it from the branch.

In this case it would be easier to simply rebase constantly.

However, a spine_player.gd file could maybe work the easiest, but patch
management halfway outside git is also a hassle. This is why PRs are made ;)

A separate branch sounds like a good idea, because if spine_player.gd is the only file changed on that branch, you can always do a git rebase -i master without conflicts. I wouldn't cherry-pick. As for using spine_player.gd in your project based on Escoria master, I think git checkout spine-branch -- device/globals/spine_player.gd would be easier than using cherry-pick, especially if you have more than one commits on that branch.

Are you completely opposed to merging a spine_player.gd file into master?

Could there be a spine branch in the main repository?

I'm not completely opposed to it and maybe a separate branch would be a good idea, since I do agree that this might benefit more game developers. I do, however, think it's a difficult decision for the reasons mentioned before, and ultimately it's up to either @punto- or @StraToN.

@akien-mga suggested on IRC that it's fine to add support for Spine, provided that it's done in a modular way, eg. by extending player.gd or creating an interface that can be inherited by the current player.gd, player_spine.gd and any other software specific implementation that is added in the future. The implementation can live in the main repo as long as it can be contributed under the current MIT license and isn't limited by a Spine license.
Another possible problem that just occured to me is, how will we support this? Are there any exported Spine assets provided freely that can be used for implementation and testing? Some quick googling didn't turn up much.

I can't look into this more in-depth but I think this is a free test. Gave the link to @StraToN on the irc channel too, but here for posterity.


Missing initial migrations file.

For those of us looking to utilize this project. The library does not contain an initial model migration file.
This in turn leaves integration of this library to store our own migration files and map it via migration modules.

@izdi :tada:
Do you know when we could get a PyPi release with this change available?

@avelis Gonna do this asap :+1:

@avelis done, added support for south migration as well

@izdi I saw that. Wow, I really appreciate it!


generation eval time is slower than llama-cli in pure llama.cpp

LocalAI version:

185ab93 local build
Environment, CPU architecture, OS, and Version:

Intel i9-10850K CPU @ 3.60GHz, RTX 3090, Ubuntu 20.04
Linux Jiminthebox 5.15.0-113-generic 123~20.04.1-Ubuntu SMP Wed Jun 12 17:33:13 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Describe the bug

When running llama.cpp with LocalAI, the generation eval time is significantly slower compared to running it with pure llama.cpp.
To Reproduce

Pure llama.cpp
./llama-cli -m Meta-Llama-3-8B-Instruct-Q4_K_M.gguf -n -1 -c 0 -ngl 999 -t $(nproc) -p "Print all ascii code." --color --mlock --batch-size 512

LocalAI
./local-ai --debug=true # with CUDA build

name: llama3-8b-instruct-Q4_K_M
context_size: 8192
threads: 20
f16: true
mmap: true
mmlock: false
no_kv_offloading: false
low_vram: false
backend: llama-cpp
cuda: true
gpu_layers: 999
parameters:
  model: Meta-Llama-3-8B-Instruct-Q4_K_M.gguf
rope_scaling: linear
stopwords:
- <|im_end|>
- <dummy32000>
- <|eot_id|>
- <|end_of_text|>
template:
  chat: |
    <|begin_of_text|>{{.Input }}
    <|start_header_id|>assistant<|end_header_id|>
  chat_message: |
    <|start_header_id|>{{if eq .RoleName "assistant"}}assistant{{else if eq .RoleName "system"}}system{{else if eq .RoleName "tool"}}tool{{else if eq .RoleName "user"}}user{{end}}<|end_header_id|>

    {{ if .FunctionCall -}}
    Function call:
    {{ else if eq .RoleName "tool" -}}
    Function response:
    {{ end -}}
    {{ if .Content -}}
    {{.Content -}}
    {{ else if .FunctionCall -}}
    {{ toJson .FunctionCall -}}
    {{ end -}}
    <|eot_id|>
  completion: |
    {{.Input}}
  function: |
    <|start_header_id|>system<|end_header_id|>

    You are a function calling AI model. You are provided with function signatures within <tools></tools> XML tags. You may call one or more functions to assist with the user query. Don't make assumptions about what values to plug into functions. Here are the available tools:
    <tools>
    {{range .Functions}}
    {'type': 'function', 'function': {'name': '{{.Name}}', 'description': '{{.Description}}', 'parameters': {{toJson .Parameters}} }}
    {{end}}
    </tools>
    Use the following pydantic model json schema for each tool call you will make:
    {'title': 'FunctionCall', 'type': 'object', 'properties': {'arguments': {'title': 'Arguments', 'type': 'object'}, 'name': {'title': 'Name', 'type': 'string'}}, 'required': ['arguments', 'name']}<|eot_id|><|start_header_id|>assistant<|end_header_id|>
    Function call:

Expected behavior

The generation evaluation time when using LocalAI should be comparable to running llama.cpp directly, considering the same hardware specifications.
Logs

Pure llama.cpp
llama_print_timings:        load time =     718.94 ms
llama_print_timings:      sample time =     112.66 ms /  1516 runs   (    0.07 ms per token, 13457.01 tokens per second)
llama_print_timings: prompt eval time =      14.48 ms /     6 tokens (    2.41 ms per token,   414.36 tokens per second)
llama_print_timings:        eval time =   13200.77 ms /  1515 runs   (    8.71 ms per token,   114.77 tokens per second)
llama_print_timings:       total time =   14213.27 ms /  1521 tokens

LocalAI
11:53AM DBG GRPC(Meta-Llama-3-8B-Instruct-Q4_K_M.gguf-<IP_ADDRESS>:40159): stdout {"timestamp":1720752788,"level":"INFO","function":"print_timings","line":327,"message":"prompt eval time     =      49.55 ms /    19 tokens (    2.61 ms per token,   383.46 tokens per second)","slot_id":0,"task_id":0,"t_prompt_processing":49.549,"num_prompt_tokens_processed":19,"t_token":2.607842105263158,"n_tokens_second":383.45879836121816}
11:53AM DBG GRPC(Meta-Llama-3-8B-Instruct-Q4_K_M.gguf-<IP_ADDRESS>:40159): stdout {"timestamp":1720752788,"level":"INFO","function":"print_timings","line":341,"message":"generation eval time =   23612.37 ms /  1392 runs   (   16.96 ms per token,    58.95 tokens per second)","slot_id":0,"task_id":0,"t_token_generation":23612.366,"n_decoded":1392,"t_token":16.962906609195404,"n_tokens_second":58.952160914327685}
11:53AM DBG GRPC(Meta-Llama-3-8B-Instruct-Q4_K_M.gguf-<IP_ADDRESS>:40159): stdout {"timestamp":1720752788,"level":"INFO","function":"print_timings","line":351,"message":"          total time =   23661.92 ms","slot_id":0,"task_id":0,"t_prompt_processing":49.549,"t_token_generation":23612.366,"t_total":23661.915}
11:53AM DBG GRPC(Meta-Llama-3-8B-Instruct-Q4_K_M.gguf-<IP_ADDRESS>:40159): stdout {"timestamp":1720752788,"level":"INFO","function":"update_slots","line":1596,"message":"slot released","slot_id":0,"task_id":0,"n_ctx":8192,"n_past":1410,"n_system_tokens":0,"n_cache_tokens":1411,"truncated":false}
11:53AM DBG GRPC(Meta-Llama-3-8B-Instruct-Q4_K_M.gguf-<IP_ADDRESS>:40159): stdout {"timestamp":1720752788,"level":"INFO","function":"update_slots","line":1549,"message":"all slots are idle and system prompt is empty, clear the KV cache"}

Additional context

Thank you for creating such a great project.
I am not sure how to achieve the same speed. Any assistance would be greatly appreciated.

The llama.cpp command you posted is quite basic and have very low defaults, for instance, the context size by default is 512 which affects both speed and memory usage.
I see several things that leads to a different benchmark result from a quick scan:

Prompts aren't the same - while you are running this in LocalAI there are more tokens that are filled in before even predicting, this of course slows down things
Context size isn't the same (llama.cpp has a default of 512: https://github.com/ggerganov/llama.cpp/blob/f53226245f421bd01b47cce43a47e791de82c636/common/common.cpp#L3128 , but you have set 8k in localai)
mmlock is enabled in llama.cpp, while you have it disabled in the configuration file

Take into consideration that LocalAI consumes llama.cpp vanilla, and we tend to be up-to-date with the latest llama.cpp commits: so the speed should be the same given you run things with the same options.

Thank you for your prompt response.
I will check the information you provided and inform accordingly.

Based on your response, I conducted the tests again. However, the speed of llama.cpp when running with LocalAI is still slow. I understand that LocalAI uses vanilla llama.cpp and logically the speeds should be the same. Therefore, I am confused because I expected the speeds to be identical.
I am not sure what additional configurations might be set internally; the results from my tests show that it is slower when using LocalAI.
For the tests, I used OpenAI’s API for communication, and the code is as follows:
import time
from openai import OpenAI

prompts = [
    "What are the benefits of exercise?",
    "Translate the following sentence into French: 'The quick brown fox jumps over the lazy dog.'",
    "Correct the grammatical errors in the following sentence: 'She go to the market every days.'",
    "What is the capital of France?",
    "Summarize the following paragraph: 'Artificial Intelligence (AI) is the simulation of human intelligence in machines that are programmed to think like humans and mimic their actions. The term may also be applied to any machine that exhibits traits associated with a human mind such as learning and problem-solving.'",
    "Generate a dialogue between a customer and a support agent where the customer is asking for a refund.",
    "Complete the following sentence: 'In the near future, artificial intelligence will...'",
    "Identify the named entities in the following sentence: 'Barack Obama was born in Hawaii and served as the 44th President of the United States.'",
    "Say 10 times: \'abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ\'"
]

api_url= 'http://localhost:8080/v1'
client = OpenAI(base_url=api_url)
messages = [
    {
        "role": "system",
        "content": "You are a helpful assistant."
    },
    {
        "role": "user",
        "content": ""
    }
]

response_times = []
for prompt in prompts:
    messages[1]["content"] = prompt
    start_time = time.time()
    response = client.chat.completions.create(messages=messages, max_tokens=1024, model='llama3-8b-instruct-Q4_K_M', stream=False, temperature=0.1)
    end_time = time.time()
    response_times.append(end_time - start_time)

    print(response.choices[0].message.content)

total_response_time = sum(response_times)
print(f"Total response time: {total_response_time:.2f} seconds")
average_response_time = total_response_time / len(response_times)
print(f"Average response time: {average_response_time:.2f} seconds")

For llama.cpp, I started the server with the following command:
$ ./llama-server -m ../local-ai/models/Meta-Llama-3-8B-Instruct-Q4_K_M.gguf --ctx_size 512 -ngl 999 -t 10 --host <IP_ADDRESS> --port 8080

Additionally, here is the YAML file I used to run the model in LocalAI:
name: llama3-8b-instruct-Q4_K_M
threads: 10
mmap: true
backend: llama-cpp
gpu_layers: 999
context_size: 512
parameters:
  model: Meta-Llama-3-8B-Instruct-Q4_K_M.gguf
stopwords:
- <|im_end|>
- <dummy32000>
- <|eot_id|>
- <|end_of_text|>
template:
  chat: |
    <|begin_of_text|>{{.Input }}
    <|start_header_id|>assistant<|end_header_id|>
  chat_message: |
    <|start_header_id|>{{if eq .RoleName "assistant"}}assistant{{else if eq .RoleName "system"}}system{{else if eq .RoleName "tool"}}tool{{else if eq .RoleName "user"}}user{{end}}<|end_header_id|>

    {{ if .FunctionCall -}}
    Function call:
    {{ else if eq .RoleName "tool" -}}
    Function response:
    {{ end -}}
    {{ if .Content -}}
    {{.Content -}}
    {{ else if .FunctionCall -}}
    {{ toJson .FunctionCall -}}
    {{ end -}}
    <|eot_id|>
  completion: |
    {{.Input}}
  function: |
    <|start_header_id|>system<|end_header_id|>

    You are a function calling AI model. You are provided with function signatures within <tools></tools> XML tags. You may call one or more functions to assist with the user query. Don't make assumptions about what values to plug into functions. Here are the available tools:
    <tools>
    {{range .Functions}}
    {'type': 'function', 'function': {'name': '{{.Name}}', 'description': '{{.Description}}', 'parameters': {{toJson .Parameters}} }}
    {{end}}
    </tools>
    Use the following pydantic model json schema for each tool call you will make:
    {'title': 'FunctionCall', 'type': 'object', 'properties': {'arguments': {'title': 'Arguments', 'type': 'object'}, 'name': {'title': 'Name', 'type': 'string'}}, 'required': ['arguments', 'name']}<|eot_id|><|start_header_id|>assistant<|end_header_id|>
    Function call:

Both the llama.cpp and LocalAI tests were conducted after warm-up. Below are the results for each.
result of llama.cpp
Exercise is one of the most effective ways to improve overall health and well-being. Here are some of the many benefits of regular exercise:

1. **Weight Management**: Exercise helps burn calories and maintain a healthy weight, reducing the risk of obesity-related diseases.
2. **Cardiovascular Health**: Regular exercise strengthens the heart and lungs, improving circulation and reducing the risk of heart disease, stroke, and high blood pressure.
3. **Increased Strength and Flexibility**: Exercise, especially resistance training, helps build muscle mass and bone density, making daily activities easier and reducing the risk of osteoporosis.
4. **Improved Mental Health**: Exercise releases endorphins, also known as "feel-good" hormones, which can help alleviate symptoms of anxiety and depression.
5. **Better Sleep**: Regular physical activity can help improve sleep quality and duration.
6. **Increased Energy**: Exercise boosts energy levels and reduces fatigue, making it easier to tackle daily tasks.
7. **Improved Brain Function**: Exercise has been shown to improve cognitive function, including memory, concentration, and problem-solving skills.
8. **Reduced Risk of Chronic Diseases**: Regular exercise can reduce the risk of developing type 2 diabetes, certain types of cancer, and other chronic diseases.
9. **Improved Bone Density**: Exercise, especially weight-bearing and resistance exercises, can help improve bone density, reducing the risk of osteoporosis and fractures.
10. **Enhanced Immune Function**: Exercise has been shown to boost the immune system, reducing the risk of illness and infection.
11. **Better Digestion**: Regular physical activity can improve digestion and reduce the risk of constipation, diverticulitis, and other gastrointestinal disorders.
12. **Increased Self-Esteem**: Exercise can improve body image and self-esteem, leading to a more positive and confident outlook on life.
13. **Social Benefits**: Exercise can provide opportunities for social interaction, building relationships and a sense of community.
14. **Reduced Stress**: Exercise is a natural stress-reliever, helping to reduce anxiety and promote relaxation.
15. **Improved Overall Health**: Regular exercise can improve overall health and well-being, reducing the risk of premature death and increasing life expectancy.

Remember, every individual is unique, and the benefits of exercise may vary depending on factors such as age, fitness level, and health status. It's essential to consult with a healthcare professional before starting a new exercise program.
The translation of the sentence "The quick brown fox jumps over the lazy dog" into French is:

"Le renard rapide brun saute par-dessus le chien paresseux."

Note: This sentence is a well-known pangram, meaning it uses all the letters of the alphabet at least once.
The corrected sentence would be:

"She goes to the market every day."

The errors in the original sentence were:

* "She go" should be "She goes" (subject-verb agreement)
* "every days" should be "every day" (plural noun "days" is not needed, and "day" is the correct word to use in this context)
The capital of France is Paris!
Here is a summary of the paragraph:

Artificial Intelligence (AI) is the creation of machines that can think and act like humans, mimicking their intelligence and abilities. This includes machines that can learn, solve problems, and exhibit other human-like traits.
Here is a dialogue between a customer and a support agent:

**Customer:** Hi, I'm calling about the product I purchased from your company last week. I'm not satisfied with it and I'd like to request a refund.

**Support Agent:** Thank you for reaching out to us, [Customer's Name]. I apologize to hear that you're not satisfied with the product. Can you please tell me more about what's not meeting your expectations? Was there a specific issue with the product or did it not work as you had hoped?

**Customer:** Well, I was expecting it to be more durable. The material feels cheap and it's already started to show signs of wear and tear. I've only used it a few times.

**Support Agent:** I apologize for the inconvenience. Can you please provide me with your order number so I can look into this further?

**Customer:** Yeah, it's #123456.

**Support Agent:** Thank you, [Customer's Name]. I've located your order and I can see that you purchased the product on [Date]. I'd be happy to assist you with a refund. However, I do need to let you know that our return policy states that all returns must be made within 30 days of purchase.

**Customer:** Okay, I understand. But I'm still within that timeframe, right? I purchased it just last week.

**Support Agent:** That's correct. You are still within the 30-day window. I can process a full refund for you. Would you like me to send you a prepaid return shipping label so you can send the product back to us?

**Customer:** Yes, that would be great. Thank you for your help.

**Support Agent:** You're welcome, [Customer's Name]. I'll go ahead and process the refund and send you the return shipping label via email. You should receive it within the next 24 hours. If you have any other questions or concerns, please don't hesitate to reach out to us. We appreciate your business and hope to have the opportunity to serve you better in the future.

**Customer:** Thank you, I appreciate it.

**Support Agent:** You're welcome. Have a great day!
"...play a crucial role in augmenting human capabilities, transforming industries, and improving the quality of life for billions of people around the world. As AI becomes increasingly sophisticated, it will enable us to tackle complex challenges such as climate change, healthcare, education, and economic inequality, ultimately leading to a more sustainable, efficient, and equitable society."
The named entities in the sentence are:

* Barack Obama (person)
* Hawaii (location)
* United States (location)
* President (title)
* 44th (number)
Here it goes:

1. abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ
2. abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ
3. abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ
4. abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ
5. abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ
6. abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ
7. abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ
8. abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ
9. abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ
10. abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ
Total response time: 13.79 seconds
Average response time: 1.53 seconds

result of LocalAI
Exercise is an essential part of a healthy lifestyle, and it offers numerous benefits for the body, mind, and overall well-being. Here are some of the most significant advantages of regular exercise:

1. **Improves Physical Health**: Exercise helps to maintain a healthy weight, boost cardiovascular health, strengthen bones, and reduce the risk of chronic diseases like diabetes, certain types of cancer, and heart disease.
2. **Boosts Mental Health**: Exercise releases endorphins, which are natural mood-boosters that can help alleviate symptoms of anxiety and depression. It can also improve sleep quality and reduce stress levels.
3. **Increases Energy**: Regular physical activity can increase energy levels and reduce fatigue, making it easier to tackle daily tasks and activities.
4. **Enhances Cognitive Function**: Exercise has been shown to improve cognitive function, including memory, concentration, and problem-solving skills.
5. **Supports Bone Density**: Weight-bearing exercises, such as running or weightlifting, can help maintain strong bones and reduce the risk of osteoporosis.
6. **Reduces Inflammation**: Exercise has anti-inflammatory effects, which can help reduce inflammation and improve overall health.
7. **Improves Self-Esteem**: Regular exercise can enhance self-esteem and body image, leading to a more positive and confident outlook on life.
8. **Increases Social Connections**: Exercising with others can help build social connections and a sense of community, which is essential for overall well-being.
9. **Reduces Risk of Chronic Diseases**: Regular exercise has been shown to reduce the risk of chronic diseases, such as heart disease, stroke, and certain types of cancer.
10. **Increases Longevity**: Studies have shown that regular exercise can increase life expectancy and reduce the risk of premature death.
11. **Improves Digestion**: Exercise can help regulate bowel movements, reduce symptoms of irritable bowel syndrome (IBS), and improve overall digestive health.
12. **Enhances Immune Function**: Exercise has been shown to boost the immune system, reducing the risk of illness and infection.
13. **Reduces Stress**: Exercise is a natural stress-reliever and can help reduce symptoms of stress and anxiety.
14. **Improves Coordination and Balance**: Regular exercise can improve coordination, balance, and overall physical fitness.
15. **Increases Productivity**: Exercise has been shown to improve productivity, creativity, and
Here is the translation of the sentence "The quick brown fox jumps over the lazy dog" into French:

Le renard rapide brun saute par-dessus le chien paresseux.

Let me know if you need any further assistance!
The corrected sentence would be:

"She goes to the market every day."

The error was the use of the singular verb "go" instead of the plural verb "goes" to agree with the subject "she", which is a singular noun. Additionally, "days" is a plural noun, so it should be replaced with the singular noun "day" to match the verb "goes".
The capital of France is Paris!
Here is a summary of the paragraph:

Artificial Intelligence (AI) refers to the creation of machines that can think and act like humans, mimicking their intelligence and abilities, such as learning and problem-solving.
Here is a dialogue between a customer and a support agent:

**Customer:** Hi, I'm calling about my recent purchase of the "SmartFit" fitness tracker. I'm requesting a refund.

**Support Agent:** Thank you for reaching out to us. Can you please provide me with your order number so I can look into this further?

**Customer:** Sure thing. It's #123456.

**Support Agent:** Okay, thank you. Can you tell me a little bit more about the issue you're experiencing with the product? What's not meeting your expectations?

**Customer:** Honestly, I just didn't find it to be as accurate as I thought it would be. The tracking data was off by a significant amount, and the customer reviews I read online were misleading. I'm really disappointed in the product.

**Support Agent:** I apologize for the inconvenience. I'd be happy to help you with a refund. Can you please confirm that you've tried troubleshooting the issue and that it's not just a matter of adjusting the settings?

**Customer:** Yeah, I've tried everything I can think of. I've reset the device, updated the software, and even contacted the manufacturer's support team. Nothing seems to have worked.

**Support Agent:** Okay, thank you for trying those steps. In that case, I'd be happy to process a full refund for you. Would you like me to send you a prepaid return shipping label so you can send the device back to us?

**Customer:** That would be great, thank you.

 I'll go ahead and process the refund and send you the return shipping label via email. You should receive it within the next 24 hours. If you have any other questions or concerns, please don't hesitate to reach out.

**Customer:** Thank you so much for your help. I really appreciate it.

 We apologize again for the inconvenience and hope to have the opportunity to serve you better in the future.
"...revolutionize the way we live and work, enabling humans to focus on creative and high-value tasks while AI handles routine and mundane tasks, leading to increased productivity, efficiency, and innovation."
The named entities in the sentence are:

1. Barack Obama
2. Hawaii
3. United States
Here it goes:

1. abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ
2. abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ
3. abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ
4. abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ
5. abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ
6. abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ
7. abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ
8. abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ
9. abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ
10. abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ
Total response time: 28.28 seconds
Average response time: 3.14 seconds

And here are the speeds output in the server debugging when executing the final prompt "Say 10 times: 'abc def ghi jkl mno pqr stu vwxyz ABC DEF GHI JKL MNO PQR STU VWXYZ'":
llama.cpp
INFO [   launch_slot_with_task] slot is processing task | tid="140540703879168" timestamp=1720876541 id_slot=0 id_task=5641
INFO [            update_slots] kv cache rm [p0, end) | tid="140540703879168" timestamp=1720876541 id_slot=0 id_task=5641 p0=0
INFO [           print_timings] prompt eval time     =      20.90 ms /    54 tokens (    0.39 ms per token,  2584.10 tokens per second) | tid="140540703879168" timestamp=1720876543 id_slot=0 id_task=5641 t_prompt_processing=20.897 n_prompt_tokens_processed=54 t_token=0.3869814814814814 n_tokens_second=2584.10298128918
INFO [           print_timings] generation eval time =    2515.80 ms /   294 runs   (    8.56 ms per token,   116.86 tokens per second) | tid="140540703879168" timestamp=1720876543 id_slot=0 id_task=5641 t_token_generation=2515.799 n_decoded=294 t_token=8.557139455782313 n_tokens_second=116.86148217723276
INFO [           print_timings]           total time =    2536.70 ms | tid="140540703879168" timestamp=1720876543 id_slot=0 id_task=5641 t_prompt_processing=20.897 t_token_generation=2515.799 t_total=2536.696
INFO [            update_slots] slot released | tid="140540703879168" timestamp=1720876543 id_slot=0 id_task=5641 n_ctx=512 n_past=347 n_system_tokens=0 n_cache_tokens=0 truncated=false

LocalAI
10:21PM DBG GRPC(Meta-Llama-3-8B-Instruct-Q4_K_M.gguf-<IP_ADDRESS>:39633): stdout {"timestamp":1720876883,"level":"INFO","function":"update_slots","line":1785,"message":"kv cache rm [p0, end)","slot_id":0,"task_id":4025,"p0":0}
10:21PM DBG GRPC(Meta-Llama-3-8B-Instruct-Q4_K_M.gguf-<IP_ADDRESS>:39633): stdout {"timestamp":1720876889,"level":"INFO","function":"print_timings","line":327,"message":"prompt eval time     =      33.51 ms /    57 tokens (    0.59 ms per token,  1700.88 tokens per second)","slot_id":0,"task_id":4025,"t_prompt_processing":33.512,"num_prompt_tokens_processed":57,"t_token":0.5879298245614035,"n_tokens_second":1700.8832656958703}
10:21PM DBG GRPC(Meta-Llama-3-8B-Instruct-Q4_K_M.gguf-<IP_ADDRESS>:39633): stdout {"timestamp":1720876889,"level":"INFO","function":"print_timings","line":341,"message":"generation eval time =    5703.68 ms /   294 runs   (   19.40 ms per token,    51.55 tokens per second)","slot_id":0,"task_id":4025,"t_token_generation":5703.684,"n_decoded":294,"t_token":19.400285714285715,"n_tokens_second":51.545632612185386}
10:21PM DBG GRPC(Meta-Llama-3-8B-Instruct-Q4_K_M.gguf-<IP_ADDRESS>:39633): stdout {"timestamp":1720876889,"level":"INFO","function":"print_timings","line":351,"message":"          total time =    5737.20 ms","slot_id":0,"task_id":4025,"t_prompt_processing":33.512,"t_token_generation":5703.684,"t_total":5737.196}
10:21PM DBG GRPC(Meta-Llama-3-8B-Instruct-Q4_K_M.gguf-<IP_ADDRESS>:39633): stdout {"timestamp":1720876889,"level":"INFO","function":"update_slots","line":1596,"message":"slot released","slot_id":0,"task_id":4025,"n_ctx":512,"n_past":350,"n_system_tokens":0,"n_cache_tokens":351,"truncated":false}

Did you tried disabling mirostat sampling? By default LocalAI enables mirostat for better results , but that have impact on speed as well.

Yay!
Thanks to you, I finally found the cause. When I set mirostat to 0, the speeds are identical. I had no idea there was such a significant difference in speed when using mirostat sampling versus not using it.
I really appreciate your help!

Glad to hear it's solved! Nevertheless it makes sense to document this out - will try to catch up on this today  👍


Makefile papercuts

There are a few papercuts in the Makefile setup for KEVM, as identified by @tothtamas28:

make plugin-deps is necessary after make clean
make deps doesn't make deps-plugin
make distclean doesn't call make clean in deps/plugin or mvn clean in deps/k

@tothtamas28 can we close this issue?

Yes, these targets are no longer present in the Makefile.


Supports for Multiple Data Sources

Related https://github.com/graceframework/grace-data-hibernate/issues/64


CACHE_MANAGER_CLOSED not received when clustered CM is closed

(not received by nms entity)
M&M team needs to be aware when a CM is closing. We are sending a CACHE_MANAGER_CLOSED.
But it does not work because of 2 issues:

The server ordering during stop() does seem to respect the service dependency ordering: the clustering service is closed before the management service, so we cannot send client-related events such as the product instance id that is closing.

There is no way to specify optional dependencies: M&M optionally activate clustering if it is available (because Ehcache people didn't want at the time to create a management-clustered module and update the kit). But we need to tell that there is an optional service dependency.

@anthonydahanne @GaryWKeim : FYI