Refactor module assembly loading logic to allow the whole module to be loaded in a custom ALC

PR Summary
Related to #2083
Refactor module assembly loading logic to allow the whole module to be loaded in a custom ALC.
PR Context
The document Loading through .NET Core Assembly Load Contexts introduces a technique to allow a module author to fully control the potentially conflicting dependencies by leveraging a custom AssemblyLoadContext. This technique was used by the Bicep module, and have a great example documented in this blog post: Resolving PowerShell Module Conflicts.
This technique requires the use of dependency assemblies to be wrapped in a "bridge" assembly. The true module assemblies will need to reference the "bridge" assembly, depending on which to pull in the real dependencies. It's usually not easy to satisfy that requirement, especially for an existing module, that often means significant refactoring.
This PR refactors how assembly loading works during module loading. It leverages the existing-but-not-really-used AssemblyCache to make sure a nested module assembly or a root module assembly will not be loaded into the default ALC when they are designed to be loaded by a custom ALC of the module.
With the changes in this PR, we don't need the "bridge" assembly anymore, the real nested/root module assemblies can be directly loaded in a custom ALC, which handles all their dependencies in an isolated way.
Example
The IsolatedModule located at <repo-root>\test\tools\Modules\IsolatedModule serves as an example of such a module, and it's also used in our test.
The module assemblies are published by <repo-root>\test\tools\TestAlc. Simply run dotnet publish in this folder to populate the assemblies to the folder <repo-root>\test\tools\Modules\IsolatedModule with the pre-defined folder structure.
The layout of files in IsolatedModule is:
│   IsolatedModule.psd1
│   Test.Isolated.Init.dll
│
└───Dependencies
        Newtonsoft.Json.dll
        Test.Isolated.Nested.dll
        Test.Isolated.Root.dll

The content of IsolatedModule.psd1 is:
@{
    ModuleVersion = '0.0.1'
    GUID = '20d4742b-b17d-4ce8-b8da-29b25433cd18'
    Author = 'Microsoft Corporation'

    RootModule = 'Test.Isolated.Root.dll'
    NestedModules = @('Test.Isolated.Init.dll', 'Test.Isolated.Nested.dll')
    FunctionsToExport = @()
    CmdletsToExport = @('Test-NestedCommand', 'Test-RootCommand')
    VariablesToExport = '*'
    AliasesToExport = @()
}

The nested module Test.Isolated.Init.dll is the only one that PowerShell can discover under the module base folder. It contains a custom ALC implementation and will set up the Resolving handler to handle loading the real module assemblies Test.Isolated.Nested.dll and Test.Isolated.Root.dll.
The processing order for module loading is RequiredAssemblies -> NestedModules -> RootModule.
In this example, Test.Isolated.Init.dll is the first nested module and it gets processed first. After that, Resovling handler has been setup to deal with Test.Isolated.Nested.dll and Test.Isolated.Root.dll. PowerShell won't be able to locate those 2 assemblies, so it's up to the Resovling handler to load them in the custom ALC.
Test.Isolated.Nested.dll depends on the <IP_ADDRESS> version of Newtonsoft.Json.dll, which will be loaded by the custom ALC when requested.
All module assemblies will be put in the AssemblyCache, and PowerShell type resolution always searches AssemblyCache first (existing behavior). So, public types exposed by Test.Isolated.Nested.dll and Test.Isolated.Root.dll will be resolvable, but the specific Newtonsoft.Json.dll under the Dependencies folder will always be invisible to PowerShell.

NOTE: As is called in the processing order, RequiredAssemblies are first processed, by which time the Resolving handler hasn't been setup yet. So, it's impossible to load required assemblies into the module's custom ALC. But RequiredAssemblies is more commonly used by script module instead of binary module.

PR Checklist

[x] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[x] Summarized changes
[x] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[ ] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: or [ WIP ] to the beginning of the title (the WIP bot will keep its status check at Pending while the prefix is present) and remove the prefix when the PR is ready.

Breaking changes

[x] None
OR
[ ] Experimental feature(s) needed

[ ] Experimental feature name(s):

User-facing changes

[x] Not Applicable
OR
[ ] Documentation needed

[ ] Issue filed:

Testing - New and feature

[ ] N/A or can only be tested interactively
OR
[x] Make sure you've added a new test if existing tests do not effectively test the code changed

Tooling

[x] I have considered the user experience from a tooling perspective and don't believe tooling will be impacted.

@daxian-dbw Is it all only about binary modules?
If I remember right we discussed Import-Module -Isolate to put whole module in custom dynamic-created ALC with generic handler - do you consider this?

This is only for binary module, and only for binary modules that do not use types from the conflicting assembly as parameter type or return type.
We are not going with the "Import-Module -Isolated" approach because of the type-identity issue. An end user won't really understand how the module is supposed to work, and allowing the end user to choose whether or not to import a module to a custom ALC just won't work -- the end user will run into the type-identity issue without a clue of what's going on, and will just believe it's a broken feature.
We have discussed this in the RFC in length, and it's clear that it's the module author's responsibility to avoid conflicts, and our job is to make that easier.

Newtonsoft.Json.dll

Can we replace the dll with custom test dll? Newtonsoft is updated frequently (with security fixes too) and we will have to track and update it.

No need to update the version in the test. The test is deliberately using an old version <IP_ADDRESS> to indicate that it can depends on specific version of the assembly without being affected by what PowerShell is using.

@daxian-dbw I forget ask about processing native dll-s. I don't see the scenarios in description and tests. Do you consider this?

Great!


Add compiler pass that discovers ambiguous imports

Fixes #6431
Pull Request Description
Add a new compiler pass that analyses duplicated and ambiguous symbols from imports. A duplicated import is an import that imports a symbol that has already been imported by a previous import statement and that refers to the same object. An ambiguous import is an import statement that imports a symbol that has already been import by a previous import statement and refers to a different object.
For every ambiguous import, an error is provided - by replacing the IR with the IR.Error. For every duplicated import, a warning is attached to the IR.
Example of the compiler error message:
Extensions.enso[41:1-41:77]: Ambiguous imported symbol 'Codepoint_Ranges' in import statement. The original import is 'import Standard.Base.Data.Text.Text_Sub_Range.Codepoint_Ranges' in Extensions.enso[20:1-20:56]

Important Notes

Checklist
Please ensure that the following checklist has been satisfied before submitting the PR:

[ ] The documentation has been updated, if necessary.
[ ] Screenshots/screencasts have been attached, if there are any visual changes. For interactive or animated visual changes, a screencast is preferred.
[ ] All code follows the
Scala,
Java,
and
Rust
style guides. In case you are using a language not listed above, follow the Rust style guide.
All code has been tested:

[ ] Unit tests have been written where possible.
[ ] If GUI codebase was changed, the GUI was tested when built using ./run ide build.

There is Duplicated import of Array in BuiltinTypesTest, but otherwise we seem to be close.

Thanks for the changes looks much cleaner.


OSM consistency checker for mesh health and mesh configuration on the proxies.

Wondering if there is anyway in OSM controller to check for consistency of the mesh. By consistency i mean is there a way to check if envoys on each containers are properly configured with the cluster informations of all other available services in the k8 cluster ? More in lines with a health check of the mesh configuration
Scope (please mark with X where applicable)

New Functionality          [ ]
Install                    [ ]
SMI Traffic Access Policy  [ ]
SMI Traffic Specs Policy   [ ]
SMI Traffic Split Policy   [ ]
Permissive Traffic Policy  [ ]
Ingress                    [ ]
Egress                     [ ]
Envoy Control Plane        [ ]
CLI Tool                   [ ]
Metrics                    [ ]
Certificate Management     [ ]
Sidecar Injection          [ ]
Logging                    [ ]
Debugging                  [ ]
Tests                      [ ]
CI System                  [ ]
Project Release            [ ]

I believe osm-health addresses this. @snehachhabria can I close this? Potentially related: https://github.com/openservicemesh/osm/issues/85


Improve "Compatibility Problems" error message

original request: https://youtrack.jetbrains.com/issue/IJSDK-1453/Improve-Compatibility-Problems-error-message

I'd like to recommend a minor wording change in the "Compatibility Problems" error message for the plugin verifier. Upon failing when run via the gradle-intellij-plugin, I received the following is the output:
Execution failed for task ':runPluginVerifier'.
> COMPATIBILITY_PROBLEMS

* Try:
Run with --debug option to get more log output. Run with --scan to get full insights.

Because this (coincidentally) happened for me right after upgrading gradle-intellij-plugin, I misinterpreted the COMPATIBILITY_PROBLEMS message to be incompatibilities of the gradle-intellij-plugin with the gradle version. This led me down a false path for a few minutes. Simply changing this message to something along the lines of IDE_PLUGIN_COMPATIBILITY_PROBLEMS would be a clearer message, and would likely prevent confusion.

Yann: we should probably print (additionally) the human readable description which will always be more clear than "raw" enum constant name

Note: we cannot rename existing enum constant for compatibility reasons


xamber.tech is unavailable

I intended to check out a demo page, but the page doesn't load at all!
Fix it, you lazy b*tch!

@keshamin
The service has been stopped because of Covid-19.
The service was so cool and a lot of people were spending time with it without taking care of 2 kbytes rule.
So I decided to turn it off.
(I don't use it much and 5$ Droplet seems expensive for nothing)
#returnthedemoback

heh, I am going to test something and as a result - https://xamber.tech/ is available now =)


Cargo features: support both default TLS and Rust TLS for Reqwest through feature forwarding

With this change, arangors can support Rust TLS out of the box. Default configuration is effectively unchanged, using default TLS.
To support Rust TLS as TLS provider for reqwest, now all that has to be done is adding arangors as dependency with flags:
arangors = { ..., default-features = false, features = ["rocksdb", "reqwest_async", "reqwest_rustls-tls"]}

Native (Default) TLS can be forced manually in a similar manner with
arangors = { ..., default-features = false, features = ["rocksdb", "reqwest_async", "reqwest_default-tls"]}

Of course, the TLS provider can be switched independently of blocking/async mode.
The way to handle feature gate forwarding was inspired by elasticsearch.

Thanks for your PR!!
But I think that using feature gate to pass down feature is not necessary. Rust's feature is addtive, which means that we can just declare reqwest dependency in top level crate and enable whatever features we want without touching arangors.

Maybe like this branch: feat/tls-choice.

Indeed! Though the literal way it is on feat/tls-choice right now, it won't work "out-of-the-box" - i.e. the end users have to add top level request version="*" with either features = ["default-tls"] or features = ["rustls-tls"].
Though suffice to add reqwest/default-tls to default features (then once again requiring default-features = false for rustls).


Track upload/download progress

I think this would be an interesting feature for Requests.
I really miss it!

Moved to (Urllib3)[https://github.com/shazow/urllib3/issues/43].

Use the content-length header to find out the size of the content being downloaded, and then use iter_content to download it, updating your download progress indicator after each loop.

What @johtso said :)
We should add this to the docs. People ask for it so often :)

