[REQ] ResultUnconfirmedTxs should include height

When requesting unconfirmed txs we should be able to request it for a specific height or at at least the result should include the hight of the answer (I think ANY request should include height TBH). Because AFAIK there is no method to understand at which height the unconfirmed_txs belong to.
Due to delays in the network I can maybe request unconfirmed_txs at block N, then when the node receives the request it already moved to block N+1 and I get the unconfirmed_txs for block N+1 without knowing.

What should be the high-level design with testing steps to regenerate this state from scratch and test if passed?

This seems like a low-hanging fruit, we can roll such a (potentially breaking) change in future versions of the RPC.

Hi @tuloski, I'm just reaching out since I found a bit of time to look into this issue.
I've looked at the code for the unconfirmed_txs in the rpc and this method as you mentioned, only returns txs available in the mempool which don't necessarily have a height associated with them.
Looking into the logic, this rpc endpoint has an Environment which has a Mempool, but this mempool interface doesn't have a height attach to it
https://github.com/cometbft/cometbft/blob/e7213e9bb49d958994f3b013ba83717172dce465/rpc/core/mempool.go#L161
I understand that you want to have a height returned in order to understand what unconfirmed txs was part of a particular height.  As I said, this particular mempool of the environment doesn't have a height property, but in our CListmempool implementation there is a height that it's is updated during the Commit phase in the state execution logic
https://github.com/cometbft/cometbft/blob/e7213e9bb49d958994f3b013ba83717172dce465/internal/state/execution.go#L421
the height is set on Update of the CListmempool
https://github.com/cometbft/cometbft/blob/e7213e9bb49d958994f3b013ba83717172dce465/mempool/clist_mempool.go#L596
But this mempool is not the only one supported by CometBFT so we'd need to investigate a way that this height can be retrieved in the the unconfirmed_txs endpoint in a way that would also support other mempool types.
But even if we could expose that, the fact that txs in the mempool don't have a height associated with them makes hard to infer assumptions.
Maybe we should understand better your use case, maybe there are different approaches to accomplish what you trying to do e.g. could a hash of the txs be useful ? Or can you subscribe to the endpoint when a new height is created for example and you track that concurrently.

Hi @tuloski, please let us know if you have any feedback on the comment above, otherwise we will close this issue for now. Thanks!

I'm not that low level so I can't suggest practical solutions BUT the theory is "simple":
Consensus was achieved on height N.
The mempool contains a list of candidate transactions for height N+1.
Unless height N+1 reaches consensus, the endpoint for unconfirmed_txs should return with height N.
And this should be valid for each endpoint. IMO the height should be a standard param for every endpoint to get consistend data in an async environment.

Or can you subscribe to the endpoint when a new height is created for example and you track that concurrently.

This clearly cannot work, because the subscription of the height and the request for unconfirmed_txs are two different http/wss requests so depending on delays on the network I can receive non-syncronized data.

Requires deeper refactoring of the mempool/rpc sub-systems interfaces, so it's not a low-hanging fruit.
Will go into backlog as we can't prioritize this now given our capacity. External contributions welcome!


add doc for wiping etcd state

Fixes https://github.com/kubernetes/kubeadm/issues/362
/cc @luxas

This change is

@jamiehannaford small nit, is the same CLI command for etcd api v2 and api v3?

@aanm I don't think so. v3 is generally favoured AFAIK, but there's a link on their README (which we link to) which points people to the v2 API if they're still using it

@jamiehannaford since they are not the same command, can you add the command in the Note added?

Ping @jamiehannaford

@luxas @aanm Does this lgtm to you?

@jamiehannaford Are you ready for me to merge this? Or do you want to add a WARNING like @luxas suggests?

@steveperry-53 No, it's fine as is. Merge away!

Thank you guys for the hard work. However, what I've download following by this instruction https://kubernetes.io/docs/setup/independent/high-availability/#kubeadm-init-master0 it's still for API version: 2, and it's in a cluster.
[root@k8s]# etcdctl --version
etcdctl version: 3.1.10
API version: 2
And I bumped into the same problem which I need to wipe out all the data on this external etcd clusters whenever I need to kubeadm reset.
Can I suggest the doc to have command for API version: 2 and for the cluster like the deployment guide in the above-metioned link propose?


Formatting: separate BE mobile numbers by 2 digits.

Belgian mobile numbers had the last 6 numbers bundled, which affected readability once formatted.
If there's a specific reason, please ignore this, but I can't seem to find one.
Before : +32 495 123456
After : +32 495 12 34 56

Coverage remained the same at 99.58% when pulling 7f0f6b630574ee7ef446abc9e63a773b9e440763 on kvzb:be-mobile-formatting into fb3de015e293797150db2fc1b4ef8edb2634c00a on floere:master.

Coverage remained the same at 99.58% when pulling 7f0f6b630574ee7ef446abc9e63a773b9e440763 on kvzb:be-mobile-formatting into fb3de015e293797150db2fc1b4ef8edb2634c00a on floere:master.

Great, thank you! Released in 2.12.14.

Damn that was fast ! Thanks to you, great library. :+1:

@kvzb Thanks! And having a clean PR like this one helps with the speed :)


cannot import name 'non_max_suppression' from 'spconv.utils'

Import error occured when Im running:
python create_data.py kitti_data_prep --data_path=KITTI_DATASET_ROOT
Spend 2 days on this problem,but still cannot solve it.
Any ideas？

Hey guys,
I solved this problem by using a docker image cuda10.0-base. My previous cuda version is 9.
Here is the image address:
docker pull smallmunich/ubt1804_second:v0
The author set up all things needed for this project : spconv...
FYI,
But I met a new problem when I'm running this training command inside the container:
python ./pytorch/train.py train --config_path=./configs/car.fhd.config -model_dir=/path/to/model_dir
I'm trying to solve it.

Hi @ZaiwangLi  I have the same issue of
RuntimeError: /root/second.pytorch/second/spconv/src/spconv/indice.cu 165
cuda execution failed with error 8 invalid device function
prepareSubMHashKernel failed
May I ask how you solved it? Thanks.


[New Port Request] cglm

Library name: cglm
Library description: OpenGL Mathematics (glm) for C
Source repository URL:
https://github.com/recp/cglm
Project homepage (if different from the source repository):
Anything else that is useful to know when adding (such as optional features the library may have that should be included):

Hey! I'd like to contribute to this.

Thanks @eRuaro! We're happy to accept a PR that support this!

REF for a stable tag/commit to use, and SHA512 with the checksum of the downloaded zipfile (you can get this easily by setting it to 1, trying to install the package, and copying the checksum).
See https://github.com/microsoft/vcpkg/blob/master/docs/examples/packaging-github-repos.md for details.

Hey, @PhoebeHui, the package now appears when I use the search command. Installing the package brings out this error.
CMake Error at scripts/cmake/vcpkg_download_distfile.cmake:184 (message):

     Failed to download file.
     If you use a proxy, please check your proxy setting. Possible causes are:

     1. You are actually using an HTTP proxy, but setting HTTPS_PROXY variable
        to `https://address:port`. This is not correct, because `https://` prefix
        claims the proxy is an HTTPS proxy, while your proxy (v2ray, shadowsocksr
        , etc..) is an HTTP proxy. Try setting `http://address:port` to both
        HTTP_PROXY and HTTPS_PROXY instead.

     2. You are using Fiddler. Currently a bug (https://github.com/microsoft/vcpkg/issues/17752)
        will set HTTPS_PROXY to `https://fiddler_address:port` which lead to problem 1 above.
        Workaround is open Windows 10 Settings App, and search for Proxy Configuration page,
        Change `http=address:port;https=address:port` to `address`, and fill the port number.

     3. You proxy's remote server is out of service.

     In future vcpkg releases, if you are using Windows, you no longer need to set
     HTTP(S)_PROXY environment variables. Vcpkg will simply apply Windows IE Proxy
     Settings set by your proxy software. See (https://github.com/microsoft/vcpkg-tool/pull/49)
     and (https://github.com/microsoft/vcpkg-tool/pull/77)

     Otherwise, please submit an issue at https://github.com/Microsoft/vcpkg/issues

Call Stack (most recent call first):
 scripts/cmake/vcpkg_from_github.cmake:147 (vcpkg_download_distfile)
 ports/cglm/portfile.cmake:1 (vcpkg_from_github)
 scripts/ports.cmake:141 (include)

I don't get the instructions on how to check the proxy settings on windows. I tried doing the instructions on number 2 but my proxy setup is on auto. I'm not sure on what to input on the address and port on the manual proxy setup.

@eRuaro, see https://stackoverflow.com/questions/48473330/set-http-proxy-environment-variable-with-domain-user-and-pass-in-windows

Hey, @PhoebeHui I'm now able to download other libraries, but I still can't download cglm. I'm pretty new to CMake so I don't know if what I'm doing is right, I based the portfile.cmake file on the rapidjson library. I was able to install rapidjson, but not cglm. Any help would be really appreciated.
vcpkg_from_github(
    OUT_SOURCE_PATH SOURCE_PATH
    REPO recp/cglm
    REF 486f9b92b2be6d9dc3a5cf237a892cf0b5cad33e
    SHA512 1
    HEAD_REF master
)

vcpkg_configure_cmake(
    SOURCE_PATH ${SOURCE_PATH}
    PREFER_NINJA
    OPTIONS
        -CGLM_SHARED=ON
        -CGLM_STATIC=OFF
        -CGLM_USE_C99=OFF
        -CGLM_USE_TEST=OFF
)

vcpkg_install_cmake()

vcpkg_fixup_cmake_targets(CONFIG_PATH cmake)

file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug ${CURRENT_PACKAGES_DIR}/lib)

vcpkg_copy_pdbs()

file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})

@eRuaro, sorry for late response, do you figure out this? You need replace the SHA512 with 'Acutual hash' which given in command line.

Sadly no. I'm still having the proxy error even if I have set it.

If you wish to add this port in the future, you can reopen this issue, but we're closing it for now, consider making a pull request instead.


IllegalStateException on trying to print help page

Describe the bug
Getting an error message after clicking the "Print" icon in help.

Uncaught Exception!
IllegalStateException - This function should be called while holding treeLock

The print dialog does open up alongside the error message, and printing does work properly.
Detailed log attached below.
To Reproduce
Steps to reproduce the behavior:

Go to Help->Contents
Click on the Print icon
Get error message alongside the print dialog (happens consistently and on any help page)

Attachments
ghidra print exception.txt
Environment (please complete the following information):
See attached log

