fixes #670

Coverage decreased (-0.01%) to 42.0% when pulling 2df2382b8c0b28e5b912e0577a99200e212a6776 on fix_nested into d6e8db86cccea8faf73048c657d6771d4c69b938 on deploy_20150330.


issue: Accessing form state disables default values

Version Number
v.1.4.2
Codesandbox/Expo snack
https://codesandbox.io/s/black-mountain-14xil1?file=/src/App.tsx
Steps to reproduce

Default value 'hello' appears in text field.
Go to line 35 - (where you pass the result of useForm() to your form), uncomment the line and refresh.
Default value doesn't appear in the text field anymore.

Expected behaviour
Default values passed into the form should appear even when form state is accessed.
Relevant log output
No response

fixed in v1.4.3, thanks for the repro

Just upgraded, but now getting a warning 'Cannot update a component (...) while rendering a different component (...).

shit. going to revert for now

you can use
useForm({
  defaultValues: {}
})

for now. I'm not sure there's a way to make it work with the prop if that didn't work

Before the fix my work around was skipping default values altogether and using reset with useEffect to set the form values on mount.
  const form = useForm<z.infer<typeof FormSchema>>();
  const { reset } = form;

  useEffect(() => reset({ text: "hello" }), [reset]);

  return (
    <div className="App">
      <Form
        form={form}
        schema={FormSchema}
        onSubmit={(data) => {
          console.log("Got the data");
          console.log(data);
        }}
        renderAfter={() => <button>Submit</button>}
      />
    </div>
  );

That's what I should've done first =D.
Just released v1.4.5 with this included


Subscripted If Then Else

We need to ensure that the function if_then_else(condition, val_if_true, val_if_false) appropriately handles the cases in which the condition and the true/false values are subscripted. It may be the case that one or more different combinations are subscripted, or that the subscripted values have different dimensions.
Steps for doing this are probably along the lines of:

Identify the various possible (valid) vensim combinations of subscript usage in IF THEN ELSE
Create a vensim model file test case to exercise all of these options, for integration testing
Create python unit tests of the if_then_else function evaluating the major elements in unit_test_functions
Modify the if_then_else function to pass tests

@enekomartinmartinez - can you check that we have a test for this in the test models repo, and link it to this issue?


PHP Version Break

If i use php version 5.6.*, i have to select xml package version 1.5.0.
and it's ok, but package also requires sabre/uri latest version that only supports php version 7 or more.

If you run composer on PHP 5.6, the correct package will be selected. This problem only occurs if you run composer on PHP 7.
If you don't like this, you can specify a specific sabre/uri package version in your own composer.json


Map click listener (no symbol selected)

Right now it's only possible to listen to clicks on symbols. But I want to deselect the symbols when clicked on the map and not on a symbol. Right now there isn't an easy way to know if the user clicked on the map.
Also it would be awesome to make it a little more extensible. Maybe allow the overriding of the MapClickResolver, so we can handle our own click handling.

It seems to me that you can already add a clickListener on the map using mapboxMap.addOnMapClickListener(...);.

@Ph0tonic Unfortunately not. addOnMapClickListener is also used by the plugin and is the default way to see if a symbol is clicked. So if I add another addOnMapClickListener it just calls both methods. But there is no way to check if just the map was pressed or a symbol.

You are right, this has been fixed but has not been released yet, see #966 and PR #1124.

@Ph0tonic Awesome! I will close this issue then

0.9.0 has gone out and should resolve this ticket. https://github.com/mapbox/mapbox-plugins-android/issues/1149. Please re-open and comment if this issue is still being seen.


Not Working with Cupertino APP

No MaterialLocalizations found.
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Use the widget under CupertinoPageScaffold

Solved by adding the following arguments into CupertinoApp
localizationsDelegates: const [
        DefaultMaterialLocalizations.delegate,
        DefaultCupertinoLocalizations.delegate,
        DefaultWidgetsLocalizations.delegate,
      ],


VE: row names should be bolded to be consistent with dataframe

...

Need to check how complex expressions are going to look like. DemiBold may be a compromise. Locals are not bolded.

Not entirely convinced...

I don't think they should be bolded. In VE, rows are just children, there's nothing special about them at all.

(and note that all the @-stuff are also children, but are not rows)

Bump up font size instead?
On Friday, April 8, 2016, Mikhail Arkhipov<EMAIL_ADDRESS>wrote:

Not entirely convinced...
[image: image]
https://cloud.githubusercontent.com/assets/12820357/14399266/c5f8094a-fd9f-11e5-8430-76f7155b2725.png
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/Microsoft/RTVS/issues/1515#issuecomment-207634928

Then values are going to be visible smaller in the tall row...

👎  whatever we have right now is better (non bolded, all same size)

Yeah... 👎

Naaa.
On Friday, April 8, 2016, Mikhail Arkhipov<EMAIL_ADDRESS>wrote:

[image: image]
https://cloud.githubusercontent.com/assets/12820357/14399634/696a580a-fda3-11e5-9cbe-9f53a93243d3.png
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/Microsoft/RTVS/issues/1515#issuecomment-207641620

I don't think it's a big deal. If they want to view it as a grid, Grid View is there. Expanding a data frame directly is basically asking "let me view the internal structure", so there's no reason to do anything special there (because rows aren't really special).
In the future, it would be nice to enable grid nesting in VE, such that expanding a data frame would actually display a small grid with data as a child; with an option to switch to raw structural representation that we currently have. Since grid is a WPF control, it shouldn't be hard to nest it in VE, but we'll need to do multi-instance grids first.

Closing for now. We could perhaps shade first column differently but otherwise bolded appearance is not very attractive...


Capped collections do not behave as expected

FerretDB version
v1.18.0-51-g487fb986-dirty
Backend
PostgreSQL, only (I think)
Environment
dev
What did you do?
See repro in #4022.
What did you expect to see?
No cleanup (or a less aggressive cleanup) and oldest document removed when maximum size has been reached.
What did you see instead?
Changes in the number of documents due to periodic cleanups here which seem to trigger every minute and maximum size exceeded.

I see that these values are experimental and can be changed. However, we still do not remove / overwrite the oldest document when the max size is reached.
      --test-capped-cleanup-interval=1m                        Experimental: capped collections cleanup interval ($FERRETDB_TEST_CAPPED_CLEANUP_INTERVAL).
      --test-capped-cleanup-percentage=10                      Experimental: percentage of documents to cleanup ($FERRETDB_TEST_CAPPED_CLEANUP_PERCENTAGE).


Revert "Set AZURE_TEST_RUN_LIVE in pipeline"

Reverts Azure/azure-sdk-for-python#22902
This breaks many existing pipelines that pre-define AZURE_TEST_RUN_LIVE because it ends up getting defined+injected twice:
https://github.com/Azure/azure-sdk-for-python/blob/main/eng/pipelines/templates/jobs/live.tests.yml#L114-L115
            AZURE_TEST_RUN_LIVE: 'true'
            ${{ insert }}: ${{ parameters.EnvVars }}

For example:
{"$id":"1","customProperties":{"ValidationResults":[{"result":"error","message":"/eng/pipelines/templates/jobs/live.tests.yml (Line: 115, Col: 28): 'AZURE_TEST_RUN_LIVE' is already defined"}]},"innerException":null,"message":"Could not queue the build because there were validation errors or warnings.","typeName":"Microsoft.TeamFoundation.Build.WebApi.BuildRequestValidationFailedException, Microsoft.TeamFoundation.Build2.WebApi","typeKey":"BuildRequestValidationFailedException","errorCode":0,"eventId":3000}
FYI @mccoyp @scbedd

There are a couple ways we can fix this, either with the templates or removing the duplicate definitions from the tests.yml files, but I wanted to put up this revert to unblock any existing pipeline failures.


RFC: Add optional support for in-memory spatial index

This adds optional support for spatial queries backed by per-segment in-memory spatial indexes using the rstar crate. The type of geometry stored in the indexes is generic with the only requirement that it can be built based on a segment reader. Similarly, queries are internally generic so that it should be straight forward to support all query types which the underlying rstar crate supports.
I am not sure whether this is reasonable to include upstream as it is somewhat limited in scope by being based on in-memory spatial indexes. I do think it is useful in the generic form as the code does take care of all the necessary wiring around warmers and queries, so projects using Tantivy as a library can concentrate on their geometry. Finally, this could obviously also live in a separate crate, e.g. tantivy-spatial, but it is not enough code to warrant the extra ceremony IMHO.

Codecov Report

Merging #2130 (0195cad) into main (5fafe4b) will decrease coverage by 0.09%.
The diff coverage is 68.49%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##             main    #2130      +/-   ##
==========================================
- Coverage   94.37%   94.29%   -0.09%
==========================================
  Files         321      320       -1
  Lines       60821    60954     +133
==========================================
+ Hits        57401    57474      +73
- Misses       3420     3480      +60

Impacted Files
Coverage Δ

src/lib.rs
99.05% <ø> (ø)

src/spatial.rs
63.10% <63.10%> (ø)

src/core/index_meta.rs
96.14% <100.00%> (ø)

src/store/compressors.rs
97.70% <100.00%> (+5.51%)
:arrow_up:

src/store/decompressors.rs
97.82% <100.00%> (-0.39%)
:arrow_down:

src/store/mod.rs
99.20% <100.00%> (-0.03%)
:arrow_down:

... and 2 files with indirect coverage changes

@adamreichold I don't think we want to merge this.
Several users have been asking for a way to extend tantivy with datastructures. (For ANN) usually.
I wonder if we could provide a way for users to plug their own SegmentComponent as if it was a plugin.
It would require writing, merging, and some way to access those.
@bloodbare

I don't think we want to merge this.

Understood. As written if I really desperately want to share this, I can create a separate crate.

I wonder if we could provide a way for users to plug their own SegmentComponent as if it was a plugin.

You something that is persisted with the rest of the index instead of being created on-demand by a warmer? This sounds much more intrusive (w.r.t. the internals Tantivy needs to expose). Couldn't a warmer just handle its own serialization if required? Or maybe making the underlying directory available to it would already be enough?


Add configurable client to Python xDS Example

Include a configurable greeter client in the Python xDS example.
I've hard-forked the greeter client from the helloworld example so as not to clutter what should be the simplest example with command line parsing code.

Failures:

https://github.com/grpc/grpc/issues/23027


Why HAPROXY_DOMAIN ?

I've been using haproxy-consul for some weeks now and I still don't get the requirement of specifying the HAPROXY_DOMAIN environment variable for consul use.
Wouldn't it be easier to just define the acl in the tmpl file like this:
acl host_{{ .Name }} hdr(host) -m beg {{ .Name }}.
use_backend {{ .Name }}_backend if host_{{ .Name }}

Notice the dot following the second occurrence of {{ .Name }}. It is here to ensure that services don't get confused (for example "mail" and "mailinglist").
I'm not sure though how this would work on the marathon counterpart but I don't believe HAPROXY_DOMAIN should be a requirement for at least consul.
I went even further and extended the tmpl file for multiple domains use, using consul's tags for storing the domains under the form <domain>_<tld>.
Here are the relevant parts:
# Generated automatically by consul-template

