Added function for optimizing phase-shift gates

Summary
Added the function optimize_phase_shift_gates.py in qiskit-terra/qiskit/transpiler/passes/
This is a pass for merging and canceling phase-shift gates like u1(theta), T-gates, S-gates and Z-gates and thereby optimizing the size of a DAGCircuit.
Details and comments
Hi there,
my name is Samuel Bosch, and I am a master's student from EPFL in Switzerland. I work in the group of prof. Giovanni de Micheli on Quantum Computing. My supervisors are dr. Mathias Soeken and Bruno Schmitt. I started programming in Qiskit quite recently and would like to start contributing to the Qiskit library on a regular basis. This function is based on the following paper:

Amy, Matthew, Dmitri Maslov, and Michele Mosca. "Polynomial-time T-depth optimization of Clifford+ T circuits via matroid partitioning." IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 33.10 (2014): 1476-1489.

In addition to the functionality described in the paper, I further optimized the circuits by applying the following technique: Whenever there are several phase-shift gates, which can be merged into one phase-shift gate, there exist several possible locations within the circuit, where the new gate could be placed. The algorithms tests all possible locations, runs a cx-cancellation on the circuit for every possible location, and then measures the total number of gates for every possible location. The final location is chosen to be the one, where the circuit has the lowest number of gates. If the number of gates is the same for several possible locations, the location with the lowest circuit-depth is chosen.
The function was tested extensively, by generating large random circuits, with many randomly chosen gates at random locations. The equivalence of the original and optimized circuits was verified by calculating and comparing the unitary operators corresponding to those two circuits.
I kindly ask you to review the code and let me know if you would like me to make any changes to it. My E-Mail address is<EMAIL_ADDRESS>Thank you and kind regards,
Samuel Bosch

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

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

Hi there,
Sorry about the delay! I fixed the formatting and implemented the requested changes. Let me know if anything else is needed.
Best regards, Samuel

Hello again,
for some reason one of the tests starts failing, even though I just merged the master branch into phase_opt to keep it up-to-date. My code got a rating of 10.00/10, and I am unable to find a mistake on my side. Could someone please have a look, and take care of the pull request?
Thank you!
Samuel

