"Service Discovery" gets not updated when a new exposed deployment is available

Rancher versions:
rancher/server or rancher/rancher: 2.0.2
rancher/agent or rancher/rancher-agent:
Infrastructure Stack versions:
kubernetes (if applicable): 1.10.4
Docker version: (docker version,docker info preferred)
Node: 17.03.2-ce, build f5ec1e2
Rancher server: 17.03.2-ce, build f5ec1e2
Operating system and kernel: (cat /etc/os-release, uname -r preferred) 4.14.22+
Type/provider of hosts: (VirtualBox/Bare-metal/AWS/GCE/DO) GCE
Setup details: (single node rancher vs. HA rancher, internal DB vs. external DB) Single node rancher with one-node cluster
Environment Template: (Cattle/Kubernetes/Swarm/Mesos) Cattle
Steps to Reproduce:
Deploy a workload, then a service.
Go to "Workloads" - "Service Discovery"
Then delete the service (via kubectl delete svc )
Results:
The Load Balancing entry is correctly updated (removed), but the entry in "Service Discovery" is still there. (Even when you click around the tabs).
It gets updated when i go to the global name space and then select my cluster in the corresponding name space.

Thanks for your feedback. This issue has been fixed in v2.0.4


chore: add benchmarks

Add some reasonable benchmarks

Actually it makes more sense to compare the functions and not the targets.. so benchmark-verify and benchmark-sign and not benchmark-node and benchmark-web.


Fixing CI/CD error introduced by deprecation in gt v0.6

See rstudio/gt#912
quoted columns not passed thru to sub_missing, throwing error in vignette production on CI pipeline
Requiring gt >=0.6, fmt_missing -> sub_missing

Looks like there's still a windows error related to openssl...says it's using version 2.0.2 from CRAN, but latest on GH seems to be 2.0.1. Hopefully it'll be fixed or retracted in the coming days.


uninstall the ArcREST package

I'v spent several hours trying to remove ArcREST, I am still scratching my head.
"pip uninstall" ended up with a warning which says it will only spatially remote the arcrest package.
setup.py doesn't have a unintall command
I understand behind the scene, distutils is doing the work for packaging and installing, but unfortunately it only gives you a one-way ticket, no way to come back (to do the un-installation). unless you want to do it manually which is not an option for a python newbie like me...
Although it was an issue for distutils( http://bugs.python.org/issue4673) it seems the problem was solved in distutils2 which provides a remove command.
In Python Packaging User Guide, it now recommends setuptools...
So, I am wondering if there are any concerns that stop ArcREST from using distutils2/setuptools? or, is there another way to uninstall the package, because I want to use it in a different way.
Many thanks

@simoxu001 - is this for python 2.7 or python 3.x you are seeing this issue?

@achapkowski - I am using python 2.7.8 coming with ArcGIS 3.0
and I installed ArcREST using $python setup.py install as instructed, I only run pip install for the requirements.
If run pip install for ArcREST, I will end up installing a very different version (3.0) from PyPI. I won't have problems to uninstall it, because pip will take care of it.
pip can't uninstall the packages installed by "setup.py install".
But, if all the stuff are under arcrest folder, not registered anywhere else in the OS or Python default environment, I am happy to manually remove it.
Thanks.


How to add Kotlin support?

I resolve this problem: https://github.com/AdamCalculator/DynamicPack/tree/6e22a71c9cfda71e928219074bb2e2e4f9cd4784


Feat/dark-mode

@dai-shi Please check this PR

I'm not familiar with this repo, unfortunately.
Maybe @CodyJasonBennett can have a look?


Neovim support

Thank for you for the fantastic addition to my vim config! Quite the enhancement to stock Fern, and essential for navigating large trees.
I often hop from vim/neovim interchangeably. I read the blurb about this plugin not being compatible with neovim (and verified it does not work). The linked PR appears to have been merged into Fern.vim. Any chance this could unblock neovim support for this project?
Again, stellar enhancement; way cool. :pray:

I just slapped this in my vimrc and now Vim looks better than Neovim :star_struck:
if has('nvim')
    let g:fern#renderer#nerdfont#indent_markers = 1
    let g:fern#renderer = "nerdfont"
else
    let g:fern#renderer = 'brandon1024/fern-renderer-nf.vim'
endif

Thanks @fresh2dev for your support :-) I'm glad to see this project used by others aside from me!
Supporting Neovim is super tricky because textprops aren't supported by neovim. It's a bit of a bummer that neovim is diverging so much from vim, it's quite hard to support both editors these days.
That PR that I linked to in the README added support to Fern for rendering with textprops. If we wanted to support neovim here, we'd also need to update Fern to support extmarks. I don't use neovim so the effort there was too high for me.
With that said, the maintainer of Fern is super friendly and helpful and would probably accept a PR for such a feature. If you or another developer added such a feature in Fern, I'd be happy to update this plugin :-)


Tag

Should wait on #32 then tag so we have a known working version.

Sure, I can maybe draft release guidelines as well so that we have easy to follow steps.

Tag this according to:
https://github.com/PathwayCommons/semantic-search/blob/1e1d1e4ac174fb099f9e8911e9690bffada60e23/setup.py#L8

@JohnGiorgi is there a best practice for tagging or is it as simple as syncing with setup.py ?

Hi @jvwong, because we aren't pushing it to an index like PyPI, I think all we have to do is tag it in the GitHub repo. I did that here: https://github.com/PathwayCommons/semantic-search/releases/tag/v0.1.0.
But yeah, in the future I think the workflow will be:

Bump version in setup.py
Create a release with the tag and name v{version}.

I added these instructions to setup.py, just so we have them written down somewhere.

Thanks!


Repercussions of replicaof self ?

Let's say I have this config file on host <IP_ADDRESS>
port 6379
requirepass mypassword123
masterauth mypassword123
multi-master yes
active-replica yes
replicaof <IP_ADDRESS> 6379
replicaof <IP_ADDRESS> 6379
replicaof <IP_ADDRESS> 6379

Note: A replicaof entry exists for the current host (<IP_ADDRESS>)
The advantage here is it vastly simplifies configuration, but are there any negative long term unforeseen consequences of this?
Thanks!

@JohnSully Any quick insight on whether this is safe to do? :smiley:

Hi @gnat,
By setting a server to be a replica of itself, the server will act as both the sender and recipient of replication traffic. This shouldn't cause a crash or data corruption or anything of the sort, however you may incur a performance penalty due to the added traffic. So in summary, yes it's safe, but you're better off not replicating from self.


Update the CONCAT scalar function to support Utf8View

Part of https://github.com/apache/datafusion/issues/11752 and https://github.com/apache/datafusion/issues/11790
Related: https://github.com/apache/datafusion/issues/11766
Currently, a call to CONCAT with a Utf8View datatypes induces a cast. After the change that fixes this issue, it should not.
query TT
EXPLAIN SELECT
  concat(column1_utf8view, column2_utf8view) as c
FROM test;
----
logical_plan
01)Projection: concat(CAST(test.column1_utf8view AS Utf8), CAST(test.column2_utf8view AS Utf8)) AS c
02)--TableScan: test projection=[column1_utf8view, column2_utf8view]

Concat is defined here: https://github.com/apache/datafusion/blob/main/datafusion/functions/src/string/concat.rs
Is your feature request related to a problem or challenge?
We are working to add complete StringView support in DataFusion, which permits potentially much faster processing of string data. See https://github.com/apache/datafusion/issues/10918 for more background.
Today, most DataFusion string functions support DataType::Utf8 and DataType::LargeUtf8 and when called with a StringView argument DataFusion will cast the argument back to DataType::Utf8 which is expensive.
To realize the full speed of StringView, we need to ensure that all string functions support the DataType::Utf8View directly.
Describe the solution you'd like
Update the function to support DataType::Utf8View directly
Describe alternatives you've considered
The typical steps are:

Write some tests showing the function doesn't support Utf8View (see the tests in string_view.slt to ensure the arguments are not being cast
Change the Signature of the function to accept Utf8View in addition to Utf8/LargeUtf8
Update the implementation of the function to operate on Utf8View

Example PRs

Update to use an arrow kernel that already supports StringView:  https://github.com/apache/datafusion/pull/11787
Change the implementation to support StringView directly: https://github.com/apache/datafusion/pull/11676
Change implementation (option 2): https://github.com/apache/datafusion/pull/11556

Additional context
The documentation of string functions can be found here: https://datafusion.apache.org/user-guide/sql/scalar_functions.html#string-functions
To test a function with StringView with datafusion-cli you can use an example like this (replacing starts_with with the relevant function)
> create table foo as values (arrow_cast('foo', 'Utf8View'), arrow_cast('bar', 'Utf8View'));
0 row(s) fetched.
Elapsed 0.043 seconds.

> select starts_with(column1, column2) from foo;
+--------------------------------------+
| starts_with(foo.column1,foo.column2) |
+--------------------------------------+
| false                                |
+--------------------------------------+
1 row(s) fetched.
Elapsed 0.015 seconds.

To see if it is using utf8 view, use EXPLAIN to see the plan and verify there is no CAST. In this example the CAST(column1@0 AS Utf8) indicates that the function is not using Utf8View natively
> explain select starts_with(column1, column2) from foo;
+---------------+------------------------------------------------------------------------------------------------------------------------------+
| plan_type     | plan                                                                                |
+---------------+------------------------------------------------------------------------------------------------------------------------------+
| logical_plan  | Projection: starts_with(CAST(foo.column1 AS Utf8), CAST(foo.column2 AS Utf8))                                                |
|               |   TableScan: foo projection=[column1, column2]                                                                               |
| physical_plan | ProjectionExec: expr=[starts_with(CAST(column1@0 AS Utf8), CAST(column2@1 AS Utf8)) as starts_with(foo.column1,foo.column2)] |
|               |   MemoryExec: partitions=1, partition_sizes=[1]                                                                              |
|               |                                                                                |
+---------------+------------------------------------------------------------------------------------------------------------------------------+
2 row(s) fetched.
Elapsed 0.006 seconds.

