Avalonia sometimes discards the DispatcherOperation with Input or lower priority

Describe the bug
If we Dispatcher.InvokeAsync an operation with Input or lower priority, it may be discarded by Avalonia.
To Reproduce
Let's see an example here:
1. Create an empty Avalonia app with an empty window. Add a PointerMoved event and slow it using Thread.Sleep(100).
public MainWindow()
{
    InitializeComponent();
    PointerMoved += OnPointerMoved;
}

private void OnPointerMoved(object? sender, PointerEventArgs e)
{
    // The grid has 200x200 size.
    var TestGrid = this.GetControl<Grid>("TestGrid");
    // Slow the event and reduce the fps.
    Thread.Sleep(100);
    // Change the RenderTransform which reprduce the bug mentioned here.
    TestGrid.RenderTransform = new TranslateTransform(e.GetPosition(this).X - 100, e.GetPosition(this).Y - 100);
    // Change the Margin which works fine.
    // TestGrid.Margin = new Thickness(e.GetPosition(this).X - 100, e.GetPosition(this).Y - 100);
}

2. Run the app and move the mouse.
If we change the RenderTransform property of a control in the PointerMoved event, the control will move 10fps at first but then it freezes. The PointerMoved event is still triggered, but the control doesn't move anymore.
If we change the Margin property of a control in the PointerMoved event, the control will always move 10fps.
Expected behavior
All operations should be executed even if they have Input or lower priority.
Avalonia version
11.1.3
OS
Windows
Additional context
No response

Let's see deeper into the Avalonia source code.
1. The PointerMoved event stack trace.
WindowImpl.AppWndProc.cs file, line 818.
protected virtual unsafe IntPtr AppWndProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam)
{
    // ...
    if (e != null && Input != null)
    {
        Input(e);
    }
    // ...
}

It calls into the TopLevel.cs file, line 831.
private void HandleInput(RawInputEventArgs e)
{
    // ...
    Dispatcher.UIThread.Send(static state =>
    {
        // ...
        topLevel._inputManager?.ProcessInput(e);
    }, (this, e));
    // ...
}

It finally calls into the PointerMoved event.
All the calls are executed without any "priority" which means any input message comes the event will be triggered directly.
2. The "Signaled" stack trace.
The Dispatcher create its own message only window named AvaloniaMessageWindow which has its own WndProc method.
Win32Platform.cs file, line 141.
private IntPtr WndProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam)
{
    if (msg == (int)WindowsMessage.WM_DISPATCH_WORK_ITEM
        && wParam.ToInt64() == Win32DispatcherImpl.SignalW
        && lParam.ToInt64() == Win32DispatcherImpl.SignalL)
        _dispatcher?.DispatchWorkItem();
    // ...
}

Every time the Dispatcher.InvokeAsync is called, it will send a message to the AvaloniaMessageWindow to dispatch the operation.
Dispatcher.Queue.cs file, line 192.
void ExecuteJobsCore(bool fromExplicitBackgroundProcessingCallback)
{
    // ...
    // We don't stop for executing jobs queued with >Input priority
    if (job.Priority > DispatcherPriority.Input)
    {
        ExecuteJob(job);
    }
    // If platform supports pending input query, ask the platform if we can continue running low priority jobs
    else if (_pendingInputImpl?.CanQueryPendingInput == true)
    {
        if (!_pendingInputImpl.HasPendingInput)
            ExecuteJob(job);
        else
        {
            RequestBackgroundProcessing();
            return;
        }
    }
    // ...
}

Notice that the priority larger than Input will be ExecuteJob but others will be ExecuteJob or RequestBackgroundProcessing with condition of HasPendingInput.
In this example, we slow the PointerMoved event using Thread.Sleep(100) which makes the HasPendingInput to be true so the operations later are all be sent to the RequestBackgroundProcessing method.
void RequestBackgroundProcessing()
{
    lock (InstanceLock)
    {
        if (_backgroundProcessingImpl != null)
        {
            if(_explicitBackgroundProcessingRequested)
                return;
            _explicitBackgroundProcessingRequested = true;
            _backgroundProcessingImpl.RequestBackgroundProcessing();
        }
        else if (_dueTimeForBackgroundProcessing == null)
        {
            _dueTimeForBackgroundProcessing = Now + 1;
            UpdateOSTimer();
        }
    }
}

Actually, it do nothing. So the operations are discarded.
The "Render" stack trace.
When we change the RenderTransform property of a control, it ScheduleRender. However, it use the Render priority at first but later it use the Input priority because of the reason mentioned in the comment below.
private void ScheduleRender(bool now)
{
    // Already scheduled, nothing to do
    if (_nextRenderOp != null)
    {
        if (now)
            _nextRenderOp.Priority = DispatcherPriority.Render;
        return;
    }
    // Sometimes our animation, layout and render passes might be taking more than a frame to complete
    // which can cause a "freeze"-like state when UI is being updated, but input is never being processed
    // So here we inject an operation with Input priority to check if Input wasn't being processed
    // for a long time. If that's the case the next rendering operation will be scheduled to happen after all pending input

    var priority = DispatcherPriority.Render;

    if (_inputMarkerOp == null)
    {
        _inputMarkerOp = _dispatcher.InvokeAsync(_inputMarkerHandler, DispatcherPriority.Input);
        _inputMarkerAddedAt = _time.Elapsed;
    }
    else if (!now && (_time.Elapsed - _inputMarkerAddedAt).TotalSeconds > MaxSecondsWithoutInput)
    {
        priority = DispatcherPriority.Input;
    }

    var renderOp = new DispatcherOperation(_dispatcher, priority, _render, throwOnUiThread: true);
    _nextRenderOp = renderOp;
    _dispatcher.InvokeAsyncImpl(renderOp, CancellationToken.None);
}

As a result, the real render will not happed because the RequestBackgroundProcessing discards it. The new ScheduleRender will not add because the _queuedUpdate is true which will only be set to false in the final Render operation in CompositingRenderer.UpdateCore method.
CompositingRenderer.cs file, line 80.
private void QueueUpdate()
{
    if(_queuedUpdate)
        return;
    _queuedUpdate = true;
    _compositor.RequestCompositionUpdate(_update);
}

CompositingRenderer.cs file, line 149.
private void UpdateCore()
{
    _queuedUpdate = false;
    // ...
}

In conclusion:

When change the RenderTransform property of a control, it queues Render priority operations at first but later it queues Input priority operations.
The RequestBackgroundProcessing method discards the Input priority operations.
The control freezes.

Yeah, I can repro you issues. I just add the Rectangle to MainView.axaml and modify the TranslateTransform in PointerMoved.
The MainView.axaml:
  <Rectangle x:Name="Rectangle" Width="100" Height="100" Fill="Blue" HorizontalAlignment="Left" VerticalAlignment="Top">
      <Rectangle.RenderTransform>
          <TranslateTransform></TranslateTransform>
      </Rectangle.RenderTransform>
  </Rectangle>

The MainView.axaml.cs:
    public MainView()
    {
        InitializeComponent();

        PointerMoved += MainView_PointerMoved;
    }

    private void MainView_PointerMoved(object? sender, Avalonia.Input.PointerEventArgs e)
    {
        Thread.Sleep(100);
        var point = e.GetCurrentPoint(this);
        var translateTransform = (TranslateTransform) Rectangle.RenderTransform!;
        translateTransform.X = point.Position.X;
        translateTransform.Y = point.Position.Y;
    }

Run the application that you can find the application stop move the Rectangle when you move the mouse fast.
You can find my demo in github

Not executing Input-priority jobs when there is a pending user input matches XPF behavior:
https://github.com/dotnet/wpf/blob/30739d9d250860707da5864fbd79878c89ad027f/src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Windows/Threading/Dispatcher.cs#L2901-L2902
https://github.com/dotnet/wpf/blob/30739d9d250860707da5864fbd79878c89ad027f/src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Windows/Threading/Dispatcher.cs#L2035-L2047
Does dispatcher resume processing jobs eventually or is it stuck completely?

@kekekeks Thanks for your source reference. I've read those codes and find that there is a difference between them:

Avalonia will change the render priority to input after 1 second thich is set in DispatcherOptions while XPF do not.

After my test, I think the render operation should always use the Render priority without changing it to input. Without chaning the priority, the render is as fast as possible even though the UI is a little bit slow. Maybe I need to know more about the real reason why this happens. @kekekeks
BTW, setting the DispatcherOptions.InputStarvationTimeout value to a long time may improve the render performance and this can be a temporary solution.

Avalonia will change the render priority to input after 1 second thich is set in DispatcherOptions while XPF do not.

In WPF the input starvation interval is hardcoded to 500ms

Maybe I need to know more about the real reason why this happens.
It's needed for cases when input can't be processed at all because the animation/layout/render passes are consuming all available time, which could lead to an app being completely unresponsive while still drawing an animated progress bar or smth.

Does dispatcher resume processing jobs eventually or is it stuck completely?


[RESTEASY-1590] Create a new SSLEngine for each connection

Bug fix: Only the first client requests are successful, any other requests issued by a new connection timeout.
Using wireshark, it appears that the handshake is performed only at the first connection. I checked the code and indeed resteasy keep using the same SSL session for all connections.
Fix: use a new SSLEngine for each new connection.
Netty documentation about using the SSLHandler and restarting a session:
https://netty.io/4.0/api/io/netty/handler/ssl/SslHandler.html =
Jira issue: https://issues.jboss.org/browse/RESTEASY-1590

@stiwarta , we require that all contributions be made under the terms of the ASL
2.0 License: http://www.apache.org/licenses/LICENSE-2.0
Do you agree to these terms?

@asoldano  Yes I do agree :). Do I need to attach something to my PR or this  comment is enough ?

@stiwarta , it's fine like this, thanks. We'll test your PR later and merge.


Add new component "AeroFlightRecorder" to the "AeroComponents" library.

The new "AeroFlightRecorder" component generates .kml output files for flight or ground trajectory visualization in Google Earth. Tested in different models and scenarios, it should behave well. Documentation is included in AeroComponents/AeroFlightRecorder.md

I have not had time to look at this in detail yet, but can you cleanup the indention of the hpp file, right now it mixes spaces and tabs, use spaces. notepad++ or similar programs have functions for this, or just search replace tabs -> "four spaces" (or two is maybe better).
Also a test model would be nice, You can put it under "Models / Component Test".
Nice to see markdown documentation :)

Absolutely! Sorry, I didn't notice the mix. I'll fix that ;)

I think that for navigation lat and long (deg) are quit established. E.g. It is used in Google Earth so I think it is fair to yield to this. Maybe have a quantity ”Navigation”. I think in all real GPS systems you also use these (not sure....), so any software for navigation would have to deal with this anyway.
/Petter
Sent from my iPhone

On 22 May 2020, at 00:00, Peter Nordin<EMAIL_ADDRESS>wrote:
@peterNordin commented on this pull request.
In componentLibraries/defaultLibrary/Special/AeroComponents/AeroFlightRecorder.hpp:

   double tilt;

   double mLastLogTime;