It seems that the print functionality still works after getting this exception.
The exception is coming from code that is not ours, but is from the Oracle help package.   I will investigate a 'workaround' that we can add to prevent the exception from being shown to the user.

As an aside, I noticed that this does not happen when using the 'Metal' Look and Feel (as settable via the Front End tool options).
As mentioned, the feature still works, despite the exception.  Considering the code is from a third-party and that the severity of the issue is low, we are not planning to create work around at this time.


Ability to resize assets

We've received several requests from students wanting to resize assets.  I imagine it's a difficult problem to resize down, but sizing up should be simple enough.

We have this feature now, thanks to @livcheerful, but it's a hidden feature.  Still may be helpful to have the + and -, but I'm fine with closing out this bug if that's a big ask.


Mitigate License risks of SCA

Acceptance Criteria

License risks of software composite analysis in Veracode are mitigated

Out of Scope

...

License Risks that the application must to be open source


The method or operation is not implemented

I create a simple window like that:
new UserControl1();
and have an exception:

System.Windows.Markup.XamlParseException
HResult=0x80131501
Message=The method or operation is not implemented.
Source=PresentationFramework
StackTrace:
at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
at Test.Views.UserControl1.InitializeComponent() in C:\VS\Test\Views\UserControl1.xaml:line 1
Inner Exception 1:
NotImplementedException: The method or operation is not implemented.
at System.Windows.Baml2006.Baml2006SchemaContext.ResolveBamlType(BamlType bamlType, Int16 typeId)
at System.Windows.Baml2006.Baml2006SchemaContext.GetXamlType(Int16 typeId)
at System.Windows.Baml2006.Baml2006SchemaContext.GetProperty(Int16 propertyId, XamlType parentType)
at System.Windows.Baml2006.Baml2006Reader.Process_PropertyWithConverter()
at System.Windows.Baml2006.Baml2006Reader.Process_OneBamlRecord()
at System.Windows.Baml2006.Baml2006Reader.Process_BamlRecords()
at System.Windows.Baml2006.Baml2006Reader.Read()
at System.Windows.Markup.WpfXamlLoader.TransformNodes(XamlReader xamlReader, XamlObjectWriter xamlWriter, Boolean onlyLoadOneNode, Boolean skipJournaledProperties, Boolean shouldPassLineNumberInfo, IXamlLineInfo xamlLineInfo, IXamlLineInfoConsumer xamlLineInfoConsumer, XamlContextStack`1 stack, IStyleConnector styleConnector)
at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)

Exception is throw by InitializeComponent() method in UserControl1 constructor:
public partial class UserControl1 : Window
    {
        public UserControl1()
        {
            InitializeComponent(); //throw exception
        }
    }

My UserControl1.xaml code:
<Window x:Class="Test.Views.UserControl1"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:icon="http://metro.mahapps.com/winfx/xaml/iconpacks">
    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro.IconPacks;component/Themes/IconPacks.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>

     <Grid>
        <icon:PackIconFontAwesome Kind="AddressBookRegular"/>
    </Grid>
</Window>

When I remove line starts with <icon..., then everything works fine.
If I create xaml window programmaticaly, then works too without exception:
var assembly = System.Reflection.Assembly.Load("MahApps.Metro.IconPacks, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null");
var icon = assembly.CreateInstance("MahApps.Metro.IconPacks.PackIconFontAwesome") as MahApps.Metro.IconPacks.PackIconFontAwesome;
icon.Kind = MahApps.Metro.IconPacks.PackIconFontAwesomeKind.AddressBookRegular;
var w = new UserControl1();
var stackPanel = new StackPanel { Orientation = System.Windows.Controls.Orientation.Vertical };
stackPanel.Children.Add(new System.Windows.Controls.Button { Content = icon, Height = 100 });
w.Content = stackPanel;
w.Show();

I have to load assemby MahApps.Metro.IconPacks although it's added by reference in my project.
How to solve this problem to use Mah Icons in my xaml designer?
Desktop Environment:

IconPacks Version: <IP_ADDRESS>
ControlzEx Version: <IP_ADDRESS>
Visual Studio Enterprise 2019 16.0.4
.NET Framework: 4.7.2

@romigrabarz Seems like you load a wrong version of IconPacks at this line:
var assembly = System.Reflection.Assembly.Load("MahApps.Metro.IconPacks, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null");

The version should be v<IP_ADDRESS>. Additionally maybe you must load the ControlzEx too.

Thanks for replay.
I fix assembly version, but problem still exists.
I try to load assembly from path but nothing happend:
 public UserControl1()
        {
            Assembly.LoadFrom("My path to ControlzEx.dll");
            Assembly.LoadFrom("My path to MahApps.Metro.IconPacks.dll");
            ResourceDictionary rd = new ResourceDictionary();
            rd.Source = new Uri(@"pack://application:,,,/MahApps.Metro.IconPacks;component/Themes/IconPacks.xaml");

            InitializeComponent();
        }

My dll's is another path than my exe, like this:
C:\Test\MyProgram.exe
D:\Dll\ControlzEx.dll
D:\Dll\MahApps.Metro.IconPacks.dll
When I copy those dlls to exe path, then everything works fine. But I have to seperate dlls to exe.
How to achive/solve this?

@romigrabarz I think what you need is embedding an assembly and reference it at the same time. Or you use some known libraries which does this for you in a magical way, like Costura Fody or ILMerge.
Here are some links to help you out:

https://stackoverflow.com/a/9260325/920384
https://www.codeproject.com/Articles/32828/Using-Reflection-to-load-unreferenced-assemblies-a

Thanks!
I solved problem with use Costura Fody and merge missing assemblies into one dll like this (FodyWeavers.xml):
<?xml version="1.0" encoding="utf-8"?>
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
  <Costura>
    <IncludeAssemblies>
      MahApps.Metro.IconPacks
      ControlzEx
    </IncludeAssemblies>
  </Costura>
</Weavers>

Everything works without any exceptions!


Added doc theme for 11th (using Tailwind CSS)

Adds an 11ty docs theme (developed at Spinal).

Hello @eelcoj ,
Thanks so much for submitting your theme to Statichunt.
We've added it and also shared it with our community on Discord.
Make sure to join our discord channel to stay up to date about Statichunt and JAMStack-related news!


test(groupBy): add test against breaking unsubscription chain

Add test for groupBy() operator, to verify that unsubscription chains are not broken when the
observable is unsubscribed explicitly.
For issue #875.

Merged with 078f124. Thanks @staltz !


Difference between loss_weights and class_weights

What is the difference between the loss_weights argument, found in the compile function (compile(self, optimizer, loss=None, metrics=None, loss_weights=None)) and the class_weight argument in the "fit" method (fit(self, x=None, y=None, batch_size=None, class_weight = None))?

loss_weights parameter on compile is used to define how much each of your model output loss contributes to the final loss value ie. it weighs the model output losses. You could have a model with 2 outputs where one is the primary output and the other auxiliary. eg. 1. * primary + 0.3 * auxiliary. The default values for loss weights is 1.
class_weight parameter on fit is used to weigh the importance of each sample based on the class they belong to, during training. This is typically used when you have an uneven distribution of samples per class.

How do I use loss_weights parameter to weight each of the training examples differently while calculating the loss function?

How do I use loss_weights parameter to weight each of the training examples differently while calculating the loss function?

You use sample_weights https://www.tensorflow.org/api_docs/python/tf/keras/Model#fit alongside the X and Y data


Key brightness changes after 2nd attempt only

Version
TallFescue.6.5999
What is the issue?
When changing Key Brightness in the settings, the top row brightness will change immediately, but the main keyboards will need a second button press.
BTW: the top row could use a one level higher brightness for all brightness modes.

Fred recently introduced a shade difference between the main notes and the #/b notes. I personally do like it but some may prefer the option of "classic" levels of all the same.

Fred recently introduced a shade difference between the main notes and the #/b notes. I personally do like it but some may prefer the option of "classic" levels of all the same.

I know that, but that is not the issue. You need to press the middle button twice when setting to make a brightness change visible.


Add support for tidymarkup and tagsoup

https://camel.apache.org/components/latest/tidyMarkup-dataformat.html

@jsight are you by any chance planning to work on this?

@ppalaga - I wasn't, but maybe this would maybe be a good starting point for me? I will give it a shot.

You may want to check https://camel.apache.org/camel-quarkus/latest/contributor-guide.html
Feel free to ask here if you have specific questions.

PR sent -- I didn't know about the contributor guide when I started, so this was done a bit manually. Hopefully the steps were taken correctly... happy to adjust based on feedback, though.

Done with https://github.com/apache/camel-quarkus/pull/493


Clean Assets

As we have more and more assets now, we should place them in other places

This should include clean the git history.

Yeah I know a workflow for this. Best,ZhenghaoOn Jun 28, 2023, at 10:42, Quanyi Li @.***> wrote:
This should include cleaning the git history.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>


pre-populate defaults in values.yaml

prepopulate default values in values.yaml
This will enable users to make less necessary edits when deploying oidc-proxy

LGTM

Remote quotes around group and username claims. Other than that it looks good


Deploy the website to heroku

We should dockerize the website and deploy to heroku using a GitHub action. View a tutorial here: https://youtu.be/hZoy_MOuj10

Done. https://file-insights.herokuapp.com/


Include stdout in codesign failure output

Part of investigating https://github.com/flutter/flutter/issues/115035.  Maybe we'll get more info from stdout?
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[ ] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is test-exempt.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Merging manually while the tree is green to get this out ASAP.


Loft should allow Vertices as the first and last elements

Did some prototyping work to add this functionality to make_loft in hindsight maybe more of the input validation needs to go into loft instead, but a lot of the logic should be reusable:
from typing import Union
from OCP.BRepOffsetAPI import (
    BRepOffsetAPI_MakeFilling,
    BRepOffsetAPI_MakeOffset,
    BRepOffsetAPI_MakePipe,
    BRepOffsetAPI_MakePipeShell,
    BRepOffsetAPI_MakeThickSolid,
    BRepOffsetAPI_ThruSections,
)

# def make_loft2(cls, objs: Union[list[Wire], list[Vertex, Wire]], ruled: bool = False) -> Solid:
def make_loft2(objs: Union[list[Wire], list[Vertex, Wire]], ruled: bool = False) -> Solid:
    """make loft

    Makes a loft from a list of wires.

    Args:
        wires (list[Wire]): section perimeters
        ruled (bool, optional): stepped or smooth. Defaults to False (smooth).

    Raises:
        ValueError: Too few wires

    Returns:
        Solid: Lofted object
    """

    if len(objs) < 2:
        raise ValueError("More than one wire, or a wire and a vertex is required")

    if all(isinstance(obj, Wire) for obj in objs):
        pass
    elif any(isinstance(obj, Vertex) for obj in objs) and any(isinstance(obj, Wire) for obj in objs):
        if len(objs) == 2:
            pass
        elif isinstance(objs[0],Vertex) and isinstance(objs[-1],Vertex):
            pass
        else:
            raise ValueError("Vertices must be the first, last, or first and last elements")
    elif all(isinstance(obj, Vertex) for obj in objs):
        raise ValueError("At least one wire is required if vertices are the first, last, or first and last elements")

    # the True flag requests building a solid instead of a shell.
    loft_builder = BRepOffsetAPI_ThruSections(True, ruled)

    for obj in objs:
        if isinstance(obj,Vertex):
            loft_builder.AddVertex(obj.wrapped)
        elif isinstance(obj,Wire):
            loft_builder.AddWire(obj.wrapped)

    loft_builder.Build()

    # return cls(loft_builder.Shape())
    return loft_builder.Shape()

Solid.make_loft2 = make_loft2

a = RegularPolygon(1,3).wires()[0]
v1 = Vertex(0,0,-1)
v2 = Vertex(0,0,1)
b = Pos((0,0,1)) * RegularPolygon(1,3).wires()[0]

os = [v1,a,v2]
test1 = Solid.make_loft2(objs=os,ruled=True)

os2 = [a,b]
test2 = Solid.make_loft2(objs=os2,ruled=True)

os3 = [v1,a]
test3  = Solid.make_loft2(objs=os3,ruled=True)

os4 = [a,v2]
test4  = Solid.make_loft2(objs=os4,ruled=True)


WIP: component tests

User description
Overview

Type
enhancement, tests

Description

Implemented a comprehensive component test framework in tests/component-tests/run.py with various test cases.
Added test cases for loading 10k alerts without memory leak, killing processes and pods mid-operation, app profile creation without memory leak, applying rule bindings, generating all alerts from a malicious app, basic load activities, alert generation, and finalization alert generation.
Implemented Prometheus query execution and result plotting in tests/component-tests/promtopic.py.
Added Kubernetes ApplicationProfile resources for a malicious job in both namespaced and non-namespaced environments.
Introduced a GitHub Actions workflow for running component tests, including setup of the test environment.
Added Helm chart values configuration, CRD for RuntimeRuleAlertBinding, and Kubernetes resources (Deployment, ClusterRole) for the storage component of the test framework.

Changes walkthrough
Relevant filesEnhancement
4 files

run.pyImplement Component Test Framework and Test Cases

tests/component-tests/run.py
Added imports for various test cases and utilities.  Defined test cases and their configurations.  Implemented a TestFramework class for setting up and running component tests.  Main function to run all defined test cases and generate a summary.

+148/-0

promtopic.pyImplement Prometheus Query Execution and Result Plotting

tests/component-tests/promtopic.py
Added functions for executing PromQL queries and plotting results.  Utilized requests for HTTP requests and matplotlib for plotting.  Implemented CPU usage and memory usage plotting functions.

+99/-0

kubernetes_wrappers.pyImplement Kubernetes Wrappers for Test Framework

tests/component-tests/kubernetes_wrappers.py
Added classes for managing Kubernetes namespaces, workloads, and objects.  Utilized subprocess for Kubernetes CLI interactions.  Implemented utility functions for Kubernetes object management.

+94/-0

pprof.pyImplement Pprof Profile Recording for Test Framework

tests/component-tests/pprof.py
Added a class for recording pprof profiles.  Utilized subprocess for port forwarding and requests for HTTP requests.  Implemented functions for recording CPU and memory profiles.

+44/-0

Tests
9 files

load_10k_alerts_no_memory.pyAdd Test Case for Loading 10k Alerts Without Memory Leak

tests/component-tests/load_10k_alerts_no_memory.py
Implemented a test case for loading 10k alerts without memory leak.  Utilized subprocess and time modules for Kubernetes interactions and timing.  Integrated with promtopic for Prometheus queries and plotting.

+96/-0

kill_in_the_middle.pyAdd Test Cases for Killing Processes and Pods Mid-Operation

tests/component-tests/kill_in_the_middle.py
Implemented test cases for killing processes and pods in the middle of operations.  Utilized subprocess for Kubernetes interactions.  Integrated with KubernetesWrappers for namespace and workload management.

+87/-0

creation_app_profile_memory_leak.pyAdd Test Case for App Profile Creation Without Memory Leak

tests/component-tests/creation_app_profile_memory_leak.py
Implemented a test case for app profile creation without memory leak.  Utilized subprocess for Kubernetes interactions and os for environment variable access.  Integrated with promtopic for memory usage plotting.

+70/-0

rule_binding_apply_test.pyAdd Test Case for Applying Rule Bindings

tests/component-tests/rule_binding_apply_test.py
Implemented a test case for applying rule bindings.  Utilized subprocess for Kubernetes interactions.  Tested various scenarios including valid and invalid rule bindings.

+45/-0

all_alerts_from_malicious_app.pyAdd Test Case for Generating All Alerts from Malicious App

tests/component-tests/all_alerts_from_malicious_app.py
Implemented a test case for generating all alerts from a malicious app.  Utilized KubernetesWrappers for namespace and workload management.  Verified the generation of expected alerts.

+66/-0

basic_load_activities.pyAdd Basic Test Case for Load Activities

tests/component-tests/basic_load_activities.py
Implemented a basic test case for load activities.  Utilized KubernetesWrappers for namespace and workload management.  Verified CPU usage of KubeCop under load.

+46/-0

basic_alert_tests.pyAdd Basic Test Case for Alert Generation

tests/component-tests/basic_alert_tests.py
Implemented a basic test case for alert generation.  Utilized KubernetesWrappers for namespace and workload management.  Verified the generation of expected alerts.

+50/-0

finalization_alert_test.pyAdd Test Case for Finalization Alert Generation

tests/component-tests/finalization_alert_test.py
Implemented a test case for finalization alert generation.  Utilized KubernetesWrappers for namespace and workload management.  Verified the generation of expected alerts after finalization.

+45/-0

locustfile.pyImplement Locustfile for Load Testing

tests/component-tests/locustimage/locustfile.py
Implemented a locustfile for load testing with Locust.  Utilized HTTPUser for making HTTP requests to a target URL.

+10/-0

Miscellaneous
1 files

change_rule_binding_in_the_middle.pyPlaceholder for Rule Binding System Tests

tests/component-tests/change_rule_binding_in_the_middle.py
Added a placeholder for system tests related to rule binding.  Defined global variables for Alert Manager URL.

+16/-0

Configuration changes
9 files

malicious-job-app-profile-namespaced.yamlAdd ApplicationProfile Resource for Malicious Job in Namespaced Environment

tests/component-tests/resources/malicious-job-app-profile-namespaced.yaml
Added a Kubernetes ApplicationProfile resource for a malicious job in a namespaced environment.  Defined execs, network activities, and syscalls expected from the malicious job.

+465/-0

malicious-job-app-profile.yamlAdd ApplicationProfile Resource for Malicious Job

tests/component-tests/resources/malicious-job-app-profile.yaml
Added a Kubernetes ApplicationProfile resource for a malicious job.  Defined execs, network activities, and syscalls expected from the malicious job.

+463/-0

component-tests.yamlAdd GitHub Actions Workflow for Component Tests

.github/workflows/component-tests.yaml
Added a GitHub Actions workflow for running component tests.  Defined steps for setting up the test environment and running tests.

+146/-0

values.yamlAdd Values Configuration for Component Test Helm Chart

tests/chart/values.yaml
Added values configuration for the Helm chart used in component tests.  Defined configurations for storage, node agent, and clamav components.

+176/-0

runtime-rule-binding.crd.yamlAdd CRD for RuntimeRuleAlertBinding

tests/chart/crds/runtime-rule-binding.crd.yaml
Added a CustomResourceDefinition for RuntimeRuleAlertBinding.  Defined schema for namespace and pod selectors, rules, and severity.

+167/-0

setup-component-test-cluster.shAdd Script for Setting Up Component Test Cluster

tests/scripts/setup-component-test-cluster.sh
Added a script for setting up a component test cluster.  Utilized kubectl, helm, and either minikube or kind for cluster setup.

+67/-0

deployment.yamlAdd Deployment Resource for Storage Component

tests/chart/templates/storage/deployment.yaml
Added a Kubernetes Deployment resource for the storage component.  Defined container image, resources, and volume mounts.

+77/-0

_helpersKubescapeStorage.tplAdd Helm Template Helpers for Kubescape Storage Component

tests/chart/templates/storage/_helpersKubescapeStorage.tpl
Added Helm template helpers for the kubescape storage component.  Defined labels, name, and role binding names.

+65/-0

clusterrole.yamlAdd ClusterRole Resource for Storage Component

tests/chart/templates/storage/clusterrole.yaml
Added a Kubernetes ClusterRole resource for the storage component.  Defined permissions for accessing various Kubernetes resources.

+34/-0

✨ PR-Agent usage:
Comment /help on the PR to get a list of all available PR-Agent tools and their descriptions

@dwertent  The PR is not ready for review...

/help

/describe


Problem with uninstallation.

🔍 Is there already an issue for your problem?

[X] I have checked older issues, open and closed

ℹ Environment / Computer Info
- Spotify version : Spotify for Windows (64 bit) <IP_ADDRESS>5.gf2c48e6f
- Spicetify version : Spicetify v2.38.4
Theme: Lucid / dark
Extensions: adblock.js, waveform.js, index.js, beautiful-lyrics.mjs, star-ratings.js, SleepTimer.js, utilities.js, djinfo.js, volume-plus.js, group-session.js, theme.js
Custom apps: history-in-sidebar, marketplace, stats, visualizer

📝 Description
Hello,
I don't know why History in Sidebar whenever i clicked on it made spicetify crash so i tried to uninstall it (in order to reinstall it properly) but now i just have a blank square that does nothing.
So my question is how do i remove this ? (Screenshot)
📸 Screenshots

Sorry to hear, not sure what could be causing the crashes.
Seems like you just deleted the files without running: spicetify config custom_apps history-in-sidebar-

Indeed it seems that i forgot to run the command when i tried to fix it.
It worked thanks you !


Animated backgrounds cause crashes for some people

Environment
Windows build number: Microsoft Windows [Version 10.0.18922.1000]
Windows Terminal version (if applicable): 0.2.1715.0
Any other software?
WSL but applies for cmd, powershell, pscore
Steps to reproduce
set background image to animated gif using value:
"backgroundImage" : "C:/users/<username>/AppData/Local/Packages/Microsoft.WindowsTerminal_8wekyb3d8bbwe/RoamingState/unicorn.gif",
"useAcrylic" : false
"backgroundImageStretchMode" : "uniformToFill",

open created console
Expected behavior
console runs with animated background playing.
(identical steps on colleagues 1903 builds works as expected)
Actual behavior
animated image begins to play for ~2 seconds and then console exits.
event log shows event id 1000
Faulting application name: WindowsTerminal.exe, version: 1.0.1906.20005, time stamp: 0x5d0c1459
Faulting module name: TerminalControl.dll, version: 1.0.1906.20005, time stamp: 0x5d0c138b
Exception code: 0xc0000005
Fault offset: 0x0000000000026c0c
Faulting process ID: 0x4e28
Faulting application start time: 0x01d52b2ff8bfae18
Faulting application path: C:\Program Files\WindowsApps\Microsoft.WindowsTerminal_0.2.1715.0_x64__8wekyb3d8bbwe\WindowsTerminal.exe
Faulting module path: C:\Program Files\WindowsApps\Microsoft.WindowsTerminal_0.2.1715.0_x64__8wekyb3d8bbwe\TerminalControl.dll
Report ID: bb1148df-bbb0-41b9-9a52-390469ea14d3
Faulting package full name: Microsoft.WindowsTerminal_0.2.1715.0_x64__8wekyb3d8bbwe
Faulting package-relative application ID: App

Can you share the image that's causing you trouble? We've never seen this. Thanks!

I have tried to reproduce your issue, with  .json pattern for fileDirectory too, but couldn't reproduce any error. I tried on multiple file locations too.
Windows Version 10.0.18362.175
https://imgur.com/a/tEo8Xwp

Thanks for trying to recreate.
I can confirm it happens on two of my computers now and have had an insider update since too.
I have tried the following images
https://66.media.tumblr.com/6153c19fb7cb6b8de0ae90d191ea5609/tumblr_oswpvscnYJ1vtwln5o1_500.gif
http://i.imgur.com/zwoU4OP.gif
https://cdn.dribbble.com/users/130603/screenshots/2290997/lukeboba_02.gif
and a few others.
the current profile i have added for the tardis one is:
{
"acrylicOpacity" : 0.85000002384185791,
"background" : "#012456",
"backgroundImage" : "C:/Users/peter/OneDrive/Documents/WindowsTerminal/TimeVortex.gif",
"backgroundImageOpacity" : 0.69999998807907104,
"backgroundImageStretchMode" : "uniformToFill",
"closeOnExit" : false,
"colorScheme" : "Solarized Dark",
"commandline" : "powershell.exe",
"cursorColor" : "#00FF00",
"cursorHeight" : 25,
"cursorShape" : "vintage",
"fontFace" : "Fira Code",
"fontSize" : 12,
"guid" : "{718035bd-bfa4-4553-9042-d63091e2480d}",
"historySize" : 9001,
"icon" : "C:/Users/peter/OneDrive/Documents/WindowsTerminal/Tardis-Icon.png",
"name" : "PowerShell Tardis",
"padding" : "0, 0, 0, 0",
"snapOnInput" : true,
"startingDirectory" : "%USERPROFILE%",
"useAcrylic" : false
},

Hey we can't reproduce this. If you see this again, would you mind grabbing the "Windows Error Reporting" event from your event log? It will contain an identifier we can use to look up your crash.


Introduce plugin management system

Description
Introduces a plugin management system (and necessary utility functions for general configuration files).
The specification for this system is as follows:

Configuration files are stored in the directory: ~/.napari. This follows suit with the other alternate directories found in the jupyter configuration convention, including the environment variable NAPARI_CONFIG_DIR.
Among other user-editable configuration files is the plugins.yaml file. This contains information about what plugins are installed.

plugins.yml specification
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "fileMatch": [
    "plugins.yml"
  ],
  "definitions": {
    "git_url": {
      "description": "Repository git source URL.",
      "type": "string",
      "TODO": "add actual http(s)://{...}.git pattern"
    }
  },
  "properties": {
    "plugins": {
      "description": "List of plugin sources.",
      "type": "array",
      "items": {
        "type": "object",
        "anyOf": [
          {
            "properties": {
              "git_source": { "$ref": "#/definitions/git_url" },
              "version": {
                "description": "The git branch/tag/commit to use as a source.",
                "type": "string"
              },
              "development": {
                "description": "If enabled, will treat the repository as a normal folder (no version control)."
              }
            },
            "required": ["git_source"]
          },
          {
            "properties": {
              "folder": {
                "description": "The folder from which the plugin is sourced. Can be used with 'git_source' to handle repository name collisions.",
                "type": "string"
              }
            },
            "required": ["folder"]
          }
        ]
      }
    }
  },
  "required": ["plugins"]
}

example plugins.yml file
plugins:
  - git_source: github.com/jni/foo.git

  - git_source: github.com/kne42/foo.git
    folder: bar

  - folder: baz

  - git_source: github.com/Napari/hello-world-plugin.git
    version: 1.0
    development: yes

Plugins will be cloned into the plugins configuration directory and a remote named source with the git url will be created.
To set a plugin to a specific version, the manager will check out the version to the source branch with git checkout git-reference -B source.
If no version is provided, the manager will check out the latest stable version or the default branch if it is not found.
version: development will cause the manager to ignore updating the repository with git.
When updating, the manager will check each folder for a napari.yml file, which contains important information about the plugin.

napari.yml specification
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "fileMatch": [
    "napari.yml"
  ],
  "definitions": {
    "git_url": {
      "description": "Repository git source URL.",
      "type": "string",
      "TODO": "add actual http(s)://{...}.git pattern"
    },
    "filepath": {
      "type": "string",
      "TODO": "add regex pattern"
    },
    "python_file": {
      "type": "string",
      "TODO": "add regex pattern"
    },
    "python_module_name": {
      "type": "string",
      "TODO": "add regex pattern"
    },
    "version": {
      "oneOf": [
        {
          "description": "The exact version.",
          "type": "string"
        },
        {
          "description": "The minimum/maximum version.",
          "type": "object",
          "properties": {
            "minimum": { "type": "string" },
            "maximum": { "type": "string" },
            "min": { "type": "string" },
            "max": { "type": "string" }
          },
          "anyOf": [
            { "oneOf": [
              { "required": ["minimum"] },
              { "required": ["min"] }
            ]},
            { "oneOf": [
              { "required": ["maximum"] },
              { "required": ["max"] }
            ]},
          ]
        }
      ]
    }
  },
  "properties": {
    "plugin_info": {
      "description": "Information about the plugin.",
      "properties": {
        "author_name": {
          "description": "The plugin maintainer's name.",
          "type": "string"
        },
        "author_email": {
          "description": "The plugin maintainer's email.",
          "type": "string",
          "format": "email"
        },
        "short_description": {
          "description": "A short description of the plugin.",
          "type": "string"
        },
        "plugin_name": {
          "description": "The name that the plugin will be available under in napari.plugins.",
          "$ref": "#/definitions/python_module_name"
        },
        "path": {
          "description": "Path to the python source file.",
          "oneOf": [
            { "$ref": "#/definitions/python_file" },
            {
              "type": "array",
              "items": { "$ref": "#/definitions/python_file" }
            }
          ]
        },
        "paths": {
          "description": "Paths to the python source files.",
          "type": "array",
          "items": { "$ref": "#/definitions/python_file" }
        }
      },
      "allOf": [
        { "required": ["plugin_name"] },
        { "oneOf": [
          { "required": ["path"] },
          { "required": ["paths"] }
        ]}
      ]
    },
    "redirect": {
      "description": "If this repository is no longer being maintained, please redirect to another one.",
      "$ref": "#/definitions/git_url"
    },
    "plugin_dependencies": {
      "description": "A list of depended-on plugins.",
      "type": "array",
      "items": {
        "oneOf": [
          { "$ref": "#/definitions/git_url" },
          {
            "type": "object",
            "properties": {
              "git_source": { "$ref": "#/definitions/git_url" },
              "version": { "$ref": "#/definitions/version" },
              "namespace": { "$ref": "#/definitions/python_module_name" }
            },
            "required": ["git_source"]
          }
        ]
      }
    },
    "pip_requirements": {
      "description": "A requirements.txt file or a list of pip requirements to install.",
      "oneOf": [
        {
          "description": "Location of the requirements.txt file.",
          "$ref": "#/definitions/filepath"
        },
        {
          "description": "pip requirement.",
          "type": "string"
        }
      ]
    },
    "napari_version": {
      "description": "The exact napari version to specify or the bounds for it.",
      "$ref": "#/definitions/version"
    },
    "update_script": {
      "description": "The python script to run upon updating the repository.",
      "$ref": "#/definitions/python_file"
    }
  },
  "required": ["plugin_info"]
}

To load plugins, napari.plugins.__init__.py will comb through the plugins configuration directory and import the corresponding modules (found because they were named plugin_info.plugin_name) as napari.plugins + plugin_info.plugin_name by adding them to sys.modules.

References
Closes #3

Really cool Kira. Should I merge already?

@royerloic Haha, not even close! I like to open up PRs for WIP features so that others can track my progress (and to call dibs on an issue) :P
Besides, I think that we should usually have you and/or @jni review the changes before a merge.
I’ll let you know when it’s ready for its first review!

Haha, ok cool, sensed that it was just the beginning, but looks already great! I like your attention to details!

@royerloic @jni I added a proposed plugins specification in the PR description if you want to check that out :)

Hi Kira,
Very nice, I like that you are considering all sorts of plugin types,
from pip-based to git-based…

On 21. Jun 2018, at 07:38, Kira Evans<EMAIL_ADDRESS>wrote:
@royerloic https://github.com/royerloic @jni https://github.com/jni I added a proposed plugins specification in the PR description if you want to check that out :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/Napari/napari/pull/13#issuecomment-399126745, or mute the thread https://github.com/notifications/unsubscribe-auth/AByMkmN_87Vi2RjSUCZreNJpb4U_Hru2ks5t-6_QgaJpZM4UuDBb.

An example of the remote plugin updating can be found in this gist.

Hey, Kira. This looks awesome! We haven't met yet, but I am an engineer at the Biohub. I was chatting with Loic and I would like to contribute a couple of image loading plugins related to the imaging database at the Biohub and our in situ transcriptomics work.
Would it be possible to chat about the plugin API for IO plugins sometime next week?
Also, a couple of comments on the plugin install:

Do you think it is necessary to support so many different plugin description/manifest designs (.yaml, init, main.py)? I think if we have a single standard, it's easier to check for compliance and also it's easier to understand new plugins quickly. I suppose the counterpoint is that by being flexible, it may be possible to use some existing plugins/modules without modification.
Perhaps a bit early to discuss this, but what do you think about creating base classes that provide the required elements of plugins (perhaps one for each type? io, image transform, etc.) and then plugin contributors create subclasses of the appropriate base class?

@kevinyamauchi

Hey, Kira. This looks awesome! We haven't met yet, but I am an engineer at the Biohub.

Hi Kevin! I'm glad that you're super excited about this project as well 😄

I was chatting with Loic and I would like to contribute a couple of image loading plugins related to the imaging database at the Biohub and our in situ transcriptomics work.

Great! That would be awesome! It would be especially nice if we could get these plugins to load in the proper metadata as well (see #5).

Would it be possible to chat about the plugin API for IO plugins sometime next week?

Definitely! You can find me at Cubicle #164 in the Accelerator on Mondays, Wednesdays, and Fridays.

Also, a couple of comments on the plugin install:

Do you think it is necessary to support so many different plugin description/manifest designs (.yaml, init, main.py)? I think if we have a single standard, it's easier to check for compliance and also it's easier to understand new plugins quickly. I suppose the counterpoint is that by being flexible, it may be possible to use some existing plugins/modules without modification.

Actually Loic and I finally had an opportunity to discuss this in person yesterday – I am redesigning the system as we speak! I agree that the current design is far too messy and am working to standardize it by requiring all of the main plugin information to be held within the repository's specification file and simplifying the main index file to comprising of (mostly) a bunch of urls. I'll update the specification in the description and let y'all know of the changes via comment when I'm done!

Perhaps a bit early to discuss this, but what do you think about creating base classes that provide the required elements of plugins (perhaps one for each type? io, image transform, etc.) and then plugin contributors create subclasses of the appropriate base class?

Sorry, I don't quite follow. Perhaps you could flush out your idea more in #15?

Hi @kevinyamauchi!
I'm excited to see Napari growing so fast already! Clearly a lot of people have been silently wishing for something like this.

Perhaps a bit early to discuss this, but what do you think about creating base classes that provide the required elements of plugins (perhaps one for each type? io, image transform, etc.) and then plugin contributors create subclasses of the appropriate base class?

Over at scikit-image, and to a similar extent at SciPy and NumPy, we favour a functional programming style. I would strongly prefer that plugins were simple type-annotated functions. We can then use the types to automatically generate a GUI dialog.

Thanks for the quick responses! @kne42, I'll send you an email about meeting to discuss the plugin API (focusing on image IO).
@jni, that works for me! This project would be super useful for our work and I'd be stoked to contribute!

Hello @kne42! Thanks for updating the PR.

In the file napari/_internal/paths.py, following are the PEP8 issues :

Line 22:1: E302 expected 2 blank lines, found 1
Line 74:5: E303 too many blank lines (2)
Line 79:80: E501 line too long (87 > 79 characters)

In the file napari/_internal/typing.py, following are the PEP8 issues :

Line 11:80: E501 line too long (81 > 79 characters)
Line 12:1: E402 module level import not at top of file

In the file napari/core/plugin/_manage.py, following are the PEP8 issues :

Line 15:17: E712 comparison to False should be 'if cond is False:' or 'if not cond:'

@pep8speaks resume

@orkohunter the bot does not appear to be updating; any ideas? Might be because I've force pushed idk

Hello @kne42!
Thank you for bringing this to my notice. I got to debug on the issue. GitHub and Heroku keep telling me "Service Timeout" after several retries as well.
I used the same payload corresponding to this PR on a local version of the server and it passed (hence the updated comment). However, GitHub again gave me a Service timeout for the latest commit you just pushed.
I can not seem to figure out why this issue is happening with this PR, while the service is running perfectly fine for all the other events for other repos/PRs.
Excuse me for this behavior. I do not have a helpful response for it now.

I ask this naively, since I am not a Python programmer—and apologies if I misunderstand what this PR is trying to accomplish—but would it makes sense to consider building on some general-purpose Python plugin framework like PluginBase?

I ask this naively, since I am not a very proficient Python programmer—and apologies if I misunderstand what this PR is trying to accomplish—but would it makes sense to consider building on some general-purpose Python plugin framework like PluginBase?

Hi Curtis!
Nice to see you here.
So, the idea is to have a plugin system that is entirely git based.
:-)

Hi @ctrueden,
Thank you for your input! We have, at this time, not found any suitable existing Python plugin systems to use as a base. The repository that you linked appears to be a convoluted workaround of specifying a __path__ attribute to a module's __init__.py. Additionally, it works by replacing the built-in  __import__, which is not only bad practice, but could be implemented much more cleanly with a custom import hook. Regardless, this implementation is not suitable as our import system needs to find and load individual files instead of specifying additional package search locations on the fly.
To answer your other question, the scope of this PR goes far beyond just loading plugins. It uses git to actually install and download plugins (hoping to eventually model it after straight.el) and loads them according to their entry point specifications. It additionally provides a central hub for registering plugins' functions to be populated in the GUI.

Thanks for the detailed reply, @kne42. Related question: would this feature be useful as a reusable module, beyond only Napari?
I am also curious about the 5-10 year vision of this project in general, but probably this issue is not the ideal place to discuss that. I'll open a separate issue for it now.

While this isn't perfected, I think it's a good enough start to merge since it is only an "introduction" after all.

Perfect Kira!
step by step 😀

Loic

On Oct 11, 2018, at 7:31 AM, Kira Evans<EMAIL_ADDRESS>wrote:
While this isn't perfected, I think it's a good enough start to merge since it is only an "introduction" after all.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.


 We should add a pane where we can modify all those values for each element.

I'll start to work with this tonight, I tought in a left panel with the tools and roughjs options similar to zwibbler

Yeah, that would be great!

Start to work in the panel, some suggestions? The idea is when the user select an element, show some options to customize below Export section.

This looks great!
Do you want to first send a PR for this that we can merge in before you implement the per-element configuration?

Of course.


[Question] Best practices: generating a fixture + static body for in-game text label

A question more than an issue.
If you were to create a game with this lib, how would generate a fixture for text representation, using an SVG path (of said text string as an outline) as input?
PS: this project seems to get a lot more attention from its author/maintainer than all others out there; thanks a lot for that. This is much appreciated, given how not easy physics engines are.

Interesting!  If it is static (e.g. ground, walls, etc.) and can be represented as polygon (i.e. there is no curve), I would use ChainShape (planck.Chain(vectorsArray, loop = false)).
However, it is not possible to create a non-static concave fixture or a curved path other than circle.

So if I understand correctly, I will need to first define 26 coordinate-pair arrays (one per letter of the alphabet), generate 26 (chain?) fixtures from that, and then create a function mapping input string to offset fixtures, wrapping them in a composite body. Should be easy. Thanks a lot for your advice.

Correct, only one thing regarding terminology: you would generate a chain shape from each vector array, and create a fixture when adding a shape to a body:
var shapeA = planck.Edge(vectorsA);
var shapeB = planck.Edge(vectorsB);

var body = world.createBody();
body.createFixture(shapeA);
body.createFixture(shapeB);

Okay. Thanks for the code. Was able to display a rudimentary 'X' with this:
      planck.testbed(function(testbed) {
        var pl = planck, Vec2 = pl.Vec2;
        var world = new pl.World(Vec2(0, -10));

        var vectorsA = [Vec2(-10.0, -10.0), Vec2(10.0, 10.0)];
        var vectorsB = [Vec2(-10.0, 10.0), Vec2(10.0, -10.0)];
        var shapeA = planck.Chain(vectorsA, false);
        var shapeB = planck.Chain(vectorsB, false);

        var body = world.createBody({
          type: 'static',
          position: Vec2(0.0, 0.0)
        });
        body.createFixture(shapeA);
        body.createFixture(shapeB);

        return world;
      });

Next step: discard the testbed code and add my own (or Pixi's) renderer. Will post in another issue if and when one comes up. Thanks again.


Get-SmaAsset result size & Set-SmaAssetAsArchived input options

I am looking to retire assets en masse providing only a computer name. I am able to get the Asset ID to feed into Set-SmaAssetAsArchived with Get-SmaAsset and some pipelines, but the result size is only 50 items at a time (all the same every time as well). Couple questions:

Is there a way to feed Set-SmaAssetAsArchived a computer name instead of an Asset ID?
If not, how can I look through all of our active assets (~500 items)?

Thanks in advance!

I was looking through some FAQs and docs and found the answer to my question:
Q: My queries are limited to 50 results?
A: By default, the SMA API limits queries to 50 results. To override this, use the string ?paging=limit XX in your -QueryParameters, where XX is the limit you want. Use ALL for all results. For more examples, see the Example query parameters


fix: Expand Query/JS section in the explorer for new applications.

Description
For a new application, keep the Query/JS section on the explorer open by default. This ensures that the user gets feedback when they create their first query.
Fixes #11937
Type of change

Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

Manual
Cypress

Checklist:

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

Test coverage results :test_tube:
:green_circle: Total coverage has increased
// Code coverage diff between base branch:release and head branch: fix/keep-query-section-open-new-application

Status
File
% Stmts
% Branch
% Funcs
% Lines

:green_circle:
total
56.71 (0)
38.66 (0)
36.23 (0.01)
56.96 (0)

:green_circle:
app/client/src/pages/Editor/Explorer/common.tsx
100 (9.09)
100 (0)
100 (100)
100 (9.09)

:red_circle:
app/client/src/pages/Editor/Explorer/helpers.tsx
83.33 (-0.73)
58.51 (0)
100 (0)
83.33 (-0.88)

:green_circle:
app/client/src/pages/Editor/Explorer/Files/index.tsx
77.78 (2.22)
38.89 (5.56)
57.14 (14.28)
82.05 (2.56)

:green_circle:
app/client/src/pages/Editor/Explorer/Widgets/WidgetGroup.tsx
96.88 (2.76)
74.65 (0)
100 (0)
96.77 (2.83)

:red_circle:
app/client/src/selectors/commentsSelectors.ts
83.61 (-1.64)
61.76 (-2.95)
73.33 (0)
88.24 (-2.35)

:green_circle:
app/client/src/utils/autocomplete/TernServer.ts
52.94 (0.23)
41.67 (0.84)
36.21 (0)
56.99 (0.25)

/ok-to-test sha=68f26ac

/ok-to-test sha=6060cc1

/ok-to-test sha=b4ce13a

/ok-to-test sha=cb8fe77

Closing this stale PR


Query mode not working

Using anything llm desktop and LM studio on M2 Mac. Able to create embeddings and vectors but in query mode get a message saying no information in workspace to answer the question. Any help is appreciated.

This is expected when you send a query that has no text chunk results that have a match over the workspace threshold. Embedding and vector-database semantic searching is not infallible. What is happening here is that the vector db is not finding and context to work with because the prompt, once embedded, is too "far" from other vectors - resulting in a low match.
We give you the controls to change this for any reason. Open the workspace's settings and change the "Threshold similarity" to "No Restriction", and even increase the "Context snippets" from 4-6.
What this does is apply no score-filtering on results from the vector db. It is totally use-case and document dependent on if you need to do this, which is why we expose the controls for these settings.
If you still have poor results, you can even "pin" a document in a workspace, which will do full-text injection in the prompt.


fix lint rule fixer for more than one Component + Prop

Hey, I just made a Pull Request!
issue: https://github.com/backstage/backstage/issues/23467

For the component + prop combination the fixer was assuming only 1 Component+Prop
causing this kind of replacement:
- import { Grid, GridProps, Theme, makeStyles } from '@material-ui/core';
+ import Grid, { GridProps } from '@material-ui/core/Grid';
// Theme and makeStyles get ignored

- import { Grid, GridProps, SvgIcon, SvgIconProps } from '@material-ui/core';,
+ import Grid, { GridProps } from '@material-ui/core/Grid';
//  SvgIcon and SvgIconProps get ignored

on this PR I added those test cases, but also made a refactor of the logic to pre-calculate all the different cases
:heavy_check_mark: Checklist

[ x] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ x] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[ x] All your commits have a Signed-off-by line in the message. (more info)

@awanlin pinging as you probably interested on this one

Thanks for this one as well @Sarabadu 🚀

@freben I wanted to merge this but looks like the DCO is stuck, going to try the close and open trick but that hasn't been working for me too much lately.

@freben I wanted to merge this but looks like the DCO is stuck, going to try the close and open trick but that hasn't been working for me too much lately.

Seems like it didn't work, and now the test also failed. I can maybe rebase and force push to see if that helps. let me know

Yes, please try the rebase.

@awanlin all green now!!


[AutoDiff] Unwrap the top level of linear map tuple when it is possible

This essentially passes the members of a linear map tuple as individual arguments. It yields few nice simplifications:

No linear map tuples at all for getters / setters
No tuple formation / deconstruction around pullbacks

Pullbacks with loops still use heap-allocated tuples

Tagging @BradLarson

@swift-ci please check

@swift-ci please test

@swift-ci please test

@rxwei Thanks! Essentially in non-loop case instead of creating / deconstructing the tuples we pass elements directly. The data structures are the same inside – we operate on tuple types.

@swift-ci please test

@swift-ci please test

@swift-ci please test

@swift-ci please test

@swift-ci please test

@swift-ci please test

@swift-ci please test


Add sorting buttons

Add the sorting buttons to the search prototype

Note that the API back-end does not implement that, so there is no effect with this widget.


Deployment on Azure

Hello,
I would like to ask  if a flask app using your super cool development FlashRank can be deployed to Azure  as App Service or Container Instance. I initiated FlashRank as you suggested (ranker = Ranker(model_name="ms-marco-MiniLM-L-12-v2", cache_dir="/opt")) but somehow when using the deployed app on Azure,  running stops at the point when FlashRank has been called by  a function, while locally I have no such problem, even if I containerize the app. Have you faced such issue,  should I consider deploying it on a more powerful VM? What do you think?
I truly appreciate all your effort creating FlashRank. Congrats,
Viktor

Hello,
I would like to ask  if a flask app using your super cool development FlashRank can be deployed to Azure  as App Service or Container Instance. I initiated FlashRank as you suggested (ranker = Ranker(model_name="ms-marco-MiniLM-L-12-v2", cache_dir="/opt")) but somehow when using the deployed app on Azure,  running stops at the point when FlashRank has been called by  a function, while locally I have no such problem, even if I containerize the app. Have you faced such issue,  should I consider deploying it on a more powerful VM? What do you think?
I truly appreciate all your effort creating FlashRank. Congrats,
Viktor

Thanks for reaching out. I and a few in the community have deployed jn both AWS lambda and GCP cloud runs without any issues. Infact flashrank is an ideal candidate for running Serverless reranking services to save cost. But I haven't personally tried azure.
Here is what I suggest: Why don't you paste / share the logs and exact issues, versions rather than saying "it stopped working", someone in the community might be able to pitch in and also it will give an idea as to what exactly is the issue.

Thanks, truly appreciate your response.
Yes I also managed to deploy (the sample code) directly to AWS Lambda and testing it with Postman, but if I tried to deploy it as a part of a flask webapplication with Zappa, or to AWS Elastic Beanstalk I failed.
In regard to Azure App service  the error message from Azure looks like this:
(It seems that it stops when the code gets to firing the FlaskRank instance.)
2024-05-23T13:17:54.8054943Z warn: Microsoft.AspNetCore.Server.Kestrel[22] 2024-05-23T13:17:56.3435109Z As of "05/23/2024 13:17:39 +00:00", the heartbeat has been running for "00:00:01.9722283" which is longer than "00:00:01". This could be caused by thread pool starvation. 2024-05-23T13:19:30.3993582Z warn: Microsoft.AspNetCore.Server.Kestrel[22] 2024-05-23T13:19:31.3647632Z As of "05/23/2024 13:19:18 +00:00", the heartbeat has been running for "00:00:03.1978528" which is longer than "00:00:01". This could be caused by thread pool starvation.
Do you have any idea regarding the error message? or do you know about any special trick or dependency which is need for the deployment?
Thanks your response in advance


Need a way to specify custom directories for rhsm configuration

Patch https://github.com/docker/docker/pull/6075 adds support to docker to specify "secret" files to be injected in a container. As of today's Atomic Hosts when one does docker run -it registry.access.redhat.com/rhel7 the secrets files are copied over and injected into the container from /usr/share/rhel/secrets. This enables subscription manager to run inside containers as desired.
On the atomic host we see the forllowing
$ ls -al /usr/share/rhel/secrets/
lrwxrwxrwx. 1 root root 20 Jul 28 01:00 etc-pki-entitlement -> /etc/pki/entitlement
lrwxrwxrwx. 1 root root 28 Jul 28 01:00 rhel7.repo -> /etc/yum.repos.d/redhat.repo
lrwxrwxrwx. 1 root root  9 Jul 28 01:00 rhsm -> /etc/rhsm

So consider the case where you want the /etc/rhsm on the host to be different from the /etc/rhsm inside the container. It could be something basic like "the rhsm base url for yum repos is different from base url for atomic ostree repos" OR "we want to use different entitlement models and hide access to certain repos on hosts vs containers".  The above configuration will make it impossible to change that because /usr/share/rhel/secrets/rhsm is a read-only link . The symlink there cannot be redirected.
The /etc/rhsm conf symlinked above specifically points hosts rhsm conf. We cannot have separate configurations for hosts and containers.
In short we need something like this
$ ls -al /usr/share/rhel/secrets/
lrwxrwxrwx. 1 root root 20 Jul 28 01:00 etc-pki-entitlement -> /etc/pki/entitlement-latest
lrwxrwxrwx. 1 root root 28 Jul 28 01:00 rhel7.repo -> /etc/yum.repos.d/redhat-latest.repo
lrwxrwxrwx. 1 root root  9 Jul 28 01:00 rhsm -> /etc/rhsm-latest

$ ls -al /etc/pki/entitlement-latest
entitlement-latest -> entitlements

$ ls -al /etc/rhsm-latest
rhsm-latest -> rhsm

$ ls -al /etc/yum.repos.d/redhat-latest.repo
redhat-latest.repo -> redhat.repo

What this would enable is for one to change what /etc/rhsm-latest points to and specify an alternate configuration for the container while preserving the default behavior when desired.

I would think having it point to /etc/rhsm-containers would be better then latest.
Have you tried this out and does it work?

How about enhancing the secrets patch to look in both /usr/share/rhel/secrets and /etc/docker/rhel/secrets; the latter overrides the former?
Then all you'd need to do is ln -sr /etc/rhsm-container /etc/docker/rhel/secrets, right?

I am fine with this although I would prefer something generic like /etc/container/rhel/secrets.

/etc/container/rhel/secrets.

+1

@rhatdan @cgwalters both suggestions are good and will work for me.

@runcom can you modify the secrets patch to handle this?

@rhatdan sure I can

@runcom, can this be closed?


[Bug]: You are not allowed to delete this app

Is there an existing issue for this?

[X] I have searched the existing issues

Example public repository
coolify
Description
When I create a new docker compose application for a user account, it cannot be deleted by either the Coolify user or the administrator
Coolify gets the message "You are not allowed to delete this app"
Steps To Reproduce

log in or switch to a user account
create an application compose-application
run the deployment
stop the application
try to delete the application
then switch to the administrator account coolify
try to delete the application

Version
v3.12.17

I have the same issue. It started after I upgrade coolify to latest version.

Same problem!

Same here.

@andrasbacsai the problem still exists. I'm on v3.12.21


chore(deps): update all non-major dependencies

This PR contains the following updates:

Package
Type
Update
Change

@types/node (source)
devDependencies
patch
^20.11.10 -> ^20.11.13

pnpm (source)
packageManager
patch
8.15.0 -> 8.15.1

Release Notes

pnpm/pnpm (pnpm)
v8.15.1
Compare Source
Patch Changes

Use the object-hash library instead of node-object-hash for hashing keys of side-effects cache #7591.
bundledDependencies should never be added to the lockfile with false as the value #7576.

Platinum Sponsors

Gold Sponsors

Our Silver Sponsors

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Hywax Assistant.

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

Comparison is base (725599b) 100.00% compared to head (a8a0630) 100.00%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff            @@
##              main        #8   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            3         3
  Lines          146       146
  Branches        26        26
=========================================
  Hits           146       146

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


Wrong format for updated_at

The updated_at property of api_specs items has a wrong format e.g. -62135596800000 instead of something like 2017-01-20 11:03:17.331Z.
Expected behavior:
updated_at should be ISO.
Observed behavior:
updated_at is not ISO.

Where did you find this?

Since we don't have the created_at and updated_at fields anymore on version 2.0 onwards I think this can be closed.
If we introduce the time fields back then we should have this point in consideration.


⚠ SceneTime has degraded performance

In e162cb2, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 18309 ms

Resolved: SceneTime performance has improved in 66b7380 after 6 minutes.


Modify api path to add member to project

This is related to #168
I have modified api path to add member to project and also modified provider.resourceMembersGroupCreate because it depends on models.
Please review my PR!

SonarCloud Code Analysis was failed, but it seems that duplicated line is in a function between resource_project_member_group.go and resource_project_member_user.go that is not modified in this PR.
So I don't think it's problem.

@sshota0809 can you make sure the documentation is updated as well thanks

@wrighbr
Due to this PR, resource_project_member_groupandresource_project_member_usershould referenceharbor_project.xxxxx.project_idinstead ofxxxxx.main.id` and I have modified so as following commit.
https://github.com/BESTSELLER/terraform-provider-harbor/pull/172/commits/0d128aade3678dffb89a50a5cb9aceddd0249c83
I think nothing else isn't needed to be changed IN document.


Auro Library incorrectly installed in devDependencies

Please verify the version of auro-input you have installed
4.0.0
Please describe the bug

Open package.json
Note that "@aurodesignsystem/auro-library": "^2.8.0", is listed inside devDependencies
This causes reliant projects to break when consuming since auro library is a required dependency

Reproducing the error on the docsite
None
Expected behavior

auro library should be a production dependency

What browsers are you seeing the problem on?
No response
Additional context
No response

this isn't an issue on this repo!


[SPARK-49569][CONNECT][SQL] Add shims to support SparkContext and RDD

What changes were proposed in this pull request?
This PR does two things:

It adds shims for SparkContext and RDD. These are in a separate module. This module is a compile time dependency for sql/api, and a regular dependency for connector/connect/client/jvm. We remove this dependency in catalyst and connect-server because those should use the actual implementation.
It adds RDD (and the one SparkContext) based method to the shared Scala API. For connect these methods throw an unsupported operation exception.

Why are the changes needed?
We are creating a shared Scala interface for Classic and Connect.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Existing tests. I will add a couple on the connect side.
Was this patch authored or co-authored using generative AI tooling?
No.

cc @grundprinzip @HyukjinKwon

@dongjoon-hyun yeah working on it. SBT does not seem to respect maven exclusions...

Could you rebase once more, @hvanhovell ?

@dongjoon-hyun it is a bit more complicated. While SBT compile seems to respect Maven exclusions, test:compile and package do not. Investigating. I'd personally not hold off preview2 because of this.

Ack! Thank you for sharing the status, @hvanhovell .

Could you re-trigger the failed CIs?
[info] ClientE2ETestSuite:
[info] org.apache.spark.sql.ClientE2ETestSuite *** ABORTED *** (2 minutes, 48 seconds)
[info]   The code passed to eventually never returned normally. Attempted 1 times over 2.805218503466667 minutes. (RemoteSparkSession.scala:197)
[info]   org.scalatest.exceptions.TestFailedDueToTimeoutException:

Merging to master.

This PR has caused the Maven daily test build to fail: xxx.

https://github.com/apache/spark/actions/runs/11255598249
https://github.com/apache/spark/actions/runs/11256610976

scaladoc error: fatal error: object scala in compiler mirror not found.
Error:  Failed to execute goal net.alchim31.maven:scala-maven-plugin:4.9.1:doc-jar (attach-scaladocs) on project spark-connect-shims_2.13: MavenReportException: Error while creating archive: wrap: Process exited with an error: 1 (Exit value: 1) -> [Help 1]
Error:
Error:  To see the full stack trace of the errors, re-run Maven with the -e switch.
Error:  Re-run Maven using the -X switch to enable full debug logging.
Error:
Error:  For more information about the errors and possible solutions, please read the following articles:
Error:  [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
Error:
Error:  After correcting the problems, you can resume the build with the command
Error:    mvn <args> -rf :spark-connect-shims_2.13
Error: Process completed with exit code 1.

I am trying to fix it at: https://github.com/apache/spark/pull/48399


Fix model diagram

-Update Model and UI component diagrams
-Split Model into smaller diagrams : Person, Position, Interview
-Changed img src to actual markdown format.

Codecov Report

Merging #281 (9373af0) into master (f7cbdd1) will decrease coverage by 0.10%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #281      +/-   ##
============================================
- Coverage     78.20%   78.10%   -0.11%
- Complexity      990      991       +1
============================================
  Files           119      119
  Lines          3019     3028       +9
  Branches        412      415       +3
============================================
+ Hits           2361     2365       +4
- Misses          535      539       +4
- Partials        123      124       +1

Impacted Files
Coverage Δ

.../address/logic/candidate/EditCandidateCommand.java
86.95% <0.00%> (-3.61%)
: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 9a89078...9373af0. Read the comment docs.


Add support for Firewalls

Note: Firewalls may soon be superseded in Katapult by "Security Groups",
which would offer more flexibility than the current Firewall system. Hence this
feature is on hold for now.

Add support for Firewall and Firewall Rule operations.
API documentation:

Firewalls: https://developers.katapult.io/api/docs/latest/groups/firewalls/
Firewall Rules:
https://developers.katapult.io/api/docs/latest/groups/firewalls/rules/

Security groups are being introduced.


Micro encountered an error: runtime error: index out of range

Description of the problem or steps to reproduce
Open certain files and begin scrolling down, or open a binary file (stupid I know)
Micro encountered an error: runtime error: index out of range
runtime.errorString runtime error: index out of range
/usr/lib/go/src/runtime/panic.go:489 (0x42a66f)
	gopanic: reflectcall(nil, unsafe.Pointer(d.fn), deferArgs(d), uint32(d.siz), uint32(d.siz))
/usr/lib/go/src/runtime/panic.go:28 (0x4292ee)
	panicindex: panic(indexError)
/extra/home/thingo/go/src/github.com/zyedidia/micro/cmd/micro/cellview.go:136 (0x84f4b5)
	(*CellView).Draw: c.lines[viewLine][viewCol] = &Char{Loc{viewCol, viewLine}, Loc{colN, lineN}, char, char, curStyle, 1}
/extra/home/thingo/go/src/github.com/zyedidia/micro/cmd/micro/view.go:723 (0x8a0917)
	(*View).DisplayView: v.cellview.Draw(v.Buf, top, height, left, width-v.lineNumOffset)
/extra/home/thingo/go/src/github.com/zyedidia/micro/cmd/micro/view.go:977 (0x8a2fcb)
	(*View).Display: v.DisplayView()
/extra/home/thingo/go/src/github.com/zyedidia/micro/cmd/micro/micro.go:218 (0x866ed1)
	RedrawAll: v.Display()
/extra/home/thingo/go/src/github.com/zyedidia/micro/cmd/micro/micro.go:428 (0x868756)
	main: RedrawAll()
/usr/lib/go/src/runtime/proc.go:185 (0x42c45a)
	main: fn()
/usr/lib/go/src/runtime/asm_amd64.s:2197 (0x4574c1)
	goexit: BYTE	$0x90	// NOP

example file here: https://ptpb.pw/AAAOLGDLbll_zykmGEmi8CfDgQv1
Specifications
Version: 1.2.1-54
Commit hash: e6f24b0
Compiled on July 16, 2017
OS: arch linux
Terminal: xiate

I could not reproduce this error. Are you able to consistently reproduce it? Maybe things like terminal size, whether softwrap is enabled, or the filetype would help me reproduce the issue?

hmm, getting the error when opening fstab with a horizontal terminal, but no vertical
Micro encountered an error: runtime error: index out of range
runtime.errorString runtime error: index out of range
/usr/lib/go/src/runtime/panic.go:489 (0x42a66f)
	gopanic: reflectcall(nil, unsafe.Pointer(d.fn), deferArgs(d), uint32(d.siz), uint32(d.siz))
/usr/lib/go/src/runtime/panic.go:28 (0x4292ee)
	panicindex: panic(indexError)
/extra/home/thingo/go/src/github.com/zyedidia/micro/cmd/micro/cellview.go:155 (0x84efdd)
	(*CellView).Draw: c.lines[viewLine][viewCol] = &Char{Loc{viewCol, viewLine}, Loc{colN, lineN}, char, ' ', curStyle, 1}
/extra/home/thingo/go/src/github.com/zyedidia/micro/cmd/micro/view.go:723 (0x8a0917)
	(*View).DisplayView: v.cellview.Draw(v.Buf, top, height, left, width-v.lineNumOffset)
/extra/home/thingo/go/src/github.com/zyedidia/micro/cmd/micro/view.go:977 (0x8a2fcb)
	(*View).Display: v.DisplayView()
/extra/home/thingo/go/src/github.com/zyedidia/micro/cmd/micro/micro.go:218 (0x866ed1)
	RedrawAll: v.Display()
/extra/home/thingo/go/src/github.com/zyedidia/micro/cmd/micro/micro.go:428 (0x868756)
	main: RedrawAll()
/usr/lib/go/src/runtime/proc.go:185 (0x42c45a)
	main: fn()
/usr/lib/go/src/runtime/asm_amd64.s:2197 (0x4574c1)
	goexit: BYTE	$0x90	// NOP

this was with a 153x23 terminal

I'm able to reproduce this every time just by navigating through the directories in the tree.
Version
$ micro -version
Version: 1.3.1
Commit hash: dd5afc0
Compiled on August 08, 2017
This is the micro-1.3.1-linux64.tar.gz binary.
System
Ubuntu 14.04 64 bit
How to reproduce
// start micro
$ micro
// Open tree
Ctrl+E
> tree
// Just keep jumping around some directories, certain directories does trigger this error every single time.
Log

Micro encountered an error: runtime error: index out of range
runtime.errorString runtime error: index out of range
/home/zbyedidia/go/src/runtime/panic.go:489 (0x42a63f)
/home/zbyedidia/go/src/runtime/panic.go:28 (0x4292be)
/home/zbyedidia/gopath/src/github.com/zyedidia/micro/cmd/micro/cellview.go:79 (0x84b9cd)
/home/zbyedidia/gopath/src/github.com/zyedidia/micro/cmd/micro/view.go:723 (0x89d107)
/home/zbyedidia/gopath/src/github.com/zyedidia/micro/cmd/micro/view.go:977 (0x89f7bb)
/home/zbyedidia/gopath/src/github.com/zyedidia/micro/cmd/micro/micro.go:216 (0x8630c1)
/home/zbyedidia/gopath/src/github.com/zyedidia/micro/cmd/micro/micro.go:426 (0x864946)
/home/zbyedidia/go/src/runtime/proc.go:185 (0x42c42a)
/home/zbyedidia/go/src/runtime/asm_amd64.s:2197 (0x457411)

Bug in plugin
There is a bug in the filemanager plugin, (tree)
When you go forward in to a folder from the current location, then open a file it will crash. If you go up a folder from the current location then it will open files with out crashing. But soon as you get back to the current location and go into a folder it will crash.
I have put a patch in to micro editor to stop this happening and the plugin will have to be updated if the patch goes in to micro editor. #788
Problem
It's to do with the current path, it does not get it correctly.
Not sure about the other files, if a could get a sample of the file to download I could take a look. (not pasted in issues as encoding could be changed by github)

Is this solved? It seems like this isn't really a problem with the editor but rather with the filemanager plugin (which I have removed from the official plugin list due to bugs).

RS-X - problem should be solved with plugin updating - I will send patch Monday when I get time.
ibrokemypie - problem might still be there as he as not said he is using the filemanager plugin to load the file. Need sample of the file causing the problems, not pasted in github issues as text encoding could be changed by github. Need problem file up loading to github repo or dropbox so it can be tested with micro editor with the %orignal encoding of the file.

I can reproduce this bug fairly consistently (half the time or more) with Micro version 1.3.3.
Micro encountered an error: runtime error: index out of range
runtime.errorString runtime error: index out of range
/home/zbyedidia/go/src/runtime/panic.go:491 (0x42b9d3)
/home/zbyedidia/go/src/runtime/panic.go:28 (0x42a6ae)
/home/zbyedidia/gopath/src/github.com/zyedidia/micro/cmd/micro/cellview.go:136 (0x895d1a)
/home/zbyedidia/gopath/src/github.com/zyedidia/micro/cmd/micro/view.go:732 (0x8f21a8)
/home/zbyedidia/gopath/src/github.com/zyedidia/micro/cmd/micro/view.go:986 (0x8f4759)
/home/zbyedidia/gopath/src/github.com/zyedidia/micro/cmd/micro/micro.go:224 (0x8b8e16)
/home/zbyedidia/gopath/src/github.com/zyedidia/micro/cmd/micro/micro.go:460 (0x8ba6d4)
/home/zbyedidia/go/src/runtime/proc.go:185 (0x42d7dd)
/home/zbyedidia/go/src/runtime/asm_amd64.s:2337 (0x45aad1)

Softwrap is true.  My terminal size (not that it matters) is 172 by 59.
To attempt to reproduce:

Run ./micro
Type "hello world" (without the quotes, no newline)
Hold down shift and press the left arrow key to highlight all the text.
Press Ctrl+C
Press and hold Ctrl+V to repeatedly paste the text.

At least 50% of the time, within 5-20 lines of "hello world", I will get the above error.
Version: 1.3.3
Commit hash: a02ae3c
Compiled on September 28, 2017

@parke The branch isn't done (one minor bug atm), but I have a fix for the index out of range bug here https://github.com/sum01/filemanager-plugin/commit/838a3a8d42b99dd3dd1da6a37c789b7246975656
The minor bug is that CursorDown on the file browser moves two spaces, and I'm not really sure why.

If Micro has a file open that is modified by another process, and the user clicks back into the Micro terminal window, a prompt to reload the file appears (provided the reload setting is set to prompt). However, if the user's click lands within a region that falls outside the bounds of the file after the reload (because the external modification reduced its size), a crash occurs.
Micro encountered an error: runtime.boundsError runtime error: index out of range [9255] with length 8321
runtime/panic.go:114 (0x55c53d11411c)
github.com/zyedidia/micro/v2/internal/buffer/line_array.go:395 (0x55c53d54b5d2)
github.com/zyedidia/micro/v2/internal/buffer/buffer.go:1262 (0x55c53d56a079)
github.com/zyedidia/micro/v2/internal/display/bufwindow.go:494 (0x55c53d56a038)
github.com/zyedidia/micro/v2/internal/display/bufwindow.go:717 (0x55c53d568c87)
github.com/zyedidia/micro/v2/internal/display/bufwindow.go:788 (0x55c53d56b299)
github.com/zyedidia/micro/v2/cmd/micro/micro.go:407 (0x55c53d5cfd1c)
github.com/zyedidia/micro/v2/cmd/micro/micro.go:394 (0x55c53d5cfa8c)
runtime/internal/atomic/types.go:194 (0x55c53d119172)
runtime/asm_amd64.s:1650 (0x55c53d14a6e1)

If Micro has a file open that is modified by another process, and the user clicks back into the Micro terminal window, a prompt to reload the file appears (provided the reload setting is set to prompt). However, if the user's click lands within a region that falls outside the bounds of the file after the reload (because the external modification reduced its size), a crash occurs.

Thanks for reporting. Fixed in #3250.
Regarding the earlier reported crashes in the earlier comments, they are probably not relevant anymore: Micro's code base was nearly entirely rewritten during the refactoring in 2019-2020, and I've never reproduced those crashes in the described scenarios. So I think that once we merge #3250, we can close this issue.


Does not exit when clicked outside editor component (if parent transformed)

If the parent of simpla-markdown has a transform applied, it's possible to click outside the component entirely, and the editor should close on all outside clicks of the popup window. This edge case was handled with a blur listener, but that was removed in https://github.com/SimplaElements/simpla-markdown/commit/b3132b4f7a2317eb05692c929d3fbaa83267300c because it breaks in shady DOM (light children taps fire blur on parent).
This is a reasonably small bug, just an edge case.

Closing in favour of #18


Prompt selecting a webhook instead of requiring a webhook link

Instead of requiring a link to make a webhook connection, just prompt the server's webhooks and select one OR create one from scratch

Could just declare the channel desired, and let it create the webhook that way.

This is an idea that I have been thinking about for a while, I'll get onto it when I get time

@Coolguy3289 Should this be the default option, with the explicit webhook url option "for experts"

Yes, Let the channel name be what is in help text context, and in the details add the explanation to use a pre-defined Webhook. This could also prevent dupe webhooks on accident

This was added in the rewrite here.


[NoQA] Refactor: Hooks cleanup

Details

This PR aims to fix minor issues with hooks performance (memoization, references calculations adjustments). Here is a list:

[x]  useInitialWindowDimensions
[x]  useIsScrollBarVisible
[x]  useReportScrollManager
[x]  useSafeAreaInsets
[x]  useDebouncedState

setter is not memoized which might results in unnecessary invalidation on consumers levels.

[x]  useSingleExecution

Web: Action could be extracted out of the hook to not trigger the useCallback

[x]  useSubStep

onNextSubStep fallback should have stable ref

[x]  useSyncFocus
[x]  useTabNavigatorFocus
[x]  useTackInputFocus
[x]  useViewportOffsetTop
[x]  useWindowDimensions
[x]  useActiveRoute
[x]  useActiveWorkspace
[x]  useArrowKeyFocusManager
[x]  useAutoFocusInput
[x]  useDelayedInputFocus
[x]  useDisableModalDismissOnEscape
[x]  useDisableModalDismissOnEscape

wrap return function in a useCallback

[x]  useEnvironment
[x]  useGeographicalStateFromRoute
[x]  useHandleExceedMaxCommentLength
[x]  useHover
[x]  useInitialValue
[x]  useIsReportOpenInRHP
[x]  useIsSplashHidden
[x]  useKeyboardShortcut

useEffect return value
default parameter memoization

[x]  useKeyboardState
[x]  useLocalize
[x]  useLocationBias
[x]  useMarkdownStyle
[x]  useNetwork

Default config
Default parameter

[x]  useOnboardingLayout
[x]  usePermissions
[x]  usePreferredEmojiSkinTone
[x]  usePrevious
[x]  useReimbursementAccountStepFormSubmit
[x]  useReportIDs
[x]  useResetComposerFocus
[x]  useResponsiveLayout
[x]  useScreenWrapperTransitionStatus
[x]  useScrollContext
[x]  useSearchTermAndSearch
[x]  useStepFormSubmit

reduce with recreation → regular for loop / reduce without recreation

[x]  useStyledSafeAreaInsets
[x]  useStyleUtils
[x]  useTheme
[x]  useThemeIllustrations
[x]  useThemePreference
[x]  useThemePreferenceWithStaticOverride
[x]  useThemeStyles
[x]  useThrottledButtonState

It does not do exactly what is says
Memo the callback

[x]  useThumbnailDimensions
[x]  useViolations
[x]  useWaitForNavigation

return callback

[x]  useWalletAdditionalDetailsStepFormSubmit

Fixed Issues

$
PROPOSAL:
Tests

[ ] Verify that no errors appear in the JS console

Offline tests

QA Steps

[ ] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

As discussed in slack, we'll going to break up this PR into a series of different PRs, each focused on a more specific P/S we align on in slack


#4076 - Queue Monitoring - Schedulers Refactor (SFAS Integration)

Refactored SFAS-related schedulers, SFAS to SIMS and vice-versa.

Adjusted E2E tests.
Replaced SFASProcessingResult with the processSummary. This refactor is not expected to be done for every scheduler.

Good job @andrewsignori-aot. Just one comment on the decorator.


Error with the phenotype file

So I am just trying to identify the bed_fn and pheno_fn.
I put them in as below:
bed_fn = "/home/xx/xx3/bed_file"
pheno_fn = " /home/xx/xx3/bed_file_pheno.txt"
results_df = single_snp(bed_fn, pheno_fn, count_A1=True)
I don't have a co-variant file. The bed file is a bed file! and the pheno file complies with the alternative phenotype file format for plink (family id, indiv id, pheno without a header) but I get this response:
No such file or directory: ' /home/xx/xx3/bed_file_pheno.txt.fam'
Should the phenotype file be in a different layout???
Thanks

AD-Farl,
Thanks much for your question and for using FaST-LMM. There is likely some about the format of your phenotype file that FaST-LMM doesn't like, but currently its message is very misleading. (I'll try to improve the message in the next version). In the meantime, here are two things to try:

I notice an extra space in your pheno_fn
pheno_fn = " /home/xx/xx3/bed_file_pheno.txt"
^EXTRA SPACE
Try removing that. If that works, you're done. If not, try this:

from pysnptools.snpreader import Pheno
bed_fn = "/home/xx/xx3/bed_file"
pheno = Pheno("/home/xx/xx3/bed_file_pheno.txt") #we specify the reader for the file explicitly to  get better error messages if there are problems with the format.
results_df = single_snp(bed_fn, pheno, count_A1=True)
Please let us know if this helps,
Yours,
Carl


`[WIP] Support WorkerPool

How's this PR going?

I will use the form of brpc to implement our own efficient workpool.