@kennethreitz And for upload?

Streaming uploads aren't supported at this time.


Question - Parallel deploy and rollback

Hello friends,
I need your help!
I have two cases to deploy, a production and other staging for testing.
My production environment has 3 servers and the staging has only one server.
How does the parallel deployment? It performs all commands on all machines? In the case of my deploy in production, would run composer and all tasks on all servers?
If so, it is not performative. Today we have a script that does to build the project locally, performs all tasks and then replicates only the code for all servers. You can do this with the rocketeers?
Another doubt that I was against the rollback.
The rollback just change the symlink the current folder?
Does not perform migrations? You can send failure notifications?
My problem here is that if there is a failure in a server I need to give a complete rollback, including code and database. If not I have cases where I have a code out of sync with the database, and that's too bad ...
Thanks!

Hi!
Trying to answer your questions:

Rocketeer currently does all three deployments at the same time indeed. There is no way to deploy locally to then transfer the files as you are currently doing, at least not automatically. Rocketeer does come with an rsync strategy so you could create hook on the before of that task to prepare your release and Rocketeer should then rsync it on all three servers.

There will be an official local deployment strategy in Rockteer 3.

The rollbacks indeed just swap the symlink, but you can hook on the after event of the Rollback task to perform additional operations


[FEATURE] support getting+setting automation notification email address

Is your feature request related to a problem? Please describe.
As of now, we do not include that info in our retrieve/upsert. This means we have to go and set that manually after each deployment.
Describe the solution you'd like
Be able to set error & confirmation notification email address.

Error or skipped run: you will receive an email if the automation’s execution fails or is skipped
Run Completion: you will receive an email once the automation’s run completes.

How-to
https://sfmarketing.cloud/2019/12/08/subscribe-to-automation-studio-notifications-via-soap-api/

seems like this is simply not possible. tried everything to retrieve the info. no luck.

https://charliefay.medium.com/search-all-automations-for-a-notification-email-address-1cb0aa18a919
Charlie might have found a new solution for this. Time to investigate!

note: the description under https://sfmarketing.cloud/2019/12/08/subscribe-to-automation-studio-notifications-via-soap-api/ does not seem to work for UPDATING automations and hence is useless.
will attempt it with gortonington's approach (https://gortonington.com/sfmc-automation-notifications-via-rest-api/)


Fix successive cloning issue

Closes https://github.com/robot-descriptions/robot_descriptions.py/issues/67

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

32 of 33 (96.97%)  changed or added relevant lines in 9 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.07%) to 98.563%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

robot_descriptions/loaders/mujoco.py
2
3
66.67%

Totals

Change from base Build<PHONE_NUMBER>:
-0.07%

Covered Lines:
960

Relevant Lines:
974

💛  - Coveralls


Cassandra containers pending state

I have followed the https://github.com/GoogleCloudPlatform/kubernetes/tree/master/examples/cassandra to bring up containers but it doesn't seem to be working and shows pending state.
$ kubectl get pods
NAME              READY     STATUS    RESTARTS   AGE
cassandra         0/1       Pending   0          11m
cassandra-ds7v0   0/1       Pending   0          5s
$ kubectl get services
NAME         LABELS                                    SELECTOR         IP(S)           PORT(S)
cassandra    name=cassandra                            name=cassandra   <IP_ADDRESS>   9042/TCP
kubernetes   component=apiserver,provider=kubernetes              <IP_ADDRESS>     443/TCP

$ ifconfig
docker0 Link encap:Ethernet HWaddr 56:84:7a:fe:97:99
inet addr:<IP_ADDRESS> Bcast:<IP_ADDRESS> Mask:<IP_ADDRESS>
and the ip the container is receiving ip <IP_ADDRESS> as in cluster/ubuntu/config-default.sh
export SERVICE_CLUSTER_IP_RANGE=<IP_ADDRESS>/24
export FLANNEL_NET=<IP_ADDRESS>/16

Please follow the troubleshooting guide for debugging pods. If that doesn't solve your problem, you could update this issue with more information. Thanks!

Seems like it required time. The starting container took some time but now it's running. I replicated the pods and it ran in few seconds.
I have a problem tho, how do you access the container with it's IP?
root@test:/home/ubuntu/kubernetes# kubectl get services
NAME         LABELS                                    SELECTOR         IP(S)           PORT(S)
cassandra    name=cassandra                            name=cassandra   <IP_ADDRESS>   9042/TCP
kubernetes   component=apiserver,provider=kubernetes              <IP_ADDRESS>     443/TCP
root@test:/home/ubuntu/kubernetes# kubectl get endpoints cassandra
NAME        ENDPOINTS
cassandra   <IP_ADDRESS>:9042,<IP_ADDRESS>:9042,<IP_ADDRESS>:9042 + 1 more...
Neither 192.168.3.x or 17.17.0.x is my external or internal IP of my machine. Is there a way I can access it?

Seems like it took a lot of time around an hour for it to get into running state. I replicated the pods and it ran in few seconds.

The only possible explanation I can come up with is that image pulling is slow. Have you tested pulling a similar size of image from gcr.io in your cluster?

Neither 192.168.3.x or 17.17.0.x is my external or internal IP of my machine. Is there a way I can access it?

Kubernetes uses the IP-per-pod model. Each of your pod will be assigned an IP address routable within your cluster. Please see the networking doc for more details.
In most cases, you don't need to access the pod IP directly. If you want to execute a command in a pod, you can use kubectl. e.g.,  kubectl exec -ti <pod_name> -- <cmd>
You can also access the service, which will be routed to one of the endpoints (pods).


Add Elements for performance indicators

E.g., Power Performance Index (PPI), Performance Ratio (PR), weather-adjusted performance ratio.

Add the following:
Energy Yield (aka Specific Yield):
Unit: kWh/kWp
Definition: This represents the Actual installed energy production (in kWh) per installed nameplate solar capacity (kWp).  It can also be defined as "Theoretical energy production" minus "Real World System Losses."
Performance Ratio (aka PR):
Unit: kWh(actual)/kWh(nominal)
Definition: This is a ration of the "actual" (either real world measured or simulated with losses) kWh production over the "nominal"  (all modules operating at full efficiency at STC for all daylight hrs) kWh production.
Performance Ratio - PTC (aka PR-PTC):
Unit: kWh(actual)/kWh(nominal)
Definition: This is a ration of the "actual" (either real world measured or simulated with losses) kWh production over the "nominal"  (all modules operating at full efficiency at PTC  for all daylight hrs) kWh production.
Temperature Corrected Performance Ratio (aka TPR):
Unit: kWh(actual)/kWh(nominal)
Definition: This is a ration of the "actual" (either real world measured or simulated with losses) kWh production over the "temperature corrected nominal" (all modules operating at a temperature corrected efficiency and using site temperature conditions at ideal irradiance for all daylight hrs) kWh production.
Capacity Factor (aka CF):
Unit: kWh(actual)/kWh(Theoretical_Max):
Definition: This is the ratio of the "actual" (either real world measured or simulated with losses) kWh production over the "Theoretical Max" production (all modules operating at full efficiency at STC for ALL POSSIBLE HRS (even night time))
Power Performance Index (aka PPI):
Unit: kW (actual) / kW (nominal)
Definition: This is the ratio of "actual" (either real world measured of simulated with losses) instantaneous kW array power over "nominal" (all modules operating at full efficiency at STC) instantaneous kW array power.
Those are all the different perf indicators that I found that seem to see wide usage (even though I hate CF). There are some other more scientifically accurate in some way (usually by futzing with the definition of "nominal").
Sources:
https://www.linkedin.com/pulse/how-quantify-pv-plant-performance-osvaldo-santos
https://sunspec.org/wp-content/uploads/2015/06/SunSpec-PV-System-Performance-Assessment-v2.pdf

Add:
Soiling ratio
Unit: (kW (kWhr) dirty / kW (kWhr) clean) ratio of DC power or energy, 1 - soiling ratio quantifies the power (energy) lost due to soiling.
Energy Performance Index, see definition here.
Power Performance Index (PPI) per IEC 61724-2
Energy Performance Index (EPI) per IEC 61724-3


feat: add MessageUrnAttribute to support customization of message urn resolution

Description
MassTransit provides an opinionated MessageUrn class which is used to identify the types for a message during serialization/deserialization. 80% of the time or more I am certain this is sufficient for most users of Mass Transit.
In our scenario we have many services publishing and subscribing to messages, some are dotnet implementations using MassTransit, others are consumers operating in different contexts.  We'd like to uniformly apply a naming convention that is not bound to a specific toolchain implementation.  By restricting the MessageUrn to be derived from a namespace, this feels like a leaking of an implementation detail of the message producer, while the consumer should only be held to the contract of the message.
Changes Implemented
This PR adds a MessageUrnAttribute that may be added to a class when publishing to provide a custom URN value.  Additionally the same attribute may be placed on a class in a consumer implementation to specify the custom URN for deserialization.
Tests
Additional unit tests have been added and some base smoke testing performed with a simple consumer/producer project.  When testing using RabbitMq the custom URN can be seen in the correct location:

Request for Feedback
As the URN is built using a StringBuilder the current implementation in this PR only overrides the part of the URN normally derived from the type.  Therefore the URN still starts with urn:message:.  It seems feasible to fully override the URN format to an arbitrary string, allowing full customization. However it would appear the URN format is of value for diagnostics.  Would it be sensible to provide the current URN implementation for diagnostics, but allow the full string override value to only be supplied during serialization/deserialization operations? If so I can easily make the change.

@phatboyg The latest push also supports the ability to fully override the generated urn, however this is not the default implementation.  I think this offers a good balance between default expected behaviour, simply overriding the namespace specific string of the URN, and offering full control to the developer.

Also, please rebase this into a single commit.

@phatboyg All rebased and ready for review.


AmpliconAnalysisTyping.py fails