Hi @BoschSamuel,
I just made a commit (https://github.com/Qiskit/qiskit-terra/pull/2229/commits/7465a361c250882a342937a5323179d714090e93) in the hopes of helping breaking the import cycles - in the past days there were some tweaks to the linter configuration that made it not check for cycles temporarily, and we reverted that change between your latest two merge commits (that explains why it's appearing now!).
For reference, when something similar happens, you can check the logs in the CI (in the red cross - eventually you can reach an output like this, which you hopefully should also be able to reproduce by executing make lint on your local machine. In this case, it was mostly caused by the import qiskit directive - our import hierarchy is a bit convoluted, and in general a good aproach is to try to import from specific modules instead.
I'll keep an eye to see if the cycles reappear, as travis is a bit overloaded at the moment, but hopefully that will do the trick! As usual, remember to git pull to fetch the changes locally, as I basically committed directly to your branch for convenience.

Hi @diego-plan9 ,
thank you for fixing the problem!
Best, Samuel

Hey,
it looks like some recent changes to qiskit now cause this algorithm to fail. I guess it is just a minor issue, but it would be good to know if there is an easy fix to this problem.
Best,
Samuel
    b'  File "/home/travis/build/Qiskit/qiskit-terra/qiskit/transpiler/passes/optimize_phase_shift_gates.py", line 77, in run'
    b'    circuit_length_min = len(dag.multi_graph.nodes) + 1'
    b"AttributeError: 'DAGCircuit' object has no attribute 'multi_graph'"

Hi, the multigraph has been moved to a private variable dag._multigraph. There is also a function dag.node_counter() which may do what you need.

Hey everyone, sadly due to my current professional situation, I won't be able to look into this before February 2020.  Sorry about that! You can put this on hold until then.
Best,
Samuel

Any news?

Since there hasn't been an update on this in > 1 year and there are some merge conflicts and outstanding review feedback that needs to be addressed I'm going to close this as stale. But, please feel free to reopen this if you have the bandwidth to update it and fix the issues.


More logical matchers

Currently one has to to write to test boolean values:
assert_that!(true, is(equal_to(true)));
assert_that!(false, is(equal_to(false)));

what do you think about having is_true and is_false matchers?:
assert_that!(true, is_true());
assert_that(false, if_false());

I thought about that as well as that's a use case I had a lot, too. Ideally I'd like to have it as
assert_that!(true, is(true))

I'm not entirely sure if/how that's possible but we could go with is_true() and is_false() in the mean time.
Unfortunately, I don't have the time to implement this right now, but I would welcome pull requests. 😁

I'll give it a try once I have some spare time: might be two weeks from now :D


Error page should reload the page instead of returning the user back home

this should be easily handled by changing the button in error.tsx from an href to onClick={() => router.reload()}
additionally the copy key should be changed from back_safety to reload

This issue is addressed by #449, and is successfully merged! 🚀


[DNM] changefeed(ticdc): refactor new changefeed method attach the reactor directly

What problem does this PR solve?

Issue Number: close #xxx
What is changed and how it works?
Check List
Tests

Unit test
Integration test
Manual test (add detailed scripts or steps below)
No code

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
Please refer to [Release Notes Language Style Guide](https://pingcap.github.io/tidb-dev-guide/contribute-to-tidb/release-notes-style-guide.html) to write a quality release note.

If you don't think this PR needs a release note then fill it with `None`.

/run-all-tests

/run-all-tests

Codecov Report

Merging #6740 (2a25636) into master (2ea67ba) will increase coverage by 0.1279%.
The diff coverage is 67.7444%.

Flag
Coverage Δ

cdc
65.9763% <62.3390%> (+0.1082%)
:arrow_up:

dm
52.0914% <72.9729%> (+0.0497%)
:arrow_up:

engine
62.7835% <85.4961%> (+0.2474%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.
@@               Coverage Diff                @@
##             master      #6740        +/-   ##
================================================
+ Coverage   59.2138%   59.3417%   +0.1279%
================================================
  Files           780        783         +3
  Lines         88405      89116       +711
================================================
+ Hits          52348      52883       +535
- Misses        31415      31555       +140
- Partials       4642       4678        +36

/merge

/run-verify-ci

/run-leak-test
/run-integration-test

/run-dm-compatibility-test


access to newer abilities in previous levels

Hi, currently I taking 'baby-steps' on https://warriorjs.com.
I've noticed that when I switch the level (via dropdown) back to "1", the list of available abilities in the readme contains all abilities gained during the game. The warrior also gets an access to them. Is it intentional?

Hi! It's not intentional, unless you have already completed level 9 and entered "Epic mode" (check if you have an "Epic mode" checkbox below the level dropdown). Epic mode runs your epic code from level 1 to level 9 without stop, so you have all the abilities available.

Just completed baby-steps' level 9 and everything seems fine if I go back to other levels while not in Epic Mode. Toggling between Epic Mode correctly toggles between the level's original readme and the Epic Mode's one. Same thing for the underlying abilities.

@rbtbar This ended up being a bug, which was already fixed.
@jpparent Thanks for your report!


Enhancements to Keras Model Visualization: A Complete Guide using Artificial Intelligence

1. Summary:
This pull request includes major improvements to the Keras model visualization script with the inclusion of new AI based features that enhance the level of detail in model architecture visualization. New features include new parameters, for example, showing layer activations, data types, and trainable parameters, as well as an upgraded visualization feature for different Keras models including Sequential, Functional, Subclassed, Nested Functional, and models with splits and merges. Further, the updates contain new visualization output files that give more information about model architectures.
2. Related Issues:
The additions pertain to the problem of not being able to visualize certain aspects of the Keras models thus making it hard for users to comprehend and fine-tune their model topologies. These new features assist in giving a more detailed and understandable view of the model constituents thus enhancing model assessment and tracking.
3. Discussions:
The major concern was the lack of sufficient advanced visualization techniques that can help in getting more information about Keras model architectures. This was regarded as an essential move towards the efficient analysis of the models since the application of the AI-driven features was made. Another general agreement was made regarding the need to provide support for a variety of model types and make the visual output informative, yet comprehensible to the users.
4. QA Instructions:

Try out the new visualization parameters with various kinds of Keras model including Sequential, Functional, Subclassed, Nested Functional and models with Split and Merge.
Ensure that the output files depict the model in the right shapes and activations, with the right data types, and having the right trainable parameters.
Make sure that the new AI advancements give the user easy to understand and meaningful information about the model architectures.
Ensure that there are no errors in the visualizations especially in the more complicated models such as the Nested Functional models.

5. Merge Plan:
Once the QA testing and validation is done, this branch will be merged into the master branch. This merge shall be done in such a way that the all the upgrades will be well incorporated such a way that the other operations are not affected.
6. Motivation and Context:
The reason for these updates is to enhance the usefulness and functionality of the Keras visualization of models. These features of the script, powered by intelligence from Artificial Intelligence, enhance the visual aspect of the script thus making it easier to understand and improve model architectures. These are especially useful for advanced models as it helps the users to identify how the data is flowing through the model and which layer plays what role in the development of the model.
7. Types of Changes:

New Feature: Parameters for model visualize through AI Including layer activations, data types, trainable parameters.
Enhancement: Enhanced visualization functionalities for a number of Keras models, these include Sequential models, Functional models, Subclassed models, Nested Functional models, and models that may have splits and merges.
**Output Files:New output files have been generated to enable viewers to get a better understanding of various model types and structures.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 57.68%. Comparing base (f4a4725) to head (1286009).
Report is 28 commits behind head on master.

:exclamation:  There is a different number of reports uploaded between BASE (f4a4725) and HEAD (1286009). Click for more details.
HEAD has 6 uploads less than BASE

Flag
BASE (f4a4725)
HEAD (1286009)

keras
4
1

keras-torch
1
0

keras-tensorflow
1
0

keras-jax
1
0

Additional details and impacted files
@@             Coverage Diff             @@
##           master   #20211       +/-   ##
===========================================
- Coverage   79.35%   57.68%   -21.68%
===========================================
  Files         501      501
  Lines       47311    47380       +69
  Branches     8689     8706       +17
===========================================
- Hits        37542    27329    -10213
- Misses       8014    18345    +10331
+ Partials     1755     1706       -49

Flag
Coverage Δ

keras
57.68% <ø> (-21.53%)
:arrow_down:

keras-jax
?

keras-numpy
57.68% <ø> (+0.09%)
:arrow_up:

keras-tensorflow
?

keras-torch
?

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

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


Error when executing RustRunnable or RustDebuggable

I have the following error:
E5108: Error executing lua ...plugged/rust-tools.nvim/lua/rust-tools/runnables.lua:39:
  bad argument #1 to 'ipairs' (table expected, got nil)

I am still running on the linux distro where the lua jit compiler does not support goto statements, maybe another lua compat trouble?

From what I see, the bug is fixed by adding
if (args.cargoExtraArgs ~= nil) then
...
end

around blocks that access to cargoExtraArgs field

There is probably something else wrong, maybe when rust_analyzer is set up. I do not see inlayHints too...

Are you setting up rust_analyzer yourself? if so then don't do that since rust-tools does that automatically

I did it, I have removed it, but it does not change the problem.
Inside a cargo project when I run lua print(vim.inspect(vim.lsp.buf_get_clients()))
I can see an item named commands = { RustDebuggables = { <function 3>},...} so I
think rust-analyzer is configured by rust-tools.
The .cache/nvim/lsp.log is filled of error messages containing "rps" "rusta-analyzer" "stderr" ... ide::inlay_hints::...", the problem probably comes from rust-analyzer.

The bug was due to an old version of rust-analyzer i installed myself 1 year ago in a directory that was in my PATH before .rustup/../bin.
I beg your pardon to have taken your time!! Thank you very much to provide us rust-tool.


Incoming ringing not showing when the release apk build and tried

I tried this package and its working perfectly when I build the flutter project and tried. But just in case I tried building an apk and intalled on my phone and tried and the ringing notification didnt work as it worked on the debug mode

See https://github.com/firebase/flutterfire/blob/master/docs/cloud-messaging/receive.md#apple-platforms-and-android – after flutter 3.3.0, you need to annotate the background message handler with @pragma('vm:entry-point')

@fbcouch Nice, works for me

I have updated this in the README.md


Illustration: Add all Illustrations from SLDS 2.8

Add all SVGs to library
https://www.lightningdesignsystem.com/components/illustration/

I will take this up.

Having an issue with SLDS classes reaching our imported SVG file shadow-DOM. We're trying to avoid including all SVG markup directly within the library, so trying to figure out a workaround. See:
https://tympanus.net/codrops/2015/07/16/styling-svg-use-content-css/

Also see https://github.com/svg/svgo/issues/296 as a potential solution.

@kevinparkerson Since this has become more complex than we originally thought. For this sprint, I'd like to propose moving Illustration back into prototype and adding comments around incompatibility with SLDS's updated SVG markup. That way, consumers know it's an issue and we can warn them before they use try to use it and it doesn't work.
What do you think?


Will there be a free Win10 Container Runtime?

With the recent announcement that Docker Desktop will cost at least $5/month, are there any plans to make a free replacement available for development on Windows 10?

To clarify from Docker's announcement: Docker Desktop remains free for small businesses (fewer than 250 employees AND less than $10 million in annual revenue), personal use, education, and non-commercial open source projects.
I'll let Taylor and Siddique chime in, but in my view, there are options for customers who don't want to pay for Docker Desktop, such as Moby, right?

from this page (https://docs.docker.com/engine/install/binaries/) I found a link to a very vanilla Windows Docker engine download.  It does not contain docker-compose but otherwise it should suffice for folks that use Windows containers on Windows.
https://download.docker.com/win/static/stable/x86_64/

@naikrovek, thank you for the link to the windows binaries.
I removed Docker Desktop from my laptop and downloaded the latest version at the link you provided.  After doing that, I was able to step through pulling and running a container after I started dockerd.exe.
Does anyone know if simply downloading the binaries will work on a machine that hasn't previously had Docker Desktop installed on it will work?

@MarkIannucci the binaries you just tried should work fine on a "virgin" machine.  Tthe magic that Docker Desktop provides is all Linux and GUI stuff.

Thanks @naikrovek! I quickly wrote it down here for anyone needing a simple guide: https://lippertmarkus.com/2021/09/04/containers-without-docker-desktop/

I'd like to announce Stevedore project. It aims to provide a free and convenient way to use Docker on Windows (both client and server). Currently, it only supports Windows containers. Stevedore is distributed as an MSI installer. Chocolatey.org package is planned but not there yet.
Installation

Download MSI installer
Double-click on it
Next-next-next
Reboot your computer
Profit! docker command is now available on your PATH and dockerd daemon is already running.

Closing. For further discussion please see #186


readme: Update submission instructions to indicate new commits will move your PR to the back of the queue.

This really isn't official, and also isn't true for all cases, so I don't support adding this to the README

This really isn't official, and also isn't true for all cases, so I don't support adding this to the README

It could be worth saying "Generally, pushing new commits will..." or "Pushing new commits may...", just as a helpful disclaimer without claiming it to be an absolute fact.

It's really up to the reviewer and we try to give priority to things that have been in queue longer and/or have addressed feedback recently. We don't want to discourage people from updating their plugins if they are sitting on code that should be going in, or if they forgot something.


rekor: Set storageClass types to string in schema

Summary

This change allows the user to specify non-null values for storageClass for both MySQL and Rekor. Without this change, a schema validation error is thrown when any non-null value is supplied for either of these storageClass variables.
Ticket Link

Fixes #31
Release Note

Fixed validation of non-default (non-null) storageClass values for the Rekor chart

I noticed the linter failures. It seems like null and string are incompatible types and null is not valid as a string. I tested locally replacing all the default null values of storageClass with an empty string ("") and that appears to work. I'm not very familiar with the schema validations component of Helm, but if someone could confirm that my understanding makes sense, I'm happy to update this PR with those changes.
However, there is a potential user impact here. After changing the null to "", if someone were explicitly passing null for storageClass in their values.yaml, it would fail after taking this chart update due to schema validation. Is that enough to bump the major version number on the chart or not a likely issue?

@syphr42 @cpanato As an FYI, I have this queued up to work on Friday evening

@syphr42 JSON Schema types can support multiple values. If you specify both string and null as follows, validation should pass.
"type": [
    "string",
    "null"
],

Also, be sure to rebase from main as https://github.com/sigstore/helm-charts/pull/27 was recently merged

@sabre1041 This should be good now. The linter was successful on a local run and deployment to a test k8s cluster with storageClass values set to something other than null works.


replace network_handle instance with boxed api trait

Describe the feature
This currently requires an instance of networkhandle:
https://github.com/paradigmxyz/reth/blob/7401f46790f46c87cb1040f2292e38b88e14a07e/crates/node/events/src/node.rs#L39-L40
which is only used to get the current number of connected peers
https://github.com/paradigmxyz/reth/blob/7401f46790f46c87cb1040f2292e38b88e14a07e/crates/node/events/src/node.rs#L74-L74
which is called via the PeersInfo trait, we can simply use a box here to get rid of the handle instance
TODO
replace
https://github.com/paradigmxyz/reth/blob/7401f46790f46c87cb1040f2292e38b88e14a07e/crates/node/events/src/node.rs#L39-L40
with Option<Box<dyn PeersInfo>>
Additional context
No response

I'd like to take on this task


Default project names shouldn't have spaces in them

Right now the suggested project names have spaces in them like this:
PowerShell Module Project1
PowerShell Script Project1
I would suggest to use this instead:
PowerShellModule1
PowerShellScript1
This is controlled in the .vstemplate file, like this:
    <DefaultName>PowerShellModule</DefaultName>
    <ProvideDefaultName>true</ProvideDefaultName>

Thanks!  We'll get this fixed.


iOS 12 svg as background getting Origin null

My svg's as background-image in css are not loading
I used
<preference name="InterceptRemoteRequests" value="all" />
<plugin name="cordova-plugin-wkwebview-engine" spec="^1.1.4" />
<plugin name="cordova-plugin-wkwebview-file-xhr" spec="^2.1.1" />

Still getting not allowed due to Origin null over file:///var/containers/Bundle/Application/....
cordova iOS 5.0.0
cordova 7.1
Any help appreciated

As a work around, I've handled my svg's in css as url('data:image/svg...');

The plug-in can only intercept xMLHttpRequest and fetch API. It's not able to intercept resources resolved in html but the browser such as images. The standard rules still apply for these. They must be located under the context root (www folder in application bundle)

My understanding is that it was handling all calls made to file://
"The default behavior of WKWebView is to raise a cross origin exception when loading files from the main bundle using the file protocol - "file://". This plugin works around this shortcoming by loading files via native code if the web view's current location has "file" protocol and the target URL passed to the open method of the XMLHttpRequest is relative. "
My SVGs all load fine but the ones specified in CSS files which are of course inside www as well as the SVGs. When the CSS file is applied, the request is made to load the SVG (as background-image) to file:///var/containers/Bundle/Application/[...]/mySVG.svg and then I get the "not allowed due to Origin null".

The plug will not override how the browser resolves CSS and HTML resources. It only intercept xhr (https://en.m.wikipedia.org/wiki/XMLHttpRequest) traffic. Xhr is handled within the JavaScript context. Xhr can load files from the application bundle via the file:// protocol or remote resources. It can't intercept how the webview resolves resources outside xhr.

OK thanks.

@globules-io Please did you ever resolve this issue? I am having the same problem.

@lehizojie yes, via https://github.com/globules-io/cordova-plugin-wkwebviewxhrfix

@lehizojie yes, via https://github.com/globules-io/cordova-plugin-wkwebviewxhrfix

Thanks!!! This worked.

Use this plugin https://github.com/communico/cordova-httpd to start a local server inside app
cordova.plugins.CorHttpd.startServer({
    'www_root': cordova.file.dataDirectory.replace( 'file://', '' ),
    'port': 8080,
    'localhost_only': false
}, function( url ){
    // eg. http://<IP_ADDRESS>:8080/
    // if localhost_only is true，then url is http://<IP_ADDRESS>:8080/
    console.log(url);
}, function( error ){
    console.log(error);
});

For example, if a file path looks like：
file:///data/user/0/com.pushsoft.aio5app/files/image/7c8f2985-01b3-4fd2-ad7b-f39812a920a2
you can use this url to show the image：
http://<IP_ADDRESS>:8080/image/7c8f2985-01b3-4fd2-ad7b-f39812a920a2

cordova-ios +6 compatible
https://github.com/globules-io/cordova-plugin-ios-xhr


[firebase_messaging] The application cannot be created when I add the Aplication.java

I want to use firebase notifications in my application. I'm adding Aplication.java for this. After adding this file, the word registry is underlined in red.
GeneratedPluginRegistrant.registerWith(**registry**);
and the application gives built-in error.
and the application gives built-in error.
Launching lib\main.dart on KFAUWI in debug mode...
Running Gradle task 'assembleDebug'...
D:\Desktop\notification_app\android\app\src\main\kotlin\com\example\notification_app\Application.java:18: error: incompatible types: PluginRegistry cannot be converted to FlutterEngine
        GeneratedPluginRegistrant.registerWith(registry);
                                               ^
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
1 error

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BU�LD FAILED in 1m 15s
Finished with error: Gradle task assembleDebug failed with exit code 1

Hi @SinanKanmaz
could you please provide your updated  flutter doctor -v
and your flutter build --verbose ?
Also, to better address the issue, would be helpful
if you could post a minimal code sample to reproduce the problem
Thank you

I have the same issue. Adding this meta-data tag to AndroidManifest.xml:
<manifest>
     <application>
        [...]
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
    </application>
</manifest>

Above code will make the flutter engine to generate the following GeneratedPluginRegistrant.java:
package io.flutter.plugins;

import androidx.annotation.Keep;
import androidx.annotation.NonNull;
import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.embedding.engine.plugins.shim.ShimPluginRegistry;

/**
 * Generated file. Do not edit.
 * This file is generated by the Flutter tool based on the
 * plugins that support the Android platform.
 */
@Keep
public final class GeneratedPluginRegistrant {
  public static void registerWith(@NonNull FlutterEngine flutterEngine) {
    ShimPluginRegistry shimPluginRegistry = new ShimPluginRegistry(flutterEngine);
      io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin.registerWith(shimPluginRegistry.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"));
      io.flutter.plugins.imagepicker.ImagePickerPlugin.registerWith(shimPluginRegistry.registrarFor("io.flutter.plugins.imagepicker.ImagePickerPlugin"));
      com.lyokone.location.LocationPlugin.registerWith(shimPluginRegistry.registrarFor("com.lyokone.location.LocationPlugin"));
      io.flutter.plugins.pathprovider.PathProviderPlugin.registerWith(shimPluginRegistry.registrarFor("io.flutter.plugins.pathprovider.PathProviderPlugin"));
    flutterEngine.getPlugins().add(new io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin());
      com.tekartik.sqflite.SqflitePlugin.registerWith(shimPluginRegistry.registrarFor("com.tekartik.sqflite.SqflitePlugin"));
  }
}

which obviously takes a parameter of type FlutterEngine. But following the firebase_messaging tutorial, the Application.java should look like this:
 public class Application extends FlutterApplication implements PluginRegistrantCallback {
   @Override
   public void onCreate() {
     super.onCreate();
     FlutterFirebaseMessagingService.setPluginRegistrant(this);
   }

   @Override
   public void registerWith(PluginRegistry registry) {
     GeneratedPluginRegistrant.registerWith(registry);
   }
 }

And the problem is that PluginRegistry  cannot be used as FlutterEngine.
Currently i am commenting out the line with error but i am expecting to find a work around this problem.
Thanks.

I was applying flutter updates immediately. When I encountered this problem, I uninstalled and reinstalled the flutter SDK and resolved the problem. Because the previous version and the new version are different.
When I get this problem that the flutter doctor -v
`D:\Desktop\eski flutter\flutter>flutter doctor -v
[√] Flutter (Channel master, v1.12.5-pre.45, on Microsoft Windows [Version 10.0.18362.476], locale tr-TR)
• Flutter version 1.12.5-pre.45 at D:\Desktop\eski flutter\flutter
• Framework revision 73c32545b7 (6 days ago), 2019-11-20 11:02:35 +0000
• Engine revision 176f563296
• Dart version 2.7.0
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
• Android SDK at C:\Users\Zeynep\AppData\Local\Android\sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-29, build-tools 29.0.2
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
• All Android licenses accepted.
[√] Chrome - develop for the web
• Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
[√] Android Studio (version 3.5)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 41.1.2
• Dart plugin version 191.8593
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
[√] VS Code (version 1.39.2)
• VS Code at C:\Users\Zeynep\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.5.1
[√] Connected device (3 available)
• KFAUWI     • G0W0MA0772451FT7 • android-arm    • Android 5.1.1 (API 22)
• Chrome     • chrome           • web-javascript • Google Chrome 78.0.3904.108
• Web Server • web-server       • web-javascript • Flutter Tools
• No issues found!`
`C:\Users\Zeynep>flutter doctor -v
[√] Flutter (Channel stable, v1.9.1+hotfix.6, on Microsoft Windows [Version
10.0.18362.476], locale tr-TR)
• Flutter version 1.9.1+hotfix.6 at C:\flutter_src\flutter
• Framework revision 68587a0916 (2 months ago), 2019-09-13 19:46:58 -0700
• Engine revision b863200c37
• Dart version 2.5.0
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
• Android SDK at C:\Users\Zeynep\AppData\Local\Android\sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-29, build-tools 29.0.2
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
• All Android licenses accepted.
[√] Android Studio (version 3.5)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 41.1.2
• Dart plugin version 191.8593
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
[√] VS Code (version 1.39.2)
• VS Code at C:\Users\Zeynep\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.5.1
[√] Connected device (1 available)
• KFAUWI • G0W0MA0772451FT7 • android-arm • Android 5.1.1 (API 22)
• No issues found!`

Hi, I found the same problem and solved it like this
import io.flutter.app.FlutterApplication
import io.flutter.plugin.common.PluginRegistry
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback
import io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService
class MyApplication : FlutterApplication(), PluginRegistrantCallback {
override fun onCreate() {
super.onCreate()
FlutterFirebaseMessagingService.setPluginRegistrant(this)
}
override fun registerWith(registry: PluginRegistry) {//io.flutter.plugins.firebasemessaging
    FirebaseMessagingPlugin.registerWith(registry.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"));
}

}

Is @ReniDelonzek's solution a decent one?  It seems a bit hacky to call out a paritcular registrant by a particular string.
I've been fighting for most of the day to implement firebase messaging with Flutter and it's been one thing after another.  I don't know how implementing a google function on a google made framework could possibly be this difficult...

I have the same error, any solution?

I have put an alternative solution:
https://stackoverflow.com/questions/59446933/pluginregistry-cannot-be-converted-to-flutterengine/59490722#59490722

Hi, I found the same problem and solved it like this
import io.flutter.app.FlutterApplication
import io.flutter.plugin.common.PluginRegistry
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback
import io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService
`class MyApplication : FlutterApplication(), PluginRegistrantCallback {
override fun onCreate() {
super.onCreate()
FlutterFirebaseMessagingService.setPluginRegistrant(this)
}
override fun registerWith(registry: PluginRegistry) {

FirebaseMessagingPlugin.registerWith(registry.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"));
}
}`

This work for me! please update documentation.

Any news on this?

I have put an alternative solution:
https://stackoverflow.com/questions/59446933/pluginregistry-cannot-be-converted-to-flutterengine/59490722#59490722

This works perfectly for me, just follow the steps and do: flutter clean before compile.

Hi @SinanKanmaz
does @DomingoMG solution works for you?
thank you

@iapicca
In the link are the steps to follow.
https://stackoverflow.com/questions/59446933/pluginregistry-cannot-be-converted-to-flutterengine/59490722#59490722
You just have to create the file FirebaseCloudMessagingPluginRegistrant.java
Y
SendNotification.dart
Finally you must modify these two files:
MyApplication.java
AndroidManifest.xml

Please see https://github.com/FirebaseExtended/flutterfire/issues/1467#issuecomment-589575755 for solution. Closing.

package your.package.identifier;

import io.flutter.app.FlutterApplication;
import io.flutter.plugin.common.PluginRegistry;
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService;
import io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin;

public class MyApplication extends FlutterApplication implements PluginRegistry.PluginRegistrantCallback {

    @Override
    public void onCreate() {
        super.onCreate();
        FlutterFirebaseMessagingService.setPluginRegistrant(this);
    }

    @Override
    public void registerWith(PluginRegistry registry) {
       // I've only had to add this line to make it work FirebaseMessagingPlugin.registerWith(registry.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"));
    }
}


Call to function returning never can not be used to narrow type

TypeScript Version:  2.3.2
A function that never returns (return type never) can not be used in a type guard to narrow the type after the branch.
Code
class Thing { };

function diverges(): never {
    throw new Error('Never returns');
}

function problem(thing: Thing | null): Thing {
    if (thing === null) {
        diverges();
        // throw new Error('Works!');
    }

    return thing; // fails type check
}

Expected behavior:
Replacing the call to diverges() with a return or throw statement causes thing to be marked as type Thing after the branch, as code will never flow from the if (thing === null) branch to the code below. I expected a call to a function with return type never to achieve the same, as this should indicate that the call never returns.
Actual behavior:
The code does not compile due to an error, as the type of thing is not narrowed to Thing:
"Type 'Thing | null' is not assignable to type 'Thing'. Type 'null' is not assignable to type 'Thing'."

I suspect this won't happen, because it is possible to return a never-type value, which means it's possible for that function to complete and return and control to move on down to return thing;.

Duplicate #12825. The recommended workaround is to write return diverges();

I suspect this won't happen, because it is possible to return a never-type value

The intent of never is that it shouldn't be possible.

Sorry, must have missed that one in my search. Thanks for the explanation!


Is there a way to translate the bot?

I would translate this terrific bot but i do not know where find strings to do it, can anyone help me?
Thanks :)

There currently isn't an easy method of editing the bot's strings, however there is an open pull request for this: #287

#115


Admin account with limited access to Settings page and sections and prevent entity_id change

Hello everyone, i would need to keep admin account for some people of my family to make them able to:

create automations
rename voice assistant entities
activate or deactivate exposure to voice assistant of entities

at the same time, i dont want that:

make updates
access addons
access home assistant cloud
access dashboard page
access system page

is there any chance to limit access to this page sections?

moreover, i would like to prevent edit entity_id in this panel

Thanks Nemesis for your awesome work!

Hi @samuele2723,
kiosk-mode is a lovelace plugin, and it is intended, as its description states, to work only on lovelace dashboards.
What you are searching is out of the scope of this plugin because it will not work outside a lovelace dashboard.
On top of the previous, kiosk-mode is not an RBAC solution, and due to your specific use case of limiting certain admin users to do certain actions, you are searching for some kind of Role Based Access Control and that is something that should be provid by Home Assistant itself and not by a simply JavaScript plugin.
Regards


Add support for Teak Channel Category -> Android Notification Channel

The path should likely be:

Modify NotificationBuilder#getNotificationChannelId to also take a category id, category name, and category description
Add an overload that sets those to null and for null just do the current behavior

Things we need to know still:

What the server is going to send us

This was a duplicate of #113


[WIP] Added CI for multiple versions

We discussed compatibility of ExplainaBoard with multiple Python versions, and I think we should probably support at least 3.8, 3.9, and 3.10. This PR adds CI for these versions.

This is failing on:

A syntax error for Python 3.8
A dependency of a dependency (datalab -> p_tqdm) for Python 3.10

I'll try to fix these. We should decide if we need to support 3.8, but that's actually what I had on my computer so it's probably not old enough to completely rule out.


Please use ptsname_r instead of ptsname

Please use ptsname_r instead of ptsname since first is thread-safe.   Can you open a ticket with them or let me know if I can change the way pty.js is invoked.

I forgot why I reverted it but it caused some kind of regression. I'll look into it some more.


Body Parser error when i click login admin panel

When i click login in adminbro view, send me this error:
WrongArgumentError:
You probably used old body-parser middleware, which is not compatible
with @admin-bro/express. In order to make it work you will have to

move body-parser invocation after the admin bro setup like this:

const adminBro = new AdminBro()
const router = new buildRouter(adminBro)
app.use(adminBro.options.rootPath, router)
// body parser goes after the AdminBro router
app.use(bodyParser())

Upgrade body-parser to the latest version and use it like this:
app.use(bodyParser.json())

at C:\Users\RizoMan\node\directorio_clone\node_modules\@admin-bro\express\lib\buildAuthenticatedRouter.js:52:18
at Layer.handle [as handle_request] (C:\Users\RizoMan\node\directorio_clone\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (C:\Users\RizoMan\node\directorio_clone\node_modules\express\lib\router\index.js:317:13)
at C:\Users\RizoMan\node\directorio_clone\node_modules\express\lib\router\index.js:284:7
at Function.process_params (C:\Users\RizoMan\node\directorio_clone\node_modules\express\lib\router\index.js:335:12)
at next (C:\Users\RizoMan\node\directorio_clone\node_modules\express\lib\router\index.js:275:10)
at Function.handle (C:\Users\RizoMan\node\directorio_clone\node_modules\express\lib\router\index.js:174:3)
at router (C:\Users\RizoMan\node\directorio_clone\node_modules\express\lib\router\index.js:47:12)
at Layer.handle [as handle_request] (C:\Users\RizoMan\node\directorio_clone\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (C:\Users\RizoMan\node\directorio_clone\node_modules\express\lib\router\index.js:317:13)
at C:\Users\RizoMan\node\directorio_clone\node_modules\express\lib\router\index.js:284:7
at Function.process_params (C:\Users\RizoMan\node\directorio_clone\node_modules\express\lib\router\index.js:335:12)
at next (C:\Users\RizoMan\node\directorio_clone\node_modules\express\lib\router\index.js:275:10)
at C:\Users\RizoMan\node\directorio_clone\node_modules\express\lib\router\index.js:635:15
at next (C:\Users\RizoMan\node\directorio_clone\node_modules\express\lib\router\index.js:260:14)
at Function.handle (C:\Users\RizoMan\node\directorio_clone\node_modules\express\lib\router\index.js:174:3)

I do extactly they said but nothing changed.
this is my package.json
{
"name": "directorio_tuciudad",
"version": "0.0.1",
"description": "",
"main": "index.js",
"scripts": {
"dev": "nodemon src/index.js",
"start": "node --trace-warnings src/index.js"
},
"author": "Alejandro Suárez",
"license": "ISC",
"dependencies": {
"@admin-bro/express": "^3.1.0",
"@admin-bro/mongoose": "^1.1.0",
"admin-bro": "^3.4.0",
"bcryptjs": "^2.4.3",
"body-parser": "^1.19.0",
"connect-flash": "^0.1.1",
"cookie-parser": "^1.4.5",
"dotenv": "^8.2.0",
"express": "^4.17.1",
"express-formidable": "^1.2.0",
"express-handlebars": "^3.1.0",
"express-session": "^1.17.1",
"method-override": "^3.0.0",
"mongoose": "^5.10.9",
"morgan": "^1.10.0",
"multer": "^1.4.2",
"passport": "^0.4.0",
"passport-local": "^1.0.0",
"path": "^0.12.7",
"tslib": "^2.1.0"
},
"devDependencies": {
"nodemon": "^1.19.1"
}
}

Same here. struggling from whole day and landed here in a hope of solution or workaround

Well I got mine solved by moving
app.use(express.json());
app.use(express.urlencoded({ extended: false }));

below
app.use(adminBro.options.rootPath, adminrouter)
In my case I was adding following code earlier but after express version 4.17 it has changed. so the adminBro error message might be still giving old solution hint.
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))

Has anyone solved this problem? What is offered does not solve the problem.

Same problem here

Hi! has someone resolved the error? I'm using typescript and this is my config...
app.use(adminBro.options.rootPath, adminRoutes) app.use(express.json()); app.use(express.urlencoded({ extended: false }));

The error message is clearly inaccurate and misleading. The only way to make it work as of today is by registering the express.json() middleware AFTER the  app.use(adminBro.options.rootPath, adminrouter) statement.

I'm getting the "InternalServerError: stream is not readable" error, anyone knows why?


Improve performance by batching tekton-results API requests in PLR list pages.

Fixes

https://issues.redhat.com/browse/RHTAPBUGS-545
Description

PipelineRun list view was making too many calls to tekton-results API and the users were hitting rate limit issue in the prod.
This PR improves the performance of the list page with following changes

Batch request the vulnerability calls (added the fetching logic to get vulnerability data for 30 rows in a table in a single API call)
reduce the pageSize from 50 -> 30
do not fetch extra calls if the same request is already inflight.

With this changes, each pipelineruns list row will not make any api calls instead the parent will make a single call to fetch all the vulnerabilities and set them accordingly.
Type of change

[x] Other (please describe): No visual changes, this PR improves the performance of pipelinerun list page and avoid api rate limit issue.

Screen shots / Gifs for design review

Before:
https://github.com/openshift/hac-dev/assets/9964343/4bb2e708-66e5-4ddc-bc00-be2070909480
After:
https://github.com/openshift/hac-dev/assets/9964343/3d38306e-7fbc-439c-adc6-73e926117d88
Browser conformance:

[x] Chrome
[x] Firefox
[x] Safari
[ ] Edge

/cc @rohitkrai03

/retest

You can see that just within a few seconds of scrolling up and down it fired almost 900 API requests.

@rohitkrai03 By looking at the video I can confirm that this is a old behaviour, and looks like it doesn't contain my PR changes. If you notice while you scroll up and down fastly, the vulnerabilities column indicates it is loading but with my PR changes once the column is rendered then even if you scroll up or down on that row again and again it will never go back to the loading state. I couldn't reproduce this with my changes, could you please retry again?

Pushed minor changes to show loading indicator for all inflight API calls and added some more unit tests.

/retest

@rohitkrai03 By looking at the video I can confirm that this is a old behaviour, and looks like it doesn't contain my PR changes. If you notice while you scroll up and down fastly, the vulnerabilities column indicates it is loading but with my PR changes once the column is rendered then even if you scroll up or down on that row again and again it will never go back to the loading state. I couldn't reproduce this with my changes, could you please retry again?

@karthikjeeyar Yup, seems like my local was not running the latest build from your PR. After refreshing it seems to be working much better and the issue of infinite calls during scrolling is fixed completely.

/retest

/retest


Added arduino nano every config

Added platform configuration for the arduino nano every in default.yaml.
Check this issue for more details.
Highlights from CHANGELOG.md

Added nano_every platform to represent arduino:megaavr architecture
See CHANGELOG.md for more

Please add a changelog entry like "Added nano_every platform to represent the arduino:megaavr architecture"
Regarding the test failures, I think the unit tests should be updated to include your platform... If you're not comfortable fixing the unit test yourself, just edit this PR to be against the tdd branch and I'll merge that in even when failing.

My bad for forgetting to add a changelog entry, sorry... 🤦
Should be added now. I tried to look into changing the unit tests but I'm afraid I will do more harm than good since I'm not familiar with Ruby 😅
I changed the base branch form master to tdd like you suggested.

Regarding the test failures, I think the unit tests should be updated to include your platform.

@ianfixes, I'm looking at open PRs and not sure what you are suggesting. It looks like all tests pass (or passed a year ago!). Are you suggesting adding nano to unittest/platforms in SampleProjects/TestSomething/.arduino-ci.yml? It seems that the existing list is intentionally short and does not include all possible platforms so I'm not sure how the existing list was selected. Thanks!

Ouch, time has gone by quickly.
The comment I made was in regard to this line being deleted:
https://github.com/Arduino-CI/arduino_ci/pull/287/commits/07087041b9df8f9282e3545b3bdc6d9a3869f981#diff-92a4a126d74841479f7a742fb740ce8edf0d48218b8d11adf405e92d860dda93L197
I think this PR should not go through unless that line is re-added and the resulting test failures addressed.

Integrated into #334 and seems to work in that context

This has merged as part of #334 and was released in v1.4.0


Add MakeYour-Terminal-StayWithUkraine to list !

Hello , I think the one most important software that we are using is terminal , so I decided that it would nice to make project,that will make clear position !
here is a link https://github.com/alex5250/MakeYour-Terminal-StayWithUkraine
I think you had no doubts about does this project StayWithUkraine !
It will much appreciated if my project will counted !
Currently  it supports only Windows PowerShell and ConEmu but the list of supported terminal emulators will increased

Thanks, but the main objective of this repository is to increase awareness.
I'm not sure how adding any slogans to your own console/terminal can help.


[Issue]: ENSDFSTATE invalid data value

Contact Details
No response
What was the issue?
I'm trying to simulate 30 keV gamma to obtain optical photon signals. When I try to run the simulation it says there is an invalid value in G4ENSDFSTATE2.3 data.

Version
4.0
What Operative System (OS) are you running on?
Linux
Relevant log output
-------- EEEE ------- G4Exception-START -------- EEEE -------

*** G4Exception : PART70002
      issued by : G4NuclideTable
5.609049e+17 is not valid indicator of G4Ions::G4FloatLevelBase.
You may use a wrong version of ENSDFSTATE data.
Please use G4ENSDFSTATE-2.0 or later.
*** Fatal Exception *** core dump ***
 **** Track information is not available at this moment
 **** Step information is not available at this moment

-------- EEEE -------- G4Exception-END --------- EEEE -------

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Attestation

[X] I testify that I have fully read the bug reporting guideline beforehand.

Could be something on Geant4 side

It looks like a ENSDFSTATE version issue. Can you share a bit of your parameter file to allow us to reproduce your error?

While I was trying to resolve the issue, it's gone without any changes. Maybe it was a false alarm. I will close the issue.


this commit fix #3958

Deal with '/' in Wiki page title.

Thanks for the PR... but this solution seems somewhat... weird? Is it just removing all /s?

it not remove any '/'. i just  want to redirect url to the right  wiki page.

models.ToWikiPageName replaces all / to a  (space).

sorry i am not familiar with golang。
according to this line https://github.com/gogits/gogs/blob/master/models/wiki.go#L102
i think function ToWikiPageName produce each new wiki page url , so, just use this function redirect url.
github also don't support '/'.this commit just deal with 404 fault,when we create a wiki page with '/' in title.

Indeed it will work, just looks a bit strange. Thank you anyway!

thank you~


Documentation error regarding installation for LXD use

Description
There is either a Documentation error or files missing from the Repository:
http://docs.opennebula.org/5.8/deployment/node_installation/lxd_node_installation.html
Trying to install OpenNebula on Ubuntu 18.04 KVM VM to use with SNAP LXD on that VM.
States:

or, use LXD installed as snap (since OpenNebula 5.8.2):
sudo apt-get install opennebula-lxd-snap opennebula-node-lxd

To Reproduce
After installing the OpenNebula Repository info into /etc/apt/sources.list.d and doing an "apt update" I try to follow the steps in the above Documentation Link and get:

$ sudo apt-get install opennebula-lxd-snap opennebula-node-lxd
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package opennebula-lxd-snap

Expected behavior
I'd expect it to install opennebula-lxd-snap.   I did check the repository and there are NO 5.8.2
files there just <IP_ADDRESS> and none of them are for LXD??
reference:  https://downloads.opennebula.org/repo/5.8/Ubuntu/18.04/
Details
see above
Additional context
Add any other context about the problem here.

Progress Status

[ ] Branch created
[ ] Code committed to development branch
[ ] Testing - QA
[ ] Documentation
[ ] Release notes - resolved issues, compatibility, known issues
[ ] Code committed to upstream release/hotfix branches
[ ] Documentation committed to upstream release/hotfix branches

Sorry, 5.8.2 is a hotfix update, however, you can still build the new packages.


notify user if they do not have an account yet

As a user, if I try to log in and do not have an account yet,  I should be notified

Flip side: notify someone if they already have an account and try to sign up again


Do not override global logger time format

The zerolog timestamp format is global and used by all loggers by default. Mutating this from within a library can introduce unexpected behavioral changes to consuming applications.

Hi @nyergler , thanks for this. I'll do some testing and double check how to set that without overwriting global.

+1 for this, it would be good to see it merged soon.:)

@rcypher-databricks Done; please let me know if there's anything else required; we'd love to delete our fork :)


Create Volunteer Sign Up for Event

Basically the reason most of the views are duplicated from the user signup flow is because AFC design wants the volunteers to confirm their availability before signing up for the event. Just preload the values and have functionality to change it on the users + availability tables if they need to change it

/cib volunteer event signup

Branch 98-b-volunteer-event-signup created!


dialog:generate plugin: not able to evaluate a reference in an LG file

Sample information

Sample type: \experimental\generation
Sample language: --
Sample name: --

Describe the bug
When I generated a form dialog with bf dialog:generate, the bot gives me an error message:

sandwich.en-us.lg:No such template ‘CompleteConfirmation_Name’. [propertyName] Error occurred when evaluating ‘-${template(${property}_Name)}’. [displayOperation] Condition ‘${op && property && entity.value}’: Error occurred when evaluating ‘-${operationName(op)} “${entity.text}” to ${propertyName(property)}’. [chooseEntity] Error occurred when evaluating ‘-${displayOperation(property.operation, property.property, property.entity)}’. [chooseProperties] Error occurred when evaluating ‘-Did you mean ${join(foreach(turn.dialogevent.value, choice, chooseEntity(choice)), " or ")}?’. [__temp__474b1a1e1da54179b28a2518a3201a27] Error occurred when evaluating ‘-${chooseProperties()}’.

To Reproduce
Steps to reproduce the behavior:

Install the nightly build for the bf cli and the dialog:generate plugin.
I was using bf version @microsoft/botframework-cli/4.12.0-dev.20201118.1cb4bee win32-x64 node-v12.18.3
and bf dialog:generate version @microsoft/bf-generate 4.10.0-daily.20201112.185066

Create the bot. I used the sandwich.schema example here: https://github.com/microsoft/BotBuilder-Samples/tree/main/experimental/generation/docs/example-schemas so the command was:
bf dialog:generate sandwich.schema -o sandwich-bf-1123b

Build and run the bot:
cd sandwich-bf-1123b
build
run

Connect to the bot in Emulator. Start talking.

I hit this error at the second prompt:

and I think this error appeared in the console at the same time:

Error text:

fail: Microsoft.Bot.Builder.Integration.AspNet.Core.BotFrameworkHttpAdapter[0]
Exception caught : sandwich.en-us.lg:No such template 'CompleteConfirmation_Name'. [propertyName]  Error occurred when evaluating '-${template(${property}_Name)}'. [displayOperation] Condition '${op && property && entity.value}':  Error occurred when evaluating '-${operationName(op)} "${entity.text}" to ${propertyName(property)}'. [chooseEntity]  Error occurred when evaluating '-${displayOperation(property.operation, property.property, property.entity)}'. [chooseProperties]  Error occurred when evaluating '-Did you mean ${join(foreach(turn.dialogevent.value, choice, chooseEntity(choice)), " or ")}?'. [__temp__474b1a1e1da54179b28a2518a3201a27]  Error occurred when evaluating '-${chooseProperties()}'.

Expected behavior
Give a clear and concise description of what you expected to happen.

FYI @coldplaying42 @chrimc62


chg: [IP ASN History] added + small typo fixed

IP ASN History from CIRCL - D4 Projecthh API added

thank you :)


Will There Be a NewUnroutedHandlerWithHooks?

There is a NewHandlerWithHooks in v2. Will there be a NewUnroutedHandlerWithHooks ? From looking at the code, it seems like if I start copy pasting the language inside NewHandlerWithHooks, I will end up forking the whole repo.
Thank you!

You can access the unrouted handler from a routed handler through the embedded struct. So maybe you can do the following:
routedHandler := hooks.NewHandlerWithHooks(...)
unroutedHandler := routedHandler.UnroutedHandler

I haven't tried it yet, but if this works, we can add this as an implementation for NewUnroutedHandlerWithHooks


Remove titles from push notifications

We are doing away with titles in favor of only having a body (like the notifications below):

/cc @alanpeabody @steam @jayzes

LGTM

Nice, dig all that red.


adding error code 8001 to the failing list

these are standard framework exceptions that should not be retried.
there is an on-going abuse of the retry for the wmlhe requests, and we should circumvent it.
can this maybe be made agent-configurable somehow ?

It is configurable. For current production agent (1.1.4), we can manually change the config and restart ErrorHandler.
https://github.com/dmwm/WMCore/blob/1.1.4_wmagent/etc/WMAgentConfig.py#L245
New agent (we will deploy next week) will work a little differently, we kept the config in aux db and we can just change the entry there (NoRetryExitCodes), and Agent will pick up without restarting the component. (See below for the samples)
https://cmsweb-testbed.cern.ch/couchdb/_utils/document.html?reqmgr_auxiliary/WMAGENT_CONFIG_cmsgwms-submit3.fnal.gov
I will add the 8001 exit code in default config as well.


Fix getting stack in region

Related to #123

:+1:

Coverage increased (+0.02%) to 90.271% when pulling 2b8ca6d33d4b1835f8f07fae8cbc2ce6c456c179 on rafaelcaricio:use-region-when-changing-traffic into 05d77376bd735b885d1e8b4d2f0d5ad4788c6492 on zalando:release2.0.


scrollbar overlay scm added and edit color is both blue. Added should be green

My file has some lines added and some edited.
In gutter I can see the added lines are green, and edited are blue. A removed has a little red arrow

scrollbar annotations are all blue. I would expect added sections to have same green color and a little red line to indicate something has been removed. This gives me an overview of all edits in file by just looking at scrollbar.

Also would love it if the minimap showed the gutter lines as well.

https://github.com/Microsoft/vscode/issues/12829

@octref @alexandrudima  . Seems vscodebot closed the bug as dupe but the other bug is already closed and not open for collaboration.
Care to elaborate what the negative feedback was ? The decorators on scrollbar for git are on the left. The errors are on the right. You can make them a bit more translucent so they are not grabbing attention.
Making everything blue doesn't make sense at all.

Also it seems there is a bug and the colors cannot be customized even though the documentation says so: https://code.visualstudio.com/docs/getstarted/theme-color-reference
    "workbench.colorCustomizations": {
        "editorOverviewRuler.addedForeground": "#4d7e00",
        "editorOverviewRuler.deletedForeground": "#a00011",
        "editorOverviewRuler.modifiedForeground": "#007fa1"
    }

Does not apply the correct colors. It's still blue everywhere.

They should be customizable.
Per https://github.com/Microsoft/vscode/issues/12829#issuecomment-345203835

@octref I did not define those colors. fyi they are configurable AFAIK and @aeschli changed them to be green<->green, blue<->blue and red<->red both in the line decorations and in the overview ruler and the feedback was overwhelmingly negative.

I'm giving this to you @aeschli

Can we add a [bug] tag to this issue please?

@aeschli Steps to verify?

To verify:

open a diff with deletions and additions
set in the settings
"workbench.colorCustomizations": {
"editorOverviewRuler.addedForeground": "#ff0000",
"editorOverviewRuler.deletedForeground": "#00ff00",
"editorOverviewRuler.modifiedForeground": "#0000ff"
}
check that the overview rulers shows these colors


[BUG] Hard-coded external library references

Describe the bug
Hard-coded paths to directories outside of the application tree are present in CMORise.py in the latest version on the accessnri conda channel. This causes the import to fail if those paths are not available.
To Reproduce
>>> import access_med_utils
  File "<stdin>", line 1, in <module>
  File "/jobfs/122946801.gadi-pbs/analysis3-24.07/lib/python3.10/site-packages/access_med_utils/__init__.py", line 1, in <module>
    from .ilamb import *
  File "/jobfs/122946801.gadi-pbs/analysis3-24.07/lib/python3.10/site-packages/access_med_utils/ilamb.py", line 7, in <module>
    from .CMORise import generate_cmip
  File "/jobfs/122946801.gadi-pbs/analysis3-24.07/lib/python3.10/site-packages/access_med_utils/CMORise.py", line 24, in <module>
    from app_functions import *
ModuleNotFoundError: No module named 'app_functions'

@dsroberts I don't think this is a hard-coded path issue (those have existed forever in the repo, as far as I can tell) - rather, it seems to be a relative import issue. Altering the offending line to
from .app_functions import *

allows a successful import within ipython. I'll open up a branch to play with it further.
I'm not sure why this has become an issue, unless there has been a change/update to the underlying Python environment that's made it more fussy about relative imports.

Hi @marc-white. "Forever" is a bit of a stretch. This particular path was added on the 18th of June, and more importantly, the CI was skipped on that day, so the conda package was not updated at that point. The conda package was updated on the 23rd of July through this action.
Our conda analysis environments (which contained the access-med-tools conda package) was updated on the 22nd of July with this action and again on the day I created this issue with this action. So I didn't get the version with CMORise.py until then. These environments are built in isolation. Our build service user does not have access to kj13, and therefore can never import from that path. I am not in kj13 either, so I can only guess that there might be an app_functions.py on that path that was actually being imported, rather than the app_functions.py that is included in the package. In any case, hardcoded absolute paths in conda packages is not best practice, as conda packages are intended to be portable. Although looking closer, it does appear that none of these paths are used (except accidentally), which I guess raises the question 'why are they there at all?'.
Also, sys.path.append('./') is not a good idea and can lead to undefined behaviour. There is no telling a) what the user's working directory is, and b) what might be in any app_functions.py file in said user's working directory.

Hi @marc-white. "Forever" is a bit of a stretch. This particular path was added on the 18th of June, and more importantly, the CI was skipped on that day, so the conda package was not updated at that point. The conda package was updated on the 23rd of July through this action.

Ah, that's useful history, I hadn't twigged that CMORise.py was that new of an addition.

Our conda analysis environments (which contained the access-med-tools conda package) was updated on the 22nd of July with this action and again on the day I created this issue with this action. So I didn't get the version with CMORise.py until then. These environments are built in isolation. Our build service user does not have access to kj13, and therefore can never import from that path. I am not in kj13 either, so I can only guess that there might be an app_functions.py on that path that was actually being imported, rather than the app_functions.py that is included in the package. In any case, hardcoded absolute paths in conda packages is not best practice, as conda packages are intended to be portable. Although looking closer, it does appear that none of these paths are used (except accidentally), which I guess raises the question 'why are they there at all?'.

Agree with all. The possibility of a 'floating' definition of app_functions.py is very concerning. @rbeucher is there an app_functions.py in kj13 that would normally be absorbed?

Also, sys.path.append('./') is not a good idea and can lead to undefined behaviour. There is no telling a) what the user's working directory is, and b) what might be in any app_functions.py file in said user's working directory.

Strongly agree, I'll need to work out why that is there.

I think that's a question for @rhaegar325 who has been looking into this. I also agree with the comments above.
The package should not have access to kj13. It is a project internal to the NRI

@rhaegar325 has the fix been merged so we can close off this issue?

@dsroberts are you still seeing this issue?

Hi @marc-white. Whilst the package imports successfully now, there is still the issue of a hard-coded path here: https://github.com/ACCESS-NRI/MED-utils/blob/main/access_med_utils/CMORise.py#L17. I've been in contact with the CI of p66 about this, and have been informed that a) MED-utils should not be using these files, b) The purpose of MED-utils as a CMORiser is unclear given NRI's support for ACCESS-MOPPeR and c) a) and b) notwithstanding, these files should be moved to an NRI-controlled location if they're needed on an ongoing basis - which wouldn't solve the issue anyway as they cannot be moved to hh5 where the conda environment in which MED-utils is installed resides. This all represents a larger discussion well beyond the scope of this issue, so I'll close it.

Thanks for pointing that out @dsroberts.
@rhaegar325 We do not want any hard coded path. Can you look into this please?


WebUI

This will incorporate the logic of the HtmlStructure, GlobalStyles, and Pages Apps into core

Html Structure:
Something in core needs to provide html structure by defining the appropriate GlobalResponses and OutputComponents for the html elements that are common to/or required by all html pages, for example, the , , , and  elements. This "thing" needs MUST not be required,
The following html structure should be defined by the Component or Utility that implements this logic:
<!DOCTYPE html>

<html>

<head>

</head>

<body>

</body>

</html>

These elements will be defined as OutputComponents and assigned to appropriatly confgirued GlobalResponses so they appropriatly surround the output of any Apps.


Gemma.cpp hangs on a Gemma 7B model that was finetuned using huggingface peft(QLoRA)

Hi, thanks for the interesting project!
I create Gemma 7B based model webbigdata/C3TR-Adapter.
This model is Huggingface transformer format and translation-only model with original prompt templates fine-tuned by QLoRA.
So, I convert this to pytorch(.ckpt), and result is f32_merge_model.ckpt
I have confirmed that f32_merge_model.ckpt works.
Then, run this command, no error message.
python3 convert_weights.py --tokenizer tokenizer.model --weight f32_merge_model.ckpt --output_file gemma_cpp_merge.bin --model_type 7b
Then, run this command, no error message.
./build/compress_weights --weights util/gemma_cpp_merge.bin --model 7b-pt --compressed_weights util/gemma_cpp_merge.sbs
Then, run gemma.cpp, no error message.
./build/gemma --tokenizer util/tokenizer.model --compressed_weights util/gemma_cpp_merge.sbs --model 7b-pt
and input my prompt
[### Instruction:\nTranslate English to Japanese.\n\n### Input:\nThis is a test input.\n\n### Response:\n]
but model can't output anything.
Is there something wrong with the procedure?

Hi, thanks for reaching out :)
There are two likely causes. One is that Gemma is trained for a format like "<start_of_turn>user\n", but because the command line specifies 7b-pt instead of 7b-it, run.cc skips this formatting. Or did the fine-tune indeed start from the PT model? I would think that IT is more suited to this kind of interaction.
A second possible cause is that the finetune may generate weights with magnitude above 1.875, which may require a bit of extra work to support (setting the tensor's scaling factor). There is a check for this in compress_weights, but it is only enabled in 'debug' builds. The simplest way to test this is to build with msan or preferably asan enabled, if that is an option?

Thank you for sharing. So we indeed want PT and your model is trained for the prompt format used.
Also sounds like there is no range overrun for the compressed data.
@KumarGitesh2024 , can you help debug this? Perhaps we can insert printfs to understand which function in gemma.cc is the one that freezes?

Hi @webbigdata-jp,
Can you share logs after printing the function using cout to understand which function in gemma.cc is producing issues or waiting to respond?

In my localtime 21:40 - 22:00 repeat same log.
Thanks!

Thanks for sharing the log. Looks like 28x Attention/FFW (one per layer). If we just end up calling Transformer without end, then it seems like if (token == EOS_ID) { is never hit. Does your instruction tuning include that token? Note that you can also return false from stream_token to stop generating.

Interesting. It sounds like our fp8 compression might possibly be causing the trouble.
Would you like to try building with -DGEMMA_WEIGHT_T=hwy::bfloat16_t, then rerunning the compress_weights? This should return a twice as large .sbs file. If that fixes the problem, then it's likely a numerical issue. If not, we might have some other bug.

Hello.
Unfortunately, there was no particular difference with the 16-bit version.
Could you please confirm that I'm doing it right just to be sure?
cd build/
rm -rf *
cmake -B build -DWEIGHT_TYPE=hwy::bfloat16_t
cd ..
make

# Convert my original model to bf16bit pytorch file(f16_merge_model.ckpt)

# Convert to gemma file
python3 convert_weights.py --tokenizer tokenizer.model --weight f16_merge_model.ckpt --output_file gemma_cpp_merge16.bin --model_type 7b

# Convert to sbs format
./build/compress_weights --weights util/gemma_cpp_merge16.bin --model 7b-pt --compressed_weights util/gemma_cpp_merge16.sbs

./build/gemma --tokenizer util/tokenizer.model --compressed_weights util/gemma_cpp_merge16.sbs --model 7b-pt

ls -lrth util/*sbs
-rwx------ 1 dev3 dev3 2.9G Apr  6 06:37 util/2b-it-sfp.sbs
-rw-r--r-- 1 dev3 dev3 8.7G May 27 22:39 util/gemma_cpp_merge.sbs
-rw-r--r-- 1 dev3 dev3  16G Jun  7 11:53 util/gemma_cpp_merge16.sbs

I didn't see any error or warning messages during the conversion process.

Thank you for sharing the command line. Unfortunately I see that our documentation was incorrect, sorry about that :( We had added a GEMMA_ prefix without updating the readme. The effect of this is that your experiment would still have used the 8-bit SFP. Would you mind retrying with -DGEMMA_WEIGHT_T=hwy::bfloat16_t?
Meanwhile, this weight typedef has been troublesome enough that we are now looking into compiling for all weight types, so that no more typedef is required.

I recompiled it but the situation did not change.
When I output the token ID in auto stream_token in run.cc, all the token IDs were 0.
133     } else {
134       std::cout << "\nToken ID: [" << token << "]\n";
135       std::string token_text;
Token ID: [0]
Only zeros are output in both 16-bit and 8-bit settings.

@webbigdata-jp thank you for trying. This sounds like a serious bug. We do not run compress_weights often and it recently changed, so this is possible. We are very busy this week but I have made a note to investigate, thanks for letting us know :)

Thank you.
I'm not in a hurry, so if you find out the cause, please let me know.
If I can get gemma.cpp to work, it will open the door to the possibility of running my gemma-based models on multiple platforms without compiling.


Retrieve data from FGS with specific time range via pvlib

I was trying to get forecast data within a specific time range.  I am not sure what is the problem with data retrieval as stated here!!
from pvlib.forecast import GFS, NAM, NDFD, HRRR, RAP
    latitude, longitude, tz = 39.742, -105.18, 'UTC'
    start = pd.Timestamp(datetime.datetime(2022, 4,26), tz=tz)
   end = pd.Timestamp(datetime.datetime(2022,4, 26), tz=tz)
   irrad_vars = ['ghi', 'dni', 'dhi']
  model1= GFS()
   dataGFS = model1.get_data(latitude, longitude, start, end)

HTTPError: Error accessing https://thredds.ucar.edu/thredds/ncss/grib/NCEP/GFS/Global_0p5deg/Best?var=Medium_cloud_cover_middle_cloud_Mixed_intervals_Average&var=Total_cloud_cover_convective_cloud&var=Low_cloud_cover_low_cloud_Mixed_intervals_Average&var=High_cloud_cover_high_cloud_Mixed_intervals_Average&var=Temperature_surface&var=v-component_of_wind_isobaric&var=Wind_speed_gust_surface&var=u-component_of_wind_isobaric&var=Total_cloud_cover_boundary_layer_cloud_Mixed_intervals_Average&var=Total_cloud_cover_entire_atmosphere_Mixed_intervals_Average&var=Downward_Short-Wave_Radiation_Flux_surface_Mixed_intervals_Average&time_start=2022-04-26T00%3A00%3A00%2B00%3A00&time_end=2022-04-26T00%3A00%3A00%2B00%3A00&longitude=-105.18&latitude=39.742&vertCoord=100000&accept=netcdf
Server Error (400: Requested time range 2022-04-26T00:00:00Z - 2022-04-26T00:00:00Z does not intersect actual time range 2022-04-28T00:00:00Z - 2022-06-12T18:00:00Z)

Hi @najiya-12 it is not possible to use pvlib to obtain forecast data outside of the short archive that is available on the Unidata server. For more, please search the pvlib python google group for previous discussions on this topic. Please also note that the forecast.py module is deprecated and will be removed soon.

Thank you @wholmgren! any suggestions for an automated way of downloading the same data


docs: Add note on use of Sites data structure in templates

The templates use domain details as per the Sites framework.
Here we describe how to provide equivalent information for the default invitation template

Thanks!


(1.3.0) Tenant Module

Will re-target to rc-1.3.0 branch once it's available!
This PR adds the Tenant module without business logic, to be used in the future when we have business logic to add.

Added new folder to 03_Modules called Tenant to house all Tenant-module related files in the same structure as the other modules

Tenant version is at 1.3.0 to match with release candidate

Updated Server/docker-compose.yml and Server/docker-compose.swarm.yml to spin up new Tenant module
Updated Swarm folder-related modules to include Tenant module

Can be reverted if not necessary (as I see that items in the Swarm folder haven't been updated too recently)

Updated RabbitMQ receiver.ts to disallow queue creation if a module has no actions
Added a clarifying comment to this since chargers won't have actions and should get a queue
This was done because otherwise RabbitMQ will erroneously feed all messages to the Tenant module

Closing PR to move branch over to the actual repo instead of a fork!


ReflectionException: Method yii\base\View::unknown() does not exist

Very hard to explain. But it seems there is a bug in yii2 debug info system.
This exception is raised when trying to get undefined variable in nested view. For example in yii2 basic app with YII_DEBUG sets in true you can change contact.php view file to render nested view contact_form.php. In that file try to get any undefined variable to raise an exception. Standard debug info will be "broken" - no color highlighting, strange rows in the end.
What steps will reproduce the problem?

Install yii2-basic-app
Set YII_DEBUG to true
Change the view @app/views/site/contact.php to

<?php

/* @var $this yii\web\View */
/* @var $form yii\bootstrap\ActiveForm */
/* @var $model app\models\ContactForm */

use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\captcha\Captcha;

$this->title = 'Contact';
$this->params['breadcrumbs'][] = $this->title;
?>

<?= $this->render("contact_form"); ?>

Create contact_form.php file:

<?php

/* @var $this yii\web\View */
/* @var $form yii\bootstrap\ActiveForm */
/* @var $model app\models\ContactForm */

use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\captcha\Captcha;

$this->title = 'Contact';
$this->params['breadcrumbs'][] = $this->title;

$model->text; // <-- Exception will be throw here
?>

...

Navigate to /index.php?r=site%2Fcontact and see broken (not fully colored) debug view.

What is the expected result?
Correct standard debug view.
What do you get instead?
Broken (not fully colored) debug view.
Additional info

Q
A

Yii version
<IP_ADDRESS>?

PHP version
7.0.15

Operating system
Debian 8.1.

This bug is appearing ONLY in nested views. If you try to call $model->text in main contact.php file nothing obvious happens. The debug view will be draw perfectly.

Screenshots of "broken" debug view:

I can't reproduce it. Did exactly what you did. Got the following:

If you have additional details — please post here.

I've seen this kind of broken Debug view on local machine, but failed to reproduce it

Which additional info do you need?
 It`s ok with color highlighting, but unknown() function calling again, when requiring index.php file. Why?
Listing: index.php
<?php
// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'prod');

require(__DIR__ . '/../vendor/autoload.php');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');

$config = require(__DIR__ . '/../config/web.php');
$env = require(__DIR__ . '/../config/' . (defined('YII_ENV') ? YII_ENV . '/' : '') . 'web.php');

(new yii\web\Application(\yii\helpers\ArrayHelper::merge($config, $env)))->run();

No idea. Please tell us how to reproduce the error starting with basic application else we can't fix it.

@samdark
Ok. Look, you have:

But I have:

Which OS do you have? C:\dev... - like in Windows. But I have Debian 8.1 x64.

I reproduce this bug again on other server (same as first one):

composer create-project --prefer-dist yiisoft/yii2-app-basic basic
edit @app/views/site/index.php

<?php

/* @var $this yii\web\View */

$this->title = 'My Yii Application';
?>
<?= $this->render("index_include"); ?>

...

Add file @app/views/site/index_include.php with content:

<?php

var_dump($model);

Navigate to /index.php and got same error!!!

Yes, I've tested on Windows 10. Going to check on mac.

@samdark @SilverFire I have found it! This bug reproduces on systems with xdebug enabled! When I disable xdebug in PHP 7.0.15 config - bug has been disappeared!
PHP 7.0.15 (php-fpm)
php7.0-xdebug 2.5.0
Nginx 1.10.2
Hope now you can reproduce and confirm a bug.

Reproduced.

Put together a fix. Please verify if it works for you.
XDebug seems to be producing trace lines with function specified as a string "unknown" when code is out of any function. Normal PHP uses null in this case.

@samdark Confirm, your fix is working. Thanks for help.


Debug the random issue with Safari having the wrong aspect ratio

It seems to happen when Safari has been killed or been in memory for a while and you open it and launch a new tab with DemSausage. Refreshing that tab fixes it.
Causes zooming to the wrong place, tapping stalls to query info, et cetera not to work.
Try debugging in dev in Safari in live mode. console.log for resize events and the current map size (interval?)
https://github.com/que-etc/resize-observer-polyfill
https://caniuse.com/#search=resize
Edit: Deployed a temporary maybe fix that calls map.updateSize() on window.resize
AB#95

Assuming will be fixed in the redesign and/or has since been fixed in Safari.


Prefix all user questions with time stamp just like the rest of the output

          1 Warning

:warning:
Please provide a changelog summary in the Pull Request description @KrauseFx

  Generated by :no_entry_sign: Danger


PWA New Updates not reflecting

Hi,
I am using cra pwa in my project. I am having 2 issues.

The add to home screen is not being asked in all devices but works fine for others
If a change is made and deployed it is not being reflected in the app, this also works well for some devices and not for others

Really silly question but are you definitely using https? Otherwise the prompt will not show.


Unexcepted raining in the train

Expected Behaviour
No rain in the train.
Actual Behaviour
Raining in the train.
Reproduction Steps
Steps to reproduce the behaviour:

Build a railway with SP1900 train
/weather rain

Screenshots

Environment

Minecraft Version: 1.18.1
Installed Mods: mtr-beta9-preview1

This Will happen due to the facts that Trains are not Entities

yeah at the moment not a lot you can do

It works not only on the SP1900 train, but all trains and cable cars.


add setup command to install the systemd unit and enable it

Title.
Make the user do slightly less. Just run the binary and have it install itself (really, download a copy to the correct location) and inform the user that it's safe to delete the one they downloaded. Nothing sneaky, just need a standard place to store the binary for the systemd unit to work.
I could also just detect where the binary is and build a new systemd unit file (rather than using a static one) and base the ExecStart= off of the binary's location when it was ran. If it stops working, the user would just run ./sd-ge-proton-updater setup again. This might seem "friendlier" on the surface, but I think it's far more prone to breaking because it isn't a "dot" file and people may delete/move it around without remembering it's unattended.

Implemented this as an automatic task on startup.


Implement Resolver for all ResolveContainers

WORK IN PROGRESS

[ ] Fix a compilation issue where DiActixHandler generic params are not inferred
[ ] Update documentation

This PR changes how Resolver and ResolveContainer are used internally and by downstream projects, specifically how new container types are added. tl;dr Resolver is now generically implemented for all implementations of ResolveContainer
Prior to this PR, to fully implement a new container you needed to implement 3 traits: Container, ResolveContainer, and Resolver. Container is responsible for making an object addable to a ServiceProvider, ResolveContainer is responsible for extracting a value out of the container, and Resolver is responsible for providing an easy to use interface to devs to resolve the type they want in addition to some light type transformations (like returning a borrow from an owned object). Since Resolver is mostly a thin wrapper around ResolveContainer, mostly being used to extract the container type from inferred generic params, it makes sense to move the transformation piece into ResolveContainer. This both simplifies the implementation of Resolver but also makes it much easier to implement whole new containers.

@p0lunin This PR is very nearly compiling but I'm hitting an inference error that I can't figure out. Could you take a look and see if you can spot the issue?

When I was developing the first versions of teloc, I ran into this problem. rustc is very straightforward and simple in type inferring.
You can find MRE of this problem here: https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=a4aa64278aca983a7046e42de2586f2f.
rustc infer works here as:

Let's try to infer Cont in Resolver impl.
Cont can be found using Conts: Selector<Cont, Idx> and Cont: Container<T> requirements. And here is a problem: rustc cannot find such Cont that satisfy Cont: Container<T> and Conts: Selector<Cont, Idx>.
Let's see more closely on these requirements (X = Cont, XS = Conts, Y = Idx):

X: Req<T>
XS: Req2<X, Y>

XS (list of containers) and T (requested type by user) are known, so rustc must solve this equation for variables X, Y, and it cannot. rustc can solve such equations if there are only one implementation XS: Req2<X, Y>. But, in our case there 2 possible implementations XS: Req2<32, Here> and XS: Req2<u8, There<Here>>, so rustc does not infer the type because rustc infers implementations of trait only in case when there is only one implementation of this trait.
When we write multiple implementations of a trait, rustc also receives multiple concrete implementations instead of one generic implementation, and rustc tries every concrete container implementation until all requirements are satisfied.
So, it is impossible to compile your code with current rust inference system. Maybe with polonius it is possible, but no one know when it will be in rustc.
I'm not sure at all that I'm right. If you find a way to compile this code I will be happy.

Well, I guess I wasn't close to compiling this as I thought. I couldn't find a way to get the code to compile without manually specifying the container type somewhere, and that definitely isn't acceptable.
I'll close out this PR and chalk this up to learning about the rust inference algorithm.


[Feature Request] Bitcoin Core non-descriptors BIP32 HD wallet import

Bitcoin Core supports dumpwallet command for BIP32 HD wallets (non-descriptors wallets) which dumps "extended private masterkey" (xprv...). This key can be imported to Sparrow using File, New Wallet, New or Imported Software Wallet, Master Private Key (BIP32). Sparrow also allows to set Custom Derivation Keystore path which yields proper xpub. However, if one actually tries importing xprv exported from Bitcoin Core they will be surprised that Sparrow doesn't discover their addresses properly and funds from imported Bitcoin Core wallet are not available with Sparrow. This is because Bitcoin Core, at least when it comes to non-descriptors wallets, uses hardened derivation with simple keypaths, first key being at m/0'/0'/0' whereas Sparrow uses unhardened derivation and external + internal chains so the first key being at m/0'/0'/0/0. Currently, a user cannot customize these two behaviors, which unfortunately is required to get access to private keys from imported Bitcoin Core wallet via xprv import.
Use case: migration from Bitcoin Core non-descriptors BIP32 HD wallet to Sparrow.
I understand that Sparrow also supports "importing" private keys by sweeping individual WIFs (Tools, Sweep Private Key) and therefore a Bitcoin Core user can just dump the whole wallet and then sweep WIFs of funded addresses one by one in Sparrow. This is however, only feasible solution in the case of wallets with just a handful of transactions. In the case of a very active user (dozens or hundreds of previously used addresses) it will be easy to miss a WIF this way, even if the WIF Sweep feature in Sparrow allows importing from multiple WIFs at once (but does it?). Perhaps an alternative would be to implement a parsing mechanism for Bitcoin Core dumpwallet file format or even a wallet.dat format. However, this is rather very specific and a global solution to this kind of problems (importing xprv from a third party wallet, I mean) is IMHO allow customizing derivation type and paths.
Note: some more details in my discussion in https://github.com/sparrowwallet/sparrow/issues/58

Unfortunately this is not likely to be implemented.
The amount of work required to do this is non trivial, and the amount of complexity it adds to the codebase is similarly non trivial. The feature would only assist those importing pre-BIP32, legacy wallets - certainly a small minority of users. Having separate receive and change chains is widely recognised as good practice, to the extent that Core descriptor wallets follow this practice and it is even likely to become part of the output descriptor specification (see BIP389).
I would suggest the best approach to migrate is to send all the UTXOs from the Core wallet to Sparrow (ideally separately to maintain privacy) - in this way one can modernise the wallet setup to one that is broadly compatible and potentially of a more modern script type.


[Bug]  Mismatch Between build args comments  in core.py and Actual Command Line Arguments

🐛 Bug??##
I've noticed that the code of the command line build parameters have been updated, but the corresponding comments in core.py have not been synchronized. This has caused a problem where the parameter names and how to use them in the describe in core.py are different from what's actually in the code. This mismatch is particularly confusing for noob like myself, who do not have the ability to understand how to use the new version of the code just by looking at the commits. I believe many other beginners are facing the same issue.
I expected:
update the Comment in 'core.py' which about guidance on the arguments used in the build command line.

We have now deprecated the old model compilation flow which used core.py. The documentation of the model new compilation flow is at https://llm.mlc.ai/docs/compilation/compile_models.html. You are welcome to check it out.


Dockstore support

Hi @agduncan94, @denis-yuen,
Thanks again for the Dockstore - nextflow support! I was just poking around again and noticed that not all releases are showing up though.
For example, nf-core/rnaseq has versions 1.1 and 1.2 released now (https://github.com/nf-core/rnaseq/releases), however, the dockstore page (https://dockstore.org/workflows/github.com/nf-core/rnaseq:1.0?tab=versions) only lists 1.0 and 1.1, and also has 1.0 listed as the default version.
There are also only 9 nf-core workflows listed, but now over 20 are present (we keep a JSON list at https://nf-co.re/pipelines.json if it helps).
Is there anything we can do to help all releases be pulled into Dockstore? Would it be possible to have the latest release set as the default version for all nf-core pipelines?
Cheers,
Phil

Hey @ewels ,
Currently with Dockstore you need to manually pull changes made on GitHub. You can do this by using the Refresh Organisation button found on the My Workflows page for github.com/nf-core. Since the workflow has not been refreshed since the 1.2 release, 1.2 will not show up.
Any time new workflows are added to the nf-core organisation on GitHub, Dockstore needs to be told about them. To do this you can again select the Refresh Organisation on the My Workflows page for github.com/nf-core. This will fetch new workflows as stubs, since it pulls all repos in a GitHub organisation and we can't easily tell which are actual Dockstore workflows. Individually refreshing a workflow after setting the metadata will pull the Nextflow files onto Dockstore. The workflow can be published assuming there is at least one valid version.
Note something like webhooks are on the roadmap for the future so that this becomes more automated.
Unfortunately there is no way currently to automatically set the latest release as the default version, though I think this could be a useful feature and will create an issue for discussion on the Dockstore Github page.
I will update the existing workflows and add the new ones now.

Great stuff, thanks for the info 👍 Would it be possible to add me to the nf-core organisation on Dockstore? I don't have access to those pages currently. I just logged in with GitHub so my dockstore username is now ewels.
Phil

Hey @ewels , if you have access to the nf-core on GitHub then you should have access on Dockstore, however you must do a refresh all to see them. Go to the My Workflows page and click the Refresh All button on the top left. You should see the organisation github.com/nf-core. Here you can pull new content and also update metadata (ex. labels).

Great stuff, thank you for the help! 👍


More articles

http://blog.pamelafox.org/2013/09/technical-interviews-make-me-cry.html
http://stephjang.com/blog/khan-academy-job/

https://blog.devmastery.com/how-to-win-the-coding-interview-71ae7102d685
https://news.ycombinator.com/item?id=11804229

Added


Iox #25 add new pubsub ports to roudi

Added new publisher/subscriber ports to RouDi (in parallel, old sender/receiver still in place for now)
Marked all (old) sender/receiver as @deprecated #25 so they can be deleted in follow-up PR
Marked some code with @todo #25 as it has to be fixed before RouDi can actually use new pub/sub ports (e.g. introspection)
Follow-up PR will flip the switch - use pub/sub ports and delete sender/receiver ports

Open questions:

Isn't iceoryx_port_pool obsolete now? Shouldn'tport_pool  be enough? @elBoberido
I'm not quite happy using a preprocessor define to select the roudi producer type (ENABLE_1_TO_N_COMMUNICATION_ONLY). Please speak out if you have a better idea.

it's almost impossible to review port_manager.cpp with the codecov comments every second line. Is there a possibility to hide that?

Yep, just click on the three dots in the top right corner and deselect "Show annotations"

Isn't iceoryx_port_pool obsolete now? Shouldn'tport_pool  be enough? @elBoberido

I don't think we have users who extends RouDi anymore, therefore this could be merged

I'm not quite happy using a preprocessor define to select the roudi producer type (ENABLE_1_TO_N_COMMUNICATION_ONLY). Please speak out if you have a better idea.

Yes, if someone is not using cmakes find_package, then this approach will break. We already had this with some users regarding the large deployment. An idea would be to add this to iox_posh_deployment.hpp.in, e.g.
using SubscriberPortProducerType = @IOX_SUBSCRIBER_PORT_PRODUCER_TYPE@;

and in the CMakeLists.txt
set(IOX_SUBSCRIBER_PORT_PRODUCER_TYPE iox::popo::SubscriberPortSingleProducer)

If there is code which is different depending on the type, an additional define could be used, e.g. define IOX_SUBSCRIBER_PORT_PRODUCER_TYPE_N2M false; or something similar. Maybe there are better solutions, e.g. SFINEA.

I don't think we have users who extends RouDi anymore, therefore this could be merged

Thanks. Will be done in follow-up PR.

An idea would be to add this to iox_posh_deployment.hpp.in, e.g.
using SubscriberPortProducerType = @IOX_SUBSCRIBER_PORT_PRODUCER_TYPE@;

and in the CMakeLists.txt
set(IOX_SUBSCRIBER_PORT_PRODUCER_TYPE iox::popo::SubscriberPortSingleProducer)

If there is code which is different depending on the type, an additional define could be used, e.g. define IOX_SUBSCRIBER_PORT_PRODUCER_TYPE_N2M false; or something similar. Maybe there are better solutions, e.g. SFINEA.
There's basically one other method  addSubscriberPort() that's different, where the port is created. This could also be done in a different way as implicitly know the queue type for the producer type. Any idea for that? Then it could be moved to deployment and is at least in-line with these other deployed consts.

There's basically one other method addSubscriberPort() that's different, where the port is created. This could also be done in a different way as implicitly know the queue type for the producer type. Any idea for that? Then it could be moved to deployment and is at least in-line with these other deployed consts.

This could probably be done with std::enable_if and std::is_same


Enhance Developer Experience with Clickable Paths for %run Magic Command in Jupyter Notebooks

Problem Statement
When working with Jupyter notebooks in Visual Studio Code, developers often use the %run magic command to execute other notebooks. This command helps in modularizing code but creates a navigational challenge. Currently, to open the referenced notebook, a developer must manually navigate to the file or use the file explorer, which interrupts the development flow and reduces efficiency.
Proposed Solution
Introduce the functionality to make file paths within the %run magic command clickable links. Clicking these links should open the corresponding notebook in a new tab within the VS Code environment. This feature would apply to all instances of the %run command that reference a relative or absolute path to a .ipynb file.
Implementation Consideration
The feature could be implemented by parsing the cell content for the %run command followed by a valid file path. The path can then be converted into a hyperlink that, when clicked, directs the user to the specified notebook. This feature would require enhancements in the parsing of notebook cell contents and the UI to display clickable links within the cells.
Benefits

Improved Navigation: Seamlessly navigate between related notebooks without leaving the keyboard, enhancing the development workflow.
Increased Productivity: Reduce time spent manually searching for files, allowing developers to focus more on coding rather than file management.
Enhanced User Experience: Intuitive navigation features like this contribute to a more pleasant and efficient development environment, potentially attracting more developers to use VS Code for Jupyter notebook development.

Acknowledgements
I understand that implementing this feature involves considerations related to UI/UX design and integration with the existing functionalities of the VS Code Jupyter extension. However, I believe that the benefits to developer productivity and workflow fluidity justify its consideration.
Thank you for your time and consideration of this feature request.

Thank you for the feature request, unfortunate the problems outlined in the earlier issue still stands
https://github.com/microsoft/vscode-jupyter/issues/15354#issuecomment-2042011012

Thank you for filing this feature request, however this hasn't received any upvotes since this was created hence closing this issue.