#tagged services, tag is use for domain information
{{ range $tag, $services := services | byTag }}
{{ range $services}}
    acl host_{{ .Name }}_{{ $tag}} hdr(host) -i {{ .Name }}.{{ $tag |replaceAll "_" "." }}
    use_backend {{ .Name }}_{{$tag}}_backend if host_{{ .Name }}_{{ $tag }}
{{ end }}
{{ end }}

#not tagged services, the url starting part is used
{{range services}}{{if eq (.Tags |len) 0 }}
    acl host_{{ .Name }} hdr(host) -m beg {{ .Name }}.
    use_backend {{ .Name }}_backend if host_{{ .Name }}
{{ end }}{{ end }}

#backend definition for tagged services
{{ range $tag, $services := services | byTag }}{{range $services}}
backend {{ .Name }}_{{$tag}}_backend{{ range service (print $tag "." .Name) }}
   server {{ .Node }} {{ .Address }}:{{ .Port }}{{ end }}
{{ end }}{{ end }}

#backend definition for untagged services
{{ range services }}{{ if eq (.Tags |len) 0 }}
backend {{ .Name }}_backend{{ range service .Name }}
   server {{ .Node }} {{ .Address }}:{{ .Port }}{{ end }}
{{ end }}{{ end }}

There is a lot of room for improvement ;-)

By the way, the byTag requires consul-template version 0.9.0 or more. I upgraded the Dockerfile, works great.

That is pretty cool.
We used the HAPROXY_DOMAIN for simplicity of deployment. By changing the var and restarting the container we could easily move cluster DNS suffixes.

I see, but I feel that this domain information should come from consul itself.
When consul supports metadata as mentioned in http://gliderlabs.com/registrator/latest/user/services/ (Attrs field) it will be really easy to do.
I'm not sure that you need a DNS suffix anyway, it doesn't really add security.

We use the DNS suffix for external traffic.  First we create a wildcard dns like*.our-domain.com, and then set the HAPROXY_DOMAIN variable to "our-domain.com"

That's also what I did :)


OpenFGA v1.3.8 panic

Our CI just caught what looks like a regression in v1.3.8 as it was passing just minutes prior to the new release appearing on Github.
Stack trace looks like:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0xf6ad52]

goroutine 576 [running]:
github.com/openfga/openfga/pkg/server/commands.(*WriteCommand).Execute(0x1498c08?, {0x1487640?, 0xc00059fdd0?}, 0x2?)
	/home/runner/work/openfga/openfga/pkg/server/commands/write.go:68 +0x32
github.com/openfga/openfga/pkg/server.(*Server).Write(0xc0002ea000, {0x1487640?, 0xc00059fd70?}, 0xc0005934a0)
	/home/runner/work/openfga/openfga/pkg/server/server.go:527 +0x5cd
github.com/openfga/api/proto/openfga/v1._OpenFGAService_Write_Handler.func1({0x1487640, 0xc00059fd70}, {0x12284a0?, 0xc0005934a0})
	/home/runner/go/pkg/mod/github.com/openfga/api/proto@v0.0.0-20231201195548-7ad5c05e75ca/openfga/v1/openfga_service_grpc.pb.go:371 +0x75
github.com/openfga/openfga/cmd/run.(*ServerContext).Run.UnaryServerInterceptor.func34({0x1487640, 0xc00059fb00}, {0x12284a0, 0xc0005934a0}, 0xc0007aa3c0, 0xc0004d29a8)
	/home/runner/go/pkg/mod/github.com/grpc-ecosystem/go-grpc-middleware/v2@v2.0.1/interceptors/auth/auth.go:48 +0xb0
google.golang.org/grpc.getChainUnaryHandler.func1({0x1487640, 0xc00059fb00}, {0x12284a0, 0xc0005934a0})
	/home/runner/go/pkg/mod/google.golang.org/grpc@v1.59.0/server.go:1163 +0xb2
github.com/openfga/openfga/cmd/run.(*ServerContext).Run.NewLoggingInterceptor.UnaryServerInterceptor.func71({0x1487640, 0xc00059fb00}, {0x12284a0, 0xc0005934a0}, 0xc0007aa3c0?, 0xc00022ae00)
	/home/runner/go/pkg/mod/github.com/grpc-ecosystem/go-grpc-middleware/v2@v2.0.1/interceptors/server.go:22 +0x28a
google.golang.org/grpc.getChainUnaryHandler.func1({0x1487640, 0xc00059fb00}, {0x12284a0, 0xc0005934a0})
	/home/runner/go/pkg/mod/google.golang.org/grpc@v1.59.0/server.go:1163 +0xb2
github.com/openfga/openfga/cmd/run.(*ServerContext).Run.NewUnaryInterceptor.UnaryServerInterceptor.func69({0x1487640, 0xc00059fad0}, {0x12284a0, 0xc0005934a0}, 0xc0007aa3c0?, 0xc00022ad00)
	/home/runner/go/pkg/mod/github.com/grpc-ecosystem/go-grpc-middleware/v2@v2.0.1/interceptors/server.go:22 +0x28a
google.golang.org/grpc.getChainUnaryHandler.func1({0x1487640, 0xc00059fad0}, {0x12284a0, 0xc0005934a0})
	/home/runner/go/pkg/mod/google.golang.org/grpc@v1.59.0/server.go:1163 +0xb2
github.com/grpc-ecosystem/go-grpc-middleware/tags.UnaryServerInterceptor.func1({0x1487640?, 0xc00059fa70?}, {0x12284a0, 0xc0005934a0}, 0xc0007aa3c0, 0xc00022acc0)
	/home/runner/go/pkg/mod/github.com/grpc-ecosystem/go-grpc-middleware@v1.4.0/tags/interceptors.go:23 +0x9c
google.golang.org/grpc.getChainUnaryHandler.func1({0x1487640, 0xc00059fa70}, {0x12284a0, 0xc0005934a0})
	/home/runner/go/pkg/mod/google.golang.org/grpc@v1.59.0/server.go:1163 +0xb2
github.com/openfga/openfga/pkg/middleware/validator.UnaryServerInterceptor.func1.1({0x1487640, 0xc00059f9e0}, {0x12284a0, 0xc0005934a0})
	/home/runner/work/openfga/openfga/pkg/middleware/validator/validator.go:32 +0x86
github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/validator.UnaryServerInterceptor.func1({0x1487640, 0xc00059f9e0}, {0x12284a0, 0xc0005934a0}, 0xc0007b56f0?, 0xc000596ce0)
	/home/runner/go/pkg/mod/github.com/grpc-ecosystem/go-grpc-middleware/v2@v2.0.1/interceptors/validator/interceptors.go:23 +0x6d
github.com/openfga/openfga/pkg/middleware/validator.UnaryServerInterceptor.func1({0x1487640, 0xc00059f9e0}, {0x12284a0, 0xc0005934a0}, 0xc0007aa3c0?, 0xc00022ac80)
	/home/runner/work/openfga/openfga/pkg/middleware/validator/validator.go:31 +0x98
google.golang.org/grpc.getChainUnaryHandler.func1({0x1487640, 0xc00059f9e0}, {0x12284a0, 0xc0005934a0})
	/home/runner/go/pkg/mod/google.golang.org/grpc@v1.59.0/server.go:1163 +0xb2
github.com/openfga/openfga/cmd/run.(*ServerContext).Run.NewUnaryInterceptor.UnaryServerInterceptor.func65({0x1487640, 0xc00059f9b0}, {0x12284a0, 0xc0005934a0}, 0xc0007aa3c0?, 0xc00022ac00)
	/home/runner/go/pkg/mod/github.com/grpc-ecosystem/go-grpc-middleware/v2@v2.0.1/interceptors/server.go:22 +0x28a
google.golang.org/grpc.NewServer.chainUnaryServerInterceptors.chainUnaryInterceptors.func1({0x1487640, 0xc00059f9b0}, {0x12284a0, 0xc0005934a0}, 0xc000ab69f8?, 0x10dc380?)
	/home/runner/go/pkg/mod/google.golang.org/grpc@v1.59.0/server.go:1154 +0x85
github.com/openfga/api/proto/openfga/v1._OpenFGAService_Write_Handler({0x125ca60?, 0xc0002ea000}, {0x1487640, 0xc00059f9b0}, 0xc0007ba200, 0xc00041d700)
	/home/runner/go/pkg/mod/github.com/openfga/api/proto@v0.0.0-20231201195548-7ad5c05e75ca/openfga/v1/openfga_service_grpc.pb.go:373 +0x135
google.golang.org/grpc.(*Server).processUnaryRPC(0xc0003de960, {0x1487640, 0xc00059f920}, {0x148f980, 0xc000500680}, 0xc0007d4480, 0xc000318120, 0x1e2def8, 0x0)
	/home/runner/go/pkg/mod/google.golang.org/grpc@v1.59.0/server.go:1343 +0xe03
google.golang.org/grpc.(*Server).handleStream(0xc0003de960, {0x148f980, 0xc000500680}, 0xc0007d4480)
	/home/runner/go/pkg/mod/google.golang.org/grpc@v1.59.0/server.go:1737 +0xc4c
google.golang.org/grpc.(*Server).serveStreams.func1.1()
	/home/runner/go/pkg/mod/google.golang.org/grpc@v1.59.0/server.go:986 +0x86
created by google.golang.org/grpc.(*Server).serveStreams.func1 in goroutine 45
	/home/runner/go/pkg/mod/google.golang.org/grpc@v1.59.0/server.go:997 +0x145

The query which caused this was:
+ timeout --foreground 120 /home/stgraber/data/code/go/bin/incus storage delete test-pool --verbose
ERROR  [2023-12-05T02:01:44Z] stgraber: writes=&[] deletions=&[{Object:storage_pool:test-pool Relation:server User:server:incus}]
ERROR  [2023-12-05T02:01:44Z] Failed to remove storage pool from authorizer  error="Failed to delete tuple from OpenFGA store (user: \"server:incus\"; relation: \"server\"; object: \"storage_pool:test-pool\"): Post \"http://<IP_ADDRESS>:51589/stores/01HGVVBCJR9QWJSR6SZ83PATB8/write\": EOF" name=test-pool

This appears to hit the first time we send a write request with a deletion but no writes through the API endpoint.
Looking at our testsuite, all requests up till that point had something in writes.

Worth noting that we had a similar issue in the past which was the result of setting Writes or Deletes to be nil rather than an empty &[]client.ClientTupleKey{}.
We noticed this issue when we started using Chunks with:
opts := client.ClientWriteOptions{
    AuthorizationModelId: openfga.PtrString(f.authModelID),
    Transaction: &client.TransactionOptions{
        Disable:             true,
        MaxParallelRequests: 5,
        MaxPerChunk:         50,
    },
}