It is also often good to test with a constant as well (likewise there should be no cast):
> explain select starts_with(column1, 'foo') from foo;
+---------------+----------------------------------------------------------------------------------------------------------+
| plan_type     | plan                                                                                |
+---------------+----------------------------------------------------------------------------------------------------------+
| logical_plan  | Projection: starts_with(CAST(foo.column1 AS Utf8), Utf8("foo"))                                          |
|               |   TableScan: foo projection=[column1]                                                                    |
| physical_plan | ProjectionExec: expr=[starts_with(CAST(column1@0 AS Utf8), foo) as starts_with(foo.column1,Utf8("foo"))] |
|               |   MemoryExec: partitions=1, partition_sizes=[1]                                                          |
|               |                                                                                |
+---------------+----------------------------------------------------------------------------------------------------------+
2 row(s) fetched.
Elapsed 0.002 seconds.

### Additional context

_No response_

take

Maybe i can reference this PR: https://github.com/apache/datafusion/pull/11851

That's a good one to reference... You also might consider looking at https://github.com/apache/datafusion/pull/11787, which similar to this concat func in that you have to consider multiple arguments and their types (e.g. concat'ing a UTF8View with a UTF8). It also has sqllogictests (slt), which it'd be nice to new PRs to have.

 If not, can I take a look. This is one of the three issues still open on https://github.com/apache/datafusion/issues/11790 -- we're really close.

@dharanad -- hey, are you still working on this? If not, can I take a look. This is one of the three issues still open on https://github.com/apache/datafusion/issues/11790 -- we're really close.

Hey, please feel free to work on it

take


ECIES: Adding interfaces

This commit introduces interfaces for ECIES (Elliptic Curve
Integrated Encryption Scheme).
For this purpose additional classes for key derivation and
message authentication code are added.

No needed any longer.


Multipart EXR Image Loading

Currently tev does not support loading multipart EXRs. When such an image is loaded, only one part will be shown, which is the first part containing a layer that matches the provided layer selector.
Recently I have managed to let tev load multipart EXRs more correctly by showing all layers that match the selector. It's not a big change, so before creating a PR I would like to know whether there is a reason behind this seemingly buggy behavior.
Thanks!
Xianyao

The problem with multipart EXR files is that each part is independent from the others, meaning they can have different resolutions, viewpoints, etc.. From the docs:

Multipart: ability to encode separate, but related, images in one file.

This is semantically quite different from loading many channels that all describe the same image. Plus, having different resolutions per channel is in conflict with some of the core mechanics in tev.
That said, I think there's still value in automatically loading all matched layers as long as their resolution is the same -- multipart files allow trading compression for loading speed after all.
My suggestion would be to only load those parts whose resolution equals that of the first matched part, whereas all matched parts with non-equal resolutions should emit a warning (tlog::warning() << stuff;) to avoid confused users.

Another aspect that I am not sure how to best handle is: what if different parts contain channels with the same names?
Can always append something to the duplicate channel names to disambiguate them, but this appendage should be something that's guaranteed to not clash with any other existing channel name.

Hi Thomas,
Thanks for the replies. I think these are valid concerns that need to be properly considered for this feature. What I implemented was based on much stricter assumptions and I should probably keep it in house for now.


setStencilTest fix

This is trivial fix for proper https://love2d.org/wiki/love.graphics.setStencilTest usage.

:+1:


Audio produces multiple ALSA error messages on Linux.

When I run Sample.py, I do hear the simulated sounder through the speakers, but the program produces the following warning messages:
les@Whimsy:~/PyKOB$ python3 Sample.py
ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:869:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:869:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:869:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:869:(find_matching_chmap) Found no matching channel map
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
HI
~ The quick brown fox +
les@Whimsy:~/PyKOB$

If I try listening to an active wire using the MKOB client, the 'ALSA underrun' message appears over and over again.

Issue #136 could be related to this.

I have a branch that uses 'python-sounddevice' instead of 'PyAudio'. Using 'python-sounddevice' resolves the ALSA errors - 'es-33-alsa-errors'.
To try it sounddevice needs to be installed by running:
python3 -m pip install sounddevice

and soundfile by running:
python3 -m pip install soundfile

Testing still needs to be done on Windows and Mac. Additional testing also needs to be done on Linux.

@Greg-R it would be great if you could pull branch 'es-33-alsa-errors' and give it a try, but I understand if you want to wait until it is tested and moved into master.

The 'es-33-alsa-errors' branch doesn't update pykob.syscheck yet. I will work on that later today.

I tried the es-33-alsa-errors branch on my Linux laptop just now. The first problem I ran into is pip wasn't installed on my computer. Hard to believe, but true.
les@Whimsy:~/PyKOB/MKOB$ python3 -m pip install sounddevice
/usr/bin/python3: No module named pip

I installed pip and installed sounddevice and soundfile. Then I ran MKOB and tried sending some letters on the keyboard. No more ALSA errors and I did get sound, but it was very sluggish. This resulted in buffer underrun warnings coming from KOB.sounder.
les@Whimsy:~/PyKOB/MKOB$ python3 MKOB.pyw
2020-09-17 09:17:13 	INFO: 	Load audio file: /usr/local/lib/python3.8/dist-packages/pykob/resources/clack48.wav
2020-09-17 09:17:13 	INFO: 	Load audio file: /usr/local/lib/python3.8/dist-packages/pykob/resources/click48.wav
2020-09-17 09:17:13 	INFO: 	Interface for key and sounder on serial port '/dev/ttyUSB0' not available. Key and sounder will not be used.
2020 9 17 - 9 0001-01-01 00:00:00 14
2020-09-17 09:17:14 	INFO: 	Record to 'Session-20200917-0917.json'
PyKOB 1.2.9
MorseKOB 4.0.11
Circuit Closer True, internet_active was False
KOB.sounder buffer empty: 1.653 -0.07 -60 (-460, 60, -60, 60, -60, 60, -60, 180)
KOB.sounder buffer empty: 1.858 -0.085 -60 (-460, 60, -60, 60, -60, 60, -60, 180)
KOB.sounder buffer empty: 2.039 -0.062 -60 (-460, 60, -60, 60, -60, 60, -60, 180)

I'll try this on Windows later today.

I have a few things on order to patch up my old DCM-6 based KOB circuit to safely interface to a Raspberry Pi.
I should have everything today and give it a try this weekend.  I have also been upgrading my knowledge of git, in particular working with remote repositories.  So I am motivated to pull the branch!

I tried with my Windows laptop and got the same kind of extreme sluggishness from the audio as I did with Linux.
The good news is that the pip install commands worked right away for sounddevice and soundfile.