public:
// The creator function that is registered when a component lib is loaded into Hopsan

   static Component *Creator()

   {

       return new AeroFlightRecorder();

   }

   void configure()

   {

       //Add ports to the component

       //Add inputVariables to the component

       addInputVariable("longitude","Longitude E","deg",15.577,&mpLongitude);

Yes EarthCoordinateSystem seems to have the registered unit incorrect. While we can change the C++ code this is a generated component, so the compgen code should be fixed as well. Maybe @petkr14 can help with this.
The problem here is that if the output is in degrees, we cant just connect it to an Angle input. Because the data in the model will be degrees and Angle expects rad. Any scaling or changing units is only for plotting purpose int he GUI, it does not affect the simulation data.
Of course you could put a converter gain in between.
So in this case degrees would make sense, but then it wont be easy to change to Quantity Angle in the future. Because then old models will become incorrect. HopsanCore can not check if the "unit" is correct, a signal is only data, and the unit/quantity is only a text string.
I guess some checks could be done, at least to see if Quantity matches, but we are not doing that right now.
But maybe degrees makes sense for lat, lon. Thats is how its used most often.
Maybe lat lon would deserve its own "fictive quantity", but I dont think that is a good idea.
For now I guess you must choose, either degrees and then it will stay degrees, which is reasonable in this case. Or go with Angle but then there will be a mismatch with some other "Aerocomponents"
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

The Waypoint comppnent also use longitud o lattitude in deg, so I think there is a strong case to keep deg for navigation.
/Petter
Sent from my iPhone

On 22 May 2020, at 10:46, Peter Nordin<EMAIL_ADDRESS>wrote:
@peterNordin commented on this pull request.
In componentLibraries/defaultLibrary/Special/AeroComponents/AeroFlightRecorder.hpp:

       //Read variables from nodes

       longitude = (*mpLongitude);

       latitude = (*mpLatitude);

       altitude = (*mpAltitude);

       //Write the data according to selected type

       if(mFileType == FlightPathKML) {

           mFile << "        " << longitude << "," << latitude << "," << altitude << "\n";

       }

       else if(mFileType == GroundPathKML) {

           mFile << "        " << longitude << "," << latitude << "," << altitude << "\n";

       }

       else if(mFileType == ThreeDmodelKML) {

           roll = (*mpPhi) * -57.29577951;

Just leave a comment in the code. 3.6 = m/s to km/h, or similar
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Aside from my last request, everything looks good, I tested it on Linux and seems t work, (but I did not test reading the file in Google Earth). I also have one last request, the commit history contains strange merge-commits, if possible I would like to get rid of those, so that only the content commits remain as a linear history.
I dont know what tool you are using, but if you start a git bash terminal you can give this command
git rebase -i 35c32fd599f0979664f81aac103b2e85f6bd52d4

Then in the list that is shown, just replace "pick" with "drop" on the commits that you did not make.
Then when you save and close the dialog, your branch will only contain your things.
Then you need to git push --force
If you are afraid of ruining your branch (I am sometimes), first make a backup branch
git branch  feature/betterAeroLib_backup feature/betterAeroLib

Typically when we work on a branch we do not merge from upstream while working.
If we need up-to-date upstream code, we tend to rebase the entire branch. (move it as a whole) but you do not need to do that.

@petkr14 Yes in the lat,lon case it makes sense with degrees, but the thing that troubles me is that in most components angles are assumed to be in rad, and here we all of a sudden have deg. So we cant assign it the quantity Angle (because it is then assumed to be rad under-the-hood). So we would need to invent a Quantity just for lat/lon or just keep it as degrees, but then not be able to change the scale in the GUI or in plots. But maybe this is not such a big issue in this particular case, because degrees is most often what you want to see.
But in the general case it is a problem, while the Hopsan Quantity scaling system needs a bit of improvement. Even if it could handle custom "under-the-hood" units it would still be odd if you allow individual components to start deciding for them selves what unit to use in their interfaces.
I guess it might be OK if Hopsan could check and verify that a connection satisfies unit requirements, but we cant do that right now.

@peterNordin I'm sorry for messing the commit history. I didn't know what was the best practice in this case (merge updates regularly from upstream or just working the branch separately). I followed your advice rebasing and dropping the other commits. I even squashed and edited my commits to leave a more understandable, linear story. I hope this branch looks cleaner now.
Thanks for all your help and sorry for the time lost during the entire reviewing. It's not only my first time writing something in Hopsan, but also my first time contributing in Git. I'm learning a lot, so next time it should be much smoother! :)

@alejandroSobron for being the first time I think you did a great job, git takes "a while" to learn, and there are many different ways to use it, and we have no documentation stating our preferred method.
We should probably add some contribution guidelines.
Squashing is definitely a useful feature, then you can make old mistakes "go away". I use it all the time.
Looks good now, so I am merging this.
Thank you for your contribution :)


Markdown issue

In Markdown Activity.
When I type #text and it displays as h1.
Which according to markdown only converts into h1 when we type # text
I mean #text should have a space between # and text, right?

Space is not required according to Markdown documentation.

I don't know but you can look at Github for example. It does require space between # and text.
In github,
#not a header
is a header
And the documentation you linked, though doesn't mention this specifically, but all it's example have space in them.

and it makes sense because often we write #1234 as hashtag, issues and what not.

I've tested on few different tools: Atom, MacDown, ... All accept syntax without white space.
And the reference documentation mention "hash characters at the start of the line" no "hash characters at the start of the line followed by white space".
Can't do anything for Github.


Python: Timestamp unit ignored on deserliazation

The python library (version 0.3.1) doesn't respect the unit provided as metadata when deserializing, it appears to always assume NANOSECOND.  The R implementation behaves correctly.
I've attached a zip with the same date (1971-02-03 04:05:06 UTC) as the single value in a single column that demonstrates the issue.
Python:

R:

Timestamp.zip

I think this is fixed in the move to Arrow. I am making a Python release soon that uses pyarrow as a dependency

Confirmed that this is fixed in Apache Arrow 0.4.0. I will make a Feather release for Python including this in the near future
In [7]: import pyarrow.feather as f

In [8]: f.read_feather('/home/wesm/Downloads/Timestamp_Seconds.feather')
Out[8]:
                  Timestamp
0 1971-02-03 04:05:06+00:00

In [9]: f.read_feather('/home/wesm/Downloads/Timestamp_Milliseconds.feather')
Out[9]:
                  Timestamp
0 1971-02-03 04:05:06+00:00

In [10]: f.read_feather('/home/wesm/Downloads/Timestamp_Microseconds.feather')
Out[10]:
                  Timestamp
0 1971-02-03 04:05:06+00:00

In [11]: f.read_feather('/home/wesm/Downloads/Timestamp_Nanoseconds.feather')
Out[11]:
                  Timestamp
0 1971-02-03 04:05:06+00:00


example

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 80.503%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2688

Relevant Lines:
3339

💛  - Coveralls


github workflow fails because of missing pyenchant

The github workflow for this fails because pyenchant cannot be found. It can be fixed by installing through apt, see this commit. I can submit this as a PR if you want, but I don't know if the github workflow still matters on this.
:rkent

Thanks for the report. I believe this has been resolved with #99 and #100.


Error 404. All modules failed to load on vanilla HTML and JS

Good day.
I'm using this extention in a very basic case. just HTML and JS. I get the following errors in console:
simpleParallax.js:5 GET https://depotof.universalideas.ca/scripts/tools/parallax/instances/parallax net::ERR_ABORTED 404
simpleParallax.js:3 GET https://depotof.universalideas.ca/scripts/tools/parallax/helpers/convertToArray net::ERR_ABORTED 404
simpleParallax.js:1 GET https://depotof.universalideas.ca/scripts/tools/parallax/helpers/isSupportedBrowser net::ERR_ABORTED 404
simpleParallax.js:2 GET https://depotof.universalideas.ca/scripts/tools/parallax/helpers/viewport net::ERR_ABORTED 404
I have simply dropped the files for simpleParrallax.js into the web folder. All the instructions point to packet installation for various platforms but mention nothing about good old drag and drop users.

I had to add .js to all the import messages like this:
import { viewport } from '../helpers/viewport.js';
but now, albeit it does not complain, I still get the error:
index.js:7 Uncaught ReferenceError: simpleParallax is not defined

Gonna have to use the publicly hosted lib for now.

Should be fixed with latest version.


Polymorphic datatype

Allows define-datatype to take type parameters, as discussed in https://github.com/andmkent/datatype/issues/2.
e.g.
(define-datatype (Maybe a)
  [Just (a)]
  [Nothing ()])

Note: changes syntax of define-datatype; might not be quite ready to merge for that reason, if e.g. examples need to be updated.
cc/ @andmkent

Cool - let me look at adding a few tweaks so specifying type variables is optional (i.e. the old syntax is valid too) and I'll report (today or tomorrow).

Yeah, sounds good. :+1:

Easiest solution involves duplicate code. Should be possible to simplify?

On a related note: having an issue with a "polymorphic" type-case and likewise match:
(: a (Optional String))
(define a (Some "test"))

(: b String)
(define b
  (type-case Optional a
    [(Some str) => str]
    [else => "error"]))

(: c String)
(define c
  (match a
    [(Some str) str]
    [_ "error"]))

. Type Checker: type mismatch
  expected: String
  given: Any in: str
. Type Checker: type mismatch
  expected: String
  given: Any in: str
. Type Checker: Summary: 2 errors encountered in:
  str
  str

Currently have to cast to resolve:
(: a (Optional String))
(define a (Some "test"))

(: b String)
(define b
  (type-case Optional a
    [(Some str) => (cast str String)]
    [else => "error"]))

(: c String)
(define c
  (match a
    [(Some str) (cast str String)]
    [_ "error"]))

Duplicate code: We should be able to use the features of the syntax/parse library to avoid duplicate code (using features like ~or, ~bind, and syntax classes).
Polymorphic issues: There's a fundamental issue with the current approach: assigning polymorphic variables to a struct that does not have any fields of the polymorphic type in essence ignores the polymorphic variables. For example, the following typechecks:
#lang typed/racket

(struct: (A) Foo () #:transparent)

(define (foo [x : (Foo Integer)]) : (Foo String)
  x)

I think this indicates I need to rewrite things to use a define-type and a union instead of an empty parent struct and inheritance.

Yikes - tinkered with that a little longer than I thought I would =)
Well for now I threw together something that supports both non-polymorphic and polymorphic definitions:
#lang typed/racket

(require "datatype.rkt")
(define-type Int Integer)

(define-datatype (Opt A)
  [Some (A)]
  [None ()])

