scsimon fails with error 'Unable to register event request. Is PiSCSI or RaSCSI already running? ; Unable to intiailize the GPIO bus. Exiting...."

Info
Which version of Pi are you using: Zero W
Which github revision of software: April 2023 Release - v23.04.01
Which board version: FULL
Which computer is the PiSCSI connected to: NA
Describe the issue
scsimon produces an error message and exits.
pi@scrape:~/images$ sudo scsimon
[info] Reading live data from the GPIO pins
[info]     Connection type : FULLSPEC
[info]     Data buffer size: 1000000
[info]
[info] Generating output files:
[info]    log.vcd - Value Change Dump file that can be opened with GTKWave
[info]    log.json - JSON file with raw data
[info]    log.html - HTML file with summary of commands
[info]
[info] Now collecting data.... Press CTRL-C to stop.
[info]
[info] Detected device Raspberry Pi 1
[error] Unable to register event request. Is PiSCSI or RaSCSI already running?
[error] Unable to intiailize the GPIO bus. Exiting....

pi@scrape:~/images$ systemctl status piscsi
● piscsi.service - PiSCSI service
     Loaded: loaded (/etc/systemd/system/piscsi.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-04-30 11:21:32 EDT; 1h 23min ago
   Main PID: 331 (piscsi)
      Tasks: 2 (limit: 529)
        CPU: 5.336s
     CGroup: /system.slice/piscsi.service
             └─331 /usr/local/bin/piscsi -r 7 -F /home/pi/images

You can't run piscsi and scsimon at the same time.  Should work then!

Ah, OK. I don't see any mention of that in the docs, so this is a documentation bug then :-)
Thanks1

Which documentation did you look at? The wiki is pretty clear about it I think. https://github.com/PiSCSI/piscsi/wiki/SCSI-Bus-Capture#capture-data
What may be missing is a line in the man page.
In addition, the error message does provide a hint, but perhaps it is ambiguous?
[error] Unable to register event request. Is PiSCSI or RaSCSI already running?

For cli tools I tend to rely on man pages or the output of -h / --help, so a mention there would be helpful.
Re. that error message, I interpreted it to mean "this tool needs PiSCSI to be running, are you sure it is?" rather than the opposite, so I think yes, it could be clearer.

feel free to update the man page and submit a PR. Always glad to accept suggestions :)
https://github.com/PiSCSI/piscsi/blob/main/doc/scsimon.1

Here's a PR that hopefully will improve the docs: https://github.com/PiSCSI/piscsi/pull/1175


SkillCalc: Clear button does not reset the search bar

This is like this with the Grand exchange plugin, so I'm assuming it's meant to be that way

To be fair, even if the GE plugin works in the same way, the UX is a bit un-intuitive. If the text field is empty the results displayed should be the same, it shouldn't matter whether or not it was cleared with backspace or the red x. An empty field is an empty field.

@deathbeam good first contribution?

Do you mean it doesn't reset the search results?

yes


Updating graphql dependency

Looks fine to me. Can you explain why it's important to make it less than version 15?

@RichardLitt in SemVer version 15 would be the next version that could introduce any breaking changes that could cause incompatibility with graphql-scalars. I would wait until a version 15 is released to assess whether we can increase the version or need to patch for 15.x compatibility.


Error: IOError(6, 'No such device or address')

Hi,
CentOS 7, trying to set up a server backup and get the following:
0   0%     0.00B/s    0:00:00DEBUG: IOError(6, 'No such device or address'):   File "/usr/lib/python2.7/site-packages/libgsync/crawler.py", line 150, in run
self._walk(srcpath, self._walkCallback, self._dev)
File "/usr/lib/python2.7/site-packages/libgsync/crawler.py", line 124, in _walk
self._sync(f)
File "/usr/lib/python2.7/site-packages/libgsync/sync/init.py", line 31, in call
self._sync(path)
File "/usr/lib/python2.7/site-packages/libgsync/sync/init.py", line 197, in _sync
self.dst.update(dstPath, srcFile)
File "/usr/lib/python2.7/site-packages/libgsync/sync/file/init.py", line 325, in update
self.__updateFile(path, srcObj)
File "/usr/lib/python2.7/site-packages/libgsync/sync/file/init.py", line 227, in __updateFile
self._updateFile(path, src)
File "/usr/lib/python2.7/site-packages/libgsync/sync/file/remote/init.py", line 110, in _updateFile
info = drive.update(path, info, src.getUploader(), progress)
File "/usr/lib/python2.7/site-packages/libgsync/sync/file/local/init.py", line 18, in getUploader
f = open(path, "r")
Error: IOError(6, 'No such device or address')
sent<PHONE_NUMBER> bytes  received 0 bytes  4076189.77 bytes/sec

Having this error too

Ok turns out the file was called .MumbleOverlayPipe, and was probably a pipe, explains why it couldn't be read.


Add Protocol before external URL in README

The Beta release URL in readme is added like bit.ly/tabtrumbeta which needs to be changed to bit.ly/tabtrumbeta. So that it doesn't redirect users to https://github.com/GeekBoySupreme/TabTrum/blob/master/bit.ly/tabtrumbeta (404).
PS: Would recommend you (@GeekBoySupreme) to push a commit all by yourself ASAP, so that no one claims it for free Tee :wink:

Thanks for pointing this out buddy. Had missed rectifying this.
But this is a legit issue. If anyone notices and does a PR, wouldn't really be bad.

Done. Fixed this.