Cross posting Michael's problem in the correct repository.
I installed HlaTools from github and I got it working on several datasets (AmpliconAnalysisTyping.py). I was trying to update the sequences in pbhla/data/Class_I, by replacing each file in A, B, C and H with the latest versions I got. The problem is, the AmpliconAnalysisTyping.py now fails.
When I run the analysis, the following files are generated: amplicon_analysis.all.fastq, amplicon_analysis.all.md5, amplicon_analysis.all.oriented.fastq and amplicon_analysis.all.oriented.selected.fastq. The amplicon_analysis.all.oriented.selected.fastq file is empty. I have attached the log file.
Do you have any suggestions on what might be causing the problem? Let me know if you need any other details.
Kind regards,
Michael.
2014-08-07 15:44:34 [INFO - data] Using existing Exon Reference fofn
2014-08-07 15:44:34 [INFO - data] Using existing Genomic Reference fasta
2014-08-07 15:44:34 [INFO - data] Using existing cDNA Reference fasta
2014-08-07 15:44:34 [INFO - input] Input appears to be a directory, looking for sequence files
2014-08-07 15:44:34 [INFO - input] Chimera/Noise sequence file detected, combining with primary output
2014-08-07 15:44:34 [INFO - utils] Aligning ../A01_1-1408051407254857_BC1/amplicon_analysis.all.fastq sequences to 453 references
2014-08-07 15:44:36 [INFO - orientation] Reorienting all sequences in ../A01_1-1408051407254857_BC1/amplicon_analysis.all.fastq to the direction of their reference
2014-08-07 15:44:36 [INFO - orientation] Identified 0 sequences needing Reverse Complementation
2014-08-07 15:44:36 [INFO - orientation] Writing out sequences to ../A01_1-1408051407254857_BC1/amplicon_analysis.all.oriented.fastq
2014-08-07 15:44:36 [INFO - extract] Sorting sequences for selection according to "accuracy"
2014-08-07 15:44:36 [INFO - extract] Selecting top sequences from ../A01_1-1408051407254857_BC1/amplicon_analysis.all.oriented.fastq according to the "both" policy
2014-08-07 15:44:36 [INFO - extract] Selected 0 sequences from 3 total for further analysis
2014-08-07 15:44:36 [INFO - extract] Writing the selected sequences out to ../A01_1-1408051407254857_BC1/amplicon_analysis.all.oriented.selected.fastq
2014-08-07 15:44:36 [ERROR - utils] Expected output file not found! "../A01_1-1408051407254857_BC1/amplicon_analysis.all.oriented.selected.fastq"

How to start the analysis? I just run with
#AmpliconAnalysisTyping.py in.fasta
error occured with:
2015-12-25 08:50:49 [INFO - data] Using existing Exon Reference fofn
2015-12-25 08:50:49 [INFO - data] Using existing Genomic Reference fasta
2015-12-25 08:50:49 [INFO - data] Using existing cDNA Reference fasta
2015-12-25 08:50:49 [INFO - input] Input appears to be a valid Fasta file
2015-12-25 08:50:49 [INFO - utils] Aligning in.fasta sequences to 654 references
2015-12-25 08:50:51 [INFO - orientation] Reorienting all sequences in in.fasta to the direction of their reference
2015-12-25 08:50:51 [INFO - orientation] Identified 0 sequences needing Reverse Complementation
2015-12-25 08:50:51 [INFO - orientation] Writing out sequences to in.oriented.fasta
Traceback (most recent call last):
  File "/work/lwc/workFlow/hla_env/bin/AmpliconAnalysisTyping.py", line 4, in <module>
    __import__('pkg_resources').run_script('HlaTools==0.4.1', 'AmpliconAnalysisTyping.py')
  File "/work/lwc/workFlow/hla_env/lib/python2.7/site-packages/pkg_resources/__init__.py", line 696, in run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/work/lwc/workFlow/hla_env/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1614, in run_script
    exec(code, namespace, namespace)
  File "/work/lwc/workFlow/hla_env/lib/python2.7/site-packages/HlaTools-0.4.1-py2.7.egg/EGG-INFO/scripts/AmpliconAnalysisTyping.py", line 31, in <module>
    debug=args.debug )
  File "/work/lwc/workFlow/hla_env/lib/python2.7/site-packages/HlaTools-0.4.1-py2.7.egg/pbhla/typing/sequences.py", line 50, in type_sequences
    loci=loci)
  File "/work/lwc/workFlow/hla_env/lib/python2.7/site-packages/HlaTools-0.4.1-py2.7.egg/pbhla/alleles/extract.py", line 59, in extract_alleles
    assert get_file_type(input_file) == 'fastq'
AssertionError


does cornerstone offer support for aligning 2 layers using their image position (patient) and image orientation (patient)

Hello,
I have been working on extending OHIF's functionality to use cornerstone's Layers API in order to perform fusion using two display sets found within the same study.
So far things have been going very well, the Layers API is a pleasure to work with, and I have successfully gotten two display sets layered on top of one another. As of now, the viewport shows new images for both layers every time their is a scroll event in an enabled element.
The scaling is working perfectly, the images are always scaled correctly to fit one another when I add the second display set as a new layer. However, the thing I have not been able to figure out is how to orient the foreground layer along the backgrounds Z-axis.
Currently, when I add a new display set as a layer, I simply use the background display sets currentImageindex to pick which image from the foreground display set to display. However, this results in both images starting at the beginning of the backgrounds display set, when the foreground may not line up with the background until halfway through the backgrounds display set.
Because this is a little hard to verbalize, I made a visualization to help make clear what is happening:

I am beginning to work on a way to create this alignment, but I wanted to know if cornerstone already offers any tools which may be useful for undertaking this task before I go re-inventing the wheel. I hope this question is not too vague, I would appreciate any advice you could offer on how to tackle this task using cornerstone's current tool set. Thanks in advance for any help you can offer.

After further research I found that the VTK extension available in OHIF offers a fusion feature which can be brought into OHIF. So I have scrapped my work with the layers API and instead am now building features using this example:  https://react-vtkjs-viewport.netlify.app/

I have been trying to work on this very same thing. Can you teach me how you were able to perform the fusion of the displaySets using the Layer API

I have been trying to work on this very same thing. Can you teach me how you were able to perform the fusion of the displaySets using the Layer API

I can't teach you but after further research I can tell you the Cornerstone Layers API is not the way to perform fusion in OHIF.
Instead, use the VTK plugin and implement the examples found here https://react-vtkjs-viewport.netlify.app/fusion


LWRP needs to support why-run mode

LWRP needs to support why-run mode

It's a custom resource now


Sketch to figma

Remove sketch rss-feed
Add link to Figma resource
Update icon request link to use template

Resolves #174


Run on startup

I think it could be useful to have an option to make the exported scripts run on startup. For example, with upstart, have start on runlevel [2345].

+1

This can be achieved with custom export templates.


Using vue-avatar in vue 3

Hi, I'm trying to use the vue-avatar in vue 3. Everything seems to check out except that the avatar doesn't display but I can see the name bound to the div element in the console.  If it should work in vue 3, could the problem be my usage? Thanks

Hello,
I'm having a similar issue, however, it simply doesn't work and generates numerous errors.  Any scheduled update to support Vue 3?

Just an F.Y.I., a quick search online and I've found https://www.npmjs.com/package/vue3-avatar?activeTab=versions for others that need a v3 solution.  The author states it's "this component is highly inspired from vue-avatar."
I tested it and it works with vue 3.

Thanks for the information.


Create new table with pre-seeded column /  row names

Hi
Useful package, thanks for sharing.
This suggestion partially related to the ability to create a table from a pandas dataframe: create a table pre-seeded with column names, or row names, in a list.
For example:
input_table.create_input_table(colnames=["col1", "col2"])
The initial height / width of the table could be pre-seeded from such arguments.
Table sizing could also be pre-seeded by eg input_table.create_input_table(cols=3)
Slightly more polished might be eg a single cols parameter that identifies an integer or a list and behaves accordingly.
Keeping them separate might allow you to pass in a list of colnames fewer than the number of cols, eg to allow students edit the table to add additional column names into pre-made slots for them (rather than having to add columns, for example).

Thanks for the suggestion.
I think most of what is necessary to implement this idea is already in the code. The input_table.create_input_table() call would need to be extended to accept the different keyword options. I think the default behavior would have to be kept. Before we can consider implementing it we need a complete specification for behavior.  If column or row names are provided would they be editable initially or locked/frozen? Are ncols, nrows, columns=["",""...], rows = ["",...], title=".." all that is necessary? Which would be optional and what combinations are allowed?
I am not quite clear on the last part of the suggestion about editing column names. Presently once the names are set, they cannot be edited. If I understand what is being asked for, you want the column names to be editable by the students after the fact. If so, I think that should be a separate issue.

Hi
Re: the last part of the suggestion, apols for that, it was a bit feature creep (yes, I was thinking oaf activities where students are presented with a half-finished table, with a number of columns unspecified that they would need to name themselves, which would require making them editable).
Yes, absolutely re: retaining the default behaviour. I was just thinking about situations where the column names etc may be available; rekeying also runs the risk of errors, so if names are available, it makes sense to reuse them.

I am unlikely to have a chance to get to this for a while. Thus here is what I think the specification should be for my future reference or someone else who wants to work on this.

If no keywords are provided the current behavior would be maintained.
The following keywords would be accepted:

cols accepting either an integer specifying the number of columns or a list of strings naming the columns. Required.
rows accepting either an integer specifying the number of rows or a list of strings naming the rows. Required.
title accepting a string caption or title for the table. Required.
locked_labels either True or False. If False the table would be created with the labels in the editable state. Default = True. Presently no other actions on tables are supported until the labels have been locked.

This would not support creating tables with data. That would be supported by table_from_pandas() and table_from_csv() methods.


Swagger 3

Any plans to support Swagger3? https://t.co/kXr3k73oKD

We definitely should, might consider renaming to Nancy.OpenAPI as well (or starting a new repo off of this one)

cool

A work in progress https://github.com/tavis-software/tavis.openapi but it will be finished soon.


Appending Pandas dataframes in for loop results in ValueError

I recently posted this on StackOverflow. It seems to be a bug so I am posting here as well.
I want to generate a dataframe that is created by appended several separate dataframes generated in a for loop. Each individual dataframe consists of a name column, a range of integers and a column identifying a category to which the integer belongs (e.g. quintile 1 to 5). If I generate each dataframe individually and then append one to the other to create a 'master' dataframe then there are no problems. However, when I use a loop to create each individual dataframe then trying to append a dataframe to the master dataframe results in:
ValueError: incompatible categories in categorical concat
A work-around (suggested by jezrael) involved appending each dataframe to a list of dataframes and concatenating them using pd.concat.
I've written a simplified loop to illustrate:
Code Sample, a copy-pastable example if possible
import numpy as np
import pandas as pd

# Define column names
colNames = ('a','b','c')

# Define a dataframe with the required column names
masterDF = pd.DataFrame(columns = colNames)

# A list of the group names
names = ['Group1','Group2','Group3']

# Create a dataframe for each group
for i in names:
    tempDF = pd.DataFrame(columns = colNames)
    tempDF['a'] = np.arange(1,11,1)
    tempDF['b'] = i
    tempDF['c'] = pd.cut(np.arange(1,11,1),
                        bins = np.linspace(0,10,6),
                        labels = [1,2,3,4,5])
    print(tempDF)
    print('\n')

    # Try to append temporary DF to master DF
    masterDF = masterDF.append(tempDF,ignore_index=True)

print(masterDF)

Expected Output
     a       b  c
 0   1  Group1  1
 1   2  Group1  1
 2   3  Group1  2
 3   4  Group1  2
 4   5  Group1  3
 5   6  Group1  3
 6   7  Group1  4
 7   8  Group1  4
 8   9  Group1  5
 9  10  Group1  5
