Arguments: Syntactic unpacking of arguments

Did I mention I'm a huge fan of the arguments package? There's just one thing that I wish it had -- syntactic unpacking of arguments at definition and at invocation time. I've thought about implementing this and submitting a PR when my macro-fu was up to the task, but I'm not there yet and I'm not sure when I'd get to it, so I'm creating this issue here for now as a feature request.
The idea is to be able to identify specific arguments in addition to being able to "pack" the rest, similar to how Python does it.
Spec:
(apply/arguments f p1 p2 ... #:k1 #:k2 ... args)
(define/arguments f p1 p2 ... #:k1 #:k2 ... args)

These would essentially just be more general versions of the built-in apply and define, with the only difference being that they support an arguments tail.
Example:
(define/arguments (my-function arg1 arg2 #:key [key null] . args)
  ;; ... body ...)

Here, the first two arguments to the function should be bound in the body, and if a keyword argument key is supplied, it should be bound in the body as well (in this example it should always be bound because of the default null value). Any other positional or keyword arguments should be packed into the args arguments structure, the same as current behavior.
Likewise,
(define args (make-arguments (list 7 8 9) (hash '#:a 1 '#:b 2)))
(apply/arguments my-function 5 #:kw1 "blue" args)

... should bind arg1 to 5 and arg2 to 7, and pack (list 8 9) and (hash '#:kw1 "blue" '#:a 1 '#:b 2) into the args struct.
For reference, here is a case where this feature would help, by avoiding the need to explicitly unpack the argument in the body of the function when it is already known to be needed at definition time. There are other such examples in that file, too. And in general, this is verbatim the behavior in python, so python examples of argument packing/unpacking would illustrate this feature as well.

This seems like it could have some overlap with pattern matching. Would being able to unpack arguments instances using match patterns be enough?

Do you mean something like this?
(define/arguments (my-function args)
  (match args
     [(arg1 arg2 #:key [key null] . remaining-args)
        ;; ... body ...)]))

It could be that if such pattern matching existed, we could use it to trivially expand the define/arguments and apply/arguments forms to support the kind of unpacking I'm talking about. But being able to do it without an explicit pattern matching step would be a useful addition on top of this, at least in part because the entire body of the function would often be enclosed in a single match clause. For instance in this example, that containing let expression could be eliminated if we could just unpack the args in the function definition. Also, does define/arguments support specifying default values (like [key null]) in the definition? A nice thing about the proposed behavior is that it's a neat superset of define and apply, essentially so that define/arguments and apply/arguments could be drop-in replacements for the built-in define and apply, but with seamless packing and unpacking of extra arguments, making it potentially compelling as a standard.

As a digression on this subject that may nevertheless serve as another example, I've been mulling over writing a "generic constructor" as a generic interface. The idea is that when creating types we usually need two constructors, a unary/n-ary constructor (like cons) and a nullary one (like null), and sometimes also a variadic one (like list). But really we only need to specify one of these to unambiguously indicate what type we're trying to create.
Continuing with this line of thought it might make sense to define a generic interface like this:
(define-generics form
  (make form element ...))

Then, (make (list 1 2) 3) would construct a list, '(1 2 3), while (make #(1 2) 3) would construct a vector. Likewise (make empty-stream 3) would construct a stream. In all cases we only need to specify the nullary constructor or provide an existing instance of the desired type, and make stands in for e.g. cons and stream-cons or whatever custom constructor someone might define for a type. This also has the advantage over variadic constructors like list and stream that we don't need to know what type is being constructed up front, and it can be determined at runtime (e.g. (make val 3)).
At this point, this is essentially equivalent to data/collection's gen:collection, and using conj, for example.
But since types in general may entail different structures that won't necessarily fit into cons/null style construction, we'd want make to support any function signature -- left to the discretion of the author of the type -- as long as the first argument remains the instance of the type, since we'd need that to be unambiguous in order for the generic interface to dispatch based on it.
In other words, we'd need the generic interface to look more like this:
(define-generics form
  (make form . args)

... where args is a packed arguments structure. As far as I can tell this isn't possible with the existing define-generics form, so that could motivate either a possible define-generics/arguments form, or, maybe even make a case for core-level support for arbitrary packed arguments (e.g. python). While generic interfaces are outside the scope of the present issue, this is a situation where in principle we'd need to / like to be able to syntactically unpack at least one argument for dispatch purposes.


Cluster fails to restart with embedded etcd after quorum loss

Environmental Info:
K3s Version:

k3s version v1.19.1-rc1+k3s1 (041f18f6)
Node(s) CPU architecture, OS, and Version:

Linux ip-172-31-33-84 5.4.0-1021-aws #21-Ubuntu SMP Fri Jul 24 09:42:29 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Cluster Configuration:

3 masters
Describe the bug:

After a cluster with embedded etcd loses quorum, it fails to restore itself to a snapshot. Resetting appears to work, but then when bringing it back up with the cluster-reset flags it fails to properly restart the k3s service.
Steps To Reproduce:

Create a 3 server node cluster using embedded etcd. For this I created the first node using a config.yaml with:

etcd-snapshot-retention: 7
etcd-snapshot-schedule-cron: "*/5 * * * *"
datastore-endpoint: "etcd"
cluster-init: true

Second node config.yaml:
etcd-snapshot-retention: 3
etcd-snapshot-schedule-cron: "*/5 * * * *"
datastore-endpoint: "etcd"
token: "<token value>"
server: "https://<Node 1 Private IP>:6443"

Third node config.yaml:
token: "<token value>"
server: "https://<Node 1 private ip>:6443"

Shutdown the second and third nodes -- notice the cluster loses quorum and is no longer available.
Restart the cluster:

curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.19.1-rc1+k3s1 INSTALL_K3S_EXEC="--cluster-reset --cluster-reset-restore-path /var/lib/rancher/k3s/server/db/snapshots/etcd-snapshot-1599756900 --write-kubeconfig-mode=644" sh -

curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.19.1-rc1+k3s1 INSTALL_K3S_EXEC="--write-kubeconfig-mode=644" sh -

Expected behavior:

Cluster should reset pointing to the snapshot mentioned
Actual behavior:

Cluster fails entirely to restart
Additional context / logs:

Logs show the following repeated. Note the IPs there are the private IPs of the shutdown instances.
Sep 10 21:06:04 ip-172-31-33-84 k3s[22374]: health check for peer 1452de22a8af4e15 could not connect: dial tcp <IP_ADDRESS>:2380: connect: no route to host
Sep 10 21:06:04 ip-172-31-33-84 k3s[22374]: health check for peer 27aeaddcf200f666 could not connect: dial tcp <IP_ADDRESS>:2380: connect: no route to host
Sep 10 21:06:04 ip-172-31-33-84 k3s[22374]: health check for peer 27aeaddcf200f666 could not connect: dial tcp <IP_ADDRESS>:2380: connect: no route to host
Sep 10 21:06:04 ip-172-31-33-84 k3s[22374]: health check for peer 1452de22a8af4e15 could not connect: dial tcp <IP_ADDRESS>:2380: connect: no route to host
Sep 10 21:06:09 ip-172-31-33-84 k3s[22374]: health check for peer 1452de22a8af4e15 could not connect: dial tcp <IP_ADDRESS>:2380: connect: no route to host
Sep 10 21:06:09 ip-172-31-33-84 k3s[22374]: health check for peer 27aeaddcf200f666 could not connect: dial tcp <IP_ADDRESS>:2380: connect: no route to host
Sep 10 21:06:09 ip-172-31-33-84 k3s[22374]: health check for peer 1452de22a8af4e15 could not connect: dial tcp <IP_ADDRESS>:2380: connect: no route to host
Sep 10 21:06:09 ip-172-31-33-84 k3s[22374]: health check for peer 27aeaddcf200f666 could not connect: dial tcp <IP_ADDRESS>:2380: connect: no route to host
Sep 10 21:06:10 ip-172-31-33-84 k3s[22374]: raft2020/09/10 21:06:10 INFO: ffded0edfeceea20 is starting a new election at term 1458
Sep 10 21:06:10 ip-172-31-33-84 k3s[22374]: raft2020/09/10 21:06:10 INFO: ffded0edfeceea20 became candidate at term 1459
Sep 10 21:06:10 ip-172-31-33-84 k3s[22374]: raft2020/09/10 21:06:10 INFO: ffded0edfeceea20 received MsgVoteResp from ffded0edfeceea20 at term 1459
Sep 10 21:06:10 ip-172-31-33-84 k3s[22374]: raft2020/09/10 21:06:10 INFO: ffded0edfeceea20 [logterm: 3, index: 17857] sent MsgVote request to 1452de22a8af4e15 at term 1459
Sep 10 21:06:10 ip-172-31-33-84 k3s[22374]: raft2020/09/10 21:06:10 INFO: ffded0edfeceea20 [logterm: 3, index: 17857] sent MsgVote request to 27aeaddcf200f666 at term 1459
Sep 10 21:06:14 ip-172-31-33-84 k3s[22374]: {"level":"warn","ts":"2020-09-10T21:06:14.352Z","caller":"clientv3/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"passthrough:///https://<IP_ADDRESS>:2379","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = context deadline exceeded"}
Sep 10 21:06:14 ip-172-31-33-84 k3s[22374]: time="2020-09-10T21:06:14.353007187Z" level=info msg="Failed to test data store connection: context deadline exceeded"
Sep 10 21:06:14 ip-172-31-33-84 k3s[22374]: WARNING: 2020/09/10 21:06:14 grpc: addrConn.createTransport failed to connect to {https://<IP_ADDRESS>:2379  <nil> 0 <nil>}. Err :connection error: desc = "transport: authentication handshake failed: context canceled". Reconnecting...
Sep 10 21:06:14 ip-172-31-33-84 k3s[22374]: health check for peer 27aeaddcf200f666 could not connect: dial tcp <IP_ADDRESS>:2380: connect: no route to host
Sep 10 21:06:14 ip-172-31-33-84 k3s[22374]: health check for peer 27aeaddcf200f666 could not connect: dial tcp <IP_ADDRESS>:2380: connect: no route to host
Sep 10 21:06:14 ip-172-31-33-84 k3s[22374]: health check for peer 1452de22a8af4e15 could not connect: dial tcp <IP_ADDRESS>:2380: connect: no route to host
Sep 10 21:06:14 ip-172-31-33-84 k3s[22374]: health check for peer 1452de22a8af4e15 could not connect: dial tcp <IP_ADDRESS>:2380: connect: no route to host
Sep 10 21:06:17 ip-172-31-33-84 k3s[22374]: raft2020/09/10 21:06:17 INFO: ffded0edfeceea20 is starting a new election at term 1459
Sep 10 21:06:17 ip-172-31-33-84 k3s[22374]: raft2020/09/10 21:06:17 INFO: ffded0edfeceea20 became candidate at term 1460
Sep 10 21:06:17 ip-172-31-33-84 k3s[22374]: raft2020/09/10 21:06:17 INFO: ffded0edfeceea20 received MsgVoteResp from ffded0edfeceea20 at term 1460
Sep 10 21:06:17 ip-172-31-33-84 k3s[22374]: raft2020/09/10 21:06:17 INFO: ffded0edfeceea20 [logterm: 3, index: 17857] sent MsgVote request to 1452de22a8af4e15 at term 1460
Sep 10 21:06:17 ip-172-31-33-84 k3s[22374]: raft2020/09/10 21:06:17 INFO: ffded0edfeceea20 [logterm: 3, index: 17857] sent MsgVote request to 27aeaddcf200f666 at term 1460
Sep 10 21:06:19 ip-172-31-33-84 k3s[22374]: publish error: etcdserver: request timed out

Validated using commitid: beab211685805a481ffa61070ec53ddefd1adf03

Cluster restores successfully to the snapshot selected
The stopped nodes are shown in the cluster correctly in NotReady state:

$ k get nodes
NAME               STATUS     ROLES         AGE   VERSION
ip-172-31-19-85    NotReady   etcd,master   36m   v1.19.1+k3s-beab2116
ip-172-31-22-3     NotReady   etcd,master   29m   v1.19.1+k3s-beab2116
ip-172-31-30-163   Ready      etcd,master   39m   v1.19.1+k3s-beab2116

The nodes are able to be deleted successfully:

$ k delete nodes ip-172-31-19-85 ip-172-31-22-3
node "ip-172-31-19-85" deleted
node "ip-172-31-22-3" deleted
$ k get nodes
NAME               STATUS   ROLES         AGE   VERSION
ip-172-31-30-163   Ready    etcd,master   39m   v1.19.1+k3s-beab2116

Workloads are able to be added, deleted, and modified.
New etcd nodes are able to be joined

For this, I find it best practice during a quorum loss to delete the NotReady nodes from the cluster, run k3s-uninstall script on the node after powering it back on, and then rejoin the node using the same steps as before.


Update marathoninfinity.sh

Alephone changed the app name of Marathon Infinity from Marathon Infinity.app to "Classic Marathon Infinity.app". This addresses #1497
Log attached of the output of sudo utils/assemble.sh marathoninfinity DEBUG=0
marathoninfinitylog.txt

Thank you!


initial commit

Hi, I am trying to create a partition file for the song Heart and Soul and I'm pretty musically challenged, so it's not going too well. I would really appreciate any help you could provide.


[fix][ci] Fix deprecation warnings about set-output in GitHub Action workflows

Motivation
Error message is:
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

Modifications
Use the recommended fix by GitHub.
Other context
The actions used by Pulsar CI workflows will need to be upgraded to use @actions/core package version v1.10.0 or greater.
For example, paths-filter should be synced with the most recent release that contains the fix, https://github.com/dorny/paths-filter/releases/tag/v2.11.1 .
Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

@nicoloboschi @tisonkun please review

Codecov Report

Merging #18048 (18dcaeb) into master (6c65ca0) will decrease coverage by 11.20%.
The diff coverage is 20.00%.

@@              Coverage Diff              @@
##             master   #18048       +/-   ##
=============================================
- Coverage     34.91%   23.70%   -11.21%
+ Complexity     5707     2998     -2709
=============================================
  Files           607      367      -240
  Lines         53396    41176    -12220
  Branches       5712     4217     -1495
=============================================
- Hits          18644     9762     -8882
+ Misses        32119    29825     -2294
+ Partials       2633     1589     -1044

Flag
Coverage Δ

unittests
23.70% <20.00%> (-11.21%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.


Add (README.md): Add instructions for setting up systemd service

From Adam's work here.

Resolves #7.


ERROR coverm::bam_generator] Error when running mapping process.

Hello I'm running rosella under the following parameters
rosella recover -r assembly/final.contigs.fa -1 R1 -2 R2 -o rosella_bins --threads 12
and I'm getting the following error:

[2023-01-19T19:34:15Z INFO  coverm::mapping_index_maintenance] Finished generating MINIMAP2_SR index.
[2023-01-19T19:34:15Z INFO  rosella::utils] Generating reference index
[2023-01-19T19:34:23Z INFO  rosella::estimation::contig] Processing short reads...
[2023-01-19T23:32:18Z ERROR coverm::bam_generator] Failed to correctly find or parse BAM file at "/tmp/coverm_fifo.raeHhTO53I9M/foo.pipe": unable to open SAM/BAM/CRAM file at /tmp/coverm_fifo.raeHhTO53I9M/foo.pipe
[2023-01-19T23:32:18Z ERROR coverm::bam_generator] Error when running mapping process. Exitstatus was ExitStatus(unix_wait_status(256)). Command run was: ["bash -c "set -e -o pipefail; minimap2 --split-prefix /tmp/.tmpw1HWzz -a -x sr  -t 12  '/tmp/coverm-mapping-index.uWVjizYKyBNs/final.contigs.fa' 'SLF11_TGAACCTG-ACCTCTTC_L00M_R1_001.fastq.gz' 'SLF11_TGAACCTG-ACCTCTTC_L00M_R2_001.fastq.gz' 2>/tmp/.tmp5MYX1r | samtools sort -T '/tmp/coverm_fifo.raeHhTO53I9M/coverm-make-samtools-sort8zxM30' -l0 -@ 11 2>/tmp/.tmpGLYY5w |tee "/tmp/coverm_fifo.raeHhTO53I9M/foo.pipe" |samtools view  -@ 11 -b -o '/tmp/rosella_fifo.WBCCwgVuzrl9/short//final.contigs.fa.SLF11_TGAACCTG-ACCTCTTC_L00M_R1_001.fastq.gz.bam' 2>/tmp/.tmpZEgxH5""]
[2023-01-19T23:32:18Z ERROR coverm::bam_generator] The STDERR for the MINIMAP2_SR part was: [M::main::6.3351.00] loaded/built the index for 375035 target sequence(s)
[M::mm_mapopt_update::6.3351.00] mid_occ = 1000
[M::mm_idx_stat] kmer size: 21; skip: 11; is_hpc: 0; #seq: 375035
[M::mm_idx_stat::7.2661.00] distinct minimizers: 60939766 (95.32% are singletons); average occurrences: 1.101; average spacing: 6.127; total length: 411083245
[M::worker_pipeline::112.42710.19] mapped 377072 sequences
[M::worker_pipeline::241.65710.56] mapped 376102 sequences
[M::worker_pipeline::386.60110.66] mapped 375472 sequences
[M::worker_pipeline::599.09510.75] mapped 376540 sequences
[M::worker_pipeline::747.39610.77] mapped 377232 sequences
[M::worker_pipeline::852.95510.78] mapped 376498 sequences
[M::worker_pipeline::964.65410.80] mapped 376502 sequences
[M::worker_pipeline::1125.32610.80] mapped 376626 sequences
[M::worker_pipeline::1300.30610.81] mapped 376596 sequences
[M::worker_pipeline::1404.00710.82] mapped 376796 sequences
[M::worker_pipeline::1514.84710.82] mapped 376150 sequences
[M::worker_pipeline::1646.06710.83] mapped 376546 sequences
[M::worker_pipeline::1848.44610.84] mapped 377114 sequences
[M::worker_pipeline::1951.68410.84] mapped 376702 sequences
[M::worker_pipeline::2068.47510.85] mapped 376552 sequences
[M::worker_pipeline::2187.98610.85] mapped 376960 sequences
[M::worker_pipeline::2394.43310.86] mapped 377522 sequences
[M::worker_pipeline::2492.53210.85] mapped 375962 sequences
[M::worker_pipeline::2612.53310.85] mapped 376542 sequences
[M::worker_pipeline::2738.40410.86] mapped 376254 sequences
[M::worker_pipeline::2959.10910.86] mapped 376890 sequences
[M::worker_pipeline::3077.79210.86] mapped 376002 sequences
[M::worker_pipeline::3208.63810.86] mapped 375448 sequences
[M::worker_pipeline::3366.33910.86] mapped 376082 sequences
[M::worker_pipeline::3567.19410.86] mapped 377100 sequences
[M::worker_pipeline::3745.16410.87] mapped 376752 sequences
[M::worker_pipeline::3850.76310.87] mapped 376194 sequences
[M::worker_pipeline::4000.33910.87] mapped 376284 sequences
[M::worker_pipeline::4157.35210.87] mapped 376488 sequences
[M::worker_pipeline::4356.39410.87] mapped 376652 sequences
[M::worker_pipeline::4461.01610.87] mapped 375978 sequences
[M::worker_pipeline::4571.99110.87] mapped 375486 sequences
[M::worker_pipeline::4699.68210.87] mapped 375678 sequences
[M::worker_pipeline::4905.64710.88] mapped 376358 sequences
[M::worker_pipeline::5000.81810.88] mapped 376202 sequences

Thought minimap2 was not installed but it is under my conda environment where rosella is installed.  May it be a unix problem?

"ExitStatus(unix_wait_status(256))"

Bests,
Valentín.

Hi Valentín,
My first guess would be that /tmp/ is getting filled up during the mapping process and minimap2 quits out unexpectedly. Could you check how full /tmp is and then also maybe rerun the same command as before but with TMPDIR=/path/to/another/directory in front of the command?
e.g. TMPDIR=/path/ rosella ...
Cheers,
Rhys

Hi,
just wanted to mention that I had the same problem and I solved by exporting a new TMPDIR variable as you suggested.
thank you!


Profile & Debug builds

What's thoughts on also including Profile & Debug builds in the dist folder?

I don't have any experience in debugging wasm code and always assumed there aren't any useful tools to do that. Therefore I didn't see the point in providing such builds.
However, apparently there are ways to do that so adding debug builds seems to be a good idea.

If I remember correctly a WASM Debug/Profile build shows the C++ function name when running a CPU profiling via Chrome Profiler.
Also PhysX debug builds include stuff for the PhysX VisualDebugger (Can use websockify to then use it via browser)
https://gameworksdocs.nvidia.com/PhysX/4.1/documentation/physxguide/Manual/VisualDebugger.html

Alright, I added wasm binaries for debug and profile builds (in dist-debug/ and dist-profile respectively).
However, I haven't yet added any web-idl bindings to Pvd stuff, as that requires a bit more work and I'm quite busy at the moment :/

Ace. I'll try giving it a go & pull-request

@lucas-jones Hey, did you manage to send data to PVD from the browser?

Yes. Just proxying the data via websockify.
Make sure you're using a profile build.
websockify 8090 <IP_ADDRESS>:5425
https://gist.github.com/lucas-jones/3b62e0ff621b27555be3d15782b59518

Thanks for the quick reply. I will give it a try 👍


.NET Framework 4.8.1 Support

When trying to use MvvmDialogs targeting .NET FW 4.8.1 it gives me compatibility errors.
I am using C# 11
error MSB4018: System.ArgumentException: Invalid framework version '4.8.1/win7-x86'.
error MSB4018:    in NuGet.Frameworks.NuGetFramework.ParseFrameworkNameParts(IFrameworkNameProvider mappings, String[] parts, String& framework, Version& version, String& profile)

that's with WPF?

I'm using HanumanInstitute.MvvmDialogs.Avalonia

Avalonia itself requires .NET Core 3.1
https://github.com/AvaloniaUI/Avalonia/wiki/Runtime-Requirements

On their website it is mentioned that Avalonia is compatible with .NET Standard 2.0.
https://docs.avaloniaui.net/

From NuGet also I see it's compatible with all .NET Frameworks above 4.6.1
https://www.nuget.org/packages/Avalonia/11.0.0-preview8#supportedframeworks-body-tab
I also checked the project files in Avalonia repository and they seems to target both .NET 6.0 / .NET Standard 2.0:
<TargetFrameworks>net6.0;netstandard2.0</TargetFrameworks>
In my case I want to try to target Windows 7 using .NET Framework and would be nice if MvvmDialogs.Avalonia can support this as well.

You're right.
I opened a ticket here about this discrepancy.
https://github.com/AvaloniaUI/Avalonia/issues/11538

Fixed in v2.0-rc1
https://github.com/mysteryx93/HanumanInstitute.MvvmDialogs/releases/tag/v2.0-rc1


Update the footer to match the footer used in the Platform

Currently, the footer of the Genetics Portal looks like this:

However, David has asked that we use the footer found in the Platform to ensure consistency:

Sounds good Andrew.
We just need to change the support email under ‘Help’.
Best,
Maya
--
Maya Ghoussaini, PhD
Genetic Analysis Team Leader
Open Targets, Wellcome Trust Sanger Institute
Hinxton, Cambridge CB10 1SD, UK
Tel: +44 (0)<PHONE_NUMBER>
Email: mg29<EMAIL_ADDRESS>From: Andrew Hercules<EMAIL_ADDRESS>Reply-To: opentargets/genetics<EMAIL_ADDRESS>Date: Monday, 1 October 2018 at 15:12
To: opentargets/genetics<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [opentargets/genetics] Update the footer to match the footer used in the Platform (#169)
Currently, the footer of the Genetics Portal looks like this:
[screen shot 2018-10-01 at 15 08 58]https://urldefense.proofpoint.com/v2/url?u=https-3A__user-2Dimages.githubusercontent.com_7490258_46293663-2D10a2d400-2Dc58c-2D11e8-2D929e-2D4637df4c8774.png&d=DwMCaQ&c=D7ByGjS34AllFgecYw0iC6Zq7qlm8uclZFI0SqQnqBo&r=Aush8haVNQv3Cbg5voWXggyiSQ8DTw3yQv8KnEt8Ne4&m=0K32CUtfZ4kpLuvVNuGwii6wFQ1EO3keRJwL9LFQbF4&s=pjUYWg1RxyEl8mhj448srPHIJ6Da8mIzXz_95U8guoU&e=
However, David has asked that we use the footer found in the Platform to ensure consistency:
[screen shot 2018-10-01 at 15 09 17]https://urldefense.proofpoint.com/v2/url?u=https-3A__user-2Dimages.githubusercontent.com_7490258_46293695-2D2adcb200-2Dc58c-2D11e8-2D8772-2D00b3b518c684.png&d=DwMCaQ&c=D7ByGjS34AllFgecYw0iC6Zq7qlm8uclZFI0SqQnqBo&r=Aush8haVNQv3Cbg5voWXggyiSQ8DTw3yQv8KnEt8Ne4&m=0K32CUtfZ4kpLuvVNuGwii6wFQ1EO3keRJwL9LFQbF4&s=5TBpvC8tHMRip_p2hTE5ES6ce_A3fzVAQSccrjvJsJI&e=
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_opentargets_genetics_issues_169&d=DwMCaQ&c=D7ByGjS34AllFgecYw0iC6Zq7qlm8uclZFI0SqQnqBo&r=Aush8haVNQv3Cbg5voWXggyiSQ8DTw3yQv8KnEt8Ne4&m=0K32CUtfZ4kpLuvVNuGwii6wFQ1EO3keRJwL9LFQbF4&s=C2JcbZDWw56QNRq-fhKWzY9lnLBe4N97vvtlL4qrHTU&e=, or mute the threadhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AahKynhA07Z9vGoIVXxTSyHPaYP-5FOq-5Ftks5ugiLWgaJpZM4XCKCg&d=DwMCaQ&c=D7ByGjS34AllFgecYw0iC6Zq7qlm8uclZFI0SqQnqBo&r=Aush8haVNQv3Cbg5voWXggyiSQ8DTw3yQv8KnEt8Ne4&m=0K32CUtfZ4kpLuvVNuGwii6wFQ1EO3keRJwL9LFQbF4&s=KsAtPnamcuzZFeJqrydsOhqkbl0SKHxB82QEdbp8nJA&e=.
--
The Wellcome Sanger Institute is operated by Genome Research
Limited, a charity registered in England with number 1021457 and a
company registered in England with number 2742969, whose registered
office is 215 Euston Road, London, NW1 2BE.

Thanks @MayaGhoussaini - good point. @mirandaio and @peatroot, can we please make sure that the email address is<EMAIL_ADDRESS>:-)

@andrewhercules @MayaGhoussaini yep 👍

Minor discrepancies can still be observed:
Portal: ("Connect with us", order of the social media icons - Facebook first-, and order of partners: alphabetical)

Platform: ("Follow us", order of the social media icons, - LinkedIn first-, and order of partners: Celgene last)

So we'd need to choose:

"Connect with us" or "Follow us" (I'd recommend "Follow us" as in the Platform we have the "Follow us" at the side of the pages as well

The social media icon order (I have no preference)

The partner names' order (I'd recommend alphabetical. So Platform needs changing. Perhaps one for @LucaFumis?)

For the ASHG release, this is being marked as done and closed. The discrepancies are minor enough that they don't impact overall functionality.
There will be another ticket opened where we can put polish-related issues and then prioritise from that - will be discussed during Monday's meeting.
And in terms of changes to the Platform footer, I have recommended to the team that we rebuild the footer for both the Platform and Portal as part of a broader re-branding and component building exercise.

Thanks a lot @andrewhercules for your comments. Much appreciated. Great to know there will be a broader re-branding and component building exercise sometime soon.
I think footer in general does not impact the functionality of any website, let alone the Genetics Portal or the Open Targets Platform.
I have noticed from workshops on the Platform that people don't really seem to pay attention on footers, they don't even know there are important info there such as release notes.
The original ticket was about consistency. My suggestions as stated in the reopened ticked were minor, but nevertheless still consistency related.


ScientificAmericanBridge broken

Details
Type: Error
Code: 0
Message: Call to a member function find() on null
File: bridges/ScientificAmericanBridge.php
Line: 69
Trace
#0 index.php(7): RssBridge->main()
#1 lib/RssBridge.php(18): RssBridge->run()
#2 lib/RssBridge.php(102): DisplayAction->execute()
#3 actions/DisplayAction.php(23): DisplayAction->createResponse()
#4 actions/DisplayAction.php(129): ScientificAmericanBridge->collectData()
#5 bridges/ScientificAmericanBridge.php(34): ScientificAmericanBridge->collectIssues()
#6 bridges/ScientificAmericanBridge.php(69)

Context
Query: action=display&bridge=ScientificAmericanBridge&parseIssues=0&addContents=on&format=Html
Version: dev.2023-07-11 (git.fix-80.556bca5)
OS: Linux
PHP: 7.4.33

unable to find issues in $issues = $issues_root->find('div.store-listing-group__item');
@SqrtMinusOne

Fixed in https://github.com/RSS-Bridge/rss-bridge/pull/3575. The developers have removed the data attributes on the issues page.


Hide manage button for non-admins

Task linked: CU-2echnwe Hide manage button from nav when a user is not an admin


PRNG :OS does not work in multi-threaded applications on CCL

CCL raises error Stream #<BASIC-FILE-BINARY-INPUT-STREAM ("/dev/urandom"/10 ISO-8859-1) #x30200241F31D> is private to #<PROCESS Anonymous thread(78) [Sleep] #x3020022B5D2D> when the OS prng is used in multi-threaded applications, eg inside Hunchentoot request handlers.
See https://ccl.clozure.com/docs/ccl.html#additional-keywords-for-open-and-make-socket
The code below shows the problem when run on CCL
(progn
  (setf ironclad:*PRNG* (ironclad:make-prng :os))
  (bordeaux-threads:make-thread
   (lambda ()
     (format t "Thread1: ~A~%" (ironclad:make-random-salt))
     (sleep 0.1)))

  (bordeaux-threads:make-thread
   (lambda ()
     (format t "Thread2: ~A~%" (ironclad:make-random-salt))
     (sleep 0.1))))

The fortuna prng does work.
Clozure Common Lisp Version 1.12-dev/v1.12-dev.1  (LinuxX8664)
Kubuntu 18.04

This seems like a CCL feature. Based on a quick inspection, it seems like the prngs aren't thread-safe so you shouldn't be sharing them across threads.

Thanks.
This works
(progn
  (bordeaux-threads:make-thread
   (lambda ()
     (let* ((ironclad:*PRNG* (ironclad:make-prng :os)))
       (format t "Thread1: ~A~%" (ironclad:make-random-salt)))))

  (bordeaux-threads:make-thread
   (lambda ()
     (let ((ironclad:*PRNG* (ironclad:make-prng :os)))
       (format t "Thread2: ~A~%" (ironclad:make-random-salt))))))

#14 fixed this, I believe.


add more examples and tests

BEGINRELEASENOTES

add tests write_events and read_events
- implement code for MCParticle, SimTrackerHit and SimCalorimeterHit
add file for creating doxygen documentation
add missing c'tors and operators to Vector components
make use of HepMC and PDT optional

ENDRELEASENOTES

Checks still fail due to putdated podio in cvmfs...


url error

404 not found

Hey @imSyntn thanks for reporting the issue, could you pls share the URL/city you're trying to access?

Sorry my bad. It's working now https://goweather.herokuapp.com/weather/Curitiba


Added host option

Add host optoion.

This is add set host option by argv as following option.
--host
-H

I needed this option to access json-server from not local machine.
So I added host option same way of set port.

@cotarou Thanks for the PR.
By the way, if you need to access server from another machine you can use xip.io with katon or minihost
http://[app].[your LAN address].xip.io

Just noticed that host var isn't used in .listen. Does the PR really solve your problem?
Also from the doc for .listen "If the hostname is omitted, the server will accept connections directed to any IPv4 address (INADDR_ANY)".

@typicode Thanks a lot accept my PR.
And I did not know these product... It's very useful information. Thanks very much for your information.
My problem was I could not access json-server from other machine. The other machine
access to json-server by ip address directory to get JSON data.
So my problem solved by my PR. But it's might be only in my case...
I didn't research for other environment like IPv6.


Image Permissions

Need to add file permission at save.
example.
$img->save('path', 90, 0755).

No, there are other ways to do that.

how ??


docs: update node version link

:tada: This PR is included in version 1.4.0 :tada:
The release is available on:

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


CORS doesn't work on Paginated Routes/Request

Hi guys great work on this package!
After following all the guidelines in the doc correctly
I noticed cor headers get populated in regular routes which is normal...
    Route::get('/blog/posts/all', 'BlogController@getAllPosts');
    // i.e. http://site.com/api/blog/posts/all

but the headers don't get populated in paginated routes
    Route::get('/blog/posts/', 'BlogController@getPaginatedPosts');
    // i.e. http://site.com/api/blog/post/?page=4 -> This doesn't get loaded with the cor headers.

No errors in your log?

Could you give it a try with v2.0?

same issue with ^2.0

I have the same issue with ^2.0. I am using the Eloquent paginate in combination with https://github.com/spatie/laravel-query-builder :
$bankProfiles = QueryBuilder::for(BankProfile::class)
            ->defaultSort("name")
            ->allowedSorts("name", "postal_code", "city", "approved", "data_completed")
            ->allowedFilters("name", "postal_code_city", "city")
            ->paginate($request->query("per_page"));

There are no Error Logs and the following headers are missing:
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://frontend.site.test

The strange thing is that it worked before and that it works on my local environment. After I added some features to the application and released it to the staging, it suddenly stoped to work. It took me a while to localize the error source.

@barryvdh No errors at all,  it just doesn't send the appropriate cors once there's a query in the url.
Had to set up a CORSMiddleware.php
    public function handle(Request $request, Closure $next)
    {
        return $next($request)
            ->header('Access-Control-Allow-Origin', '*')
            ->header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE, OPTIONS, post, get')
            ->header("Access-Control-Max-Age", "3600")
            ->header('Access-Control-Allow-Headers', 'Origin, Content-Type, X-Auth-Token')
            ->header("Access-Control-Allow-Credentials", "true");
    }

then in Kernel.php
    ...
    'cors' => [
        \App\Http\Middleware\CORSMiddleware::class
    ],
    ...

in api.php
Route::group(['namespace' => 'App\Http\Controllers', 'middleware' => ['api', 'cors']], function () { ... });

Hey @stanislavhannes You could do, this. Since I logged the issue I have been doing it this way side-by-side fruitcake/laravel-cors with no issues on several projects now.

@barryvdh Sorry this is coming super late.
No errors at all, it just doesn't send the appropriate cors once there's a query string in the url.
Had to set up a CORSMiddleware.php
    public function handle(Request $request, Closure $next)
    {
        return $next($request)
            ->header('Access-Control-Allow-Origin', '*')
            ->header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE, OPTIONS, post, get')
            ->header("Access-Control-Max-Age", "3600")
            ->header('Access-Control-Allow-Headers', 'Origin, Content-Type, X-Auth-Token')
            ->header("Access-Control-Allow-Credentials", "true");
    }

then in Kernel.php
    ...
    'cors' => [
        \App\Http\Middleware\CORSMiddleware::class
    ],
    ...

in api.php
Route::group(['namespace' => 'App\Http\Controllers', 'middleware' => ['api', 'cors']], function () { ... });

Hey @stanislavhannes You could do, this. Since I logged the issue I have been doing it this way side-by-side fruitcake/laravel-cors with no issues on several projects now.

This has still not been resolved. I wonder if there's a pull request to fix this already


selectNodeVersion not working on Github Actions deploy

Deployment via Github Actions for an Azure web app fails on linux.
Here are my files:
deploy.sh:
#!/bin/bash

# ----------------------
# KUDU Deployment Script
# Version: 1.0.17
# ----------------------

# Helpers
# -------

exitWithMessageOnError () {
  if [ ! $? -eq 0 ]; then
    echo "An error has occurred during web site deployment."
    echo $1
    exit 1
  fi
}

# Prerequisites
# -------------

# Verify node.js installed
hash node 2>/dev/null
exitWithMessageOnError "Missing node.js executable, please install node.js, if already installed make sure it can be reached from current environment."

# Setup
# -----

SCRIPT_DIR="${BASH_SOURCE[0]%\\*}"
SCRIPT_DIR="${SCRIPT_DIR%/*}"
ARTIFACTS=$SCRIPT_DIR/../artifacts
KUDU_SYNC_CMD=${KUDU_SYNC_CMD//\"}

if [[ ! -n "$DEPLOYMENT_SOURCE" ]]; then
  DEPLOYMENT_SOURCE=$SCRIPT_DIR
fi

if [[ ! -n "$NEXT_MANIFEST_PATH" ]]; then
  NEXT_MANIFEST_PATH=$ARTIFACTS/manifest

  if [[ ! -n "$PREVIOUS_MANIFEST_PATH" ]]; then
    PREVIOUS_MANIFEST_PATH=$NEXT_MANIFEST_PATH
  fi
fi

if [[ ! -n "$DEPLOYMENT_TARGET" ]]; then
  DEPLOYMENT_TARGET=$ARTIFACTS/wwwroot
else
  KUDU_SERVICE=true
fi

if [[ ! -n "$KUDU_SYNC_CMD" ]]; then
  # Install kudu sync
  echo Installing Kudu Sync
  npm install kudusync -g --silent
  exitWithMessageOnError "npm failed"

  if [[ ! -n "$KUDU_SERVICE" ]]; then
    # In case we are running locally this is the correct location of kuduSync
    KUDU_SYNC_CMD=kuduSync
  else
    # In case we are running on kudu service this is the correct location of kuduSync
    KUDU_SYNC_CMD=$APPDATA/npm/node_modules/kuduSync/bin/kuduSync
  fi
fi

# Node Helpers
# ------------

selectNodeVersion () {
  if [[ -n "$KUDU_SELECT_NODE_VERSION_CMD" ]]; then
    SELECT_NODE_VERSION="$KUDU_SELECT_NODE_VERSION_CMD \"$DEPLOYMENT_SOURCE\" \"$DEPLOYMENT_TARGET\" \"$DEPLOYMENT_TEMP\""
    eval $SELECT_NODE_VERSION
    exitWithMessageOnError "select node version failed"

    if [[ -e "$DEPLOYMENT_TEMP/__nodeVersion.tmp" ]]; then
      NODE_EXE=`cat "$DEPLOYMENT_TEMP/__nodeVersion.tmp"`
      exitWithMessageOnError "getting node version failed"
    fi

    if [[ -e "$DEPLOYMENT_TEMP/__npmVersion.tmp" ]]; then
      NPM_JS_PATH=`cat "$DEPLOYMENT_TEMP/__npmVersion.tmp"`
      exitWithMessageOnError "getting npm version failed"
    fi

    if [[ ! -n "$NODE_EXE" ]]; then
      NODE_EXE=node
    fi

    NPM_CMD="\"$NODE_EXE\" \"$NPM_JS_PATH\""
  else
    NPM_CMD=npm
    NODE_EXE=node
  fi
}

##################################################################################################################################
# Deployment
# ----------

echo Handling node.js deployment.

# 1. KuduSync
if [[ "$IN_PLACE_DEPLOYMENT" -ne "1" ]]; then
  "$KUDU_SYNC_CMD" -v 50 -f "$DEPLOYMENT_SOURCE" -t "$DEPLOYMENT_TARGET" -n "$NEXT_MANIFEST_PATH" -p "$PREVIOUS_MANIFEST_PATH" -i ".git;.hg;.deployment;deploy.sh"
  exitWithMessageOnError "Kudu Sync failed"
fi

# 2. Select node version
selectNodeVersion

# 3. Install npm packages
if [ -e "$DEPLOYMENT_TARGET/package.json" ]; then
  cd "$DEPLOYMENT_TARGET"

  echo "Running yarn install"
  eval yarn install
  echo "Build!"
  eval yarn rw build api
  exitWithMessageOnError "yarn failed"
  cd - > /dev/null
fi

##################################################################################################################################
echo "Finished successfully."

.deployment:
[config]
command = bash deploy.sh
WEBSITE_NODE_DEFAULT_VERSION=18.12.0

My Github action:
name: Build and deploy Node.js app to Azure Web App

on:
  push:
    branches:
      - main
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Upload artifact for deployment job
        uses<EMAIL_ADDRESS>        with:
          name: node-app
          path: .

  deploy:
    runs-on: ubuntu-latest
    needs: build
    environment:
      name: 'Production'
      url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}

    steps:
      - name: Download artifact from build job
        uses<EMAIL_ADDRESS>        with:
          name: node-app

      - name: 'Deploy to Azure Web App'
        id: deploy-to-webapp
        uses: azure/webapps-deploy@v2
        with:
          app-name: 'my_app'
          slot-name: 'Production'
          publish-profile: ${{ secrets.SECRET_HERE }}
          package: .

And then the output I get:
/opt/Kudu/Scripts/selectNodeVersion.js:166
An error has occurred during web site deployment.
    throw new Error('Unable to locate node.js installation directory at ' + nodejsDir);
select node version failed
    ^

Error: Unable to locate node.js installation directory at /opt/nodejs
    at Object.<anonymous> (/opt/Kudu/Scripts/selectNodeVersion.js:166:11)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:12)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:[75](https://github.com/GetAGame-app/getagame2023/actions/runs/4478534776/jobs/7871427631#step:4:76):12)
    at internal/main/run_main_module.js:17:47
/opt/Kudu/Scripts/selectNodeVersion.js:166\n    throw new Error('Unable to locate node.js installation directory at ' + nodejsDir);\n    ^\n\nError: Unable to locate node.js installation directory at /opt/nodejs\n    at Object.<anonymous> (/opt/Kudu/Scripts/selectNodeVersion.js:166:11)\n    at Module._compile (internal/modules/cjs/loader.js:1085:14)\n    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)\n    at Module.load (internal/modules/cjs/loader.js:950:32)\n    at Function.Module._load (internal/modules/cjs/loader.js:[79](https://github.com/GetAGame-app/getagame2023/actions/runs/4478534776/jobs/7871427631#step:4:80)0:12)\n    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:75:12)\n    at internal/main/run_main_module.js:17:47\n/opt/Kudu/Scripts/starter.sh bash deploy.sh
Deployment Failed. deployer = GITHUB_ZIP_DEPLOY deploymentPath = ZipDeploy. Extract zip.
Error: Failed to deploy web package to App Service.
Error: Deployment Failed with Error: Package deployment using ZIP Deploy failed. Refer logs for more details.

The issue is that nodejs does not exist inside of /opt on the machine. I don't know how to get it there, or why it's not there, but I've experimented with new installs for node 18-lts and can confirm that with a new Azure Web App install this does not work.
Any help would be appreciated!

Thanks! We'll be in touch soon.

Same issue here, any help appreciated.

I am also having the same issue

Same issue here, we're trying to use node 18 for our custom deploy scripts which runs yarn install. However the packages we use require node version >= 16 since node 14 is now deprecated.

Hi @raph90 can you please check if you have this Env variable "SCM_SCRIPT_GENERATOR_ARGS" in your app settings and remove it before retrying?

Unfortunatly we do see this problem now as well. We didn't touch a thing. Latest success was in 2023-01, but when we tried our next deploy in 2023-07 we do run into troubles...
remote: /opt/Kudu/KuduConsole/Scripts/selectNodeVersion.js:166
remote:     throw new Error('Unable to locate node.js installation directory at ' + nodejsDir);
remote:     ^
remote:
remote: Error: Unable to locate node.js installation directory at /opt/nodejs
remote:     at Object.<anonymous> (/opt/Kudu/KuduConsole/Scripts/selectNodeVersion.js:166:11)
remote:     at Module._compile (internal/modules/cjs/loader.js:1085:14)
remote:     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
remote:     at Module.load (internal/modules/cjs/loader.js:950:32)
remote:     at Function.Module._load (internal/modules/cjs/loader.js:790:12)
remote:     at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:75:12)
remote:     at internal/main/run_main_module.js:17:47
remote: Deployment Failed. deployer =  deploymentPath =

Hi @pniederlag can you please check if you have this Env variable "SCM_SCRIPT_GENERATOR_ARGS" in your app settings and remove it before retrying?

I found this to be part of .deployment in the repository and now have dropped it. Seems to help for me. Thx.
diff --git a/.deployment b/.deployment
index 33a38ed..8d17029 100644
--- a/.deployment
+++ b/.deployment
@@ -1,2 +1 @@
 [config]
-SCM_SCRIPT_GENERATOR_ARGS=--node

Glad that it helped @pniederlag. Let us know if we can close this.

I'm hitting the same issue with a fresh App Service instance and the default custom deployment script for node.
Reproduction repo here.

Hi, we did solve this somehow. I really can't remember the full steps but we did create a .deployment file with this content:
[config] SCM_SCRIPT_GENERATOR_ARGS=--basic SCM_DO_BUILD_DURING_DEPLOYMENT=false ENABLE_ORYX_BUILD=false WEBSITE_NPM_DEFAULT_VERSION=6.14.15 command = bash deploy.sh
and we did change the deploy.sh by removing the selectNodeVersion line and adding these two lines:
# selectNodeVersion NPM_CMD=npm NODE_EXE=node
Now it works for us.
Maybe that helps someone here...

Hi
If the problem persists and is related to running it on Azure App Service, please open a support incident in Azure:
https://learn.microsoft.com/en-us/azure/azure-portal/supportability/how-to-create-azure-support-request
This way we can better track and assist you on this case
Thanks,
Joaquin Vano
Azure App Service


How to use vault secrets?

In my playbook I have
  vars_files:
    - secret

I got this error:

ERROR! Attempting to decrypt but no vault secrets found

When running check-ansible-ubuntu-latest-action, how do I tell it what the secret password is, without actually adding that to my repository or making it otherwise visible to the public?
I am using it as a GitHub action: https://github.com/marketplace/actions/check-ansible-ubuntu-latest

Never mind, I just discovered Encrypted secrets in the GitHub Actions Reference: https://docs.github.com/en/actions/reference/encrypted-secrets
Sharing the link for everyone else who may have the sane question.
Closing issue.

:heart:


Merged CL:100416 into CL:0002324

Fixes #21 - picked this up cause it looked like a simple fix
UBERON:0006954 uses CL:1000416 -> needs to updated to CL:0002324 in UBERON
@nicolevasilevsky @matentzn tried using
sh run.sh owltools --use-catalog cl-edit.owl --obsolete-replace CL:1000416 CL:0002324 -o -f owl cl-edit.owl
(not sure what the owl after -f was so tried both owl and obo)
Created insane diff - basically everything got replaced, so decided to do this manually instead - not sure if it needs looking into
@addiehl @cmungall would like a 2nd eye on this to make sure it is done right - I did this mechanically and don't really know the science and all.

Had to remove axioms brought in my uberon import that was causing issues as it was bringing it the obsolete terms and axioms still

Current issues are with uberons use of the obsolete terms, will fix here https://github.com/obophenotype/uberon/issues/2188 and for now will fix by changing it in CL's uberon import too


The InterUSS DataNode occasionally returns a 500 HTTP status code.

2018-09-12 15:36:05 [pool-0] INFO gov.nasa.utm.ussn.ussapiservice.ConcurrencySender:93 Making a rest call http://<IP_ADDRESS>:8121/GridCellOperator/9/73/191 GET <{Content-Type=[application/json]}>
2018-09-12 15:36:05 [pool-0] ERROR gov.nasa.utm.ussn.ussapiservice.ConcurrencySender:100
HttpStatusCodeException code:500 body:
500 Internal Server Error
Internal Server Error
The server encountered an internal error and was unable to complete your request.  Either the server is overloaded or there is an error in the application.
}

This particular 500 was being caused by an ImmatureSignatureError in JWT while validating the access token.  It was corrected on the tcl4 branch in commit 3fff76100a33e0cd1a83bd3b6aaac18b4f9e1483

Closing, as it has been corrected, and issue #20 will address refactoring all error handling.


[WIP] Add R2C/C2R support to cupy.cuda.cufft.PlanNd

Close #1936.
All tests passed locally  (P100 + CUDA 9.2). Note that

Passing an R2C/C2R plan from get_fft_plan() to functions in cupyx.scipy.fftpack or cupyx.scipy.fft is yet to be supported, most likely in a separate PR.
Setting overwrite_x=True for R2C/C2R transforms does not lead to in-place transform (I think it's too much work, but I could be wrong). The flag is silently ignored to ensure correctness for now.

TODO:

Performance comparison
More code cleanup

Thanks to @grlee77 for pointing me to some old cuFFT resources discussing how to handle F-order arrays. 🙂

A quick benchmark for full-array R2C/C2R:
>>> import cupy as cp
>>> import cupyx
>>>
>>> ca = cp.random.random((512, 512, 512))
>>> cp.fft.config.enable_nd_planning = True
>>> print(cupyx.time.repeat(cp.fft.rfftn, (ca, ), n=50))
rfftn               :   641.977 us   +/-53.088 (min:  528.481 / max:  717.539) us  17608.998 us   +/-67.957 (min:17450.815 / max:17750.336) us
>>> cp.fft.config.enable_nd_planning = False
>>> print(cupyx.time.repeat(cp.fft.rfftn, (ca, ), n=50))
rfftn               :  1582.029 us   +/-149.967 (min: 1483.209 / max: 1956.003) us  43954.073 us   +/-42.902 (min:43911.072 / max:44044.319) us
>>>
>>> cb = cp.random.random((512, 512, 512)).astype(cp.complex128)
>>> cp.fft.config.enable_nd_planning = True
>>> print(cupyx.time.repeat(cp.fft.irfftn, (cb, ), n=50))
irfftn              :   682.115 us   +/-35.178 (min:  640.845 / max:  823.347) us  69353.386 us   +/-69.217 (min:69193.855 / max:69561.440) us
>>> cp.fft.config.enable_nd_planning = False
>>> print(cupyx.time.repeat(cp.fft.irfftn, (cb, ), n=50))
irfftn              :  1748.892 us   +/-42.444 (min: 1711.711 / max: 1858.933) us  141214.269 us   +/-15.825 (min:141180.191 / max:141247.650) us

@asi1024 @grlee77 The methods check_output_array in Plan1d/PlanNd was added back in #1746 but was never called in any call path. Any reason we wanna keep it? Can I remove them in this PR?

@asi1024 @grlee77 The methods check_output_array in Plan1d/PlanNd was added back in #1746 but was never called in any call path. Any reason we wanna keep it? Can I remove them in this PR?

What do you mean? I think it is called in both _exec_fft and _exec_fftn, see:
https://github.com/cupy/cupy/blob/de3d32536c39eefea1805f4a7a76a14356eb3bff/cupy/fft/fft.py#L398

Yes, but the line you quoted never gets executed. It's because while _exec_fft and _exec_fftn accept an out argument, there's no way to pass in out from any public API.

Please do not merge. I am investigating some issues with F-order arrays.

I think I hit this cuFFT implementation detail that led to a bunch of errors from the (updated) test suite:

Note: Complex-to-real (C2R) transforms accept complex-Hermitian input, which requires the 0th element (and the N/2-th input if N is even) to be real-valued, i.e. its imaginary part should be zero. Otherwise, the behavior of the transform is undefined.

(from cuFFT doc). My PR is correctly done in the sense that irfftn(rfftn(a)) = a, but apparently whatever happens in the intermediate step (the result of rfftn, and thus the acceptable input form for irfftn) is up to the FFT implementation, and cuFFT apparently takes a different approach with 2D transform + shape reversal (i.e. F order):
a_np = np.asfortranarray(np.random.random((3,4)))
b_np1 = np.fft.rfftn(a_np)
b_np2 = np.fft.irfftn(b_np1)
print(np.allclose(a_np, b_np2))   # -> True

a_cp = cp.asfortranarray(cp.asarray(a_np))
b_cp1 = cp.fft.rfftn(a_cp)
b_cp2 = cp.fft.irfftn(b_cp1)
print(cp.allclose(a_cp, b_cp2))   # -> True

print(cp.allclose(a_np, a_cp))    # -> True
print(cp.allclose(b_np1, b_cp1))  # -> False (!); expected to be True in the tests
print(cp.allclose(b_np2, b_cp2))  # -> True

(For comparison, if the input is in C order, or for 3D transform (say shape=(2,3,4)) + F order, then it's all True.)
@asi1024 @grlee77 What do you think if I only add this PlanNd feature for R2C/C2R with C order  input (i.e. let _fftn handle this case), and fall back to _fft for F order input?

or for 3D transform (say shape=(2,3,4)) + F order, then it's all True.

I want to add that even for 3D transform, if the input of irfftn were not generate from the output of rfftn (say we stuff some random array as done in the test suite), then its result would not match the NumPy equivalent (with the same input). cuFFT's C2R transform seems to make a very strong assumption on the input.

Yes, but the line you quoted never gets executed. It's because while _exec_fft and _exec_fftn accept an out argument, there's no way to pass in out from any public API.

Okay, right. I guess I had added that argument in my initial PlanNd PR, but then we never ended up using it. In that case I am fine with removing both that out argument and the check_output_array method.
It seems that the needed checks on the input array are being done within the body of _exec_fftn. I suppose those could potentially go in a method of PlanNd, but I'm not sure it would be preferable.

I have a second thought and think I will leave them for now. They might be useful when adding multi-GPU support (not sure, because N-D multi-GPU cuFFT seems so complicated; I haven't figured it out yet).

I avoided doing N-D R2C/C2R transforms for F-order arrays. All FFT tests passed locally. PTAL.

It seems we don't have to consider in-place rfftn/irfftn at all -- Scipy doesn't support it either:
https://github.com/scipy/scipy/blob/89d5349b2fb070c4349a3b5b54d39be68148e778/scipy/fft/_pocketfft/basic.py#L224

Hi @asi1024, it seems we have a real need (#3263) for this PR. Any chance this PR can be reviewed sooner? Thanks.

Fix a "defect" in the tests in 40a9174: It's funny that axes are parametrized but never used in those tests! 🤣

On GTX 2080 Ti + CUDA 10.0:
>>> import cupy as cp
>>> from cupyx.time import repeat
>>>
>>> a = cp.random.random((512, 512, 512)) + 1j*cp.random.random((512, 512, 512))
>>>
>>> cp.fft.config.enable_nd_planning = False  # without PlanNd
>>> print(repeat(cp.fft.rfftn, (a,), n=20))
rfftn               :   850.499 us   +/-39.071 (min:  817.100 / max: 1007.183) us  85474.685 us   +/-1226.721 (min:82027.298 / max:87257.919) us
>>> cp.fft.config.enable_nd_planning = True   # with PlanNd
>>> print(repeat(cp.fft.rfftn, (a,), n=20))
rfftn               :   338.843 us   +/-28.027 (min:  310.853 / max:  431.270) us  43563.003 us   +/-11.552 (min:43547.295 / max:43592.194) us

Jenkins, test this please.

Jenkins CI test (for commit 270cbcc5f1e37c412b3a3d8e419ff08d5055cf4d, target branch master) failed with status FAILURE.

Thanks, @asi1024! I fixed the errors. PTAL.
There're two errors: First, s and axes should be sequences, which is addressed in 8894af7. Second, TestFft2 is fixed for the corner case axes=(). The fix in 2d3ecf5 follows that of TestFftn, but I have no idea why we missed it in #3264 🤬 @toslunar, do you know why?

Jenkins CI test (for commit 79b1440be914717bbb239d2c8d13e1cabff99d6a, target branch master) failed with status FAILURE.

@asi1024 I forgot about the cuFFT bug 🤦🏻♂ It's now fixed in b65c532. Could you rerun the CIs please?

Jenkins, test this please.

Jenkins CI test (for commit b65c5322ba916587fd27d2fd535b1714a752508e, target branch master) succeeded!

LGTM! Thanks for your contribution!

Thanks a lot, @asi1024 @grlee77!


[Question] Add test steps to the report

Hey,
I'm really excited that there is an official agent to the Playwright test runner. I'm integrating it now into my project and I'm wondering about one thing. Is it possible to attach the logs from test steps as it is done in the default HTML reporter of Playwright? That we don't need to add separate ReportingApi logs or console.logs in the code but still have it in the report (using the logs which are generated by default in Playwright test runner)? Like on this screen below (needed to hide paths and locators).

Hello @MichalFidor !
We are currently working on this feature. But PR is still in draft.
Such logs will show up as nested steps on the RP side at the log level.

Cool, thanks @AmsterGet for the information. Can't wait to see it merged 🤩

Hello @MichalFidor ,
This feature has been released in version 5.0.3 https://github.com/reportportal/agent-js-playwright/pull/40


Change property existing check logic on MapWrapper

I've fixed 2 problems into gh-902 (This pr is workaround for #902 into some problem).

If mapper method argument is empty, parameter is null. Therefor this case is skip a processing for bind a key value.

If use multiple argument using @Param, the MyBatis convert to ParamMap (implements Map interface). The ParamMap#get method has check logic as follow:

@Override
public V get(Object key) {
  if (!super.containsKey(key)) {
    throw new BindingException("Parameter '" + key + "' not found. Available parameters are " + keySet());
  }
  return super.get(key);
}

Therefor... in current implementation, this error is occurred when check a parameter type and return type of setter/getter method. I think better that change to use containsKey method instead of get(key) != null.
Note: This solution cannot resolve errors for JavaBeans that not have key property .
What do you think for this solution ?

Note: This solution cannot resolve errors for JavaBeans that not have key property.

This is a big limitation, isn't it?
For example, the following statement throws the error even though there is no SERIAL column in the sections table.
@Insert("insert into mbtest.sections (section_id, name) values (#{sectionId}, #{name})")
int insertSection(Section section);

public class Section {
  private Integer sectionId;
  private String name;
  // getters, setters
}

Compared to this, the impact of losing the keyProperty validation looks smaller, I must say.

This is a big limitation, isn't it?
Compared to this, the impact of losing the keyProperty validation looks smaller, I must say.

Yes. I think ... we consider to revert #782 ...

@harawata
I think better that apply fix(use containsKey method instead of get(key) != null) for MapWrapper regardless of this Issue.
What do you think ?

Nice thought!
This might be even simpler.
Object value = map.get(name);
return value != null ? value.getClass() : Object.class;

So, are we ready to revert #782 or any better idea? =)


Movie Database Integration

Project Overview :
This project takes the title of the movie from the client as it input and provides information : movie rating & no. of reviews from the designated platform.
Functionalities :
Explained below are the functions of different set of codes involved in the project :

User : Used to receive the title from the client & convert the title into movie-id, which serves as the input for the agents.
Agent : Used  to provide the movie rating &  no. of votes extracted using the movie-id.
Model : Provides Message & Response function for the agents.
Main : Adds all agents to a common bureau.

Main import agent1, and agent2 but these files do not exist in the project. PR also deletes another integration. Please fix these issues and re-open PR when you're ready and we'll review again.


Support for JSON object bigger than Max(Integer)

Since the size of the json string is stored in an integer JSON object cannot support big data.
It would be better to use NativeInt as it is used as the size type in the latest Delphi versions.
See the definition of TSuperArray member FSize: https://github.com/pult/SuperObject.Delphi/blob/6c886fec89fbc32d1aaa95ea7d4ccd3650c2256b/Lib/superobject.pas#L526
TSuperArray = class({+}TInterfacedObject{+.}, ISuperArray)
  private
    FArray: PSuperObjectArray;
    FLength: Integer;
    FSize: Integer;
...

Yes, it is important...


Add --ftime-report to spirv-opt

Add --ftime-report to spirv-opt  …
To check the resource utilization of each optimization pass, I add --ftime-report command line option.
Related issue: #1378

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Need to fix the build failures:
In file included from /home/travis/build/KhronosGroup/SPIRV-Tools/source/util/timer.cpp:20:0:
/home/travis/build/KhronosGroup/SPIRV-Tools/source/util/timer.h:70:60: error: #elif with no expression
 #elif  // defined(SPIRV_ANDROID) || defined(SPIRV_LINUX) ||

Any comments for this PR?

No scientific output please. They are harder to parse.
On Mon, Mar 19, 2018, 09:26 Jaebaek Seo<EMAIL_ADDRESS>wrote:

@jaebaek commented on this pull request.
In source/util/timer.cpp
https://github.com/KhronosGroup/SPIRV-Tools/pull/1397#discussion_r175497997
:

if (!report_stream_) return;

switch (usage_status_) {
case kGetrusageFailed:

 *report_stream_ << std::setw(30) << tag

                 << " ERROR: calling getrusage() fails";

 return;

case kClockGettimeFailed:

 *report_stream_ << std::setw(30) << tag

                 << " ERROR: calling clock_gettime() fails";

 return;

default:

 break;

}

report_stream_->precision(2);

How about using scientific floating-point notation instead (
http://www.cplusplus.com/reference/ios/scientific/)?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/KhronosGroup/SPIRV-Tools/pull/1397#discussion_r175497997,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AG9RZ4ET0VOSdjGVidBL0BJM3tr79oREks5tf9xEgaJpZM4SjKKW
.

On Tue, Mar 20, 2018 at 11:02 AM Jaebaek Seo<EMAIL_ADDRESS>wrote:

@jaebaek commented on this pull request.
In source/util/timer.cpp
https://github.com/KhronosGroup/SPIRV-Tools/pull/1397#discussion_r175868476
:

}

*out << std::endl;
}
+}

+// Do not change the order of invoking system calls. We want to make CPU/Wall
+// time correct as much as possible. Calling functions to get CPU/Wall time must
+// closely surround the target code of measuring.
+void Timer::Start() {

if (report_stream_) {
if (getrusage(RUSAGE_SELF, &usage_before_) == -1) {

 usage_status_ = kClockGettimeFailed;

} else if (clock_gettime(CLOCK_MONOTONIC, &wall_before_) == -1) {

 usage_status_ = kClockGettimeFailed;

} else if (clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &cpu_before_) == -1) {

 usage_status_ = kGetrusageFailed;

Hmm .. the logic here is

if some function fails (i.e., the return value is equal to -1),
stop and set the error status.
else call some other function.

It should be
if (some_function(...) == -1) {
// it fails ..
/* report_error */
} else ...
I do not think it is incorrect .. but it would be confusing.
I will change this as
if (some_function(...) == -1) {
usage_status_ == error;
return;
}
/* call other functions */

But, this is what's confusing.  Why return if any of these functions fail?
The others may not fail.
In the case of failure, the timer will print nothing at all?

Ah .. yes. Currently, it prints only when no failure exists.
I will update it so that it prints each element if it does not fail.
2018-03-20 14:06 GMT-04:00 Diego Novillo<EMAIL_ADDRESS>
On Tue, Mar 20, 2018 at 11:02 AM Jaebaek Seo<EMAIL_ADDRESS>wrote:

@jaebaek commented on this pull request.
In source/util/timer.cpp
<https://github.com/KhronosGroup/SPIRV-Tools/pull/
1397#discussion_r175868476>
:

}

*out << std::endl;
}
+}

+// Do not change the order of invoking system calls. We want to make
CPU/Wall
+// time correct as much as possible. Calling functions to get CPU/Wall
time must
+// closely surround the target code of measuring.
+void Timer::Start() {

if (report_stream_) {
if (getrusage(RUSAGE_SELF, &usage_before_) == -1) {
usage_status_ = kClockGettimeFailed;
} else if (clock_gettime(CLOCK_MONOTONIC, &wall_before_) == -1) {
usage_status_ = kClockGettimeFailed;
} else if (clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &cpu_before_) ==
-1) {
usage_status_ = kGetrusageFailed;

Hmm .. the logic here is

if some function fails (i.e., the return value is equal to -1),
stop and set the error status.
else call some other function.

It should be
if (some_function(...) == -1) {
// it fails ..
/* report_error */
} else ...
I do not think it is incorrect .. but it would be confusing.
I will change this as
if (some_function(...) == -1) {
usage_status_ == error;
return;
}
/* call other functions */

But, this is what's confusing. Why return if any of these functions fail?
The others may not fail.
In the case of failure, the timer will print nothing at all?

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/KhronosGroup/SPIRV-Tools/pull/1397#issuecomment-374699670,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABXTZr6KPlU5JVG35YqUkEaMcaU4xkTyks5tgUUKgaJpZM4SjKKW
.

On Tue, Mar 20, 2018 at 11:11 AM Jaebaek Seo<EMAIL_ADDRESS>wrote:

Ah .. yes. Currently, it prints only when no failure exists.
I will update it so that it prints each element if it does not fail.

SG.  Thanks.

On Tue, Mar 20, 2018 at 11:12 AM Jaebaek Seo<EMAIL_ADDRESS>wrote:

@jaebaek commented on this pull request.
In source/util/timer.cpp
https://github.com/KhronosGroup/SPIRV-Tools/pull/1397#discussion_r175871783
:

}

*out << std::endl;
}
+}

+// Do not change the order of invoking system calls. We want to make CPU/Wall
+// time correct as much as possible. Calling functions to get CPU/Wall time must
+// closely surround the target code of measuring.
+void Timer::Start() {

if (report_stream_) {
if (getrusage(RUSAGE_SELF, &usage_before_) == -1) {

 usage_status_ = kClockGettimeFailed;

} else if (clock_gettime(CLOCK_MONOTONIC, &wall_before_) == -1) {

 usage_status_ = kClockGettimeFailed;

} else if (clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &cpu_before_) == -1) {

 usage_status_ = kGetrusageFailed;

Hmm .. it seems that your email is not shown here.
Currently, it prints only when no failure exists.
I will update it so that it prints each type of resource usage if it does
not fail.

Yeah, I'm responding from email.  github's mail gateway is not always
reliable.

Rebased, retested and pushed as 3b594e163009cb224e80155ff17971a4b2fc0cd4
@atgoo, I think the latest version should address all your concerns. If that's not the case, please let @jaebaek know so he can address it in a follow-up PR.  Thanks.


basic CLI support

We should create some basic cli functionality for this package.

Done with PR-40


⚠ Bofrost.hr has degraded performance

In e3534b8, Bofrost.hr (https://www.bofrost.hr) experienced degraded performance:

HTTP code: 200
Response time: 3231 ms

Resolved: Bofrost.hr performance has improved in b1d7cb0.


Generate url

So this pull request is to expose an interface for supporting presigned url. Note that this PR does not include support for s3's presigned POST's. With this interface, in order to generate a presigned url. All you need is a RequestSigner. With the RequestSigner you can call generate_url() method that takes in a request dictionary (from the serializer and prepare_request_dict) and will return a url that is presigned. Note that I considered calling the method presign_url(), but I decided to name it how boto does. You also have the option to specify how many seconds till the url expires and if you want to sign with a different region name.
Also, this PR removes the last of the skips in the integration test for the clients-only branch.
cc @jamesls @danielgtaylor

Coverage increased (+0.04%) to 95.67% when pulling 6e9a69d0c6d8250b2a4c0e47c1e397638a1c22a0 on kyleknap:generate-url into e318dd64eff88be9a2ee7e2c922cc7eba04f93d9 on boto:clients-only.

Coverage decreased (-0.45%) to 95.18% when pulling 81c1ae7fdf44098d11f873f7e99a741fa5ea7a57 on kyleknap:generate-url into e318dd64eff88be9a2ee7e2c922cc7eba04f93d9 on boto:clients-only.

Coverage increased (+0.1%) to 95.73% when pulling 770f802c2db8ce6869f768825423848b027d9637 on kyleknap:generate-url into e318dd64eff88be9a2ee7e2c922cc7eba04f93d9 on boto:clients-only.

@jamels @danielgtaylor
So the commits I recently pushed are for the ability to presign s3 post (both sigv2 and sigv4). The public method is build_post_form_args. To get a sense on how the CLI and boto3 will use it, check out the integration tests in test_s3.py. That has some examples of how you can leverage the presigner and requests library to make the post request.
One thing that would be great to get your opinions on is the interface in general. I feel that it is a little weird that the method is attached to the general signing class, but only applies to s3. Ideally for me, there would be some isolation between this method and the general signer class (because it only applies to s3 posts) but I have not been able to think of a better way. Maybe I can check that the service of the signer is s3, and if not throw an error? Or rename it to have s3 in the name of the method? Also let me know what you think of the name build_post_form_args. I picked it because that is the name boto uses, but the inputs and return values are a little different.

Coverage increased (+0.49%) to 96.12% when pulling 77cc71d50b184c4539b9e4aaface88ea359dfaf9 on kyleknap:generate-url into e318dd64eff88be9a2ee7e2c922cc7eba04f93d9 on boto:clients-only.

Coverage increased (+0.49%) to 96.12% when pulling 77cc71d50b184c4539b9e4aaface88ea359dfaf9 on kyleknap:generate-url into e318dd64eff88be9a2ee7e2c922cc7eba04f93d9 on boto:clients-only.

Coverage increased (+0.49%) to 96.12% when pulling 77cc71d50b184c4539b9e4aaface88ea359dfaf9 on kyleknap:generate-url into e318dd64eff88be9a2ee7e2c922cc7eba04f93d9 on boto:clients-only.

In the latest commit, I exposed some client level methods, generate_url and build_s3_post_form_args, in signers.py that will eventually be translated to actual methods of the client for the presigning methods. So I would pay more attention to the internals of the methods. When I do dangle them off the client, they will pretty much take the same arguments as they are currently minus the client argument.

Coverage increased (+0.49%) to 96.12% when pulling 77cc71d50b184c4539b9e4aaface88ea359dfaf9 on kyleknap:generate-url into e318dd64eff88be9a2ee7e2c922cc7eba04f93d9 on boto:clients-only.

Coverage increased (+0.49%) to 96.12% when pulling 5f284bac916df5a0ce7c1e70bc1e79078b896e89 on kyleknap:generate-url into e318dd64eff88be9a2ee7e2c922cc7eba04f93d9 on boto:clients-only.

Coverage increased (+0.49%) to 96.12% when pulling 5f284bac916df5a0ce7c1e70bc1e79078b896e89 on kyleknap:generate-url into e318dd64eff88be9a2ee7e2c922cc7eba04f93d9 on boto:clients-only.

Coverage increased (+0.49%) to 96.12% when pulling f29355148998b3f4295d7b1119d0b27acabb1a41 on kyleknap:generate-url into e318dd64eff88be9a2ee7e2c922cc7eba04f93d9 on boto:clients-only.

Coverage increased (+0.49%) to 96.12% when pulling f29355148998b3f4295d7b1119d0b27acabb1a41 on kyleknap:generate-url into e318dd64eff88be9a2ee7e2c922cc7eba04f93d9 on boto:clients-only.

Overall looks good, just some minor review feedback.  As far as the interface goes, I'd prefer to just have a separate class that does the s3 post forms stuff.  I agree that it doesn't feel right having it in the general signer class.

Coverage increased (+0.53%) to 96.17% when pulling 3bcfda5e706ed3e8d96f31e69f3c98864853384c on kyleknap:generate-url into edfc623fdc2181502d07030f4b5f507b859c4c10 on boto:clients-only.

Coverage increased (+0.53%) to 96.17% when pulling 3bcfda5e706ed3e8d96f31e69f3c98864853384c on kyleknap:generate-url into edfc623fdc2181502d07030f4b5f507b859c4c10 on boto:clients-only.

Alright in the very latest commit I did two things:

Update the code based on feedback
Dangle the presigning methods on clients as: client.generate_presigned_url, client.generate_presigned_post

With these additions presigning is officially available in boto3 as well.
Let me know what you think. @jamesls @danielgtaylor

Just a few minor comments. LGTM :+1:

Just some small stuff, otherwise looks good.  :shipit:

Coverage increased (+0.53%) to 96.17% when pulling 95c4913df929e9bcc22d557d886e45b2187698ef on kyleknap:generate-url into edfc623fdc2181502d07030f4b5f507b859c4c10 on boto:clients-only.

@danielgtaylor
I updated the code based on your feedback. The only thing that I did not change was the regular expression as I was hesitant to change that as it was just a copy and paste from a different file. Let me know what you think.

Thanks, LGTM :ship:-it!

It would be great, if the method would allow also absolute expiration time.
Adding additional parameter expires_in_absolute with True of False would work (copying the way, boto does that.


Theming specific components with React Toolbox

I found an example repo here that shows how to integrate React Toolbox with a global theme (by way of using react-toolbox-themr.
But unfortunately, it seems that it does not show how I can customize the theme (not style) of a specific component. It also does not seem to be a use-case supported by react-toolbox-themr, or at least I have not found a way to do it.
Lack of CSS Modules
Normally, this is done with CSS Modules, but since the example does not use CSS Modules, I am not sure how I can fulfill the required API.
So, although this works:
import Button from "react-toolbox/lib/button/Button"

const Component = () => <Button></Button>

This does not work:
import Button from "react-toolbox/lib/button/Button"
import btnTheme from "./btnTheme.css"

const Component = () => <Button theme={btnTheme}></Button>

Since we don't have CSS Modules, adding theme={btnTheme} with the import btnTheme from "./btnTheme.css" will Next.JS to not know how to import a CSS file. I should also note that the main README.md cautioned against using the custom Webpack configuration to add loaders (like a CSS loader in this instance), because only the client code gets bundled with Webpack.

Warning: Adding loaders to support new file types (css, less, svg, etc.) is not recommended because only the client code gets bundled via webpack and thus it won't work on the initial server rendering.

Source: https://github.com/zeit/next.js#customizing-webpack-config
What is the best course of action here?

Since we support postcss in styled-jsx now using styled-jsx plugins. You could add postcss-import and <style jsx>{@import 'some-module/file.css'}</style>. Haven't tested it yet. cc @albinekb


[FR] annotation popup  may not be displayed completely

SYSTEM INFO:
OS: MacOS 15.1.1
Obsidian version: 1.7.7
PDF++ version:0.40.17

I’m a new user of Obsidian, and I accidentally discovered this amazing plugin called PDF++. This plugin is really great!
However, during my use, I found an area that could be improved.
As shown in the image, if you add a annotation near the edge of the PDF and hover the mouse over it, the annotation popup may have part of its content hidden by the window edge.
Of course, it's also possible that I'm using it incorrectly.

Thanks!
The annotation popup is in fact Obsidian's feature, and the positioning issue is Obsidian's bug rather than PDF++'s. So it has to be fixed by the Obsidian team.
You can find the bug report for this here:
https://forum.obsidian.md/t/pdf-viewer-annotation-note-pop-up-partially-hidden/67141
By the way, good luck on your Japanese learning! がんばってください


Extension api problem: vscode.workspace.createFileSystemWatcher

VSCode Version:  1.22.1
OS Version: Windows 7

Steps to Reproduce:

In my extension, I use the createFileSystemWatcher api to watch the file changes. code is below:

	let fileSystemWatcher = vscode.workspace.createFileSystemWatcher('**');
	context.subscriptions.push(fileSystemWatcher.onDidChange((filePath) => {
		console.log(filePath + " changed!");
		if (monitorFileExt.indexOf(path.extname(filePath.fsPath)) !== -1) {
			//do something
		}
	}));

Lauch the extension and open a folder which contains test.cpp.
Open and modify file test.cpp in VsCode. The watcher is correct to say test.cpp changed
But when I just open the the test.cpp in notepad++ or Visual Studio. The watcher says test.cpp changed.

So in other editors except for VsCode, open a file will fire the event "file change" ???

@chongchai it could well be that these editors touch the file when opening or do anything that triggers the file event. I do not think this is under our control.


how project's odoo/custom/ssh is supposed to propogate inside the container if ssh folder is not mounted as a volume in setup-devel.yaml?

https://github.com/Tecnativa/doodba-copier-template/blob/9a33b2e3adf4f98b2f93f02ee99189271f8a5461/setup-devel.yaml.jinja#L32

Steps to reproduce:
invoke git-aggregate
Current behavior:
key_load_public: invalid format
Host key verification failed.
fatal: Could not read from remote repository.
inside the container root's .ssh folder contains empty id_rsa
desired behavior:
to use odoo/custom/ssh when dealing with private repositories

This https://github.com/Tecnativa/doodba-copier-template/pull/81 fixes it, but there is another problem occurs when invoke git-aggregate: Bad owner or permissions on /root/.ssh/config. I only know the workaround for it - chown root:root config - don't sure this is a proper way

I've found out that there is
::
ONBUILD RUN mkdir -p /opt/odoo/custom/ssh \
&& ln -s /opt/odoo/custom/ssh ~root/.ssh \
&& chmod -R u=rwX,go= /opt/odoo/custom/ssh \
&& sync
so I should put my keys into odoo/custom/ssh before build, right?

or if I change the content of my odoo/custom/ssh folder - I should rebuild the image

ONBUILD COPY $LOCAL_CUSTOM_DIR /opt/odoo/custom

ONBUILD RUN mkdir -p /opt/odoo/custom/ssh \
It seems that this mkdir doesn't create anything because the dir is already there - we copy all $LOCAL_CUSTOM with ssh in it

For ssh keys and configs added after the initial build I do a force build that prevents it from using the cache. It does not pick up that the files have changed, I’ve never bothered investigating further as it’s a very uncommon event for us.

or if I change the content of my odoo/custom/ssh folder - I should rebuild the image

Indeed, that's the fix you're looking for, and the reason is explained by @theangryangel: it's very uncommon. Closing.


Contributing + Makefile

This PR adds a contributing section to the README.md, as well as a CONTRIBUTING.md contribution guide.
Furthermore, this adds a makefile, that resolves dependencies and runs tests. This provides contributors with an awesome toolkit as a base for contributing.

It would be a nice addition to add an editorconfig to the project as well, because the Makefile needs specific indents

Big 👍 for using a makefile.
We had some discussion about why it was usefull for infection, see https://github.com/infection/infection/pull/255

Bunch of hipsters in this PR 🤨
Looks good though

Coverage remained the same at 48.736% when pulling d69400350ed1c79c65b44585181bd2a790883001 on FrontEndCoffee:makefile into 060a096f872431963d138a4c5041dfa591ca0632 on PCextreme:master.

Coverage remained the same at 48.736% when pulling d69400350ed1c79c65b44585181bd2a790883001 on FrontEndCoffee:makefile into 060a096f872431963d138a4c5041dfa591ca0632 on PCextreme:master.


Add "contains" category filter for SetColumn

Release number or git hash: v4-beta.1
Web browser version and OS: Chrome 83

Steps to reproduce

Open all_column_types.html demo
Filter a SetColumn for a single category

Observed behavior

Filtering a SetColumn for a single category does not show any row (or if there are any, it would only show the exact match with a single category).
Expected behavior
There are two different use cases:

Exact match of all selected categories (current behavior)
Contains the selected categories

While the first use cases reflects the current behavior the seconde use case is not addressed.
Would it be possible to a flag where the user can switch between exact match or contains?

1. Exact match of all selected categories (current behavior)

it is not an exact match but the filter is that: each category in the value has to be in the filter.
return v.every((s) => isCategoryIncluded(this.currentFilter, s));

as far as I understood you are asking for a second option, which uses a some instead of any every, right?

I tested the filter using some and it works like I would expect it in the second use case.
return v.some((s) => isCategoryIncluded(this.currentFilter, s));

Would you replace every with some or support both use cases?
I assume that the some use case is the more common one as it shows more results, but current behavior is also valid might be useful in some cases.


fix: fix updating of toc on tm delete when remote is referred by a relative path

fix: fix updating of toc on tm delete when remote is referred by a relative path

For me delete is not correctly working depending on how I define the TM repository directory with flag -d:
Working:
tm-catalog-cli delete  --force true -d my-catalog <TM-ID>

For me delete is not correctly working depending on how I define the TM repository directory with flag -d:
Working:
tm-catalog-cli delete --force true -d my-catalog <TM-ID>

TM is deleted as file
parent folders (mpn, manufacturer, author) are deleted if TM was the only (last existing) TM
TM is deleted from TOC

Not Working (note that -d starts with relative dot):
tm-catalog-cli delete --force true -d ./my-catalog <TM-ID> tm-catalog-cli delete --force true -d "./my-catalog" <TM-ID>

TM is deleted as file
parent folders (mpn, manufacturer, author) are NOT deleted if TM was the only (last existing) TM
TM is NOT deleted from TOC

It works a bit better now, but still not correct.
The TM is now deleted from TOC, but the parent folders are still not deleted if the TM is the last one.
Tested on Windows and Linux.


Renogy DCC50S B2B and Solar Controller

Hi
great project.
I am wondering if this will be enhanced by other Renogy products?
I understood that the DCC50S uses a different version RS485 and is not compatible with the ROVER
Thanks for checking
T

Hi @riker65 !
I currently only have access to a 40A Renogy Rover.
I'm definitely open to pull requests adding functionality/support for other charge controllers.
My 40A Rover has been providing me with great service (knock on wood!)
If it ever does hit end of life, I suspect I'll get another Renogy product and will want to update the library to work with it, too.
Thanks,
Brian


Fixes #13 - Authorization - change of scope

If the client has been authorized once, and it requests authorization again but with another scope, the authorization prompt should be displayed to the user again so that he can confirm whether he accepts the new scope for that client.

Changed the ==[] to .empty .


Fix indices rendering in the example

What
Fix indices rendering in the example, by switching to unordered lists for words and entities and indicating the entity range type (includes start index, but excludes end index).
Why
Since the indices in the response are not guaranteed to be monotonically increasing and / or starting from 1, we should not rely on ordered lists to properly show those indices.

Another thing, words now start from 2.

Another thing, words now start from 2.

This is not a bug - the indices are not guaranteed to start from 0 or 1 and also not guaranteed to be monotonic.


Possibility to add Audit log?

Hi, I'm a happy steampipe user - mostly with the kubernetes plugin.
WIthout understanding the limitations on speed/data, I wonder is it feasible to add something like the Audit API from Cloudflare?
https://api.cloudflare.com/#audit-logs-properties
According to the docs, the API caps at 18 months of logs... So it's not a linearly growing set of data; it will however be a lot of rows.
https://developers.cloudflare.com/fundamentals/get-started/basic-tasks/account-security/review-audit-logs/#using-the-api

@mafrosis parsing through the API docs, I came across three different types of audit logs -

user audit logs - https://api.cloudflare.com/#audit-logs-list-user-audit-logs
account audit logs - https://api.cloudflare.com/#audit-logs-list-account-audit-logs
organization audit logs - https://api.cloudflare.com/#audit-logs-list-organization-audit-logs

Is there any specific kind of audit log that you are looking for?

Hey @misraved, I finally got to looking at this 😄
The docs say that organization audit logs are deprecated in favour of account, so it's definitely not that one..
It's unclear to me the precise distinction between user and account audit logs - but it seems like "pull logs for a single user" vs "pull logs for a whole account".
I suggest implementing the latter would be most appropriate, and will match what's under "Audit Log" section in the Cloudflare dashboard.

Thanks @mafrosis for the feedback. Sorry I missed this thread. I will try to get the table up and running early next week 👍 .

Addressed in https://github.com/turbot/steampipe-plugin-cloudflare/pull/41


Use fp32 atomicAdd in one mode kernel.

It's faster than fp16 atomicAdd, don't know exactly why. Since it has both better performance and accuracy, I'm using it for all arch.
Should fix #38, need tests on older cards (I don't have one in hand).

AMD research (for me and possibly others):
https://docs.amd.com/bundle/rocWMMA-release-rocm-rel-5.2/page/API_Reference_Guide.html

Should fix #38, need tests on older cards (I don't have one in hand).

Now it works for me with GTX 950 (compute 5.2)
Thank you


MFC autodetected as printer+fax by cups-filters works only as fax by default (Brother MFC-L2720DWR)

Cups 2.3.3 and cups-filters 1.28.7 are used. avahi version 0.8. cups-browsed from cups-filters can detect fax support in printers since version 1.28.1.
Device in question is Brother MFC-L2720DWR. It's connected to LAN and autodetected via cups-browsed from cups-filters. Unfortunately, instead of using it as printer, cups uses it as fax: printed jobs are sent to "ipp/faxout" instead of "ipp/print".
It looks like that here it's not detected as printer:
https://github.com/apple/cups/blob/82e3ee0e3230287b76a76fb8f16b92ca6e50b444/cups/http-support.c#L2348-L2354
https://github.com/apple/cups/blob/82e3ee0e3230287b76a76fb8f16b92ca6e50b444/cups/http-support.c#L2587-L2593
I've added a bit of debug information with following debug-only changes:

debug changes
diff --git a/cups/backend/ipp.c b/cups/backend/ipp.c
index 3f3e1867d..b7607545a 100644
--- a/cups/backend/ipp.c
+++ b/cups/backend/ipp.c
@@ -18,6 +18,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/wait.h>
+#include <stdlib.h>
 #if defined(HAVE_GSSAPI) && defined(HAVE_XPC)
 #  include <xpc/xpc.h>
 #  define kPMPrintUIToolAgent  "com.apple.printuitool.agent"
@@ -300,6 +301,9 @@ main(int  argc,                             /* I - Number of command-line args */
   signal(SIGTERM, sigterm_handler);
 #endif /* HAVE_SIGSET */

+  setenv("CUPS_DEBUG_LOG", "/tmp/cups.debug.log", 1);
+  setenv("CUPS_DEBUG_LEVEL", "6", 1);
+
  /*
   * Check command-line...
   */
diff --git a/cups/cups/debug.c b/cups/cups/debug.c
index 6b3914ed5..155a94507 100644
--- a/cups/cups/debug.c
+++ b/cups/cups/debug.c
@@ -68,10 +68,13 @@ static _cups_mutex_t        debug_init_mutex = _CUPS_MUTEX_INITIALIZER,
 static int                             /* O - Local thread ID */
 debug_thread_id(void)
 {
+#if 0
   _cups_globals_t *cg = _cupsGlobals();        /* Global data */

   return (cg->thread_id);
+#endif
+       return 0;
 }

diff --git a/cups/cups/http-support.c b/cups/cups/http-support.c
index 63175145e..f85517211 100644
--- a/cups/cups/http-support.c
+++ b/cups/cups/http-support.c
@@ -2507,6 +2507,7 @@ http_resolve_cb(
   AvahiStringList      *pair;          /* Current TXT record key/value pair */
   char                 *value;         /* Value for "rp" key */
   size_t               valueLen = 0;   /* Length of "rp" key */
+  char *avahidata = NULL;

   DEBUG_printf(("4http_resolve_cb(resolver=%p, "
@@ -2584,6 +2585,12 @@ http_resolve_cb(
   * Extract the remote resource key from the TXT record...
   */

+  avahidata = avahi_string_list_to_string(txt);
+
+  DEBUG_printf(("4http_resolve_cb(avahi=%s)", avahidata));
+
+  avahi_free(avahidata);
+
   if ((uribuf->options & _HTTP_RESOLVE_FAXOUT) &&
       (!strcmp(scheme, "ipp") || !strcmp(scheme, "ipps")) &&
       !avahi_string_list_find(txt, "printer-type"))

The resulting log contains following line:
T000 09:09:28.842  http_resolve_cb(avahi=\"print_wfds=T\" \"UUID=e3248000-80ce-11db-8000-3c2af42dd2cf\" \"PaperMax=legal-A4\" \"kind=document,envelope,label\" \"URF=W8,CP1,IS4-1,MT1-3-4-5-8,OB10,PQ4,RS200-300-600,V1.3,DM1\" \"rfo=ipp/faxout\" \"TBCP=F\" \"Transparent=T\" \"Binary=T\" \"PaperCustom=T\" \"Scan=T\" \"Fax=T\" \"Duplex=T\" \"Copies=T\" \"Color=F\" \"usb_CMD=PJL,PCL,PCLXL,URF\" \"usb_MDL=MFC-L2720DW series\" \"usb_MFG=Brother\" \"priority=25\" \"adminurl=http://BRWE89EB445B7E5.local./net/net/airprint.html\" \"product=(Brother MFC-L2720DW series)\" \"ty=Brother MFC-L2720DW series\" \"note=\" \"rp=ipp/print\" \"pdl=application/octet-stream,image/urf,image/pwg-raster\" \"qtotal=1\" \"txtvers=1\")
As it may be noticed, there is no "printer-type" attribute reported by avahi. Due to that the printer is used as fax.
I've checked avahi report for another printer, which also has fax, but for some reason not yet detected as one, but it doesn't contain "printer-type" attribute as well:
T000 09:28:15.602  http_resolve_cb(avahi=\"URF=DEVW8,CP255,DM1,IFU0,IS19-20,OB10,PQ4-5,RS600,V1.4,W8\" \"UUID=32f00e8c-83a7-41d2-9578-7f3972eb74a6\" \"PaperMax=<legal-A4\" \"kind=document,envelope,label\" \"air=none\" \"TLS=1.2\" \"Scan=T\" \"Fax=T\" \"Duplex=T\" \"Color=F\" \"note=\" \"adminurl=https://oki-mb472-7ed19d.local./airprint_index.htm\" \"priority=60\" \"usb_CMD=PCL,IBMPPR,EPSONFX,PCLXL,HIPERMIP,URF,XPS\" \"usb_MDL=MB472\" \"usb_MFG=OKI DATA CORP\" \"product=(OKI MB472)\" \"ty=OKI MB472\" \"rp=ipp/print\" \"rfo=ipp/faxout\" \"pdl=application/octet-stream,application/vnd.hp-PCL,image/urf\" \"qtotal=1\" \"txtvers=1\")
Brother MFC-L2720DWR is detected as both printer and fax by cups-browsed, due to that it's ppd file contains line *cupsIPPFaxOut: True. Due to that line, uribuf->options contains _HTTP_RESOLVE_FAXOUT, but printer check fails at least when avahi is used. Due to that device is used by cups as fax instead of printer.

If I comment out fax support in cups-filters, and it reports device just as printer, i.e. no line *cupsIPPFaxOut: True or other fax-related info is added to device's ppd file, cups is able to use this device as printer without any issues when device is autodetected and reported by cups-browsed.

If I comment out fax support in cups-filters, and it reports device just as printer, i.e. no line *cupsIPPFaxOut: True or other fax-related info is added to device's ppd file, cups is able to use this device as printer without any issues when device is autodetected and reported by cups-browsed.

Please report this issue to the OpenPrinting cups-filters project.

While checking issues in mentioned project, I've found https://github.com/OpenPrinting/cups-filters/issues/343, and it looks like it mentions commit https://github.com/OpenPrinting/cups-filters/commit/de0747e8da849661e2d5fb7a6f4bec1caf432124 which fixes issue for me. Thanks!


Fix OldestGithubRelease logic

Previously if any release was older than the max age allowed, all releases would be ignored instead of just those over the allowed limit.

Thank you!


sitemap.txt: no such file

sitemap:
  path:
    - sitemap.xml
    - sitemap.txt

❯ hexo s
err: Error: ENOENT: no such file or directory, open '/Users/love4taylor/Git/blog/node_modules/hexo-generator-sitemap/sitemap.txt'

❯ grep version /Users/love4taylor/Git/blog/node_modules/hexo-generator-sitemap/package.json
  "version": "3.0.0",

❯ ll /Users/love4taylor/Git/blog/node_modules/hexo-generator-sitemap/
total 40
-rw-r--r--  1 love4taylor  staff   1.0K  3 11 20:16 LICENSE
-rw-r--r--  1 love4taylor  staff   1.5K  3 11 20:16 README.md
-rw-r--r--  1 love4taylor  staff   526B  3 11 20:16 index.js
drwxr-xr-x  5 love4taylor  staff   160B  3 11 20:20 lib
drwxr-xr-x  3 love4taylor  staff    96B  3 11 20:20 node_modules
-rw-r--r--  1 love4taylor  staff   1.0K  3 11 20:16 package.json
-rw-r--r--  1 love4taylor  staff   1.0K  3 11 20:16 sitemap.xml

@uiolee Can you have a look at this?
We will revert #136 if you can't help with the problem.

@love4taylor @SukkaW ,
sorry that forgot to edit package.json file: to include sitemap.txt. new commit is pushing.
before publish it to npm, try some ways to use the plugin.(one of them)

remove - sitemap.txt from yaml to diasble txt generate.
manualy download sitemap.txt to /yourblog/ form github, and config yaml template_txt:
manualy download sitemap.txt to /node_modules/hexo-generator-sitemap/ form github.

@love4taylor @SukkaW @uiolee
I just merged https://github.com/hexojs/hexo-generator-sitemap/pull/141 & published 3.0.1. Now it works well.
Thank you :)


Crates.io Questdb name

Hi! I'm the current owner of crates.io/crates/questdb. If you'd like me to transfer it to you, I'll gladly do it.

@solanav Hi Solanav,
We've since settled on the questdb-rs crate name.. that said I may want to merge all the functionality into a single crate. Whilst this is an aspiration this is not currently in the pipeline.
I currently lack the time to merge the two code bases, that said, the code I have currently exists in questdb::ingress with the hope of adding more functionality in the future. The query code you have could, for example, be moved into questdb::query. I'd then enable-disable ingress and query selectively based on features. This would be a breaking change for existing users of the questdb crate, but it would be a trivial change to upgrade existing client code. There's also an opportunity to use it as a base for query functionality in the Python client, but that would be longer term.
If you want to go ahead and give me access to the questdb crate I'd very much welcome it - I'm just clear about what the expectations would be.

Sure! I'll give you access to the crate, I didn't mean to imply I wanted to merge. I don't consider the code I wrote of any value, just wanted to give y'all the name. Just give me a username and I'll give ownership on crates.io

This would be me: amunra
https://crates.io/users/amunra
Thank you!

Done! Good luck with the development of QuestDB and its libraries!

Thank you!


Im having trouble understanding the server side example

Sorry if this isnt an actual issue with the code, but I wasnt able to understand the server side code that you put. In the server api code you had a section called pproxy.connections. What is this connecting to and by using this server would I be able to connect from a different network.

the connection parameter specify the proxy server and port


MetadatafileMapping Json for all files inside folder

I know we can map json file for uploading file , but we need to mention each file property in a json format. I want to know is there any wary to map single josn data to all the files inside the folder

Unfortunately, right now we don't have such capability. I'm sorry.


Standardize controller-gen Results

Recently we noticed the outcomes of controller-gen can be different on GitHub Actions (Ubuntu based) than on our workstations.
What can we do in order to make sure controller-gen will produce the exact same outcomes, regardless where it's being executed?

https://github.com/kubernetes-sigs/controller-tools/pull/623 was opened by @akram

I think this issue was closed - we recently updated controller-gen, and this seems to have addressed the issue.
/close


DW1000Ranging.cpp : may deadlock

When setting '_replyDelayTimeUS'  (via setReplyTime) to a small value (e.g. 3000) , an inactive device is deleted, but the state machine on the Tag/Anchor seem to be in an deadlock state (not running/sending further - I assume it should recover from this situation?).  The same happens if the default 'replyTime' is used. It just takes longer to get to the deadlock situation.
PS: For my tests I have modified console output code to output information (TAG/ANCHOR, time, range, power) only every 500ms.

UPDATE: actually, this also happens with the 'RangingTag/RangingAnchor' examples. After a while, Tag is still polling, but in Anchor main loop is not called anymore.
Probably an abnormal (e.g. division by zero) error that causes the program to halt?

Does NOT happen with the 0.6 release (I should have started with and not the master branch :)).

Problem gone. After changing back from Channel 4 to the default channel (Channel 5), the problem is gone.


fix: Fix skip error in calculate_row_count.

Which issue does this PR close?
Closes #2328.
Rationale for this change
When implement fuzz test , got error reading for the file(meta show in ut).
This pr fix the wrong logic in calculate_row_count.
What changes are included in this PR?

Are there any user-facing changes?

Nothing like a good off by one error

Haha, my bad 😭! should be more careful😩


Investigate dependabot pull request grouping

Dependabot now allows you to group together multiple
dependency updates into a single pull request.
Possible approaches suggested: Group all the docker updates together, group
any linting dependencies together (would just require a big RegEx).
Dependabot natively works with its own dependency groups here (e.g. Docker,
Pip).

I believe for a good amount of repos we have made this grouping now?
Generally, I find it easier to do the following:

If we have a single dependency update and it passes, we can merge it.
If we have multiple dependency updates, or a dependency update that is failing, then clone the repo and push one PR to do the update manually. Dependabot is smart enough to pretty swiftly bulk close the PRs when it realises that the information is out of date.

Yeah, we probably don't need to do anything here anymore.


Mark the session as accepted and discovered when receiving messages

install parallel tool. Please build against the latest micro.
Run greeter service
for i in `seq 1 100000`; do echo $i >> list.out; done
cat list.out | parallel -j 4 script.sh {}

Script (make sure you modify the service names appropriately):
echo "RPC request $1"
MICRO_PROXY_ADDRESS=localhost:64522 ./micro call go.micro.srv.greeting Say.Hello '{"name": "john"}'

Closing this PR as the tunnel and session interaction is more complex than what this PR intended to fix.


Crate: pyth-sdk-rs

Pyth is a service that makes crypto/other price data available on-chain
One of the components is a Rust crate pyth-sdk-solana which Solana programs can use to access the data
Package: pyth-sdk-solana
Version: 0.6.1
docs.rs link: https://docs.rs/pyth-sdk-solana/0.6.1/
LMK if you need any more information to add it! :)

Playground now supports pyth-sdk pyth-sdk-solana.


Command or api to display dashboard

Is your feature request related to a problem? Please describe.
I'm building a breadcrumb where one of the active elements would the dashboard for an account.
The dashboard, defined in package.json, is normally opened from the connection tree either by double-clicking on the connection node or selecting the "Manage" option item from the right-click context menu.
Describe the solution or feature you'd like
An api or an action that I can call from anywhere in my extension code to programmatically open this dashboard.
Describe alternatives you've considered
I've looked in the code and see that there's an internal "objectExplorer.Manage" command. The trick is to call it with all the correct connection parameters.

You should also be able to call connect and pass in true for showDashboard.


Specifying a root URL

It should be possible to specify a root url. For example this is the base URL of an app:
www.example.com/app
When one go to root with "router.go('/')" it should go to:
www.example.com/app
The root folder should not a part of a route. Like: http://guides.emberjs.com/v1.12.0/routing/#toc_specifying-a-root-url
Does this make sense?

This is already possible. Set the root config option to whatever you want.

On Jul 19, 2015, at 6:52 PM, Remo E<EMAIL_ADDRESS>wrote:
It should be possible to specify a root url. For example this is the base URL of an app:
www.example.com/app
When one go to root with "router.go('/')" it should go to:
www.example.com/app
The root folder should not a part of a route. Like: http://guides.emberjs.com/v1.12.0/routing/#toc_specifying-a-root-url
Does this make sense?
—
Reply to this email directly or view it on GitHub.

Thanks!

https://router.vuejs.org/en/api/options.html#base

@enomado link no longer works.

just had this same issue, this is the new link: [https://router.vuejs.org/api/interfaces/RouterHistory.html#base]