(define (extract-int [x : (Opt Int)]) : Integer
  (Opt-case [#:inst Int]
   x
   [(Some i) => i]
   [(None) => -1]))

(define-datatype Expr
  [Var (Symbol)]
  [Lambda (Symbol Expr)]
  [App (Expr Expr)])

(: foo (Expr -> Symbol))
(define (foo e)
  (Expr-case
   e
   [(Var x) => x]
   [(Lambda y _) => y]
   [(App _ _) => 'app]))

I ended up just rewriting it from scratch more or less---I think it's a little easier to read now, with the catch being it no longer does the crazy macro generating macro stuff and now there is not a universal type-case but a case macro generated for each datatype. I'm sure with a little effort you could merge something like what I threw together here with the type-case stuff in the original definitions.
I don't have a lot of time to dedicate to this right now so... I'll leave what I have so far and if you like you can tweak/modify/etc... it however you see fit.

Oh - and the syntax choices were rather arbitrary (e.g. [#:inst ...] was easy to parse =)-- so if you wanted to play around with it and pick something that looks better or is easier to read/type etc... by all means! =)

Cool - thanks!


Disable Project Location | Field Region data button for roles that do not have permissions to view/edit.

@sethmcknight I disabled the form fields in the dialog when editing is not allowed. Is this sufficient? I'm not sure I want to disable the DataButtons here because it will gray out the text in the only way the text is shown.

Good enough for now


Enhancement: Add the currently-absent background music to the first two week 7 cutscenes

In the original week 7 cutscenes, the song Klaskii Romper is used in the background. Although it's usually muffled to not draw away from the dialogue, I noticed pretty quickly that it seems to be missing from Ugh and Guns, making the cutscenes feel a tiny bit empty. I'm not sure if this is intentional or not, but I think it would improve them immensely.

didn't realize they were missing, will add them in.

added in: 277da17e8a27bed7514cd9ed8b69f093af5d0e62


Sample 49.qnamaker-all-features cognitive model doesn't match features

Sample information

Sample type: samples
Sample language: dotnetcore and javascript_nodejs
Sample name: 49.qnamaker-all-features

Describe the bug
The code supports follow-up conversational prompts but the prompts are not supplied in the cognitive model file.
Expected behavior
Expect features in code to be supported with cognitive model, where applicable.
[bug]

This QnAMaker sample no longer work because the services they depend upon have been discontinued or are not allowing new resources and endpoints to be created.
QnAMaker sample is updated with Custom question answering samples, hence closing the issue.


feat: :sparkles: added param support in References and ReferencesAsync

@nadeem-cs Can you update release version & changelog

Updated both files. Thanks.


[BUG] Segmentation fault during build

What happened?

MacOSX
What browsers are you seeing the problem on?
Chrome
Relevant log output
🟡 20     | Creating BGSW entry
🟡 21     | Hash changed, updating manifest
🔵 INFO   | Loaded environment variables from: [ '.env' ]
🟡 0      | @plasmohq/parcel-transformer-manifest
🟠 WARN   | default_locale not set, fallback to en
🟡 1      | Adding locale en
🟡 2      | Adding icons
🟡 3      | Adding default_icon
🟡 4      | Adding default_popup
🟡 5      | Adding page
🟡 6      | Handling MV3 background service worker
🟡 7      | + Finished transforming manifest
🟡 0      | @plasmohq/parcel-bundler
/bin/bash: line 1: 88367 Segmentation fault: 11  plasmo build --verbose
error: script "build" exited with code 139

(OPTIONAL) Contribution

[ ] I would like to fix this BUG via a PR

Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I checked the current issues for duplicate problems.

👋 @mreinertssgr
I hade this too. Upgrading to Node 22.10 fixed it for me. See https://github.com/parcel-bundler/parcel/issues/9926 for more info.


soc: arm: stm32l4 serie low power modes in debug config

The debug config will let the clocks active in STOP mode at init.
Following the #33131, the power.c part of the stm32wb is modified in the same way.
Signed-off-by: Francois Ramu<EMAIL_ADDRESS>

plus a comment in the commit msg for the minor fix in the Kconfig

rebase and change the substate range

rebase
changed info.substate_id in the pm_power_state_exit_post_ops function


No Method Error in -f pdf with Prawn

Version issue maybe?
undefined method text' for #<Prawn::Document:0x1016cddb8> Error creating formatter: pdf (NoMethodError) /Library/Ruby/Gems/1.8/gems/cucumber-1.0.5/bin/../lib/cucumber/formatter/pdf.rb:44:in initialize'
/Library/Ruby/Gems/1.8/gems/cucumber-1.0.5/bin/../lib/cucumber/cli/configuration.rb:168:in new' /Library/Ruby/Gems/1.8/gems/cucumber-1.0.5/bin/../lib/cucumber/cli/configuration.rb:168:in formatters'
/Library/Ruby/Gems/1.8/gems/cucumber-1.0.5/bin/../lib/cucumber/cli/configuration.rb:163:in map' /Library/Ruby/Gems/1.8/gems/cucumber-1.0.5/bin/../lib/cucumber/cli/configuration.rb:163:in formatters'
/Library/Ruby/Gems/1.8/gems/cucumber-1.0.5/bin/../lib/cucumber/cli/configuration.rb:68:in build_tree_walker' /Library/Ruby/Gems/1.8/gems/cucumber-1.0.5/bin/../lib/cucumber/runtime.rb:42:in run!'
/Library/Ruby/Gems/1.8/gems/cucumber-1.0.5/bin/../lib/cucumber/cli/main.rb:43:in execute!' /Library/Ruby/Gems/1.8/gems/cucumber-1.0.5/bin/../lib/cucumber/cli/main.rb:20:in execute'
/Library/Ruby/Gems/1.8/gems/cucumber-1.0.5/bin/cucumber:14
/usr/bin/cucumber:19:in `load'
/usr/bin/cucumber:19
Prawn install:
Fetching: pdf-reader-0.10.1.gem (100%)
Fetching: ttfunk-1.0.3.gem (100%)
Fetching: prawn-0.12.0.gem (100%)

A lot has changed since 0.8.4
Please read the changelog for details:
https://github.com/sandal/prawn/wiki/CHANGELOG
\ ********************************************
Successfully installed Ascii85-1.0.1
Successfully installed pdf-reader-0.10.1
Successfully installed ttfunk-1.0.3
Successfully installed prawn-0.12.0
4 gems installed
Installing ri documentation for Ascii85-1.0.1...
Installing ri documentation for pdf-reader-0.10.1...
Installing ri documentation for ttfunk-1.0.3...
Installing ri documentation for prawn-0.12.0...
Installing RDoc documentation for Ascii85-1.0.1...
Installing RDoc documentation for pdf-reader-0.10.1...
Installing RDoc documentation for ttfunk-1.0.3...
Installing RDoc documentation for prawn-0.12.0...
Could not find main page README
Could not find main page README
Could not find main page README
Could not find main page README

The plan is to remove the PDF formatter, start using Cucumber-HTML and have people use wkhtmltopdf to generate PDFs.


Peeping Tom disclaimer

I run a small fika server, and your map is amazing. But it can be a little hard to witstand the temptation to turn on seeing enemies :)
I don't want to disable being able turn it on, as it's an amazing debugging tool when something is not working as expected, and we want to take a peek mid raid.
It would be neat if a message was displayed if "Show Enemy Player", "Scav", "Boss" or "Corpses" markers is enabled on a player. The message should be displayed to all players with a message like "x is a Peeping Tom"

It should be small and unobstructive, and should only stay up for a few sec.
It should display at the start of the raid, and if a player enables any of the options

If posisible, then should it not display if the player is alone in the raid. So it only affects FIKA players
On our server, you can play as you like so we don't want to disallow it, but I also think it should be known why "Tom" is always able to pinpoint the enemy :)
Thank you for an amazing mod.

I created a patch for 0.3.4 that removes alive enemy markers (players, scavs, bosses). We use it on our FIKA instance.
Basically:

clone this repo
apply patch
DynamicMaps.csproj -> Set TarkovDir Condition to your tarkov dir
Configure build environment:

Install latest .NET: https://dotnet.microsoft.com/en-us/download
Install NPM 20.11.1 (powershell):winget install Schniz.fnm
fnm env --use-on-cd | Out-String | Invoke-Expression
fnm use --install-if-missing 20.11.1

build patched version:dotnet build

copy .dll from SPT-DynamicMaps\bin\Release\net471\DynamicMaps.dll and overwrite the released plugin dll.
no_alive_enemy_markers.patch

@perfk Here's a build for you. https://github.com/r-pufky/SPT-DynamicMaps/releases/tag/0.3.4-3.9.5-no-alive-enemies
Zip in the release. Your mileage may vary, etc, etc.

That's awesome, thank you @r-pufky


Renaming across effect system

Hello :octocat:
This fixes #668 by renaming Variables to Entity, and the kind 'quantified' to 'variable' (plus some consequential renaming from that).

[ ] Tests added for any new code
[X] Ran npm run format (or had formatting run automatically on all files edited)
[ ] Documentation added for any new functionality
[ ] Entries added to the respective CHANGELOG.md for any new functionality
[ ] Feature table on README.md updated for any listed functionality

@shonfeder I think I did a poor job at setting expectations here. This is not a change that is, alone, suppose to make the effect system easier to understand. The naming problem of calling two different things by the same name (as it was happening with both "variables" and "quantified") makes it impossible to properly define what is what, and makes the code very hard to maintain.
If it's not clear what X is, calling it Variables or Entity won't make a difference, I agree. But it's (pretty much) impossible to explain what Variables are if there are 3 different things being called Variables. So this PR only disambiguates the names. Our discussion about ADRs this morning reminded me that the Effects ADR is very outdated, specially after these changes, and I completely agree we need better documentation.
WDYT about me updating the ADR with proper definitions for all the new distinct names (which shouldn't take long!) and then, if we can think of better abstractions on top of those, I can make an additional iteration on this?

WDYT about me updating the ADR with proper definitions for all the new distinct names (which shouldn't take long!) and then, if we can think of better abstractions on top of those, I can make an additional iteration on this?

That makes good sense to me! Being able too survey all these kinds of names in a table should help I think!
With that expectation, I'll mark this as approved, and leave it up to you whether you'd rather merge this and then iterate, or hold off on these changes until the design doc updates.

I'll merge this because I really don't want it to get stale somehow, since conflicts with this won't be nice to solve. I'll start working on an ADR update right away.


[Feature Request] Easter Egg Facts

You have now been subscribed to Easter Egg Facts!
There are plenty of eggs in the world and we want to know everything about them! This feature shows a random fact about eggs when triggered by an .eggfact (or similar) command in one of the channels watched by seasonal bot. Facts can be related to eggs, famous Easter Eggs in software, animals that lay eggs, chocolate eggs, things like Fabergé eggs, strange egg records, and anything else you can think of that has something to do with eggs.
Implementation Details:

[ ] Store the egg facts in a static resource (e.g., json, look at other examples in the bot);
[ ] Write a command that fetches a random fact and sends it to the channel;
[ ] Display the fact in a nicely formatted embed, optionally with a nice thumbnail image.

Additional Easter Egg for this command (optional):
Create a background task that, at a random interval, sends a fact to the seasonalbot event channel. Use a sensible interval so that bot with lay an egg fact a couple of times each day, but not so frequent that it ruins the surprise or disrupts the conversations in the channel.
Note: If you're planning on using thumbnail images, then please make sure that the license of the image allows it being used like that.

i will work on this.

Will be merged by https://github.com/python-discord/seasonalbot/pull/234


Add halt() to execution signature

For each execution context, there are three possible outcomes: completed, errored, or halted. The execution interface however only accounts for two of them in the official type signatures.
Because cancellation through halt is a critical api, and is already in use in other projects, this adds it to the official type declarations.

A preview package of this pull request has been released to NPM with the tag add-halt-to-execution-signature.
You can try it out by running the following command:
$ npm install effection@add-halt-to-execution-signature

or by updating your package.json to:
{
  "effection": "add-halt-to-execution-signature"
}

Once the branch associated with this tag is deleted (usually once the PR is merged or closed), it will no longer be available. However, it currently references<EMAIL_ADDRESS>which will be available to install forever.

  Generated by :no_entry_sign: dangerJS against b6cfa5dd16984fa0837ac8e8ed987ef2717c8c0a


README: wrong latest packages versions

Describe the bug

In README file, the list of latest packages version is wrong.
This is perhaps due to the fact that we exceed aws s3 max keys limit in the query:
[max-keys](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html#API_ListObjectsV2_RequestSyntax)

    Sets the maximum number of keys returned in the response. By default the action returns up to 1,000 key names. The response might contain fewer keys but will never contain more.

How to reproduce it

Just look at the README :)
Expected behaviour

We should be able to fetch the actual latest packages!
A possible solution would be to force the falco-$(latest_tag) prefix (instead of the falco- one). But this would introduce the need to automate the "new tag -> bump readme" PR...
Moreover, the higher the pace of development of the project, the more likely to exceed the 1000 limit.

It seems the issue is that aws s3 returns keys in :

List results are always returned in UTF-8 binary order.

https://docs.aws.amazon.com/AmazonS3/latest/userguide/ListingKeysUsingAPIs.html

IMO the falco-$(latest_tag) solution might be an easy and yet functional workaround. Bumping the tag might be an additional step of the release process to document in RELEASE.md, if doing that automatically is much work. With the new release cycle, this would happen only every 4 months (excluding patch releases).

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close.
Provide feedback via https://github.com/falcosecurity/community.
/lifecycle stale

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.
If this issue is safe to close now please do so with /close.
Provide feedback via https://github.com/falcosecurity/community.
/lifecycle rotten

/remove-lifecycle rotten

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close.
Provide feedback via https://github.com/falcosecurity/community.
/lifecycle stale

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.
If this issue is safe to close now please do so with /close.
Provide feedback via https://github.com/falcosecurity/community.
/lifecycle rotten

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.
Provide feedback via https://github.com/falcosecurity/community.
/close

@poiana: Closing this issue.

In response to this:

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.
Provide feedback via https://github.com/falcosecurity/community.
/close

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.


check sharp module already loaded

Hi!
More readable error if sharp already loaded in peer deps.
e.g.:
test.js
const favicons = require('favicons');
const sharp = require('sharp');

output:
node ./test.js

Something went wrong installing the "sharp" module

The specified procedure could not be found.
\\?\/home/sharp-something-wrong/node_modules/sharp/build/Release/sharp-win32-x64.node

Possible solutions:
- Install with the --verbose flag and look for errors: "npm install --ignore-scripts=false --verbose sharp"
- Install for the current runtime: "npm install --platform=win32 --arch=x64 sharp"
- Consult the installation documentation: https://sharp.pixelplumbing.com/install
- Module already loaded in: /home/sharp-something-wrong/node_modules/favicons/node_modules/sharp/build/Release/sharp.node

npm ls sharp
+--<EMAIL_ADDRESS>| `--<EMAIL_ADDRESS>|   `--<EMAIL_ADDRESS>`--<EMAIL_ADDRESS>

Thank you!


Enable a more detailed regression check for model training

For use as regression tests, it is important to have a very strict check of metrics in the current run, compared to an older baseline run. For example, PR model builds should match a stored result to very high accuracy. Presently, we have neither the logic to do that, nor any tests that work that way.

Possible design:

For each config, add a field that contains a list of (file name, expected contents) tuples. Have two list, one for a single model run and one for cross validation. Or a dictionary mapping from num_folds to list of files?
At the end of the run, go through that list and check that files match exactly.
For cross validation runs: It is probably enough if the check only runs in child 0, because that also has metrics files from other child runs downloaded.
For the PR builds, add this to:

BasicModel2EpochsMoreData (2 node model),
BasicModel2Epochs (ensemble model - maybe subclass that so that it is really only used in the ensemble build test)
BasicModel2Epochs (single run)
BasicModel2Epochs1Channel (used in the submodule test)

Add a cloud build for a classification model, and add the checks there too


Feature/save metadata to firebase

Problem
What is the problem this work solves, including
closes #194
Solution
What I/we did to solve this problem

wrote a function to save metadata of aws results files to firebase. The stored metadata includes fields such as "username", "timestamp", "aws_url", with the recipe's unique name being as the key
handlers are initiated using the DATABASE_IDS enum, ensuring that the DBRecipeHandler remains agnostic
rearranged firebase handler and aws handler to

ensure they are initialized only once
improve readability

Type of change
Please delete options that are not relevant.

New feature (non-breaking change which adds functionality)

Steps to Verify:

pack either local or remote recipes to see if the result files has been uploaded to S3 and saved metadata to firebase

Screenshots (optional):

The previous PR#201 was closed due to some merging conflicts and rebasing issues. This new PR has the necessary changes for saving metadata and offers a cleaner commit history for review. It will be merged into #179, which is being treated as a staging branch now.


[WIP] Replace sass-rails with sassc-rails

Improve scss compilation times.

It will probably be best to remove the remove any dependency to sass-rails and sassc-rails to let the host application decide.


[Component] Switch: Create Native SwiftUI component

Create the native SwiftUI component

[x] View
[x] Snapshot testing

PR:

https://github.com/adevinta/spark-ios/pull/445
https://github.com/adevinta/spark-ios/pull/455

Hey @robergro ; after visual and functional testing, I noticed 1 problem : for activated/disabled switch with image, the icon doesn't seem to have the right color.
What I see :

What it should be according to figma :

OoOo ! Thank you !
It's good now
https://github.com/adevinta/spark-ios/assets/6044208/f62799af-5860-4269-9610-427b68dc75f3

The PR to resolve this bug is here :
https://github.com/adevinta/spark-ios/pull/463


Is this project dead?

Last commit was Jan 21 2020. Did the maintainer just abandon this project?
If so, I'm quite disappointed. I personally know lots of people whose code is dependant on this. The developer can't just leave like that.

The state of this industry, smh


Studio doesn't work in Community Edition

Hi,
I upgraded to 2.1.5 Community Edition on my dev server trying both the download and the clean install methods and with both, Studio kept ending up with a 404 (white blank page).
I then decided to try and download the Enterprise Edition and, lo and behold, Studio is working. I did nothing different in the steps to install the download version of the Community Edition, thus, I think  there might be an issue with it and Studio. I can't, however, deny I might have done something wrong during the upgrade/ installation either. If someone could check Studio in version 2.1.5 Community Edition, and confirm there is an issue, I would be greatful.
Scott

On 3 November 2015 at 07:45, Scott<EMAIL_ADDRESS>wrote:

Hi,
I upgraded to 2.1.5 Community Edition on my dev server trying both the
download and the clean install methods and with both, Studio kept ending up
with a 404 (white blank page).
I then decided to try and download the Enterprise Edition and, lo and
behold, Studio is working. I did nothing different in the steps to install
the download version of the Community Edition, thus, I think there might be
an issue with it and Studio. I can't, however, deny I might have done
something wrong during the upgrade/ installation either. If someone could
check Studio in version 2.1.5 Community Edition, and confirm there is an
issue, I would be greatful.

I tested a fresh installation of 2.1.5 and it works.
How did you upgraded?
Did you copy jars and studio to a previous installation?
Best regards,
RF
--
Roberto Franchini
Orient Technologies
http://orientdb.com

I downloaded the precompiled files and just uploaded them to where ODB is on my server.
I also did the "git clone" and "ant clean install" and moved the files generated in the "distributed" folder to where ODB is on my server.
Both attempts (installing with master and 2.1.5) failed to get Studio working again. Only when I used the Enterprise files, did Studio start working again.
Maybe it was just a fluke? I'll do some more attempts with the next version of Community, when it comes out. Now I am happy, and don't want to mess with my working system. LOL!

If you really want to build by your own, use maven clean install -DskipTests.
Then pick your preferred flavour of package from distribution/target: it is a complete zip/tar.gz. You can even run the server from distributiom/target/orient.....dir

Yeah, I noted the warning about ant being deprecated in the building process. I'm not a java dev, so all of this building stuff is new to me.:smile: I develop mainly in PHP.  I appreciate the help and suggestions.
Scott


Webpack compilation Error

Current behavior
When I try to run the test I get the error:
Error: Webpack Compilation Error
./cypress/e2e/Account/Login.feature 1:0
Module parse failed: Unexpected character '@' (1:0)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
> @login @app
| Feature: Login to webshop
|

Desired behavior
It should run the test without any errors
Test code to reproduce
Followed the steps to upgrade to Cypress 12 from this blog https://testersdock.com/cypress-cucumber-bdd/
Versions

Cypress version: 12.9.0
Preprocessor version: 16.0.1
Node version:  16.18.0

Checklist

[x] I've read the FAQ.
[x] I've read Instructions for logging issues.
[x] I'm not using<EMAIL_ADDRESS>(package name has changed and it is no longer the most recent version, see #689).

It should run the test without any errors

You seem to imply that following a blog should not result in any errors, but that's not the case. I can't control what other people write about this library. I can see from glancing at it, that it's severely outdated. I recommend that you take a look at any of the official exampes instead.

Hey, thanks for the feedback.
I tried to use the example: https://github.com/badeball/cypress-cucumber-preprocessor/tree/master/examples/esbuild-cjs
But somehow I get now the error:
Step implementation missing for "User enters the webshop page".

We tried searching for files containing step definitions using the following search pattern templates:

  - cypress/stepDefinitions/*.js

These templates resolved to the following search patterns:

  - cypress\stepDefinitions\*.js

These patterns matched no files containing step definitions. This almost certainly means that you have misconfigured stepDefinitions.

Not sure where is this coming from ...
Do you have any idea what could be wrong?

The error is fairly informative IMO. Should it find any step definitions at the mentioned location?


How can I be sure that Telegram BOT API local server is running properly?

Hi
I installed API on my centos 7.x and then below command :
bin/telegram-bot-api --api-id $TELEGRAM_API_ID --api-hash $TELEGRAM_API_HASH --local &
So in task manager I can see it, also at first in trace process there are a lot of
clock_gettime(CLOCK_MONOTONIC, {tv_sec=6937094, tv_nsec=628648907}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=6937094, tv_nsec=628717456}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=6937094, tv_nsec=628755808}) = 0

And after a few minutes, a lot of  :
clock_gettime(CLOCK_MONOTONIC, 0x7fffc67fb2d0) = -1 ENOSYS (Function not implemented)
clock_gettime(CLOCK_MONOTONIC, 0x7fffc67fb2c0) = -1 ENOSYS (Function not implemented)
clock_gettime(CLOCK_MONOTONIC, 0x7fffc67fb470) = -1 ENOSYS (Function not implemented)
clock_gettime(CLOCK_MONOTONIC, 0x7fffc67fb4f0) = -1 ENOSYS (Function not implemented)

So that means local server is not working?

If you send requests and receive responses, then server works.
If it is running, then it should work.

You must connect to 8081 unless you specified a different port.

Yes I changed port number to 9090. I Switched https to http and problem fixed! Just to answer my question to be sure service is working properly, need to check below URL  in browser:
http://xxxx:[port]/
and result is something like below in json format same as Telegram server:
{"ok":false,"error_code":404,"description":"Not Found"}


Unable to access Azure Bastion after applying the NSG rules.

After applying the NSG rules, I can no longer access the VMs using Azure Bastions. Calls to https://[AzureBastionPublicDNSName] times out. After removing the NSG on the subnet, access is restored. Adding an inbound rule that allows HTTPS traffic from my client IP also works. It seems traffic is coming directly from my client IP instead of the GatewayManager.

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

ID: cc46ceac-e45e-6f29-dd5b-6453c614d9b2
Version Independent ID: b8b3bb83-5204-1f8b-787f-eb3da444e22e
Content: Working with VMs and NSGs in Azure Bastion
Content Source: articles/bastion/bastion-nsg.md
Service: bastion
GitHub Login: @cherylmc
Microsoft Alias: cherylmc

@zhusulai Traffic will need to be allowed from both your public IP and the Gateway Manager in order to function.
Please let me know if you need any additional clarification.

@TravisCragg-MSFT thanks for the clarification. The issue can be closed.

@zhusulai We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


Stateless agent

Note, docstrings still need to be updated. Please review other things in the meantime.

Except for the naming, which Hadi also mentioned, everything looks good. I'd recommend changing the state variable name to memory because it basically stores information about the past and present (not only for DRQN).


exception_handlers not triggered during unit tests

Hi, I'm using exception_handlers to handle 500 and 503 HTTP codes. However when unit testing, they are ignored. If I start the server and test the route, the handler works properly.
# main.py
@app.exception_handler(Exception)
def handle_500_error(request: Request, exception: Exception) -> JSONResponse:
    return JSONResponse(
        status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
        content=json.dumps({"detail":'Internal Server Error, contact support'}),
    )

@app.exception_handler(OperationalError)
def handle_503_error(request: Request, exception: Exception) -> JSONResponse:
    return JSONResponse(
        status_code=status.HTTP_503_SERVICE_UNAVAILABLE,
        content=json.dumps({"detail":'Service Unavailable, contact support'}),
# function

@router.get("/{partner_id}")
def get_partner_by_id(partner_id: str, db: Session = Depends(get_db)):
    """
    Retrieve a partner from the database by given id
    :param [partner_id]: id to be searched
    :returns: partner data
    """
    db_partner = search_partner_by_id(db=db, partner_id=partner_id)
    if not db_partner:
        raise HTTPException(
            status_code=status.HTTP_404_NOT_FOUND, detail="Partner not found"
        )
    return Partner.from_orm(db_partner).dict(by_alias=True)

# test

def test_get_partner_by_id_503(client: TestClient, valid_body: dict) -> None:
    with patch(
        "partner_api.routers.partners.search_partner_by_id", side_effect=OperationalError
    ):
        query = f"/partners/{valid_body['id']}"
        response = client.get(query)
        assert (
            response.status_code == status.HTTP_503_SERVICE_UNAVAILABLE
        ), response.json()

Environment
Python 3.8.6
fastapi==0.63.0

AFAIK You cannot handle pure Exception. Needs to be an inherited exception class.
A non asked tip:
def get_partner_by_id(partner_id: str, db: Session = Depends(get_db)):
    """
    Retrieve a partner from the database by given id
    \f
    :param [partner_id]: id to be searched
    :returns: partner data
    """

Reference: https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#advanced-description-from-docstring
If you add reproducible examples, it's easy for people to help you. :kissing:

@Kludex thanks for the tip.
Ok, but that does not explain why both handlers work when I have the server running and testing via curl or why the handler for OperationalError does not work during the unit test.
Also, the code sample is reproducible, as you can see on the test I'm mocking the database function to raise the exception, one just need to setup the fast API app.

I think this is related to #2799

hey @lays147, unfortunately, your code snippet isn't complete as the requirements and the imports are missing. Could you please provide it so that others can help?

@lays147
This may be indeed the same issue as #2799
In my case, the solution was to update one of the argument from the TestClient: raise_server_exceptions which is by default set to True.
You are not showing how you build the test client, but if you create it this way:
client = TestClient(app, raise_server_exceptions=False)

the server should not raise the exceptions when they occur, but instead return the http error you are expecting.
In the docs from starlette

By default the TestClient will raise any exceptions that occur in the application. Occasionally you might want to test the content of 500 error responses, rather than allowing client to raise the server exception. In this case you should use client = TestClient(app, raise_server_exceptions=False).


New menu design

I'm still getting out of memory errors sometimes, I have no idea what's causing them. I think it might be related to the push/pop scene because its the same behavior as the old menu.

We need to make sure to avoid double double buffering

@riknoll ready to go?

Yep! I'm not cloning the screen in this one, so I don't think that's it.


Please, no more upgrade prompts :)

The PR addresses issue #261
Add a configuration that allows the user to effectively disable the upgrade prompt and have SARIF files that need to be upgraded done so automatically as a temporary file.
@jeffersonking and I have been discussing that there are at least two types of consumers of the SARIF viewer, there are SARIF producers and SARIF consumers. In the case where you are a SARIF producer, seeing the prompt is nice because it gives you and indication that the SARIF producer is out of date. As a consumer, well, you would probably always want to update.
For the time being, we have consumers that will always want an automatic upgrade any out of date SARIF logs,
So the behavior of this change is as follows:
The existing behavior remains where a user is "Prompted" for upgrade. They have options [Upgrade] or [Don't show me this again]. If the users chooses "either" of these options, a temporary file is created. In the case of "Don't show me this again", a configuration is updated to suppress the prompts and always create a temporary file. Clicking the "X" or pressing escape cancels the upgrade\open flow applying no changes.
The option for "Save As" was removed, because, well, if you want to save the converted file, just use File\Save AS from VSCode.

I would advocate for a non-blocking workflow here. I think it's a fair departure from previous behavior to automatically write to temp.
In case the user wonders where the old prompt went, we would have a non-blocking toast/message explaining how to "Save As...", how to "Never Upgrade", and the explain the relevance of upgrading. This new non-blocking message can be permanently dismissed with a "Don't show me again."
We can also put a "Open upgraded file" (that was already auto created) as a Code Lens link at the top of the SARIF file. This could take the pressure off of the toast/message. It's the Producer Personas that open these files. They are also the ones more likely to save-as-upgrade. I think we agree the Consumer Personas get a new build frequently, so upgrading is less relevant.

Met with @GabeDeBacker. Near-term design will have the choices "Once" and "Always".
I think this is inline with @sherryyshi feedback also.


Need ability to execute sound tests or bypass them on our JCK machines

Our community machines are currently unable to run the JCK sound tests. Being in a data centre somewhere it's not easy to hear what's coming out of them. Even less so when they're really virtual machines as opposed to physicals.
Something in the setup of some of our (company intranet) machines is allowing these tests to pass, and we need to understand what it is and ensure that the our community machines can achieve the same results. As far as I can tell there are no sound devices detected by the OS and no /dev/audio or /dev/dsp devices on the machines, so it should cause those test not to execute rather than cause a failure.
FYI @suman-mitra

Closing for now as we're not running JCK - can reopen if that changes.


Add Metrics for Threads and Messages per Assistant

We need to have metrics for Threads and Messages per assistant

Added Metrics for Assistants https://docs.assistantshub.ai/docs/guides/analytics


WIP Remove static muts from examples

As discussed in #512, dereferencing a static of type StaticCell with #[link_section = ".."] is UB if the runtime doesn't initialise the memory area specified by link_section.
I think it should be something like
#[link_section = ".axisram.eth"]
static DES_RING: MaybeUninit<SomeKindOfUnsafeCell<ethernet::DesRing<4, 4>>> = MaybeUninit::uninit();

but need to work out what SomeKindOfUnsafeCell is exactly

Also related https://github.com/rust-embedded/cortex-m/issues/538

It's OK to use core::mem::transmute?
https://github.com/stm32-rs/stm32h7xx-hal/blob/0735f793e6d432653f2a7f1d8a2d05f073ca4f17/examples/adc_dma.rs#L49


Memory leaks when running unit tests

Valgrind output: valgrind_output.txt
Valgrind command used:
valgrind --log-file="valgrind_output" ../../cmake-build-debug/test/pandora_test
with working directory: pandora/test/test_cases. This command was executed on my laptop. All of the tests passed.
Commit: b914159c6ab01d3818aa731f37618038a5a39487
Branch: dev
For example:
==15934== Process terminating with default action of signal 6 (SIGABRT)
==15934==    at 0x5DF9E97: raise (raise.c:51)
==15934==    by 0x5DFB800: abort (abort.c:79)
==15934==    by 0x5DEB399: __assert_fail_base (assert.c:92)
==15934==    by 0x5DEB411: __assert_fail (assert.c:101)
==15934==    by 0x5E29E9: Interval::Interval(unsigned int, unsigned int) (interval.cpp:11)
==15934==    by 0x6136FD: Minimizer::Minimizer(unsigned long, unsigned int, unsigned int, bool) (minimizer.cpp:11)
==15934==    by 0x71C536: MinimizerTest_create_Test::TestBody() (minimizer_test.cpp:51)
==15934==    by 0x800F76: void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (in /home/rffrancon/github/pandora/cmake-build-debug/test/pandora_test)
==15934==    by 0x7FAEA2: void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (in /home/rffrancon/github/pandora/cmake-build-debug/test/pandora_test)
==15934==    by 0x7D99E9: testing::Test::Run() (in /home/rffrancon/github/pandora/cmake-build-debug/test/pandora_test)
==15934==    by 0x7DA346: testing::TestInfo::Run() (in /home/rffrancon/github/pandora/cmake-build-debug/test/pandora_test)
==15934==    by 0x7DA9C9: testing::TestCase::Run() (in /home/rffrancon/github/pandora/cmake-build-debug/test/pandora_test)
==15934==
==15934== HEAP SUMMARY:
==15934==     in use at exit: 7,154,922 bytes in 24,129 blocks
==15934==   total heap usage: 571,866 allocs, 547,737 frees, 125,362,426,822 bytes allocated
==15934==
==15934== LEAK SUMMARY:
==15934==    definitely lost: 5,792 bytes in 71 blocks
==15934==    indirectly lost: 2,722,572 bytes in 14,408 blocks
==15934==      possibly lost: 1,996,141 bytes in 931 blocks
==15934==    still reachable: 2,430,417 bytes in 8,719 blocks
==15934==         suppressed: 0 bytes in 0 blocks
==15934== Rerun with --leak-check=full to see details of leaked memory

Running the same unit tests on the yoda cluster produces a seg fault.

I can compile pandora and tests and run the tests on yoda on my dev_fix_vcf_ref which isn't many commits away from dev. Which unit tests segfault?
Could there be places where I have used new to set up tests, and not delete (or an equivalent) at the end of a test?

Most leaks are "still reachable" leaks. Other leaks are no longer reachable but occur in GATB code. Here are the lost leaks only (non-"still reachable"): valgrind_lost_leak_only.txt
Here's one example of a memory leak in unit tests:
Consider this use of new:
https://github.com/rmcolq/pandora/blob/756d423a69d9eb7ec5224452191e7c87fbbf7760/src/utils.cpp#L131
It's called in a unit test here:
https://github.com/rmcolq/pandora/blob/756d423a69d9eb7ec5224452191e7c87fbbf7760/test/localPRG_test.cpp#L1151
But I don't think it's ever freed.

So solution is to either delete all the pointers in the vector<LocalPRG*> prgs at the end of the test, or to replace the pointer with some sort of shared pointer in that function? What would you suggest?

A reliable quick fix would be to replace with shared pointers.

Test which fails on yoda: ExtractReadsTest.find_interval_in_localpath_minimal.

Is this an issue still?

Memory leaks are still an issue, however I found them in real and toy datasets. They were not all solved with smart pointers due to circular dependency issues with smart pointers (https://www.learncpp.com/cpp-tutorial/15-7-circular-dependency-issues-with-stdshared_ptr-and-stdweak_ptr/). I am trying to solve memory leaks in pandora compare on https://github.com/leoisl/pandora/commit/e6cac5339ac5c7a68a636058700a295ebb08d2b9, https://github.com/leoisl/pandora/commit/6d8004805909b1ac4e678faa994163904dbe7b49 and https://github.com/leoisl/pandora/commit/5d4ad0639d13fd3fd07b76670d1bb94c6de09b42 (these commits have more details on how these memory leaks look like). This is the current heap/leak summary from valgrind memcheck on a toy dataset in pandora compare:
5d4ad0_heap_leak_summary.txt
This seems fine - the 4 largest memory leaks we have now are due to OpenMP and Boost logging (I don't really know why we have them, but they seem very minor anyway, and I don't think we can do anything in this case...), but we need to pay attention if there are still some memory leaks in pandora compare (my runs are not covering all compare code I am afraid) and we need also to check for leaks in  pandora map and index.

When you say there is a memory leak in Boost logging, how much are we talking? I don't get how logging could be cause memory issues, it should just be dumping things to stderr?
Are you sure it just isn't related to this? i.e it is more a problem with valgrind being overzealous?

I was wondering also how logging could make memory leaks... But you are right, it is just valgrind being overzealous. Most of it is "still reachable" leaks happening in Boost/OpenMP, and some are possibly lost, so I think we are fine:
==2401== LEAK SUMMARY:
==2401==    definitely lost: 0 bytes in 0 blocks
==2401==    indirectly lost: 0 bytes in 0 blocks
==2401==      possibly lost: 2,128 bytes in 7 blocks
==2401==    still reachable: 10,136 bytes in 68 blocks
==2401==         suppressed: 0 bytes in 0 blocks

For completeness, this shows that we are indeed fine. This is the leak summary using only 1 thread:
==8636== LEAK SUMMARY:
==8636==    definitely lost: 0 bytes in 0 blocks
==8636==    indirectly lost: 0 bytes in 0 blocks
==8636==      possibly lost: 0 bytes in 0 blocks
==8636==    still reachable: 720 bytes in 8 blocks
==8636==         suppressed: 0 bytes in 0 blocks

Now we have 0 "possibly lost" and very few "still reachable", which is usually not a problem.
When using more threads with OpenMP, valgrind will see pseudo-memory leaks which we should not worry (see https://medium.com/@auraham/pseudo-memory-leaks-when-using-openmp-11a383cc4cf9 ).
So I guess we can say no memory leaks in pandora compare anymore.

Is this also the case for unit tests (I.e the title of this issue)?

No, I still have to adapt the unit tests to the interfaces I changed (not compiling right now) and do the test. It is also true that this is an overstatement:

So I guess we can say no memory leaks in pandora compare anymore.

I just did not get memory leaks in one test dataset, which I am sure it does not cover the whole pandora compare code...


Resolve TODOs

We have ~6 TODOs, ~4 of which are visible. We should either resolve them or turn them into issues (and then remove them from the documentation as they look bad).

I turned this into issues #1024, #1025, and #1026


event - add kafka support (publish/subscribe)

add support for the anchor platform to publish events to Kafka
add sending events for quote_created, transaction_created, transaction_payment_received
add support for reference server event consumer to read events from Kafka
add support for reference server event consumer to process transaction_payment_received events and update the transaction status on the anchor platform side via PATCH
add example docker-compose file for running single instance kafka
addresses:
https://github.com/stellar/java-stellar-anchor-sdk/issues/157
https://github.com/stellar/java-stellar-anchor-sdk/issues/155

Reference Server Preview is available here:https://anchor-ref-pr174.previews.kube001.services.stellar-ops.com/SEP Server Preview is available here:https://anchor-sep-pr174.previews.kube001.services.stellar-ops.com/

Reference Server Preview is available here:https://anchor-ref-pr174.previews.kube001.services.stellar-ops.com/SEP Server Preview is available here:https://anchor-sep-pr174.previews.kube001.services.stellar-ops.com/

Reference Server Preview is available here:https://anchor-ref-pr174.previews.kube001.services.stellar-ops.com/SEP Server Preview is available here:https://anchor-sep-pr174.previews.kube001.services.stellar-ops.com/

Reference Server Preview is available here:https://anchor-ref-pr174.previews.kube001.services.stellar-ops.com/SEP Server Preview is available here:https://anchor-sep-pr174.previews.kube001.services.stellar-ops.com/

Reference Server Preview is available here:https://anchor-ref-pr174.previews.kube001.services.stellar-ops.com/SEP Server Preview is available here:https://anchor-sep-pr174.previews.kube001.services.stellar-ops.com/

Reference Server Preview is available here:https://anchor-ref-pr174.previews.kube001.services.stellar-ops.com/SEP Server Preview is available here:https://anchor-sep-pr174.previews.kube001.services.stellar-ops.com/

Something went wrong with PR preview build please check

Reference Server Preview is available here:https://anchor-ref-pr174.previews.kube001.services.stellar-ops.com/SEP Server Preview is available here:https://anchor-sep-pr174.previews.kube001.services.stellar-ops.com/

Reference Server Preview is available here:https://anchor-ref-pr174.previews.kube001.services.stellar-ops.com/SEP Server Preview is available here:https://anchor-sep-pr174.previews.kube001.services.stellar-ops.com/

Reference Server Preview is available here:https://anchor-ref-pr174.previews.kube001.services.stellar-ops.com/SEP Server Preview is available here:https://anchor-sep-pr174.previews.kube001.services.stellar-ops.com/

Reference Server Preview is available here:https://anchor-ref-pr174.previews.kube001.services.stellar-ops.com/SEP Server Preview is available here:https://anchor-sep-pr174.previews.kube001.services.stellar-ops.com/


Release 1.0.0

I would like to close out this release cycle in the next few days. If there are any bug fixes (no features!) that really should get in, please list them in the comments.

I'm happy with completing the conversion to pytest and getting 1.0.0 out the door!

So am I. :smile:
I'll look into the conflicts with #334 and #337 in a bit.

#334 :ok_hand:
Am I right that we are not getting coverage comments any more in the PRs? According to my local check it's still at 96%.

Once we got #337 in and completely removed test_main.py we can close #343.

#337 :ok_hand:
I merged #334 into it, so merging into master shouldn't be a problem after you accepted #337.

Looking through the remaining unittest tests, I noticed that test_config.py still exists although I completely removed it in b7b96f9 in the course of #345. Apparently something went wrong with the merge as I don't find the commit on master. :cry:
Other than that there are a few modules left that use unittest:

test_hooks.py
test_utils.py
test_vcs.py

Additional notes:

__init__.py can be removed as soon as we don't use CookiecutterCleanSystemTestCase anymore
test_arg_parsing.py can be removed as @pydanny stated in a550efa3

test_hooks.py #412 :joy_cat:

test_utils.py #413

test_vcs.py #414 :triumph:

Any other bugfixes that should get in? Perhaps #405?

Apparently #405 breaks on Python 3 https://travis-ci.org/audreyr/cookiecutter/builds/53786422

There are still some PRs open for the milestone:

#132 has conflicts
#265 too
#335 should be fine, however pytest is looking for tests inside a folder of the same name anyways

Okay, everything is either merged in or pushed to the 1.1.0 release. I am commencing the 1.0.0 release!

Working through https://gist.github.com/pydanny/940641f591198c78b8a4

Great! :smile:
HISTORY.rst contains a broken link to @marctc. The reference misses the '@' symbol.
Can we possibly change the description in HISTORY.rst from
Lay the foundation for py.test fixtures and convert test_generate.py and test_examples.py
to something along the lines of
Convert the unittest suite to py.test for the sake of comprehensibilty

I'm sure you'll come up with something better than this. I'm basicly sleeping already :sleepy:

@marctc is linked properly now. Also changed the py.test text as you requested. :smile:

Thank you, Sir! :bow:

+1


Fix #2514 - Use optimistic concurrency to prevent multiple UpdateIsLatest calls on same package

Approach is same as discussed, but implementation is more complex due to our need to restrict the optimistic concurrency check to CUD operations only on specific columns - which EF doesn't support.

I'm interested in what a functional test on this change would look like. Before the change, could we have written a test to consistently reproduce the issue (by mocking out as much as possible and throwing enough threads at it)?

                // a release version and set it to IsLatest.

isLatestStable.

Refers to: src/NuGetGallery/Services/PackageService.cs:835 in 7f861cd. [](commit_id = 7f861cd68dfdcc33b9e5f9f66f3feda61c41b8c9, deletion_comment = False)

        public async Task WillUpdateIsLatest1()

This naming is extremely confusing. Could you rename those?

Refers to: tests/NuGetGallery.Facts/Services/PackageServiceFacts.cs:1074 in 7f861cd. [](commit_id = 7f861cd68dfdcc33b9e5f9f66f3feda61c41b8c9, deletion_comment = False)

Regarding functional tests: Scott wrote a test that pushes a bunch of packages and verified timestamps: https://github.com/NuGet/NuGetGallery/blob/ce6c5d603e76ca1265c0b759d4e0d898acd7349d/tests/NuGetGallery.FunctionalTests/ODataFeeds/V2FeedExtendedTests.cs#L64
You could do something similar

@skofman1 @joelverhagen still working on functional test for this, so will have another push coming

Looks great! :shipit:

@scottbommarito look ok to you?


How to limit resources?

With c.YarnSpawner.mem_limit and c.YarnSpawner.cpu_limit you can configure YARN limits for the notebook. The problem is that instead of generating errors when more space is allocated, YARN automatically kills the container so all the work is lost.
How can we limit the memory and cpu of the notebook to get errors when more memory is requested instead to avoid container kill?

Sorry, AFAIK there's not a clean way to handle this, your application would have to monitor its resource usage itself. Java can support this because it's VM supports setting memory usage limits, whereas Python's doesn't.


Update Set-SPServer.md

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-server/Set-SPServer.md
:white_check_mark:Succeeded
View (sharepoint-ps)

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


Issue #45, Fixed Serializer does not exist, Added compatibility for M…

Issue #45, Fixed Serializer does not exist, Added compatibility for M 2.1.*

Thanks for contributing @pinedamg! This looks great. I'm merging this into develop branch for the time being because I have one other bug fix that I want to fix before I make another release.


Update package.json for chatgpt-quick-actions with GPT-4o model

Description
Adding ChatGPT-Quick-Actions GPT-4o model
Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

@alanzchen please check this PR, really needed 🙏

@alanzchen thanks for awesome extension! I have reinstalled it, but I still don't see GPT-4o model, do you know when it is going to be published?

I've added to Summarize command only for now. Going to update all commands in the next PR.

new PR https://github.com/raycast/extensions/pull/12554


Exclude certain modules

With multi-module projects, I'd like the ability to exclude certain ones, as I may not want to obtain any information from certain modules that are, for example, only used during development (thus assessing the risk behind these dependencies are unnecessary.)

I added this for 3.3.0. Use 'excludedModules' as a comma separated list of module names to exclude from the output.


Merge #13983: rpc: Return more specific reject reason for submitblock

fa6ab8ada1 rpc: Return more specific reject reason for submitblock (MarcoFalke)
Pull request description:
The second commit in #13439 made the TODO in the first commit impossible to solve.
The meaning of fNewBlock changed from "This is the first time we process this block" to "We are about to write the new valid block".
So whenever fNewBlock is true, the block was valid. And whenever the fNewBlock is false, the block is either valid or invalid. If it was valid and not new, we know it is a "duplicate". In all other cases, the BIP22ValidationResult() will return the reason why it is invalid.
Tree-SHA512: 4b6edf7a912339c3acb0fccfabbdd6d812a0321fb1639c244c2714e58dc119aa2b8c6bf8f7d61ea609a1b861bbc23f920370fcf989c48452721e259a8ce93d24

@UdjinM6 @PastaPastaPasta can either of you please restart GitLab CI? The failing test is a flaky LLMQ one so it should succeed on a new run.

I'll do you one better :)


only styling icon as gray not every children

#643 only styling icon as gray, not every child

@ericsewalson Can you test this against the original issue you were seeing?

This works as expected.


Hard to find Job, Ingress, Deployment from top-down

If I heard that 1.2 has Job, Ingress, or Deployment, and then I went to the top-level docs page, it is sort of hard to find the pages for these types.  They are there and linked, but finding them is not easy.  A user on slack mentioned this, and I also separately noticed it.

In general, we need to look thoroughly at the navigation organization.
cc @janetkuo @pwittrock @johndmulhausen

I agree that I'd advise any new project to use those (as I did in my article). We should promote best practices in the getting started guides.

Proposal for new doc organization:
https://docs.google.com/document/d/12Nfj2E8tZL-CMnnpkSH9m5k_oqd4qJh4qDwYDxPGJJI/edit?ts=5705b1fc#

For reference my article which hobbyiste seem to appreciate: http://beroux.com/english/articles/kubernetes/

@wernight I like the overview graph!


request help: How to rewrite http to https in the apisix ingress controller

Issue description
I have a web-based cluster and it can be accessed by using http successfully. Now I am prepared to use https, but after browsing https://apisix.apache.org/docs/apisix/plugins/redirect/ and https://apisix.apache.org/docs/apisix/FAQ/#how-to-redirect-http-to-https-via-apache-apisix, I still confusing what should I do first. Could you please give some advice? am
Environment

your apisix-ingress-controller version (output of apisix-ingress-controller version --long):1.3.0
your Kubernetes cluster version (output of kubectl version):1.22.3

You have two ways:

You can use the Ingress resource and add k8s.apisix.apache.org/http-to-https: "true" annotation.   ref: https://github.com/apache/apisix-ingress-controller/blob/3b993533d66b25c186f4096727d373e5ed4131c6/test/e2e/annotations/redirect.go#L39

You can use the ApisixRoute resource, and add plugin configuration:

   plugins:
   - name: redirect
     enable: true
     config:
       http_to_https: true

ref: https://github.com/apache/apisix-ingress-controller/blob/3b993533d66b25c186f4096727d373e5ed4131c6/test/e2e/plugins/redirect.go#L57-L61


LSNBLDR-222 - Add search capability to lessons

This patch makes the text box areas of lessons participate in Sakai search. Testing it out in the latest version of Elastic Search has produced good results so far in both 11.x and 10.x.
Other tools areas linked to from Lessons are searchable via their own providers, but some people add a lot of text to Lessons. I think with LSNBLDR-455 and import/export keeping text inline (and possibly allowing you to change external text to have this attribute) this would be even more useful.
Please comment/review.

@clhedrick any thoughts on this functionality?

Thanks for the advice, I'll revise that canRead method and update the request.

My advice on can read assumes that this is called for a specific end user, i.e. that it's used in display of the item, not in building the index. I assume that you build an index with all items, and then decide for each which ones you're willing to show that person. I doubt you can afford having a separate index for each person.
Note that doing a de novo check on accessibility of an item is fairly expensive. The access controls in lessons were designed to be cheap in normal application. But that involves getting to a page and showing a number of items on the page. Lots of caching is done that makes those checks pretty reasonable. But checking an individual item directly involves a more expensive computation on accessibility of the page and the individual item. Indeed it's only fairly recently that I even have an algorithm for doing it that I'm willing to trust.
If you're ever checking several items on a page, major optimizations are possible by reusing the same SimplePageBean.


Start using github action

Since I need to do the same for protopipe I guess I will get inspired by this PR :)
why is there still Travis-related code if we do not want to use it anymore?

Where do you mean?

Where do you mean?

I thing envvars like TRAVIS_OS_NAME

Hey, I am not finished here, I just started ;)

Hey, I am not finished here, I just started ;)

ah ok sorry! my bad

Also added pypi deploy and docs deploy now

2 questions:

could we deploy also to conda from here?
is it possible to build also the PR version of the docs like on readthedocs?

could we deploy also to conda from here?

We moved to conda forge, the process is largely automatized after a pypi release has been made (A bot opens a PR with the changes proposed to build the new conda package)

is it possible to build also the PR version of the docs like on readthedocs?

The docs are build for pull requests. I don't understand the question about readthedocs.

could we deploy also to conda from here?

we're trying to move to conda-forge, so that would solve that.

is it possible to build also the PR version of the docs like on readthedocs?

The problem is not generating the docs (they are actuallly generated for every PR, even in Travis), but hosting them on a webserver.  Github-pages is "dumb" in the sense that it just displays things that are dropped into it.  ReadTheDocs is smarter and has mechanisms for switching between versions of the docs to display, which we would have to implement ourselves (so it's non-trivial to support that).  Should probably look into how GammaPy is doing it.

We moved to conda forge, the process is largely automatized after a pypi release has been made (A bot opens a PR with the changes proposed to build the new conda package)

OK

The docs are build for pull requests, they are only deployed for pushes to master. I don't understand the question about readthedocs.
See that this PR has a docs check?

sorry I meant to see them
when I use readthedocs I have link in the check for peeking at the built docs before merging, so I don't have to checkout the branch or the PR and build them again
Of course this is not necessary, it's just a nice feature to make it easier to check the docs

The problem is not generating the docs (they are actuallly generated for every PR, even in Travis), but hosting them on a webserver. Github-pages is "dumb" in the sense that it just displays things that are dropped into it. ReadTheDocs is smarter and has mechanisms for switching between versions of the docs to display, which we would have to implement ourselves (so it's non-trivial to support that). Should probably look into how GammaPy is doing it. But even there, having docs per PR would not be easy/possible. Per version would be more interesting, but also not trivial.

Sorry I didn't see this!
I guess this answers my question, then.

@kosack The current Gammapy docs setup is here: https://github.com/gammapy/gammapy-docs
Our problem was, that we ran out of resources to build our docs on readthedocs. With all the tutorials and example plots etc. our docs build currently takes ~20 min. So we have moved to the following solution:

Docs are deployed in a separate repo: https://github.com/gammapy/gammapy-docs
There is one dev folder and a new folder for each version
In a sense we mis-use the repo for file hosting. It works but, is non-ideal, as the size of the repo grows (currently it's ~2 GB). I guess at some point we possibly run into the storage limits imposed by GitHub.  However one could probably just delete the git history or change to a different hosting services...
The version docs are currently build and uploaded manually as part of the release process. As long as releases are not done that often this is acceptable.
For the "dev" docs we have a GitHub action, that can be manually triggered. Of course one could trigger on each PR, but typically it's sufficient to build the docs only for relevant PRs, or before developer meetings etc.
We don't have a nice switching panel for versions as readthedocs, but users are notified (e.g. https://docs.gammapy.org/0.17/), if they don't watch the latest version. To switch between the versions one has to manually update the URL (e.g. https://docs.gammapy.org/dev/). This works, however we found that as we introduced the change, many users were not aware of it and looked at a different version of the docs than expected. The version is shown in the upper left but it was not present enough...

All in all the setup is not bad, but should be improved / automatised in some regards.


How is presence determined if within range of multiple ESP32s?

I am currently using ESPresense and I have switched over one of my nodes to this project to test it out. What I am a little confused about is if I am within the "present" RSSI range of more than one ESP32 how can I handle this? ESPresense attempts to uniquely identify devices which makes this somewhat simpler as I can set my RSSI value to cover more distance, and whichever node reports the highest signal determines what room the device is in.
I can of course set the present RSSI lower, but that doesn't leave me much room for error as my devices seem to maintain great signal well into adjoining rooms.
Is there any suggested optimization for households with more than one apple watch? With each node declaring present or not present instead of device trackers it seems a distant watch would trigger the not present value for a room that is occupied with another watch.

Hi @Zipties - Detecting individual Apple Watches is something that I'd love to do. I wrote about this in the readme. But I think it's too complicated with yaml + lambda, and this should rather be an ESPHome plugin. I haven't got a clue how to write a BLE plugin, so will need a lot of investigation and some mentorship before I can pull that off.
At the moment, the logic for presence is: if any watch is below a rooms threshold then someone is present in the room.
Each room keeps its own present/not present state, to avoid the complexity of managing state across multiple ESPs (in yaml+lambda...) You could do something in NodeRED, or build a template entity in HA, that uses the strongest RSSI to determine which room you are in.


JS Autocomplete - mapLayer is not defined

Due to the modularization of the JS we introduced a bug.
In the autocomplete.js we call mapLayer.focus(req, 15, index);
However the mapLayer is not defined. If we'd define the mapLayer and call the focus method. The focus method cannot find the method setFlag which is defined int the main-template.js.
I am not sure

Hmmh, when do you get this bug? What steps do you do to reproduce this?

You have to enable autocomplete in the main template. Then start typing and select one of the autocomplete items. Now it should focus that location on the map. But you get the exception.

Ah, okay. So this does not occur as I've not yet deployed it ... so also kind of related to #611

BTW: layer= scheint auch leer zu bleiben ...

As a quickfix I'd propose to change the autocomplete.js to:
if(mapLayer){
   mapLayer.focus(req, 15, index);
}

BTW: layer= scheint auch leer zu bleiben ...

What do you mean here?

Ups, I meant to write English ;) and it seems that the layer parameter after the modularization is always empty but should filled with the picked map overlay instead.

This is fixed thankfully from @fbonzon in #615

Works for me now. Thanks @fbonzon .


Errors in relations to tabs

I keep getting the following errors in my logs.
I'm on HA 0.110.4 and CH 1.4.7, running on hassio on Ubuntu on parallels on Mac. I have two Dashboards configured via HA, though these errors don't seem to be generate very time I visit a dashboards so I'm not quite sure of the trigger. They seem to be being generated in groups of 10, but not always. My dashboards have 4 tabs on each dashboard.
Logger: frontend.js.latest.202005195
Source: components/system_log/__init__.py:209
First occurred: 10:26:42 (51 occurrences)
Last logged: 15:05:40

https://www.xxxxxxx.org.uk:8123/hacsfiles/custom-header/custom-header.js:596:20117 Uncaught TypeError: Cannot read property 'tabs' of undefined
https://www.xxxxxxx.org.uk:8123/hacsfiles/custom-header/custom-header.js:596:47165 TypeError: undefined is not an object (evaluating 'ha_elements().tabs')

Added Custom Header config
custom_header:
  background: 'rgba(155, 155, 155, 0.25)'
  compact_mode: true
  default_tab: '0'
  disable_sidebar: true
  exceptions:
    - conditions:
        user: Roger Selwyn
      config:
        disable_sidebar: false
        hide_config: false
        hide_help: false
        hide_raw: false
        hide_unused: false
        options_hide: false
        show_tabs: []

No errors showing in browser console (I use Chrome/IOS HASS app), but then I don't know what makes it generate the errors, so getting the console to show errors maybe due to when it triggers errors in the logs.

I'm just testing to see if I still get the error when I remove `show_tab' from the exception since it is empty. probably empty because I've them out to a separate dashboard.

This was recently fixed in the latest pre-releases. If you use HACS you can install them by selecting reinstall on CH in HACS and selecting "Show Beta Versions" to update to the latest (  1.4.9 ).

Thanks


liberation mono required by st is not in the dependency file

The build for st, in the Xorg repo requires Liberation Mono, while not listing the font as a dependency. I propose we add liberation mono to the dep list and move liberation mono in to Xorg. OR move st into community.

closed my mistake, I was wrong about this


GHA: only publish after sucessful test

Codecov Report

Merging #47 (e36c3b7) into main (070499d) will decrease coverage by 48.38%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main      #47       +/-   ##
===========================================
- Coverage   83.87%   35.48%   -48.39%
===========================================
  Files           2        2
  Lines          31       31
  Branches        2        2
===========================================
- Hits           26       11       -15
- Misses          5       20       +15

Impacted Files
Coverage Δ

.../de/tobiasroeser/mill/vcs/version/VcsVersion.scala
0.00% <0.00%> (-83.34%)
:arrow_down:

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 070499d...e36c3b7. Read the comment docs.


chore: change chatCompletion function  to latest api change

Description: Updated the method of obtaining chat completions to be compatible with the latest OpenAI API. OpenAI has deprecated chatCompletion in their recent release. This update replaces the deprecated method with the current client.chat.completions method, ensuring compatibility with the latest API standards.

Twitter handle: @nish306

I have made sure the PR is passing linting and testing before submitting. I have run make format, make lint, and make test to check this locally.

change should already be landed, let me know if what's in master works for you @Nishkarsh1606!

@baskaryan i am using the latest version and I am still getting the following error (i installed langchain and openai as dependencies a couple of minutes ago!)
Traceback (most recent call last):   File "/Users/nishkarsh/Desktop/Projects/test-langchain/main.py", line 24, in <module>     llm = ChatOpenAI(temperature=0)           ^^^^^^^^^^^^^^^^^^^^^^^^^   File "/Users/nishkarsh/Desktop/Projects/test-langchain/.venv/lib/python3.11/site-packages/langchain/load/serializable.py", line 97, in __init__     super().__init__(**kwargs)   File "/Users/nishkarsh/Desktop/Projects/test-langchain/.venv/lib/python3.11/site-packages/pydantic/v1/main.py", line 341, in __init__     raise validation_error pydantic.v1.error_wrappers.ValidationError: 1 validation error for ChatOpenAI __root__   openaihas noChatCompletionattribute, this is likely due to an old version of the openai package. Try upgrading it withpip install --upgrade openai. (type=value_error)
Also, in chat_models i see we're still invoking the previous method for chatCompletion:
        try:             values["client"] = **openai.ChatCompletion**         except AttributeError:             raise ValueError(                 "openaihas noChatCompletionattribute, this is likely "                 "due to an old version of the openai package. Try upgrading it "                 "withpip install --upgrade openai."             )         if values["n"] < 1:             raise ValueError("n must be at least 1.")         if values["n"] > 1 and values["streaming"]:             raise ValueError("n must be 1 when streaming.")         return values

@Nishkarsh1606 @baskaryan  Tested locally and confirmed that 0.0.331rc2 fixes the issue.
from langchain.chat_models import ChatOpenAI

print(ChatOpenAI().predict("What's your name?"))
#=> I am an AI language model developed by OpenAI and I don't have a personal name. You can simply refer to me as GPT-3. How can I assist you today?

Shinyas-Air:test-openai shinya$ pip show langchain
Name: langchain
Version: 0.0.331rc2
Summary: Building applications with LLMs through composability
Home-page: https://github.com/langchain-ai/langchain
Author:
Author-email:
License: MIT
Location: /Users/shinya/.asdf/installs/python/3.10.13/lib/python3.10/site-packages
Requires: aiohttp, anyio, async-timeout, dataclasses-json, jsonpatch, langsmith, numpy, pydantic, PyYAML, requests, SQLAlchemy, tenacity
Required-by:

Shinyas-Air:test-openai shinya$ pip show openai
Name: openai
Version: 1.1.1
Summary: Client library for the openai API
Home-page:
Author:
Author-email: OpenAI<EMAIL_ADDRESS>License:
Location: /Users/shinya/.asdf/installs/python/3.10.13/lib/python3.10/site-packages
Requires: anyio, distro, httpx, pydantic, tqdm, typing-extensions
Required-by:

this should be fixed through other prs!


Re #2486 - Fixing "Exception: charmap codec can t decode byte 0x81 in position 440: character maps to " error on some platforms by specifying default charset encoding

Closes #2486

Alpine linux based builds will need

# Set the default environment variable
ENV LC_ALL=en_US.UTF-8

# Install necessary packages and configure locales
RUN apk update && apk add --no-cache \
    musl-locales \
    musl-locales-lang \
    && echo "export LANG=en_US.UTF-8" > /etc/profile.d/locale.sh

# Optionally, set the locale (depending on your use case)
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US.UTF-8

You have locales listed twice in the apt-get install section of the Dockerfile, on lines 44 and 46.

fixed by https://github.com/dgtlmoon/changedetection.io/pull/2574


fix: base64 attachment whitespace

Hello. When using a base64 attachment writeCmd adds a single space between 'Content-Transfer-Encoding: base64' and the newline. Most email clients simply ignore it, however, at least Apple Mail does not and consequently fails to decode the attachment.

LGTM thanks!


Some LVGL configuration options are not available on menuconfig

@kisvegabor Some LVGL configuration options are not available on the menuconfig, such as:
/* Type of coordinates. Should be `int16_t` (or `int32_t` for extreme cases) */
typedef int16_t lv_coord_t;

and
/*=====================
 *  Compiler settings
 *====================*/
/* Define a custom attribute to `lv_tick_inc` function */
#define LV_ATTRIBUTE_TICK_INC

/* Define a custom attribute to `lv_task_handler` function */
#define LV_ATTRIBUTE_TASK_HANDLER

/* Define a custom attribute to `lv_disp_flush_ready` function */
#define LV_ATTRIBUTE_FLUSH_READY

/* With size optimization (-Os) the compiler might not align data to
 * 4 or 8 byte boundary. This alignment will be explicitly applied where needed.
 * E.g. __attribute__((aligned(4))) */
#define LV_ATTRIBUTE_MEM_ALIGN

/* Attribute to mark large constant arrays for example
 * font's bitmaps */
#define LV_ATTRIBUTE_LARGE_CONST

/* Prefix performance critical functions to place them into a faster memory (e.g RAM)
 * Uses 15-20 kB extra memory */
#define LV_ATTRIBUTE_FAST_MEM

This is because the option types available on Kconfig.
For the LV_ATTRIBUTE_x options we can do something like this, so the users can define them somewhere else:
/*=====================
 *  Compiler settings
 *====================*/
/* Define a custom attribute to `lv_tick_inc` function */
#ifndef LV_ATTRIBUTE_TICK_INC
#define LV_ATTRIBUTE_TICK_INC
#endif

Thank you for opening this issue!
IMO, we can leave minimal lv_conf.h (only with the non-Kconfig compatible options) to let the user set those there.
By the way, what should happen if we have an option defined lv_conf.h and Kconfig too? Which one should have a higher priority?

Hi,

By the way, what should happen if we have an option defined lv_conf.h and Kconfig too? Which one should have a higher priority? (It should be decided in lv_conf_internal.h)

I don't follow you there, the symbols defined in Kconfig are used in the lv_conf.h like so:
/* Default display refresh period.
 * Can be changed in the display driver (`lv_disp_drv_t`).*/
#define LV_DISP_DEF_REFR_PERIOD CONFIG_LVGL_DISP_DEF_REFR_PERIOD   /*[ms]*/

LVGL_DISP_DEF_REFR_PERIOD is defined in the Kconfig file (CONFIG_  is appended before compiling), the value of it is given when you configure the menuconfig. You can see the value of CONFIG_LVGL_DISP_DEF_REFR_PERIOD in build/config/sdkconfig.h.
I don't know what do you mean with options defined on both lv_conf.h and Kconfig at the same time, care to expand?

In a previous issue, we talked about how lv_conf.h, Kconfig and lv_conf_inernal.h can live together.
If we slightly modify that idea by always include lv_conf.h but give Kconfig a higher priority, user can simply define non-Kconfig compatible options in lv_conf.h.
#warning can be added if an lv_conf.h option is overwritten by Kconfig.
Or the opposite, give lv_conf.h higher priority? I don't know. :sweat_smile: