Non manifold operations

Sorry for posting an issue for a question, but I don't see any sort of forum or mailing list for user inquiry.  If there is a better place to ask questions, please let me know.
My program has an old hand-rolled CSG engine that was developed ~20 years ago.  It is not as robust or as performant as a modern CSG engine.  I am looking to replace it with a library like yours.
My program has a number of use cases where performing CSG-like operations on non-watertight meshes is important.
A common example of this is slicing for 3D printers.  Mesh A is a watertight manifold solid and mesh B is a flat plane that extends beyond the AABB of mesh A.  By intersecting A and B -- and then keeping all triangles from B that are inside of A (and discarding all of A and B outside of A), we are left with a 'slice' through A.  This kind of slice can then be used to generate a tool path for a 3D printer.  Many such slices are generated and layer by layer, an object is printed.
Instead of just providing the standard boolean operations, I would like to use an API where meshes can first be intersected (and perhaps not just A to B, but All of A,B,C,D,E together).  And then, triangles can be classified as inside/outside of any of the meshes that are manifold and watertight (you can't be inside or outside a non-watertight mesh).  I can then construct logic to discard or keep triangles based on their inside/outside status to A,B,C,D,E etc.
Is this possible in your library?  How hard would this be to achieve?
Also, is it possible to attach additional data to the triangles (and perhaps other entities) in your system?  For example, perhaps I want to assign an integer representing a color to all triangles before processing.  When a triangle is split into fragments, those fragments get a copy of the additional data.  That way, in the end it is easy to visualize the meshes with the color (say red and blue) from the parent meshes.
Ideally, data would not just be copied, but perhaps there would be a callback or hook mechanism to define how the data propagates when triangles are split, joined, or otherwise manipulated.  But starting with a simple copy is probably good enough.
Thanks for all your work and for making it available for others to use.

Hi, thanks for your interest in our work.
Your slicing problem cannot be solved with our Boolean code, because that code requires that all meshes involved in the Boolean operation are manifold watertight. It could however be solved by using only the arrangement part of the code, splitting triangles intersected by the cutting planes and then implementing a trivial filter to discard unwanted triangles, which are only required to be above/below a reference plane.
That being said, if mesh slicing is your problem, I believe this would be an overkill. From the top of my head, the most trivial way to perform slicing is to interpret the height field as a scalar field (e.g. associated to mesh vertices) and then to "trace" the slicing contours as isolines of such a field. In this case tracing becomes trivial to implement and intrinsically robust, you just need to split edges that have their endpoints at opposite sides of the cutting plane.
In case you are interested,Cinolib offers facilities to encode scalar fields in a mesh and to split it along a certain isovalue. Attachment of customized data to any mesh element is also supported.

Thanks for getting back to me so quickly.
Separating the 'arrangement' part of the code from the code that uses an inside/outside test to selectively discard tris is exactly how I'd like to proceed.  Can you point me to where that is done in the 'normal' case?
My program needs a full CSG engine -- I would like to also use that engine for slicing and similar tasks.  My question focused on slicing because I already know you can do the other stuff.
That said, I hadn't thought about stand-alone tools for the slicing (or an iso-surface approach).  In the longer term, I may look into that.

The arrangement part of the boolean code is available here. This software takes in input a triangle soup and resolves all intersections.

Thanks for pointing me to that repository.  I should be able to progress from there.
How are the two versions of the arrangement code kept in sync?  Should I prefer one over the other?
The arrangement code has several dependencies.  I generally try to limit dependencies in my program -- in particular nested dependencies.  Are any of them optional?  Is there a way to build the library while pointing it at an independent version of the dependencies?

the Boolean code contains a copy of the latest version of the arrangements code. There is no explicit sync mechanism, but at the moment it is not necessary since we don't plan to further improve that part. In case of bugs we will sync manually.
The code depends on Intel TBB and Google Abseil for parallelization and fast containers. These are external dependencies that are hard to get rid of if you want to maintain the same level of performances. Conversely, if performances are not critical, they can be completely removed.
The others are "internal" dependencies from software tools that we developed by ourselves (cinolib, indirect predicates). For simplicity we just import these projects into the arrangement code, but all these codes could ideally be grouped into the same software package.
Please note that this is research code that demonstrates algorithms and ideas expressed in our scientific papers. We are not going to actively work to create a unified software solution

I'm trying to build the arrangements code from the stand-alone GitHub repository.  I get the following error:
FARMA/code/triangle_soup.h:42:10: fatal error: 'implicit_point.h' file not found
Searching around, I can not find this file anywhere in the repository.  Any tips?  I can't find it in the interactive booleans repository either.
In terms of dependencies, I'm just trying to figure out the cleanest way to use this project in my project.  I.e. how to use it as a library.  Ideally that means one CMake FARMA_INCLUDE_DIR variable and one #include in my code.
This code depends on: Cinolib, abseil-cpp, oneTBB, parallel-hashmap, and yocto.  It would be great if some of those were optional, with simple Cmake variables in control.  However, I get the desire to avoid complication.
Cinolib recursively includes bundled versions of Eigen, imgui, shewchuk_predicates, and stb.
This is a bit much because I don't want any of the graphics stuff from these libraries -- so imgui and stb should certainly be optional.
My program already bundles Eigen and stb.  I'd like to be able to use one and only one version of various libraries.
I'm pretty sure I can 'turn off' imgui, but I'm not sure the best way to do that while integrating this as a library.  Since everything seems to be header-only, it appears I am forced to put Cinolib (and other nested library) options at the top-level in my program.

It appears that 'implicit_point.h' was removed from the repository (fast arrangements) in d14e86b93275021b8f6.
It appears to be a part of what was 'external/IndirectPredicates' which was removed.
This appears to be a part of this library: https://github.com/MarcoAttene/Indirect_Predicates
Which made a commit last week with the description 'Major update' that touched almost every file.
I should be able to get the pieces in place, hopefully it still works together.

sorry between yesterday and today we tried to incorporate the latest version of the indirect predicates into the project, but something went wrong. I just reverted all our repos to make sure we use the old version of the predicates. Now it should work as expected

I don't see anything changed (reverted) in the public repos.  You will likely have to force push to make that sort of thing take effect.
However, nothing in the past few days will change what I have observed.  From what I can tell, the Indirect_Predicates was removed from the project in this commit back in November 2022.
It looks like someone from outside the project (@starseeker) is working on packaging a version of the boolean project as a library.  I.e. the libirmb branch.
As it turns out, I know @starseeker from other libraries -- GitHub is a small place.  Since our goals are aligned, I should probably try to track the libirmb branch.

@ramcdona The libirmb branch isn't currently active, unfortunately - for BRL-CAD's purposes we'd need a solution to https://github.com/gcherchi/InteractiveAndRobustMeshBooleans/issues/13 to get manifold meshes out of coplanar boolean operations.
Since the normals check isn't robust without a dedicated exact predicate, I'd like to see if we could get the result we need instead by detecting when an output mesh isn't manifold and then trying both the "from the inside" and "from the outside" approaches to triangle preservation and detecting which version produces the closed manifold.
My thought was that for each hole caused by coplanar intersection, we could try patching it with candidate triangles from each planar source contributing to the boolean and then validating the edge connectivity on the formerly unmated edges to determine which source triangle set to use in order to produce a valid manifold, but it's possible I'm oversimplifying the problem...
Even assuming there isn't a reason that approach couldn't work that hasn't occurred to me yet, figuring out how to try it requires a deeper dive into the code than I have time for right now, unfortunately...
I've got the code for using BRL-CAD's facetization meshes and boolean trees as inputs stashed here https://github.com/BRL-CAD/brlcad/commit/6328c99eb9f6e31bb615ac8d16ba9af4d377d100 if someone else has time to check into it.

@starseeker Thanks for all that background.
I'm on a mission to improve OpenVSP's CSG-type operations.  For better or worse, we have some use cases where intentionally working with non-manifold geometry is important to us.  So my current plan is to use the mesh intersection code from the Fast and Robust Mesh Arrangements with our existing ray-casting inside/outside checks to complete our Boolean operations and other use cases.
This will not be 100% robust, but it should be a lot better than what we have now -- and right now, the robustness of the inside/outside checks do not seem to be a problem.
I noticed your libirmb branch as an effort to package this code together and make it more suitable for inclusion in a larger project.  Since it looks like this will not be completed, I'll just have to look through what you've done and steal your good ideas.

I'm happy to say I've achieved some initial success.  I'll keep problem reports to myself for now as I work through things, but with progress comes a bunch of questions.
I'm trying to think through the in_labels and out_labels capability.  I see that out_labels is a bitset 32 bits in size.
Does this imply that in_labels should be integers from 0 to 31?  I.e. only 32 labels are possible?
I can imagine that if labels were intended to be used per-mesh, then this might be an approach, but even so, 32 seems extremely limiting.
I would like to identify which triangle the new split triangles came from.  My first thought would be to assign a unique label to every triangle in in_labels.  In the co-planar case, I believe an output triangle can have multiple labels, so this is what makes me think the out_labels is using the bitset as a bit mask -- leading to my maximum of 32 labels above.
The only clue I can find about how this works is this bit of code in 'solveIntersections'.  This supports the maximum 32 labels theory
   for(uint i = 0; i < in_labels.size(); i++)         tmp_in_labels[i][in_labels[i]] = 1;
Is there a way to identify which triangle the new split triangles came from?  From the paper, it seems that this information exists at least until the implicit points are converted into approximate coordinates.
Any help -- or a pointer to an example using the labels -- will be appreciated.

your guess is right, the bitset serves exactly for this purpose. In the worst case (all input meshes coplanar in a certain region) an output triangle may belong to all input meshes. In such a case, all the 32 bits of the bitset would be set to 1. In the general case each bit corresponds to an input mesh and it is set to 1 if the output triangle belongs to such mesh.
I agree that 32 may be limiting in certain cases, but in most of the cases this is already an overkill. While we could come up with something more general, we needed to trade generality for efficiency :)

I suppose "in most cases this is overkill" depends greatly on your domain of application.  In my domain, it simply won't do.  I'll have a look at changing it to something else -- at first glance, it doesn't look particularly complicated.
Is there some other way to identify which parent triangle each split tri comes from?  Or should I extend the label mechanism to identify every tri uniquely?

sure, it depends on the applicative domain. Remember that you can always change the size of the bitset if you need more. We ran some experiments with ~1K labels at some point. This number is just a constant in the code. The only alternative that I see is to have a vector of labels per triangle, but having a dynamic container per triangle was not particularly appealing to me...
If you find a better solution let us know ;)
I am closing the issue as there is not much we can do for you at this point.

I'm starting to have enough experience with this that I am starting to see issues that I don't think are my own fault.  Would you prefer I start new issues for these (and presumably on the other repo)?
I am also somewhat surprised at the performance I'm seeing.  I've had to turn off parallelization (on my Apple M1 machine it crashes with parallelization enabled).  So single-threaded, a particular test case takes about 250 ms.  For comparison, my 20 year old code takes about 15ms.
The old code is not robust (it also is not parallelized), so that will explain some of the difference -- but I did not expect so much.
My code intersects MeshA to MeshB -- and it assumes each input mesh is non-self-intersecting.  Consequently, tris in MeshA do not need to be checked against themselves.
My code uses a bounding box tree to accelerate the intersection process, only intersecting tris when it gets to a reasonable bottom of the tree.
Does Fast and Robust Mesh Arrangements use any sort of accelerated spatial data structure?  Or does it always check every triangle in the soup against every other one? O(N^2) ?
I am also seeing cases where this code crashes.  Are you interested in test cases that cause failures?

I'm sure a better label solution is possible.
A 'vector' per-tri is certainly one possibility, it gives the desired behavior (albeit heavy handed for storage).
It seems to me that you've optimized for the wrong situation -- co-planar tris are relatively unusual, having many co-planar tris is even more unusual.
Lets assume the input tris are in the range 1...N.  I would use a single integer as the label.  For most situations, the number 1..N of the parent tri will suffice.
For coplanar tris, I would keep a separate unordered_set<int,vector>.  The triangle label would be an index greater than N.  That N would be the key into the unordered_set.  The set would contain the vector of all the labels (less than N) for that tri.
In the common case where two meshes had zero coplanar tris, the unordered_set would remain empty and it would never need to be looked up.

Comparing fully robust to non robust implementations is like comparing apples to oranges :)
Most of the overhead comes from the infinite precision numerics that are needed to make this software robust.
Of course we are using acceleration data structures to detect intersections. Nothing super fancy, just a plain octree that I implemented myself, but it is decently fast.
For the issues. Please keep in mind that we are academics whose principal job is to publish a scientific article describing their algorithm. We tried to validate our tool as much as possible, running dozens of thousands of experiments, and we re happy to share our reference implementation with the community. That being said, this is a software prototype written in a rush under a strict publication deadline. I am sure our code could be greatly improved by a professional software engineer as much as I am sure it still contains bugs that may make it fail on meshes we did not consider in our tests.
While we are flattered by the enthusiasm and interest around our code, at the moment nobody in our group is working actively at this project and even only answering to all the issues is becoming incompatible with our regular job. We'd like to keep in touch and be informed about your improvements, but we will not be able to fix unexpected bugs on new meshes or to provide support on low level details.

I expect that it should only have to resort to the robust calculations a small fraction of the time.  Perhaps that is the price that must be paid -- or maybe I'm using the library wrong.  I guess we'll never know.
I see the octree code in the Booleans code -- but I didn't see anything like that in the stand-alone Mesh Arrangements code.  Oh well.
I'm getting old, but I can still almost remember getting my Ph.D.  And I was a professor for ~11 years before I escaped academia.  I get it.
I too have written software just to the point of generating graphs for a paper.  Software that I don't want anyone else to look at or run.  Usually I had the luxury of not putting that code on GitHub.  In your field, it makes sense that code needs to be shared (to reproduce results etc) -- even if that code isn't meant to be put into production use.
I would encourage you to put a clear disclaimer on your page.  Something like "This is academic software that is not intended for production use.  There are currently no plans to move this project forward."  That way, people like @starseeker and I won't spend days heading down a dead end.
I surveyed the project and assessed that it was closer to production than it is.  Although the dependencies are a mess and there is no documentation, the code looks solid and well designed.  The GitHub repo has recent activity (and activity after the paper publication date) and the research group has other projects that are building on this library -- al these are good signs and not typical of academic abandonware.
For many algorithms, I would rather write my own rather than take on yet another dependency.  However, as you know -- computational geometry is really hard to get right (robust and performant).  This is an area where using a production library should be strongly favored over trying to write your own.  I already have an implementation that isn't robust and isn't very fast after all.
Shewchuk has shown that you can build a career around making a production-ready computational geometry tool available.  Research funding agencies do not pay to move software from proof of concept to production -- that is something the developer has to see value in and take on themselves.  I know it takes time and energy, but investing that time early in a career can pay long-term benefits to the academic willing to do it.


Resolved : Not able to delete a file which is in a directory

I have uploaded a file using below command:
gdrive upload --parent Parent_Dir_id_here File_name_here
Now if i want to delete that file
I fetched ID of that file by listing all files and using created date
gdrive list --query "'Parent_Dir_id_Here' in parents" --order "createdTime asc"
Now i have both Directory id and File Id, I have tried in same way:
gdrive delete Directory_id_here File_id_Here
Also tried
gdrive delete Directory_id_here File_id_Here
gdrive delete --parent Directory_id_here/File_id_Here
But does not work

Files can be deleted without directory id Ex.:
gdrive delete File_id_Here


Snippet gets duplicated when completion menu is open

I have a problem where the snippet gets duplicated when I jump into the snippet. Here you can see me pressing my keybind to jump into the snippet (control + J) and the snippet gets duplicated for some reason. What could be the reason for this?

Could you try without the nvim-cmp menu?

Ah, and are you on the latest version of luasnip?

Is this what you mean by without nvim-cmp? And yes, I am on the latest version

Ah, not exactly.
Is it possible that enumerate is also a snippet? LSP can send completion-items that are themselves snippets.
You could test this by trying how completions other than enumerate behave, or by making nvim-cmp print on snippet-expansion.
The latter can be implemented by modifying the snippet.expand-hook in your cmp-config: it should say something like require("luasnip").lsp_expand(args.body), and you can put a print(args) before that, for example.

Yeah that was it, enumerate is also a snippet

Do you know if there is a way to prevent cmp from suggesting snippets within repeated nodes to prevent something like this from happening?


gominer prevblock hashes mising a byte in work submissions.

Noticed in testing gominer manages to solve a block but always gets rejected by the pool since the work is less than the pool target. Take this sample job of which the work notification to a gominer instance is derived:
021-04-14 09:04:58.270 [DBG] POOL: header is 09000000f82aadcc5f683978c0cf7b616b41f956bb6c4bbd073e93ccffb868972e000000fe3d75df58203f80a430fbf4fa1f1338caf0296131c5be618e26d5f5fd7c25e3e56e44cd0de7aa98363ea5d1a70a1b5dea0545d80fa1d1a91e507dae9df1a61c010073a93458c7490500010017190000f61c781d7ec2a4d2040000008f1a0a00db0b000027b07660000000000000000000000000000000000000000000000000000000000000000000000000090000008000000100000000000005a0

The prevBlock in the header is f82aadcc5f683978c0cf7b616b41f956bb6c4bbd073e93ccffb868972e000000, hex reversing this we can easily confirm the referenced block is 0000002e9768b8ffcc933e07bd4b6cbb56f9416b617bcfc07839685fccad2af8.
This information about the prevBlock has to be accessible from the corresponding solved block from gominer. The output gotten
from gominer was:
10:04:58 2021-04-14 [DBG] MINR: GPU #0: Found candidate 0 nonce 13dd0fba, extraNonce 12140000, workID 03000000, timestamp 27b07660
10:04:58 2021-04-14 [INF] MINR: DEV #0 Found hash with work below target! 000000001a969cc7cb889dad273f9bd9d689c4639681c9f8e3f8880e75f89b07 (yay)
10:04:58 2021-04-14 [TRC] MINR: GPU #0: Kernel execution to read time: 10.710705ms
10:04:58 2021-04-14 [DBG] POOL: Stratum got valid work to submit 09000000f82aadcc5f683978c0cf7b616b41f956bb6c4bbd073e93ccffb8689700000000fe3d75df58203f80a430fbf4fa1f1338caf0296131c5be618e26d5f5fd7c25e3e56e44cd0de7aa98363ea5d1a70a1b5dea0545d80fa1d1a91e507dae9df1a61c010073a93458c7490500010017190000f61c781d7ec2a4d2040000008f1a0a00db0b000027b0766013dd0fba121400000300000000000000000000000000000000000000000000000000000009000000000000000000000000000000
10:04:58 2021-04-14 [DBG] POOL: Stratum got valid work hash 000000001a969cc7cb889dad273f9bd9d689c4639681c9f8e3f8880e75f89b07

The block header data should be almost identical with the submission having the nonce space filled, as well as the nTime updated. In this case there is another difference.
The prevBlock returned in the submission is f82aadcc5f683978c0cf7b616b41f956bb6c4bbd073e93ccffb8689700000000, hex reversed becomes<PHONE_NUMBER>68b8ffcc933e07bd4b6cbb56f9416b617bcfc07839685fccad2af8. None of these correspond to a valid block when looked up on dcrdata. Comparing these to the extracted prevBlock from the job above it is apparent the prevBlock from the gominer is missing a byte.
	"0000002e9768b8ffcc933e07bd4b6cbb56f9416b617bcfc07839685fccad2af8" // hex reversed from dcrpool job, can be looked up on the testnet explorer.
	"000000009768b8ffcc933e07bd4b6cbb56f9416b617bcfc07839685fccad2af8" // hex reversed from gominer submission, missing "2e"

The reason gominer submissions are not being accepted is because it mutates the block header by truncating the prevHash provided and pads it with zeros before solving.
This will block gominer support for now.
related to #316

I doubt this matters much anymore, but the fix is in the RevHash util function
 // RevHash reverses a hash in string format.
 func RevHash(hash string) string {
-       revHash := ""
-       for i := 0; i < 7; i++ {
-               j := i * 8
-               part := fmt.Sprintf("%c%c%c%c%c%c%c%c",
-                       hash[6+j], hash[7+j], hash[4+j], hash[5+j],
-                       hash[2+j], hash[3+j], hash[0+j], hash[1+j])
-               revHash += part
+       // rev := []rune(hash)
+       // for i, j := 0, len(rev)-2; i < j; i, j = i+2, j-2 {
+       //      rev[i], rev[j] = rev[j], rev[i]
+       //      rev[i+1], rev[j+1] = rev[j+1], rev[i+1]
+       // }
+       // return string(rev)
+       rev := []rune(hash)
+       for i := 0; i <= len(rev)/2-2; i += 2 {
+               opp := len(rev) - 2 - i
+               rev[i], rev[opp] = rev[opp], rev[i]
+               rev[i+1], rev[opp+1] = rev[opp+1], rev[i+1]
        }
-       return revHash
+       return string(rev)
 }

// Copyright (c) 2016 The Decred developers.

package util

import "testing"

func TestRevHash(t *testing.T) {
        tests := []struct {
                name string
                hash string
                want string
        }{
                {
                        "ok",
                        "f82aadcc5f683978c0cf7b616b41f956bb6c4bbd073e93ccffb868972e000000",
                        "0000002e9768b8ffcc933e07bd4b6cbb56f9416b617bcfc07839685fccad2af8",
                },
        }
        for _, tt := range tests {
                t.Run(tt.name, func(t *testing.T) {
                        if got := RevHash(tt.hash); got != tt.want {
                                t.Errorf("RevHash() = %v, want %v", got, tt.want)
                        }
                })
        }
}

I'm not super familiar with the history here, but this looks like the func in gominer which is fixed.
In any case, everything is on an entirely new hash function so this certainly doesn't apply anymore.  Closing.


Tag OpenSearch Domains for better tracking

Description
This task is to tag the Arkime Cluster's OpenSearch Domain with the cluster name so users can more easily determine which Domains are used by which cluster.
Acceptance Criteria

The OpenSearch Domains are tagged with the cluster name

PR merged; AC met.  Resolving.


Migrate app to TypeScript

Summary
Our desktop app has been behind the times for a while, so I've spent the effort to move us to TypeScript.
This should mean some cleaner code and hopefully less bugs down the road!
NOTE: We should also make sure to thoroughly test this before merging.
I'd also ask the devs to be as thorough as possible in case there's something I missed when migrating that could have been done better.
Ticket Link
None.
Release Note
NONE

The file .circleci/config.yml is in the blocklist for external contributors. Hence, these changes are not tested by the CI pipeline active until the build is re-triggered by a core committer or the PR is merged. Please be careful when reviewing it.
/cc @mattermost/core-security @mattermost/core-build-engineers

The file .circleci/config.yml is in the blocklist for external contributors. Hence, these changes are not tested by the CI pipeline active until the build is re-triggered by a core committer or the PR is merged. Please be careful when reviewing it.
/cc @mattermost/core-security @mattermost/core-build-engineers

The file .circleci/config.yml is in the blocklist for external contributors. Hence, these changes are not tested by the CI pipeline active until the build is re-triggered by a core committer or the PR is merged. Please be careful when reviewing it.
/cc @mattermost/core-security @mattermost/core-build-engineers

The file .circleci/config.yml is in the blocklist for external contributors. Hence, these changes are not tested by the CI pipeline active until the build is re-triggered by a core committer or the PR is merged. Please be careful when reviewing it.
/cc @mattermost/core-security @mattermost/core-build-engineers

The file .circleci/config.yml is in the blocklist for external contributors. Hence, these changes are not tested by the CI pipeline active until the build is re-triggered by a core committer or the PR is merged. Please be careful when reviewing it.
/cc @mattermost/core-security @mattermost/core-build-engineers

The file .circleci/config.yml is in the blocklist for external contributors. Hence, these changes are not tested by the CI pipeline active until the build is re-triggered by a core committer or the PR is merged. Please be careful when reviewing it.
/cc @mattermost/core-security @mattermost/core-build-engineers

The file .circleci/config.yml is in the blocklist for external contributors. Hence, these changes are not tested by the CI pipeline active until the build is re-triggered by a core committer or the PR is merged. Please be careful when reviewing it.
/cc @mattermost/core-security @mattermost/core-build-engineers

Closed in favour of https://github.com/mattermost/desktop/pull/1637


Is it possible for use to derive the clone and default traits here?

https://github.com/primitivefinance/arbiter/blob/417818070c25771ea9fa03bf66bdd2692a081c5c/arbiter-core/src/middleware/mod.rs#L100

Yes

Closed in an earlier PR


Syntax improvement for ResultQuery usage

#11257 introduces ResultQuery, which contain syntax that is in fact non-standard Rust when trying to use it as the QueryKind type parameter for a storage map. Example:
pub type Map3<T> = StorageMap<
	_,
	Blake2_128Concat,
	u32,
	u64,
	ResultQuery<Error<T>::NonExistentStorageValue>, // <---- This is non-standard Rust syntax
>;

The reason here is because Error<T>::NonExistentStorageValue is not a type, but rather a value, as enum variants are currently not properly recognized as their own proper types in Rust.
In addition, such a syntax does not cater to enum variants that accept fields, so implementors are forced to also use the OnEmpty parameter to specify what the default Result value should be when the corresponding value doesn't exist under the storage key specified.
We'd like to try and stick with standard Rust syntax as much as possible, and as a stretch goal, also allow for the flexibility of specifying the default query value without the usage of OnEmpty.

In addition, such a syntax does not cater to enum variants that accept fields, so implementors are forced to also use the OnEmpty parameter to specify what the default Result value should be when the corresponding value doesn't exist under the storage key specified.

I don't get this? What you mean by this?
TBH, I don't get the entire issue. You want to improve the syntax, but from what to what? What kind of syntax do you would like to see?
I mean yes, this is currently not standard Rust and I don't see it being transformed to standard rust in the near future if we don't want to have very complicated syntax.
Why can we not accept error variants that have fields? As long as these fields are const initialized?

There's only a finite amount of customization that we can make on top of the standard Rust syntax, before it gets too strange and hurts discoverability and hence usage. We can't always rely upon documentation to expose certain programming features that pallets support, and so the more we deviate from standard Rust, the more unexpected syntactical constructs that we have to maintain and explain.
If we want Substrate to be the prime tool for people to use to build blockchains, then devex is a goal that we should strive for. The existence of customized syntax like this one makes it impossible for us to continue to claim that "if you know Rust, you know Substrate", as we're clearly creating our own dialect of Rust.
Functionality-wise, we can indeed parse any syntax and make things work, but that is not what this issue is focused on. We need to reduce our strangeness factor.

it impossible for us to continue to claim that "if you know Rust, you know Substrate",

Never heard this claim since I work at Substrate ;)
Nevertheless, back to the topic. Could you give an example from current syntax to what syntax you would like to change?

At the very least, I think the ResultQuery<Error::ErrorVariant> syntax has to be changed, most likely to a more idiomatic ResultQuery<Error> syntax.
Then the question becomes "how do we specify the error variant to use for the ResultQuery, and I think there are several idiomatic methods of doing so: the first one that I can immediately think of is to ensure that the OnEmptytype parameter exists whenResultQueryis specified, and we make use of theOnEmpty` type parameter to specify which error variant to use.

"idiomatic" is just such a random word in Rust that everyone uses, but that has actually no real meaning.
OnEmpty would require that I create some extra type and implement the trait for it? This sounds like an awful user experience to me. Yes we are not here close to the Rust syntax. However, this may works in the future when you can have custom const values.


Add tolower(str) and toupper(str) functions

tolower(str): returns  a  copy  of  the  stringstr,  with  all  the  upper-case  characters  in  str translated to their corresponding lower-case counterparts.  Nonalphabetic characters are left un-changed

toupper(str): returns  a  copy  of  the  stringstr,  with  all  the  lower-case  characters  in str translated to their corresponding upper-case counterparts.  Nonalphabetic characters are left un-changed.

https://github.com/onetrueawk/awk/blob/master/FIXES
awk 'BEGIN { x = "HaLlo"; print tolower(x); }'

tolower and toupper are supported by at least nawk, gawk, mawk and goawk.

Indeed! I've got these staged in the to_upper branch along with some other optimizations. Should be able to push tomorrow.

This is pushed in #52 ; thanks for filing the issue!


No error message

When working with tutorial and modifying record attribute its simply doesn't bind anything to '#div' from example without showing any error. Why is it so? How can this be fixed?

Ok i get it. It simply doesn't find the record. Maybe it would be nice to highlight which code is beeing executed based on if search matched something or not.

Hey Damian!
The UX is a little rough right now (it's a work in progress), but if you
use the inspector tool on a block and ask "Did this fail?" It'll actually
do just that!
On Fri, Oct 28, 2016 at 10:03 AM Damian Trojnar<EMAIL_ADDRESS>wrote:

Ok i get it. It simply doesn't find the record. Maybe it would be nice to
highlight which code is beeing executed based on if search matched
something or not.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/witheve/Eve/issues/472#issuecomment-256974158, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AATKDpoh7pqPxgIjuoRgVEkBV19KBTEsks5q4ir0gaJpZM4Kjpg9
.


Add Mickey B Fresh

FYI, we've updated our contribution guidelines: https://github.com/TowoLabs/ftso-signal-providers#how-to-add-your-signal-provider and clarified how to run tests locally.

FYI, we've updated our contribution guidelines: https://github.com/TowoLabs/ftso-signal-providers#how-to-add-your-signal-provider and clarified how to run tests locally.

As far as we can tell we updated everything to the correct guidelines. Please let us know, if we still made an error.

Closing due to inactivity. Please open a new PR when the issue has been fixed.

Included in https://github.com/TowoLabs/ftso-signal-providers/commit/db46a5973c2bea5420d45ce9c7487af724ba6dd0 for next release. We now allow 350 character descriptions and fixed your image filename typo.


Add logo favicon for all platforms

What has changed and why?

Replaced default React favicon by home logo.
Added app icons for all mobile platforms.

How to test this change

[ ] has automated tests
[ ] at least one a reviewer ran the code
[ ] tested in small screen
[x] tested in Chrome
[x] tested in Firefox
[ ] tested in IE
[x] tested in Safari
[x] i18n

@Br3nda not super clear about your merge process, especially with wafflebot doing assignments. Do you take care of merging, or do you want me to merge upstream + merge, or to rebase + merge, rebase + ff… ? 🙂

So I guessed based on the previous two upstream merges that this was the way to do it. If that wasn't the case, sorry, please tell me how I should have done it!


Editing small typo in a comment in schema_cloudflare_logpush_job.go

Since the link is pointing to logpush options, it shuold say Logpush and not Logpull

thanks for the PR! this description is used in our documentation so to update that, you'll need to take a look at https://github.com/cloudflare/terraform-provider-cloudflare/blob/master/contributing/registry-documentation.md, run make docs and commit the generated artifacts here.

Hi @jacobbednarz, done :)

thanks!


[SSoC '23] {Tourism Project} Change the photo crop out in various sections and add new pages for footer links in

Is your feature request related to a problem? Please describe.

The navbar has no hover effects.
In the header section, the top part has no padding, leading to the images crop out.
There is no image slider, and the image gets cut out side wise in many places
There are no external websites to T&C, privacy, Need help section.

Describe the solution you'd like

I would like to add some animations to the navbar.
Add padding to the top part of the website so that the upper part of the website is visible.
Add image slider to the parts where image is cut out.
Add new pages for the same and link them to respective sections in the footer.

I would be happy to work on these from 1st June for SSoC @TusharKesarwani

I want to work on this issue could you please assign it to me @TusharKesarwani .


Overriding Windows Snap hotkeys (win+arrow) results in opposite direction for Win+Arrow command

@crutkas (PS I miss you) :-)
Environment
Windows build number: 10.0.19588.1000
PowerToys version: <IP_ADDRESS>
PowerToy module for which you are reporting the bug (if applicable): FancyZones

Steps to reproduce

Under FancyZones settings, make sure "Override Winows Snap Hotkeys is NOT enabled
Hold Win key + Left Arrow to snap window to the left

Result = Window Snaps to the left

Go back under FancyZones settings and enable "Override Windows Snap Hotkeys"
Hold Win key + Left Arrow to snap window to the left

Results = Windows Snaps to the right
Expected behavior
I expect the window to snap to the direction pressed
Actual behavior
The window snaps the opposite direction
Screenshots

can you provide a screenshot of your zones?

fyi, @chansearrington 0.15.2 was released a bit ago. You're like 3 releases behind buddy :)

@crutkas yeah, I noticed I was behind yesterday. I forgot I have to manually update this like it's 1992. :-)
I updated and the behavior still exists in Version v0.15.2
Here's a screenshot of my Zones.

@crutkas And here's a video demonstrating the problem
https://1drv.ms/v/s!AjcUU9ZDJWostb4VmUDLfg1ccRhEHw?e=2lPq3X

I have this same issue in release v0.16.1

This is not a bug, it is by design that in FancyZones, WIN+Arrow will cycle through the zones based on their index. The zone number is visible in the zone editor or when the zones are activated.

@enricogior Right but if I have have 3 zones like this:

And I have a window that's not snapped yet, like this:

If I hit Win + Left Arrow the result is this:

I think it would make more sense if it went to the first zone (also the most left zone) like this:

FancyZones supports all sort of different layouts with free positioning of zones and overlapping.
Having different logic for different layouts would be confusing and would make a lot of people frustrated with having to figure out/remember what logic is used for each layout.
Trying to create a different logic would also prevent to use the WIN+ Arrow UP and DOWN for maximizing/minimizing windows, something that we don't want to remove.
The bottom line is that the current logic is consistent and simple to understand. And it allows to create custom layouts with the desired order.
With regard to moving windows to the next zone, there are more compelling feature that we are considering to implement, like switching zones when the target zone is already occupied by another window, or rotate all windows position to the next zone.

@enricogior I don't think it matters how you do it until you say you're replacing the default functionality. Then users expect it follow something similar and your "feature" looks like it's broken functionality.
However, I don't think these things have to be at odds with each other.
You can still cycle numerically, just make the Zone 1 the zone in that is the furthest left and up. and then make the the last done furthest bottom right.
Pressing left would send to position 1 and if you kept hitting to the the left it would then cycle from the bottom up 1, 4, 3, 2, 1, 4, 3, 2, 1, etc.
Pressing right would send to position 4 and if you kep pressing right it would go top down 4, 1, 2, 3, 4, 1, 2, 3, 4,
You could also go right (4) and then left to go down. (4, 3, 2, 1)
And left then right to go up, 1, 2 ,3 4
Additionally, you should show the numbers in the panes so users understand what's happening.

@chansearrington
are you using 0.16.1?
In 0.16.1 the left column is number 1.

@enricogior the problem is that when you start powertoys, the current position is 1.
If I have 3 zones and the current position starts at 1, when I open my first window to snap, and hit win + left it will snap to the 3rd position, (the current position -1) which is the most RIGHT position and is not what you expect when clicking win + LEFT.
Same thing if I click win + right it will snap to the 2nd position (the current position +1) which is the CENTER position in this scenario and is not what you expect when clicking win + RIGHT.
If no windows are snapped then win + left should snap to the first position and contrarily win + right should snap it to the last position.
The current win + arrow override powertoy's is providing here is not very user friendly.
It may take some thought, but it would be nice to come up with a good way to manage this win + arrow override even beyond what I am suggesting.
win + arrow keyboard shortcuts have the potential to be way quicker than holding shift and dragging windows around, but in the current state, these win + arrow overrides are unpredictable at best.
Please consider reopening this issue.

@jarodburchill
you are assuming that FZ layouts always have columns on the left and on the right of the screen. While Windows 10 Snap has predefined zones and its snapping logic is tight to that predefined fixed layout, FZ can have every type of layouts and it may not have zones on the one side of the screen. Trying to use the Windows 10 Snap logic for FZ is not gonna work in general.
If we change the current logic it as to work for all layouts not just for the single case you are describing. That will require to implement what described in https://github.com/microsoft/PowerToys/issues/162 that uses all four arrows, since it would be impossible to implement it with just left and right arrow.
To make 100% clear: what described in https://github.com/microsoft/PowerToys/issues/162 is perfectly functional, not completely trivial to implement, but definitely something that I would like to see implemented.

@enricogior
I agree that #162 would be the desired functionality in the long run, but you can in fact do what I am suggesting with just the win + left and win + right keys.
The idea that I am proposing would involve win + left snapping a window that is not currently in any zone (just floating), to the lowest available (not occupied by another window) zone number. win + right would snap a window that is not currently in any zone (again, just floating), to the highest available zone number.
And then once a window is in a zone (not floating) win + left and win + right will move the window up and down zone numbers respectively, preferable skipping zone numbers that are already occupied by another window, like you suggested in an earlier comment.
I think this would fix the unpredictable nature of the current win + left and win + right overrides.

@jarodburchill
I've changed the resolution from "won't fix" to "duplicate" (of https://github.com/microsoft/PowerToys/issues/554) you can up-vote https://github.com/microsoft/PowerToys/issues/554, as you can see it was opened back in October and it hasn't receive significant feedback from the community.


Fix interface mismatch issue #175

fix the issue of lack const

Do we need change VaapiDecSurfacePool::recycle(VideoRenderBuffer * renderBuf) to const?

yes, we need change it too, I will update the commit, thanks

Changed VaapiDecSurfacePool::recycle(VideoRenderBuffer * renderBuf) to const. please help review the new commit, thanks

+1,and please push and reply #175, thanks.


Website: Choosing certificate with longest remaining validity

Pull Request (PR) description
Update Website resource so that when a subject is specified and multiple matching certificates are found, the resource will use the certificate with the longest remaining validity period based on the "NotAfter" property of the certificate.  It also excludes certificates from consideration when they do not have a Private Key available.
This Pull Request (PR) fixes the following issues

Fixes #578
Closes #579

Task list

[x] Added an entry to the change log under the Unreleased section of the file CHANGELOG.md.
Entry should say what was changed and how that affects users (if applicable), and
reference the issue being resolved (if applicable).
[ ] Resource documentation added/updated in README.md.
[ ] Resource parameter descriptions added/updated in README.md, schema.mof and comment-based
help.
[ ] Comment-based help added/updated.
[ ] Localization strings added/updated in all localization files as appropriate.
[ ] Examples appropriately added/updated.
[x] Unit tests added/updated. See DSC Community Testing Guidelines.
[ ] Integration tests added/updated (where possible). See DSC Community Testing Guidelines.
[x] New/changed code adheres to DSC Community Style Guidelines.

This change is

:@Joe-Rennert great work on the tests! 🙂

Will merge as soon as the tests passes, I had to kick them off again because one failed on an unrelated error. 🙂


Now treetest command can get file argument for taken_list

Now treetest command can get file argument by -f or --file command line argument.
Implemented for testing tree evaluation.

Good.


[Bug] 无法使用Deploy部署 Unable to deploy with Deploy

Bug Description
无法使用Deploy部署
Unable to deploy with Deploy
Steps to Reproduce
1.转到开始使用

Go to Getting Started
点击Deploy
Click Deploy
3.提示404，该页面不存在
prompt 404, the page doesn't exist.

Expected Behavior
可以使用Deploy部署
Deployments can be made using Deploy
Screenshots

Deployment Method

[ ] Docker
[ ] Vercel
[ ] Server

Desktop OS
Windows 11
Desktop Browser
Microsoft Edge
Desktop Browser Version
126.0.2592.24
Smartphone Device
No response
Smartphone OS
No response
Smartphone Browser
No response
Smartphone Browser Version
No response
Additional Logs
No response

fork之后用vercel连接你fork出来的那个仓库


SSR behaviour is different vs RRv7, Vinxi and Router

Preamble: I know this a difficult one and I don't mind if [the team] decides to put it aside until React 19 is out and to then refactor SSR.  I do appreciate that Remix is ahead and thus works fine.  [see tanner blurb below]
Which project does this relate to?
Start
Describe the bug
Hello,
Sorry about the title.  I really didn't know how to express what the issue is exactly.  I am completely new to Vite and I don't yet understand how it's inner workings works.
The problem is to do with SSR and Start.  I either have a case of

the libraries that I am using are either being removed, mangled, or something else.  It's not operating how it should be.
I add in emotion to the mix and then get a whole bunch of other errors.
Other errors such as missing default:  prop-types, react-is, flush-sync, hoist-non-react-statics and html-react-parser...

I don't believe as it's an issue with my code.  As Router has never complained, Vinxi has worked with 2 different versions of my code.  RRv7 worked immediately.  I believe this is how SSR works with Start.  Possibly this will be fixed with React 19 as it would make things better?
I have a stackBlitz, which I swear.  It was working 😂 and then I refreshed and stopped working.  It now says:

Uncaught Error: This Suspense boundary received an update before it finished hydrating. This caused the boundary to switch to client rendering. The usual way to fix this is to wrap the original update in startTransition.

I also have multiple repos:
RRv7:
https://github.com/paulm17/rrv7
Vinxi:
https://github.com/paulm17/vinxi
Router:
https://github.com/paulm17/tanstack-router
Start:
https://github.com/paulm17/tanstack-start
Note: I have omitted Emotion integration with Start.  As I get a cascade of other failures.
I actually get a different error than stackblitz, see: https://github.com/TanStack/router/issues/2533
Finally,
The repos are the minimal that I can get it.  Unfortunately all the other code is based in repos:
Stylefusion: https://github.com/paulm17/stylefusion
Raikou: https://github.com/paulm17/raikou
It's going to be difficult to make a minimal example.
Your Example Website or App
https://stackblitz.com/edit/tanstack-router-sx9kkj?file=package.json,app.config.ts,app%2Froutes%2Findex.tsx,app%2Froutes%2F__root.tsx&preset=node
Steps to Reproduce the Bug or Issue
Either check the stackblitz version or clone the Start repo.
Expected behavior
RRv7 repo is how this should work.
Screenshots or Videos
No response
Platform

OS: mac 12.6
Browser: Chrome
Node: 22.11.0

Additional context

I have updated the rrv7 repo.  As it would work and sometimes vite would trigger "optimising dependencies" and then the HMR process would repeat and then errors would occur.
Here's a video of it working but with the HMR errors process.
https://streamable.com/i857nl
If you asked me a week ago if I hate anything?  Nope.

According to: https://discord.com/channels/719702312431386674/1306988800622329918
There is an SPA mode being thought about:
we are aiming for a SPA mode for start
this will render everything on the client
but will still allow you to use server functions
but it's just an idea right now

Happy to wait for this also...

So I have been testing rrv7 and it's a combination of...

it works
it fires up 100x HMR processes and either succeeds or fails: https://streamable.com/i857nl
it comes up with a new error raikou hooks package missing

Tbh, after 3 days of fighting issues like this.  I'm kinda done with the whole vite SSR thing...


configuration.addOnSendError potentially triggered multiple times without any matching events in the Bugsnag dashboard

Describe the bug
For some color, we use the configuration.addOnSendError block as a hook to send an event through our internal events pipeline. Recently, we've seen an increase in App Hang and Out of Memory events sent to our internal events db without ANY matching events in the Bugsnag dashboard for some users. For example, a single user has emitted 9k+ app hang events to our internal db and none to Bugsnag. These generally occur sometime after app launch and in rapid succession. We haven't been able to reproduce this yet, but we're trying to understand under what circumstances addOnSendError might be invoked multiple times for the same event. If Bugsnag fails to upload the event, would this block be invoked on retry, for instance?
We considered the possibility that our analytics publisher could be the culprit, but all events go through the same pipeline and these are the only events we see multiples of. Let me know if there's anything I can clarify or questions I can answer.
Steps to reproduce

No repro steps at this time

Environment

Bugsnag version: 6.16.1
CocoaPods version: N/A
Carthage version (if any): N/A
iOS/tvOS/macOS version(s): iOS 15.2
Simulator or physical device: Device
Xcode version: Xcode 13.2.1
Swift version (if applicable):

Example Repo

[ ] Create a minimal repository that can reproduce the issue
[ ] Link to it here:

Example code snippet
# (Insert code sample to reproduce the problem)

Error messages:

Hey @cwalo, to clarify the behaviour and methods here: the addOnSendError is called once every time you make a call to this method, most likely when you're creating the BugsnagConfiguration object before calling Bugsnag.start(with: config). The OnSendError block (which you're adding in the config), is called each and every time an error is attempted to be sent, with one difference:

in versions < 6.15.2: OnSendError changes to the event are persisted regardless of whether this send completes.
in versions >= 6.15.2: OnSendError changes are not persisted to the event if delivery needs to be retried.

So to answer: "If Bugsnag fails to upload the event, would this block be invoked on retry, for instance?", the quick answer is yes! However, this retry only occurs when the event store is flushed under the following conditions, so I would not expect this to 'spam' a load of events in quick succession:

a new event is to be sent
the network connectivity state changes
the app starts, and Bugsnag is initialized.

For the 9k events that user sent through, were they unique? Or do they appear to be the same error repeated 9k times? One key reason that you might be seeing data in your db, but not on Bugsnag is if the event is getting rejected at the Bugsnag server for one of a few reasons like the error is discarded, the error payload is malformed, the event class or context is discarded, your organization or project is getting sampled? If you drop us a message at<EMAIL_ADDRESS>with some more details of the events you're seeing and what project you'd expect to see them on Bugsnag we can investigate this a little further.

For the 9k events that user sent through, were they unique? Or do they appear to be the same error repeated 9k times?

They appear to be exclusively fatal app hangs and out-of-memory events, which I would only expect to see once per app launch. For that reason, I'm led to believe they're for the same event.

Agreed – a (fatal) App Hang or OOM should only occur once per app launch by definition as the event would crash and close the application. What I mean to ask is are all of, or a subset of the events exactly the same, do the metadata and breadcrumbs match exactly? This would suggest that the event is being sent multiple times.
Additionally, are the payloads greater than 1MB? These would be rejected by the Bugsnag servers as they'd be oversize. It's unlikely for OOMs because these don't have stacktraces or threads included, but worth mentioning just in case.
Are you able to send over a sample of these events that you're seeing to<EMAIL_ADDRESS>so that we can investigate this a bit further?

We don't seem to log a unique identifier that might connect our internal events to an event in Bugsnag except for the the error message ("The application was terminated while unresponsive."), "type" (app_hang, app_crash, etc.), and the event's timestamp which are all captured at the moment our event is logged (not published) - this only occurs from the onSendError block. I'll follow up with you over email.

Continuing this conversation in email. For future travellers, this is not an issue that will affect normal Bugsnag usage, but sending payloads from an on error callback will require you to handle deduplication if a recoverable delivery error occurs as the callback will be called for each delivery attempt.

@xander-jones quick follow up. Is there a prescribed method of validating the payload size for the event?

Hey @cwalo, there's not a defined method for validating the payload size client-side I'm afraid. You could calculate the size of the properties in the BugsnagEvent in the callback to get a rough idea of the payload size, as the 1MB limit is calculated against the body of the payload.

Gotcha. I haven't been able to create a payload that large (as best I can tell, though it's not exactly trivial to re-implement the encoder that's used during upload) so I'm finding that scenario less likely, but a few follow ups:

Can you point me to where this payload size check happens? I couldn't find it.
Will bugsnag perpetually retry to send an event with a payload that's too large?
If for whatever reason the reachability class can't reach notify.bugsnag.com, will that trigger a perpetual retry? I saw the status page hasn't reported any outages, but stranger things have happened.
I've been able to reliably trigger duplicate onSend triggers by logging an event when in airplane mode and then reconnecting. That said, reachability doesn't seem likely to cause events to spam like this. In our production logs I can see that network reachability was fine and the createdAt and loggedAt timestamps are all within a second of eachother, all suggesting the app had a reliable enough connection. That said, I am seeing events logged that did not reach Bugsnag while testing the reachability scenario.

Thanks for your help with this!

Yep, that helps. What property of BugsnagEvent can I leverage for uniqueness? On the dashboard I see CrashReporter Key which appears to be a UUID, but I don't see that on the client. At this point I'm looking to log when we see a duplicate event and ignore it from the onSendError block.

@yousif-bugsnag Replied to the original email thread with @xander-jones and included some additional details. I never know what's safe to link to via Github issues.


The first item in the dropdown is not selected automatically

I've finally switched Thredded from jquery.textcomplete to textcomplete! https://github.com/thredded/thredded/pull/596
A couple of issues I've noticed:

There is no alternative to the previously emitted change event. I've worked around it like this:
textcomplete.on('select', () => {
  setTimeout(() => {
    textarea.dispatchEvent(new Event('input'));
  });
});

Opened #95

The first item in the dropdown is no longer focused automatically.
Fixed in #94.

I've finally switched Thredded from jquery.textcomplete to textcomplete! thredded/thredded#596

Great 👍

The first item in the dropdown is no longer focused automatically.

When I was developing jquery-textcomplete, some developers asked me how to stop the behavior. (Sorry, I cannot show you the related comments, because the repository no longer accepts issues)
In this case, asking developers who need this to use following code is much easier and simpler than providing dontSelectFirstItem parameter, so I decided to drop the behavior from textcomplete.
textcomplete.on('rendered', function () {
  if (textcomplete.dropdown.items.length) {
    // Activate the first item by default.
    textcomplete.dropdown.items[0].activate();
  }
});

Ah, OK, thank you


Package already exists

Hi there!
Just letting you know that the term Eloquence has been in use as a package name (my own) for a while, check it out. Basically just provides some basic extensions since Laravel 4.x. It's very similar in the sense that it's Laravel based, and is built to work with Eloquent.
https://github.com/kirkbushell/eloquence
Adding this here as some may get confused.

Yes, I noticed, but it was too late for renaming. These 2 don't duplicate any behaviour I guess anyway.

Too late? Rhumsaa renamed his UUID package which is the most popular one in PHP, long after people were using it.

FWIW this is the point in namespaces. kirkbushell/eloquence is different to jarektkaczyk/namespace.

That's not really the point.

Yeah, I agree that a different name would've been better, sure. A little research would've helped, but because of namespaces, it doesn't actually matter when adding a package :)

Exactly - namespacing isn't the issue, and never was. It's the fact that the package is identically named and is an extension to the same library - it can be confusing.

Okay, that we agree on :)


nixos/appimage: support both type-1 and type-2 appimages in binfmt

Description of changes
Test:

Download appimage build of kate from https://kate-editor.org/get-it/
Run it without appimage-run. It won't work.
Run it with appimage-run. Works.
Add the module to your configuration, rebuild system and run without appimage-run again. It works.

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Diff LGTM but I'd like to see a little more testing on v1 images.

I'll try to package hello-appimage-v1 and hello-appimage-v2

Diff LGTM but I'd like to see a little more testing on v1 images.

I'd leave this to anyone who wants to do this.
Appimage type 1 is deprecated and needs old version of appimagetool, and even if we cover one or a number of appimage type 1 executables, we still cannot guarantee that we cover all of them.
If you want to, you probably need to go through some old documentation, downloading the old tooling (thankfully it's also appimage), and then you can probably build a hello. I'm not very interested in doing this.

Even if it didn't work, that'd necessitate changes in appimage-run, not this module. Let's go.


v1.9.17 suddenly adds empty N1 segment to EDI files.

I was using v1.9.12, since then I have downgraded and upgrade 1 version at a time to verify which version introducted this.  It is v1.9.17, I have upgraded to 1.9.16 and up to that version the EDI comes out the same.  As soon as I upgrade to v1.9.17 I get an extra unwanted and empty N1 segement, IE
N1OTORIGIN
N1*\    *** This is suddenly here, only change was in upgrading libraries.  Unable to determine where this is coming from.  All the members of Origin appear to be NULL, expect CITY and SATE members.
N4CITYKS
N1DTDESTINATION
N3STREET ADDRESS
N4CITYKS
FGSRMKXXXXXX\
I can't share actual EDI, would probably take too much to sanitize one.  Below is the pertainent class definition and encompassing class.

         // Segment(s) are include as an list (ie a loop)

         // Name Loop (N1)
         public List<NameSegment> NameSegments { get; set; }

         // Location Loop (N4)
         public List<LocationSegment> LocationSegments { get; set; }

         // Form Group Segment Loop (FGS)
         public List<FormGroupSegment> FormGroupSegments { get; set; }

         // Related/Relevant Class Segment Declarations
         [EdiSegment]
         public class LocationSegment
         {
            [EdiCondition("OT", Path = "N1/0")]
            public OriginSegment Origin { get; set; }

            [EdiCondition("DT", Path = "N1/0")]
            public DestinationSegment Destination { get; set; }
         }

         [EdiSegmentGroup("N1")]
         public class OriginSegment
         {
            [EdiValue("X(2)", Path = "N1/0", Description = "N101 - Name Qualifier")]
            public string EntityId { get; set; }

            [EdiValue("X(35)", Path = "N1/1", Description = "N102 - Name")]
            public string Name { get; set; }

            [EdiValue("X(2)", Path = "N1/2", Description = "N103 - Id Code Qualifier")]
            public string IdCodeQualifier { get; set; }

            [EdiValue("X(9)", Path = "N1/3", Description = "N104 - Id Code"),
             EdiCondition("TC", Path ="N1/2")]
            public string IdCode { get; set; }

            [EdiValue("X(18)", Path = "N4/0", Description = "N401 - City Name")/*,
             EdiCondition("TC", CheckFor = EdiConditionCheckType.NotEqual, Path = "N1/2")*/]
            public string CityName { get; set; }

            [EdiValue("X(2)", Path = "N4/1", Description = "N401 - State")/*,
             EdiCondition("TC", CheckFor = EdiConditionCheckType.NotEqual, Path = "N1/2")*/]
            public string State { get; set; }
         }

         [EdiSegmentGroup("N1")]
         public class DestinationSegment
         {
            [EdiValue("X(2)", Path = "N1/0", Description = "N101 - Name Qualifier")]
            public string EntityId { get; set; }

            [EdiValue("X(35)", Path = "N1/1", Description = "N102 - Name")]
            public string Name { get; set; }

            [EdiValue("X(2)", Path = "N1/2", Description = "N103 - Id Code Qualifier")]
            public string IdCodeQualifier { get; set; }

            [EdiValue("X(9)", Path = "N1/3", Description = "N104 - Id Code")]
            public string IdCode { get; set; }

            [EdiValue("X(35)", Path = "N3/0", Description = "N301 - First Street Address")]
            public string FirstStreeAddress { get; set; }

            [EdiValue("X(35)", Path = "N3/1", Description = "N302 - Second Street Address")]
            public string SecondStreeAddress { get; set; }

            [EdiValue("X(18)", Path = "N4/0", Description = "N401 - City Name")]
            public string CityName { get; set; }

            [EdiValue("X(2)", Path = "N4/1", Description = "N401 - State")]
            public string State { get; set; }
         }

I hope that is enough of an example/explanation of what I am seeing.  Let me know if you need anything else.

I got it to work with v1.9.17, but I had to comment out the EdiCondition("TC", Path ="N1/2")  on N1/3 in OriginSegment class.  Not I'm not sure that the condition needs to be there, but generally I don't put things like that in place, unless I run into a situation where it applies..  Could still be a bug, seems like v1.9.12-1.9.16 handled this EdiCondition differently (would seem correctly, as the N1/2 is OT not TC in this case.

I got it to work with v1.9.17, but I had to comment out the EdiCondition("TC", Path ="N1/2")  on N1/3 in OriginSegment class.  Not I'm not sure that the condition needs to be there, but generally I don't put things like that in place, unless I run into a situation where it applies..  Could still be a bug, seems like v1.9.12-1.9.16 handled this EdiCondition differently (would seem correctly, as the N1/2 is OT not TC in this case.

Hi @codewg and thanks for your interest in EDI.Net.
On first look it seems you have some misconfigured properties.

EdiSegment Attribute can only be used in a container class that hosts only EdiValue properties of the same segment tag (for example N1). So marking the LocationSegment as such would be wrong.
The EdiCondition segment cannot be used to discriminate databinding to Value properties (Component). It is used to discriminate different types of containers that cannot be distinguished only by their name tag (EdiMessage/EdiSegment/EdiElement) and a desision needs to be made using a component value from withing the segment itself. Thus any combination of EdiValue & EdiCondition would be invalid. Check an example here

Hi @codewg and thanks for your interest in EDI.Net.
On first look it seems you have some misconfigured properties.

EdiSegment Attribute can only be used in a container class that hosts only EdiValue properties of the same segment tag (for example N1). So marking the LocationSegment as such would be wrong.
The EdiCondition segment cannot be used to discriminate databinding to Value properties (Component). It is used to discriminate different types of containers that cannot be distinguished only by their name tag (EdiMessage/EdiSegment/EdiElement) and a desision needs to be made using a component value from withing the segment itself. Thus any combination of EdiValue & EdiCondition would be invalid. Check an example here


app crashes when an account from another book is opened via widget

Expected behaviour
The app should not crash but open the account linked to the widget.
Actual behaviour
The app crashes.
Steps to reproduce the behaviour

Have at least two different books in the app, book 1 and book 2.
Open book 1.
Create a widget (A) with an account X from book 1.
Open book 2. (Not sure if this step is neccessary.)
Create a widget (B) with an account Y from book 2.
Tap on widget A -> book 1 / account X opens.
Tap on widget B -> crash

Software specifications

GnuCash Android version: 2.1.1 beta
System Android version: 6.0.1
Device type: Sony Xperia Z3 compact

Fixed in ff894a5 (hotfix/patches).

Conflict disparate @nikopp

Hello @riszamohamad4 this project seems abandonned, but a couple of developers have gathered to revive it on a new organisation see https://github.com/codinguser/gnucash-android/issues/913. Could you add more context to your recent comment, what do you mean with "Conflict disparate"?
Maybe we can open an issue on the new repo, may be it will already be resolved within the scope of the revamp.


Making the duffle store transportable

In its current architecture, duffle limits the ability to have different users interact with the cli and perform bundle lifecycle actions on the same installation. If I want the ability to have another user or maybe a script in a CI system run subsequent actions on my installation, there's a bit of manual toil I need to do in order to make that happen.
I have to create a tarball of the duffle home directory every time the state changes and uncompress that tarball at the location where I want to run the subsequent command. This new location could be at a different workstation completely or at a later point in the CI pipeline.
I also have to make sure that the format of the duffle home directory works with the version of the duffle cli that I have available since there's no guarantee that the duffle home directory structure will work with all duffle cli versions.
In order to make this process less manual, we could incorporate some of the following changes:

Consider changes to duffle's home directory structure as a reason to ship new versions of the duffle cli
Make it easier to export and compress the contents of the duffle home directory.
Make it easer to import a compressed duffle home file into duffle's home directory.

I'm imagining something like this:
# a command for compressing duffle's home directory.
# with an optional --home-dir flag to specify the directory to compress

$ duffle carry out --home-dir ~/.duffle-home-staging

# a command for importing a compressed duffle file into the current home directory.
# with an optional --home-dir flag  to specify the home directory to import into.
# this command would overwrite the home-dir contents.

$ duffle carry in --home-file duffle-home-0.34.0.tgz --home-dir ~/.duffle-home-staging

Additionally, we could add safeguards where duffle carry out produces a tarball that contains a version file to track the duffle cli version. If the home-dir path was not empty, duffle carry in could check for a version file before overriding the contents in that directory and throw an error if the versions were mismatched.
I think there's some edge cases to consider for duffle carry in. What should the behavior be if the home dir being imported into is not empty? Should there be a --force option, or should it always overwrite the contents? It seems the simplest approach would be to overwrite.

The duffle home directory contains various subdirectories including bundles, claims, credentials, logs, plugins, and a repositories.json file. Would we want to export all these? Exporting credentials seems a bit risky.

Exporting everything would make it easier for the user to be up and running with duffle after running carry in in a new location. There will still be some amount of manual reconfiguration. Especially if files were used for parameters and credentials as files won't be guaranteed to exist in the new location.
Given that exporting credentials are risky and they may require reconfiguration anyway, we can make carry out exclude credentials by default. If users want to take credentials with them, they can opt in with a --include-credentials flag.


IGNITE-9676 Spring Session integration implemented.

Looks like a really useful extension. Is there a reason why this does not get merged?

May I know if there is any progress with this integration?


putted LinkedHashMap returns as a regular HashMap and not LinkedHashMap.

for some reason after getting stored LinkedHashMap from Hawk the object that returns if of HashMap instance and not LinkedHashMap.

Hawk internally only uses HashMap conversion only unfortunately.


Add Test Containers

It would be great to have some test containers that can be used to test that everything works as expected, for example Tomcat in different versions, using different Java versions.
The idea would be to create a minimal web servlet that creates an outgoing JNDI request to an URL that is passed as parameter. The servlet can then be deployed in different containers

Implemented with 279d5bdd5e6e7e93a4e5e8d81ba9c9a8b9807124.


opencascade: enable macOS build and add features

enable/fix macOS build and add options for TBB and GL2PS dependencies
VTK integration needed a patch because implicit conversions in initializer
lists are an error in C++11, which is the default in clang 7 used by nix.
Motivation for this change
I'm currently working on KiCad for macOS in nix. KiCad depends on Opencascade. Opencascade-occt works fine, but opencascade (OCE) was only enabled to build on Linux. I've enabled the build on macOS and it "works for me" on macOS 10.15.6, both building opencascade and using it as dependency in KiCad.
VTK-integration of opencascade threw 2 errors for me, both had to do with (implicit) conversions happening in initializer lists, which is illegal in C++11 (or 14?), which is the default in clang-7 (the compiler used by my nix). Upstream opencascade seemed to not have fixed that yet, but does also not include a specific C++ standard to compile with. I assumed this is a bug though and included a patch to make both those implicit conversion explicit, so it compiles fine. I'm not sure if this is the correct thing to do here, though, but, again it seems to work for me. I've enabled this patch only for macOS, since this seems to be not an issue on Linux for some reason, again, I'm not sure why.
I've also added options to build with TBB as parallelization/multithreading library, as well as GL2PS, which is an optional dependency of opencascade. Scripts to build KiCad had these options for opencascade enabled, which is why I added those options. The options are defaulted to false, to be backward compatible.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[x] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

LGTM. Please mark as ready for review.

Thanks.

Could replace meta = with stdenv.lib; { with meta = { now.

Done.

LGTM (aside from the fetchpatch failure).

Opencascade-occt works fine, but opencascade (OCE) was only enabled to build on Linux.

I'm not 100% sure I understand you.  opencascade-occt is the new, preferred, upstream version.  Our kicad package uses it by default.  If possible, you should use it on mac as well.

@gebner I do, I wasn't sure which opencascade to choose so I made it so it compiled and worked with both. Default is OCCT though. Thanks for letting me know OCCT is preferred though. OCE might still be used for other software though.


[BUG] Placement is not working

Placement is not working
Bug description
The placement prop is not working correctly in height-restricted containers. When setting place="top", the tooltip appears on the right or left side instead. Using the positionStrategy prop (e.g., "fixed") doesn't resolve the issue.
Version of Package
v5.26.3
To Reproduce

Render a tooltip inside a height-restricted container.
Set the place prop to "top".
Optionally set the positionStrategy to "fixed".
Observe that the tooltip does not position itself at the top as expected.

Expected behavior
The tooltip should appear at the top of the target element when place="top" is set, even in height-restricted containers.
Screenshots
The container has overflow-x: hidden applied and a maximum height set to 40px

code:

{trigger}

      <ReactTooltip
        id={id}
        clickable
        positionStrategy="fixed"
        place="top"
        opacity={1}
        delayHide={0}
        delayShow={0}
        className="!nk-z-50 !nk-bg-black !nk-rounded-[8px] !nk-p-0"
        openEvents={{ mouseenter: true, focus: true }}
        closeEvents={{ mouseleave: true, blur: true }}
        noArrow={false}
        arrowColor="black"
        {...props}
      >

          {children}

      </ReactTooltip>

Desktop (please complete the following information if possible or delete this section):

OS: Mac
Browser: Chrome
Frameworks React 18, Next.js 14.2.13

Additional context
Even when trying the positionStrategy prop (e.g., "fixed"), the placement remains inconsistent. Adjustments or additional options to ensure correct positioning in height-restricted containers would be helpful.
I came across a similar issue that was closed without providing a proper solution: https://github.com/ReactTooltip/react-tooltip/issues/692

I'm experiencing the same issue right now... How have you worked around this?


Have a super easy way to run different wasm runtimes on the same binary

A lot of chains only change the runtime and don't change the client code at all. Therefore it'd be great if there was an easy way to run a chain by just giving it a runtime wasm. This would ideally be done by a script of some kind.
Here's what should happen:

Substrate should be compiled ONCE.
You run a cli command with the path of a wasm blob as an argument.
The chain runs and starts producing blocks.

the chain spec already includes wasm as long as a valid chain spec is provided, there is no need to pass wasm blob.
we should just avoid build runtime natively and have a way to build dev chain spec and have it committed to repo so others can still run dev chain out of the box.

substrate --chain polkadot.json should work. Although it has been a while since anyone tested it.

I think the playground could benefit from this and contribute some ideas towards this effort. One that seems obvious is a containerized flow:
0. (one person) builds and publishes an image for "shell" node (with no runtime, or defaulting to a minimal one?)

(anyone) pulls image
builds rumtime wasm  if needed, or pull from published location
passes wasm blob to execute

In the parachain context, integration with https://github.com/paritytech/polkadot-launch would seem like a good fit
This also seems to be highly related to efforts in https://github.com/paritytech/smoldot , yes?

For native pallet dev, would it be helpful to be able to run in a dev shell mode where there was no networking, no forks and no consensus so that there was little to compile - just an uncontended local chain? (I'm guessing that may pull in only half the crates..)

In fact for projects like the bridge project that just need a shell node, we can avoid compiling substrate client at all and just compile the runtime.

I'm researching this now. First problem: new_full_client requires a NativeExecutionDispatch, which is created using the native_executor_instance! macro. As we're choosing whichever runtime we're using at runtime, we can only execute blocks using a non-native (wasm) executor.

Okay, I've gotten over that bump by using some hacks to use a WasmExecutor instead. The branch is up here: https://github.com/paritytech/substrate/compare/ashley-easy-builder.
Now I need to find a way to define RuntimeApi.

Okay, I've used cargo expand to expand out the generated runtime generation code, and have used that to make a basic impl of RuntimeApi. The next problem is trying to make a transaction pool.
FullPool::new_full requires Client::Api: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>, and the implementation of that requires validate_transaction.
validate_transaction in the generated code is implemented using Executor::validate_transaction, where:
/// Executive: handles dispatch to the various modules.
pub type Executive = frame_executive::Executive<
	Runtime,
	Block,
	frame_system::ChainContext<Runtime>,
	Runtime,
	AllPallets,
	(),
>;

/// All pallets included in the runtime as a nested tuple of types.
/// Excludes the System pallet.
pub type AllPallets = ((TransactionStorage , (Uniques , (Gilt , (Lottery , (Mmr , (Assets , (Tips , (Bounties , (Multisig , (Proxy , (Scheduler , (Vesting , (Recovery , (Society , (Identity , (RandomnessCollectiveFlip , (Historical , (Offences , (AuthorityDiscovery , (ImOnline , (Sudo , (Contracts , (Treasury , (Grandpa , (TechnicalMembership , (Elections , (TechnicalCommittee , (Council , (Democracy , (Session , (Staking , (ElectionProviderMultiPhase , (TransactionPayment , (Balances , (Indices , (Authorship , (Timestamp , (Babe , (Utility ,)))))))))))))))))))))))))))))))))))))))) ;

I feel like copying this is the wrong move, as we're specifically trying to create a node that doesn't need to think about runtime pallets.


MavlinkPassthrough low frequency callbacks

I'm using MavlinkPassthrough to subscribe to some topics, for example:
mavlinkpassthrough.subscribe_message_async(MAVLINK_MSG_ID_POSITION_TARGET_LOCAL_NED, setpoint_callback)
The callback is triggered only about 600 times on a 30 seconds flight (so at around 20Hz), while using MAVLink Inspector from QGC i can see that the topic is published at 50Hz. What am I missing?

Interesting. Are you checking this on the same link, so would it be the exact same number of messages?
I'm asking because different links from PX4 can send at different rates.

Right, so the rate might indeed be different. You can try to set the rate using the command https://mavlink.io/en/messages/common.html#MAV_CMD_SET_MESSAGE_INTERVAL.
Or you can set it on the PX4 side here:
https://github.com/PX4/PX4-Autopilot/blob/main/ROMFS/px4fmu_common/init.d-posix/px4-rc.mavlink#L26
using:
mavlink stream -r 50 -s POSITION_TARGET_LOCAL_NED -u $udp_offboard_port_local

By setting the rate with the command MAV_CMD_SET_MESSAGE_INTERVAL, I now receive the expected number of messages.
Thank you very much for your time.


libseccomp: 2.5.1 -> 2.5.2

Motivation for this change
Update to latest upstream release 2.5.2
Change log: https://github.com/seccomp/libseccomp/releases/tag/v2.5.2
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

@ofborg eval libseccomp


4.0.5 update

Added new recipes, and some adjustments to crafting formula.
The formula for 70** synths isn't quite right still, collecting data to adjust it.

Thanks!

Deployed.


Update Splashscreens

Gather splashs from the retropie forum.
Also I did the diff between the @taalas repository https://github.com/taalas/RetroPie-Artwork and I'll try to update with the splashs that he put together, hope it's OK!!! (please if you see this mention let me know!)

Done, added 34 splashs

Sure, no problem. We (me and @herbfargus) started the RetroPie-Artwork repository to collect everything that is produced for RetroPie graphically. I am currently extremely busy (and sadly have been for a while) because of personal changes, but I hope to get back to it soon.

Thanks @taalas !! Already updated, got more than 30 new splashs from your repo!! :)


Fix issue in check_schema

Handle error if the pdsc file under check doesn't list a
valid schema URL, i.e. the download fails. In this case
the schema check is skipped without causing an error.

Can you please promote the failing schema check to an error? Our indexing server does not accept PDSCs that are not validating, thus users need to do a schema check before submitting to the index.


Implement config driven LMM.

Description
Implement config driven LMM enablement in a2ha.rb file (Both for exisiting and AWS) - For Automate FE - Base Story
Need to add logic of installing Journal beat and Metrcis beat in case LMM is enabled in a2ha.rb config file.
Need to add this logic in below ruby service: https://github.com/chef/a2-ha-backend/tree/master/components/automate-cluster-ctl
Changes in the autocluster-ctl deploy cmd to consume the config.  - Logic for actions around enabling and disabling of LMM and ELK. - Error handling and existing flow should not break.
Acceptance Criteria
automate-cluster-ctl service should reach a capability of installtion two beats based on the flag consumed from a2ha.rb file.
Customer should get LMM disabled flag by default in .rb file and should have option to edit the same.
Remark
Be may opt for prometheus as well for LMM in case we find that route easier in adoption

Behaviour:  "automate-cluster-ctl config init -a existing_nodes/aws" will create a2ha.rb including lmm configuration as mentioned below. Then "automate-cluster-ctl deploy" will create terraform.tfvars, It will also reflect a2ha.rb config's as a terraform variable. That terraform variables then can be used to handle elk installation based on value. “logging_monitoring_management : true” this value also will be reflected into config.toml file so during deployment changes will be placed and we can turn on/off default logging.
####Logic for LMM configuration

LMM disable
    same as current flow

LMM enable
    elk false

            cust need to give url / pwd / port / cert

    elk true

            we will get from our terraform scrip

###Logic will be implemented in a2ha.rb file.
--------------------------------------------------a2ha.rb----------------------------------------------------
#If you want to enable default monitoring for automate and chef-server then leave it true otherwise make it false.
logging_monitoring_management: true
###If LMM is true then if you want to create a new elk then leave it true otherwise make it false.
elk: true
###If you want to use your already installed or configured ELK stack then make elk false for above line and provide your elk instance settings. below.
elk_instance_id=
elk_port=
elk_cert=
elk_username=
elk_password=

###terraform.tfvars will look like this. This file would be generated when deployment command get executed. Above settings will be reflected here. And using these variables we have to create elk stack.
------------------------------------------------------------terraform.tfvars-------------------------------------------------------
logging_monitoring_management = "true"
elk = "true"
elk_instance_id = ""
elk_port = ""
elk_cert = ""
elk_username = ""
elk_password = ""

To achieve enabling disabling this feature we should be able to enable/disable journalbeat-metricbeat config from config.toml file. Also we need to add elk configuration (ip,port,uname,password etc..)
Config will look like this:
[journalbeat-metricbeat]
   enable = true
   nodes  = [<IP_ADDRESS>:9200, 10.01.2:9200,<IP_ADDRESS>:9200]
   username = 'admin'
   password = 'plojhdfgert'

Based on above value, automate-backend-ctl command will set value based on user inputs.
scenario 1: User will set below options
lmm: true
elk: false
They want use default logging and don't want separate elk.
scenario 2: User will set below options
lmm : true
elk : true
Need to create elk and supply configuration detail to config.toml.
scenario 3: User will set below options
lmm:true
elk:false
elk_ip:
elk_port:
elk_username:
elk_password:
User wants to use their own elk. In this case also we need to supply above configuration details to config.toml
So on last 2 scenario, we have to supply configuration to config.toml as we defined above

Done necessary changes on my branch.
https://github.com/chef/a2-ha-backend/tree/meet58/logging-management

Created a PR:
https://github.com/chef/a2-ha-backend/pull/492


[Bug] Wheel scroll for scale factor is too big on Chrome.

Attach (recommended) or Link to PDF file here:
https://mozilla.github.io/pdf.js/web/viewer.html
Configuration:

Web browser and its version: Chrome Version 112.0.5615.138 (Official Build) (64-bit)
Operating system and its version:  Windows 11 home  v22621.1555
PDF.js version: v3.6.84  https://mozilla.github.io/pdf.js/web/viewer.html
Is a browser extension: no

Steps to reproduce the problem:

Press ctrl + wheel to scale the PDF.
Just wheel scroll one step, the PDF will change from 100% to 190%. The scale factor is too big.

What is the expected behavior? (add screenshot)
On Firefox, the PDF will change from 100% to 110%. It is correct.
What went wrong? (add screenshot)
Link to a viewer (if hosted on a site other than mozilla.github.io/pdf.js or as Firefox/Chrome extension):

Hi, Im working on this issue rn...kindly assign it to me, I've reduced the zoom size quite a bit and am working on making it like firefox.

This issue might be due to the fact that the user has set their OS-level scroll settings to a higher value (see https://github.com/shivaprsd/doqment/issues/18#issue-2496954193).
@Snuffleupagus Will it be feasible to add a viewer option to control the zoom step size per scroll step, possibly in percentages?

Will it be feasible to add a viewer option to control the zoom step size per scroll step, possibly in percentages?

No, since everything adds maintenance/support burden and this issue only affects Chromium-based browsers.

Will it be feasible to add a viewer option to control the zoom step size per scroll step, possibly in percentages?

No, since every option adds maintenance/support burden and this issue only affects Chromium-based browsers.

If that's the argument then why support Chromium at all? All that support code is maintenance/support burden.
Do, or do not, as a muppet once said.


Tern is not pulling data from cache

Describe the bug
Tern isn't pulling data from cache.yml
To Reproduce
Steps to reproduce the behavior:

Clear cache by running tern -c
Run tern report -i <image> -f output.txt
Run step 2 again
Look at tern.log and you will see messages that it is running the commands again rather than retrieving the metadata from the cache.
Look at cache.yml. It is populated.

Expected behavior
Tern should be able to retrieve cached layers. What I think is happening here is that there are two copies of cache.yml and when tern loads the cache, it is loading it from the copy that isn't populated.
Environment you are running Tern on
Fedora 29 VM
Please attach files if they exist

tern.log
report.*

The problem is that the cache is not recording image information.


When a player dies "trying to escape" it does not count as bounty kill

This should be changed so it will count

Looks like the attacker in LivingEntity gets set to null after 100 ticks again:
if (this.attacker != null) {
            if (!this.attacker.isAlive()) {
                this.setAttacker(null);
            } else if (this.age - this.lastAttackedTime > 100) {
                this.setAttacker(null);
            }
        }


component_fix_v1

This change is

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

#2356  👈 (View in Graphite)
#2311
#2308
#2303
main

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


High level API redesign

I want to go away from schema, mostly because now schema-based features are all mixed together between Arche, Matt and standard schema.
I am thinking about fastai-like parameters https://docs.fast.ai/tabular.data.html#TabularList:
a = Arche(data, cat_names=["size"], cont_names=["price"], uniques=["id", ("url", "title", "price")])
So then duplicates will use uniques, i.e. check if all id are unique and all rows have unique url and title
Categories will use cat_names
cont_names is just an example, but can be used to determine numerical data, and then plot some stats like deviation, percentiles and such.
Thoughts?
@ejulio @raphapassini @victor-torres @alexander-matsievsky

This is a good idea.
Probably it would be easier than jsonschema to write some validations and checks :smile: .
Since, we don't need to bother about names, I'd suggest to use full names instead of abbreviations. In this case, category_names over cat_names.
If cat_names is a list of categories, I'd go with categories and if they are columns in the df then category_columns.
Same follows for other criteria.
Another idea is that, data shouldn't go with Arche.
I'd prefer to instantiate Arche as check template and then feed any data trough methods.
This would be a good fit for multi-job checks.
# since configs are arguments, we could write a jsonschema to arche params for example
a = Arche(my configs here)

a.report_all(job1_data)
a.report_all(job2_data)

@ejulio

Since, we don't need to bother about names, I'd suggest to use full names instead of abbreviations. In this case, category_names over cat_names.

I kind of started to like these abbreviations after getting familiar with fastai. The learning curve is the same since you have to check docstrings anyway, but with shorter names the code is smaller.

Another idea is that, data shouldn't go with Arche.

I suggested something similar in #69
source_items = Items.from_something(start, count)
target_items = Items.from_something(start, count)

# since configs are arguments, we could write a jsonschema to arche params for example
a = Arche(schema, categories, continuous, uniques)

a.report(source_items)
a.report(target_items)

a.compare(source_items, target_items)

I believe that the process of using JSON Shema with tags is a very good one because it covers a lot, we are already experienced with it, etc. If there an idea to change this approach to an other one then I suggest to keep the current one and add one more and give a user the chance to choose between them


feat: Added mark components as favorites and unfavorites feature successfully issue 123

Pull Request Resolves [#123 ]
Title: Added mark components as favorites and unfavorites feature.
Description

In backend: I created a new prisma schema for storing fav/unfav posts in database.
Also created routes and controller for 3 operations, -Favorite -Unfavorite -FetchFavorite posts respectively.
In Frontend fetch and posting operation is done, new file is created called Favorite where all fav posts are fetched.
By clicking heart icon user can fav/unfav a post.

Related Issues
Fixes #123
Changes Made
New features: Adding mark components as favorites/unfavorities.
Screenshots

Video Demo
https://github.com/VaibhavArora314/StyleShare/assets/120380073/817a29d3-7105-4fbd-b183-a5090722b053
I certify that I have carried out the relevant code of conduct and provided the requisite screenshot for validation by submitting this pull request.
Thank You for this contribution.

@VaibhavArora314 Tell me other features you like to see in future >_<

@VaibhavArora314 Done the changes as requested !

also @VaibhavArora314 assign me issue #126 :)

also @VaibhavArora314 assign me issue #126 :)

I have asked the assigned person, if he is inactive or not working on it anymore then you can work on it

remove /:id from the route to get favorite posts

then how i will able to fetch their fav posts ?

@VaibhavArora314 sir, I checked and tested the whole feature and it's working fine ...


Copyright symbol has been mistakenly placed in footer

Describe the bug
A copyright symbol has been mistakenly put in the footer despite the open-source nature of the project
To Reproduce
Steps to reproduce the behavior:

Go to Dashboard/any other page
Scroll down to the footer

Expected behavior
There should ideally be a copyleft symbol instead of the copyright
Screenshots
Copyright Symbol in the footer

Desktop (please complete the following information):

OS: Windows 10
Browser: Chrome

Additional context
None

The footer statement is entirely wrong. All rights reserved should never be there. Request removal and addition of some open-source friendly footer

I'll take this

Assigning the issue to @LordBrud because he commented first.

Fixed with #9


Feature toggleability

Datafile Parsing
Decision Service changes
Unit tests

TEST:

sh ./Scripts/build_all.sh PASSED
sh ./Scripts/local_travis.sh PASSED
4x Analyze PASSED
8+1, 7+1 test suites PASSED
2 demo apps PASSED


Media query to resize the "Sign Up For Hack Upstate XI" CTA

Can we add a media query to resize the "Sign Up For Hack Upstate XI" CTA for mobile?

Done