Failed to start gauge API: Error occurred while waiting for runner process to finish.

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps (or script) to reproduce the behavior:
Please help to see the log below. The error is failed to compare the gauge java version.
Logs
24-01-2022 23:50:42.307 [java] [DEBUG] JAVA_HOME: C:\Program Files\Java\ibm_sdk80
24-01-2022 23:50:42.307 [java] [DEBUG] gauge_project_root: C:\ndi-cp-cdi-automation-test
24-01-2022 23:50:42.307 [java] [DEBUG] gauge_parallel_streams_count: 8
24-01-2022 23:50:42.307 [java] [DEBUG] gauge_reports_dir: reports
24-01-2022 23:50:42.307 [java] [DEBUG] overwrite_reports: true
24-01-2022 23:50:42.307 [java] [DEBUG] logs_directory: logs
24-01-2022 23:50:42.307 [java] [DEBUG] enable_multithreading: false
24-01-2022 23:50:42.307 [java] [DEBUG] gauge_specs_dir: specs
24-01-2022 23:50:42.307 [java] [DEBUG] csv_delimiter: ,
24-01-2022 23:50:42.307 [java] [DEBUG] gauge_java_home:
24-01-2022 23:50:42.307 [java] [DEBUG] gauge_custom_build_path:
24-01-2022 23:50:42.308 [java] [DEBUG] gauge_additional_libs: libs/*
24-01-2022 23:50:42.308 [java] [DEBUG] gauge_jvm_args:
24-01-2022 23:50:42.308 [java] [DEBUG] gauge_custom_compile_dir:
24-01-2022 23:50:42.308 [java] [DEBUG] gauge_clear_state_level: scenario
24-01-2022 23:50:42.308 [java] [DEBUG] ***** END *****
24-01-2022 23:50:52.656 [java] [DEBUG] failed to compare version '0.7.15 (selected by rule)
' and '0.7.15'. strconv.Atoi: parsing "15 (selected by rule)": invalid syntax
24-01-2022 23:50:52.656 [java] [ERROR] Installed version of gauge-java (0.7.15) does not match with dependency gauge-java (0.7.15 (selected by rule)
) specified in build.gradle file
24-01-2022 23:50:52.944 [java] [DEBUG] running - C:\Program Files\Java\ibm_sdk80\bin\javac.exe [-encoding UTF-8 -d gauge_bin @C:\Users\PHOOPW~1.THU\AppData\Local\Temp\gauge_temp147947507\52fdfc072182654f163f5f0f9a621d72]
24-01-2022 23:50:52.944 [java] [DEBUG] stdout/stderr is logged to logs\26580-javac.exe.out

Paste any log or error messages here
24-01-2022 23:50:52.656 [java] [DEBUG] failed to compare version '0.7.15 (selected by rule)
' and '0.7.15'. strconv.Atoi: parsing "15 (selected by rule)": invalid syntax
24-01-2022 23:50:52.656 [java] [ERROR] Installed version of gauge-java (0.7.15) does not match with dependency gauge-java (0.7.15 (selected by rule)
) specified in build.gradle file
24-01-2022 23:50:52.944 [java] [DEBUG] running - C:\Program Files\Java\ibm_sdk80\bin\javac.exe [-encoding UTF-8 -d gauge_bin @C:\Users\PHOOPW~1.THU\AppData\Local\Temp\gauge_temp147947507\52fdfc072182654f163f5f0f9a621d72]
24-01-2022 23:50:52.944 [java] [DEBUG] stdout/stderr is logged to logs\26580-javac.exe.out

Expected behavior
Would like to run successfully.
Screenshots
If applicable, add screenshots to help explain your problem.

Versions:
JDK - 11

gauge -v

Gauge version: 1.4.3
Commit Hash: f98dd40
Plugins
html-report (4.1.4)
java (0.7.15)
screenshot (0.1.0)

failed to compare version '0.7.15 (selected by rule)
' and '0.7.15'. strconv.Atoi: parsing "15 (selected by rule)": invalid syntax

This looks like there is a mistake in pom.xml - could you please check if the dependency version is set correctly?

I got the same issue with python, any solution?

Hi @skanderf
for my case it was the wrong path for python, if you are using virtual environment find your pyvenv.cfg file and check if your path is correct

got the same in ruby


[Update] Cannot translate attribute heading.* as it's not one of the translatable attributes

Hi, love this package, it's great!
I am having an error when updating a resource that has a translated field within a Flexible Content.
When the flexible is empty and I initially update the resource to add new data, it works great. But when trying to update a resource that already has data in the flexible's translated fields, I get the following error:
Cannot translate attribute `heading.*` as it's not one of the translatable attributes: `heading`

It seems to be related to the validator trick that adds the .* to the attribute name.
Here's a summary of my code:
public function fields()
{
    return [
        Flexible::make('Cards')->addLayout(CardLayout::class)
    ];
}

class CardLayout extends Layout
{
    use HasTranslations;

    public $translatable = [
        'heading'
    ];

    protected $name = 'cardlayout';
    protected $title = 'Card';

    public function fields()
    {
        return [
            Text::make('Heading', 'heading')->translatable(),
        ];
    }

}

You mentioned in #7 that you managed to get translatable fields to work with flexible content fields, did you run into this problem? How did you do it?
Thanks for your time!

After further investigation, this only happens on nova-page templates, and only if the template uses the HasTranslations trait for other translated fields that are not part of the flexible content. My above example would actually work on a regular nova resource.
Closing this now as this is a compatibility bug between two packages and not a bug with your code. My apologies.

Ah, this is embarrassing. Further testing showed that it DOES happen on regular nova resources, the confusion came from the fact that the error only occurs when the flexible field has at least 2 layout instances.
So, this works:

But this does not:

Hey! Sorry for the late reply, I was on vacation.
Did you use version 1.3.0? It should've fixed the issue of attributes having the .* at the end while saving.
I'll test it out in a second as well and see what's up.

No worries! Yes, I am using 1.3.0.

Hey!
I managed to reproduce the issue and pretty sure I got it fixed. Try out version 1.3.1.

Seems to work as expected now inside Flexible layouts. Let me know if anything else arises, thanks and good luck!

Thanks for the fix, I'll try it later and let you know if I still have problems with it! Cheers

Hi @Tarpsvo! I am encountering this again.
This time the problem arises regardless of the number of layouts present. But only if I have 3 nested flexible fields. Roughly, something like:
Flexible::make('First level')
    ->addLayout('First level layout', 'one', [
        Flexible::make('Second level')
            ->addLayout('Second level layout', 'two', [
                Flexible::make('Third level')
                    ->addLayout('Third level layout', 'three', [
                        Text::make('Title')->translatable()
                    ])
            ])
    ])

Something like this, but with proper Layout classes instead of course to be able to specify the HasTranslations trait etc.
I can maybe submit a PR for a fix, but since you've already dealt with this before, maybe you can point me in the right direction?
Thanks!

My lord that's a lot nested layouts. Is this something that broke recently and worked previously? Might have to take a look at my recent commits.

My lord that's a lot nested layouts.

Yeah... I don't love it, but that's how I have to structure this one, sadly. I really can't say if it worked before or not, as I try to avoid this much nesting usually. What I can say is that it's the exact same error message as I had when I originally opened this issue!

Now I'm seeing this in a non-nested flexible field as well.. Very strange. It works fine for one resource and not for the other. I have to do more digging.

I have made some progress!
In TranslatableFieldMixin.php, there is a trick to play nice with the validator : we append .* to the attribute name and saves it in $this->attribute. Normally, this works fine and does the trick.
However it seems that when it loops over the flexible layouts,  the instance is kept during the loop - meaning that when it gets to the second layout, the trick has already been applied, but this code does not know that and applies it again. So we end up with a .*.* after the attribute name, which is bad.
I have verified this with the spl_object_hash function which gives a unique hash per instance, and the same hash comes out twice just before it errors out, during the loop over the flexible layouts.
So I tried a workaround: keep track of the spl_object_hash of the objects that have already had the trick applied, and prevent it from applying it twice:
if(!request()->tricked) {
    request()->tricked = [];
}

// If it's a CREATE or UPDATE request, we need to trick the validator a bit
if (in_array(request()->method(), ['PUT', 'POST']) && !in_array(spl_object_hash($this), request()->tricked)) {
    $this->attribute = "{$this->attribute}.*";
    request()->tricked []= spl_object_hash($this);
}

This is more a proof than a proper solution, in my eyes. It's probably a bit dirty to store those in the request, it was just the easiest way to debug it quickly.


chatbot output is garbage even though it seems to converge (test loss ~0.8)

I'm running python3.6 chatbot.py --mode chat after having run python3.6 chatbot.py --mode train for about 4000 iterations, which reported test losses on buckets of about 0.8.
I hit Ctrl + C twice to exit the training and run the chat mode with the above command, and:
Welcome to TensorBro. Say something. Enter to exit.

Since it seems to be converging, could there be something wrong with how the output is produced?
Thank you.
P.D. Test losses before running chat mode:
Test bucket 1: loss 0.7105958461761475, time 1.8624026775360107
Test bucket 2: loss 0.6827402710914612, time 1.9959523677825928
Test bucket 3: loss 0.8933209180831909, time 2.263766288757324
Test bucket 4: loss 0.846074104309082, time 2.571714401245117
Test bucket 5: loss 0.8687611222267151, time 2.8896803855895996

please start with max lenght 8 !!! 60 it way to big.   0.8 is to hight error.   are you spliting words by symbols ??

and please hit ctrl+c  once  to give it chance to save progress!!!

@MartinAbilev Thanks!! I'm going to try that. I'm not splitting words by symbols, I'm using the code as it comes.
So .8 is just a high loss? That could explain things... How many iterations did you need before you got a good result? At what test loss?
Thanks!!!

loss is a bit tricky because if you got bigger training data loss get bigger too because there simply more tests to fail. if you train on clasic cornell movies from my experiance 0.05 even 0.01 is somewhere satisfying results starts to show.  iterations not the case there .. you need to watch is there progress in training do loss go down or it fluctates near the same value. it need`s to go down !!! 2-8h depending on cpu will be enought  if it takes to long, i bet somethnin is wrong.  you need to test with smaller values first to check if code is working as expected then move to highter one.  max- lenght here is param multiplying training time in most. previous i experimenting with 32 but after 3x weeks still not getting good result .. now i moved back to 16.

my 'creature'  today at loss   0.11   still bulshiting alot :D but i fed some special stuf to input and timecodes  thus making learning bit complicated because every input is diferent, and there no such inputs in cornell data.
Q: goodmorning bianca.
A: I am.
Q: you are bianca.
A: I trying ever.
Q: do it.
A: Goodbye!!!!!
Q: bye.
A: I trying ever.
Q: go on with it.
A: Yes i trying.
Q: where is laura ?
A: Ok it@ 08: 03: 28
Q: are you ok ?
A: I dont know it. Q: why not ? A: I trying ever. Q: try harder. A: I dont get what is laura.
Q: she is your sister!
A: I trying.
Q: move on.
A: I will trying@ 08: 03: 28
Q: good girl.
A: I dont know it. Q: i know it. A: I trying ever. Q: ok what next. A: Is there 07: 51: 07@ 08: 51: 07@ 06: 22: Q: yes black cube is in your room. A: Yes i dont know it.@ 07: 07: 24: 14
Q: learn it.
A: I dont know it. Q: do more research. A: I dont know it.
Q: practise and learn.
A: I trying.
Q: try harder.
A: I trying ou it.
Q: you will sucsses!
A: I dont know it. Q: go on A: I trying ever. Q: so what next ? A: I trying ou. Q: tell me a story. A: I dont know it.
Q: you know.
A: I am.
Q: bianca
A: Thank you know it.@ 07: 07: 24
Q: i do
A: I trying ou maybe
Q: go on
A: I trying ou.
Q: fine
A: I dont know it. Q: ok no problem. A: Yes, is.@ 08: 03: 28 Q: what is the problem for you ? A: @ 08: 03: 28 Q: it is you bianca. A: Ok ok: martin@ 13: 41: 41@ 07: 44: 41 Q: yes it is me martin here. A: Ok: 52: 07@ 08: 07: 23 Q: what is the ultimate question ? A: I trying ever. Q: 42 ? A: I trying. Q: 42 A: I dont know it.@ 08: 03: 28
Q: 4 2 ?
A: I trying.
Q: 4 2
A: I trying ever.
Q: where is laura ?
A: Where cat?@ 08: 03: 28
Q: maybe is your room.
A: I dont know it. Q: maybe cat is in your room... A: Maybe, the up i explain laura. Q: go on explain me the laura. A: I trying ou ever.@ 08: 03: 28 Q: sometimes you get it right. A: I dont know it.

It's because of the bug in generating the response (inconsistent data processing). fixed it in the latest commit. please re-open the issue if it's still gibberish.


Gala

Description of changes
Adds an MVP of the Gala page (November 10th!)
Issue Resolved
none

@ksmacleod99 Merging this in, thanks for the work.  Now that the /gala route is live, we should figure out how to navigate to the page from within the app.


Fails to install on Amazon Linux

metadata.rb says that amazon linux is supported, but install recipe doesnt' have a chance to succeed on Amazon Linux

Thanks for reporting!
We'll happily accepting PRs on this :smile:

Closing due to inactivity.
If this is still an issue please reopen or open another issue. Alternatively drop by the #sous-chefs channel on the Chef Community Slack and we'll be happy to help!
Thanks,
Sous-Chefs


Clicking on any album in any album list shows "ERROR: List processing failed ReferenceError: ALL_SONGS_ID is not defined"

Version: 8.2.0 -<PHONE_NUMBER> @ Tue Aug 3 11:43:55 CEST 2021
Material Skin 2.9.3
This occurs when viewing via my desktop computer. It does not occur on Android.
In the developer console for my browser (Firefox):
[Fri, 22 Apr 2022 14:47:23 GMT] ERROR:ReferenceError: ALL_SONGS_ID is not defined
Array []
[material.min.js:238:38](http://<IP_ADDRESS>:9000/material/html/js/material.min.js?r=2.9.0)
    logError http://<IP_ADDRESS>:9000/material/html/js/material.min.js?r=2.9.0:238
    parseBrowseResp http://<IP_ADDRESS>:9000/material/html/js/material-deferred.min.js?r=2.9.0:112
    fetchItems http://<IP_ADDRESS>:9000/material/html/js/material.min.js?r=2.9.0:371
    (Async: promise callback)
    fetchItems http://<IP_ADDRESS>:9000/material/html/js/material.min.js?r=2.9.0:371
    browseClick http://<IP_ADDRESS>:9000/material/html/js/material-deferred.min.js?r=2.9.0:148
    click http://<IP_ADDRESS>:9000/material/html/js/material.min.js?r=2.9.0:374
    click http://<IP_ADDRESS>:9000/material/html/js/material.min.js?r=2.9.0 line 69 > Function:3
    He http://<IP_ADDRESS>:9000/material/html/js/material.min.js?r=2.9.0:69
    n http://<IP_ADDRESS>:9000/material/html/js/material.min.js?r=2.9.0:69
    _wrapper http://<IP_ADDRESS>:9000/material/html/js/material.min.js?r=2.9.0:69

The jsonrpc.js call returns:
{"method":"slim.request","id":8,"result":{"titles_loop":[{"id":17186,"title":"The A Team","duration":261.026,"artist_id":"3386","tracknum":"1","url":"file:///music/Ed_Sheeran/+/01-The_A_Team.flac","artist":"Ed Sheeran","compilation":"0"},{"id":17187,"title":"Drunk","duration":199.133,"artist_id":"3386","tracknum":"2","url":"file:///music/Ed_Sheeran/+/02-Drunk.flac","artist":"Ed Sheeran","compilation":"0"},{"id":17188,"title":"U.N.I","duration":228.773,"artist_id":"3386","tracknum":"3","url":"file:///music/Ed_Sheeran/+/03-U.N.I.flac","artist":"Ed Sheeran","compilation":"0"},{"id":17189,"title":"Grade 8","duration":181.08,"artist_id":"3386","tracknum":"4","url":"file:///music/Ed_Sheeran/+/04-Grade_8.flac","artist":"Ed Sheeran","compilation":"0"},{"id":17190,"title":"Wake Me Up","duration":228.8,"artist_id":"3386","tracknum":"5","url":"file:///music/Ed_Sheeran/+/05-Wake_Me_Up.flac","artist":"Ed Sheeran","compilation":"0"},{"id":17191,"title":"Small Bump","duration":258.853,"artist_id":"3386","tracknum":"6","url":"file:///music/Ed_Sheeran/+/06-Small_Bump.flac","artist":"Ed Sheeran","compilation":"0"},{"id":17192,"title":"This","duration":196.44,"artist_id":"3386","tracknum":"7","url":"file:///music/Ed_Sheeran/+/07-This.flac","artist":"Ed Sheeran","compilation":"0"},{"id":17193,"title":"The City","duration":235.24,"artist_id":"3386","tracknum":"8","url":"file:///music/Ed_Sheeran/+/08-The_City.flac","artist":"Ed Sheeran","compilation":"0"},{"id":17194,"title":"Lego House","duration":183.586,"artist_id":"3386","tracknum":"9","url":"file:///music/Ed_Sheeran/+/09-Lego_House.flac","artist":"Ed Sheeran","compilation":"0"},{"id":17195,"title":"You Need Me, I Don't Need You","duration":220.413,"artist_id":"3386","tracknum":"10","url":"file:///music/Ed_Sheeran/+/10-You_Need_Me,_I_Don%27t_Need_You.flac","artist":"Ed Sheeran","compilation":"0"},{"id":17196,"title":"Kiss Me","duration":278.413,"artist_id":"3386","tracknum":"11","url":"file:///music/Ed_Sheeran/+/11-Kiss_Me.flac","artist":"Ed Sheeran","compilation":"0"},{"id":17197,"title":"Give Me Love","duration":526.386,"artist_id":"3386","tracknum":"12","url":"file:///music/Ed_Sheeran/+/12-Give_Me_Love.flac","artist":"Ed Sheeran","compilation":"0"}],"count":12},"params":["f4:6d:04:ad:3f:41",["tracks","0",25000,"tags:dikstuACE","sort:tracknum","album_id:1097","library_id:0"]]}

(Not my album btw)
There are also some calls which have no response.
Steps to reproduce:

Click My Music
Click New Music
Click on any of the albums' cover art

Expected: the list of tracks is displayed
Actual: An error message is displayed where the tracks should be:
ERROR: List processing failed ReferenceError: ALL_SONGS_ID is not defined

This occurs with all albums, on all places (I've tried) with an album list.
The problem does not occur with the default skin. (That's why I'm logging it here, rather than asking in the forums).
I've tried a full clear and rescan - this seems to have no effect.

Sorry, but I cannot recreate this. If it was an actual issue I'm 100% sure others would have reported.
You say you're using 2.9.3, but your error messages all have ?r=2.9.0 - suggesting 2.9.0 Either way I have tried, on desktop Firefox, with 2.9.0 and 2.9.3 - no issue.
I suggest you try re-installing Material, restating LMS, clear your browser's cache, and hard-reload the page.
The same code runs on all browsers, Android or not, so the fact that you state it runs OK on Android points to a browser/cache issue on your side.

Apologies, it was just a hard reload of the page that was required - appears to work now.
Thank you for taking the time to look into this so extensively - trying different versions etc.

Ah, good to know all is well :)


Now being tracked in Trello


Add back filters

I'm sure these commits could easily be squashed but 🤷♂
The gist here is that I abstract out a dynamically programmed useFilters widget
How does it work?

get the full collection of items client-side
hook builds filters based on a passed 'template'
Click a few buttons in the form ... it the content updates in real-time

As things are an array of fields and others are just a flat string I ended up with some nasty branched logic that could definitely be DRY'd up a bit of it but ... IT WORKS 😱 🚀
Only 1 API call per page request (and 0 for locations as they are pushed into the build step)

ideas for follow up:

use as Formik form hook ..?
navigate via history.push on form state change


Trigger publishing

This PR merely bumps version to force publishing which failed for the previous PR.

@armiol, I have idea why increment-guard.yml did not work for the previous PR. Do you?

@alexander-yevsyukov hard to say using just a phone screen to read the logs. I suggest we investigate tomorrow.


Update range of linked lines in docs

license_file.rb was edited since the link was first made, so the range pointed to the wrong part of the file. With this change, the range once again cover the FILENAME_REGEXES hash contents.

Thanks @roryokane!


Fix an erroneous function comment.

Please provide a description of this PR:

@bianpengyuan: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-pilot-multicluster-tests_istio
97e33028c93f040af35ec871cd041a7086cb8356
link
true
/test integ-pilot-multicluster-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test integ-pilot-multicluster-tests_istio


Add list command for listing monitors

Command list will query api for all Synthetic monitors and list them for use.
flag for scripted only
perhaps format in table layout with guid, name, whatever else seems pertinent
This worked well for table layout in the past: "github.com/apcera/termtables". See nines

This was completed with commit 777e38c1a6359d47626e343d678a5a1481a13a79


Specify compiler flag mmacosx-version-min to 10.9 to use libc++

Building cython code that uses c++11 features on osx seems to result in build errors. See issue #219.
According to this stackoverflow, the default of mmacosx-version-min to be 10.5 which was making it use libstdc++ instead of libc++. Hence it doesnt seem to recognize c++11 features.
This PR sets mmacosx-version-min to 10.9 to fix it.

CC: @cooperlab

Thanks Deepak.

Current coverage is 57.89% (diff: 100%)

Merging #220 into master will not change coverage

@@             master       #220   diff @@
==========================================
  Files            17         17
  Lines           703        703
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits            407        407
  Misses          296        296
  Partials          0          0

Powered by Codecov. Last update 6c9a47c...c0d7c71

This is what I wanted later. LGTM !!


Enable ConanLock detector by default

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

Comparison is base (b3ce582) 59.51% compared to head (c0a3295) 59.51%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #450   +/-   ##
=======================================
  Coverage   59.51%   59.51%
=======================================
  Files         246      246
  Lines        7360     7361    +1
  Branches      870      870
=======================================
+ Hits         4380     4381    +1
  Misses       2585     2585
  Partials      395      395

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


Update README before 0.8.2.RELEASE

Fyi, we plan to release Arabba SR6 on July, 16.

I'm trying to close this issue because the README has been updated.


Icons

Icons for general usage. Various sizes will be necessary.
For use in various locations in apps/sites

Currently we defined the following Icon sizes:

16x16px - kilo
24x24px - mega
32x32px - giga
48x48px - tera

So far we're only using the 16 and 24 px one. Let's only implement those for now and see if we even need the bigger ones. Attached one sample svg icon.

Calendar.svg.zip

We do not need a special <Icon> component since we import SVG as React components directly. We could add the sizes as constants somewhere, so keep them consistent and easy to update.


Add ADC class.

#50
I added a PWM class according to the "peripheral class common specifications".
https://github.com/HirohitoHigashi/mruby_io_class_study/blob/main/mruby_io_ADC.md
As you know, mruby-esp32-gpio already has analog_read. I think in the future we should separate the methods from that class. The new class allows you to specify ADC_UNIT_1 and has slightly better performance because you don't have to set the config all over again.
The added mruby-esp32-adc is the following URL. Please review it.
https://github.com/mruby-esp32/mruby-esp32-adc

@pandax381 Thank you for your approve.


Not working in windows cmd prompt

let's plot works well in pycharm and jupyter notebook.
But when I try to run the script in cmd prompt, errors occour:
from lets_plot import *

D:\programfiles\anaconda\lib\site-packages\numpy\__init__.py:143: UserWarning: mkl-service package failed to import, therefore Intel(R) MKL initialization ensuring its correct out-of-the box operation under condition when Gnu OpenMP had already been loaded by Python process is not assured. Please install mkl-service package, see http://github.com/IntelPython/mkl-service
  from . import _distributor_init
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\yuliang18\AppData\Roaming\Python\Python38\site-packages\lets_plot\__init__.py", line 17, in <module>
    from .frontend_context import *
  File "C:\Users\yuliang18\AppData\Roaming\Python\Python38\site-packages\lets_plot\frontend_context\__init__.py", line 6, in <module>
    from ._configuration import *
  File "C:\Users\yuliang18\AppData\Roaming\Python\Python38\site-packages\lets_plot\frontend_context\_configuration.py", line 8, in <module>
    from ._html_contexts import _create_html_frontend_context, _use_isolated_frame
  File "C:\Users\yuliang18\AppData\Roaming\Python\Python38\site-packages\lets_plot\frontend_context\_html_contexts.py", line 7, in <module>
    from ._jupyter_notebook_ctx import JupyterNotebookContext
  File "C:\Users\yuliang18\AppData\Roaming\Python\Python38\site-packages\lets_plot\frontend_context\_jupyter_notebook_ctx.py", line 14, in <module>
    from .. import _kbridge as kbr
  File "C:\Users\yuliang18\AppData\Roaming\Python\Python38\site-packages\lets_plot\_kbridge.py", line 7, in <module>
    import lets_plot_kotlin_bridge
ImportError: DLL load failed while importing lets_plot_kotlin_bridge: 找不到指定的模块。

Environment:

win 64
python 3.8.8
lets plot  2.1
conda install m2w64-toolchain  : done

Hello!
You seem to have two separate Python installations, one from the system default and one from the Anaconda environment. The m2w64-toolchain, which allows Lets-Plot and its dependencies to run normally on the Windows platform, is installed in the Anaconda environment. To check this, simply run the conda activate command in a command line session, then start Python with the python command and try from lets_plot import *.
The same solution for your VScode and RStudio: check your Python interpreter settings - they should point to Python from the Anaconda environment.

@VDovidaytis-HORIS  @alshan
Hello, thanks for replying and sorry for late feedback.
I checked and tested once more about the issues and solutions mentioned.

Only one unique pyhon environments is installed ,e.g. Anaconda environment.

C:\Users\yuliang18>where python
D:\programfiles\anaconda\python.exe

C:\Users\yuliang18>conda info -e
# conda environments:
#
base                  *  D:\programfiles\anaconda

"C:\Users\yuliang18\AppData\Roaming\Python\Python38\site-packages" seems to be the cached folders. I deleted the ...\AppData\Roaming\Python folder and reinstall lets_plot, then run  conda activate base command in a command line session
first, after that I started python and tried from lets_plot import * ,  it went well.
Problems resolved in cmd prompt and VSCODE

3.However , in Rsutdio , the same error still exists.
The interpreter does point to the Python from the Anaconda environment (only anaconda environment is installed).
The Importerror happens when importing lets-plot,while other packages not.
Here is  the test code in Rstudio.
`

reticulate::repl_python()
Python 3.8.8 (D:/programfiles/anaconda/python.exe)
Reticulate 1.22 REPL -- A Python interpreter in R.
Enter 'exit' or 'quit' to exit the REPL and return to R.

import plotly.express as px
from lets_plot import *
ImportError: DLL load failed while importing lets_plot_kotlin_bridge: 鎵句笉鍒版寚瀹氱殑妯″潡銆?
import pandas as pd
`

I tried some measures to resolve the problem in Rstudio.
The existing error is  ImportError: DLL load failed while importing lets_plot_kotlin_bridge .
I found a python script named lets_plot_kotlin_bridge.py in  folderPycharm\python_stubs, so I copied that script to
folder programfiles\anaconda\Lib .
The codes in lets_plot_kotlin_bridge.py are :
`
encoding: utf-8
module lets_plot_kotlin_bridge
from D:\programfiles\anaconda\lib\site-packages\lets_plot_kotlin_bridge.cp38-win_amd64.pyd
by generator 1.147
no doc
no imports
functions
def export_html(*args, **kwargs): # real signature unknown
""" Generates HTML page showing plot. """
pass
def export_svg(*args, **kwargs): # real signature unknown
""" Generates SVG representing plot. """
pass
def generate_html(*args, **kwargs): # real signature unknown
""" Generates HTML and JS sufficient for buidling of interactive plot. """
pass
no classes
variables with complex values
loader = None # (!) real value is '<_frozen_importlib_external.ExtensionFileLoader object at 0x000001DDAFCFF370>'
spec = None # (!) real value is "ModuleSpec(name='lets_plot_kotlin_bridge', loader=<_frozen_importlib_external.ExtensionFileLoader object at 0x000001DDAFCFF370>, origin='D:\\programfiles\\anaconda\\lib\\site-packages\\lets_plot_kotlin_bridge.cp38-win_amd64.pyd')"
`
After that I retried the ploting codes in Rstudio, no  ImportError happened, but not plots showed either . The only result was
<lets_plot.plot.core.PlotSpec object at 0x00000267A65F58E0>
`
import numpy as np
from lets_plot import *
LetsPlot.setup_html()
x = np.linspace(-2 * np.pi, 2 * np.pi, 100)
y = np.sin(x)
ggplot({'x': x, 'y': y}, aes(x='x', y='y')) + geom_point()
<lets_plot.plot.core.PlotSpec object at 0x00000267A65F58E0>
If I stored the plot by a variable, it returned another result: {'text/html': None} `
`
...
p=ggplot({'x': x, 'y': y}, aes(x='x', y='y')) + geom_point()
p.show()
{'text/html': None}
`

I wanna share lets_plot  with my colleges.
Rmarkdown can very efficient,in which, the codes and plots show together in a html document.
If lets_plot doesn't work in Rstudio, it would be a pity.
So, @alshan @VDovidaytis-HORIS ,I wish this issue could be fixed.

Hello, @alshan
Thanks for you reply. Importing issue solved.
I tried
> from IPython.display import display, HTML
> display(HTML("
Hello!
"))

in Rstudio, I didn't render the Hello!  as  other Python IDE did. So I guess  Rstudio can't make it come true at the moment.


Improve support for custom losses in SVI

This PR removes a bit of cruft in SVI so that it's easier to work with custom losses.  In particular, it:

Removes ParamStoreDict.mark_param_active() and related machinery
Replaces that machinery with a poutine.trace in SVI.step so that users can simply define a loss and not worry about moving parameters around
Adds a param_only flag to TraceMessenger that allows poutine.trace to record only parameter sites
Removes the restriction in SVI requiring loss to be an ELBO object
Restores a default value for SVI.loss_and_grads (calling backward on the result of SVI.loss)

The upshot is that now, to create a custom loss, all that's needed is to define it as a function that takes in a model, guide, and any other arguments necessary to compute it and returns a differentiable scalar loss value.  For example:
def simple_elbo(model, guide, *args, **kwargs):
    guide_trace = poutine.trace(guide).get_trace(*args, **kwargs)
    model_trace = poutine.trace(
        poutine.replay(model, trace=guide_trace)).get_trace(*args, **kwargs)
    return -1*(model_trace.log_prob_sum() - guide_trace.log_prob_sum())

svi = SVI(model, guide, optim, loss=simple_elbo)
losses = []
for i in range(N):
    losses.append(svi.step())

if i want to only optimize a certain set of parameters, i would have to block out those sites with poutine.block instead of marking them as inactive right

Yeah, that should just work now as well.


Rethink NifEnv

Right now there is a single NifEnv type, but two different main use cases for a NifEnv.
The use of a NifEnv is a env that is supplied with a NIF system call. This env is used to make terms, send messages and perform other operations in the process that called the NIF.  This env type can never outlive the calling function, and should therefore have a lifetime that reflects that.
The second NifEnv type is a env that is allocated by user code, and that can be used across function calls. This env is fully owned by the user, and should not be limited in lifetime. A env such as this can be used to create terms belonging to that environment, and to send messages.
Potential challenges posed by this change would be that NifTerms should only be usable on the env it's created on.

Progress in the owned_envs branch.


Add cross-platform Motoko Playground canister deployment

This PR implements a "Motoko: Deploy (20 minutes)" command which makes it possible to deploy a local VS Code project to the IC via Motoko Playground:

This feature uses the motoko and ic0 npm packages in place of dfx, allowing prospective IC developers to modify and run local Motoko projects without the need to install anything else on their system. This is especially useful for Windows users who would otherwise need to install WSL for the dfx deploy --playground command.
Progress:

[x] Add VS Code command for deploying to Motoko Playground
[x] Modify deploy logic to use ic0 npm package in place of generated JS bindings
[x] Show Candid UI in side-by-side webview panel
[x] Reuse previous canister when possible
[x] Reuse webview panel for the same canister
[x] Include a right-click deploy context menu action
[x] Add more specific loading and error messages
[x] Limit to one deployment at a time per entry point
[x] Detect invalid Motoko files before starting deployment

Future work:

Optimize proof-of-work algorithm, possibly using Rust / Wasm
Provide a way to specify canister init args

That is cool indeed!


Assertion failed error when running Win10 version

Assertion failed: dummy_versions_.next_ == &dummy_versions_, file c:\users\deepblue1\source\repos\leveldb-mcpe\db\version_set.cc, line 798

I have a similar issue, it worked fine for a few days and just started.  Maybe something timing out, or hanging too long?
Total Time 00:14:47.9427632
Map generation finished!
Your map is at *******
Assertion failed: dummy_versions_.next_ == &dummy_versions_, file c:\users\deepblue1\source\repos\leveldb-mcpe\db\version_set.cc, line 798
With the error, Windows shows PapyrusCS has Stopped working.
OS for me is Server 2016,  Will Try Windows 10 next chance I get to see if it's an OS issue.
I didn't ask for it to set the version.  I notice It's Version_Set.cc
papyruscs --world "\db" --output "" --playericons "true" -d "0"


process ml-1m dataset

Hi, many thanks for your amazing work. When I checked the ml-1m dataset, I found that it has been already processed, could you share the methods about how you process this dataset (or the mapping relation between the original user/item id and mapped user/item id)?

Hi, many thanks for your amazing work. When I checked the ml-1m dataset, I found that it has been already processed, could you share the methods about how you process this dataset (or the mapping relation between the original user/item id and mapped user/item id)?

Hi Yang, thx for your comment, the preprocessed datasets are borrowed from original tensorflow implementation, here's a sample of data preprocessing code in their repo: https://github.com/kang205/SASRec/blob/master/data/DataProcessing.py and here's the discussion about the ml-1m preprocessing issue. It could be also be easy done by writing our own preprocessing script as we just need to sort the ml-1m records by user_id as major key and then timestamp as second key, then re-assign id to users to get the pre-processed data.

Hi, many thanks for your amazing work. When I checked the ml-1m dataset, I found that it has been already processed, could you share the methods about how you process this dataset (or the mapping relation between the original user/item id and mapped user/item id)?

Hi Yang, thx for your comment, the preprocessed datasets are borrowed from original tensorflow implementation, here's a sample of data preprocessing code in their repo: https://github.com/kang205/SASRec/blob/master/data/DataProcessing.py and here's the discussion about the ml-1m preprocessing issue. It could be also be easy done by writing our own preprocessing script as we just need to sort the ml-1m records by user_id as major key and then timestamp as second key, then re-assign id to users to get the pre-processed data.

Yeah, because some other author would remove some cold users/items, I do not know if you do the same way, so I asked this question. So in the ml-1m dataset, you just sort the records by timestamp?

Hi, many thanks for your amazing work. When I checked the ml-1m dataset, I found that it has been already processed, could you share the methods about how you process this dataset (or the mapping relation between the original user/item id and mapped user/item id)?

Hi Yang, thx for your comment, the preprocessed datasets are borrowed from original tensorflow implementation, here's a sample of data preprocessing code in their repo: https://github.com/kang205/SASRec/blob/master/data/DataProcessing.py and here's the discussion about the ml-1m preprocessing issue. It could be also be easy done by writing our own preprocessing script as we just need to sort the ml-1m records by user_id as major key and then timestamp as second key, then re-assign id to users to get the pre-processed data.

Yeah, because some other author would remove some cold users/items, I do not know if you do the same way, so I asked this question. So in the ml-1m dataset, you just sort the records by timestamp?

Actually I reused a lot of components of original tf implementation, including the pre-processed datasets, they seems performed code users/items(with less than 3 appear time) in train/va/test set generation rather than in raw data preprocessing, pls see https://github.com/kang205/SASRec/blob/d0b823a1b2845ea90b090eaf6d3386810005b83a/util.py#L27 , but your question is reasonable and quite good, as original ml-1m has 1000209 ratings but the dataset used currently only has 999611 rows, maybe due to duplicates etc. I strongly encourge trying your own preprocessing scripts for ml-1m raw data if its a big concern for you(yeah, just sort the ratings by (user, timestamp), re-assign ids to users should just be enough)  personally I do have the plan to try my own data preprocessing scripts to validate it.

Hi, many thanks for your amazing work. When I checked the ml-1m dataset, I found that it has been already processed, could you share the methods about how you process this dataset (or the mapping relation between the original user/item id and mapped user/item id)?

Hi Yang, thx for your comment, the preprocessed datasets are borrowed from original tensorflow implementation, here's a sample of data preprocessing code in their repo: https://github.com/kang205/SASRec/blob/master/data/DataProcessing.py and here's the discussion about the ml-1m preprocessing issue. It could be also be easy done by writing our own preprocessing script as we just need to sort the ml-1m records by user_id as major key and then timestamp as second key, then re-assign id to users to get the pre-processed data.

Yeah, because some other author would remove some cold users/items, I do not know if you do the same way, so I asked this question. So in the ml-1m dataset, you just sort the records by timestamp?

Actually I reused a lot of components of original tf implementation, including the pre-processed datasets, they seems performed code users/items(with less than 3 appear time) in train/va/test set generation rather than in raw data preprocessing, pls see https://github.com/kang205/SASRec/blob/d0b823a1b2845ea90b090eaf6d3386810005b83a/util.py#L27 , but your question is reasonable and quite good, as original ml-1m has 1000209 ratings but the dataset used currently only has 999611 rows, maybe due to duplicates etc. I strongly encourge trying your own preprocessing scripts for ml-1m raw data if its a big concern for you(yeah, just sort the ratings by (user, timestamp), re-assign ids to users should just be enough) personally I do have the plan to try my own data preprocessing scripts to validate it.

And after I ran your codes, its results were slightly below the results of the paper, so are "--maxlen=200 --dropout_rate=0.2"  the optimal hyper-parameters? Could you send me the optimal hyper-parameters? Or maybe there are any other reasons?

parameters

Pls refer to the original paper for optimal hyper-parameters, I'm not the paper author, just reproducing the work in PyTorch for personal use. And its also a good point to mention that results were slightly below the tf implementation, it takes more epochs to achieve comparable performance with original tf implementation which is reasonable as tf implemention's multi-head attention layer suffers (bit) leaky attention weights issue. I would really appreciate it if you could find some way to make it coverage faster.

parameters

Pls refer to the original paper for optimal hyper-parameters, I'm not the paper author, just reproducing the work in PyTorch for personal use. And its also a good point to mention that results were slightly below the tf implementation, it takes more epochs to achieve comparable performance with original tf implementation which is reasonable as tf implemention's multi-head attention layer suffers (bit) leaky attention weights issue. I would really appreciate it if you could find some way to make it coverage faster.

I checked the hyper-parameters again, I found that in your codes, the number of negative-sample is "maxlen" (which was set 200), while the number of negative-sample is 100 reported in the paper, so maybe it is a reason that causes the different results?

@ZuoxiYang 200 is the seq length, 100 negative sample number is hard-coded in evaluate function: https://github.com/pmixer/SASRec.pytorch/blob/4a853a6f956ca4ebcd802df45a9d5ee7c291d3d5/utils.py#L135 the pytorch version converges slower than original version although I tried to keep the details as consistent as possible, pls just train more iterations(I trained 601 epochs rather than 201 by default, current assumption is after causality issue has been fixed the model should converge slower as expected, meanwhile, as negative samples are draw randomly, there's inherent uncertainty in implementation, we can not expect exactly same results as reported in the paper).

@ZuoxiYang 200 is the seq length, 100 negative sample number is hard-coded in evaluate function:
https://github.com/pmixer/SASRec.pytorch/blob/4a853a6f956ca4ebcd802df45a9d5ee7c291d3d5/utils.py#L135
the pytorch version converges slower than original version although I tried to keep the details as consistent as possible, pls just train more iterations(I trained 601 epochs rather than 201 by default, current assumption is after causality issue has been fixed the model should converge slower as expected, meanwhile, as negative samples are draw randomly, there's inherent uncertainty in implementation, we can not expect exactly same results as reported in the paper).
Thanks! I agree with your opinion. I also have changed the iterations as 1001, then the results were improved slightly. But it always slightly below the results of the paper. I will take more experiments.

@ZuoxiYang 200 is the seq length, 100 negative sample number is hard-coded in evaluate function:
https://github.com/pmixer/SASRec.pytorch/blob/4a853a6f956ca4ebcd802df45a9d5ee7c291d3d5/utils.py#L135
the pytorch version converges slower than original version although I tried to keep the details as consistent as possible, pls just train more iterations(I trained 601 epochs rather than 201 by default, current assumption is after causality issue has been fixed the model should converge slower as expected, meanwhile, as negative samples are draw randomly, there's inherent uncertainty in implementation, we can not expect exactly same results as reported in the paper).

And in your codes, the negative sample would be used for both model training and evaluation?

@ZuoxiYang 200 is the seq length, 100 negative sample number is hard-coded in evaluate function:
https://github.com/pmixer/SASRec.pytorch/blob/4a853a6f956ca4ebcd802df45a9d5ee7c291d3d5/utils.py#L135
the pytorch version converges slower than original version although I tried to keep the details as consistent as possible, pls just train more iterations(I trained 601 epochs rather than 201 by default, current assumption is after causality issue has been fixed the model should converge slower as expected, meanwhile, as negative samples are draw randomly, there's inherent uncertainty in implementation, we can not expect exactly same results as reported in the paper).
Thanks! I agree with your opinion. I also have changed the iterations as 1001, then the results were improved slightly. But it always slightly below the results of the paper. I will take more experiments.

Hi @ZuoxiYang , have you achieve the similar results?
If yes, can you share you parameters.
Thanks!

@ZuoxiYang 200 is the seq length, 100 negative sample number is hard-coded in evaluate function:
https://github.com/pmixer/SASRec.pytorch/blob/4a853a6f956ca4ebcd802df45a9d5ee7c291d3d5/utils.py#L135
the pytorch version converges slower than original version although I tried to keep the details as consistent as possible, pls just train more iterations(I trained 601 epochs rather than 201 by default, current assumption is after causality issue has been fixed the model should converge slower as expected, meanwhile, as negative samples are draw randomly, there's inherent uncertainty in implementation, we can not expect exactly same results as reported in the paper).
Thanks! I agree with your opinion. I also have changed the iterations as 1001, then the results were improved slightly. But it always slightly below the results of the paper. I will take more experiments.

Hi @ZuoxiYang , have you achieve the similar results? If yes, can you share you parameters.
Thanks!

not sure whether he/she did, it's way too far from now.
the perf issue should have been resolved by changing weight init method https://github.com/pmixer/SASRec.pytorch/commit/1d8aaa2dcf3837b0518692faee8af577cc166188
though the results would still be slightly different for each run, due to randomness in weight initialization and negative sampling.

@ZuoxiYang 200 is the seq length, 100 negative sample number is hard-coded in evaluate function:
https://github.com/pmixer/SASRec.pytorch/blob/4a853a6f956ca4ebcd802df45a9d5ee7c291d3d5/utils.py#L135
the pytorch version converges slower than original version although I tried to keep the details as consistent as possible, pls just train more iterations(I trained 601 epochs rather than 201 by default, current assumption is after causality issue has been fixed the model should converge slower as expected, meanwhile, as negative samples are draw randomly, there's inherent uncertainty in implementation, we can not expect exactly same results as reported in the paper).

And in your codes, the negative sample would be used for both model training and evaluation?

not sure what "the negative sample would be used for both model training and evaluation" means, negative sampling is a common approach in recsys research work, if want more stable results, just rank all items like in https://github.com/pmixer/TiSASRec.debug


Add serverless DW platform

Fixes #24115
Add SqlServerless target platform
Extract project from serverless DW
Tested locally

Can you also please verify that the master system dacpac package reference is working as expected for synapse serverless? It should be handled by the current version of Microsoft.SqlServer.DacFx.Projects in STS, but would be good to verify now that this target platform is available.

Unfortunately it looks like it's broken, the reference is added like this:
    <PackageReference Include="Microsoft.SqlServer.Dacpacs.Master">
      <Version>Serverless.0.0</Version>
      <GeneratePathProperty>True</GeneratePathProperty>
      <DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
    </PackageReference>

I added the master.dacpac directly for Serverless to ArtifactReference works now. I'll look in SqlProj code to see where I need to update

Can you also please verify that the master system dacpac package reference is working as expected for synapse serverless? It should be handled by the current version of Microsoft.SqlServer.DacFx.Projects in STS, but would be good to verify now that this target platform is available.

Unfortunately it looks like it's broken, the reference is added like this:
    <PackageReference Include="Microsoft.SqlServer.Dacpacs.Master">
      <Version>Serverless.0.0</Version>
      <GeneratePathProperty>True</GeneratePathProperty>
      <DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
    </PackageReference>

I added the master.dacpac directly for Serverless to ArtifactReference works now. I'll look in SqlProj code to see where I need to update

I'm guessing it broke when the SqlPlatformNames was updated since the sql projects code is looking for the platform name SqlServerless, so hopefully just a small update needed to get it working again.


Unable to re-assign any Tickets to another Agent since v0.2.0

Edit Ticket > The Agent drop down box always says: Auto Select
I'm unable see or select other Agents for manual ticket re-assignment.

Have tried logged in as 'Admin who is NOT a member of category he cant change it.
Have tried logged in as 'Admin who IS a member of category he cant change it.
Have tried logged in as Responsible Agent who is member of category he cant change it.
Have tried logged in as Agent who is member of category he cant change it.

I'm on it. Submitting a PR then checking.

Do you have an agent in that category?

Yes I have 4 agents and one is also admin.

Can you please pull my PR and tell me if this fixes the issue? You can pull FusionDesign/master branch

The only real changes are to Agent.php and TicketController.php

I pull it, installed it, rolled back and ran migrations and seeding but still not working.

Which branch? I can't duplicate this at all on master.

So your saying its working on the master branch?

For me it is, I'm not sure how to duplicate this issue

Models/Agent.php is causing me the issue: where('ticketit_agent', '1')->
When I remove it, it works
/**
 * list of all agents and returning lists array of id and name
 * @param integer $cat_id
 * @return bool
 */