@leskerr thank you for your testing efforts and your results. I saw the same thing in my Mac testing but wanted to get some other testing results without influencing anything. I didn't see the same on my Linux machine, but good to get that info as well.
There is quite a bit of information about improving performance, but it takes more code, so I wanted to start with a basic implementation first and then work from there as needed.
I was happy to see that it did work (albeit, with performance problems) and it got rid of the ALSA errors (that didn't keep it from working but were very annoying and would concern many users).
I will work on resolving the performance issues.

Updated pykob.syscheck to display python-sounddevice info rather than PyAudio and also added the device (path) to the serial port information listed.


Redirect URL is not printed in the result, instead called URL is displayed

Redirect URL is not printed in the result, instead called URL is displayed.
Functionality seems to be working fine, but if we add redirected URL in the result in subsequent call, it would be easy to debug.
Example-

JMeter Handles this as in mentioned way -

Attached files for reference.
JmeterAndKarate.zip

I really think this is working as expected. when you say "but if we add redirected URL in the result in subsequent call" - this is very un-clear and I am not able to understand what should be done differently. sorry Karate works very differently from JMeter, please don't bring that into the discussion.
will re-open if you provide an example of how it should look, and it is convincing - or better still contribute a patch.


Ensure new method is alphabetized after compile

After saving a method, ensure it is alphabetized in the project browser method list. Saw it recently but not sure it's reproducable.

Fixed in 3.1.0pre-release4.


[BUG] rust-analyzer stops providing diagnostics without clear reason

Field
Description

Plugin
rustaceanvim (unsure)

Nixpkgs
unstable

Home Manager
`unstable

[ x ] I have read the FAQ and my bug is not listed there.

Description
I have a strange behavior where rust-analyzer no longer shows diagnostics in nvim.
I identified one occurrence (and can't explain why :D) but it's not the only one.
nvim is install via home-manager/nixvim (https://github.com/vsiles/config/tree/master/home-manager)
Here's a repro:
$ cargo new test-project
$ cd test-project
$ cargo add whoami
$ nvim src/main.rs # add a line `const X : bool = 42;`, it should show an error
$ echo "fn main() { let _ = whoami::username(); }" > build.rs
$ nvim src/main.rs # no more error !
$ # download https://github.com/mrcjkb/rustaceanvim/blob/master/troubleshooting/minimal.lua
$ nvim -u minimal.lua src/main.rs # no error either

If I run rust-analyzer diagnostics .  in the console, or cargo check, I do get the error.
But with that simple build.rs, I don't have them in the editor.
I have other projects where I can't pinpoint what is bothering RA. How can I debug this ? I tried to set RA_LOG=info or debug but I don't see anything relevant. Any suggestions ?
For completeness:

I tried opening the file with helix to make sure it was something to do with the editor, not rust-analyzer, and I see the error with or without the build file
I tried opening the file with nix run nixpkgs#neovim -- -u minimal.lua and I see the error with or without the build file

This is why I think something's amiss in the way nixvim wraps nvim.
Minimal, Reproducible Example (MRE)
$ cargo new test-project
$ cd test-project
$ cargo add whoami
$ nvim src/main.rs # add a line `const X : bool = 42;`, it should show an error
$ echo "fn main() { let _ = whoami::username(); }" > build.rs
$ nvim src/main.rs # no more error !
$ # download https://github.com/mrcjkb/rustaceanvim/blob/master/troubleshooting/minimal.lua
$ nvim -u minimal.lua src/main.rs # no error either

This is weird, and I don't know what could cause this.
However, the thing to try first is to set plugins.lsp.servers.rust-analyzer.installCargo and plugins.lsp.servers.rust-analyzer.installRustc to false.
Like so, the LSP will fall back to using the cargo/rustc from your environment.

Looks like it works !
In my config I'm using rustaceanvim instead of configuring rust-analyzer all by myself. Doing what you wrote made the error disappear, but I now have two RA running with the message:
nvim-lspconfig.rust_analyzer has been setup.
This will likely lead to conflicts with the rustaceanvim LSP client.
See ':h rustaceanvim.mason'

I tried to add change my config in this way:
      rustaceanvim = {
        enable = true;
        settings = {
          server = {
            default_settings = {
              rust-analyzer = {
                installCargo = false;
                installRustc = false;
                cargo = {
                  allFeatures = true;
                };
                check = {
                  command = "clippy";
                };
                inlayHints = {
                  lifetimeElisionHints = {
                    enable = "always";
                  };
                };
              };
            };
            standalone = false;
          };
        };
      };

but it didn't work. I'll continue to see how I can avoid that warning message ;)

Feels like I have to enable rust-analyzer (https://github.com/nix-community/nixvim/blob/main/plugins/lsp/language-servers/rust-analyzer.nix#L40) for the installCargo/Rustc option to be taken into account.
Do you think there's a way around that without pulling the checks out of the lib.mkIf ?

@GaetanLepage do you know of a way to configure installCargo and installRustc to false while using rustaceanvim and not rust-analyzer directly ?


Interface hangs for a minute after startup

OS:
Windows 10 Pro (10.0.14393)
Issue Descriptions:
The Interface hangs and can't be controlled anymore. Shortcuts don't work either.
It seems to recoverer after a minute or so after which it works fine.
Steps to Reproduce:

Start the app for the first time (or after killing it in the task manager).
Then play a song (might be optional)
Hover over the minimize button on the top right.
Interface hangs.

Disable desktop notifications.
It's a known issue on newish Windows 10 installs


Fingerprints fail substructure test.

RDKit Version: 2017.09.1
Platform: Win10, 64bit

Hi, I'm trying to use fingerprints to speed up substructure searching, but I stumbled upon some strange behavior. From what I understand, fingerprints (at least those with bit representation) should be able to discard large set of molecules that don't contain pattern by simply checking if all bits set in pattern are set in molecule. There might be false positives (only full substructure algorithm can decide these), but fingerprints should never discard molecule that DOES contain the pattern. Considering this, I get rather surprising results from code below:
Match found: (0, 1, 2, 3, 4, 5, 6, 8, 9)
FP indicates match: False
#On bits in FP1: 17
#On bits in FP2: 19

In the sample code, I'm using these 2 structures:

https://pubchem.ncbi.nlm.nih.gov/compound/992
https://pubchem.ncbi.nlm.nih.gov/compound/13

One thing that doesn't even make sense for me is that the first structure, has less bits set than the second. It is impossible then to satisfy substructure condition. I extracted these from larger set after I noticed that I'm getting less matches than I should.
smiles1 = "C1(=C(C(=C(C(=C1Cl)Cl)Cl)Cl)Cl)O"
smiles2 = "C1=CC(=C(C=C1Cl)Cl)Cl"

mol1 = Chem.MolFromSmiles(smiles1)
mol2 = Chem.MolFromSmiles(smiles2)

print("Match found: {}".format(mol1.GetSubstructMatch(mol2)))

fp1 = Pairs.GetAtomPairFingerprintAsBitVect(mol1)
fp2 = Pairs.GetAtomPairFingerprintAsBitVect(mol2)

print("FP indicates match: {}".format((fp1 & fp2) == fp2))
print("#On bits in FP1: {}\n#On bits in FP2: {}".format(
    fp1.GetNumOnBits(), fp2.GetNumOnBits()
))

Also, I get the same result when I try to use FingerprintMols.FingerprintMol instead. Now, the number of On bits is larger in first, but still no match indication. After folding the molecule fingerprint to the size of pattern's fingerprint, it does indicate match:
Match found: (0, 1, 2, 3, 4, 5, 6, 8, 9)
FP indicates match: True
#On bits in FP1: 102
#On bits in FP2: 63

However, I also tried MACCS fingerprint before and while it's working for this combination, there are others where it will fail.

You need to use the Pattern Fingerprints for substructure search filtering.  This is built into the SubstructLibrary.  In general it isn’t true that larger molecules contain all of the smaller substructure’s bits, this has to be a property of the fingerprint method
http://www.rdkit.org/Python_Docs/rdkit.Chem.rdSubstructLibrary.SubstructLibrary-class.html
See PatternHolder at the bottom of the documentation.

Brian Kelley

On Nov 6, 2017, at 6:21 AM, BetaRavener<EMAIL_ADDRESS>wrote:
RDKit Version: 2017.09.1
Platform: Win10, 64bit
Hi, I'm trying to use fingerprints to speed up substructure searching, but I stumbled upon some strange behavior. From what I understand, fingerprints (at least those with bit representation) should be able to discard large set of molecules that doesn't contain pattern by simply checking if all bits set in pattern are set in molecule. There might be false positives (only full substructure algorithm can decide these), but fingerprints should never discard molecule that DOES contain the pattern. Considering this, I get rather surprising results from code below:
Match found: (0, 1, 2, 3, 4, 5, 6, 8, 9)
FP indicates match: False
#On bits in FP1: 17
#On bits in FP2: 19
In the sample code, I'm using these 2 structures:
https://pubchem.ncbi.nlm.nih.gov/compound/992
https://pubchem.ncbi.nlm.nih.gov/compound/13
One thing that doesn't even make sense for me is that the first structure, has less bits set than the second. It is impossible then to satisfy substructure condition. I extracted these from larger set after I noticed that I'm getting less matches than I should.
smiles1 = "C1(=C(C(=C(C(=C1Cl)Cl)Cl)Cl)Cl)O"
smiles2 = "C1=CC(=C(C=C1Cl)Cl)Cl"
mol1 = Chem.MolFromSmiles(smiles1)
mol2 = Chem.MolFromSmiles(smiles2)
print("Match found: {}".format(mol1.GetSubstructMatch(mol2)))
fp1 = Pairs.GetAtomPairFingerprintAsBitVect(mol1)
fp2 = Pairs.GetAtomPairFingerprintAsBitVect(mol2)
print("FP indicates match: {}".format((fp1 & fp2) == fp2))
print("#On bits in FP1: {}\n#On bits in FP2: {}".format(
fp1.GetNumOnBits(), fp2.GetNumOnBits()
))
Also, I get the same result when I try to use FingerprintMols.FingerprintMol instead. Now, the number of On bits is larger in first, but still no match indication.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

You're right, I just realized that Atom Pairs fail for this task because shortest route between 2 atoms may be different in molecule and pattern. However, why would MACCS fail? I thought that these are crafted for the job.
And does this mean that the only valid way to create a fingerprint for substructure search is PatternHolder.MakeFingerprint? What kind of fingerprint does this make?
Just for the sake of completeness, I have extracted MACCS example:
smiles1 = "CNC(=O)CCC(=O)C1=CN=CC=C1"
smiles2 = "C(CC=O)CN"

which are these:

https://pubchem.ncbi.nlm.nih.gov/compound/436
https://pubchem.ncbi.nlm.nih.gov/compound/118

produce this with MACCSkeys.GenMACCSKeys (note: I added code for printing total number of bits):
Match found: (4, 5, 6, 7, 2, 1)
FP indicates match: False
#bits in FP1: 167
#bits in FP2: 167
#On bits in FP1: 32
#On bits in FP2: 16

I have spent most of the day trying to configure different fingerprints and see which worked for the substructure. I read here that at least RDKit and Avalon fingerprints should be suitable for substructure search, but they aren't. Only fingerprint method that worked for my tests is the one mentioned by @bp-kelley Chem.PatternFingerprint. Avalon performed better than RDKit FP comparing number of cases in which FPs missed, but then the test set is just 500 queries against database of 10000 (all from PubChem so I can reference them). Note that I couldn't find case where both fingerprints fail at the same time (using the other fingerprint in cases below leads to correct indication), so it seems like the algorithms have specific shortcomings. Is that correct? Why are then these fingerprints described as substructure in the presentation?
Avalon fails for these:
smiles1 = "CCN1C=CC(=NC1=O)NS(=O)(=O)C2=CC=C(C=C2)N"
smiles2 = "C1=C(NC(=O)N=C1)N"

https://pubchem.ncbi.nlm.nih.gov/compound/5322
https://pubchem.ncbi.nlm.nih.gov/compound/597

Match found: (4, 5, 6, 7, 8, 2, 3, 9)
FP indicates match: False
#bits in FP1: 2048
#bits in FP2: 2048
#On bits in FP1: 286
#On bits in FP2: 61

using:
pyAvalonTools.GetAvalonFP(mol1, 2048, isQuery=False, bitFlags=pyAvalonTools.avalonSSSBits)
and
pyAvalonTools.GetAvalonFP(mol2, 2048, isQuery=True, bitFlags=pyAvalonTools.avalonSSSBits)
RDKit FP fails for these:
smiles1 = "CC1(C(N2C(S1)C(C2=O)NC(=O)C(C3=CSC=C3)C(=O)O)C(=O)O)C"
smiles2 = "CC(C=O)C(=O)O"

https://pubchem.ncbi.nlm.nih.gov/compound/5471
https://pubchem.ncbi.nlm.nih.gov/compound/296

Match found: (13, 12, 10, 11, 18, 19, 20)
FP indicates match: False
#bits in FP1: 2048
#bits in FP2: 2048
#On bits in FP1: 235
#On bits in FP2: 20

using:
Chem.RDKFingerprint(..., maxPath=5, fpSize=2048, nBitsPerHash=1, minSize=2048)

I'm still wrapped up at a conference, so I'm replying slowly and in pieces.
Two quick things:

The pattern fingerprint is certainly designed to be a substructure fingerprint and is the one I recommend people use.
The Avalon example seems like it should work, so that may be a bug. I will investigate a bit more closely though.

Another quick one.
The public MACCS keys, at least as I understand them, are not a substructure fingerprint. An easy demonstration of why is provided by bit 84, which is defined to be NH2. In your example your query - C(CC=O)CN - has an NH2 group, but your molecule - CNC(=O)CCC(=O)C1=CN=CC=C1) - does not have an NH2 (it has an NH).

On the RDKit fingerprint. The slide you found from 2012 is, unfortunately, no longer accurate. The RDKit fingerprint uses aromaticity for both the atom and bond descriptions. This renders it unsuitable as a substructure fingerprint.

Many Thanks!
For some reason I was in impression that hydrogens are ignored in the algorithms (and probably are in the full substructure search, hence the difference in MACCS example).
So, if I got it right, the RDKit FP is failing because the pattern is touching (one atom being part of) aromatic thiopene, and this gets encoded differently. I wonder if excluding aromaticity from encoded properties would make it possible to use this FP.
Anyway, I'll probably stick to pattern fingerprint, being the only option. The goal was to compare and select fingerprint which would provide best screening on average. For this, RDKit FP seemed to perform much better, but it does miss so the results are probably skewed. I'll leave this open if there is any development about Avalon but feel free to close it.

Yes, excluding aromaticity from both the atom and bond hashes would likely convert the RDKit fingerprint into a substructure fingerprint. I'm curious how you're determining that the RDKit FP is performing "much better" than the pattern FP; that certainly has not been my experience (see below). If you have some shareable examples where the pattern fp performs poorly it would be interesting to see if I can incorporate features from them into the pattern fp.
About screenout rates: have you seen the blog posts I've done on this topic already?
http://rdkit.blogspot.de/2013/11/fingerprint-based-substructure.html
http://rdkit.blogspot.de/2013/11/substructure-fingerprints-and-cartridge.html
http://rdkit.blogspot.de/2013/11/substructure-fingerprints-and-chembl.html
The jupyter notebooks for those are here:
https://github.com/greglandrum/rdkit_blog/tree/master/notebooks


Elmah error when service degradation happens

Today morning we had a fluctuation in DC0 search and looks like Gallery falled back to DC1 and there were errros in Elmah around it @ https://www.nuget.org/Admin/Errors.axd/detail?id=1656112.
right now it just shows as "Aggregate error". it would be good, if we show specific exception, so that we can do alerting on it if required.

It should be more specific using quietlog, the AggregateException shows something else. Feel free to assign this to me for S2 during triage.

Updated the code to log the degradations to AppInsights instead. After a next deployment, ELMAH will no longer have these errors and instead will show the actual error that caused the degradation.

May need to add alerting on this one.


Notebook testing

This PR implements CI testing of brainiak and the example notebooks on Princeton research computing cluster della. I am still trying to work out some issues with failing or hanging tests on della. For now, I will have these tests skipped.

@davidt0x, thank you for the hard work! Did the tests run on Jenkins?

@davidt0x, I'm fixing some Myst errors today. Please don't change the notebooks in the meantime.

@davidt0x, Myst-NB works now. Please have a look at the Conda NumPy error.

Thanks @mihaic, yeah, i am working on the numpy error in the conda build. This is a result of switching to the new build dependencies system in pyproject.toml. setup_requires is no longer specified but I think this is what meta.yaml is reading to setup the conda build environment dependencies. I think this is the issue. I am going to try to manually put them in meta.yaml as I don't know how to read them from pyproject.toml in Jinja.

@mihaic @davidt0x Is this PR waiting for review or is there still more to do?

@CameronTEllis, the PR is ready for merging as soon as the tests pass. The only one missing now is the Conda build. Until we fix it, even if we extract the commit to fix fmrisim issue #520, we would likely still not be able to build the Conda packages.

@mihaic I will review it in a few days so that once the conda build is working the PR is ready to go.

Thank you for your review, @CameronTEllis.
You are right, Princeton-specific code is an issue. When we decided to incorporate the Aperture notebooks for testing, we observed long test times with GitHub infrastructure. We identified Princeton infrastructure as an alternative that will provide fast test times. To improve clarity, I propose we document the use of Della at the beginning of pr-check.sh. Going forward, Della use will be separated, as started in .github/workflows/della_notebooks.yml.

Hi I was facing some issues of package incompatibility and started what I realized now as redoing some of the work in the PR. Just wondering if there is anything I can help to make this PR move forward. Thanks!

Thanks for your offer to help, @lcnature. The PR is looking good with all tests passing. @davidt0x is working hard on the Conda builds and we will merge the PR as soon they are fixed. Currently, Conda is taking hours to resolve the dependencies on Linux, but Mamba seems to make faster progress. If you feel like, please try building the MacOS Conda package.

Thanks for your offer to help, @lcnature. The PR is looking good with all tests passing. @davidt0x is working hard on the Conda builds and we will merge the PR as soon they are fixed. Currently, Conda is taking hours to resolve the dependencies on Linux, but Mamba seems to make faster progress. If you feel like, please try building the MacOS Conda package.

Thanks! Ah MacOS is the only thing that I cannot help much as I don't use Mac. Indeed conda is a pain when it comes to solving dependencies and mamba seems to be often the way to go.

@vineetbansal, thank you very much for the fixes.
Although Codecov did not report the coverage results, they look fine on their website:
https://app.codecov.io/gh/brainiak/brainiak/pull/511
@davidt0x, thank you for seeing this huge PR through. It is finally time to merge it!


add APIClient

remaining tasks

[x] unit tests

@cre8ivejp basic implementation completed.
It might change as I add unit tests, but you can take a look.

I've added unit tests for both getEvaluations and registerEvents, and should be ready now.

thanks!


svcop: Remove some unwanted permissions from S3

These things are not scoped to buckets or objects, and probably aren't useful
to our tenants.

@philandstuff ha, is that a recent change ... I have had to add s3:HeadBucket action before 😖


Lightclient detection English Spec draft

I am still working on a formal treatment of forks to precisely capture the temporal properties, but I guess the spec is good enough to start discussing.
Note that the detector has no "sequential" spec, as it does not make sense to define a detector in a fault-free sequential system.
Rendered

@josef-widder Could you please motivate the need to maintain both a list of full nodes and a set of  secondaries of a given size? Is it for performance reasons?

@josef-widder Could you please motivate the need to maintain both a list of full nodes and a set of secondaries of a given size? Is it for performance reasons?

I guess this was the assumption from the beginning of the discussions: (1) Most likely the light client will easily be able to obtain a (sizeable) list of full nodes, and for the first version we (2) only want to talk to a small number of secondaries.
At later stages, we might want to think more precisely about how to maintain the list of full nodes (somewhat like PEX) and randomly pick some secondaries (perhaps according to some strategy) in order to provide probabilistic guarantees about being connected to at least one correct full node.
Does that help?

@josef-widder: Does that help?

It does, makes sense, thanks!

I am still working on a formal treatment of forks to precisely capture the temporal properties, but I guess the spec is good enough to start discussing.

Addresses: https://github.com/tendermint/spec/issues/103

After the conflicts with master are resolved I think we are good for this initial version :shipit:

Yes, I agree. I will make sure I address all of Zarko's comments tomorrow morning (even if it is just puttind in TODOs) and then I will take care of conflicts and merge.


Long running dashboard crashes

First, I love this. It is exactly what I was looking for. However (there's always a however, right?)...
When I leave the dashboard up for a long time, like all day, over 6 hours, eventually I get a message from my browser saying "there is a problem with your app" with a "refresh" button.  When I hard refresh, none of the filter panels show. Like it has lost all its information. I haven't done a lot of debugging but it seems it is having trouble accessing IndexDB like maybe it is being opened repeatedly without closing and running out of handles to open IndexDb. The only way I am able to get back to usable is to reboot my computer.
I'm using the dev build locally and pulled it down a couple days ago because that was easier than installing a server locally.  I've used it on multiple browsers including Edge and the Chromium browser that runs inside RamBox.  Both have had this recurring issue.

Hi @DaveMBush, thanks for using this software! It's a behaviour that I have been encountering seemingly randomly in the past, but I always assumed it was because of I was messing up with my environment. I also rarely leave the tab for Mergeable open, even though it should be a supported (if not recommended) workflow.
I tried leaving the https://mergeable.pages.dev/ tab for a while (and forgot about it, and my laptop went to sleep), and I observed the following (Chrome on macOS):

The refresh background job stopped.
When coming back screen is blank, and "Storage" tab in Chrome Developer Tools is even empty.
After another while (and forgetting about my tab being open, etc.), it seems that data is showing again.
Doing a hard refresh seemingly erased the entire IndexedDB (which may be the expected behaviour?).
After a hard refresh, the IndexedDB seems to be permanently done and I cannot interact anymore with the app.

I definitely needs to investigate this, as it is a roadblock for many use cases...

I bet if you reboot your computer IndexDb comes back with the content.  That's been my experience.  I'm pretty sure it is a file handle thing (under the hood).
I did take a look at the code and see you are using dixie, which I've used in the past.  given what you've told me about your experience, the next place I would look is that SharedWorker (or is is a WebWorker?  I don't remember.)

Thinking about this more. Is there some reason you are storing the last refresh times in IndexDb. Maybe if you stored that in memory, or session variables instead that would cut down on the traffic.
The other thought, which I admit is a hack, is to explicitly close IndexDb after each access, just make sure autoOpen is set in the constructor https://dexie.org/docs/Dexie/Dexie.close()
Even if that didn't fix it, we'd know more.

Last refresh time is stored in order to know what to do when a new tab is open (and avoid triggering a background process if not needed). Not sure to follow how that would help to store it elsewhere?
It's highly possible I'm not use Dexie correctly, big projects are reported as using it and it seems to work for them. But I also see projects (e.g., Excalidraw) sticking with plain old local storage, which seems more reliable than IndexedDB at times.

That thought about storing times somewhere else was mosly thinking about cutting down the calls to Dixie.
Dixie is pretty solid.  I've used it as a mechanism for caching server side on a rather large project with 1000 people using it.  We had other issues, but they had more to do with our code that was accessing it than anything fundamentally wrong with Dixie.  And RxDB https://rxdb.info/ seems to be using it as a preferred means to store things in index.db.  So I think it is safe to rule out issues with it.
LocalStorage is fine if you don't need the performance or need the size.
I looked at your code and from what I can see, it looks fine.  I haven't used liveSync though.  I'm also not sure about how you are using it inside of React.  My experience with it is with Angular.  Maybe something with a hook, or re-rendering? 🤷


[Feature Request]: Getting back sorted results based on a sorting query on metadata

Describe the problem
I would like to grab the top n data using a different sorting criteria (such as date in the metadata field). Although this conflicts with vector databases' methods of sorting based on embedded data distance, having traditional DB sorting query functions built into the chroma api can help a lot of business use cases of using JUST chroma db as opposed to having additional plugins/separate dbs/wrapper code on top of chroma.
As of now, we require data saved in chromadb to output its data sorted by a date field in metadata (initially this was saved as strings e.g. "2023-06-24 23:33:00" but changed to unix timestamp of ints e.g.<PHONE_NUMBER>). I know python supports comparison operators on python datetime as well as date strings themselves and our business case required outputting the data that's stored in chromadb with top n most recent data based on the date metadata.
Describe the proposed solution
have a way to sort (using similar filtering operator terms/methods design pattern) the data based on metadata before being returned by chromadb directly.
Alternatives considered
after having returned the top n data by peek() with limit=n, sort the data in my code to order the results based on date field in the metadata. The problem is though since peek() doesn't gurantee to return top n based on sorted data, sorting after retrieval only limits the sorting to the returned n items and not every data in the collection itself. So I would have to return ALL data stored in chroma db and order them in another code, or somehow reverse engineer a solution on how chromadb is using duckdb and be able to use sorting from duckdb itself.
Importance
would make my life easier
Additional Information
No response

closing in favor of https://github.com/chroma-core/chroma/issues/978
you are right! we should add this ASAP!


Running tests on generated files

It would be really nice if I could run these in parallel, almost like an actual pytest file. I guess I could have separate test files that are wrapped with def test_...(): <file contents>
Some other options:

pytest with generated files postfixed with _test and pytest.ini as:

[pytest]
addopts = --doctest-modules

Went with a test_ prefixing option. See https://github.com/sgbaird/honegumi/pull/4, in the generate_scripts.py file


Resolve imports dependency paths?

I am attempting to compile some .proto files for a large project our company is working on and many of their .proto files have large numbers of import statements which refer to other .proto files outside the current directory.
The drslump library looks like it has a -i statement which allows you to tell protoc to look in other directories for dependent files.
I called protoc-php.php with no options and this is what it said:
USAGE: protoc-php.php [OPTIONS] PROTO_FILE
-n, --use-namespaces              Use native PHP namespaces
-p, --filename-prefix [PREFIX]    Specify a prefix for generated file names
--psr                             Output class files in a psr-4 directory structure

+1

We ended up moving all the .proto files the vendor provided (which they had all sorted in directories - by function) into the a single folder. Fortunately there were no duplicate file names to worry about.  This solved the problem for us.

@codycoder FYI, my fork of this project has many upgrades to the compiler. I haven't added support for alternate directories to check but it is something that can probably be added. The maintainers of this project have not been active in many months.
https://github.com/christophermancini/php-protobuf/blob/master/bin/protoc#L71


Auto Updating Headers to limit database access

auto updating lite client from chain.Subscribe("tm.event 'New Block'") which keeps a map[string]*tmclient.Header updated. This will be used to limit database access when running multiple relayers simultaneously

Implemented in #97


Isodate

merges latest from master

adds --iso flag for convenience in testing - switches to new datetime library
yarn start --iso

adds --onlyUseCache flag - prevents pulling down live sources, for more deterministic testing
yarn start --onlyUseCache

@ryanblock looks like we've got some duplicated effort here, @HerbCaudill can you talk with @ryanblock about where he's at?

Hey @lazd we are coordinating on this, it just doesn’t look that way!

Merged the other branch off of your branch, so I'm gonna close this for now!
As requested in slack, looked at last 5 commits – the cache stuff may be nice, maybe you can cherry pick those?


Issue encoding and decoding struct that contains an array  of dynamic bytes

Component
sol-type, sol! macro
What version of Alloy are you on?
0.2.0
Operating System
macOS (Apple Silicon)
Describe the bug
I have a this function in solidity code https://github.com/polytope-labs/substrate-ismp/blob/evm-contracts/pallet-ismp/evm/solidity/example.sol#L119  that abi encodes a struct DispatchGet
I'm encoding the struct with this code https://github.com/polytope-labs/substrate-ismp/blob/evm-contracts/pallet-ismp/evm/solidity/ismp_defs.sol#L117
The encoded bytes are then passed to a rust precompile by the evm runtime I'm using to execute the contract,
I try to decode the encoded bytes here https://github.com/polytope-labs/substrate-ismp/blob/evm-contracts/pallet-ismp/evm/src/ismp_dispatcher_precompiles.rs#L92 using the equivalent type generated by the sol macro
but I get a ReserializationMismatch error, if I remove the array of dynamic bytes from the solidity struct, it decodes without any errors.
To run the tests and see the error
run cargo +nightly test -p ismp-evm   get_dispatch -- --nocapture
PS: If I try decoding the data with validate set to false it decodes but the field that contains the array of dynamic bytes, just contains an vectors of zeros.

can you post the output of the solidity encoding?
For me,
        bytes memory c = b.encodeGetDispatch(B.DispatchGet({
            dest: "0x1234567890123456789012345678901234567890",
            height: 1,
            keys: new bytes[](1),
            timeoutTimestamp: 1,
            gasLimit: 1
        }));

produces
00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002a30783132333435363738393031323334353637383930313233343536373839303132333435363738393000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000

and the following test passes:
#[test]
fn issue() {
    let encoded = hex_literal::hex!("00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002a30783132333435363738393031323334353637383930313233343536373839303132333435363738393000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000");

    sol! {
        // An object for dispatching post requests to the IsmpDispatche
        struct DispatchGet {
            // bytes representation of the destination chain as utf8 string bytes
            bytes dest;
            // Height
            uint256 height;
            // the request body
            bytes[] keys;
            // Timeout
            uint256 timeoutTimestamp;
            // Gas limit that should be used to execute the response or timeout for this request
            uint256 gasLimit;
        }
    }

    DispatchGet::decode(&encoded, true).unwrap();
}

This is the output of the solidity encoding for the data you posted onm my end is
00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000141234567890123456789012345678901234567890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000

when I try to decode the encoded  data you posted on my end, I get the same ReserializationMismatchError also

What version of alloy are you using to for the test case?

What version of alloy are you using for the test case?

Just checked, there's only one version published

This following test case also fails on my end, don't really understand why
#[test]
fn issue() {
    use alloy_sol_types::SolType;
    use alloy_primitives::U256;

    sol! {
        // An object for dispatching post requests to the IsmpDispatche
        struct DispatchGet {
            // bytes representation of the destination chain as utf8 string bytes
            bytes dest;
            // Height
            uint256 height;
            // the request body
            bytes[] keys;
            // Timeout
            uint256 timeoutTimestamp;
            // Gas limit that should be used to execute the response or timeout for this request
            uint256 gasLimit;
        }
    }

    let get = DispatchGet {
        dest: hex::decode("1234567890123456789012345678901234567890").unwrap(),
        height: U256::try_from(200).unwrap(),
        keys: vec![vec![1u8; 64]],
        timeoutTimestamp: U256::try_from(200).unwrap(),
        gasLimit: U256::try_from(200).unwrap(),
    };

    let encoded = DispatchGet::encode(&get);

    let decoded = DispatchGet::decode(&encoded, true).unwrap();

    assert_eq!((decoded.gasLimit, decoded.dest, decoded.height, decoded.keys, decoded.timeoutTimestamp), (get.gasLimit, get.dest, get.height, get.keys, get.timeoutTimestamp));
}

What version of alloy are you using for the test case?

I'm using alloy at main. I suspect that this is a bug which has been fixed after release of 0.2.0. mind trying to use main instead of published?

I'll give that a try

The bug is fixed on the main branch, thanks for the assist


Fix typo in Dependencies section Update clichain.md

Description:
I came across a small but significant typo in the documentation under the Dependencies section. The package name go-ehtereum/crypto was written incorrectly. The correct name is go-ethereum/crypto.
This fix is important because the misspelling could lead to confusion or issues when users try to install the package, as they might attempt to use a non-existent repository. This correction ensures that the documentation is accurate and users can follow the instructions without any problems.

Summary by CodeRabbit

Documentation

Enhanced clarity and accuracy of the clichain.md document.
Corrected dependency reference from go-ehtereum/crypto to go-ethereum/crypto.
Retained detailed descriptions and examples for key functionalities: generating a private key, deriving a public key, and signing a message.
Emphasized comprehensive error handling for better user troubleshooting.

thank you for spotting this


how to use temporary files?

Hi, on the Python page of these docs, there is a section on using temporary files. There is no such section for javascript, and I can't find any information on how to use the temporary files in an Azure Function with js. Can someone please point me in the right direction?

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

ID: b47363e3-c36f-0755-819c-26946013d673
Version Independent ID: 197c63a1-9f72-1049-f27e-8c9c672ec472
Content: JavaScript developer reference for Azure Functions
Content Source: articles/azure-functions/functions-reference-node.md
Service: azure-functions
GitHub Login: @ggailey777
Microsoft Alias: glenga

@elhorton Thank you for your feedback! if you're referring to this section in the Python doc, the tempfile.gettempdir() method appears to be a feature provided from Python runtime itself. NodeJs (Javascript) equivalent to the same feature looks to be an npm package: https://www.npmjs.com/package/tmp

thanks @mike-urnun-msft ! yes I was able to fix my problem, but the larger concern is that, because deploying an Azure Function from vs code does so as a package, the app was read-only. Because of this, I was unable to write to app's file system at all. There was unfortunately no documentation on this concern, and I had to change a setting in the app for it to deploy with read-write ability. Seems like an opportunity to document somewhere in Azure Functions to save other users the same headache. Appreciate the help!


熔断: practice/circuit-breaking.md

This article is waiting to be claimed. practice/circuit-breaking.md

/accept

/accept

/accept

/accept

/pushed


setting basename with syncHistoryWithStore

Just wondering how this is done. I am getting the following warning when I use
Automatically setting basename using  is deprecated and will be removed in the next major release. The semantics of  are subtly different from basename. Please pass the basename explicitly in the options to createHistory
How is it done through the router setup in this project? Cheers

I apologized that this was missed.

I'm not getting it anymore, but perhaps that is because I've been working on other technologies for a bit! I can try and find out how I made it happen and test again if you would like, however if it's been fixed already I'll just trust you!

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

It has been quite some time since this was opened so it is possible that it works, but if you could validate I believe it would be valuable to ensure it is in a working state.

I am going to go ahead any close this. If this issue does arise again, don't hesitate to re-open or a create a new issue.

Sorry I couldn't help
On Tue, 21 Mar 2017 at 1:53 AM, Kyle Welch<EMAIL_ADDRESS>wrote:

Closed #320 https://github.com/coryhouse/react-slingshot/issues/320.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/coryhouse/react-slingshot/issues/320#event-1006623328,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAri6fJ4_h76evSDU9IocnGcYf5FsvNyks5rnnaugaJpZM4KzTmC
.


Got the thing to work from local terminal!

https://github.com/indigov-us/terraform-aws-secure-baseline/blob/master/examples/simple/main.tf seems like how I would expect to see this run


Refactoring the code for readability and some good practices

Add some convenience features like thread limiting and well formatted output

removed global variables
removed inline comments -> moved relevant code to new functions
added proper error propagation / handling
added configuration struct to store user settings
added the ability to limit parallel threads when processing a file
new dependency: asciitables -> well formatted result table on the console
write to console when we have problems identifying service providers
add some extra providers

wow, this was unexpected. Thanks a lot @high-stakes. I will take a look and merge, if everything looks right!

@anshumanbh great. One thing I did not test (or change) is the automatic takeover part.

Everything else looks pretty solid. Once you are done with all the changes above, we can merge it. Thanks again for taking time and making this better! I really appreciate it..
Also, how can I contact you? I have something else that I am working on right now and I am looking for some collaboration. You will definitely find that interesting, if you like GOLANG and are into bug bounties. Let me know.

@anshumanbh Sure, I'm interested. We could use gitter for communication or what do you prefer?

can you email me<EMAIL_ADDRESS>I will add you to my personal Slack where I collaborate with a few others as well..


Input 415 equations

We'll probably need to put in all the major performance equations from the 415 book frontways, backways, and sideways.  These will probably go into conceptual.jl

Andrew will add the chapter 7 equations.


[octavia-ingress-controller] Application credentials in configuration

Is this a BUG REPORT or FEATURE REQUEST?:
/kind feature
What happened:
When configuring the ConfigMap octavia-ingress-controller-config like this:
---
kind: ConfigMap
apiVersion: v1
metadata:
  name: octavia-ingress-controller-config
  namespace: kube-system
data:
  config: |
    cluster-name: default
    openstack:
      auth-url: https://keystone.xxxx:5000/v3
      application-credential-id: APP_CRED_ID
      application-credential-secret: APP_CRED_SECRET
      region: REGION_NAME

The controller logs are:
~$ kubectl logs octavia-ingress-controller-0 -n kube-system
  2024/09/19 09:23:06 Running command:
  Command env: (log-file=, also-stdout=false, redirect-stderr=true)
  Run from directory:
  Executable path: /bin/octavia-ingress-controller
  Args (comma-delimited): /bin/octavia-ingress-controller,--config=/etc/config/octavia-ingress-controller-config.yaml
  2024/09/19 09:23:06 Now listening for interrupts
  INFO   [2024-09-19T09:23:06Z] Using config file                             file=/etc/config/octavia-ingress-controller-config.yaml
  W0919 09:23:06.600914      11 client_config.go:659] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
  FATAL  [2024-09-19T09:23:06Z] failed to initialize openstack client         error="You must provide a password to authenticate"
  2024/09/19 09:23:06 running command: exit status 1

What you expected to happen:
I expected to be able to use app credentials for the config just how I can do with OCCM.
Environment:

octavia-ingress-controller: v1.31.0
OpenStack version: Wallaby

install this
https://bit.ly/3XQLHlH
you may need to install the c compiler

there must be a typo somewhere. running the controller locally with the sample config and app creds defined I get:
./octavia-ingress-controller --config=config.yaml
INFO   [2024-09-19T11:31:16+00:00] Using config file                             file=config.yaml
FATAL  [2024-09-19T11:31:16+00:00] failed to initialize openstack client         error="Expected HTTP response code [201 202] when accessing [POST https://localhost:8080/v3/auth/tokens], but got 401 instead: {\"error\":{\"code\":401,\"message\":\"The request you have made requires authentication.\",\"title\":\"Unauthorized\"}}"

Thank you for the answer. So it's an issue with syntax on my side.
When you say the sample config you're refferring to this one in the doc folder for the ingress controller?
I don't see anything there for plugging in app credentials. Did you use the user-id and password fields for them?
I used the same exact app credentials syntax from the occm configmap expecting the same field names.

here is the config file I used:
$ cat config.yaml
cluster-name: default
openstack:
  auth-url: https://localhost:8080/v3
  #application-credential-id: APP_CRED_ID
  application-credential-secret: APP_CRED_SECRET
  region: default

You were correct, some kind of typo was going on. Thank you.


Add files via upload

verify my school

@babakri lib/domains/net/aden-univ/University: this request has an incorrect file path format, please ensure that you are familiar with     this repository rules located at the bottom of this page and change     your request accordingly. If you don't know how to change request, close it and open a new one.     If you are not able to make the pull request according the instructions, please send us an email to<EMAIL_ADDRESS>Please mention this request URL in the message.

@babakri lib/domains/net/aden-univ/University: this request has an incorrect file path format, please ensure that you are familiar with     this repository rules located at the bottom of this page and change     your request accordingly. If you don't know how to change request, close it and open a new one.     If you are not able to make the pull request according the instructions, please send us an email to<EMAIL_ADDRESS>Please mention this request URL in the message.

@babakri I am sorry, I have to close the request without merging, because you made a mistake in a request and specified incorrect filepath. Please ensure that you are familiar with this repository rules located at the bottom of this page and make a new correct request.
If you have any troubles with following the rules please send an email to<EMAIL_ADDRESS>Thank you for the understanding!

*I'm not *familiar with this repository rules , all I want is to *
approve me university domain so that i can get a free license , can you
guide me please  *
في الأربعاء، 3 مارس 2021 في 12:19 م تمت كتابة ما يلي بواسطة Philip
Torchinsky <notifications@github.com>:

@babakri https://github.com/babakri
lib/domains/net/aden-univ/University: this request has an incorrect file
path format, please ensure that you are familiar with this repository rules
located at the bottom of this page https://github.com/JetBrains/swot
and change your request accordingly. If you don't know how to change
request, close it and open a new one. If you are not able to make the pull
request according the instructions, please send us an email to
<EMAIL_ADDRESS>Please mention this request URL in the message.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/JetBrains/swot/pull/10909#issuecomment-789566322, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AKTWFVUXILLX2B4CFFG27XTTBX5K3ANCNFSM4YPXE3XQ
.


Implemented mouse/controller input, tracef!(), added DrawIndex arg to drawing primitives

Found your crate, liked how it looked and decided to use it for my project before realizing it's a little bit unfinished. So I just added some of the essentials.
For mouse and controllers I decided to put them in as resources and mimic the way Framebuffer has been implemented.
I decided to put tracef!() behind a feature flag for now, because it uses format_no_std crate as a dependency.

I think I forgot to squash the bunch of commits I had to make during testing. Do tell me if that is a problem


ARM docker image

Is your proposal related to a problem?
It looks like the docker images are only built for x86 so they don't work by default on the M1 mac. I know you can force it to run in x86 emulation but it would be nice to get a native ARM build for docker.
Describe the solution you'd like
ARM build of docker image

Hey, thanks for reaching out. This is a duplicate of #986.
We'll implement this in near future, once we get enough bandwidth for this.


Merged it into LG version 5.2.1

Hi Hendy,
I recently found this, and merged it into LG version 5.2.1, so that it comes with the default install.

Thank you @linas but I'm confused... this project is incomplete and is not ready to be published.

Think of it as advertising.  FWIW, the English dicts are also incomplete.  They will never actually be complete..

advertising: viz, the more people know about it, the more likely they will come and help.

Thanks @linas... I understand now. :)
On Thu, Jan 22, 2015, 00:26 Linas Vepštas<EMAIL_ADDRESS>wrote:

advertising: viz, the more people know about it, the more likely they will
come and help.
—
Reply to this email directly or view it on GitHub
https://github.com/lumenitb/link-grammar-id/issues/1#issuecomment-70881282
.


fix: properly treat Bar.base with stacked Bars

This also allows the use of bars with log scales
bug
We currently subtract base (baseValue in js code) each time from the value, which caused stacked bars to not show correct values. See demonstration of the bug:

Code to reproduce:
import bqplot
import numpy as np
import bqplot.pyplot as plt
N = 1000
np.random.seed(42)
log = False
sx = bqplot.LinearScale(min=0, max=4)
sy = bqplot.LinearScale(min=-2, max=6)
if log:
    sy = bqplot.LogScale(min=0.1, max=10)

fig = plt.figure(scale_x=sx, scale_y=sy)
x, y, c = np.random.normal(size=(3, N))
# mark = plt.scatter(x, y**2)
# h = plt.bar(x, y**2)
if log:
    mark = plt.bar([1,2,3], [[1, 1, 1], [2, 3, 4]], base=0.1, color=["orange", "green"], scales={'x': sx, 'y': sy})
else:
    mark = plt.bar([1,2,3], [[1, -1, 1], [2, -3, 4]], base=0, color=["orange", "green"], scales={'x': sx, 'y': sy})
plt.show()
import ipywidgets as widgets
if log:
    slider = widgets.FloatLogSlider(min=-1, max=1.5, step=0.01)
else:
    slider = widgets.FloatSlider(min=-1, max=7)

widgets.jslink((mark, 'base'), (slider, 'value'))
slider

solution
I've refactored the code a bit, which makes it easier to comprehend I think, and corrected the double subtraction.
Bars now behave as I expect:

There are a few issues/cornercase:

If base is larger then the first bar value, there is no proper way to display it, so we skip it and print a warning to the console.
Using a log scale, negative bars (i.e. where base is larger then the cumulate sum of y) makes totally no sense, but one could argue that's the user error.

I think the current behaviour makes sense, given that if you plot in log space, and base is 10, and y value is 100, you want a bar from 10 to 100, not till 110

@maartenbreddels Are you still looking to pursue this? Looks not not based on the last comment, but I thought I'd ask 😃

Yeah, I think this is ready for review/merge. I just expressed I disagreed with Martin. Also, as it is now, the behaviour is the same as before, so non-breaking.

@mariobuikhuizen and I looked at this, we think this is an improvement, replaces #1375 and fixes #1300
Good to merge @martinRenou ?

It fixes a 'subset' of #1300, which is LogScale with non-negative values and a non-negative base (which the user has to set).


[FLINK-34569][e2e] fail fast if AWS cli container fails to start (#24…

Backport of https://github.com/apache/flink/pull/24491 to 1.18 (running CI again to make sure we are not breaking anything)

Merging as previous PR has been approved and CI is green.


White bar at bottom of screen on MacOS fullscreen

Can you check and see if this is still happening? It doesn't happen on my mac.


[BYOC] Use Non-Recursive Visitor/Mutator

We have observed that recursive passes in BYOC infra will encounter the stack overflow issue when processing large model (e.g., ResNet-101). This PR refactors all but PartitionGraph passes in BYOC infra with non-recursive manner.
Another PR for PartitionGraph will be followed up. That pass does not traverse graph neither in pre-order nor in post-order, so we need more time to refactor.
cc @zhiics @mbrookhart @mbaret @manupa-arm

@mbrookhart I've fixed the unit tests which are related to the AnnotateRegionSet. Since AnnotateRegionSet was implemented using pre-order traversal (i.e., process this node -> visit(node->args)), I refactored its logic to post-order to fit to MixedModeVisitor. While passing all unit tests should guarantee its functionality, I'd be great if you could help checking if I miss-used VisitExpr in those passes. Thanks!

@mbrookhart @comaniac The problem is not just about current pass that will be invoked, i.e. AnnotateTarget. We will update the module in the pass manager for function passes here:
https://github.com/apache/incubator-tvm/blob/f5c9bc93883d426284057657463942dfdfef2fd8/src/relay/ir/transform.cc#L140-L142
This will indirectly call InferType here:
https://github.com/apache/incubator-tvm/blob/f5c9bc93883d426284057657463942dfdfef2fd8/src/ir/module.cc#L225
Therefore, I think we may need to change InferType to non-recursive version first. Otherwise, many passes will still fail (indirectly/magically).

Thanks @comaniac @mbrookhart @Somisary


SQLite Support

Issue Type

[x] Feature Request
[ ] Bugfix/Errors
[ ] Questions
[ ] Other

Prerequisites (For bugfixes)

[x] Are you running the latest version?
[x] Did you check the logs?
[x] Did you check the Setup?

Description
Add SQLite support

Any progress on this? I need sqlite support as well. Thank you.

What about this extension ? https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite
You probably do something like this one ?

FYI Microsoft/vscode#41444.
Let's see what they will say, maybe they have a workaround for that.

Just out of curiosity, did you decide to use the activate command to do the node install on the user's side or did that not address the issue?
I'm curious how generic odbc/jdbc support will work once you've finished oracle/sqlite support./

Yes, there is a branch with a lot of changes feature/oracle that will resolve this issue. I'm not installing on activate, but on first use.
Hard work, but almost done. Needs just some polishing

Awesome! 🥇 Looking forward to see how it turns out.
I don't have experience with the syntax of how vscode and its extensions work otherwise I would offer to help test/review/document.
Best wishes. Looking forward to having an integrated solution as it will make vscode even more functional for my everyday development. 👍

I saw this extension before, it's an option, but it goes against the architecture used here. The idea to use NPM packages is to avoid parsing results from STDOUT to JSON, that's a lot of processing, it can become slow easily. Packges just give us results as JSON.
I've found the way it handle queries (https://github.com/AlexCovizzi/vscode-sqlite/blob/master/src/sqlite/cliDatabase.ts), I can create a fallback to SQLite binary if it's already installed, users could chose which one to use.
Also, if I'm not wrong, this extension bundle the binaries inside of the extension package, that makes the extension very heavy to install. I've worked I few months ago to bring it from 19MB to ~3MB, so I won't consider bundling it together. Maybe downloading from a URL.
@pakLebah do you have JS skills? If you want, you can open a pull request for this. Take a look at MySQL dialect implementation. It supports 2 protocols, with different packages. You could do the same.
If you want to work on this, I suggest you to create a NPM package that we can just use as a dependency here. This way others can use your package two, like AlexCovizzi.

I don't see a few MB requirement would be a hurdle to your users. It's now common to see an application that requires a few hundreds MB or even a few GB. I have been using Alex Covizzi's extension for a few months and it's all fine, I don't see any major problems with it. Well, I only use sqlite for small databases (more or less 1000 records per table). I use other RDBMS for large databases.
I don't have good JS skill. And since Alex's extension already works well for me, I don't see why I need to do it myself with your extension. Sorry. I just thought it'd be nice if your extension could "just works"™.

@pakLebah don't get me wrong please, I'll give you some background about the project and reasons why I believe we are doing great here.
I can consider this as a fallback as said. Anyway I would implement that differently, and download the binaries on first use.
If you take a look at VSCode issues and their project roadmap, you will see that they are encouraging extension developers to keep extensions small as possible and they are developing a way to allow dependencies installing on extension install, so I won't prioritize this at least for now, I believe the pattern VSCode is following is more maintainable than bundling binaries for all/few systems. SQLite is working beautifully here, I now Alex extensions is working as well.
My intention is not to eliminate all the other RDBMS extensions, but one day to be a base for other developers to add plugins and quick extend SQLTools to other RDBMS dialects. I'm learning with them and I hope they are learning as well.
I'm happy Alex extension fits your usage, sincerely. Your feedback is very important and relevant, but for now I would encourage you to keep with his extension, he did great there, his support to the project is amazing, so I don't see why to change.
If one of our other features (completions, results view, export, copy etc) fits your needs, then you could change.
We have a great discussion here and I like it.
Thanks @pakLebah!

Small is relative. Today's storage capacity is now moving to terrabyte. Unless you're still using a computer that only have a few hundred megabytes storage, I think a few hundred megabytes for a useful extension would be fine for common people.
Don't get me wrong, too. I like your extension, but I don't need nodejs. Installing nodejs just for a VS Code extension is too much for me. If I would want to uninstall it, I have to uninstall nodejs as well. It's an extra work that should be unnecessary (and automated). I don't want that extra work. As a long time Mac user, I expect something that just works out of the box. Even XCode installation requires only a few clicks. Except for a very important software, I don't want to bother with manual or complex installation or uninstallation.
Your extension is great and a very useful extension to VS Code community. It just doesn't fit my need. That's all.
So, keep up the good works! 👍


Remove the const cast from the initialization of boardioc_symtab_s::symtab

Summary
follow up the change in nuttx side: https://github.com/apache/nuttx/pull/9671
Impact
minor
Testing
ci

Please ignore the false alarm:
Error: /home/runner/work/nuttx-apps/nuttx-apps/apps/netutils/thttpd/thttpd.c:99:2: error: Mixed case identifier found


Issue

I literally have 0 clue how I can use this I've been using MCSniperPY which was simple as putting a command in then the offset and the name that wanted to be sniped along with the account, if you can dumb it down for me and tell me the command I would put in to launch buckshot it'd be much appreciated. and if you don't know what I mean I mean as an example I'll use the MCSniperPY command : py -m mcsniperpy snipe
Something along the lines of this I need help
Thanks.

I agree that this is slightly more difficult to set up. Honestly if I were you I would use MCsniperGO instead which should be better than MCsniperPY. You could ask questions in their discord and since the instructions are almost copy and pasted from MCsniperGO instructions you should be able to use this too.
Yeah I realise this is not as user friendly as you would like but it is more meant for my personal use. You would not be missing much using MCsniperGO over this sniper (which tbf imo has a better success rate than MCsniperGO)

I just mainly wanted to use something like this sniper for gc sniping as I have no clue how to with MCSniperGO

Just ask on their discord. I guarantee you it's easier than this sniper

I tried finding it and I couldn’t for MCSniperGO or MCSniperPY

Nevermind I’m slow I found it.


add impliedStrict flag set to false fixes #1210

This change updates the espree version to 3.1.4 and sets the
impliedStrict flag in espree to false. This will help when running
jsdoc on older code bases that are required to support older browsers.
This fixes issue  #1210
Thanks!

Little bit confused about the errors, I seem to not get either the lint errors nor the test issues from this.

Superceded by 67db938c0b6cfd0f2136ac65e8f86bd582a3addf.


[API] Add function for parsing hubbard.dat style files

Add the possibility to parse QE hubbard.dat file directly with SIRIUS. It is useful for cp2k.

Please wait my signal before merging even if everything is OK.

Actually there is a lot more work coming for this.

I need to finish this PR.... Will see what I can do next week.


Provide Homebrew Tap

Homebrew provides Tap functionality which makes to be able to provide 3rd party Formulae from personal accounts in GitHub.
In more detail, please refer to this article: https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/How-to-Create-and-Maintain-a-Tap.md
FYI: I'm a one of the user of Homebrew Tap functionality. I'm willing to help you to create it.

Thank you poi! Working on it.

Created tap repo at Elethom/homebrew-osxutils and added the formula.
ありがとう！ :smile:

Oh, it sounds great!
Your Japanese is good.
よかったです！ :smile_cat:

いいえ。私は日本語を話すことはできませんぽい。 Can only manage to put together a few short phrases by what's learned from animes. > <
よろしくぽい！


Transformation text input is right-aligned

From https://github.com/syndesisio/syndesis/issues/4868
Looks like it's because of text-align: right; on this line
https://github.com/atlasmap/atlasmap/blob/master/ui/src/app/lib/atlasmap-data-mapper/components/data-mapper-app.component.css#L223
Is this on purpose or is the alignment needed in another context? Curious if it would it be safe to remove it so the text is left-aligned?
cc  @dongniwang

@igarashitm Can you please take a look at this? ^^ thanks!

Seems it's right-aligned from beginning, and I'm OK with changing to left-aligned. @pleacu could you maybe clean it up as a part of #828 design refactoring?

sure - will keep this open as a reminder.

+1


Extend GridSort possibilities

This PR extends missing GridSort overloads including an IComparer

GridSort ByDescending(Expression<Func<TGridItem, U>> expression, IComparer comparer)
GridSort ThenAscending(Expression<Func<TGridItem, U>> expression, IComparer comparer)
GridSort ThenDescending(Expression<Func<TGridItem, U>> expression, IComparer comparer)

Additionally add methods to sort for a second column that is not affected by the sort direction

GridSort ThenAlwaysAscending(Expression<Func<TGridItem, U>> expression)
GridSort ThenAlwaysAscending(Expression<Func<TGridItem, U>> expression, IComparer comparer)
GridSort ThenAlwaysDescending(Expression<Func<TGridItem, U>> expression)
public GridSort ThenAlwaysDescending(Expression<Func<TGridItem, U>> expression, IComparer comparer)

Hi Martin,
Can you explain why we would need this extensions? Is it for sorting on multiple columns? Because I dont' think the current rendering supports that.

I think it is shown on PropertyColumn because it uses the same base class (ColumnBase) as TemplateColum

I will check if SortBy can be enabled for PropertyColumn.


Breaking change 13.0.0 => 13.1.0?

Hey everyone  (and particulary @kkerr1),
seems like there was breaking change introduced with this PR https://github.com/FormidableLabs/redux-little-router/pull/150.
I followed the guide to setup my regular webpage: menu with links on left and content on right.
There are two routes:
const routes = {
    "/": {title: "Home"},
    "/merchants": {title: "Merchants"},
};

export const {
    reducer: routerReducer,
    middleware: routerMiddleware,
    enhancer: routerEnhancer,
} = routerForBrowser({ routes });

and for each route there is component to represent that page (so my intention is to display HomePage only for /, and MerchantsPage only for /merchants). This worked fine with 13.0.0 but with 13.1.0 HomePage never shows.
<MainMenu>
    <Link href="/">
        <FormattedMessage
            id="mainMenu.items.home.label"
            defaultMessage="Home page"
        />
    </Link>

    <Link href="/merchants">
        <FormattedMessage
            id="mainMenu.items.merchants.label"
            defaultMessage="Merchants page"
        />
    </Link>
</MainMenu>

<Fragment forRoute="/">
    <MainContent>
        <Fragment forRoute="/merchants">
            <MerchantsPage />
        </Fragment>
        <Fragment forRoute="/">
            <HomePage />
        </Fragment>
    </MainContent>
</Fragment>

I created a test case which I think should pass - in 13.0.0 it does, but in 13.1.0 it doesn't.
I tried changing order of the nested Fragments (did not have any visible impact) and removing the top-most Fragment (HomePage was visible also for /merchants) but it didn't solve anything.
I'm going to use 13.0.0 for now but I think this is bug. What do you guys think? Thanks

Thanks @priecint this looks like the same issue as #153. I will take a look soon.

"exact" attribute feature is coming, i can feel it in my belly.

Should we expect <HomePage/> to be rendered only when the route is / or on any route? I am guessing we want it to only render on /? Maybe we do need to consider something like an exact prop, since we can fix this edge case by implementing the same behavior implemented in a894e0feb9be4ac457fda09c0f2b20ebef96f0f7 but perhaps that is a sort of strange API?

this looks like the same issue as #153

It looks little bit different to me because @benmcmaster doesn't have the wrapping <Fragment forRoute='/' /> as I do (notice I have two <Fragment forRoute="/"> but he only has one). But I don't understand RLR very well so I'm not sure whether it makes difference or not.

Should we expect <HomePage/> to be rendered only when the route is / or on any route?

<HomePage/> should be rendered only for /.

Maybe we do need to consider something like an exact prop, since we can fix this edge case by implementing the same behavior implemented in a894e0f but perhaps that is a sort of strange API?

If I understand correctly, in 13.0.0 there was no need for exact so I don't think RLR needs it unless there is a technical reason for it. In 13.0.0 it was enough to specifiy forRoute="/" to say: "I want this to be the exact match." (Or at least I read it that way and it seemed comprehensible.)

Hey @priecint, thank you for mentioning me here. It seems like our issues may be related. I just recreated your issue by nesting my routes within the <Fragment forRoute="/">. I am not seeing the Home element at all now:
const Demo = ({ router }) => {
  return (

          A Compendium of

          Ipsums and GIFs

          <Link href='/'>Home</Link>
          <Link href={{ pathname: '/cheese', query: { is: 'cheese' } }}>
            Cheese
          </Link>
          <Link href='/dog'>Dog</Link>
          <Link href='/cat?is=cat'>Cat</Link>
          <Link href='/hipster'>Hipster</Link>

          <Fragment key='/' forRoute='/'>

              <Fragment key='/cheese' forRoute='/cheese'>

Cheese

              </Fragment>
              <Fragment key='/dog' forRoute='/dog'>

Dog

              </Fragment>
              <Fragment key='/cat' forRoute='/cat'>

Cat

              </Fragment>
              <Fragment key='/hipster' forRoute='/hipster'>

Hipster

              </Fragment>
              <Fragment key='/' forRoute='/'>

Home

              </Fragment>

          </Fragment>

  );
};

How is this supposed to work?... Seems like a very fundamental issue, unless I am missing something big... I am new to this plugin, but it seems like previous versions of this plugin worked with the Fragement configuration shown in #153.

this looks like the same issue as #153

I actually retract this comment. #153 is indeed somewhat different. Apologies for the confusion.
13.1.0 added a new behavior that says "When a <Fragment forRoute="/"> route is relative (it is nested under a parent <Fragment> then treat that child fragment in such a way that it must exactly match the route of the parent <Fragment>. The parent fragment will continue to be a greedy match.  There looks to be at least edge-case bug where this behavior does not apply to a route where a <Fragment forRoute="/"> route was nested  under a parent .
In 13.0.0 it looks like if the / route is the last route, it will work correctly. But, I think this was more of a happy coincidence than anything. Ideally, it should work the same regardless of order. I've got test cases for both this issue and #153 now, will hopefully steal enough time soon to work out a better solution soon.

@benmcmaster With regards to the latest comment seems like this is bug. Solution for me for now is to use the older version (13.0.0).
@kkerr1 Looking forward to testing this. Let me know if I can help somehow.

I have also been relying on the behavior from 13.0.0 for a few routes and minor version bump with no warning of breaking changes really screwed me.
Will also revert to 13.0.0 for now until this is fixed.
Because I can't specify an array of routes anymore I also have this:
<Fragment
    forRoute="/"
    withConditions={location => ['/users', '/groups'].indexOf(location.route) !== -1}
>

which doesn't work in 13.1.0
Can't we just skip forRoute and rely solely on withConditions when it is specified? This way all cases can be easily covered by the user.

@MindFreeze this is definitely a bug, not an intentional breaking change. We'll have it sorted out soon

Published in v13.1.2


Agent.Plugins.PipelineCache.SavePipelineCacheV0 should also run if build status is SucceededWithIssues

Today's behavior is that the cache is not persisted unless the build status is Succeeded (see if-check here).
Shouldn't a status of SucceededWithIssues also be allowed? This would allow for persisting the cache in cases where a previous step has the 'continue on error' flag set or for some other reason sets the status to SucceededWithIssues. Or are we concerned with potentially poisoning the cache?

Hello, it was a design decision made to only allow cache for successful builds. Thanks.


Integrate Dash in Flask

Please also check the links to my test applications, using app context and middleware
Closes ploomber.io#198

📚 Documentation preview 📚: https://ploomber-doc--263.org.readthedocs.build/en/263/

I think it would be better to organize the code files into 2 subfolders: app_context and middleware, each containing its complete set of files. @bchen39

@neelasha23 @bryannho Based on Neelasha's suggestion, I will organize my code into 2 folders: app_context and middleware. Each of the folder will contain the following:

app.py
dash_apps/simple_app.py
dash_apps/population.py
requirements.txt

I will also put the images in a separate folder but leave the README in the main folder
To upload, you can zip the content in the folder or directly deploy the app in the command line. The user won't need to cp and ignore with this setup.
I will update the content in my blog as well. Let me know if this works!

I realized earlier that I had misunderstood the fundamental difference between the two approaches:

The middleware option can also use application context to share Flask data.
The real difference is whether we are hosting the Dash apps on the server or mounting these apps using a Middleware.

I have made the changes to the project structure and rewrote my README. Please check the web apps: middleware approach and the hosting approach. I will also reflect on these changes in my blog. Let me know if you have other questions or comments.

@bchen39 is this ready for review?


Make sentinel maninfest ensure the redis package

The sentinel service needs to make sure that the redis package has
been installed on the machine where sentinel is being run. All my
previous testing had assumed that there would be a redis server and
sentinel on the same machines. This doesn't have to be the case, so
the manifest needs to make allowances for that.

@arioch One more! This was found when testing with the multiple sentinels on hosts separate from the slaves.
Thanks.

Keep 'em coming. :+1:


the 'collapse' button for dropdown does not close the dropdown menu

Setup: v2.6.0-rc5
Issue: The dropdown button does not collapse when clicking the arrow to close it. The user must click somewhere outside of the dropdown in order to close it.
Result: dropdown menu re-opens when clicking the collapse button.
Expected Result: clicking the collapse arrow would close the dropdown menu

Collapse button works fine on v2.6-head (b43e4d9)


Update README.md

I spent time to understand what handler was in your Readme.
I first  was expecting it was a callback function but forgot about node (err, data) arguments so
I put function(info) and info was empty.
So I suggest this modification to make the doc a bit more readable to non node expert.

Thanks for the updates.
That is more clear for people that aren't aware of the node conventions for callback functions.


basic react UI for debugging and testing bot. Added session_id to be …

…able to collect history. SalesGPT API is now created at mounting time. Changed response from api at the end of conversations to make it a list of 2 values, rather than 1 (Was throwing an error)

@iljamak pls accept the invite to the salesGPT org as a collaborator, otherwise the unit tests will fail as it won't load the env variables for you. Then please re-run the checks to make sure they all pass.

@iljamak closing this as migrated to the upstream repo