10  11  Group2  1
11  12  Group2  1
12  13  Group2  2
13  14  Group2  2
...
28  29  Group3  5
29  30  Group3  5

output of pd.show_versions()
INSTALLED VERSIONS
commit: None
python: 3.4.1.final.0
python-bits: 64
OS: Darwin
OS-release: 15.5.0
machine: x86_64
processor: i386
byteorder: little
LC_ALL: None
LANG: en_GB.UTF-8
pandas: 0.18.1
nose: None
pip: 1.5.6
setuptools: 20.1.1
Cython: None
numpy: 1.11.0
scipy: 0.16.1
statsmodels: None
xarray: None
IPython: 4.1.1
sphinx: None
patsy: None
dateutil: 2.5.3
pytz: 2016.4
blosc: None
bottleneck: None
tables: None
numexpr: None
matplotlib: 1.5.0
openpyxl: 2.3.2
xlrd: None
xlwt: None
xlsxwriter: None
lxml: None
bs4: None
html5lib: None
httplib2: None
apiclient: None
sqlalchemy: None
pymysql: 0.7.4.None
psycopg2: None
jinja2: 2.8
boto: None
pandas_datareader: None

cut returns a categorcial. By design, you can't append new categories
In [6]: s1 = pd.Series(['a', 'b']).astype('category')

In [7]: s1.append(pd.Series(['b', 'c']).astype('category'))
...
ValueError: incompatible categories in categorical concat

I believe your code would work if you change the pd.cut(...) to pd.cut(...).categories.

If you change your example code slightly so there are no NEW categories being added:
In [6]: s1 = pd.Series(['a', 'b']).astype('category')
In [7]: s1.append(pd.Series(['b', 'a']).astype('category'))

then it runs OK. In the original problem, the pd.cut() function generates the same categories in each dataframe, namely 1 to 5, so no new categories are being added.

Gotcha, here's a simpler example.
In [44]: df = pd.DataFrame(columns=['a'])

In [45]: a = pd.DataFrame({"a": pd.Categorical([1, 2, 3], ordered=True)})

In [46]: a.a
Out[46]:
0    1
1    2
2    3
Name: a, dtype: category
Categories (3, int64): [1 < 2 < 3]

In [47]: df.append(a).a
Out[47]:
0    1
1    2
2    3
Name: a, dtype: category
Categories (3, int64): [1, 2, 3]

So the orderedness of a is lost in the append. @lvphj any interest in digging through the traceback to see where it's lost?

Certainly interested – but may not have the skill set.

👍 just post here if you have any questions. Either way, thanks for the report.
Just a hunch, but I would start looking in https://github.com/pydata/pandas/blob/1a9abc44bbfd65675fd99701fe33aad8805ab147/pandas/types/concat.py#L147

this is by definition. you need union_categorical

@jreback I think my last example should work, no? E.g. df.append(a) should have an ordered categorical if a was ordered?

Yes, I think that is correct.
It only seems to happen when you start with an empty frame, or append an empty frame:
In [29]: a.append(df).a  # <-- append empty frame
Out[29]:
0    1
1    2
2    3
Name: a, dtype: category
Categories (3, int64): [1, 2, 3]

In [30]: a.append(a).a
Out[30]:
0    1
1    2
2    3
0    1
1    2
2    3
Name: a, dtype: category
Categories (3, int64): [1 < 2 < 3]

Hmm, is the empty set of categories ordered or not? 😄 pd.Categorical([]).ordered is False (by default).
Is this worth special casing so that empty_categorical.append(ordered_categorical) becomes ordered? I think so, but maybe not.
cc @janschulz, thoughts?

Well, if we say that an empty series is ordered=False, then it should actually raise an error instead of changing the order of the result :-)
But actually, in this case, you don't have an empty categorical, but just an empty frame without dtype info, so in this case it should ignore the fact that that part is ordered or not.

The problem is here: https://github.com/pydata/pandas/blob/1a9abc44bbfd65675fd99701fe33aad8805ab147/pandas/types/concat.py#L201 When concat is not dealing with only categoricals, but with a mixture of categoricals and object arrays, it takes the categories from the first categorical to concat, but not the other properties like ordered or not. Should be an easy fix to also pass ordered there.

In [44]: df = pd.DataFrame(columns=['a'])
In [45]: a = pd.DataFrame({"a": pd.Categorical([1, 2, 3], ordered=True)})
In [47]: df.append(a).a

IMO there can be two interpretations:

If the df in the above append is seen as already having category column (and this is Category([]) then this should IMO error because Category([]) is ordered false (default) and has different Categories (= empty) and therefore this two shouldn't be appendable (as with two different categoricals in the column).
If the dataframe has no type information at all and this is seen as basically a set the column to the new type and it should retain the information in the appended categorical.

pandas.DataFrame({"a": pandas.Categorical([1,2,3])}).append(pandas.DataFrame({"a": pandas.Categorical([1,2])})) # -> Error as it should be...
pandas.DataFrame({"a": pandas.Categorical([])}).append(pandas.DataFrame({"a": pandas.Categorical([1,2])})) # -> Also errors...

The question is if an empty column is the same as a categorical column without any value
IMO that's the difference between this two dataframes:
# 1. defined column type, but no value
pandas.DataFrame({"a": [1]})[[False]].dtypes # -> dtype of a: int64
print(pandas.DataFrame(columns=["a"])).dtypes # -> dtype of a: object
as_float = pandas.DataFrame({"a": [1.]})[[False]] # -> float64
as_float.append(pandas.DataFrame({"a": [1]})).dtypes # -> kept as float64 as that takes both int and float

and
# 2. no defined value
empty_object = pandas.DataFrame(columns=["a"])
print(empty_object.dtypes) # -> object
empty_object.append(pandas.DataFrame({"a": [1]})).dtypes # -> Float64 ??? why not int64 or object?

the first is just the usual  "cast to something which can take both" which is the rule for everything but categorical.  The second seems to be the upcast rules for int + object? So if the second follows the "normal rules", then IMO appending a categorical should also follow the usual categorical rules, aka erroring.

I met the same problem in #13626 and wrote short summary of Series Indexdifferences.
How about following spec:

concat 2 categories -> use the rule of union_categorical
concat category and other dtype (which values are all in the category, including empty) -> category

this rule is applied regardless of order (if there is at least one category in concatenating values)

concat category and other dtype (which values are not in the category) -> not category (dtype is infered)


NPC for Lost at sea is blocked in underground (cave accidentally filled with worldedit)

https://gyazo.com/2aeebfbc154fc10e2cceb52b1f5547ea
pretty simple one, somehow the cave filled up with stone so u cant get down to the bottom where u need to talk to the npc

prevents quest progression
clearly wasnt meant to happen :P
has happened at some point in like the last 2-3 weeks cos i remember doing the quest like week 1-2 of the reset. someone asked for help with it today and showed me this so i checked using the evo screen and it just seems the cave has been filled with stone below a certain y level
https://gyazo.com/d94fcc83e40a14a9c64744b0e341a45b
thats what the cave looks like from inside
hope this gets fixed soon <3

blitz did tha fix thing


Add docs on pre/post processing operations and dlq support

This adds docs for the DLQ and pre/postprocess features added in #26309 and #26261
This shouldn't be merged until 2.48 is released
✨ RENDERED ✨

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @rszper

I'll merge this once 2.48 is released


Upgrade problem? error: Failed to set LXC config

Required information

Distribution: Linux aether 4.15.18-1-hardened #1 SMP PREEMPT Fri Apr 20 23:46:26 CEST 2018 x86_64 GNU/Linux
The output of "lxc info":

config: {}
api_extensions:
- storage_zfs_remove_snapshots
- container_host_shutdown_timeout
- container_stop_priority
- container_syscall_filtering
- auth_pki
- container_last_used_at
- etag
- patch
- usb_devices
- https_allowed_credentials
- image_compression_algorithm
- directory_manipulation
- container_cpu_time
- storage_zfs_use_refquota
- storage_lvm_mount_options
- network
- profile_usedby
- container_push
- container_exec_recording
- certificate_update
- container_exec_signal_handling
- gpu_devices
- container_image_properties
- migration_progress
- id_map
- network_firewall_filtering
- network_routes
- storage
- file_delete
- file_append
- network_dhcp_expiry
- storage_lvm_vg_rename
- storage_lvm_thinpool_rename
- network_vlan
- image_create_aliases
- container_stateless_copy
- container_only_migration
- storage_zfs_clone_copy
- unix_device_rename
- storage_lvm_use_thinpool
- storage_rsync_bwlimit
- network_vxlan_interface
- storage_btrfs_mount_options
- entity_description
- image_force_refresh
- storage_lvm_lv_resizing
- id_map_base
- file_symlinks
- container_push_target
- network_vlan_physical
- storage_images_delete
- container_edit_metadata
- container_snapshot_stateful_migration
- storage_driver_ceph
- storage_ceph_user_name
- resource_limits
- storage_volatile_initial_source
- storage_ceph_force_osd_reuse
- storage_block_filesystem_btrfs
- resources
- kernel_limits
- storage_api_volume_rename
- macaroon_authentication
- network_sriov
- console
- restrict_devlxd
- migration_pre_copy
- infiniband
api_status: stable
api_version: "1.0"
auth: trusted
public: false
auth_methods:
- tls
environment:
  addresses: []
  architectures:
  - x86_64
  - i686
  certificate: |
    -----BEGIN CERTIFICATE-----
blabla
    -----END CERTIFICATE-----
  certificate_fingerprint: blabla
  driver: lxc
  driver_version: 3.0.0
  kernel: Linux
  kernel_architecture: x86_64
  kernel_version: 4.15.18-1-hardened
  server: lxd
  server_pid: 266
  server_version: "2.20"
  storage: btrfs
  storage_version: "4.16"

Storage backend in use: BTRFS

Issue description
I'm running a VPS on Arch. Having some memory problems, which results in a rise in memory consumption until the VPS container simply start slowing down. Shutting down lxc containers doesn't help. This is always fixed by rebooting the VPS container (did that last week). Upgraded arch on the 15th of april. Now, after rebooting, LXC stopped working. All containers are offline.
LXC list output:
[root@aether .snapshots]# lxc list
+-----------------+-------+------+------+------------+-----------+
|      NAME       | STATE | IPV4 | IPV6 |    TYPE    | SNAPSHOTS |
+-----------------+-------+------+------+------------+-----------+
| bananaprototype | ERROR |      |      | PERSISTENT | 0         |
+-----------------+-------+------+------+------------+-----------+
| bananawiki      | ERROR |      |      | PERSISTENT | 0         |
+-----------------+-------+------+------+------------+-----------+
| davical         | ERROR |      |      | PERSISTENT | 2         |
+-----------------+-------+------+------+------------+-----------+
| git             | ERROR |      |      | PERSISTENT | 0         |
+-----------------+-------+------+------+------------+-----------+
| lychee          | ERROR |      |      | PERSISTENT | 0         |
+-----------------+-------+------+------+------------+-----------+
| mail            | ERROR |      |      | PERSISTENT | 4         |
+-----------------+-------+------+------+------------+-----------+
| matrix          | ERROR |      |      | PERSISTENT | 2         |
+-----------------+-------+------+------+------------+-----------+
| nginx           | ERROR |      |      | PERSISTENT | 0         |
+-----------------+-------+------+------+------------+-----------+
| radicale        | ERROR |      |      | PERSISTENT | 0         |
+-----------------+-------+------+------+------------+-----------+
| riot            | ERROR |      |      | PERSISTENT | 1         |
+-----------------+-------+------+------+------------+-----------+
| tjp             | ERROR |      |      | PERSISTENT | 0         |
+-----------------+-------+------+------+------------+-----------+

LXC info 'container' output:
[root@aether .snapshots]# lxc info mail
error: Failed to set LXC config: lxc.console.buffer.logfile=/var/log/lxd/mail/console.log

The log folder of the lxd container is, however empty:
[root@aether .snapshots]# ls -l /var/log/lxd/mail/
total 4
-rw-r--r-- 1 root root    0 Apr 24 12:29 forkexec.log
-rw-r--r-- 1 root root 1452 Apr 15 19:03 lxc.conf
-rw-r--r-- 1 root root    0 Apr 24 18:18 lxc.log

The system log doesn't show anything special wrt the lxd service (unless that image lookup failure is important):
journalctl -u lxd.service
-- Reboot --
Apr 24 18:26:05 aether systemd[1]: Started REST API, command line tool and OpenStack integration plugin for LXC..
Apr 24 18:26:05 aether lxd[266]: lvl=warn msg="AppArmor support has been disabled because of lack of kernel support" t=2018-04-24T18:26:05+0200
Apr 24 18:26:05 aether dnsmasq[385]: started, version 2.79 cachesize 150
Apr 24 18:26:05 aether dnsmasq[385]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: DHCP, IP range <IP_ADDRESS> -- <IP_ADDRESS>, lease time 1h
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: DHCPv6 stateless on lxdbr0
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: DHCPv4-derived IPv6 names on lxdbr0
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: router advertisement on lxdbr0
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: DHCPv6 stateless on fd42:55b4:3fbf:1fde::, constructed for lxdbr0
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: DHCPv4-derived IPv6 names on fd42:55b4:3fbf:1fde::, constructed for lxdbr0
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: router advertisement on fd42:55b4:3fbf:1fde::, constructed for lxdbr0
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: IPv6 router advertisement enabled
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: DHCP, sockets bound exclusively to interface lxdbr0
Apr 24 18:26:05 aether dnsmasq[385]: using local addresses only for domain lxd
Apr 24 18:26:05 aether dnsmasq[385]: reading /etc/resolv.conf
Apr 24 18:26:05 aether dnsmasq[385]: using local addresses only for domain lxd
Apr 24 18:26:05 aether dnsmasq[385]: using nameserver <IP_ADDRESS>#53
Apr 24 18:26:05 aether dnsmasq[385]: using nameserver <IP_ADDRESS>#53
Apr 24 18:26:05 aether dnsmasq[385]: using nameserver 2a01:7c8:a::c53#53
Apr 24 18:26:05 aether dnsmasq[385]: using nameserver 2a01:7c8:b::c53#53
Apr 24 18:26:05 aether dnsmasq[385]: read /etc/hosts - 1 addresses
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/tjp
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/riot
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/radicale
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/nginx
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/matrix
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/mail
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/lychee
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/git
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/davical
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/bananawiki
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/bananaprototype
Apr 24 18:26:05 aether dnsmasq[385]: read /etc/hosts - 1 addresses
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/tjp
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/riot
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/radicale
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/nginx
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/matrix
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/mail
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/lychee
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/git
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/davical
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/bananawiki
Apr 24 18:26:05 aether dnsmasq-dhcp[385]: read /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts/bananaprototype
Apr 24 18:26:06 aether lxd[266]: lvl=warn msg="Failed to update instance types: Get https://images.linuxcontainers.org/meta/instance-types/.yaml: lookup images.linuxcontainers.org: Temporary failure >
Apr 24 18:26:08 aether dnsmasq[385]: reading /etc/resolv.conf
Apr 24 18:26:08 aether dnsmasq[385]: using local addresses only for domain lxd
Apr 24 18:26:08 aether dnsmasq[385]: using nameserver 2a01:7c8:a::c53#53
Apr 24 18:26:08 aether dnsmasq[385]: using nameserver 2a01:7c8:b::c53#53
Apr 24 18:26:10 aether dnsmasq[385]: reading /etc/resolv.conf
Apr 24 18:26:10 aether dnsmasq[385]: using local addresses only for domain lxd

Not really sure where to look now. I haven't touched the container, apart from a system upgrade. And the usual suspects with regards to error logging (at least the ones I know of) don't really show relevant information.
If anyone can help, that'd be great!

All right, thanks! That did it, upgrade to lxd 3.0 and rebooted, afterwards everything worked as expected.


Upgrade failed: Replay file is not read

What happened?
Updating to the latest version fails with this error:
Traceback (most recent call last):
  File "/tmp/tmp0bhn5nzd.py", line 83, in <module>
    main()
  File "/tmp/tmp0bhn5nzd.py", line 58, in main
    if not NAME_REGEX.match(cookiecutter.name):
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: expected string or bytes-like object, got 'NoneType'
ERROR: Stopping generation because pre_gen_project hook script didn't exit successfully

What did you expect instead?
no error doh
Affected version(s)
v0.6.1
Affected part(s)
I don't know (part:❓)
Extra information
No response

Since I won't have time to debug this in the near future (a few weeks) it might be worth mentioning that the workaround is to skip passing the replay file and filling the fields manually. It is annoying but at least there is a workaround.

I verified this is an upstream bug. It looks like this got broken by https://github.com/cookiecutter/cookiecutter/pull/1758, released in cookiecutter 2.2.3 and fixed by https://github.com/cookiecutter/cookiecutter/pull/1904 in ]2.3.0](https://github.com/cookiecutter/cookiecutter/releases/tag/2.3.0).
I tested with 2.2.3 and it fails with the error above, 2.2.2 and below and 2.3.0 and 2.4.0 work fine, so basically we only need to avoid the buggy 2.2.3.
Can you please try again using an unproblematic version?
@TalweSingh FYI too.

OK, closing as invalid, if you have any issues please reopen.


Deploy and HTTP request cancellation

This PR implements support for cancelling in-progress deploys by terminating the git process that is handling the push (for example by pressing Ctrl-C). Also implemented is support in the router for cancelling in-progress HTTP requests when clients disconnect.
Closes #958
Closes #94
Closes #2852

LGTM


ImportError: No module named 'breathe'

Details

Read the Docs project URL: https://pymesh.readthedocs.io/en/latest/
Build URL (if applicable): https://readthedocs.org/projects/pymesh/builds/7860648/
Read the Docs username (if applicable):

Expected Result
Build without error.
Actual Result
There are several things that is likely wrong in the build:

RTD is catting the wrong conf.py.  The correct conf file is docs/conf.py, and it is also specified in the RTD settings of the project.  However, for some reason, RTD is using the conf.py from a git submodule.
RTD fails with the following error:

Traceback (most recent call last):
  File "/home/docs/checkouts/readthedocs.org/user_builds/pymesh/envs/latest/lib/python3.5/site-packages/sphinx/registry.py", line 315, in load_extension
    mod = __import__(extname, None, None, ['setup'])
ImportError: No module named 'breathe'

It would be good if I can disable RTD from checking out recursively the git submodules since the documentation of my project does not rely on them, and the submodule tree could be very deep.  I have seen other issues mentioning it (https://github.com/rtfd/readthedocs.org/issues/4464), but I am not sure it is part of the official release yet.

Sorry, you are facing https://github.com/rtfd/readthedocs.org/issues/4669. About submodules, I hope to get merged this PR https://github.com/rtfd/readthedocs.org/pull/4493 soon and make it available to users soon.
Probably we can close this issue, and follow up on the others.

Also, a workaround is creating your .readthedocs.yml file in the root of your project https://docs.readthedocs.io/en/latest/yaml-config.html.

Thanks @stsewd , adding .readthedoc.yml does fix the problem, but it still feels like a mystery to me.  No where in .readthedoc.yml specifies the location of conf.py, and yet the problem goes away.

previously the conf.py value was only customizable from the web panel of a project, but we are changing some stuff to make a rtd configuration file v2, which can be used to specify the con.py path, isn't available to users right now. Anyway, all values are relative to this file, so that's the problem. With the last update we discovered this hidden bug (we were reading a configuration file that doesn't belong to the user)


Volume

Hi, first of all great plugin thank you for all your efforts and time. Question, I have the Sony Z9D 65" it pairs very well with the plugin but my volume appears as "Brightness" is there a way to correct this?? Thank you in advance

Sure, u can change it to switch or fan (speaker not supported)
https://github.com/SeydX/homebridge-bravia-tvos/blob/1f609cd2a6e7f799d6ba907246bac17284fec036/example-config.json#L221


__cf_bm cookie not found

Is this something to be worried about?

Is this something to be worried about?

No, there’s no need to worry. In some cases, this cookie is always present, while in others it’s not. Based on my observations, its absence can sometimes cause errors when loading images. If this doesn’t result in further errors with codes starting with 4xx, there’s no reason for concern. These messages are primarily for me to quickly understand the issue when reports are sent to me.


Runtime distributed context

Move from choosing the distributed communication model from a compile time
choice (the old arb::communication::communication_policy type) to a run time
decision.
Previously, communication was handled by static methods on the compile time
communication_policy.  Motivations behind the new design include:

Increasing flexibility of the library: uses can use a non-distributed
communication when the library has been compiled with MPI support.
Getting Arbor to work better with other libraries by allowing the use of a
user supplied MPI communicator.

The arb::global_context type defines the interface for global communication
operations:

defines the methods that must be provided by an implementation;
uses type erasure tricks to simplify the implementations. Implementations
don't have to inherit from arb::global_context, and can use templates
to implement methods that are overloaded on types;
Two implementations provided:

arb::mpi_context
arb::serial_context
TODO: implement dryrun context.

Interfaces to functions and types that use distributed communication now accept
a pointer to their communication context.
Other changes:

Remove the arb::communication namespace (move to arb namespace)
Changes to the low level MPI library wrappers include:

Add mpi_error exception type, derived from std::runtime_error.
Wrap all MPI API calls to throw mpi_error when MPI_SUCCESS is not
returned.
Add arb::mpi::scoped_guard for RAII handling of MPI_Init and
MPI_Finalize.

Rewrite all examples and tests to use the new interface.
Update documentation for load balancer and simulation, whose interfaces are
changed.

Just on naming, I think rather than global_context, the class should be called something like distributed_context, or anticipating the extension to encompass other facilities, execution_context.

This doesn't appear to modify the top-level CMakeLists.txt; we should remove the ARB_DISTRIBUTED_MODEL option, perhaps replacing it with an ARB_WITH_MPI flag to conditionally compile the MPI code.

There are pros and cons of each approach.
I prefer the type erasure approach because it puts all the complexity in one spot (the interface implementation), and may reduce the complexity of calling code.
OO Approach
pros

simpler interface class implementation
overall design probably easier for new developers to understand (type erasure might be a new idea)

cons

implementations become more complicated and more maintenance burden, because each virtual function has to be implemented on each implementation.
user code may become more complicated by using pointer to base class.

Type-erasure Approach
pros

simple implementations
templates on implementations mean that adding support for new types only requires extending interface, not implementations.
default construction with serial context is simple.

cons

interface implementation is more complicated.

I don't think that in the OO approach that implementations are more complicated; the gain from the type-erasure approach (with regards to implementation complexity) is that one can use templated implementations directly. But if one is already using a macro-foreach, the difference is only a few lines.
E.g. in an OO implemenation of the MPI context, the reductions look like:
struct mpi_context: global_context {
    // ... other methods ...

    #define ARB_MPI_CONTEXT_GENERIC_DEFNS_(X)\
    virtual X min(X x) const override { return mpi::reduce(x, MPI_MIN, comm_); }\
    virtual X max(X x) const override { return mpi::reduce(x, MPI_MAX, comm_); }\
    virtual X sum(X x) const override { return mpi::reduce(x, MPI_SUM, comm_); }\
    virtual std::vector<X> gather(X x, int root) const override { return mpi::gather(x, root, comm_); }

    PP_FOREACH(ARB_MPI_CONTEXT_GENERIC_DEFNS_, ARB_GLOBAL_CONTEXT_SCALARS_)
};

Value-semantics for the contexts is convenient, but less so than for our other type-erased classes, as we pass it to methods by pointer regardless.

OO vs type-erasure aside, using a FOREACH-like macro can simplify the implementation. Cut-and-paste from proof-of-concept code:
// Implementation macros for PP_FOREACH:

#define PP_FOREACH_1_(M, A, ...)  M(A)
#define PP_FOREACH_2_(M, A, ...)  M(A) PP_FOREACH_1_(M, __VA_ARGS__)
#define PP_FOREACH_3_(M, A, ...)  M(A) PP_FOREACH_2_(M, __VA_ARGS__)
#define PP_FOREACH_4_(M, A, ...)  M(A) PP_FOREACH_3_(M, __VA_ARGS__)
#define PP_FOREACH_5_(M, A, ...)  M(A) PP_FOREACH_4_(M, __VA_ARGS__)
#define PP_FOREACH_6_(M, A, ...)  M(A) PP_FOREACH_5_(M, __VA_ARGS__)
#define PP_FOREACH_7_(M, A, ...)  M(A) PP_FOREACH_6_(M, __VA_ARGS__)
#define PP_FOREACH_8_(M, A, ...)  M(A) PP_FOREACH_7_(M, __VA_ARGS__)
#define PP_FOREACH_9_(M, A, ...)  M(A) PP_FOREACH_8_(M, __VA_ARGS__)
#define PP_FOREACH_10_(M, A, ...) M(A) PP_FOREACH_9_(M, __VA_ARGS__)
#define PP_GET_11TH_ARGUMENT_(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, ...) a11

// Apply macro in first argument to each of the remaining arguments (up to 10).

#define PP_FOREACH(M, ...)\
PP_GET_11TH_ARGUMENT_(__VA_ARGS__, PP_FOREACH_10_, PP_FOREACH_9_, PP_FOREACH_8_, PP_FOREACH_7_, PP_FOREACH_6_, PP_FOREACH_5_, PP_FOREACH_4_, PP_FOREACH_3_, PP_FOREACH_2_, PP_FOREACH_1_)(M, __VA_ARGS__)


Upgrade Dockerfile to use openjdk:11.0.16

Upgrade Dockerfile to use openjdk:11.0.16

This, unfortunately, does not fix the CVEs though 😢


Fix #120, make web use self-contained webpack

Running npm start on error ran the webpack installed in the operating system, instead of the one installed on node_modules/.bin (issue #120). This PR fixes it.
Also, wasm-pack is now run on npm start. This should give proper live reloading when editing the web repl.

Actually the issue is #120 :sweat_smile:

I was hoping to get live reload working but when a second build happens it hits webpack/webpack#13691. I will update to Webpack to fix it

@dlight You still need to fix the merge conflicts


Ensure Java API is up-to-date with Scala API

We can try to co-opt the Spark machinery for this: JavaAPICompletenessChecker.

Shall we try to get this in 0.19.0? Ping @laserson @heuermh

Progress was made in pull request #1051 but I've since run into issue #1092.

This is resolved by WIP PRs #1387 and #1397. Closing in favor of.


[4.0] NSString: Fix malformed string test and re-enable other disabled tests

Backport fix to 4.0 branch

@swift-ci please test

@swift-ci please test and merge


Feature suggestions

[ ] chaining/callback condition
await t
  .if(/* Boolean condition */)
  .hover(selector)
  .endif()
  .click(selector)

or
const callback = async t => {
  await t
      .hover(selector)
}

async t
  .if(/* Boolean condition */, callback)
  .click(selector)

[ ] Selector.random elements
  // Select a random number of elements
  const buyButton = await Selector('.in-cart').random(/* number */)

[ ] Multiclick
// if selector array do event for of each
const afterAction = async (t, currentNode) => {
  await t
    .hover(currentNode)
};

const beforeAction = async t => {
  const modalClose = await Selector('.modal .close');
  await t
    .click(modalClose)
};

await t
  .click(buyButton, {afterAction, beforeAction})

[ ] Call other test
// We have many tests, eg:
// put-in-cart-random-goods.js
// checkout.js

test('Random test generator', async t => {
  await t
    .importTest('put-in-cart-random-goods.js')
    // Some other actions
    .importTest('checkout.js')
})

\cc @AlexanderMoskovkin

Hi @GitScrum,
Thanks for your proposals.
I suppose most of them quite specific and can be implemented with a few additional lines of code in the test or in a helper. I'm inclined to add only most valuable features to API in this case to don't do the API overloaded.
For example, it's easy to replace proposed chaining condition with a regular condition:
await t
  .if(/* Boolean condition */)
  .hover(selector)
  .endif()
  .click(selector)

->
if(await selector.visible)
    await t.hover(selector);

Instead Selector.random you can use the following:
function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min)) + min;
}

async function getRandomEl (selector) {
    const count = await selector.count;

    if(!count)
        return null;

    const index = getRandomInt(0, count);
    return selector.nth(index);
}

MultiEvent:
const count = await selector.count;

for(let i = 0; i < count; i++) {
    // run beforeAction();
    await t.click(selector.nth(i));
    // run afterAction();
}

The Call other test approach has a lot of uncertainties. What if the fixture in the imported file has several tests? What the test has their own page directive or it's skipped?
I think the best practice here is to place shared steps to a function and call it from different tests:
// login.js
import { t } from 'testcafe';

export default async function () {
    await t
        .typeText('#login', 'login')
        .typeText('#password', 'password')
        .pressKey('enter');
}

// test.js
import login from './login.js';

fixture `Fixture`
  .page `http://example.com`;

test('Test', async t => {
  await login();
});

Can be have the ability to connect plug-ins? As done for example in babel.

We have no such ability now, but we had the similar thoughts before. So, let's keep your issue opened as a reminder to think out it again.

I have the same need to call other tests, and so far, I failed to make your exemple run :
// login.js
import { t } from 'testcafe';

export default async function () {
    await t
        .typeText('#login', 'login')
        .typeText('#password', 'password')
        .pressKey('enter');
}

// test.js
import login from './login.js';

fixture `Fixture`
  .page `http://example.com`;

test('Test', async t => {
  await login();
});

I have the following error :

ReferenceError: testcafe_1 is not defined

on line
export default async function () {
    await t

I eventuallly succeeded by another way , by passing t to the imported function :
// helpers.js
export async function createNew (t) {
    await t.click('.new-btn');
}

// test.js
import { createNew } from './helpers';

test('Test', async t => {
    await createNew(t);
    // ...
});

Hi @abenhamdine,
Usually this code should work properly. It can relate to the way how did you install testcafe module. Could you please share us with details of your file and module structure? How did you install testcafe, locally or globally. How do you run tests, via CLI, package.json script command, programming interface. Do you have any other modules installed in your project?


PR review changes

These are some additional changes to https://github.com/golioth/thingy91-golioth/pull/5

@szczys good feedback, sorry for the mess with the CHANGELOG being all over the place.
I've cleaned up all the commits so that they should be easier to read one-by-one, and the CHANGELOG entries are also associated with the correct commit now.


Listen event bugs

I use https://mainnet.phantom-rpc.com/events/main as sse url, follow the example to listen the Token transfer event, but it returns Event { type: 'error', message: undefined } error.

which version are you using?

        "casper-cep18-js-client": "^1.0.3",
        "casper-js-sdk": "^2.15.6"

@ryo-casper


Support array for key

Support array for key like so:
ludb:save({"players", 1, "vehicles"}, ...)

ludb:retrieve({"players/1", "vehicles"}, ...)

Done: https://github.com/0xWaleed/0xludb-fivem/commit/cd495c2f2c5c196c8b3947af92df5f9855f66670


replace "30 DAYS PASS RATE BY PROJECT (%)" by OWNER

no more projects in CE so let's replace this widget on general board by grouping by OWNER(s)

done. changes can be tested using zebrunner setup from branch: develop.
reporting-service version: <IP_ADDRESS>-SNAPSHOT+

Verified on zebrunner ce from dev. branch on
ui: <IP_ADDRESS>-SNAPSHOT
server: <IP_ADDRESS>-SNAPSHOT
Fixed.


Add context field to terms

Add context field
Add context field to the website

Should be merged after #22

Agree with the addition so readers can better understand terms.

感謝 Review
我也覺得那個連結有點佔位子。但我覺得未來有可能 additional link 會放很多個，而且他們會和內文有產生某種關係。
我開個 Issue 討論這個問題和列出一些解決方式


Only add token start to line length if first line in token

Fixes incorrect error reporting for the following python code:
print("""
    This line is exactly 78 characters long but the linter reports it as 84...
""")

$ flake8 example.py
example.py:2:80: LN001 line is too long (84 > 79)

Hopefully this is correct, I'm not sure if there are tokens where the original behavior would be correct.

Thank you! I want to add some more tests before merging, just to be sure. I'll try to find time for it soonish.

Merged, thank you for your help


HHH-12505 - Add possibility to disable metadata scanning

https://hibernate.atlassian.net/browse/HHH-12505

@petteripitkanen Could you also include a test case with this PR that enables this scanner and tests if the behavior is expected?

I extended ScanningCoordinatorTest with two tests:

testManagedResourcesAfterCoordinateScanWithDisabledScanner() runs coordinateScan() with DisabledScanner and asserts that ManagedResources is empty.
testManagedResourcesAfterCoordinateScanWithCustomEnabledScanner() instantiates custom scanner that returns non-empty result, runs coordinateScan() with that, and asserts that ManagedResources is not empty.

Applied upstream


Adding Emerging Threats TOR exit nodes list

Any update on this enhancement?  Thank you.

Working on that ! FYI, in the next release we will support external extensions (see #113) and it will be even easier to develop and contribute new nodes.

Working on that ! FYI, in the next release we will support external extensions (see #113) and it will be even easier to develop and contribute new nodes.


Remove third_party checked in code form buildroot

We should replace all of the checked in code in https://github.com/flutter/buildroot/tree/master/third_party - if necessary, we could keep custom BUILD.gn files in there for building, but we should be pulling these in as DEPS the way we do with other third party sources.
This has a couple challenges:

We've modified all the libraries in there at some point except for expat. Some of those modifications are to build rules, and some are to presumably pull in new files (e.g. https://github.com/flutter/buildroot/commit/bc8826aab0fc4f7e17b21f64dec4c8a28ea42e3e)
Pulling in updated deps may cause new breakages on systems we don't have coverage for until pretty late in the game.

/cc @chinmaygarde @jason-simmons @iskakaushik

related: https://github.com/flutter/flutter/issues/17780

All the repos have been created. Please let me know if we will need initial imports with history.

@godofredoc I'd like to initialize the libpng repository to this commit:
https://skia.googlesource.com/third_party/libpng.git@386707c6d19b974ca2e3db7f5c61873813c6fe44
See https://github.com/flutter/flutter/issues/76079

This is complete please take a look at: https://flutter.googlesource.com/third_party/libpng

Keep it open for the remaining projects.

It'd be pretty nice if we could get to a state where we're maintaining pristine copies from upstream to make it easier to cleanly roll for security updates etc.
Based on a quick survey of local patches since import to the buildroot repo, it looks like:

expat: No patches since initial import
fontconfig: Initial import + some additional headers (though maybe just missed in the initial import since they occurred soon after).
libxml: Includes one code patch for ICU compatibility.
zlib: Fair number of patches, particularly around angle.

These were all initially sourced from Chromium's copies. I'm not sure how much patching they did vs upstream, but it would be kind of nice to be using a clean copy of upstream and authoring our BUILD.gn files and any build-related scripts/tooling under secondary to keep our copies of the third-party libs pristine. That doesn't cover local patches we've made but not submitted upstream, though I suppose we could pretty easily whip up some tooling that would allow us to maintain and apply patches in secondary.
If we can't get to that state, or if there's a ton of chromium patching, it'd be nice to at least be using a clean copy of chromium's copies.

Expat is now migrated. Migration happened in https://flutter-review.googlesource.com/c/third_party/expat/+/12700, deletion in flutter/buildroot#445, buildroot roll/update in flutter/engine#25683.

Closing this issue as all the third party repositories have been created.

Closing this issue as all the third party repositories have been created.

Setting up the repos is only part of solving the issue.
The following repos are still checked in:

//third_party/fontconfig
//third_party/libxml:
//third_party/zlib

The mirrors for these repos are bare (libxml, fontconfig, zlib) at this time.

Removing infra tag (thanks @godofredoc) as assigning for re-prioritization.

The bare repos are being initialized to the current contents of the Flutter buildroot (fontconfig, libxml, zlib). Once setup, we can tackle how each dependency must be updated (and the cadence) on a case-by-case basis.
IMO, we should just start from scratch and deal with the fallout.


Add a replacement for the last character of a confirmation token.

A user could not activate his account through confirmable in Devise 3.4.1. He sent me the email and I saw that the URL was probably not recognized by his email client. The hyphen as a last character is not interpreted as belonging to the URL (see image). Therefore, the code was incompletely transmitted to the browser.
I know that this is very, very, very, unlikely to be happen, but I don't want that users resign only because they are not able to confirm their account. (Of course, they could demand a new token, but who will do that..?) So, I simply made a patch which makes sure that the last character of the token is definitely not a hyphen.
This should be sufficient, because the other characters which urlsafe_base64 can generate are correctly detected (by Thunderbird).

Isn't this going to return a single character string?
--
José Valim
www.plataformatec.com.br
Skype: jv.ptec
Founder and Lead Developer

D'oh, of course, thanks! I updated it with chop.

Chop changes the size of the token. Maybe it is easier to just add - to the
list of tr values. :)
--
José Valimwww.plataformatec.com.br
http://www.plataformatec.com.br/Founder and Lead Developer

:+1: for moving it to the tr call that we already have.

That's right, but only by one character. (Because urlsafe_base64 cannot create non-printable characters.) So I delete one and add one.
But your idea is better indeed. I tried to change the format of the string so little as possible, but when I think about it, it doesn't matter (at least for my applications) if there are hyphens in the string or not.
Thanks for your help!

I am having mixed feelings about this. Why not send an HTML e-mail where everything is properly marked as a link? Why are you relying on the email client ability to autolink? :)

Because many people are still using text emails. And I don't like the idea that Devise would only work with HTML emails correctly. The fix doesn't effect anything in a negative way and is compatible with autolink and HTML links.

You can send multipart e-mails where the text part should not be autolinked with a proper html part too. Projects like markerb should make it easy to send both: https://github.com/plataformatec/markerb
Thanks!


Adding Jenkinsfile to the repository

adding Jenkinsfile to allow the build via IBP

Please isolate only build-related changes and omit 0.257 changes in the PR.


Fixup naming cops and their specs

Had some time at the airport, so picked a few cops, added missing documentation, did some minor touch up of their implementation, and changed their specs to use expect_offense.

Before submitting the PR make sure the following are checked:

[X] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[X] Used the same coding conventions as the rest of the project.
[X] Feature branch is up-to-date with master (if not - rebase it).
[X] Squashed related commits together.
[ ] Added tests.
[ ] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[X] All tests(rake spec) are passing.
[X] The new code doesn't generate RuboCop offenses that are checked by rake internal_investigation.
[X] The PR relates to only one subject with a clear title
and description in grammatically correct, complete sentences.
[X] Updated cop documentation with rake generate_cops_documentation (required only when you've added a new cop or changed the configuration/documentation of an existing cop).

Good man! 🙇 👍


rsa_pub_encode fails although input data looks valid

I am in the middle of integrating libcurl with openssl (v1.0.2o) and a hardware crypto engine.
The crypto engine itself does not provide the client cert, hence it is read from a PEM file.
The SSL connexion, however fails during initialisation, and using GDB I was able to isolate
the following code on my way to the root cause :
file cypto/rsa/rsa_ameth.c, the code falls into the following error :

static int rsa_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey)
 {
...
    if ((rsa = d2i_RSAPublicKey(NULL, &p, pklen)) == NULL) {
        RSAerr(RSA_F_RSA_PUB_DECODE, ERR_R_RSA_LIB);
        return 0;

The d2i_RSAPublicKey parsing fails, although the data in p and pklen looks absolutely valid to me : it is a ASN.1 DER sequence containing an integer followed by an integer. Dumping the data and feeding it to an ASN.1 decoder works just fine.
The underlying code is a bit complex to debug, and I'm running out of ideas. I'm especially wondering why the NULL parameter (it seems to be taken into account in the decoding code).
Anyone any thoughts on this ?

Closing since it seems to be a side-effet of engine malfunction. Engine is called in RSA_new() call, fails to initialize, which causes an error seen as an allocation error, and in turn as a decode error.


Perplexity Calculation

Hello,
I noticed that in the code, perplexity is calculated as the square root of the loss. As far as I know, it can be calculated using the exponential transformation of the loss.
Can you explain why the metrics are calculated this way and provide any source materials that explain this approach?
Thank you in advance for your attention and answers.

Hey there,
Thanks for the question!
We (initially) used the exponential transform of the loss (to record perplexity), but when we had to do the hyperparameter choice, we switched to the square root. Since our hyperparameter choice depends on two losses, we wanted them to be on the same order of magnitude (and the square root transform seemed to do the trick).
Subsequently, I forgot to rename the metric we are tracking (and kept it as perplexity).
You are 100% correct that perplexity is the exponential transformation of the cross-entry loss.
Sorry for the confusion.

All clear, thank you very much!

All clear, thank you very much!


Dark mode

Changes
Added Dark mode #55
How Has This Been Tested?
The site has been tested locally setting up ruby and Jekyll.
Mentions
@RashikaKarki @wrussell1999 @Korusuke
Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] New feature and improvements (non-breaking change which adds/improves functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] Code Refactoring (internal change which is not user facing)
[ ] Documentation
[ ] Test, CI, or build

Checklist

[ ] Coding style of this project is followed
[ ] Change in documentation is required
[ ] Documentation has been updated accordingly
[ ] Unit tests have been added to cover code change

https://user-images.githubusercontent.com/43284212/106785588-279dd900-6613-11eb-99b1-f62b3881b3af.mov
P.S. I think me hitting the refresh button is not clear. So I wanted to note that it is 0:15 second timestamp. 😅

Lets just get all the conflicts resolved so we can get this merged!


Do not try to sync status when status field is empty or nil in both objects

Currently deepEqualStatus returns true when the status is empty/nil in both objects. This is causing reconciling to happen needlessly for objects with an empty status, and triggers errors in objects that do not have a status (e.g., a ConfigMap).

This looks great. I'd love to have a unit test showing a new case where this wasn't handled correctly and now is, but since there aren't tests for this today I won't make you write them (I won't be sad if you did though 😉).


clarify things in docs

There are a few nuances of the package that should be clarified somewhere in the docs.
clarify matching in docs
Make sure it's clear in the docs that the configs have been set so that every skill will be matched to a ESCO/lightcast skill. However if its matched to a level 1 skill group then we treat it as not matched. Related to #79
job ads which mention the same skills
Make sure to explain how if the string "excel skills" is mentioned twice in a job advert, then it is deduplicated and then one is matched to ESCO. But if it mentions the strings "excel skills" and "Excel skill" since these aren't exactly the same spans, both occurrences will be matched to ESCO and therefore the output will have two lots of Excel skills. Therefore in the output it might be best to deduplicate ESCO skills.
Make clearer the 1 step vs 2 step process
It's either extract_skills OR get_skills+map_skills
Public bucket data
More here https://github.com/nestauk/ojd_daps_skills/issues/94
pypi

I reckon we can add nuances clarify matching in docs and job ads which mention the same skills in the model cards.

add some basic analysis stats to model cards


Missing {"@ in body #102. ElasticsearchLogShipper has the wrong success criteria for Bulk operations #25

Enable reading from UTF-8 files with or without BOM.

Deserialize bulkresponse & log failed operations

You introduce the full NEST library here. We try to stick with the more lightweight Elasticsearch.net library only. Can we do without NEST?

NEST contains the BulkResponse class which uses BulkResponseItemJsonConverter to deserialize.

That is true, but it also introduces a lot of other stuff. You can use a dynamic or parse it yourself without introducing NEST.

I mailndy used NEST because I don't know the responsetypes of all the different elasticsearch versions. This way you get a battletested, maintained deserialisation.  Copying these classes over to this project is an option to make it more lighteweight.

See here (https://github.com/serilog/serilog-sinks-elasticsearch/blob/handlefailures/src/Serilog.Sinks.Elasticsearch/Sinks/ElasticSearch/ElasticSearchSink.cs#L60) for a way to parse without the NEST dependency. We would like to stick with the low level elasticsearch.net library as much as possible.

Why not copy the Bulkresponse and jsonconverter from NEST over to this project ? Those are well tested and used by the community.

I removed NEST and changed the parsing to use dynamics + merge with DEV.

@Lanoli  Are there any plans to get these changes into master?

@mivano ,

@mivano any chance to have such feature merged into master?
I have few point how to improve this PR.

remove custom created id in at sink, since items array order is same as request items (https://www.elastic.co/guide/en/elasticsearch/guide/current/bulk.html)
Add same code for not durable sink
expose error event to user code via callback or event (in ElasticsearchSinkOptions). This will helpul if you have mapping errors ( like "failed to parse [fields.LogId]" expected string got object). so users can log them back into elasticsearch.

If you don't mind i can create pull requests with my changes.

I merged your changes and dev into this branch: https://github.com/serilog/serilog-sinks-elasticsearch/tree/Lanoli-dev
I also added some other improvements that should help with error detection and recovery. I m not completely satisfied with it yet, so please have a look.
I also added a sample project and a docker compose file to set up an environment.
Regarding your points:

Yes I think that is not needed, see also my implementation in https://github.com/serilog/serilog-sinks-elasticsearch/blob/0c9bdd35e2aa475b4c84ca1cd7d4286c4c6be76a/src/Serilog.Sinks.Elasticsearch/Sinks/ElasticSearch/ElasticSearchSink.cs#L63
Although I like the ability for the durable sink, it adds duplication which should not be there.
I added this option: https://github.com/serilog/serilog-sinks-elasticsearch/blob/0c9bdd35e2aa475b4c84ca1cd7d4286c4c6be76a/src/Serilog.Sinks.Elasticsearch/Sinks/ElasticSearch/ElasticsearchSinkOptions.cs#L236-L252 which allows you to act on issues.

So please have a look and give your thoughts, thanks!

You meed to update durable sink to respect EmitEventFailure option.
For example from your test applcation

it this case FailureSink will be not called and it's not clear for sink clients.
For durable sink you can log into failure sink logevent with payload and error.
Rest is good. 👍

Thanks for the review. I will make the changes and do a PR.

See #127


Adding a policy.html and policy.css so that Policy link works in the footer section

Adding a policy.html and policy.css so that the Policy link works in the footer section as there is no policy section in the website.
@RIKI-05 please assign me the task of adding this to the repository under the Hactober fest tag.

@devwithsubhrajit2002  sure you can go ahead with the issue


back navigation

I put cursor at a function call and would like to find out its implementation so i press Ctrl+I
Once I peek at its implementation I would like to go back to the previous place. How can I do this? Seems there is no shortcut at the moment.

Thank you, this functionality is actually in the works. But since I'm a bit busy at the moment, it will probably take a week or so.

I guess it makes most sense to use alt-arrow left/right for this navigation (like in a web browser).

I am fine though I'm little bit used to Vim style, like Ctrl+O.

I'll make it customisable in preferences.

In emacs we have for instance M-d, or  C-d. In vim there are similar actions. Most of these edit-jumps` can be configured through the gtk settings. #163 should be looked into some more I guess. @eidheim Maybe we should provide emacs and vim settings, and a switch in config.json?

@zalox Yeah, someone should look into the NeoVim integration, or at least create a simple example that we could base such an integration on. I do not have the motivation for doing this, especially with lacking documentation on the NeoVim side, but could help complete the integration. Not sure about emacs-mode though, or at least, it seems more people are asking for Vim mode, and we should probably focus on that first.
This discussion is somewhat unrelated to the feature request though.


Update Boblogistics to 0.16.13

Push from 0.16.7 to 0.16.13 (English)
French translation from 0.16.13 (English)

Please do not overwrite my previous update (commit #174) with this.
Notably, the ENTITY strings in this file are wrong: French uses suffixes, not prefixes.

I close this pull request and open just one for English file version push


Type hint better

I expect type of parameters and returned value will be specific,
Now I modified the file in python_stubs to realized it, but it is a not good way.
How to do it better ?
Expected behaviour

Actual behaviour

Steps to reproduce

OpenCV team is working on Python stubs with static types, but it's not there yet. I cannot give you any ETA for the feature, please follow release notes.

@asmorkalov we can close this issue since mentioned PR is merged

Sure


Support for telegram groups

appoint central/admin entity for configuration
ensure all functionality works in group context

This is mainly works now, try at https://t.me/gienjibot


Got cups-filters 1.14.0 and cups 2.2.3 working in Pyro.

Got meta-printing bitbaking in Pyro and also upgraded to the latest cups-filters and cups.
I added DIRFILES = "1" to cups-filters as I wanted to have both cups and cups-filters in my built image and this is needed so there isn't RPM package ownership issues.

Never mind, I pulled in our pyro branch instead.

@sarnold awesome thanks!


feat: configs update & new security information

move bug bounty inside security folder
add list of known bugs
add vulnerability disclosure
add security approach
rename and add links
add postmortem
add config
edit postmortem doc
additional fixes to postmortem doc
fix: tiny configuration fix (to help running the checks)
style: markdownlint config changed
style: spelling exceptions added
style: dead-links fixed
style: reformatting

:tada: This PR is included in version 2.4.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


⚠ GLDDNS Server (ns2.glddns.com) has degraded performance

In e659ff8, GLDDNS Server (ns2.glddns.com) (ns2.glddns.com) experienced degraded performance:

HTTP code: 200
Response time: 329 ms

Resolved: GLDDNS Server (ns2.glddns.com) performance has improved in 9a7ed79 after 7 minutes.


antibody: 4.2.0 -> 4.3.1

Semi-automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/getantibody/antibody/releases.
meta.description for antibody is: "The fastest shell plugin manager"
meta.homepage for antibody is: "https://github.com/getantibody/antibody"
Updates performed:

Golang update
Quoted meta.homepage for RFC 45

Release on GitHub
Compare changes on GitHub

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

directory tree listing: https://gist.github.com/bdc9e6d552cde8c41b3bc4ce05aa972b

du listing: https://gist.github.com/b59986a1a400f2c61a4802b8ba6f5a7b

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)
1 package rebuild(s)
1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
1 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)
First fifty rebuilds by attrpath
antibody

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/4sjvy5vk716wp78wwmrywshhbphb4dxq-antibody-4.3.1 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A antibody https://github.com/r-ryantm/nixpkgs/archive/fb08fa0063cebdfa48f54b6fdefe3f6206c67d3e.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/4sjvy5vk716wp78wwmrywshhbphb4dxq-antibody-4.3.1
ls -la /nix/store/4sjvy5vk716wp78wwmrywshhbphb4dxq-antibody-4.3.1/bin

cc @filalex77 @worldofpeace @kalbasit for testing.

@GrahamcOfBorg eval

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/steps-towards-even-more-pr-automation/5634/11


notified lines are emitted to stderr, not stdout

Notify version:

% notify -version

             __  _ ___
  ___  ___  / /_(_) _/_ __
 / _ \/ _ \/ __/ / _/ // /
/_//_/\___/\__/_/_/ \_, / v1.0.1
                   /___/

                projectdiscovery.io

Use with caution. You are responsible for your actions
Developers assume no liability and are not responsible for any misuse or damage.
[INF] Current Version: 1.0.1

Current Behavior:

notify is emitting notified lines to stderr
Demo:
% notify -i /etc/issue >/dev/null

             __  _ ___
  ___  ___  / /_(_) _/_ __
 / _ \/ _ \/ __/ / _/ // /
/_//_/\___/\__/_/_/ \_, / v1.0.1
                   /___/

                projectdiscovery.io

Use with caution. You are responsible for your actions
Developers assume no liability and are not responsible for any misuse or damage.
Using default provider config: /home/justin/.config/notify/provider-config.yaml
Debian GNU/Linux 11 \n \l

I expect to see "Debian GNU/Linux 11 \n \l" thrown away because stdout is redirected to /dev/null. Instead it's being printed, because it's on stderr.
% outfile=$(mktemp)

% notify -i /etc/issue 2>$outfile

% cat $outfile

             __  _ ___
  ___  ___  / /_(_) _/_ __
 / _ \/ _ \/ __/ / _/ // /
/_//_/\___/\__/_/_/ \_, / v1.0.1
                   /___/

                projectdiscovery.io

Use with caution. You are responsible for your actions
Developers assume no liability and are not responsible for any misuse or damage.
Using default provider config: /home/justin/.config/notify/provider-config.yaml
Debian GNU/Linux 11 \n \l

Furthermore, suppressing the banner using -silent also suppresses notified lines:
% notify -i /etc/issue -silent

Expected Behavior:

Steps To Reproduce:

I expect to be able to do:
% do_work | notify | do_more_work

I essentially expect notify to take stdin, send notifications, and emit the lines back to stdout for further processing, ala httpx, nuclei, dnsx etc.
I also expect to be able to do -silent to suppress the banner without suppressing the output
Perhaps I'm misunderstanding the intent of notify though, and there is some reason why emitting its notified lines to stderr instead of stdout is preferred.
Anything else:

The notified line printer is doing format expansion too
% echo '%s' | ./notify

             __  _ ___
  ___  ___  / /_(_) _/_ __
 / _ \/ _ \/ __/ / _/ // /
/_//_/\___/\__/_/_/ \_, / v1.0.1
                   /___/

                projectdiscovery.io

Use with caution. You are responsible for your actions
Developers assume no liability and are not responsible for any misuse or damage.
Using default provider config: /home/justin/.config/notify/provider-config.yaml
%!s(MISSING)

I tried to fix this via #130 but it got backed out at the last minute
The format string bug is now fixed, but -silent is still dropping notified lines
As of 173f91472fd73c410969d063776ff1a7224fd6d1:
% ./notify -i /etc/issue

             __  _ ___
  ___  ___  / /_(_) _/_ __
 / _ \/ _ \/ __/ / _/ // /
/_//_/\___/\__/_/_/ \_, / v1.0.2-dev
                   /___/

                projectdiscovery.io

Use with caution. You are responsible for your actions
Developers assume no liability and are not responsible for any misuse or damage.
Using default provider config: /home/justin/.config/notify/provider-config.yaml
Debian GNU/Linux 10 \n \l

% ./notify -i /etc/issue -silent

(No output is given for -silent)