fix(issue#185): add my list for in list command

Summary

This is a proposal for issue #185
There is  incoming list and todo list

and

Ticket Link

fixes #185

@jufab I have tested this PR and it does not looks like working the way it is shown. On running /todo list it shows empty even after the user has something in accepted Todo's and Incoming Todo's

On running /todo list

@jufab A gentle reminder for this.

@jufab Gentle reminder for this

@jufab Gentle reminder for this


Large number of simultaneous clients on same machine behave erratically

When using ManagedClient to connect to a broker, when I attempt to launch a number of clients in parallel threads to connect to a broker simultaneously, then connect takes a long time, and some clients error out. The same code works well with M2MQTT.
As an observation, about 300 connections were attempted. M2MQTT completed this within a couple of seconds, while MQTTNet took about 2+ minutes or so. Some times, I see a MQTTnet.Exceptions.MqttCommunicationTimedOutException as well.
Note: I need to return to the caller after connect succeeds, so I have the following:
			TaskCompletionSource src = new TaskCompletionSource<ConnectStatus>();
			client.StartAsync(options);
			src.Task.Wait();
			var connectStatus = src.Task.Result;

I call src.SetResult in the MqttClientConnectedEvent event and in ManagedProcessFailedEvent event, to indicate whether or not connection succeeded.
Any thoughts on why I am seeing this behavior, and how I can alleviate this?

Please try the normal and not managed client. The managed client has some overhead and spawns some tasks to do its work. If the same situation applies for the normal client please let me know.

@srinivasrb I assume this issue is solved now.


pj_msgs: 0.1.0-1 in 'kinetic/distribution.yaml' [bloom]

Increasing version of package(s) in repository pj_msgs to 0.1.0-1:

upstream repository: https://github.com/facontidavide/plotjuggler_msgs.git
release repository: https://github.com/facontidavide/plotjuggler_msgs-release.git
distro file: kinetic/distribution.yaml
bloom version: 0.9.7
previous version for package: null

Same concern regarding naming: https://github.com/ros/rosdistro/pull/24832#issuecomment-627577985


[WIP/backport/1.22] Release 1.22 build fix

Fix #23156

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

/wait for #23842

/retest

cc @adisuissa


Argument to add training info json

Adds a new argument --save_training_data that will create a dreambooth_info.json file in the output directory with arguments passed to train_dreambooth.py. Along with number of class images and instance images.

They are currently stored in a yaml file in logs dir, OUTDIR/logs/{numbers}/hparams.yaml.


Regression: PlatformNotSupportedException on Windows Server 2016 Datacenter

Contact Details
No response
Version
8.x
On which operating system(s) are you experiencing the issue?
Windows
Using which broker(s) did you encounter the issue?
Azure Service Bus
What are the steps required to reproduce the issue?
After upgrading from 8.0.10 to 8.0.11, I get PlatformNotSupportedException on start-up. Downgrading to 8.0.10 fixes the issue.
I experience this on Windows Server 2016 Datacenter. It works fine on Azure App Service for Windows. Both of these environments have the following details:
OSDescription: Microsoft Windows 10.0.14393
FrameworkDescription: .NET 7.0.2
RuntimeIdentifier: win10-x64

What is the expected behavior?
It works.
What actually happened?
I get the exception below.
Related log output, including any exceptions
Unhandled exception. System.PlatformNotSupportedException: Operation is not supported on this platform.
   at System.Runtime.Intrinsics.X86.Ssse3.Shuffle(Vector128`1 value, Vector128`1 mask)
   at MassTransit.NewId.GetFormatterArray() in /_/src/MassTransit.Abstractions/NewId/NewId.cs:line 174
   at MassTransit.NewId.ToString(INewIdFormatter formatter, Boolean sequential) in /_/src/MassTransit.Abstractions/NewId/NewId.cs:line 160
   at MassTransit.ConsumeTopology.CreateTemporaryQueueName(String tag) in /_/src/MassTransit/Topology/ConsumeTopology.cs:line 70
   at MassTransit.Configuration.ServiceBusBusFactoryConfigurator..ctor(IServiceBusBusConfiguration busConfiguration) in /_/src/Transports/MassTransit.Azure.ServiceBus.Core/Configuration/Configuration/ServiceBusBusFactoryConfigurator.cs:line 26
   at MassTransit.AzureServiceBusTransport.ServiceBusRegistrationBusFactory.CreateBus(IBusRegistrationContext context, IEnumerable`1 specifications, String busName) in /_/src/Transports/MassTransit.Azure.ServiceBus.Core/AzureServiceBusTransport/ServiceBusRegistrationBusFactory.cs:line 34
   at MassTransit.Configuration.ServiceCollectionBusConfigurator.CreateBus[T](T busFactory, IServiceProvider provider) in /_/src/MassTransit/DependencyInjection/Configuration/ServiceCollectionBusConfigurator.cs:line 86
   at MassTransit.Configuration.ServiceCollectionBusConfigurator.<>c__DisplayClass3_0`1.<SetBusFactory>b__0(IServiceProvider provider) in /_/src/MassTransit/DependencyInjection/Configuration/ServiceCollectionBusConfigurator.cs:line 65
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(Type serviceType)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
   at MassTransit.Configuration.ServiceCollectionBusConfigurator.<>c__3`1.<SetBusFactory>b__3_1(IServiceProvider provider) in /_/src/MassTransit/DependencyInjection/Configuration/ServiceCollectionBusConfigurator.cs:line 67
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitIEnumerable(IEnumerableCallSite enumerableCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitIEnumerable(IEnumerableCallSite enumerableCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitDisposeCache(ServiceCallSite transientCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(Type serviceType)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.AspNetCore.Builder.HealthCheckEndpointRouteBuilderExtensions.MapHealthChecksCore(IEndpointRouteBuilder endpoints, String pattern, HealthCheckOptions options)

Link to repository that demonstrates/reproduces the issue
No response

@TimothyMakkison seems like there is some issue with the optimizations for NewId on certain platforms. Is a platform check missing by chance?

It looks like it calls 'Sse3.IsSupported' and not Ssse3.IsSupported, at line 170. Ssse3.Shuffle can be called on incompatible platforms.

Ah, the old Sse3 vs Ssse3 trick. Seriously, what happens when Ssssssse3 shows up? What is this, Sesame Street??
Thanks for the quick response!

Thank you for the quick fix! Unfortunately this is a production system deployed to via CI where packages are restored, so I am both reluctant to and not easily able to test development packages. I will have to wait until it's on NuGet.

It's on NuGet, but it is a pre-release version. Let me know after v8.0.12 is released (probably won't be immediately without confirmation of a working fix).

Ah, I see. In that case I can test it. I'll let you know.

It works. 👍

Great, thanks for the update. I'll see about getting 12 out so that others aren't hit with this same issue.


app_exoctk.py : ImportError: cannot import name 'url_encode'

Hi all, I’m working with a fresh install of exoctk and ran into an obstacle that we should address:
When trying to run the web app, I received the following error ImportError: cannot import name 'url_encode'

After a quick dig for a solution, it looks like the issue was addressed in Issue https://github.com/pallets/flask/issues/3481
Apparently Flask recently (this February) updated its werkzeug dependency to werkzeug==1.0 which is where the problem arises. It looks like a temporary solution involves reverting to werkzeug==0.16.1
I can make a pull request to fix this, but more importantly I'm wondering what should be our protocol to avoid situations like these after a fresh install? Should we be explicit with the version # for all of our dependencies?
@nespinoza @bourque @mfixstsci

I think the best way to catch things like this is to write (more) unit tests that gets executed during the Travis build.  Currently our environment files do indeed install explicit versions of packages, but only ones that we import directly somewhere within the exoctk package.  But since werkeug is a dependency of a dependency (in this case flask_wtf), I'm not sure how best to avoid this -- at the end of the day it is the fault of flask_wtf for packaging their code with a broken dependency 🤷♂

Hi all,
Thanks @jaymedina for bringing this to an issue --- while doing my fresh install I ran across the same issue and totally forgot to report it! So --- if we force the installation of werkzeug==0.16.1 prior to installing flask, would flask update the version or keep that one? Alternatively, a quick workaround would just to add a line or two to downgrade werkzeug after installing flask --- is this what you had in mind @jaymedina?

@bourque thats what I was going to suggest. IIRC the python package manager should catch those dependencies, but I could be wrong.

@nespinoza what I did on my local environment was install werkzeug==0.16.1 by itself first, then installed flask without specifying a version. I had concerns that flask would override my werkzeug==0.16.1 with the newest version, but it seemed to work.
So it might be enough to just add a line of code somewhere in the setup.py and environment .yml files to explicitly download werkzeug==0.16.1

Hey @jaymedina --- that sounds good to me! If you could push that, that would be great --- let's test it on a fresh install tough just to be sure it works! Thanks!
N.


button fix

connects to #337

.rev-Buttons in a .rev-ButtonGroup had spacing between them when used in an actual project I think this wasn't happening on harmonium.revelry.co possibly because of styles added to the playground?? Can't confirm this.. but I paired with Blaze on a project and saw the issue and tested the fix
we added font-size: 0 to the .rev-ButtonGroup so that no character spacing gets added between buttons in a buttongroup

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

Pull Request Test Coverage Report for Build 641

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 80.495%

Totals

Change from base Build 639:
0.0%

Covered Lines:
785

Relevant Lines:
918

💛  - Coveralls


Could you please add a license to this project? Thanks!

Could you please add a license to this project so that we can develop new algorithms based on your code? Thank you!

Sure!


Update syntastic plugin

Syntastic git repo is at https://github.com/vim-syntastic/syntastic. Currently yadr is referecing one from scrooloose/syntastic.git.

Please kindly open a PR

Closed via #834


Implement CSV generation

Implements #16

Regarding #16 , we should at least implement custom delimiter 😄
Quote enclosing, proper error handling on bad value (You use "|" delimiter but this delimiter was detected in your data"), ... could be implemented in a future release.


How do I loop the box in reverse?

I am using GidView.builder to layout my stuff. How do I loop the contents of the box in reverse so I get the newest ones first?

Hive depends on the dartx package, which is also written by @leisim. It adds a .reversed property on Iterables, which is very handy. Not sure about the performance impact tho.

The underlying data structure is an indexable skip list. Unfortunately the entries do reference the previous entries so you need to rely on the index. The performance should be O(n log n). I think the dartx .reversed property does not use the indices so the performance would be much worse.


[stdlib] Add an ambiguity breaker for RRC.popLast

Source compatibility regression from adding a default implementation of popLast to RRC.
Needs tests to avoid future regression but will do in separate PR to unblock things quicker.

@swift-ci please test

cc @eeckstein

@swift-ci please test and merge

@swift-ci please test and merge


Serialize task token at the frontend only

Frontend should be responsible for serializing/deserializing the task token. All other internal services should use the internal representation.

We discussed and came to the conclusion that there isn't that much benefit to be gained from doing this. There is a common component that has the code to serialize/deserialize the token, which is used by all services so there is no code duplication.


class cast exception

When trying to auto-fill the recipe for a chainsaw in AE2, the server crashes with the following:
java.lang.ClassCastException: goldenapple.rfdrills.item.ItemChainsaw cannot be cast to goldenapple.rfdrills.item.ItemDrill
at goldenapple.rfdrills.crafting.ShapedUpgradeRecipe.func_77572_b(ShapedUpgradeRecipe.java:22) ~[ShapedUpgradeRecipe.class:?]
log: http://paste.ee/p/lnIlt

Are you using the newest version? I'm almost exactly sure I fixed this in some of the newer versions. Go grab the the newest one and see if that helps: http://minecraft.curseforge.com/mc-mods/229846-rfdrills/files/latest

I can probably close this now?


Cluster name is not present in Cluster list response

Cluster name is not present in Cluster list response:
{"clusters":[{"sds_name":"glusterfs","sds_version":"3.9.1","integration_id":"d250df46-e1de-4070-b6b5-32fde35d27a3","cluster_id":"d250df46-e1de-4070-b6b5-32fde35d27a3"}]}
it should contain cluster name in order to populate cluster name on UI.

@anivargi @nthomas-redhat cluster list response should contain cluster name in order to populate cluster name on UI. Please can we have this property on response ?

Issue Fixed - The name for Ceph and Gluster is coming in the API now.Issue.


refactor: gateway compiler handle declare tx

This change is

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

#439  👈
#391 : 1 other dependent PR (#298 )
#383 : 1 other dependent PR (#392 )
main

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

Join @ArniStarkware and the rest of your teammates on  Graphite

Codecov Report
Attention: Patch coverage is 89.36170% with 5 lines in your changes missing coverage. Please review.

Project coverage is 83.25%. Comparing base (9152413) to head (c22f909).

Files
Patch %
Lines

crates/gateway/src/compilation.rs
90.47%
1 Missing and 3 partials :warning:

crates/gateway/src/gateway.rs
0.00%
0 Missing and 1 partial :warning:

Additional details and impacted files
@@                              Coverage Diff                              @@
##           arni/declare/compilation/add_to_app_state     #439      +/-   ##
=============================================================================
+ Coverage                                      83.09%   83.25%   +0.16%
=============================================================================
  Files                                             37       37
  Lines                                           1745     1762      +17
  Branches                                        1745     1762      +17
=============================================================================
+ Hits                                            1450     1467      +17
  Misses                                           218      218
  Partials                                          77       77

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


readme updated and list of contributors added

#2 also made few minor changes

Please look out the Images and some minor changes...

Please look out the Images and some minor changes...


Add error reporting triggers, include payload of message that triggered the error

When we encounter an exception during Normalization or MeasurementToFhir, we now have the ability to send the exception to a destination (IErrorMessageService) if it is supplied at startup. The exception will include the message payload. Note: for MeasurementToFhir the payload is the normalized payload and not the original device data payload.
There is not implementation of IErrorMessageService included in this PR. However, if one is injected then it will be used.

It looks like there is a case in Normalize Processor.cs (line 65), where an exception for an invalid template can be thrown that is not handled by the Error Message Service.

It looks like there is a case in Normalize Processor.cs (line 65), where an exception for an invalid template can be thrown that is not handled by the Error Message Service.

Yes it throws a ValidationException. I believe I have accounted for this by including ValidationException in NormalizationExceptionTelemetryProcessor.cs when the Error Message Service is enabled.
The Normalize Processor is no longer used since we recently replaced it with NormalizationEventConsumerService, so I did not update the Normalize Processor. I can add the same logic to the Normalize Processor if we want to, but we should probably just delete it.

Yes. We should just delete this if it is not being used anymore.

Yes. We should just delete this if it is not being used anymore.

done


Fixing overlap content after react menu on comment.

Hey guys
This fixes #1391 :))

@rnystrom Should Bitrise CI be running? Remember you saying in a comment on other PR something about it :))

Yeah, that's odd. According to this comment this should work

Hmm this will totally reload everything in the section. I wonder if there’s a more elegant way to do this? What if we just invalidate the layout?
Sent with GitHawk

@rnystrom I've tried this
        collectionContext?.invalidateLayout(for: self, completion: nil)

But doesn't work, but I have no idea why my knowledge of IGListKit now is very very basic 😅

@LucianoPAlmeida do you have a good grasp on what exactly is wrong and how this fixes it? I'm a little confused.

@rnystrom
My stream of thought debugging this was
The error only appears when the UIMenuController appears and disappears -> So it should be something UIMenuController does that mess up with the collection view graphical context/layout -> First I thought that it seems like a bug on UIMenuController with CollectionViews, but since I don't know the underlyings of how it is presented in the view hierarchy I could not assume that -> So just thought in after menu disappears relayout the cells -> Since the invalidateLayout doesn't work, I thought in just reload the cells and it works :)

@rnystrom What you think? It's possible that I'm missing something on the code? I'm still getting familiar with the codebase :)

Hey @rnystrom Took me a little time, but found that collectionContext?.invalidateLayout(for: self, completion: nil) work's I was just not calling it in the right place :))
But now I think it is fixed :))
Sorry for the delay 😅


Prevent panic if exec process dies before sync channel is created

I found a bug when using the docker version of centos, which has been modified in the docker community. I hope you can also fix this bug.
https://github.com/moby/moby/issues/30469

fixed in docker-1.13.1-rhel and docker-1.13.1


feat: add envFrom and valueFrom to helm charts

Related issue(s)
No related issue, discussed in discord.
Checklist

[x] I agree to follow this project's Code of Conduct.
[x] I have read, and I am following this repository's Contributing Guidelines.
[x] I have read the Security Policy.
[ ] I have referenced an issue describing the bug/feature request.
[ ] I have added tests that prove the correctness of my implementation.
[x] I have updated the documentation.

Description
Adds the possibility to reference other secrets and configmaps in the heimdall config, in order to consume values from other deployed softwares.

Thank you very much for this PR.
Would you please address my two comments and update the chart README (https://github.com/dadrus/heimdall/blob/main/charts/heimdall/README.adoc) to let it reference the new/updated settings?


default mac hotkeys not working

Describe the bug
Mac users cannot use cmd+{a,c,v} in input boxes such as the search bar or zoom api box.

On dev it is working fine but when I try to run the compiled version it isn't working. (this will be fun to debug)

https://github.com/shabados/presenter/pull/664


Allow topologies to be executed as specific users

Some users want the option of running their topologies as a specific user. This on the surface would be easy to do by setting the FrameworkInfo.setUser() to that user. However that would force the Supervisor and LogViewer (PR) to run as that user as well. There may be scenarios where this is not advisable.
It appears that if CommandInfo.setUser() is set then the supervisor/topologies will be run as that user. I know mesos/myriad has gone through extensive coding to get this right, including chown of the installation directories.

This relates to extensive efforts in storm-0.10.0+ to have user-specific topologies via "storm authentication":

https://storm.apache.org/2015/06/15/storm0100-beta-released.html
https://github.com/apache/storm/blob/master/SECURITY.md

I'm not planning to work on this.

@fuji-151a & @JessicaLHartog : FYI, this relates to PR #195.  Please take note of @pdread100's initial comment about the user for the Supervisor and Logviewer.   Since the launching of Logviewer is not supported by me in this project (not until STORM-1342 is fixed!), I don't particularly care about that part of it.   And considering the Supervisor -- I don't see a problem with it being the same user as the workers.

Notably, the idea with this issue was I think to not only allow the storm processes to run as a non-root user, but also to be able to allow different topologies to have different users.  That would be a further enhancement beyond the change proposed to #195.   I suppose it could be a Topology-specific configuration option, similar to the topology.mesos.worker.cpu option.  e.g., topology.mesos.user.

@erikdw

I don't see a problem with it being the same user as the workers.

I agree.
However, I want to specify separately for the user of Nimbus outside the Mesos cluster and the user of Supervisor inside the Mesos cluster.
I think the function of this issue is very wonderful, but I don't need that thing.

@fuji-151a : gotcha.  Please give us a bit of time to merge the proposed change in #195, I wanna test it myself first.


Stabilize

Merge master → stabilization and update the version number to 1.1.1-rc.

@sharwell Can't merge this one, you need to do it yourself.


cannot downlaod SDelete.zip

Describe the bug
can not download SDelete.zip
To Reproduce
Steps to reproduce the behavior:

Go to 'https://docs.microsoft.com/ja-jp/previous-versions/bb897443(v=msdn.10)?redirectedfrom=MSDN'
Click on 'SDelete のダウンロード'

Expected behavior
SDelete.exe will be downloaded.
Screenshots

Desktop (please complete the following information):

OS: Windows10 1909
Browser: Microsoft Edge
Version: 81.0.416.72(x64)

You were able to download it from this URL. 'https://docs.microsoft.com/en-us/sysinternals/downloads/sdelete'
object url: https://download.sysinternals.com/files/SDelete.zip
You were able to download it from this URL.
http://download.sysinternals.com/files/sdelete.zip

Seems like its case sensitive. SDelete.zip instead of sdelete.zip  Looks like you got it to work. Thank you! I will send the problem to the sysinternals admins to be aware and fix. #please-close


OnnxToLinalg Unsqueeze Failing

https://github.com/llvm/torch-mlir/pull/2991

Fixed through https://github.com/llvm/torch-mlir/pull/2991


Quantifying the speedup

./timing/timing.py should collect and report average and variances across multiple runs rather than time of a single run.
Most recent output:
https://gist.github.com/patham9/9af1fb750ed37dd3b0c31c3740e7ccd9

done: https://github.com/patham9/metta-morph/commit/b3b9907ae597e31b911fcdde2933becdac4786d1


Autocomplete for custom function?

Considering that I have this function in ~/.zshrc:
function work() {
    cd /home/lucas/work/$1
}

And these folders:
/home/lucas/work/foo
/home/lucas/work/bar

How can I type work f and press "tab" to get work foo?

See https://unix.stackexchange.com/a/65071. You'd make a function _work and link it to the work function you've made with compdef _work work. Full thing:
function work() {
    cd /home/lucas/work/$1
}
_work() {
    _files -W /home/lucas/work
}
compdef _work work


navigation node kind typo

Typo, should be safe_navigation_operator?
    safe_navigaion_operator: ($) => "?.",

This is published now.


Proposal: Add support for the new FastApi Cli

Summary
Fastapi now hast his own cli : https://github.com/tiangolo/fastapi/releases/tag/0.111.0
Proposal: Extension for integration of advanced alchemy in  FastApi cli.
Basic Example
No response
Drawbacks and Impact
No response
Unresolved questions
No response

Just to understand more.  You'd be looking for the same CLI functionality that Litestar has but with the Typer CLI in fastapi-cli?
I'd have to look a bit more, but I think this is feasible.

So I'm thinking primarily of the alembic command. It would be nice to be able to use these directly with the fastapi-cli


Allow usage of external colormaps, e.g. from matplotlib

It would be nice if interpolate() had knowledge of palettes to range over, instead of requiring a low and high color value.  This should be a fairly straightforward thing to do, but will just require a brief survey of what currently exists and the best way to incorporate the possibilities.  (e.g. https://bids.github.io/colormap/)

@jcrist and I have discussed ways to support this easily.  I sent him some sample code in C from an earlier project of mine that makes it trivial to specify arbitrarily complex colormaps, and he said he already had some code of his own that was similar, and would be able to put that in.  Too many things that need doing at once, though!

Actually I think that we should be able to just grab in the colormaps from matplotlib (http://matplotlib.org/examples/color/colormaps_reference.html) and modify interpolate() to take a cmap kwarg that just defines one of these.  I'm hacking up a simple implementation right now.

Yes, I think we should support that as well; they are complementary approaches.

Odd; I think waffle.io changed the title back after I changed it!


Support C# 6 Null Conditional Operator

Requested here and here.
MSDN
Expected
This works:
int? length = customers?.Length; // null if customers is null
Customer first = customers?[0];  // null if customers is null
int? count = customers?[0]?.Orders?.Count();  // null if customers, the first customer, or Orders is null

Actual
Doesn't compile

Related #1435


libgdx + Google ARCore integration

Hello everyone,
I'm working a little bit on the OpenGL SDK of Google ARCore, and was wondering, do you have any examples of integration of ARCore with the libgdx engine? I've seen there are many example of Google Tango + ARcore, but not for libgdx...
Thank you for your help!

I shared out my project which integrates ARCore into LibGDX:  https://github.com/google/helloargdx.


Issuer Discovery from Link Header vs WebID Profile

when using the "Issuer Discovery From Link Header" method, the issuer is linked to the PersonalProfileDocument, not to the Person inside that the issuer is actually vouching for. in other words, the subject of the link isn't the WebID. i don't think that's semantically right.
doing an HTTP OPTIONS on the location of the profile document takes at least one extra round-trip time (assuming you'll retrieve the full document eventually anyway and so will already be establishing a TLS+HTTP connection to the server) in order to potentially get not-really-right information. furthermore, ordinary web servers (on which it should totally be fine to host a profile document) are unlikely to provide this link relation in an OPTIONS call.
therefore, the first (and probably only) choice should be the one described in "Issuer Discovery From WebID Profile". the semantics are clean and correct, the functionality can be supported by any web server, and an unnecessary HTTP transaction and its round trip time are saved.
i propose striking the entire "Issuer Discovery From Link Header" subsection.

While I don't object to removing Issuer Discovery From Link Header section if it's not useful, I do want to clarify:

the issuer is linked to the PersonalProfileDocument, not to the Person inside that the issuer is actually vouching for

I think you misunderstand. This method is to discover the authorized URL of the server, for a given WebID Profile document (not the person).
Meaning, that if I have somebody's WebID, like https://dmitri.solid.community/profile/card#me, I can do an OPTIONS request and figure out which OIDC Provider is authorized, for that profile. For example:
OPTIONS https://dmitri.solid.community/profile/card

Link: <https://solid.community>; rel="http://openid.net/specs/connect/1.0/issuer"

So, this has nothing to do with semantics for a person.

i mean that the OPTIONS request is on /profile/card, and the returned Link for an OIDC issuer would be for /profile/card, but the webid of interest is /profile/card#me.  that only makes sense if the semantics of rel="http://openid.net/specs/connect/1.0/issuer" mean "issuer for the foaf:primaryTopic of URI", which seems hacky.

to put it a slightly different way: the first step in "Issuer Discovery From Link Header" says "1. Make an HTTP OPTION [sic] request to the WebID URI."  but that's not actually possible, because the WebID URI typically includes a fragment identifier, but fragment identifiers are not sent to HTTP servers as part of the request URI.
any links in a Link header returned by the server refer to the requested URI, but here the requested URI is not the WebID, rather it's the profile document that contains the WebID.  the OIDC issuer doesn't issue profile documents; it issues WebIDs.
for this use case, the information returned in the Link rel="http://openid.net/specs/connect/1.0/issuer", while it could have some meaning, isn't relevant to discovering the issuer of the WebID itself (the WebID URI isn't the subject of the implied triple). at best it's a non-sequitur, at worst it's erroneous (a claim that's not true).
additionally, for the server to even want to give that Link in its response, there has to be something magical about the profile document that the server knows (some kind of metadata or other special knowledge that this is a profile document and what its issuer is, perhaps transformed by the server from the http://www.w3.org/ns/solid/terms#oidcIssuer claim inside the profile).  expecting this above-and-beyond behavior from an HTTP server isn't reasonable or necessary when there's a more direct, fits-with-the-simple-web way to get the same information, that all web servers already implement (that is, returning the requested document).

@zenomt thanks!
I'm +1 on deprecating the "Issuer Discovery From Link Header" method. I don't think it's used out there in the wild (the auth clients are using the other method).
What do the rest of the Solid folks think?

@dmitrizagidulin maybe worth marking it at risk with link to this issue? People could voice their objections (if any) directly on your PR.

@elf-pavlik sounds good!

I see one valid use case for discovering issuer with link headers: if you put the link header on the whole domain this allow users to connect by filling only their domain during provider selection instead of the full webId.
The workflow would be the following:

User enter only the domain part during provider selection
App fetch link header and redirect to auth URI
User login with login and password
User get redirected back to app with token containing webId

Does anyone know the status of this? According to @dmitrizagidulin's update from 24 Apr 2019, the method marked at risk is not used in the wild but experimenting with my own profile today (https://nickform.inrupt.net/profile/card#me) I find that only that method is available - i.e. my profile document does not contain a triple using the http://openid.net/specs/connect/1.0/issuer relation. I'm just a curious passer-by trying to understand authentication in Solid.

Much of the current work related to authentication in Solid is being conducted in the context of the Authentication Panel, and the current draft specification will have the most up-to-date information about what is and what isn't in scope for authentication in Solid.
As to your question about this particular link header, it is not part of the current draft specification. Your profile document also does not contain the triple <#me> solid:oidcIssuer <trusted-issuer-URL>., which is required by the current draft. Node Solid Server supports the profile format you have in place because it relies on the fact that your Pod is part of the same domain (inrupt.net) as the identity provider, which has been allowed in the past but which is not part of the current specification.

Thanks for the explanation @acoburn .


Improved nullability, experimental implementation support, and much more…

This is a major overhaul that addresses several foundational issues with Rust/WinRT to make it feel more idiomatic and enable authoring support, a key enabler for many upcoming scenarios like UI support. It includes breaking changes and thus the version bumps to 0.8.
The most obvious change is the change to model the nullability of certain COM and WinRT types with Rust’s Option<T> and not allowing those objects to store a null pointer value directly. The underlying ABI representation is unchanged. In other words, an Option<IStringable> with a None value is represented by a single null pointer in memory. The benefit is that you do not have to first check whether an object is valid before using it. And expressing nullability with Option<T> is just more idiomatic in Rust. At first I thought this would negatively impact usability – since every object would need to be unwrapped – but I came up with a simple way to remove this tedium and fold it into the error handling that is already a part of using most Windows APIs.
Here’s an example of a Win32 function that returns a WinRT class.
#[link(name = "coremessaging")]
extern "stdcall" {
    fn CreateDispatcherQueueController(
        options: DispatcherQueueOptions,
        dispatcherQueueController: &mut Option<DispatcherQueueController>,
    ) -> ErrorCode;
}

Since the WinRT class can transparently be used as an out parameter, it makes interop much easier. Wrapping this up with a Result<T> and returning it is also quite convenient thanks to support provided by Rust/WinRT via and_some:
fn create_dispatcher_queue_controller(
    options: DispatcherQueueOptions,
) -> winrt::Result<DispatcherQueueController> {
    unsafe {
        let mut result = None;
        CreateDispatcherQueueController(options, &mut result).and_some(result)
    }
}

Not only does this convert the Option<T> into a Result<T> but it also deals with the nullability of the result. Should the function return success and yet return a null pointer value, which is possible but unlikely in most cases, the absence of a value is transformed into an error that the caller can choose to deal with, or treat as fatal, depending on the circumstance. This means that once you’ve unwrapped the Result<T>, you can be assured that you are holding a valid object and can simply make use of it directly.
let controller = create_dispatcher_queue_controller(options)?;
let queue = controller.dispatcher_queue()?;

While still very much experimental, this update also includes initial support for implementing WinRT interfaces. The next step is to support WinRT classes and COM interfaces and many edge cases, but this is a major milestone in the path toward full COM and WinRT support. Being able to implement types in Rust unlocks so many possibilities.
fn main() -> Result<()> {
    let t = Thing("hello".to_string());

    let s: windows::foundation::IStringable = t.into();
    println!("{}", s.to_string()?);

    let c: windows::foundation::IClosable = s.cast()?;
    c.close()?;

    Ok(())
}

#[implement(windows::foundation::{IStringable, IClosable})]
struct Thing(String);

impl Thing {
    fn to_string(&self) -> Result<HString> {
        Ok(HString::from(&self.0))
    }

    fn close(&self) -> Result<()> {
        println!("world");
        Ok(())
    }
}

At this point, you can only implement existing interfaces, but when #81 is complete you will also be able to define your own WinRT types and implement those as needed.
Other notable improvements:

Traits that were previously derived are now unrolled and generated directly as the derive macro proved too slow.

A single and simpler way to cast from one WinRT type to another using the Interface trait’s cast<T> function.

Support for APIs that pass structs by reference. This was previously UB.

A simpler uniform implementation of Debug as well as many other traits.
Mostly this is all goodness.

Great to see things moving! 👍
Do you plan to release a new version to crates.io anytime soon? I think it would greatly improve discoverability of these changes, and as such would help to get more feedback.

Thanks @Alovchin91! I thought I responded but my comment seems to have disappeared. There are a few usability issues I'd like to address before publishing another update. Mainly https://github.com/microsoft/winrt-rs/issues/351 and then I'd love to get folks starting to use the Option based nullability.


docs: web wallet, how to upgrade between testnets

We should figure out what the recommended user actions are for web wallet when a new testnet is released. It's not even clear to me yet. In the past, I've simply uninstalled-and-reinstalled the extension to get the latest version, which is clunky. Questions I have:

Is it possible to upgrade the version of the extension from within the Chrome Web Store? I've never seen an "upgrade" button anywhere, but I'm a Firefox user by day, so perhaps I'm missing something obvious.
When a new testnet is released, should we assume a new version of the extension is also released to bump the chain id? If so, we need a solution to 1.
If the answer to 2 is no (and IMO it should be), then we need to document how to edit the chain settings within the extension. There's a UI flow for this, but it might be tricky for less technical users.

All these improvements should land in https://guide.penumbra.zone/main/extension.html

Is it possible to upgrade the version of the extension from within the Chrome Web Store?

According to Zpoken, one can expect the web extension to update automatically within Chrome. I haven't observed this myself yet, as I was expecting a specific button to perform the upgrade manually.

If the answer to 2 is no (and IMO it should be), then we need to document how to edit the chain settings within the extension.

The proper procedure here is to "reset" the extension, then it will resync on the new testnet. This must be done manually, and therefore should be documented.

According to Zpoken, one can expect the web extension to update automatically within Chrome.

A new version of the extension, v0.2.3, was just released: https://github.com/penumbra-zone/wallet/releases/tag/0.2.3 and it's already in the Web Store: https://chrome.google.com/webstore/detail/penumbra-wallet/lkpmkhpnhknhmibgnmmhdhgdilepfghe/ My local browser has v0.2.2 installed, so I'm leaving it running and will monitor for an automatic update.

My local browser has v0.2.2 installed, so I'm leaving it running and will monitor for an automatic update.

After an hour, no change, but then restarting the browser instantly updated it to 0.2.3. So I've observed automatic upgrades of the web extension, as described.


used router at Ultra is export from now on?

Thank you for the wonderful tool.
I have been using it since 0.6.
In 0.6, router had been exported.
After 0.7, will router be export or API extend not be support?
Source code at my app.
https://github.com/Octo8080/Twitter-Timeline-app

Hey @Octo8080X - Yes, from v0.7.0 onwards, oak will no longer be a dependency of ultra. We are aiming to reduce the amount of dependencies moving forward, while making it easier to support differing targets.
One of the ways we are looking to support oak is with a generic request handler, which will be  similar to this pseudo-code. I think there are more benefits by having full management of oak outside of ultra.
import { Application, Router } from "https://deno.land/x/oak/mod.ts";
import { ultraHandler} from "https://deno.land/x/ultra/mod.ts";
import importmap from "./importmap.json" assert { type: "json" };

const app = new Application();
const router = new Router();

router
  .get("/custom-route", (context) => {
    context.response.body = "#1";
  })
  .get("/*", (context) => {
    context.response = await ultraHandler({importmap, request: context.request})
  });

await app.listen({ port: 8000 });

I will add this to the v0.8.0 milestone, as this request handler is not exposed yet.

Thank you.
I am very happy.
We are looking forward to the release of the generic request handler in 0.8.0.

Merged and will be released in v0.8.0


Irinja: encumbered

Poor girl Irinja (dsa5-core characters) has an archaic labor in her items list.
Thats 30 stones, so she starts with encumbrance 4 & incapacitated.
Maybe change the weight to 0 in this case? I dont think she has it on her back...

Yes, that's not a bug. Keeping different versions for items is already annoying enough given TDE has every item in every book.
Won't change this.

OK
Is there a way to have it nested in a "bag" and not equipped, on a per-char level? That would solve it, too (in a way).
On the other hand, it is what it is :)


Allow TA/Prof to add patches after deadline

Won't be implementing this. Deadline can be extended if needed.


Converted missing logs from the fill page step and associated OS calls.

Current dependencies on/for this PR:

main

PR #10

PR #11   👈

This comment was auto-generated by Graphite.

@kimmidi cc

@dhawkes queued this pull request to merge with Graphite.

@dhawkes queued this pull request to merge with Graphite.


Added missing stdlib.h in ukvm_hv_kvm.c and ukvm_hv_kvm_x86_64.c

The two edited files in question call malloc(ukvm_hv_kvm.c) and calloc(ukvm_hv_kvm_x86_64.c), but does not include the standard library. As far as I know, this leads to one of two things; either the compilation aborts because of 'implicit declaration of function'(modern compilers) or the compiler assumes a function that returns an int. The first is safe, while the second can be highly dangerous.
This pull request fixes the problem by including stdlib.h in both files.

Thanks @thomaco
@mato, @djwillia: will merge this as it looks safe. Also, this should be fine on Freebsd as well.

@thomaco Thanks, this looks fine. Not sure why it got missed and/or why the various CIs have not complained.
Which reminds me, it looks like the surf-build CIs did not run for this PR, I'll check on the Linux ones.


Challenge of week one

User Story
AS A marketing agency
I WANT a codebase that follows accessibility standards
SO THAT our own site is optimized for search engines

## Acceptance Criteria

GIVEN a webpage meets accessibility standards
WHEN I view the source code
THEN I find semantic HTML elements
WHEN I view the structure of the HTML elements
THEN I find that the elements follow a logical structure independent of styling and positioning
WHEN I view the icon and image elements
THEN I find accessible alt attributes
WHEN I view the heading attributes
THEN they fall in sequential order
WHEN I view the title element
THEN I find a concise, descriptive title

All required tasks for the challenge have been completed


Add support for gRPC server

Due Date: 26/11/21
Description

Create an initialize function in a "grpc" package to set up and run the gRPC server. Note this is only to get the server running. It should use the configuration to set up interceptors and handlers. There should be the ability to specify the port.
UAT

Place UAT here

Deployment Steps

Place steps here

SubTasks

[ ] Write test for grpc init func
[ ] Create a package in weoscontroller called "grpc"
[ ] Create an initialize function in there

(this needs to take in a context parameter which will be passed in wherever the initialize func is being called. This is because we are not using echo context for grpc therefore native go. context will be utilized)

thinking to have a struct as we did in the auth api for the grpc
eg.
type WeosGrpc struct {
pb.UnimplementedWeosGrpcServer
Application weos.Application
}
func (s *WeosGrpc) Initialize( ctx context.Context, api APIInterface, apiConfig string) context.Context
function call would look like
var newGRPC &weoscontroller.WeosGrpc{}
context := newGRPC.initialize ( &API{}, "./api.yaml")

Handlers seem to be tightly coupled to the server in grpc


Feature Request: Better Sorting Capabilities?

I just installed GmailScheduler. So far, I'm loving it.
I realize that Gmail sorts its labels. But I am curious if app script could be modified to improve sorting. For example, could the script ignore text between square brackets "[" and "]"?
If so, then I could sort/organize my labels in the following way:
[01] 2 hours from now
[02] 4 hours from now
[03] 8 hours from now
[04] 12 hours from now
[05] ---------------------
[06] 1 day from now
[07] 2 days from now
[08] 3 days from now
[09] 4 days from now
[10] 5 days from now
[11] 6 days from now
[12] ---------------------
[13] 1 week from now
[14] 2 weeks from now
etc...

Yes, unfortunately Gmail does not allow control of label position directly so this has to be managed by the user.
So
1 hour later
2 hour later
3 hours later
ONE Day later
TWO days latter
so the 1 will show above ONE and so on. Hope this makes sense and it looks like the only workaround for now.


Fix for OPTIONs method crash (#12)

This fixes issue #12.

It looks great. My only request before merging in the change is to remove the print at the end of the test method.
Thank you

Ah yes, got spot. I've forced an update.

Thank you for your help on this!

I forgot to mention, I will put a bug fix release out soon (hopefully today).

Thanks for being quick! :dart:

The change is now live on PyPI.


Upgrade Socket.io client

As mentioned in maxkueng/somascrobbler-api#4 SomaScrobbler API (http://api.somascrobbler.com/) will be switching to Socket.io 1.3.5 which is incompatible with Socket.io 0.9.16.

Done in version <IP_ADDRESS> of the extension. Thanks for the heads up!


add Street Fighter IV Fightstick TE (Linux)

add Street Fighter IV Fightstick TE (Linux)
Note: The first commit was a reorder that check.py --format performed on the unmodified file. I guess the previous change was done without running check.py --format or there are version differences in check.py that sort differently.

Yes that happens with mappings that have the same name once in a while (its not really deterministic that way).
Thank you for the mapping!


[v2] Update after dropping deprecations

Part of: https://artsyproduct.atlassian.net/browse/PLATFORM-1630
Depends on: https://github.com/artsy/metaphysics/pull/1854

Fails

:no_entry_sign:

🃏 FAIL in MoreInfo-tests.tsx

Renders the Show MoreInfo screen

Full message

Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout.
    at new Spec (/home/travis/build/artsy/emission/node_modules/jest-jasmine2/build/jasmine/Spec.js:116:22)
    at new Spec (/home/travis/build/artsy/emission/node_modules/jest-jasmine2/build/setup_jest_globals.js:80:9)
    at specFactory (/home/travis/build/artsy/emission/node_modules/jest-jasmine2/build/jasmine/Env.js:575:24)
    at Env.it (/home/travis/build/artsy/emission/node_modules/jest-jasmine2/build/jasmine/Env.js:644:24)
    at Env.it (/home/travis/build/artsy/emission/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:132:23)
    at it (/home/travis/build/artsy/emission/node_modules/jest-jasmine2/build/jasmine/jasmineLight.js:93:21)
    at Object.it (/home/travis/build/artsy/emission/src/lib/Scenes/Show/Screens/__tests__/MoreInfo-tests.tsx:16:1)
    at Runtime._execModule (/home/travis/build/artsy/emission/node_modules/jest-runtime/build/index.js:888:13)
    at Runtime._loadModule (/home/travis/build/artsy/emission/node_modules/jest-runtime/build/index.js:577:12)
    at Runtime.requireModule (/home/travis/build/artsy/emission/node_modules/jest-runtime/build/index.js:433:10)
    at /home/travis/build/artsy/emission/node_modules/jest-jasmine2/build/index.js:201:13
    at Generator.next ()
    at asyncGeneratorStep (/home/travis/build/artsy/emission/node_modules/jest-jasmine2/build/index.js:27:24)
    at _next (/home/travis/build/artsy/emission/node_modules/jest-jasmine2/build/index.js:47:9)
    at /home/travis/build/artsy/emission/node_modules/jest-jasmine2/build/index.js:52:7
    at new Promise ()
    at /home/travis/build/artsy/emission/node_modules/jest-jasmine2/build/index.js:44:12
    at jasmine2 (/home/travis/build/artsy/emission/node_modules/jest-jasmine2/build/index.js:60:19)
    at /home/travis/build/artsy/emission/node_modules/jest-runner/build/runTest.js:385:24
    at Generator.next ()
    at asyncGeneratorStep (/home/travis/build/artsy/emission/node_modules/jest-runner/build/runTest.js:161:24)
    at _next (/home/travis/build/artsy/emission/node_modules/jest-runner/build/runTest.js:181:9)

:no_entry_sign:

🃏 FAIL in ShowEventSection-tests.tsx

renders

Full message

TypeError: Cannot read property 'replace' of undefined
    at /home/travis/build/artsy/emission/node_modules/enzyme/build/ReactWrapper.js:906:58
    at Array.map ()
    at ReactWrapper. (/home/travis/build/artsy/emission/node_modules/enzyme/build/ReactWrapper.js:905:37)
    at ReactWrapper.single (/home/travis/build/artsy/emission/node_modules/enzyme/build/ReactWrapper.js:1720:25)
    at ReactWrapper.html (/home/travis/build/artsy/emission/node_modules/enzyme/build/ReactWrapper.js:897:21)
    at html (/home/travis/build/artsy/emission/src/lib/Scenes/Show/Components/__tests__/ShowEventSection-tests.tsx:36:17)
    at tryCatch (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:45:40)
    at Generator.invoke [as _invoke] (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:271:22)
    at Generator.prototype.(anonymous function) [as next] (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:97:21)
    at tryCatch (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:45:40)
    at invoke (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:135:20)
    at /home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:145:13
    at /home/travis/build/artsy/emission/node_modules/react-tracking/node_modules/core-js/modules/es.promise.js:105:22
    at flush (/home/travis/build/artsy/emission/node_modules/react-tracking/node_modules/core-js/internals/microtask.js:26:9)
    at process._tickCallback (internal/process/next_tick.js:61:11)

  Generated by :no_entry_sign: dangerJS

Going to self-merge, as @zephraph won’t be in until later.


Use random background image for the frontpage

Set random image from Elizabeth Fentress collection as the background image on the frontpage.
Also include a footer with the information about the source (wikimedia licence).

Good idea! Where can I find those images / the Elizabeth Fentress collection?

https://app.box.com/s/96v4dt98nddo6vyixjyhe49d9o3z6rrr

Merci!

Hm, what about changing the background image on the front page after ~5 seconds by fading one image out and another image in?

I think it wold look nice :+1:
But it could be a bit heavy network traffic for eg mobiles?


Artifacts along seams when relighitng

Hello, thanks for this implementation !
I have ran the entire code on my own setup, but encountered a strange phenomenon of artifacts between pixels when relighting using patterns that are not "all 1's". This reproduced for 2 different scenes but does not happen with the provided data.
Have you seen such artifacts or have a way to counter this? any help would be appreciated.
Attached some photos to show what I mean (first image: synthetic image created from shining all 1's (works), 2nd,3rd: new synthetic lights that were used, 4th 5th: the synthetic image created by this implementation projecting these two lights). Notice the artifacts created where the light isn't shining.

Hello, @yoterel
Great implementation in your setup.
I'm sorry, but I don't know the exact reason for that weird artifact. I haven't encountered such a problem.
I guess you should increase the number of projection patterns (1.5 to 2.0 times more than the minimum requirement). It can be robust against noise, and your artifact may be suppressed.
Additionally, make sure when you capture the images.

Set the camera setting manually (i.e., exposure time, gain (iso), aperture, white balance). Do not rely on auto. It may change the setting while capturing sequential images.
Disable the gamma correction. While estimating the light transport matrix, I assume the camera response function is linear.
If you use a DMD or laser scanning-based projector, you must consider the camera's exposure time. Check the raw image, and it does not have a weird pattern.


Comparison with headless-gl

Hello! Thank you for this project!
We are using https://github.com/stackgl/headless-gl to render images on node js with pixijs.
It does not support webgl2, so we are trying to find a replacement.
Does your project allow to use webgl2?
Does it provide similar performance to https://github.com/stackgl/headless-gl ?
In order to utilize nvidia gpu we build headless-gl passing
'libraries': [
              '-lEGL',
              '-lGLESv2'
 ],

to linker and it utilizes egl provided by nvidia drivers.
https://github.com/stackgl/headless-gl/compare/master...Lumen5:headless-gl:master
Is it possible to do the same with your library?
Thank you!

Hello. The WebGL bindings provided by this module only mimic WebGL and WebGL2 interfaces. Just enough to run THREE.js demos. E.g., the WebGLContext is fake, and there is no actual canvas to create it on. The bindings may also export some extra features or miss certain parts of WebGL API that were not essential to run THREE.js demos.

Does it provide similar performance to https://github.com/stackgl/headless-gl ?
Sorry, I have no idea regarding the performance of headless-gl. In terms of performance, webgl-raub calls the GL methods as directly as possible, see example. It's just a way to make those C++ calls from JS. This specific module does not handle nor constrain the GL context (and window). So, it may be used in headless mode if necessary.

Does your project allow to use webgl2?
To some extent. It may depend on how third-party code determines the WebGL version and how it uses it. For instance, THREE.js thinks this is WebGL2. You might try using it with PIXI and find out if something specific is missing. Also, this project certainly allows something like gl.missingFeature = fix; or even forking it completely.

Is it possible to do the same with your library?
It should be possible to rebuild the bindings with any library you want, as long as the linker is satisfied. The currently used libraries are explicitly listed in GYP here. If you fork and replace them, and the dependencies are satisfied, then why not.

Improving compatibility with PIXI may also be useful for this project. Have you had any luck since time of the original post?

After further reviewing the sources of headless-gl, I'm pretty confident that webgl-raub has a more simple and performant approach. BUT! Note that you've aimed to use some specific kind of EGL lib, and that might make sense in case of headless-gl - as it uses EGL to create its own context. Which as I have also stated above webgl-raub does not do, and neither it depends on EGL for that matter.
Instead, webgl-raub "thinks" that the context is already there, it is your problem how you create it (e.g. using glfw-raub). This is why webgl-raub simply relays your calls to C++ land - it simply assumes that the right context is always in place.

In order to utilize nvidia gpu we build headless-gl passing

I'm not sure I understand the limitations of headless-gl in relation to NVidia GPUs, but there is no such concern for webgl-raub. I can showcase my point with this Steam game. It uses an old version of this very module to render the stuff - the whole point of this game is direct manipulation of many GPU resources. And it even primarily targeted NVidia GPUs before OpenCL support was added.
So, I guess you might use this project as-is for your purpose - no need to recompile. The main issue is compatibility with PIXI and its specific WebGL2 requirements.

Hey @stepancar, I've just found this snippet:
{
  "name": "pixi-test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "3d-core-raub": "^3.6.0",
    "pixi.js": "^6.0.4"
  }
}

const init = require('3d-core-raub');
global.self = global;

const { loop, canvas, Image, webgl, doc } = init();

global.self.WebGLRenderingContext = webgl.WebGLRenderingContext;
global.self.addEventListener = doc.addEventListener.bind(doc);
global.self.removeEventListener = doc.removeEventListener.bind(doc);
webgl.getContextAttributes = () => ({ stencil: true });
webgl.isContextLost = () => false;
webgl.getInternalformatParameter = () => 1;

Image.prototype.fillRect = () => {};

const createOld = doc.createElement.bind(doc);
doc.createElement = (name) => {
    if (name === 'div' || name === 'a') {
        return { style: {} };
    }
    return createOld(name);
};

Object.defineProperty(Image.prototype, 'onerror', {
    get() { return this.listeners('error'); },
    set(cb) { cb ? this.on('error', cb) : this.removeAllListeners('error'); },
});
Object.defineProperty(Image.prototype, 'onload', {
    get() { return this.listeners('load'); },
    set(cb) { cb ? this.on('load', cb) : this.removeAllListeners('load'); },
});

const enforceF32 = v => v instanceof Array ? new Float32Array(v) : v;
const _bufferSubData = webgl.bufferSubData;
webgl.bufferSubData = (target, offset, v) => {
	if (v instanceof ArrayBuffer) {
		v = new Float32Array(v);
	}
	return _bufferSubData(target, offset, enforceF32(v));
};

// based on https://pixijs.io/examples/#/demos-basic/container.js

const PIXI = require('pixi.js');
const app = new PIXI.Application({
    width: 800,
    height: 600,
    backgroundColor: 0x1099bb,
    resolution: window.devicePixelRatio || 1,
    view: canvas,
});

const container = new PIXI.Container();

app.stage.addChild(container);

// Create a new texture
const texture = PIXI.Texture.from('https://pixijs.io/examples/examples/assets/bunny.png');

// Create a 5x5 grid of bunnies
for (let i = 0; i < 25; i++) {
    const bunny = new PIXI.Sprite(texture);
    bunny.anchor.set(0.5);
    bunny.x = (i % 5) * 40;
    bunny.y = Math.floor(i / 5) * 40;
    container.addChild(bunny);
}

// Move container to the center
container.x = app.screen.width / 2;
container.y = app.screen.height / 2;

// Center bunny sprite in local container coordinates
container.pivot.x = container.width / 2;
container.pivot.y = container.height / 2;

// Listen for animate update
app.ticker.add((delta) => {
    // rotate the container!
    // use delta to create frame-independent transform
    container.rotation -= 0.01 * delta;
});

It worked for the versions specified and for this PIXI example. That might be a good starting point.

@raub , thank you! I tried, but got this error
 ^

Error: Cannot find module './bin-darwin-arm64/segfault'
Require stack:
- /Users/stepancar/Desktop/projects/3d-core-raub/examples/pixi/node_modules/segfault-raub/index.js
- /Users/stepancar/Desktop/projects/3d-core-raub/examples/pixi/node_modules/webgl-raub/core.js
- /Users/stepancar/Desktop/projects/3d-core-raub/examples/pixi/node_modules/webgl-raub/js/webgl.js
- /Users/stepancar/Desktop/projects/3d-core-raub/examples/pixi/node_modules/webgl-raub/index.js
- /Users/stepancar/Desktop/projects/3d-core-raub/examples/pixi/node_modules/3d-core-raub/js/index.js
- /Users/stepancar/Desktop/projects/3d-core-raub/examples/pixi/node_modules/3d-core-raub/index.js
- /Users/stepancar/Desktop/projects/3d-core-raub/examples/pixi/index.js

I'm running it on macos, m1 cpu

But I think it's related to this issue https://github.com/node-3d/webgl-raub/issues/23

Yes, there are no precompiled M1 binaries. I build the binaries with GitHub Actions and there is no M1 runner. Maybe it is possible to cross-compile an M1 binary from MacOS x64, but I have no idea how to.
By the way... why don't you just use headless chromium (e.g. puppeteer) to render what you need and make screenshots? It's quite capable, and I believe there shouldn't be a problem with NVidia GPU beside it using ANGLE. So, if you don't use GL-CUDA interop, the existing browser environments may be a better choice.

@raub , we used headless chrome for rendering before, but switched to nodejs with headless gl, because it's context starts much faster

@raub thank you for your explanation, I will try to integrate your library


Get-FileSensitivityLabelInfo wrong ProtectionEnabled status

AIP Supported Filetypes (see: https://docs.microsoft.com/de-de/azure/information-protection/rms-client/clientv2-admin-guide-file-types) has wrong ProtectionEnabled Status.
See Example with vsdx and pdf
Example:
PS C:\Users\xx> Get-FileSensitivityLabelInfo -Fileurl "https://xxx/teams/Kunden-Info-Team/Freigegebene Dokumente/Kunden/2test.vsdx"
LabelId DisplayName ProtectionEnabled ParentLabelId

                            False

PS C:\Users\xx> Get-FileSensitivityLabelInfo -Fileurl "https://xxx/teams/Kunden-Info-Team/Freigegebene Dokumente/Kunden/1test.pdf"
LabelId DisplayName ProtectionEnabled ParentLabelId

                            False

Hello @SchmidSP
How are you? Hope you are doing well.
I read your comment and I couldn't fully understand, would you mind specifying the article under OfficeDocs-SharePoint-PowerShell / https://docs.microsoft.com/en-us/powershell/module/sharepoint-online/ that you think needs a correction?
Thank you!

Hi,
in https://docs.microsoft.com/de-de/azure/information-protection/rms-client/clientv2-admin-guide-file-types)
supportet Filetypes are reportet (for example pdf).
But Powershell commands don't support this filetypes.
So you can change the docs article or give the powershell team a hint that they fix the powershell commands.

Hello @SchmidSP
Thanks for clarifying.
I assume there is a label applied for the .pdf file in your scenario.
I am not sure if the Get-FileSensitivityLabelInfo supports displaying the label for portable document format as the article for it mentions office online files, will try to check and return.
Thanks

@get-itips Thank you very much for the contribution and sharing this explanation. @SchmidSP Hope this comment is helpful for you. If you see a documentation update is required, please feel free to open an issue for the same. We proceed here to close it. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Empty body is returned for a connection with transfer-encoding: chunked and no content-length

While making a request to the server at metaexchange.info, I'm getting a zero-length body returned:
var request = require('request');

var url = 'https://metaexchange.info/api/1/submitAddress';
var data = 'arg1=1';
request.post({url: url, data: data}, function(err, res, body) {
    console.log(res.headers);
    console.log(res.body);
    console.log('length: ' + res.body.length);
});

Output:
{ server: 'Mono-HTTPAPI/1.0',
  date: 'Tue, 18 Aug 2015 16:18:21 GMT',
  'content-length': '0',
  connection: 'close' }

length: 0

A similar request implemented with needle:
var needle = require('needle');

var url = 'https://metaexchange.info/api/1/submitAddress';
var data = 'arg1=1';
needle.post(url, data, function(err, res) {
    console.log(res.headers);
    console.log(res.body);
});

Output:
{ 'access-control-allow-origin': '*',
  'content-type': 'application/json',
  server: 'Mono-HTTPAPI/1.0',
  date: 'Tue, 18 Aug 2015 16:19:12 GMT',
  connection: 'close',
  'transfer-encoding': 'chunked' }
{ message: 'Missing parameter', error: 'MissingParameter' }

The line { message: 'Missing parameter', error: 'MissingParameter' } is the payload I'm expecting to see.
Is there some option I'm missing or am I otherwise not using the API correctly?

It looks like the API you calling expects request post data as multipart/form-data.
You should try it

it seems metaexchange.info server sensitive to content-length header case. Request lib send it as content-length: 6, Needle: Content-Length: 6.
you can overwrite Content-Length header:
var url = 'https://metaexchange.info/api/1/submitAddress';
var data = 'arg1=1';
request.post({
  url: url,
  body: data,
  headers: {
    "Content-Length": 6
  }
}, function(err, res, body) {
  console.log(res.headers);
  console.log(body);
  console.log('length: ' + body.length);
});

It's not a Request issue, because header names are case-insensitive(according to RFC).

Aw, nice troubleshooting, that's indeed the problem! I'll file a bug with the server component. Thank you!

Ahhhh, good find! I'd been wondering where those Missing parameter error logs where coming from! I'll get that fixed in the next build :)

Yep, a very common issue we got here - the relevant bits of the spec.

This has now been fixed :)


Add Description on Open Source projects 2/2

Is your feature request related to a problem? Please describe.
Open Source projects have no description
Describe the solution you'd like
Please add a description to the second half of the Open source Projects
from Hyperledger to the ends

Not greedy ......

assign it to me


Dark theme (again)

Ok so as mentioned in #521 I'm not able to merge the fork I made earlier last year #501 with the new stb method. no problem I redo everything starting from a fresh fork in one of my organization.
description
In this PR I tried to create a dark theme. This dark theme can be triggered by the user preferences and/or using the little btn in the navbar. The user defined value has the priority over the system.

design discussion
That's the first time I'm working on CSS so I followed all the recomendation from https://css-tricks.com/a-complete-guide-to-dark-mode-on-the-web/#using-php-cookies.
method
With the index.js I can change the data-theme and data-mode of the <body> tag.
This is changing the behaviour of the css. Every variable is prefixed with a body[data-theme="dark"] to change every time the button is pressed.
coloring
For the coloring I tried to remove all the colors that were defined in the .scss and use variables instead, bringing them all back from the theme.css file to a _color.sccs file. I did a first draft, I'm happy to hear what works and what doesn't according to you.
As a rule of thumb I understand that the colors need to be desaturated so I used this tool : https://mdigi.tools/desaturate-color/#b3571b
pygment
Pygment is an issue as to create 2 themes I need to fix the Pygment css. I used 2 redefined theme (tango for light and native for dark) and overwrite the pygment css file accordingly. The user loose the capacity to change the pygment theming.
shadows
everything that have shadow have been lightened from the dark background to reproduce the depth without the issue of white shadows
update since #501

pygment css is generated on the fly so no need to vendor it
dark theme is persisting across pages using local storage
replace the fancy css btn by a simple icon
cleanup in the variables naming

@12rambau, FYI I have closed #501 in favor of this one 😉 .

I have corrected the issue with the documentation, I'll wait for commentsbefore modifying the tests (I've changed the navbar structure, making the test failing)

Also just a note that I think the menu text color in dark mode is too grey - I suspect that it would not pass an accessibility audit for contrast:

Could you run lighthouse on the page to see if there's any color contrast that breaks out accessibility score on dark mode? you can use the chrome dev tools for this if you like.

@choldgraf, as I think all the reviews are resolved (I leave to you to decide if the 2 remaining one are solved or need extra work), I decided to merge the master branch and resolve the test issue (I added the theme-switcher to the navbar). Let me know if there is anything else I should take care of.

This is getting better and better, thanks!
Looking through the docs, a few pieces we're missing dark mode elements for:

Topics/sidebars/rubrics: https://pydata-sphinx-theme--540.org.readthedocs.build/en/540/demo/kitchen-sink/paragraph-markup.html#topics-sidebars-and-rubrics

The "expand navbar" button on narrow width (hard to see, here's an image):

Some buttons in the top right are a bit off (e.g. the github button)

Other than that I can't find anything that's obviously off - I'm sure we'll find other things to improve in other PRs but IMO we can do that in subsequent PRs.
It would be great to get another pair of 👀 on this because it touches a lot - @damianavila are you able to look?

damned I didn't think about the small screen version.... 👿

[ ] I'll change the burger button to meet the theme requirements.
[ ] When I ran the lighthous report the version btn was always off (dark or light background). I think I'll use the same color parameter as the rest of the navbar elements.
[ ] I need to check the Topics/sidebars/rubrics css as well effectively (I'm never using it so I didn't checked).

For the navbar logo, I won't be able to do anything as they are favicons... In my docs, I'm using the fontwaesome icons so they embed the same coloring as the marketplace one in the theme documentation. I'm not sure we want to solve this issue in this PR.

This is on RTD right? I'll take a look at this over the weekend as well.

Indeed - I've added a preview link to the to comment and pasting below as well
https://pydata-sphinx-theme--540.org.readthedocs.build/en/540/

So, this is a review from a fairly tired and sleepy me. Sorry for the typos, terseness and lack of consistent image sizes.

I find the different contrast of the white / blue / orange against the background extremely jarring.

The white borders should be changed to a dark gray instead. This also caught a bug wherein the border for pages with only edit this page is connected to the top; unlike the rest of the pages where there's a gap.

The secondary text in the sidebar and topbar are too low contrast.

Blockquote borders are too bright and text is too low contrast.

I'm not a fan of the positioning of the theme toggle on desktop. I also think it is way more prominent than it should be. I won't make any more noise about these aspects tho.
I also find the blue -> orange and purple -> green color changes odd... I think it'd be better to keep the similar hues in dark / light mode instead of completely aesthetic based on dark mode vs light mode.

https://user-images.githubusercontent.com/3275593/154576285-7f44783b-b70d-49e3-9e43-ada1a724c44b.mov
The clicked/focused link turns black, even in dark mode. There's also jitter in the top bar on load, which likely comes from the sidebar image being loaded (it should be moved into being inline in the HTML before the header, instead of being injected/loaded later).
https://user-images.githubusercontent.com/3275593/154577196-9b08ea08-45d6-4807-9a75-e04e07f76f3b.mov
The activation area for the toggle is not the same as what reacts to the mouse. This adds a micro-frustration of "why is the whole thing not a button".

These are really helpful @pradyunsg - Given that this theme draws heavily from Bootstrap, and to avoid going down a design rabbit hole, maybe we can use one of the Bootstrap dark theme implementations to define the default dark mode colors.
For ref:

An example with night mode: https://vinorodrigues.github.io/bootstrap-dark/test-1.html
More than you probably want to know about bootstrap night mode: https://vinorodrigues.github.io/bootstrap-dark/

small update on my latest commits:

burger button is now responsive to the theme colors (I used a fontawesome icon instead of the bootstrap image)
I proposed a coloring for sidebar and topic
I tried something with the version btn
I corrected the issue on the btn no being fully corresponding to the cursor change

The clicked/focused link turns black, even in dark mode

I don't manage to reproduce this behaviour, what browser are you using ?

I'm not a fan of the positioning of the theme toggle on desktop. I also think it is way more prominent than it should be.

In the first iteeration of the PR I was just using an icon (it's still visible on the first screeshot), I changed it into a btn on reviewers suggestion. That being said, it's a template so it can be positioned anywhere in the theme navbar, sidebars, etc...
It can also be removed entirely to prevent color change

I find the different contrast of the white / blue / orange against the background extremely jarring.

I try to focus on the functionality first and the coloring will obviously be modified then.
Regarding the coloring, I'm happy to change the overall colors. the difficult step was to gather them all in the _colors.scss file but now that it's done it's piece of cake. I like the "darkly theme" but if anyone want to use another one let's see the other options before I make a commit.

I don't manage to reproduce this behaviour, what browser are you using ?

Disable the cache.
Set your browser to use slower internet speeds (both FF and Chrome allow this)

You can do both of these things using the Firefox network tab, which is what I used to reproduce this consistently.

You can also reproduce it by clicking beside the dark mode toggle and pressing tab to change focus.

That being said, it's a template so it can be positioned anywhere in the theme navbar, sidebars, etc...

Maybe before the version switcher? IMHO, it feels displaced where it is right now...
Btw, this is great piece of work! My comments about the specific of the code will land soon but I wanted to show some early appreciation for the effort you have done here (including a tiny critic as the one I wrote above :wink:)

I'm +1 on moving it to navbar_end, also agree we should get this PR in sooner than later 👍

FWIW, I don't have strong opinions on this, but I think it's a good idea to double check what knobs are being provided via configuration options for the color mode selection before this lands. I'd strongly encourage thinking through what exactly you're all comfortable supporting -- and only providing that.
Part of why none of my themes provide a knob for this, is that I think there's a lot of potential complexity and customisations that users might want for these things (including additional modes -- see the paint brush on https://doc.rust-lang.org/book/ for example). I had the luxury of saying "no, you get exactly this with no knobs" which has been a really strongly beneficial model for keeping things maintainable, but that's not an approach that pydata-sphinx-theme has taken/can take.

It would be great to have a dark mode implementation, so thanks for working on this!
To avoid having to maintain all aspects of two themes, has anyone tried automating the theme inversion using CIELab? Doing it with a few lines of Python code (just as a POC for what could be done in JavaScript presumably):
>>> import matplotlib.pyplot as plt
>>> from colorspacious import cspace_convert
>>> data = cspace_convert(plt.imread('ss.png')[..., :3], 'sRGB1', 'CIELab')
>>> data[..., 0] = 100 - data[..., 0]
>>> data = np.clip(cspace_convert(data, 'CIELab', 'sRGB1'), 0, 1)
>>> plt.imsave('ss_inv.png', data)

We get:

original
inverted

(Obviously this is an approximation since all images are inverted and such, but it hopefully gives some sense of how it could work.)
Maybe this sort of scheme plus a few minor CSS overrides would reduce maintenance burden so that as many things as possible are automatically inverted... but if there end up being too many overrides, then it'll just make things worse! Of course we'd also need CIELab in JavaScript to do this for us, and I'm not volunteering to do it :) But just wanted to throw this idea out there in case it might make things easier here, or perhaps in a follow-up PR!

I also find the blue -> orange and purple -> green color changes odd... I think it'd be better to keep the similar hues in dark / light mode instead of completely changing the aesthetic based on dark mode vs light mode.

@pradyunsg I finally remember why I moved to orange. purple is the main color of the pandas logo, the only other one from the logo that was working on dark background was orange. In the end, that is not making lot of sense. I'll see how to maintain similar hue with acceptable contrast to not lose the aesthetic instead

I also find the blue -> orange and purple -> green color changes odd... I think it'd be better to keep the similar hues in dark / light mode instead of completely changing the aesthetic based on dark mode vs light mode.

I'll see how to maintain similar hue with acceptable contrast to not lose the aesthetic instead

FWIW, CIELab-based lightness inversion is one reasonable way to keep the colors similar while changing from light to dark. HSL inversion is another way but it's not as advanced / perceptually uniform

@larsoner I see the interest in CIELab solution but I think it can only be a starting point of a new theme.
Changing the color scheme using only JS is I think out of scope with slow browsers. It will always be way faster to simply change a parameter in the html tag.
One could argue that we could generate the second CSS file on the fly and then simply maintain the light one. Documentation developers will simply write rules in their custom CSS file to overwrite title colors or anything they don’t like. But I think that’s underestimating the web designers' work on these themes. From what I remember it has taken a year for websites like github or SO to find a satisfying color scheme. As a Python enthusiast, I wasn’t aware of many of these tricks and I was quite impressed when I started working on this PR by everything they did.
Let’s see in detail what need to be manually changed after you use CielLab to change the colors on this page:

Background needs to be dimed as it’s too dark
Main text color, dimed as well to improve readability on the now dimmed background
Reduce brighness of images to decrease contrast with background
Change the font
Remove shadows (if they stay dark we don’t see them any more, if they become white that’s ugly)
To preserve depth now that shadows has been removed introduce different layers of grey (there are 4 in this dark theme e.g. for navbar and admonition)
The logos in top right corner are brands, color need to be kept
The orange was a bad idea (same for the green) but I think the proposed pink is not really working either
The background of the code editor is not the negative (in cielab) from the one in light theme, it’s based on the pygment color change.
.. all the other tricks that make web designing fun and creative

In the end, I think what you offer is an amazing first step. But there are too many things to change afterward to keep it as an automatic process. I’m also positive that many (if not all) of the colors proposed in this PR will be changed eventually ;-)

Makes sense -- yes if we have the bandwidth and expertise to maintain two complete CSS themes manually then I agree it's much better!

I think that @pradyunsg makes a really good point that we don't want to back ourselves into an API / configuration / etc that we regret later on, and/or that becomes unmaintainable. That said, I also think we should get this PR merged soon so that we can see how it goes when people use it, and so that we can iterate on the codebase a bit.
A proposal
What about the following:

Finish up any final remaining things in this PR, to get it to a point where we are happy to merge as a "beta feature"
In the documentation for this PR, make it very clear that the theme variables related to colors etc are on a "no promises" basis - downstream users should not get too clever with customizations because the APIs may (will?) change.
Merge the PR and iterate on this feature from there.

Longer term, I think we should consider just making a policy of "no promises in general about stability" for customization at this level - the customization surface area of this theme is already quite large, and IMO we don't have the resources to promising backwards compatibility for this kind of thing. It should work nicely out of the box, but once you start tweaking things there are no promises. We can go through deprecation cycles for things like the Sphinx config, but for CSS variables etc this will become a huge headache IMO.

latest changes:

I adapted the 2 badly chosen colors (orange & green)
documented the "beta" status of colors variables
create the test to check the theme switcher
solved conflicts

bonus:

the pytest results are now displayed with the colors in github actions

need help:

SEO test from lighthouse is not passing

Just a quick note that in my opinion the failing Audit tests are fine to ignore. The only failing test is the SEO one (which I don't believe we try to optimize for anyway), and only on the genindex.html page (which I don't think we should be testing anyway)

so should I change the test to avoid test of the genindex page or just ignore the error and let you guys review the PR in its current state ?

just ignore the error and let you guys review the PR in its current state ?

This, as I understand from Chris' last comment. :)

I think I fixed these lighthouse issues in https://github.com/pydata/pydata-sphinx-theme/pull/612 so if you update to master the errors should be gone.

I think I fixed these lighthouse issues in #612 so if you update to master the errors should be gone.

close you set up SEO expectations to .8 but I only reached .77 so the test is still not validating

Sorry - can you just set the SEO assertion minscore to 0.7 ?

Sorry - can you just set the SEO assertion minscore to 0.7 ?

done, and now all the tests are passing !

@12rambau I did a quick Lighthouse accessibility audit and found a few things that needed tweaking. Make a PR for your fork here: https://github.com/sepal-contrib/pydata-sphinx-theme/pull/2
In my opinion, once we get the last remaining accessibility things cleared up, we should merge in this PR, and iterate on the colors as-needed in the future.
One thing I'm feeling as I just went through the codebase (and echoing @pradyunsg's thoughts): we have way too many custom-defined color variables. In a subsequent PR, I think we should just define a handful of colors (e.g. "base", "primary", "secondary", etc, and just re-use those throughout). But I think that's for another PR, not this one :-)

I just want to say thanks for the amazing work on this folks!

@martinRenou if you have other thoughts on how we can improve the dark mode variables / structures / etc please do chime in on follow up PRs or issues! I know you have recently played around with dark modes yourself ;-)

wohoo! many thanks @12rambau


Failed to import - @refinitiv-ui/elements

Hi, I've been exploring esm.sh. I tried the following imports and I was unable to get it resolving exports path in my module.
Failing module

GitHub: https://github.com/Refinitiv/refinitiv-ui
npm: https://www.npmjs.com/package/@refinitiv-ui/elements

import 'https://esm.sh/@refinitiv-ui/elements/button';
import 'https://esm.sh/@refinitiv-ui/elements/button/themes/halo/dark';

import 'https://esm.sh/@refinitiv-ui/halo-theme/dark/imports/native-elements';

Error message
After onload I got this:
/* esm.sh - error */
throw new Error("[esm.sh] " + "resolveESModule: open /esmd/npm/@refinitiv-ui/elements@6.8.5/node_modules/@refinitiv-ui/elements/button: no such file or directory");
export default null;

Additional info

esm.sh version: -
Browser version: -

When in doubt you can use https://generator.jspm.io to check the imports. Additionally, you can use it to generate Import Maps to have bare imports and more stable dependencies.


Plugin 'Failed to load' on Android

Hi, I'm using the latest version of Obsidian on both Mac and Android (v1.6.7) and whilst the plugin loads successfully on desktop, it repeatedly fails to load on mobile. Other plugins load correctly on mobile. I notice in the changelog for this plugin that mobile support was added in the past? Should it work, or have I missed that it's desktop only?
So far I've unsuccessfully tried:

Enabling the plugin on the desktop version and pushing the config to mobile
Creating a new vault
Using a different mobile device with a fresh install of obsidian and no changes other than installing the plugin
Downgrade the plugin by a few versions

Happy to try and help troubleshoot this if it should be working

Connecting the phone to Google Chrome and inspecting Obsidian, when trying to enable the plugin the Obsidian Developer Console outputs:
Plugin failure: obsidian-custom-attachment-location TypeError: Cannot read properties of undefined (reading 'pathToFileURL')     at eval (plugin:obsidian-custom-attachment-location:65:90)     at node_modules/obsidian-dev-utils/dist/lib/obsidian/Plugin/PluginSettings.cjs (plugin:obsidian-custom-attachment-location:65:117)     at __require (plugin:obsidian-custom-attachment-location:14:50)     at anonymous (plugin:obsidian-custom-attachment-location:6594:37)     at e.<anonymous> (app.js:1:2274677)     at app.js:1:237136     at Object.next (app.js:1:237241)     at a (app.js:1:235959)

Fixed in https://github.com/RainCat1998/obsidian-custom-attachment-location/releases/tag/4.10.0

Thank you!


Add extras dictionary to tileset

This PR adds an extras dictionary to the tileset as well as to one of the children. This is to test adding support for extras in CesiumJS (AnalyticalGraphicsInc/cesium#6974).
I branched off of 2.0-samples-generator to get the updates in that PR (https://github.com/AnalyticalGraphicsInc/3d-tiles-tools/pull/139).

Thanks @OmarShehata