I'll do a quick test now with Transactions enabled and chunking disabled to see if that fixes the issue in our testsuite, though not an actual option as we occasionally do need the chunking to deal with > 100 writes or deletes.

Nope, setting it to Disable=false does not fix this issue, server is still panicing.

Starting a bisect from v1.3.7 to v1.3.8

The winner is aa0c8162003a389263ee27c6be6731773bda0147

Which is unfortunate as that's a single massive commit which also bumps a bunch of external dependencies, so not exactly easy to isolate.

diff --git a/pkg/server/commands/write.go b/pkg/server/commands/write.go
index 9abe998..98cf834 100644
--- a/pkg/server/commands/write.go
+++ b/pkg/server/commands/write.go
@@ -65,9 +65,11 @@ func NewWriteCommand(datastore storage.OpenFGADatastore, opts ...WriteCommandOpt
 func (c *WriteCommand) Execute(ctx context.Context, req *openfgav1.WriteRequest) (*openfgav1.WriteResponse, error) {
        if !c.enableConditions {
                tks := req.GetWrites()
-               for _, tk := range tks.TupleKeys {
-                       if tk.Condition != nil {
-                               return nil, status.Error(codes.InvalidArgument, "conditions not supported")
+               if tks != nil {
+                       for _, tk := range tks.TupleKeys {
+                               if tk.Condition != nil {
+                                       return nil, status.Error(codes.InvalidArgument, "conditions not supported")
+                               }
                        }
                }
        }

^ This avoids the crash here, no idea if that's the correct fix or if the issue should be handled before hitting this particular chunk of code, but it avoids accessing a property on a nil struct.

@stgraber could you also verify the v1.3.9 release is good? These changes were included in that release, so it should be good, but I just the confirmation to come from your end just to make sure we're good.

Hey @jon-whit, I just opened a PR against Incus now to revert our tests to using latest.
If that all passes, then we'll know that v1.3.9 is behaving. I'll let you know.

All good!


Proposal to recognize Aenigmatogrammitis, Boonkerdia, Grammitastrum, Howeogrammitis, Nanogrammitis, Oxygrammitis, Rouhania, and Thalassogrammitis (Grammitidoideae, Polypodiaceae)

Author(s) of proposal
Michael Sundue, Barbara Parris, LiBing Zhang
Name of taxon
Aenigmatogrammitis, Boonkerdia, Grammitastrum, Howeogrammitis, Nanogrammitis, Oxygrammitis, Rouhania, Thalassogrammitis
Rank of taxon
Genus
Approximate number of species affected
25
Description of change
Proposal to recognize Aenigmatogrammitis, Boonkerdia, Grammitastrum, Howeogrammitis, Nanogrammitis, Oxygrammitis, Rouhania, and Thalassogrammitis
Reason for change
Recent phylogenetic analyses have called into question the circumscription of Grammitis, Oreogrammitis, Prosaptia and Ctenopterella, and the following seven genera have been described as part of the taxonomic solution. These include Aenigmatogrammitis, Boonkerdia, Grammitastrum, Howeogrammitis, Nanogrammitis, Oxygrammitis, Rouhania, and Thalassogrammitis. While this is a large increase in genera housing a relatively small number of species (~25), Zhou et al. (2023) argued that recognizing these clades as genera is more congruent with their morphology and geography of the clades, and that the alternate solution of lumping them into available genera would undermine the coherence of the previously described genera.
It can also be said that the solutions proposed by Zhou et al. (2023) were not made in isolation but were the result of communication between many of the researchers actively working on grammitid fern systematics, signaling strong support for the recognition of these genera from that taxonomic community. Moreover, an earlier proposal (#72) related to this one to recognize Devolia, Calligrammitis, and Glabrigrammitis, passed in April 2024 (PPG Ballot #10).
Aenigmatogrammitis (endemic to Australia) and Oxygrammitis (Malesia) contain species that have been treated in Grammitis and Ctenopterella respectively. The former is sister to a clade containing Oxygrammitis and Acrosorus (Asia-Pacific), a relationship also found in earlier studies (Sundue et al. 2014; Bauret et al. 2017). These three genera were monophyletic in Zhou et al. (2023), and could potentially be united into a single genus, but given their morphological disparity, Zhou et al. (2023) concluded that treating them as distinct would be more appropriate.
Grammitastrum, Howeogrammitis, and Thalassogrammitis contain species that have been residing in Grammitis pending a taxonomic solution to the polyphyly of species in that genus. These three genera formed a strongly supported clade in Zhou et al. (2023), and could potentially be united into a single genus, but Zhou et al. (2023) suggest that because they are so morphologically distinct, treating them as three genera would be most appropriate. Moreover, there are no obvious morphological characters to define the clade formed by the three.
Howeogrammitis is endemic to Lord Howe Island, whereas the other two genera are endemic to New Caledonia. These three genera together are weakly to strongly supported as sister to Notogrammitis and the four together are sister to Ctenopterella s.str. These phylogenetic results were found by earlier studies as well, (Sundue & al., 2014; Bauret & al., 2017).
Species of Nanogrammitis and Rouhania are distributed in Africa and West Indian Ocean islands and contain species that were residing in Grammitis and Ctenopterella respectively. These two genera have been found sister to each other in phylogenetic analyses (Sundue & al., 2014; Bauret & al., 2017; our Fig. 1). All species of Nanogrammitis have simple laminae like those of Grammitis s.str., while all except two of Rouhania have pinnatisect laminae like those of Ctenopterella s.str. Considering their disparate morphology, Zhou et al. (2023) recognized them as distinct explaining that “It seems better to treat the two simple-fronded Grammitis pygmaea and G. nanodes in a Ctenopterella-dominant (pinnatisect-fronded) genus than to treat 6+ pinnatisect-fronded species of Ctenopterella in a simple-fronded genus”.
Following Zhou et al. (2023), the polyphyly of Ctenopterella sensu Parris (2007) is resolved by recognizing four genera: Ctenopterella s.str. (the C. lasiostipes clade), Boonkerdia gen. nov. (C. khaoluangensis), Oxygrammitis gen. nov. (C. denticulata), and Rouhania gen. nov. (the C. zenkeri clade + Grammitis pygmaea and G. nanodes). Boonkerdia differs from Ctenopterella s.str. in lacking setae and branched hairs with setae as branches. Boonkerdia is be distinguished from Tomophyllum by having a dorsiventral rather than a radial rhizome and in lacking setae. Oxygrammitis differs from Ctenopterella s.str. in having the lamina bipinnately to tripinnately divided, with the ultimate divisions of the lamina apically acute to acuminate. Rouhania is quite similar to Ctenopterella morphologically, but the two differs in geographical and are not phylogenetically close to each other. Although Boonkerdia, Devolia, and Tomophyllum form a clade together, Zhou et al. (2023) argue that they should not be combined; the clade has low support (<50%/<0.5), and the lineages are morphologically disparate.
Alternate proposal
Oxygrammitis could be combined with Aenigmatogrammitis into Acrosorus, but these are morphologically aberrant plants and the genus would not be easily diagnosed.
Howeogrammitis, Thalassogrammitis, and Grammitastrum could be combined into Notogrammitis, but these are morphologically aberrant groups and the genus would not be easily diagnosed.
Boonkerdia could be combined with Devolia into Tomophyllum but these are morphologically aberrant groups and the genus would not be easily diagnosed.
Rouhania and Nanogrammitis could be combined but these are morphologically aberrant groups and the genus would not be easily diagnosed.
Reference(s) for publication of the name
Zhou, X.M., Yang, J.J., Liang, Z.L., Pollawatn, R., Knapp, R., Parris, B., Sundue, M., Ranker, T.A., Zhou, L., Lu, N.T. and Luong, T.T., 2023. A global phylogeny of grammitid ferns (Polypodiaceae) and its systematic implications. Taxon, 72(5), pp.974-1018.
TAXON - 2023 - Zhou - A global phylogeny of grammitid ferns  Polypodiaceae  and its systematic implications (3).pdf
Grammitids tree.pdf
List the numbers of any related issues
#72
Code of Conduct

[X] I agree to follow the PPG Code of Conduct

@msundue do you mind editing your proposal to be actual text instead of an image of text? It is difficult to read on my screen, and may be for others as well. Thanks!

Thanks!

This proposal continues to cleaning process to adjust the generic classification of these ferns to reflect the most recent phylogenetic hypotheses and already accepted genera. It is therefore consistent with previous decisions despite the trend towards a high number of relative species poor genera is a bit worrying.

I would like to take a step back here and question whether we really need so many genera in the grammitids. Many of the genera consist of very few species and they are also hard to differentiate morphologically. I would much rather have just a few broadly circumscribed genera, which would also be helpful as a preliminary step in the species identification process (rather than something you look up after having identified the species). The smaller clades could still be recognised as subgenera, which would allow communicating the same phylogenetic information but would simplify the nomenclature considerably.

Htuom, I also pushed back against this classification within our grammitid working group for similar reasons. We considered other alternatives, but found this to be a balance of diagnosability, geography, and precedent.  I am now in favor of these current genera.
Like many groups, the grammitids pose some challenges when we try to adhere to monophyly. In some cases, you will see that we have in fact sunk morphologically distinctive groups into larger genera in which they are nested in order to minimize genera (e.g. Zygophlebia into Enterosora and Themelium into Oreogrammitis). In other cases, however, lumping did seem to simplify things to us.  This has resulted in several small genera, but these aren’t likely to muddle your life -- many of them are geographically restricted and not represented in many herbaria. Lumping these into other genera, we think, would cause more confusion. My justification for each case is further explained in the original post.

This proposal was voted on during PPG Ballot 13 (voting period September 2024). A total of 69 votes were cast. There were 57 'Yes' votes (82.6%) and 12 'No' votes (17.4%). The proposal passes.


#[derive(Module)] Module[Record|Item] types are public even when the module isn't

Describe the bug
I have a private struct that derives the Module trait. The generated *Record and *Item types are public (i.e. show up in documentation) even though the module itself isn't.
To Reproduce

Create a library crate
Create a private struct and derive the Module trait
Build the docs for the crate
The module struct isn't there (expected) but the generated *Record and *Item types are (unexpected)

Expected behavior
The generated structs should inherit the visibility of the module struct.
Version
burn 0.15.0

Makes sense, thanks for flagging that!
I just opened a quick PR that should resolve this issue. I validated by checking the macro expansion, but if you want to give it a shot you can check out the PR branch to try it with your stuff 🙂


Add NMF

Would be nice to have scikit-learn's NMF wrapped up for use with large Dask Arrays.

cc @marianotepper who may done some related work on this

Some relevant discussion in issue ( https://github.com/scisprints/2018_05_sklearn_skimage_dask/issues/7 ).
Also cc-ing @valentina-s.


Pair everytime on Android and Connect fail on IOS

I' m using NimBLE in ESP32(server), the SecurityAuth is:
NimBLEDevice::setSecurityAuth(BLE_SM_PAIR_AUTHREQ_BOND | BLE_SM_PAIR_AUTHREQ_SC);

ISSUE:
After several mobile phones(client) connected to the same ESP32, the connection fails on the IOS with the following error message:
Peer removed pairing information
And need to pair everytime on Android.

How to do with that?

How many devices are connecting to this? The default max bond count is 3, seems you need to increase this.

How many devices are connecting to this? The default max bond count is 3, seems you need to increase this.

Sorry, I didn't make it clear. The max bond count I set is 1:
#define CONFIG_BT_NIMBLE_MAX_CONNECTIONS 1

The situation is this device(ESP32) only connects to ONE phone at a time, and several phones will connect to it frequently for testing.

How many devices are connecting to this? The default max bond count is 3, seems you need to increase this.

Sorry, I didn't make it clear. The max bond count I set is 1:
#define CONFIG_BT_NIMBLE_MAX_CONNECTIONS 1

The situation is this device(ESP32) only connects to ONE phone at a time, and several phones will connect to it frequently for testing.

Oh NO! I completely confused connection and bond count o(╥﹏╥)o... @h2zero Sorry for wasting ur valuable time.
I rechecked the nimconfig.h, found that CONFIG_BT_NIMBLE_MAX_BONDS is commented, means the default value  3 is defined :
/** @brief Un-comment to change the number of devices allowed to store/bond with */
// #define CONFIG_BT_NIMBLE_MAX_BONDS 3

#ifndef CONFIG_BT_NIMBLE_MAX_BONDS
#define CONFIG_BT_NIMBLE_MAX_BONDS 3
#endif

Consider the limited RAM, is there any way to not allow device  to limit the bond number? (If this can solve the pair issue)

I think this is resolved in the latest commits in release 1.4 and master.
Calling NimBLEDevice::setSecurityInitKey(3); in older commits should also work;


testdata.go:611:1: exported function GetRandomRuleID should have comment or be unexported

testdata.go:611:1: exported function GetRandomRuleID should have comment or be unexported

This source has been moved into the insights-results-aggregator-data repository


Port and test text module for python 3.5

This PR ports text module to python 3.5 and adds tests for it.
Note: I've intentionally didn't touch a random sampling doctest, since I don't have access to the random seed used with that particular test.

Doctests that produce nondeterministic output like that should probably go into a .ipynb file, not a _test.py.

@norvig we can override the python's RNG seed to get a deterministic output. I think there should be tests for them as well. Otherwise it's hard to find errors for those.


PaperIconItem setActive nor working

I used the following from the latest SNAPSHOT:
  @UiField
  PaperIconItem button;

....
void doSomething() {
   button.setActive(true);
}

The function button.setActive(true); does not work. I have to use:
button.setAttributes("active");

Fixed in <IP_ADDRESS>


 This is why I don't call fanbases communities. People are bound to go uncivil.

What I've learned from another repo is when the creator sees this, they'll realize that when the comments are on, sometimes there are people who are prone to go... insult each other. This is why I don't call fanbases communities. People are bound to go uncivil.

i told you to stop giving me a dislike

Then, STOP BITCHING.

Only with admin/high premission in repo/organization can be removed:

Then link should opens 404 error for community and admin of repo should see who deleted.

why did you thumb mine down? They were kinda whining


DBeaver fails to show BLOB data in a table from a DuckDB database

Description
I am using dbeaver to view the contents of a database with a table that has a BLOB field; however, instead of data I see this:
DuckDBBlobResult{buffer=java.nio.DirectByteBuffer[pos=0 lim=2 cap=2]}
DBeaver Version
Community Edition <IP_ADDRESS>408181605
Operating System
xubuntu 22.04 LTS jammy jellyfish
Database and driver
DuckDB 1.0 with accompanying latest jdbc driver 1.0
Steps to reproduce

connect to the database and write a BLOB containing 2 bytes of any random data
close the connection with the database
open the database in dbeaver-ce
view the data in the table
you should see something like this:

node_id|data                                                                 |
-------+---------------------------------------------------------------------+
1      |DuckDBBlobResult{buffer=java.nio.DirectByteBuffer[pos=0 lim=2 cap=2]}|
2      |DuckDBBlobResult{buffer=java.nio.DirectByteBuffer[pos=0 lim=2 cap=2]}|
3      |DuckDBBlobResult{buffer=java.nio.DirectByteBuffer[pos=0 lim=2 cap=2]}|
5      |DuckDBBlobResult{buffer=java.nio.DirectByteBuffer[pos=0 lim=2 cap=2]}|
6      |DuckDBBlobResult{buffer=java.nio.DirectByteBuffer[pos=0 lim=2 cap=2]}|

Additional context
I also downloaded DBeaver for windows with the same result. However, DataGrip (software by JetBrains) shows the correct contents:

Thank you for bug report!

Hi all, I tried to find the piece of DBeaver code that extracts the Blob and renders it in the UI but have not been able to find that.
However, I looked into the DuckDB JDBC driver code (https://github.com/duckdb/duckdb-java/issues/70) and as far as I can see, code like:
Object value = resultset.getObject(column);
String strValue = value.toString();

Would result in the kind of values reported by @cloudcell.
Could you confirm if that is what is happening?
If this is indeed the case, then we at least can explain why we see the current behavior.
If this is a bug in the DuckDB Driver or not, is another matter.
Blobs are meant for storing binary data. There is no metadata that tells how the bytes in the blob should be interpreted. Of course, in java you can instantiate Strings from bytes, but this implies some sort of character encoding which is exactly the kind of metadata we don't have at this level.
I do get that for a tool like DBeaver the challenge is to provide a sensible display in the gui also for a blob result. An approach that I think would be sensible and correct is to show just the raw byte content, possible formatted (on the client side) using hex display, octal, or even ascii - but this would be in the real of the application, not of the driver.

https://github.com/orgs/dbeaver/discussions/35346


nodejs: fix cross compilation

Description of changes
tested building pkgsCross.riscv64.nodejs-17_x, (older versions of nodejs may not support riscv)

Things done

Built on platform(s)

[x] x86_64-linux
[x] riscv64-linux (cross)
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] 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
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 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
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

(cherry-picked to master for testing)
pkgsCross.aarch64-multiplatform.nodejs-17_x on nixos x86_64:
configure: error: argument --dest-cpu: invalid choice: 'aarch64' (choose from 'arm', 'arm64', 'ia32', 'mips', 'mipsel', 'mips64el', 'ppc', 'ppc64', 'x64', 'x86', 'x86_64', 's390x', 'riscv64', 'loong64')

nodejs 16 and 17 build happily on macos 10.15 though (non-cross).


Fix tsql_stat_get_activity() and irregular sys.dm_exec_sessions view output

Description
There seems to be 2 issues

We are incorrectly setting numLocalBackends(Static variable) for TDS in function tdsstat_read_current_status Check link vs how pg does it (Basic if logic bug)

We are using pg_stat_fetch_numbackends Function in tsql_stat_get_activity , which seems wrong because the status Array for pg vs tds BackendStatus are different so are the numLocalBackends variable.  Check Link

These bugs seem to exist from this commit onwards
Issues Resolved
BABEL-5219
Test Scenarios Covered

Use case based -

Boundary conditions -

Arbitrary inputs -

Negative test cases -

Minor version upgrade tests -

Major version upgrade tests -

Performance tests -

Tooling impact -

Client tests -

Check List

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is under the terms of the Apache 2.0 and PostgreSQL licenses, and grant any person obtaining a copy of the contribution permission to relicense all or a portion of my contribution to the PostgreSQL License solely to contribute all or a portion of my contribution to the PostgreSQL open source project.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>1
Details

10 of 10 (100.0%)  changed or added relevant lines in 3 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage remained the same at 74.226%

Files with Coverage Reduction
New Missed Lines
%

contrib/babelfishpg_tds/src/backend/tds/tds.c
2
92.84%

Totals

Change from base Build<PHONE_NUMBER>9:
0.0%

Covered Lines:
44663

Relevant Lines:
60172

💛  - Coveralls


Spotify connects but cant be "opened"

Hi,
I often have the issue, that spotify is connected, but cant be controled.
When entering the multi media menu, you see that spotify is detected and connected.
But as you click on that entry, nothing happens.
I can select tracks via my HUD, but I cant see Media Screen on the main screen ?
Have you seen this before
This is what it looks like, but I cant open this menu item.
When clicking on it, nothing happens.

On each first connection you need to select the app you wanna use and then select the AudioPlayer entry which will move to the display, after that you can always directly select the app of choice.

Do you have other music apps installed on your phone, that you would normally expect to see in that menu? I've seen a similar problem on Huawei phones where the phone will pause the app because it's in the background, and if you open up the phone interface then the initialization will continue and the car apps will begin responding.
As a further test of whether the entire app is paused, is the Notifications app similarly stuck at the same time?

@LACNR  I dont quite get what you mean
@hufman Yes. I would also expect Youtube and Audible to be visable in the App list, but they arent.
Also when unlocking the phone and starting spotify, is does not get "controllable" in the car.
As of today, no apps appear at all :/
What do you mean by "notification app" ?
Build 1.3.1-8-eaab847 10.11.2021 16:31:29

Some phone OSs will pause AAIdrive if AAIdrive is not running in the foreground, and apparently the foreground notification is not enough. Does the app initialization continue to create the Audible (while running) and Youtube apps in the car when you open the AAIdrive phone interface? Opening the underlying music app won't change this, it's AAIdrive or it's connection to the car that is getting stuck.
If you enable the Notifications tab (notification permissions are not needed for this test), you should see a new book icon in the car's Connected menu and Messaging menu. This icon, just like the Spotify icon, requires that the phone app reply to the car when you click it so that the car knows what screen to show next, and so it should behave the same way if Android is indeed pausing the app.

I installed todays nightly build and all seems fixed.
Build 1.3.1-18-bde9fd1 23.11.2021 23:27:26
I have more options in the connected drive menu again.
Spotify starts quick and is fully controllable
What did you do  :D

Hmmm I'm not sure which change between those commits would be the relevant one! I refactored the modules to be separate services, which might perhaps change some heuristics in the OS? I also slightly changed the behavior when detaching from a connected car which might keep the MainService as a Foreground Service for the next time you connect, but I haven't noticed much of a difference personally.
Hopefully it stays fixed for you!


Can't use ordered and count at the same time

(rspec-mocks 3.5.0, rspec 3.5.0)
So, here's the kind of thing I did:
allow(my_little_double).to receive(:my_little_method)

5.times { |i| my_little_double.my_little_method i }

expect(my_little_double).to have_received(:my_little_method).exactly(5).times
expect(my_little_double).to have_received(:my_little_method).with(0).ordered
expect(my_little_double).to have_received(:my_little_method).with(1).ordered
expect(my_little_double).to have_received(:my_little_method).with(2).ordered
expect(my_little_double).to have_received(:my_little_method).with(3).ordered
expect(my_little_double).to have_received(:my_little_method).with(4).ordered

Which fails saying "received :my_litte_method out of order" on the first have_received(...).with(...) line.
If I remove the count, the message can have been received more times than expected and still pass, if I remove the .ordered lines I have no way to check that the method has been called with the right arguments.
Shouldn't there be a way to check for both without retorting to splitting you spec in two?

Unfortunately, there are some bugs around ordered with spies.  See #916.  We haven't yet figured out a good fix. I believe your issue is related.


Cloudformation Deployment not working

Hello,
I'm trying to deploy the mongo-db-atlas quickstart using the template in a fresh aws account using a pretty fresh mongodb atlas organization. All MongoDB Atlas Resources that Cloudformation is trying to deploy get stuck on CREATE_IN_PROGRESS State and are failing after a while with an Internal Failure message. Maybe I'm Missing something obvious.
When following the quickstart guide, there is some information missing. Some cfn template parameters could have a better description, too. It would be great If you could enhance the docs.
My particular questions are:

[ ] Do I need to request MongoDB Atlas ressource quotas? If so, where can I do this, as I don't see them in the aws console?
[ ] In the section: Prepare your MongoDB Inc. account: What does appropriate permissions and network access entries, so that AWS CloudFormation can successfully authenticate the MongoDB cloud mean? I tried with an organization Level API Key, with network access <IP_ADDRESS>/1 Is this all to be done here?
[ ] I don't understand the Cfn Parameter CIDR block for VPC peering. When looking into the template.yamls this is the called RouteTableCIDRBlock and is used in the routing tables for the network peering, but as i just have a fresh MongoDB Atlas Organization I can not see, which CIDR Block I have to put here. (In the Atlas UI Network peering is available on Project Level only, but since I wan't to create the project using cloudformation, this does not make much sense to me)

Thanks for sharing. We are in the process of refreshing this Partner Solutions deployment, updates should be up next week. Will let you know when ready to re-test again.
Also as part of refresh we will address each of questions you raised above (cc: @poornatejakonathampi)

S3 error: The specified key does not exist. For more information check http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html
Is this related to the same?

I am having the same issue using the no-peering option. The error is in the mongodb-atlas-no-peering-Atlas nested stack on the resource "AtlasProject" with a status of create failed and a reason of..
Resource handler returned message: "Failed to Create Project : POST https://cloud.mongodb.com/api/atlas/v1.0/groups: 401 (request "") You are not authorized for this resource." (RequestToken: 6b75c854-89ef-e9aa-b8a6-5309ccdd4f31, HandlerErrorCode: AccessDenied)
On cloud.mongodb.com under the organization -> access manager -> API Keys I have a key created with an access list of 0.0.0/32 since <IP_ADDRESS>/0 isn't allowed.  I think if I could know more about what needs to be there to create the stack it would be very helpful.

Hello @dboschm,
Thanks for opening this issue. Could you make sure that the role used to run the CFN stack has the following trust relationships:
   AssumeRolePolicyDocument:
    Version: '2012-10-17'
    Statement:
    - Effect: Allow
      Principal:
       Service:
       - "lambda.amazonaws.com"
       - "resources.cloudformation.amazonaws.com"
       - "cloudformation.amazonaws.com"
      Action: sts:AssumeRole

Here is a CFN template that will create an IAM role that you can use to run the CFN stack:  execution-role.yaml.
Alternatively, you can set the trust relationships of your role via AWS Console: in the IAM dashboard, select your role and click on "Trust Relationships":

Let me know if this works for you too. Thanks!

Hello @sawyers,
That seems to be a different issue. The error seems to be related to permissions associated with your programmatic keys. Could you open a separate issue on the repository?

On cloud.mongodb.com under the organization -> access manager -> API Keys I have a key created with an access list of 0.0.0/32 since <IP_ADDRESS>/0 isn't allowed.

The idea is that if you don't add any entries to the programmatic keys access list, <IP_ADDRESS>/0 is assumed.
Thanks!


chore(ISSUE_TEMPLATE): encourage them to add a version if possible

Closes: https://github.com/honojs/hono/issues/3540#issuecomment-2449765586
The author should do the following, if applicable

[ ] Add tests
[ ] Run tests
[ ] bun run format:fix && bun run lint:fix to format the code
[ ] Add TSDoc/JSDoc to document the code

@EdamAme-x
Nice! Merging now.


jetson NX jetpack 4.4.1 D435i rs-imu-calibration: error  failed to set power state

Required Info

Camera Model
{ D435i }

Firmware Version
(Open RealSense Viewer --> Click info)

Operating System & Version
{ubuntu18.04

Kernel Version (Linux Only)
(4.9.140)

Platform
NVIDIA Jetson NX jetpack 4.4.1

SDK Version
{ 2.43.0 }

Language
{C/C#/labview/nodejs/opencv/pcl/python/unity }

Segment
{}

Issue Description
<Describe your issue / question / feature request / etc..>

When I load json file with realsense-viewer. It shows error.

Hi @JACKLiuDay  This appears to be a json containing IMU calibration data.  The RealSense Viewer tool does not import this type of json file.  Instead, the Viewer can save and load Visual Preset jsons that define values for option settings that affect the depth, infrared and RGB images.
https://github.com/IntelRealSense/librealsense/wiki/D400-Series-Visual-Presets

Hi @JACKLiuDay This appears to be a json containing IMU calibration data. The RealSense Viewer tool does not import this type of json file. Instead, the Viewer can save and load Visual Preset jsons that define values for option settings that affect the depth, infrared and RGB images.
https://github.com/IntelRealSense/librealsense/wiki/D400-Series-Visual-Presets

Hi, thank you so much for your reply. I run the rs-imu-calibration. While, it shows error when writing calibration to device. So I tried to load the calibration json file with realsense-viewer.

I hope that the advice in a Jetson NX case at https://github.com/IntelRealSense/librealsense/issues/9857 that had the same problem will be helpful to you in resolving it.

I hope that the advice in a Jetson NX case at #9857 that had the same problem will be helpful to you in resolving it.

It worked! Thank you so much!

You are very welcome.  That's great news.  :)


I can't find a way to disable the 'timestamp is from the future' warning

I am building a TUI chat app, and I run my server on a computer connected via a playit tunnel. The time on this computer is not perfectly synced with that of my client, and for every message that is decoded, i get this warning:
*** WARNING *** Encrypted data timestamp is in the future

And I can't figure out how to remove it.
Is there any way to remove this warning?

I have copied the code and created a workaround, by adding a handle_errors parameter to the asymmetrical encrypt_message function, and passing it along to the source (aes_encrypt_message in symmetrical_encryption.py), and checking the value of error_handling in the same if statement that check whether the time is from the future.
the value or error_handling is implied to be 3, the highest level, when the value of it is specified, this will be overwritten.
there are 3 levels of handling
level 3 means don't ignore any errors or warnings
level 2 means only ignore warnings
level 1 means ignore all
with only this one function altered, all tests pass, and I could do this for all other error functions.
I will fork this repo and create a pull request, shall I implement this for other functions as well? or leave it as a small fix for this problem?

I have created a pull request for this specific problem

Thank you. I've asked some changes to the PR in order to make more sense.
Once merged, I am willing to make a new release on PyPI.


[Toggl Track] Show current task and timer on macOS menu bar

Extension
https://www.raycast.com/franzwilhelm/toggl-track
Description
It would be nice to show the current task and timer on macOS menu bar. This would remind me to stop my task.
Who will benefit from this feature?
No response
Anything else?
I could help developing this if needed.

This is a feature I plan on implementing, that being said, it might be a while. I'm incredibly at the moment.

Done. Enjoy guys!


Document exactly which exception types produce fieldErrors in the response

The documentation says

For some exceptions like MethodArgumentNotValidException, ConstraintViolationException,… there is special handling and extra information is returned in the response.

But it would be helpful to know exactly which exception types produce this extra information, e.g. is it

all exceptions that are instances of a base class of MethodArgumentNotValidException, ConstraintViolationException, etc
all exceptions that are instances of MethodArgumentNotValidException, ConstraintViolationException, etc
all exceptions that are instances of MethodArgumentNotValidException, ConstraintViolationException, etc or any subclass of these
something else...

I believe that if you want to know it so exact, you should look at the source code. The documentation just gives some examples. It is not the intention to have an exhaustive list there.


Silences warning logs and adds additional earlier skip check if no detected BCD updates

This is an initial pass at implementing @foolip's suggestion in #899. This:

Sets the reason logger to "quiet" by default.
Adds a new skip check & utility helper function to check for any differences in the support matrix and the existing BCD support statements. If there's no detected differences, we exit early, otherwise precede with the rest of the existing update logic. We also run this "contradiction" check once more at the final skip scenario (in the case that we still have contradictions that the updater was unable to resolve). If we do find ourselves at this step, we "audibly" log a warning.

Some General Notes
Before this change, many calls to update from running the unit tests reached the final skip check and emitted a "skipped for no known reason" message, which was a bit of a false alarm. For now, I opted to run some simple diffs limited to the version_added  field. But even with these simple diff checks, we now no longer reach that final "unknown reason" skip check on a unit test run.
These initial logs should now be more useful for spotlighting any update issues for specific BCD entries. Here's a snippet of log output from a recent manual run:
warn: api.EXT_texture_compression_rgtc skipped for firefox with unresolved differences between support matrix and BCD data. Possible intervention required.
info: Updating api/Element.json
info: Updating api/FontFaceSet.json
info: Updating api/HTMLAnchorElement.json
warn: api.HTMLCanvasElement.getContext.webgl2_context.options_powerPreference_parameter skipped for firefox with unresolved differences between support matrix and BCD data. Possible intervention required.
warn: api.HTMLElement.autofocus skipped for firefox with unresolved differences between support matrix and BCD data. Possible intervention required.

Further work on generating more useful logs will definitely help here. The unit tests should give an accurate summary of all the types of "contradictions" that we're currently checking for.

Suggested Future Improvements

A lot of these new diff checks are duplicative of checks that happen later when we try to infer a support statement from the support matrix, or when we go through the various persist... methods. We may be able to "provide" the results of these checks to the UpdateState for later use by other methods. For now, we're just checking for the existence of any contradictions and then checking again later when it's time to update.
I was able to defer the building of the inferredStatements, but we maybe able to defer or skip other unnecessary steps if we make better use of this diff data from the get-go.

cc @mzgoddard

Here's a before-and-after illustration of the changes to the data flow in this PR (just excerpted to the start of the browserMap loop).
Before

After

Thanks for putting this together @ChrisC! The overall structure looks good to me, and I'll do a detailed review next week.


Fix for #1602 Insufficient collection information when submitting an article

Description
Fixes #1602
Insufficient collection information when submitting an article.
Instructions for Reviewers
Sometimes, the collections returned by the collection browser are indistinguishable because their names are identical to other collections and their parent communities.
For example, suppose you have two communities named "Institution A" and "Institution B," each with a subcommunity named "Reports." Both subcommunities have a collection called "Research Reports." If I want to submit an item to "Institution B > Reports > Research Reports," it's impossible to differentiate between the "Reports" subcommunity in "Institution A" and "Institution B" when searching for the "Research Reports" collection.
Expected Behavior
Instead of displaying only the name of the parent community, the interface should display the full hierarchy, similar to how it's done in XMLUI.
List of Changes in this PR:
•	Added a method getHierarchicalName in sidebar-search-list-element.component.ts that returns the hierarchical name. Now, parentTitle calls getHierarchicalName instead of getParentTitle.
•	Added a method createInstanceFromDSpaceObject responsible for creating an instance of DSpaceObject.
•	Removed the maxlines argument from sidebar-search-list-element.component.html.
•	Added some CSS to the content class in truncatable-part.component.scss.
Steps to Test and Reproduce the Behavior:

Create two top-level communities named "A" and "B."
Create a subcommunity named "Reports" under each top-level community.
Create a collection named "Research Reports" within each "Reports" subcommunity.
Try to submit an item to "B > Reports > Research Reports" and ensure that the full hierarchical name is displayed.

@im-shubham-vish : Thanks for the PR.  Just a note that this is failing lint formatting checks.  You can see those locally by running npm run lint.  They are also visible in this PR if you look at the "Files changed" tab.   Some of these may be fixed automatically if you run npm run lint-fix
We require all PRs to pass lint formatting checks.

Hi @im-shubham-vish ,
thanks for you PR! I tested it locally and it worked perfectly. I just noticed, you kept the parentTitle$ variable in the TypeScript file. Is there a reason for it? Because as far as I can see, you don't need it any more or do I miss something?
Also, you might adjust the spec test in the sidebar-search-list-element.component.spec.ts in order to test the hierarchicalTitle$ instead of the parentTitle$.

Hi @Leano1998,
Sorry for the late reply & thanks for your feedback! You're right we have no use case left for parentTitle$. So I've adjusted all over the possible places to use hierarchicalTitle$ instead of the parentTitle$ including spec test files.
Please recheck once and let me know in case you've any feedback.


UPDATE  HDH-224-adjust-sizing-on-hdh-top-banner

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the CODEOWNERS.
What Type of PR is This?

[ ] Issue
[ ] Feature
[x] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[x] Tested Locally
[ ] Optional Screen Shoot.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65c3acb01b303f4e005678c1--harness-developer.netlify.app


The following assertion was thrown during a scheduler callback:

════════ Exception caught by scheduler library ═════════════════════════════════
The following assertion was thrown during a scheduler callback:
'package:flutter/src/rendering/object.dart': Failed assertion: line 1145 pos 20: 'node.isRepaintBoundary': is not true.
Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
https://github.com/flutter/flutter/issues/new?template=2_bug.md
When the exception was thrown, this was the stack
#2      PipelineOwner.flushPaint
#3      RendererBinding.drawFrame
#4      WidgetsBinding.drawFrame
#5      RendererBinding._handlePersistentFrameCallback
#6      SchedulerBinding._invokeFrameCallback
#7      SchedulerBinding.handleDrawFrame
#8      SchedulerBinding._handleDrawFrame
#12     _invoke (dart:ui/hooks.dart:144:10)
#13     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:359:5)
#14     _drawFrame (dart:ui/hooks.dart:112:31)
(elided 5 frames from class _AssertionError and dart:async)
════════════════════════════════════════════════════════════════════════════════

Closing this as a duplicate of https://github.com/flutter/flutter/issues/120874 based on the logs shared above.
Kindly subscribe to the original issue for updates.
Thank you


Finding islands of similar brightness with OpenCvSharp

I would like to find areas of similiar brightness in images using OpenCVSharp and contour / outline them as shown in this hand-drawn example:

I tried Sample 12 in OpenCVSharp-Samples-master, but that wouldn't give me the expected results. I was thinking there might be another example to achieve what I want.
The attached image shows how tattoo artists work.
I think this could be done with OpenCvSharp as well.

A simple example (C#7)
using System;
using OpenCvSharp;

namespace OpenCvSharpSamples
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            using (var src = new Mat("lenna.png", ImreadModes.Color))
            using (var srcGray = new Mat("lenna.png", ImreadModes.GrayScale))
            using (var hsv = new Mat())
            using (var dst = new Mat())
            {
                Cv2.CvtColor(src, hsv, ColorConversionCodes.BGR2HSV);
                Cv2.CvtColor(srcGray, dst, ColorConversionCodes.GRAY2BGR);

                var hsvChannels = Cv2.Split(hsv);
                var v = hsvChannels[2];

                for (int i = 0; i < 8; i++)
                {
                    using (var bin = new Mat())
                    {
                        Cv2.Threshold(v, bin, i * 32, 255, ThresholdTypes.Tozero);
                        Cv2.Threshold(bin, bin, (i + 1) * 32, 255, ThresholdTypes.BinaryInv);

                        Cv2.FindContours(bin, out var contours, out _, RetrievalModes.External,
                            ContourApproximationModes.ApproxNone);
                        Cv2.DrawContours(dst, contours, -1, Scalar.Red, 1);
                    }
                }

                Window.ShowImages(dst);

                foreach (var m in hsvChannels)
                    m.Dispose();
            }
        }
    }
}

Change Cv2.Threshold’s threshold parameters, or try other methods (e.g. using kmeans color clustering)


⚠ Samsung has degraded performance

In 0ba14de, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2743 ms

Resolved: Samsung performance has improved in b3e12d9.


Stop iDownload being killed after three minutes

Nice work!
Quick question: do we need this for option 1? Are there any benefits to this?
AutoLauncher only opens FSUntetherGUI on boot and that's all, it doesn't need to stay alive.
Maybe making it stay alive could make we don't need to worry about the random restart? (uptime check already handles this though)

Quick question: do we need this for option 1? Are there any benefits to this?

Yeah, seems that’s the correct solution. I’m not too familiar with option 1 as I don’t have a TrollStore-compatible device to test it with. Hope this new commit is okay.

Thanks, I'll merge it after checking if it doesn't stop for an hour.

Confirmed working for an hour. Merged, thanks!


Restrict swipe gesture to a certain area

Is there any way to restrict the  pan/swipe to a certain area? I'd like to leave the bottom part of my view as an area where it ignores the gesture. Is it doable?

Since SwipeViewController subclasses UIPageViewController it should be possible. Try looking at this code: https://gist.github.com/TosinAF/805a22ab5a3e4ffe17a8/

Okay, but if I need tableView gestures to work? How realize it?

I have not tried this myself, but please do try to use the gist I shared above. You can implement part of it in SwipeViewController.swift syncScrollView() function. Any PRs are welcome 🤓

In SwipeViewController.swift
    open var isScrolling = true

inside func setPageController()
    pageController.delegate = self
    if isScrolling {
            pageController.dataSource = self
    }

In YourViewController: SwipeViewController where you want to disable swipe
    isScrolling = false

Hmm, interesting solution, I will take a look at it tomorrow. This is for disabling swiping for one ViewController as a whole, and not a part of it, but still could be useful for some people out there! 🎊

Yes, it is for disabling the whole ViewController. I needed just it:)

What if I want to disable swiping in ViewController: UIViewController not ViewController: SwipeViewController

@SeasiaInhouse, could you please describe your problem more thoroughly? Thanks.


Add support for Object type for transitionName prop of Animate …

…component
(Similar to transitionName prop of ReactCSSTransitionGroup component.
https://facebook.github.io/react/docs/animation.html#custom-classes )
Fix https://github.com/react-component/animate/issues/8

Coverage increased (+0.5%) to 75.0% when pulling 00b7524c579c6b6862742944f54ff0bb5e8afba6 on rockallite:feature/transitionNameObject into e707fda37923db7d3a51ca70635970b7d35ce570 on react-component:master.


Wkhtmltopdf Export Blockquotes Problem

Describe the Bug
With wkhtmltopdf configured and working well, when i export any page that contains a blockquote > xxx the resulting pdf shows the htmlentity &ldquot.

Steps to Reproduce

Configure wkhtmltopdf
Create a page with a blockquote

> This is a test

Save the page
Export as PDF

Expected Behaviour
The document should render the htmlentity correctly as a quote.
Screenshots or Additional Context
No response
Browser Details
Any Browser
Exact BookStack Version
v22.04.2
PHP Version
7.4.26
Hosting Environment
Docker on Debian 10 exposed with nginx proxy manager

Thanks for reporting @thorin8k.
I can confirm this. Occurs within the document parsing calls that are specifically ran for PDF HTML formatting:
https://github.com/BookStackApp/BookStack/blob/1c859e94e03d0407daf55ade43ced245f208f971/app/Entities/Tools/ExportFormatter.php#L155-L156


Fixed "Wave Boost" stamp condition

As described here the wave effect applies in all ninjas, so this stamp doesn't need to check if all ninjas is in card target area.

Oh yeah, I forgot to do that. Thank you so much!


Fix level_map issue

When adding a fixed term that has already been indirectly referenced in a previous call to add_term (for example, through the split_by or orthogonalize arguments), the level mapping for the fixed term was never getting added to level_map. (But everything worked fine if the fixed term was added BEFORE ever getting referenced in a split_by or orthogonalize argument.) It turns out that this can be fixed by a fairly simple tweak to _get_variable_data, namely, assigning default labels to all 'variable' arguments and hashing labels rather than variables.

I think my original rationale for caching on variable names was that caching the labels means one can unnecessarily create the same design matrix component over and over again, which defeats the point of having a cache. But that was probably premature optimization, since I don't think the extraction of events is particularly time-consuming anyway (i.e., it's not clear how much having a cache is really buying us). So I'll go ahead and merge it. Thanks!

Yes, this can sometimes happen if one provides labels for added terms (which personally I usually do), but I don't think should ever happen if one accepts the default labels for every term. Despite this, it seemed like the least klugey way to fix the level_map issue.


Change background image using StoryPoint.backgroundImage

StoryPoints that are part of the StoryEventBaseData SO will sometimes have a background image specified. When this occurs, the background of the scene should change to the background image that is passed.

Just a note, but it would probably be good to place the BackgroundImage GameObject in its own panel prefab, similar to the other panels in the overlying StoryController prefab. 🤔


Different behaviour with body position set to relative

See https://jsfiddle.net/evnfpv9o/7/ and hash / unhash the body CSS rule and then see how the tool tips misalign.

That's because of how the body works. When given a position, it is no longer "merged" with the document and the body is no longer at position (0,0) if there is margin on it. I've always wondered why people would set up their page like this, but I guess I'll patch it when I have some spare time. Thanks

Thanks for the quick reply.  It's if you're using 'fixed' within the body to get that to position relative to the body and not the entire page (unscrolled).
If you point me at the approximate place I can have a crack at fixing it.

That's an odd use case that will ultimately probably bring more trouble than it's worth...
But if you want to take a look at the source, use Tooltipster v4 on the v4 branch, I don't work on v3 anymore. Be warned that the positioning system is not trivial though.

Just wanted to add a note hear that I also had a problem getting tooltipster to work properly due to the body tag having the CSS property of overflow-x: hidden;
I was able to remove that property and get it working though.

I suggest you add this to your code to fix the issue:
$.tooltipster.on('position', function(e){

	var p = e.position;

	if(!e.helper.geo.origin.fixedLineage){

		var $body = $(window.document.body),
			mt = parseInt($body.css('margin-top')),
			ml = parseInt($body.css('margin-left'));

		p.coord.top = p.coord.top - mt;
		p.coord.left = p.coord.left - ml;
		p.target -= (p.side === 'top' || p.side === 'bottom') ? ml : mt;

		e.edit(p);
	}
});

https://jsfiddle.net/5xqqmrt6/46/
It's a quick fix if you're using the sideTip plugin only and I probably didn't think it all through. Tell me if at least it works for you.
The tooltips may get displayed outside of the body since the library still rather takes the whole document into consideration to determine available space.
I'm not sure if I want to include a proper fix for this use case in the library itself, because I tend to think it's a bad idea to have position: relative on the body to begin with, so I don't really want to bother with its side effects. But I'm open to discussion to know if there actually are good reasons to do it before I call it a "won't fix". Thanks

I have listed this issue in the troubleshooting section of the documentation (in the FAQ). It's probably enough now, thank you.

Just hit the same issue, but since I'm using a "parent" option with custom parent element, problem is not with body, but with one of the parent elements. In short, one of parent divs has position:relative set, which gives me incorrect positioning of the tooltip.
I'm not as super as you in pure JavaScript, so might take me a while to find out the root of the problem. Could you, please, add a fix for the same issue, but when parent is custom?

It's not the same issue. Besides, you're using the parent option in the wrong way. That's why it's an undocumented feature, it will rarely do what you hope. There is almost no good reason to use it at all anyway.

Sorry to disappoint, but I'm using it the right way. I know very good, what I'm doing and why. This option works perfectly for me and does the job the way exactly I wanted it to.
And yes, it's the same issue, because, when you don't use custom parent, your parent is BODY, when you define "parent" option, your parent becomes every parent tag UP TO BODY. And if ANY of these parent tags has position set to relative, you will have tooltip positioning issue.

If your parent is not at (0,0) in the body, it's expected that your "issue" happens and it has nothing to do with the body tag having the position:relative property or not. Is it at (0,0)?
The comment on the option says: "will default to document.body, or must be an element positioned at (0, 0) in the document, typically like the very top views of an app". So if your parent has a parent which has a relative position, I suspect that it's not at (0,0), and then no, you're not using it the way it was intended. Having any tag as a custom parent is a little complex and has more cons than pros so I won't make it an option.

You parent option works very well with any defined tag, not just the one positioned at 0,0. I've tested it thoroughly and the only issue I see is with position:relative definition. It doesn't matter, whether it's a BODY tag or any other - relative positioning of a parent tag breaks tooltip positioning. So yes, I think the nature of the issue is the same.
With parent option defined and one of the parent tags has relative position tooltip is placed to the very right bottom of the document, way over the "corrupted" tag borders. I also noticed, that when you turn on/off relative position, coordinates of the tooltip don't change. Guess, the only thing is changes here, is where these coordinates applied: to the BODY tag or to parent tag with relative position. I hope I explained it right.
Your parent option is very good and IT WORKS. I don't understand why are you so against it. The only thing it needs right now is this little issue to be fixed. I already "fixed" it by changing position to "inherit of that parent tag. Yet it would be better to have it fixed globally in plugin itself.

Your issue is very clear don't worry. The coordinates of the tooltip are deliberately  relative to the body which is supposed to be at (0,0). You want it positioned relatively to another element, while this topic is about the body not being at (0,0) when it has a relative position.
Anyway, imagine that the parent you set or one of its ancestors has overflow:hidden: the tooltip could be partially hidden. And if there are z-indexes in the mix, it could also be covered by other elements. You might be ok with that, but I'm sure others will come and complain every day about their tooltip "not working". The benefit of this feature would be slim and not worth it in my opinion. But feel free to make it happen and even propose a plugin for it, it just won't make it to the core library.

Well, you can always warn people about disadvantages of using parent option, right? The rest is up to them.
I feel a bit uncomfortable around JS. I'm more PHP/MySQL guy, so making a plugin or doing any changes to your script will take much more time for me.
Anyway, can this be fixed by calculating tooltip coordinates from parent container, not from 0,0 position?
You could even make this optional: use parents() function to search for parent container with position:relative and only then recalculating accordingly.  I even could test it myself on my site, if you point me to the right place in your code, where coordinates are calculated.

Don't edit the library itself. Check in the documentation how you can achieve custom positioning.

Yes, it did the trick. Changing tooltip position with functionPosition option wasn't hard, but I can't say the same for arrow. Spent some time with arrow positioning and came with the following solution:
functionPosition: function(instance, helper, position) {
  	parent = jQuery("<?php echo $subclass; ?>").parents().css( "position", "relative" ).eq(0).attr('id');

    	if (parent) {
    		arrow = position.target - position.coord.left;
       		position.coord.top -= jQuery("#" + parent).offset().top;
       		position.coord.left -= jQuery("#" + parent).offset().left;
       		position.target = position.coord.left + arrow;
       	}

       	return position;
}

Since I'm using default positioning with the arrow at the bottom, this code does the trick very well and repositions the tooltip according to parent element with position:relative. Might not work for other tooltip positioning and all the options.


added support for horizontal or vertical lines and full or simplified quadratic bezier lines

Hello,
first of all: thank you very much for your work - it helped me a lot to convert a hieroglyphic font into a format OpenJSCAD can understand!
For that purpose, however, I had to add support for

horizontal and vertical lines (Hh, Vv)
full and simplified quadratic bezier curves (Qq, Tt)

Additionally, I fixed a small bug where "makeModule" still tried to read the output file and broke if it did not exist - now it always overwrites an existing or creates a non-existing output file.
Hopefully, you may find these extensions useful.
With greetings from Germany,
Andreas Rozek

I meanwhile added the ability to close segments with the "Z" or "z" directive - otherwise, I would not have been able to extrude the letters of my font.
At first, I even added an "auto-close" capability for segments, but that turned out not to be necessary - thus, I did not include it here.

Thanks for the improvement and I'm happy you find it useful.


Added features for touch events

I created this PR because I needed a nice way too unregister all touch area's. I also wanted a way to temporarily disable all touch events.
This works nicely on my project, so I imagined some other people could benefit from it.

Not really sure why it says it wants to merge 51 commits... there is just 15 lines of code added.

@wouter-willems : you will have to rebase your branch upon the latest release.

Ah, thnx


⚠ ClamAV has degraded performance

In 2ba1c4a, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 75 ms

Resolved: ClamAV performance has improved in 91c9bf6.


Refactor UI

There has been consistent feedback that people would like to see promotion rules on the left and actions on the right, like in legacy Solidus.
We also can't hide line item rules anymore when we have order-level actions, because the order-level rules do need to find applicable line items as well (for example, to determine the needed quantity of a newly created item).
Before:

After:

Closing in favor of #87


Images in what if posts should be inverted in night mode

Currently they are barely readable in night mode.

Already fixed, looks like I forgot to close this issue


fix(core): Fix Lint

Fixes the lint issues in sdk and service directories.
Passing lint step: https://github.com/opentdf/platform/actions/runs/8913540059
Closes #701

Should we run a different set of lint rules for all tests including integration? Seems like we could have a good amount of no lint.
Also curious how you ran this locally. I ran LINT_OPTIONS="" make lint earlier this week and didn't see all of these.


feat(sqllab): giving the query history pane a facelift

Fixing some styling and UI components in the query history pane in SQL Lab

using label with monospace for timestamps
set mouse to pointer on clickable icons
using consistent icon size
make the View clickable a button instead of label

before

after

Looks clean @mistercrunch! Two things from me me:

icons seems big on comparison to the rest of the items in the row - what size is it?
I like pill for duration, but I think using it for timestamp might be too much - we have so many different items that it can get overwhelming and in other places we just use text for timestamp

Thoughts?

@kasiazjc -> screenshot based on latest tweaks

Thinking a bit more about it, I'd like to create a standard way to represent timestamps/durations through a reusable react component.
GPT-designer suggested this with a little clock which I think is kind of cute, but will make things more busy ->

My issue with out current CRUD list/table views is that it looks very raw (I mean that as opposed to "rich"), and would love to make it looking richer if that makes sense. Adding clock icons might look more busy, but also richer in some capacity.

/testenv up

@kasiazjc -> screenshot based on latest tweaks
Thinking a bit more about it, I'd like to create a standard way to represent timestamps/durations through a reusable react component.
GPT-designer suggested this with a little clock which I think is kind of cute, but will make things more busy ->
My issue with out current CRUD list/table views is that it looks very raw (I mean that as opposed to "rich"), and would love to make it looking richer if that makes sense. Adding clock icons might look more busy, but also richer in some capacity.

I think it looks more balanced with smaller icons and the pills for timestamp and duration look better too with it. Looks good for now and let's figure out crud enrichment/details next!

This progress bar misalignment is nagging at me... I'll see about a PR for that when I come up for air next :D

@rusackas addressed the comments, probably mergeable as is

LGTM!


native types

A native type is a type which is declared and then used after the declaration as type.
For example UE support an FIntPoint, so we could declare an IntPoint and let the UE template know to use an FIntPoint.
@ue: FIntPoint
type IntPoint

There might be other information required (e.g. includes, linkage) to make the code compile.
This can also be added using meta information. Also platform specific directives can be added using external meta documents.

naming: native types vs extern type


Cannon  use touch or pen to select text

realy upset when use with surface book tablet mode.

Dup of https://github.com/microsoft/vscode/issues/64925


Add new filters and operations

Functions added:

pixel_count_map
extension_ratio_map
sub_stack
reduce_stack
reduce_label_to_centroids
exclude_label_with_values_out_of_range
exclude_label_with_values_within_range

The following function has equivalent renaming for future:

exclude_label_with_values_out_of_range --> remove_label_out_of_range

exclude_label_with_values_within_range --> remove_label_within_range

reduce_label_to_centroids reuse the statistics function (see clEsperanto/pyclesperanto_prototype#340 )

exclude_label_with_values_out_of_range is reused for exclude_label_by_size which change some functions tiers.

This PR aim to answer this request: clEsperanto/napari_pyclesperanto_assistant#73

@haesleinhuepf can you tell me if this enough for continuing the shift of the napari-assistant toward using pyclesperanto ?
Would you need more function?

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
Attention: Patch coverage is 23.52941% with 91 lines in your changes missing coverage. Please review.

Project coverage is 49.08%. Comparing base (115caa8) to head (56f9c7d).

Files with missing lines
Patch %
Lines

clic/src/tier4/filter_label_by_values.cpp
10.00%
13 Missing and 5 partials :warning:

clic/src/tier4/parametrics_map.cpp
15.00%
9 Missing and 8 partials :warning:

clic/src/tier2/stack_operations.cpp
0.00%
16 Missing :warning:

clic/src/tier4/centroids_of_labels.cpp
37.50%
1 Missing and 9 partials :warning:

clic/src/tier1/replace_values.cpp
35.71%
6 Missing and 3 partials :warning:

clic/src/tier5/reduce_labels_to_centroids.cpp
40.00%
0 Missing and 6 partials :warning:

clic/src/tier3/statistics_of_labelled_pixels.cpp
44.44%
0 Missing and 5 partials :warning:

clic/src/tier5/filter_label_by_size.cpp
37.50%
0 Missing and 5 partials :warning:

clic/src/tier6/remove_objects.cpp
0.00%
4 Missing :warning:

clic/src/tier7/fill_holes.cpp
0.00%
1 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #343      +/-   ##
==========================================
- Coverage   49.76%   49.08%   -0.68%
==========================================
  Files         240      244       +4
  Lines        3864     3956      +92
  Branches     1749     1800      +51
==========================================
+ Hits         1923     1942      +19
- Misses        558      603      +45
- Partials     1383     1411      +28

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

Looks good @StRigaud ! However, I vote against names such as remove_label_out_of_range as this name suggests labels with label-ID within a range are removed, not with given values.

I can update the name yes.
I also kept the prototype names for legacy, so should allows the assistant to use them smoothly (hopefully with minimal to no changes).
I will update and merge, and push this as a new version (also for pyclesperanto) this week


Notebook trust prompt shown for files in trusted workspace

Does this issue occur when all extensions are disabled?: No

VS Code Version: 1.57.0-insiders
OS Version: Win 10

Steps to Reproduce:

Open a new workspace/folder in VS Code and classify as trusted workspace.
Open a Notebook within the workspace and check whether the "Notebook trust" toast notification is shown.

@rchiodo what do you mean by "indicate code is going to run in notebooks"?
My impression of "trusted workspaces" was that if toggled, the user trusts the contents of the files in the folder for eventual execution (if they choose to). Isn't this the same intent behind Notebook trust, in that we disallow the user to run code in the Notebook?
If the user doesn't trust the workspace they should not be allowed to execute the code for any files in the workspace (by default). I don't have an opinion about displaying file content / Notebook output. I guess there is a model here (for extensions to work out with VS Code?) where I can trust the contents of specific files in an untrusted workspace? It'd be good to gather some customer feedback on what their expectations are with "trusting" generally in VS Code.

It'd be good to gather some customer feedback on what their expectations are with "trusting" generally in VS Code.

I guess this is what I was alluding to. What does a customer think happens when they 'trust' a workspace? Do they even think about it?
Trust for eventual execution isn't the same as trust it to not run code in the background. Trusting a notebook can mean just that. I send you a notebook that modifies the DOM and executes code just by opening it.
And if I trust a workspace because hey I want this file A.py here, but I don't even look at the rest, do I expect the rest to run code? Would I even think about that?
I'm thinking the 'trust' workspace isn't enough IMO. That's why I'd want the secondary 'trust notebook' idea too.

Got it. I was unaware that I could create a Notebook which executes code when opened. How do we currently prevent against this with Notebook trust? As a user my impression is that the Notebook is opened before being prompted to trust.
The current wording for trusted workspaces is interesting - "You trust the authors of the files"...

I'm assuming that means it doesn't matter whether I look at the rest of the code, I trust who it's been written by.

How do we currently prevent against this with Notebook trust?

If a notebook is untrusted we don't run any javascript in a notebook on opening. You have to trust it first.

I'm assuming that means it doesn't matter whether I look at the rest of the code, I trust who it's been written by.

This is what I want the customer development on. I'm hypothesizing that most people don't even think about it. Or if they do, they go, ah how bad could it be. What could a notebook do if I don't execute any cells? Because if you didn't realize a notebook could run code just by opening it, I'm guessing lots of people wouldn't think of that.

@rchiodo @SiddhanthUnnithan I'm working on the requirements with @rebornix
I had a chat with him about notebook trust, workspaces (no workspaces, multi-workspaces), etc last week.
We'll need to wait for the API & workflow to be finalized in VS Code.
For now I have no idea what the final say is, I haven't provided any suggestions/requirements either, just highlighted some scenarios that could product weird user experience & information on how classic Jupyter handles the notion of trust.

I'm closing this issue in favor of https://github.com/microsoft/vscode-jupyter/issues/5745


fixes for eimage files

Two items:

In order for ingestSimImages.py (from obs_lsstSim) to process the eimages, the obshistID needs to be set in the header (see here and here) and the eimage filename has to start with lsst_e (see here).
The exposure time should be the visit time divided by the number of snaps.  The sims_GalSimInterface code adds the snaps together to produce a single eimage.

This looks OK.

The exposure time should be the visit time divided by the number of snaps. The sims_GalSimInterface code adds the snaps together to produce a single eimage.

What does PhoSim do?  Do you get a sequence of snaps? I'm a bit confused because somethings seem to have changed.  For example I have things like
SIM_VISTIME 15.0
SIM_NSNAP 1
in instance files but the new documentation doesn't have the "SIM_" anymore.

phosim writes each snap to a separate file.  I'm a little uncertain how phosim handles vistime vs exptime. I think effectively it does vistime = 2*exptime + readout_time where readout_time is something like 3 seconds.  How these various values get set consistently is unclear to me.

from an email exchange I had with John Peterson

the vistime = nsnap * (exposure time) + (nsnap -1) * (readouttime + shutter delay)
right now in v3.5 the readout time + shutter delay is 3.0 seconds
so if you want 15 seconds exposures you’d specify 33.0 seconds.
hope that helps

so if you want 15 seconds exposures you’d specify 33.0 seconds.

Just to be extra clear: This means "if you want two 15 second exposures" correct?

Yes (though you also have to set the NSNAPS parameter equal to 2, I think)

FWIW, it would be fine with me to just go with a single 30 second image rather than two 15 sec exposures.  We don't currently have a snap difference CR rejection algorithm, so the separate snap processing just adds more overhead.

(Remember to scale up the readout noise if you do this)

FWIW, it would be fine with me to just go with a single 30 second image rather than two 15 sec exposures. We don't currently have a snap difference CR rejection algorithm, so the separate snap processing just adds more overhead.
I believe this is what we did for previous runs anyway.

Is this what is effectively happening now anyway since as @jchiang87 says "The exposure time should be the visit time divided by the number of snaps. The sims_GalSimInterface code adds the snaps together to produce a single eimage"?

For nsnap=1 and vistime=30, the answer is yes.  But when one runs the catsim code to generate the instance catalogs, those values have to be communicated to catsim.  For Twinkles, they are actually written into the instance catalog generation code.
To get imSim to be consistent with what phosim is doing, we need to implement the equation that Scott quotes from John, vistime = nsnap * (exposure time) + (nsnap -1) * (readouttime + shutter delay), and as David notes, make sure the read noise scales with the number of snaps.

For nsnap=1 and vistime=30, the answer is yes. But when one runs the catsim code to generate the instance catalogs, those values have to be communicated to catsim. For Twinkles, they are actually written into the instance catalog generation code.
To get imSim to be consistent with what phosim is doing, we need to implement the equation that Scott quotes from John, vistime = nsnap * (exposure time) + (nsnap -1) * (readouttime + shutter delay), and as David notes, make sure the read noise scales with the number of snaps.

So for right now we will go with one 30 second snap correct?
Can someone enter adding the more "proper" general behavior into an issue?
Also, if we set the 30 second snap up properly do we need to increasing the read noise as David pointed out? Or will that already be handled properly but the lsst-galsim interface?

I'll post the issue.  Yes, I think we've agreed that a single 30 sec snap is the way to go.  Read noise will be handled by the electronics readout code.  I've added my code for that in a branch. I'm hoping to make a PR in the next few days.


Can the code for infinite ranges be separated out?

Is the code that defines infinite ranges too coupled with the rest of the code at this point? Could it be useful to have some other package like InfiniteRanges that defines these ranges that InfiniteArrays could depend on?

True probably not. I think I was thinking about this when I was making my own infinite arrays for https://github.com/JuliaLinearAlgebra/ArrayLayouts.jl/pull/241, but there's little to gain upon reflection. I'll close.


Scully is not generating the build for the routes that has trailing slash.

🐞 Bug report
We have a angular application whose routing is configured in such a way that it adds a trailing slash in the end of every route.  I am pasting a snippet of angular routes that we have.
  { path: "home/.", component: Component1 },   { path: "technologies/.", component: Component2 },
When we try to prerender the pages, scully is not recognizing the above routes. Routes not configured for home/..
Description
🔬 Minimal Reproduction
This is not a common scenario, I am getting this error only for routes that as trailing slash in the end.
💻Your Environment
Angular Version:

Angular CLI: 13.2.2
Node: 14.15.0
Package Manager: npm 6.14.8
OS: win32 x64

Angular:
... animations, common, compiler, core, forms, platform-browser
... platform-browser-dynamic, router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1301.4
@angular-devkit/build-angular   13.2.1
@angular-devkit/core            13.2.2 (cli-only)
@angular-devkit/schematics      13.2.2 (cli-only)
@angular/cli                    13.1.4
@angular/compiler-cli           13.1.3
@schematics/angular             13.2.2 (cli-only)
rxjs                            6.6.7 (cli-only)
typescript

Scully Version:

    "@scullyio/init": "^2.1.10",
    "@scullyio/ng-lib": "2.1.5",
    "@scullyio/scully": "^2.1.10",
    "@scullyio/scully-plugin-puppeteer": "^2.0.0",

🔥 Exception or Error

@adityakoushikr11 We can only render routes that are in your angular app. A route that ends with xyz/. will load an index.html file from the xyz folder. This is not something that angular supports out of the box as far as I know.
Can you show me your route definitions in your angular app?

Closing due to lack of actionable context. We will reopen if there is any.


Consider moving Context methods to elsewhere in the API

Consider changing the API so that LazyCollection is class with a constructor/operation that takes a Context, instead of having createLazyCollection as a method of the Context interface; and likewise, move useExternalResource to be a constructor/operation of EagerCollection; and jsonExtract could be a floating toplevel function.
The API would be easier to discover and understand if we made those moves. There is not much meaningful that we can write about what the Context is, it is mostly just some opaque type from the user's perspective. That makes it unlikely to be where people go looking for functionality.
The main benefit of the Context is the prevent the call of that functions outside of a map, but if it's a problem, we can hide the context and make that function toplevel.
It seems that this advantage could be retained by transforming calls like context.lazy(Foo, bar) and context.useExternalResource({...}) into LazyCollection.create(context, Foo, bar) and EagerCollection.ofExternal(context, {...}).

Ok, there seem to be more constraints than I understand.
Finally, what about moving what are currently methods of Context to independent top-level functions? Are there technical issues with that too?