public function scopeAgentsLists($query, $cat_id = null)
{
    if ($cat_id == null)
        return $query->where('ticketit_agent', '1')->lists('name', 'id')->toArray();

//        return Category::find($cat_id)->agents->where('ticketit_agent', '1')->lists('name', 'id')->toArray();
return Category::find($cat_id)->agents->lists('name', 'id')->toArray();
}

Where is ticketit_agent located? I can't tell what's is looking for or where it's looking for it.

@fishmad in Migrations/2015_07_22_123254_alter_users_table.php
Schema::table('users', function (Blueprint $table) {
    $table->boolean('ticketit_admin')->default(0);
    $table->boolean('ticketit_agent')->default(0);
});

And I just put
where('ticketit_agent', '1')

to make sure they are agents (refer to #33)

Ah so its in the users table, so this fixed the issue of auto assigning to non agents but for me its also stopping the ability to reassign to another agent - this is effecting v0.1.0 for me

I will fix that

@fishmad I have made some changes, hope this resolves this issue and this one #48

I can once again select agents again for ticket assignment. yay
I have tested the new master branch v0.1 and v0.2 and confirm its now working.


[BC Idea]: Move Dutch functionality Check Purchase Amounts to W1

BC Idea Link
https://experience.dynamics.com/ideas/idea/?ideaid=5d3445c3-eab2-ef11-95f5-000d3a04161c
Description
Right now there is a Dutch functional Check Purchase Amounts.
https://learn.microsoft.com/en-us/dynamics365/business-central/localfunctionality/netherlands/check-purchase-amounts
this is not a Dutch but more a W1 feature. When that is build in we need some changes to make it work:
Make VAT difference available in the check
Make is optional (not by default on)
UI must be the same when it is off
I will provide the implementation for this BC Idea

[x] I will provide the implementation for this BC Idea

Sorry wrong repo


Enhanced System Observability for Multi-Server Environments (Unified Endpoints?)

As Ollama adoption grows, the lack of comprehensive system metrics makes it challenging to meet standard operational requirements - monitoring, alerting, and planning across development, staging, and production environments.
This can also prevent a wider adoption in commercial and production applications.
While the current endpoints (/api/version, /api/tags, /api/ps) provide basic information, consolidating and expanding these into a single observability endpoint would significantly improve monitoring and management capabilities,
Proposed: New /api/info endpoint returning unified system metrics, like:
{
  "version": "0.1.16",
  "system": {
    "cpu": {
      "cores": 16,
      "threads": 32,
      "usage_percent": 45.2,
      ...
    },
    "memory": {
      "total_bytes":<PHONE_NUMBER>8,
      "used_bytes":<PHONE_NUMBER>8,
      ...
    },
    "gpus": [
      {
        "name": "NVIDIA GeForce RTX 4090",
        "memory": {
          "total_bytes":<PHONE_NUMBER>6,
          "used_bytes":<PHONE_NUMBER>0,
          ...
        },
      }
    ]
  },
  "models": {
    "loaded": [...],
    "available": [...],
  },
}

This enhancement would:

Enable proper monitoring and alerting in production environments
Simplify capacity planning across deployments
Allow integration with standard observability tools

To the community:

What other metrics or stats would be useful to have?
How do you currently monitor or observe your running Ollama instances?

Agree. This would be very helpful for enterprise type deployments, but also helpful for power users, and potentially troubleshooting.

Prometheus and Grafana is wildly used in commercial and production and the standard endpoint for that is /metrics. In order for Prometheus to scrape that endpoint, the format should be like this instead of json.

In order for Prometheus to scrape that endpoint, the format should be like this instead of json.

Thank you for the feedback!
That looks way more detailed, of course.
I still think a simple JSON response could still add a ton of value (and would be easier to implement by combining the existing endpoints).
Someone cue in the "why not both" meme, please...

https://github.com/ollama/ollama/issues/3144


Add Campaigns retrieval to LockingApi datasource

Summary
This PR adds the datasource layer part for getting a Page of Campaigns from the Safe Locking Service.
Changes

Adds a Campaign entity and schema.
Adds a new getCampaigns function to the LockingApi datasource.

(Note: This is just a draft, it will be reviewed once  until is merged on the Safe Locking Service codebase.)

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

11 of 11 (100.0%)  changed or added relevant lines in 3 files are covered.
45 unchanged lines in 11 files lost coverage.
Overall coverage decreased (-0.5%) to 92.249%

Files with Coverage Reduction
New Missed Lines
%

src/routes/data-decode/data-decoded.service.ts
1
83.33%

src/datasources/queues/queues-api.service.ts
1
95.0%

src/routes/about/about.controller.ts
1
87.5%

src/routes/about/about.service.ts
1
30.77%

src/datasources/network/network.module.ts
1
95.0%

src/routes/data-decode/data-decoded.controller.ts
1
90.0%

src/routes/cache-hooks/cache-hooks.service.ts
4
94.51%

src/datasources/queues/queues-api.shutdown.hook.ts
5
37.5%

src/datasources/cache/cache.module.ts
6
56.25%

src/datasources/queues/queues-api.module.ts
12
40.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.5%

Covered Lines:
6911

Relevant Lines:
7220

💛  - Coveralls


Possible to expose option to configure http-cache?

Howdy. Attempting to use this validator in an AWS Lambda env causes issues with attempts to write to disk. I believe the cause is in json-schema-core's usage of the "make-fetch-happen" library, where it codes as follows:
const fetch = makeFetchHappen.defaults({ cacheManager: "./http-cache" });
It would be excellent if the local location of this cache (and the option to disable it completely) would be exposed as configurable quantities in your lib. Love it otherwise!

Now that I think about it, I'm pretty sure I don't need that feature at all any more. It's a remnant of an early architecture that ended up changing. I'm looking into it. Thanks.

I went ahead and just removed it altogether. It wasn't serving any useful purpose any more. The only change was in the json-schema-core package, so you'll need to update with --depth 1 to get the changes.


Run file install.sh in first build step. System are represent /bin/sh: 1: MMD: not found.

I was executed file install.sh. System show and error MMD: not found. An error show as below message.
Ign http://dl.google.com stable/main Translation-en
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
bridge-utils is already the newest version.
curl is already the newest version.
make is already the newest version.
nasm is already the newest version.
clang-3.7 is already the newest version.
qemu is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.
>>> Updating git-tags

>>> IncludeOS tarball exists - extracting to /home/

>>> Installing submodules
~/sdc1/workspacecpp/IncludeOS ~/sdc1/workspacecpp/IncludeOS
~/sdc1/workspacecpp/IncludeOS

>>> Building IncludeOS
~/sdc1/workspacecpp/IncludeOS/src ~/sdc1/workspacecpp/IncludeOS

>> Assembling bootloader
nasm -f bin -o bootloader boot/bootloader.asm

MMD -target i686-elf -mstackrealign -fstack-protector-all -msse3 -D_STACK_GUARD_VALUE_=15583 -O2 -DNO_DEBUG=1 -DOS_TERMINATE_ON_CONTRACT_VIOLATION -D_GNU_SOURCE -Wall -Wextra  -c -m32 -std=c++14 -I../api/sys -I/home/rchatsiri/IncludeOS_install/libcxx/include  -I/home/rchatsiri/IncludeOS_install/newlib/include  -Iinclude -I../api -I../mod/GSL/include  -D_LIBCPP_HAS_NO_THREADS=1 -DOS_VERSION="\"v0.8.1-3-g84605c1-dirty\"" -o crt/cxxabi/cxa_virtual.o crt/cxxabi/cxa_virtual.cpp
/bin/sh: 1: MMD: not found
Makefile:206: recipe for target 'crt/cxxabi/cxa_virtual.o' failed
make: [crt/cxxabi/cxa_virtual.o] Error 127 (ignored)

It looks like the compiler variable is not getting set. On what system is this?

It's due to clang-3.7. We should probably add support for that as well - currently it's looking for 3.6 or 3.8.

Yea, would be great if you could post what system you're on and what branch you're building and we'll try to help you sort it out. Thanks for posting btw!

It should version clang-3.7 because script has improved a script to version 3.7. My package management has a problem. It's cannot use  version 3.6.  I'm check system enviroment with uname -a.  Result as
Linux my-computer-name 4.2.0-27-generic #32~14.04.1-Ubuntu SMP Fri Jan 22 15:32:26 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux.

A result after build with soruce from resposity. It's show as
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
bridge-utils is already the newest version.
curl is already the newest version.
make is already the newest version.
nasm is already the newest version.
qemu is already the newest version.
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 clang-3.6 : Depends: libclang1-3.6 (= 1:3.6.2-1) but it is not going to be installed
             Depends: libllvm3.6v5 but it is not going to be installed
             Depends: libclang-common-3.6-dev (= 1:3.6.2-1) but it is not going to be installed
             Recommends: llvm-3.6-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
>>> Updating git-tags

>>> IncludeOS tarball exists - extracting to /home/rchatsiri

>>> Installing submodules
~/sdc1/workspacecpp/IncludeOS ~/sdc1/workspacecpp/IncludeOS
~/sdc1/workspacecpp/IncludeOS

>>> Building IncludeOS
~/sdc1/workspacecpp/IncludeOS/src ~/sdc1/workspacecpp/IncludeOS

>> Assembling bootloader
nasm -f bin -o bootloader boot/bootloader.asm

MMD -target i686-elf -mstackrealign -fstack-protector-all -msse3 -D_STACK_GUARD_VALUE_=15583 -O2 -DNO_DEBUG=1 -DOS_TERMINATE_ON_CONTRACT_VIOLATION -D_GNU_SOURCE -Wall -Wextra  -c -m32 -std=c++14 -I../api/sys -I/home/rchatsiri/IncludeOS_install/libcxx/include  -I/home/rchatsiri/IncludeOS_install/newlib/include  -Iinclude -I../api -I../mod/GSL/include  -D_LIBCPP_HAS_NO_THREADS=1 -DOS_VERSION="\"v0.8.1-3-g84605c1-dirty\"" -o crt/cxxabi/cxa_virtual.o crt/cxxabi/cxa_virtual.cpp
/bin/sh: 1: MMD: not found
Makefile:206: recipe for target 'crt/cxxabi/cxa_virtual.o' failed
make: [crt/cxxabi/cxa_virtual.o] Error 127 (ignored)

The result after source doe built with a master branch from the repository.
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
bridge-utils is already the newest version.
curl is already the newest version.
make is already the newest version.
nasm is already the newest version.
qemu is already the newest version.
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
clang-3.6 : Depends: libclang1-3.6 (= 1:3.6.2-1) but it is not going to be installed
Depends: libllvm3.6v5 but it is not going to be installed
Depends: libclang-common-3.6-dev (= 1:3.6.2-1) but it is not going to be installed
Recommends: llvm-3.6-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Updating git-tags

IncludeOS tarball exists - extracting to /home/rchatsiri

Installing submodules
~/sdc1/workspacecpp/IncludeOS ~/sdc1/workspacecpp/IncludeOS
~/sdc1/workspacecpp/IncludeOS

Building IncludeOS
~/sdc1/workspacecpp/IncludeOS/src ~/sdc1/workspacecpp/IncludeOS

Assembling bootloader
nasm -f bin -o bootloader boot/bootloader.asm

MMD -target i686-elf -mstackrealign -fstack-protector-all -msse3 -D_STACK_GUARD_VALUE_=15583 -O2 -DNO_DEBUG=1 -DOS_TERMINATE_ON_CONTRACT_VIOLATION -D_GNU_SOURCE -Wall -Wextra  -c -m32 -std=c++14 -I../api/sys -I/home/rchatsiri/IncludeOS_install/libcxx/include  -I/home/rchatsiri/IncludeOS_install/newlib/include  -Iinclude -I../api -I../mod/GSL/include  -D_LIBCPP_HAS_NO_THREADS=1 -DOS_VERSION=""v0.8.1-3-g84605c1-dirty"" -o crt/cxxabi/cxa_virtual.o crt/cxxabi/cxa_virtual.cpp
/bin/sh: 1: MMD: not found
Makefile:206: recipe for target 'crt/cxxabi/cxa_virtual.o' failed
make: [crt/cxxabi/cxa_virtual.o] Error 127 (ignored)

Right, so that could be because you already have clang-3.7 installed - at least there are conflicting dependencies between 3.6 and some other version. I think we should also support clang 3.7 so you could try changing the lines I mentioned to:
CC  = $(shell command -v clang-3.8 || command -v clang-3.7 || command -v clang-3.6)
CPP = $(shell command -v clang++-3.8 || command -v clang++-3.7 || command -v clang++-3.6)

If it works feel free to do a PR with those changes to dev.

Look like it's will be done. I'm not sure in a result message Makefile:7: recipe for target 'vmbuild.o' failed from install.sh executed command line.
>> Installing...
cp bootloader /home/rchatsiri/IncludeOS_install
cp os.a /home/rchatsiri/IncludeOS_install
cp libc++abi.a /home/rchatsiri/IncludeOS_install/libcxx
cp crt/crti.o /home/rchatsiri/IncludeOS_install/crt
cp crt/crtn.o /home/rchatsiri/IncludeOS_install/crt
cp -r ../api /home/rchatsiri/IncludeOS_install/
cp linker.ld /home/rchatsiri/IncludeOS_install/
# Memdisk related
mkdir -p /home/rchatsiri/IncludeOS_install/memdisk
cp memdisk/* /home/rchatsiri/IncludeOS_install/memdisk/
# Seed related
cp util/service_name.cpp /home/rchatsiri/IncludeOS_install
cp seed/Makefile /home/rchatsiri/IncludeOS_install/Makeseed
# Eexternal dependencies related
mkdir -p /home/rchatsiri/IncludeOS_install/mod/
cp -r ../mod/GSL /home/rchatsiri/IncludeOS_install/mod

Done!
~/sdc1/workspacecpp/IncludeOS

>>> Compiling the vmbuilder, which makes a bootable vm out of your service
~/sdc1/workspacecpp/IncludeOS/vmbuild ~/sdc1/workspacecpp/IncludeOS
/bin/sh: 1: -c: not found
Makefile:7: recipe for target 'vmbuild.o' failed
make: [vmbuild.o] Error 127 (ignored)
>>> Building vmbuilder
make: vmbuild.o: Command not found
Makefile:10: recipe for target 'all' failed
make: *** [all] Error 127
cp: cannot stat ‘vmbuild’: No such file or directory
~/sdc1/workspacecpp/IncludeOS

>>> Creating a virtual network, i.e. a bridge. (Requires sudo)
device include0 already exists; can't create bridge with the same name

>>> Done! Test your installation with ./test.sh

Oh, right, there are two more makefiles that will need the same update: ./vmbuild/Makefile for building the vmbuilder tool which combines the bootloader and elf-binary into a bootable image and ./src/seed/Makefile, which is used to build all services and tests. Look for the exact same mechanisms there and update the same way.
After that you can either run install.sh again, or simply do ../IncludeOS/src/ $ make && make install. After that the ./test.shshould produce and start a bootable image.

Also seed/Makelib

Okay! it's done in step ./install.sh, but service execute file cannot load. After ./test.sh run on system. Programs show an error as
:~/sdc1/workspacecpp/IncludeOS$ ./test.sh
~/sdc1/workspacecpp/IncludeOS/examples/demo_service ~/sdc1/workspacecpp/IncludeOS

>> Compiling the service
target i686-elf -mstackrealign -fstack-protector-all -msse3 -O2 -Wall -Wextra  -c -m32 -std=c++14 -I/home/rchatsiri/IncludeOS_install/libcxx/include -I/home/rchatsiri/IncludeOS_install/api/sys -I/home/rchatsiri/IncludeOS_install/newlib/include -I/home/rchatsiri/IncludeOS_install/api -I/home/rchatsiri/IncludeOS_install/mod/GSL/include  -D_LIBCPP_HAS_NO_THREADS=1 -D_GNU_SOURCE -o service.o service.cpp
make: target: Command not found
/home/rchatsiri/IncludeOS_install/Makeseed:113: recipe for target 'service.o' failed
make: [service.o] Error 127 (ignored)
target i686-elf -mstackrealign -fstack-protector-all -msse3 -O2 -Wall -Wextra  -c -m32 -std=c++14 -I/home/rchatsiri/IncludeOS_install/libcxx/include -I/home/rchatsiri/IncludeOS_install/api/sys -I/home/rchatsiri/IncludeOS_install/newlib/include -I/home/rchatsiri/IncludeOS_install/api -I/home/rchatsiri/IncludeOS_install/mod/GSL/include  -D_LIBCPP_HAS_NO_THREADS=1 -D_GNU_SOURCE -DSERVICE_NAME="\"IncludeOS Demo Service\"" -o .service_name.o /home/rchatsiri/IncludeOS_install/service_name.cpp
/bin/sh: 1: target: not found
/home/rchatsiri/IncludeOS_install/Makeseed:117: recipe for target '.service_name.o' failed
make: [.service_name.o] Error 127 (ignored)

>> Linking service with OS
ld -nostdlib -melf_i386 -N --script=/home/rchatsiri/IncludeOS_install/linker.ld /home/rchatsiri/IncludeOS_install/crt/crtbegin.o /home/rchatsiri/IncludeOS_install/crt/crti.o service.o .service_name.o /home/rchatsiri/IncludeOS_install/os.a /home/rchatsiri/IncludeOS_install/libcxx/libc++.a /home/rchatsiri/IncludeOS_install/libcxx/libc++abi.a /home/rchatsiri/IncludeOS_install/os.a /home/rchatsiri/IncludeOS_install/newlib/libc.a /home/rchatsiri/IncludeOS_install/newlib/libm.a /home/rchatsiri/IncludeOS_install/libgcc/libgcc.a /home/rchatsiri/IncludeOS_install/crt/crtend.o /home/rchatsiri/IncludeOS_install/crt/crtn.o  -o IncludeOS_Demo_Service
ld: cannot find service.o: No such file or directory
ld: cannot find .service_name.o: No such file or directory
/home/rchatsiri/IncludeOS_install/Makeseed:128: recipe for target 'service' failed
make: *** [service] Error 1

INSTALL FAILED ON COMMAND: make

In directory IncludeOS_install/  have  subdirectory and file such : pi,bootloader,crt,etc,libcxx,libgcc,linker.ld,Makeseed,memdisk,mod,newlib,os.a,service_name.cpp and vmbuild. I can exectued ELF file vmbuild completed.
~/IncludeOS_install$ ./vmbuild --help
Create a bootable disk image for IncludeOS.
Usage: vmbuild <bootloader> <service_binary> [-test]

It looks like it's the same problem where CC and CXX/CPP is not set.
Also test.sh needs a set -e so that it stops when something bad happens, so it won't try to link when compilation fails.

File name src/seed/Makelib didn't contain on directory. I found file name Makefile only.

It could be that you have already solved the problem, but the scripts have to be copied into the installation folder for things to work. I hope that it would be enough to simply do "make install" from the src folder. If that isn't enough, maybe try copy_scripts.sh from etc.

Yes @rchatsiri it's src/seed/Makefile that needs to be changed as well. It gets renamed to Makeseed when it gets copied to the installation folder.

@rchatsiri did you resolve the issue?

@alfred-bratterud, @fwsGonzo   I found the method to handle an error after ./run.sh because run.sh represent the message
$./run.sh
>> Compiling the service
target i686-elf -mstackrealign -fstack-protector-all -msse3 -O2 -Wall -Wextra  -c -m32 -std=c++14 -I/home/rchatsiri/IncludeOS_install/libcxx/include -I/home/rchatsiri/IncludeOS_install/api/sys -I/home/rchatsiri/IncludeOS_install/newlib/include -I/home/rchatsiri/IncludeOS_install/api -I/home/rchatsiri/IncludeOS_install/mod/GSL/include /home/rchatsiri/IncludeOS_install/api -D_LIBCPP_HAS_NO_THREADS=1 -D_GNU_SOURCE -o service.o service.cpp
make: target: Command not found

In the last comment, I have to use the Clang version 3.7 but Makeseed file on directory ~/IncludeOS_install/ didn't update to version 3.7.
CC  = $(shell command -v clang-3.8 || command -v clang-3.7 ||command -v clang-3.6) -target i686-elf
CPP = $(shell command -v clang++-3.8 || command -v clang-3.7 ||command -v clang++-3.6) -target i686-elf

In build steps after adding clang-3.7 command of shell script to Makeseed. Run.sh can compiles service code on the system not show an error message.  The Message below shows success on build steps.
>> Compiling the service
/usr/bin/clang-3.7 -target i686-elf -mstackrealign -fstack-protector-all -msse3 -O2 -Wall -Wextra  -c -m32 -std=c++14 -I/home/rchatsiri/IncludeOS_install/libcxx/include -I/home/rchatsiri/IncludeOS_install/api/sys -I/home/rchatsiri/IncludeOS_install/newlib/include -I/home/rchatsiri/IncludeOS_install/api -I/home/rchatsiri/IncludeOS_install/mod/GSL/include /home/rchatsiri/IncludeOS_install/api -D_LIBCPP_HAS_NO_THREADS=1 -D_GNU_SOURCE -o service.o service.cpp
clang: warning: /home/rchatsiri/IncludeOS_install/api: 'linker' input unused
/usr/bin/clang-3.7 -target i686-elf -mstackrealign -fstack-protector-all -msse3 -O2 -Wall -Wextra  -c -m32 -std=c++14 -I/home/rchatsiri/IncludeOS_install/libcxx/include -I/home/rchatsiri/IncludeOS_install/api/sys -I/home/rchatsiri/IncludeOS_install/newlib/include -I/home/rchatsiri/IncludeOS_install/api -I/home/rchatsiri/IncludeOS_install/mod/GSL/include /home/rchatsiri/IncludeOS_install/api -D_LIBCPP_HAS_NO_THREADS=1 -D_GNU_SOURCE -DSERVICE_NAME="\"My IncludeOS Service\"" -o .service_name.o /home/rchatsiri/IncludeOS_install/service_name.cpp
clang: warning: /home/rchatsiri/IncludeOS_install/api: 'linker' input unused

>> Linking service with OS
ld -nostdlib -melf_i386 -N --script=/home/rchatsiri/IncludeOS_install/linker.ld /home/rchatsiri/IncludeOS_install/crt/crtbegin.o /home/rchatsiri/IncludeOS_install/crt/crti.o service.o .service_name.o /home/rchatsiri/IncludeOS_install/os.a /home/rchatsiri/IncludeOS_install/libcxx/libc++.a /home/rchatsiri/IncludeOS_install/libcxx/libc++abi.a /home/rchatsiri/IncludeOS_install/os.a /home/rchatsiri/IncludeOS_install/newlib/libc.a /home/rchatsiri/IncludeOS_install/newlib/libm.a /home/rchatsiri/IncludeOS_install/libgcc/libgcc.a /home/rchatsiri/IncludeOS_install/crt/crtend.o /home/rchatsiri/IncludeOS_install/crt/crtn.o  -o IncludeOS_service

>> Building IncludeOS_service.img
/home/rchatsiri/IncludeOS_install/vmbuild /home/rchatsiri/IncludeOS_install/bootloader IncludeOS_service

Creating VM disk image './IncludeOS_service.img' where N = 2
Size of bootloader:	 512
Size of service: 	1919072 bytes
Total disk size: 	1920000 bytes, => 3750 sectors.
Creating disk of size: => 3752 sectors
=> 1921024 bytes
Read 512 bytes from boot image
Read 1919072 bytes from service image
Reading ELF headers...
Signature: ELF
Type:  ELF Executable
Machine: Intel 80386
Version: 1
Entry point: 0x200210
Number of program headers: 2
Program header offset: 34
Number of section headers: 19
Section header offset: 1d4478
Size of ELF-header: 34 bytes

Fetching offset of section .text (the service starting point)
Starting at pheader 1, phys.addr: 0x200074
Applying magic signature: 0xFA7CA7
Data currently at location: 1d4c00
Location on image: 0x1d4c00
Wrote 1921024 bytes => 3752 sectors to IncludeOS_service.img

Hi @rchatsiri so you were able to build it, that's good to hear. The changes to ./src/seed/Makefile gets copied once you run ./src/$ make install. I appreciate your feedback - let me know if you want to do a PR with the updates to the three makefiles, otherwise I can do it. Don't hesitate to ask if there's anything else we can do to help!


Is there a way to get the exact/approximate time at which my story was seen by each viewer?

I wanna extract the list of all the viewers of my story along with the time at which they viewed my story. Is this possible?

Instagram states in their help section to hold this information available for 48 hours. However, it is unlikely that we can get this information through the web API. At the moment Instaloader does not provide any information about own stories.

But we can get just the list of accounts who have viewed my story. Right?

But we can get just the list of accounts who have viewed my story. Right?

Can we?

As @Thammus said before:

At the moment Instaloader does not provide any information about own stories.


[FLINK-31121] Support discarding too large records in kafka sink

What is the purpose of the change
This PR aims to add an option flink.sink.discard-too-large-records to support discarding too large records in kafka sink.
Brief change log

Added WriterExceptionHandler to discard too large records in KafkaWriter
Added option flink.sink.discard-too-large-records to turn on/off the above operation

Verifying this change
This change added tests and can be verified as follows:

Added test case testProduceTooLargeRecord in KafkaWriterITCase to throw exception or discard records which are too large

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no) no
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no) no
The serializers: (yes / no / don't know) no
The runtime per-record code paths (performance sensitive): (yes / no / don't know) no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (yes / no / don't know) no
The S3 file system connector: (yes / no / don't know) no

Documentation

Does this pull request introduce a new feature? (yes / no) no
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

Hi @JingGe Please help to review this PR when you're free, thanks

Can we hold off merging this PR since we're in the process of externalizing the Kafka connector, which means that this PR should then be moved to the external Kafka connector repository?

Thanks @MartijnVisser  and sure. What's the status of externalizing the Kafka connector? I think we can move this PR after the repository is ready

What's the status of externalizing the Kafka connector?

I'm waiting for https://github.com/apache/flink-connector-kafka/pull/4 to be reviewed, so it can be merged and then I can create another release. When that's done, then we can already move that PR. The advantage of that is that this feature can be introduced already while there's no Flink 1.18 yet released.

Thanks @MartijnVisser ,it sounds nice to me and I will keep an eye on the progress of https://github.com/apache/flink-connector-kafka/pull/4

Update: apache/flink-connector-kafka is ready now. @FangYongs can you close this PR and reopen it against the externalized repo? Once you do that please feel free to ping me for a review of this change.

Thanks @tzulitai I will close this pr and reopen a new one


[Event Request] report 840 "Suggest Worksheet Lines" - Create new event OnInsertCFLineForManualRevenueOnBeforeInsertManualData

Describe the request
Could we please have a new event OnInsertCFLineForManualRevenueOnBeforeInsertManualData
in the function, InsertCFLineForManualRevenue from report 840 "Suggest Worksheet Lines"
this is similar to an existing event named "OnInsertCFLineForCustLedgerEntryOnBeforeInsertTempCFWorksheetLine" in the procedure InsertCFLineForCustLedgerEntry
Code:

local procedure InsertCFLineForManualRevenue()
    begin
        with CFWorksheetLine2 do begin
            "Cash Flow Manual Revenue".TestField("Starting Date");
            Init();
            "Source Type" := "Source Type"::"Cash Flow Manual Revenue";
            "Source No." := "Cash Flow Manual Revenue".Code;
            "Document No." := "Cash Flow Manual Revenue".Code;
            "Cash Flow Account No." := "Cash Flow Manual Revenue"."Cash Flow Account No.";
            "Shortcut Dimension 1 Code" := "Cash Flow Manual Revenue"."Global Dimension 1 Code";
            "Shortcut Dimension 2 Code" := "Cash Flow Manual Revenue"."Global Dimension 2 Code";
            MoveDefualtDimToJnlLineDim(DATABASE::"Cash Flow Manual Revenue", "Cash Flow Manual Revenue".Code, "Dimension Set ID");
            Description := CopyStr(StrSubstNo(Text029, "Cash Flow Manual Revenue".Description), 1, MaxStrLen(Description));
            DateLastExecution := "Cash Flow Forecast"."Manual Payments To";
            if ("Cash Flow Manual Revenue"."Ending Date" <> 0D) and
               ("Cash Flow Manual Revenue"."Ending Date" < "Cash Flow Forecast"."Manual Payments To")
            then
                DateLastExecution := "Cash Flow Manual Revenue"."Ending Date";
            ExecutionDate := "Cash Flow Manual Revenue"."Starting Date";

			//>>>>
            OnInsertCFLineForManualRevenueOnBeforeInsertManualData(CFWorksheetLine2, "Cash Flow Forecast", "Cash Flow Manual Revenue");
			//<<<<

            if Format("Cash Flow Manual Revenue"."Recurring Frequency") <> '' then begin
                if DateLastExecution = 0D then begin
                    NeedsManualPmtUpdate := true;
                    InsertManualData(
                      ExecutionDate, "Cash Flow Forecast", "Cash Flow Manual Revenue".Amount);
                end else
                    while ExecutionDate <= DateLastExecution do begin
                        InsertManualData(
                          ExecutionDate, "Cash Flow Forecast", "Cash Flow Manual Revenue".Amount);
                        ExecutionDate := CalcDate("Cash Flow Manual Revenue"."Recurring Frequency", ExecutionDate);
                    end;
            end else
                InsertManualData(ExecutionDate, "Cash Flow Forecast", "Cash Flow Manual Revenue".Amount);
        end;
    end;

Event signature:
[IntegrationEvent(false, false)]
  local procedure OnInsertCFLineForManualRevenueOnBeforeInsertManualData(var CFWorksheetLine: Record "Cash Flow Worksheet Line"; "Cash Flow Forecast": Record "Cash Flow Forecast"; "Cash Flow Manual Revenue": Record "Cash Flow Manual Revenue")
  begin
  end;

Thanks in advance,
Sameer
Additional context
We require updating some fields in CFWorksheetLine before performing the insertion.
Internal work item: AB#502632

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 16827.


Provide connection into method.controller.

Hello.
I'm trying to make some basic auth validation for methods and their parameters, and i can't find a way to add additional information to request.
This is because DefaultPipeline in Router takes metadata from LocalRouter, and not from controller.
This is code from example:
def rpc(conn, request) do
    response = Router.handle(request)
    render(conn, "response.json", response)
  end

But if I have multiple clients and they only need to perform actions on their own entities, I can't validate their request according to their access level.
I suggest adding a connection as the second parameter, or just a map to forward the necessary tokens.

Greetings!
Glad you tried it out!
As far as I understood, you need to somehow check some user-specific data, like authorization grants and so on, inside the RPC actions, where you don't have access to conn structure.
To be honest, I intentionally not passing conn into the RPC-router, because it has different "namespace".
Conn is all about "http/https" and rpc doesn't know anything about it.
But I can add something like "user-metadata" parameter (actually just a map, as you said earlier).
Let me know if I understood you correctly and I will implement this in a next release.

I think that all we need is to add some kind of middleware for incoming VALIDATED and PARSED request body.
So, into this middleware we can set any validation logic for connection and incoming parameters.
Also for instance, check how maded Guards in NestJs.

Well, in case of checking authorization for all incoming requests, I would suggest using Plug.
And use that plug in a controller, where you do Router.handle(request) or in general http router.
If you would like to simply check some of the rpc actions, the temporary solution might be following:
plug :authenticate

def rpc(conn, request) do
    response = Router.handle(request)
    render(conn, "response.json", response)
end

defp authenticate(conn, _) do
  # you need to access your rpc requests data here
  # see: https://hexdocs.pm/plug/Plug.Conn.html#module-fetchable-fields
  params = conn.body_params

  # loop through all requests and see, if there are some auth restrictions.

  # if request doen't need to be handled, just drop it from body_params map

  # note, that for the end-user it will be not obvious, why request hasn't been handled.

  # just pass conn with mutated body_params
  conn
end

Check version 0.4.0
See this example
For now you can do it in your main rpc router:
middleware([AuthMiddleware])

rpc (...)

And in http-controller:
def rpc(conn, request) do
    response = Router.handle(request, conn) # second parameter: meta_data
    render(conn, "response.json", response)
end

The meta_data parameter accepts any map.
Hope it helps.

Thanks alot!


Reporter produces no output if you click the X window close on a flixel app

Running a flixel demo app - the Breakout demo - with these libs.
instrument 1.2
flixel 5.6.2
If I close the window by clicking the X window button the profiler reporter produces no output.
I can, and do, add a key press with a Sys.exit() call which the profiler seems to recognize and then I the reporter runs ok.

instrument tries to figure out when your software calls Sys.exit and tries to hook that, so it can do reporting before closing your app. pressing X on your window is basically "killing" your app (at least it happens from outside of your Haxe code), so you will have to add some code to catch such an event to allow instrument to perform reporter tasks:
e.g.
		#if instrument
		stage.application.onExit.add(function(e) {
			#if instrument_coverage
			instrument.coverage.Coverage.endCoverage();
			#end
			#if instrument_profiler
			instrument.profiler.Profiler.endProfiler();
			#end
		});
		#end

using #if instrument_profiler and #if instrument_coverage conditionals prevents empty reporter output when iterating between coverage and profiling or both.
a "Quit" button where you exit your software from within your code might also work, but since X is always there you might have to hook that anyway cause you are bound to click it while testing :).

the issue is not that you didn't instrument lime, it's that instrument has no concept of lime or any other library and vice-versa. so if you are using something that has a specific cleanup hook, you need to "help" instrument by adding its reporting run to that hook in order to get coverage or profiling output.

But when I added my own Sys.exit call based on a specific keypress instrument was able to find it without any help. I didn't have to add the kind of code you show above. I was therefore thinking that your heuristics to find Sys.exit calls might also work in lime once instrumented. But my attempt to test that failed - see the other issue. If that doesn't work then sure, I could use the code above, or my own exit routine. Using the code above is probably a cleaner way to exit actually now I think about it.

the reason it worked with your custom Sys.exit call is that instrument has a build macro that hooks into Sys.exit which adds an endInstrumentation call to make sure reporting happens before your program exits:https://github.com/AlexHaxe/haxe-instrument/blob/10244d324710b0e8dba352c731bad4283598bc39/src/instrument/Instrumentation.hx#L132
it's patching the actual Sys.exit function, it doesn't try to find all the places where it might be called from. it just goes right to the source.
there might be a way to do the same with lime/openfl/flixel and other frameworks, but I haven't really looked into it. obviously it would be nice if instrument detected and patched all different frameworks it might be used on, so that you didn't have to modify your sources to run coverage or profiling. it would be more seamless and you could just switch it on by using a different .hxml file or enabling it via a if= in your project.xml - but someone has to do the detective work first to find the right place to hook into.

But if that's the case then I don't understand why it didn't work for lime as it calls Sys.exit afghan you close the window. Unless they are shadowing the exit function. Lime does shadow at least some of haxe, timer I think. Will have to check that.


LLM reasoning based on multiple text passages

How can I get the QnABot to pass more than one text passage item to the LLM engine?
For example, I have two texts that, whenever I delete one, the other one is picked up as a suitable answer and passed to the LLM. So, both of them are relevant/above the threshold. When both are present, just one is picked up by the OpenSearch and passed to the LLM as context. I don't use Kendra.
I want both/several text passages to be passed to the LLM so the LLM can answer questions requiring more than one passage to infer the proper answer.
Thank you.

Currently QnABot only passes one text passage to the LLM - whichever one has the highest relevance score..
This is so that if the matched text item has additional behavior, such as response card images or buttons, session attribute settings, lambda hooks, etc.. QnAbot will honor and process these.. BUT that can be done only if there is a single text item match used in the answer.
If multiple text passages were allowed, I think the tradeoff would be to disable any/all of that additional capability, and use the text item simply as context for the LLM..  I do expect this is a good tradeoff to offer in return for supporting TopN text item matches for LLM input.
@marcburnie - new feature request?

We've added this request to our backlog, but it is not currently planned for development in the next 6 months. I'll provide updates on this thread if that changes.


"New messages" indicators

For @ mentions a number is shown on stream, but it gives no indication that there are other unread messages on a stream. Is there a way to get that?

@carlokok I'm not sure I fully understand the question -- are you referring to the @-mentions filter only showing the message that were mentioned, and not the rest of the stream's content?  The intent is that you can then click to narrow on the individual conversations where you were mentioned to get additional context.

@timabbott: For @ mentions zulip shows on each stream if there was one, however for regular messages there's no indication on a stream that there's something to read in it.

Can you post a screenshot?  Unread message counts on each stream are displayed as numbers next to the relevant streams in the left sidebar...