Experiment: Devicetree and device driver access in Rust

This experiment is based on the PR #75904 and demonstrates how devicetree information could be utilized in Rust which allows the creation of device driver bindings in Rust.
During the Zephyr build, the gen_defines.py script which generates the C header file containing the devicetree information already stores parsed devicetree data in the file edt.pickle. This file is used by gen_dts_cmake.py to expose necessary devicetree information to CMake. In this example an additional script gen_dts_rust.py is added which uses the same pickle file to generate devicetree information for Rust. The generated code is a static structure where each node is instantiated once as a constant where DT_NODE_0 is the root node. Nodes have references to other nodes to build up the tree structure. For nodes with status "okay", a device() method is generated allowing to access the underlying device object. Using Rust macros, similar APIs as we have in C can be provided, such as GPIO_DT_SPEC_GET.
To access Zephyr kernel functionalities as well as driver APIs, low level Rust bindings are generated using Rust bindgen. A similar approach as in this project is used to gather all compiler arguments, but the wrap_static_fns feature from bindgen is used to generate wrappers for inline functions including system calls. The low level bindings are abstracted to provide proper APIs to Rust applications. These abstractions are included depending on whether the underlying drivers are enabled like in this example with #[cfg(CONFIG_GPIO)].
The example was tested on a nucleo_f411re board. There might be architecture/configuration dependent flaws which I didn't see. The resulting main function from this example looks like this:
#[no_mangle]
extern "C" fn rust_main() {
    printk!("Hello, world! {}\n", kconfig::CONFIG_BOARD);

    let gpio_pin = GpioPin::new(gpio_dt_spec_get!(dt_alias!(led0), gpios));

    gpio_pin.configure(GpioFlags::OutputActive)
        .expect("Failed to configure pin.");

    loop {
        kernel::msleep(1000);

        gpio_pin.toggle()
            .expect("Failed to toggle pin.");
    }
}

In the pictured main function in #65837 the Rust device drivers would be instantiated directly into the devicetree structure. Here it is up to the application to instantiate the device drivers and manage them properly. The challenge I saw with the proposed approach is that although we can see in the devicetree information which compatible string is matched to a certain node, it is not clear which driver API will be exposed and therefore which Rust driver binding should be instantiated.

Here are the changes without the work from #75904.

@d3zd3z I only now stumbled across #76074. Sorry if this causes confusion... I would still be up to exchange some thoughts.

Here is probably as good a place as any to discuss. As far as generating the DT from python or Rust, there are advantages disadvantages of either:

The python version can directly read the pickle file. Rust code has to parse the zephyr.dts file (and the header).
The Rust code can use quote and have fairly natural Rust-syntax snippets of code.
The Rust code happens as part of build.rs, which I think is easier to integrate (it adds one line to build.rs instead of dozens of cmake lines).
I do like my approach of directly modeling the DT in Rust instead of mirroring the C macros used to access the DT. I think the C macros exist due to limitations in C, and aren't needed in Rust.
Being able to directly say zephyr::devicetree::aliases::led0::get_instance is pretty nice. It also generates a pretty clear error message when there isn't an led0 instance. I'm not sure how well the macros you've provided work with rust-analyzer, either. But, I get full completion on the generated devicetree inside of my editor.

Here is probably as good a place as any to discuss. As far as generating the DT from python or Rust, there are advantages disadvantages of either:
* The python version can directly read the pickle file. Rust code has to parse the zephyr.dts file (and the header).

* The Rust code can use `quote` and have fairly natural Rust-syntax snippets of code.

* The Rust code happens as part of build.rs, which I think is easier to integrate (it adds one line to build.rs instead of dozens of cmake lines).
  I do like my approach of directly modeling the DT in Rust instead of mirroring the C macros used to access the DT. I think the C macros exist due to limitations in C, and aren't needed in Rust.
  Being able to directly say `zephyr::devicetree::aliases::led0::get_instance` is pretty nice. It also generates a pretty clear error message when there isn't an led0 instance. I'm not sure how well the macros you've provided work with rust-analyzer, either. But, I get full completion on the generated devicetree inside of my editor.

I would separate these things:
Processing device tree for Rust in Python vs. Rust Build Script
The Python approach has no need for an additional parser as the information is already there in a parsed form (even with information about matched bindings). Even if the CMake integration needs some code, I think overall there are is less to be added.
Then there is the separation between the Zephyr build system (CMake) and the Rust build system (Cargo). I think this is mainly relevant if you want to open and develop your Rust application in a pure Rust IDE and therefore use the Cargo project.
With the Python approach you need access to the generated .rs file. From the Rust world perspective this is very simple to integrate. The downside is if you want different code to be generated you need to modify something in the Zephyr world.
With the Rust approach you need access to the pre-processed .dts and the generated .h file. You are then more free to change the generated code, but you are more vulnerable if something in the two intermediate files changes.
As a third option we could maybe also emit the parsed device tree in a format which is easy to parse in Rust like for example JSON. This would leave the generation of Rust code in the Rust world and could provide all additional information which the Rust approach currently doesn't have (binding information). But this would mean yet another intermediate file format.
Instantiating Rust device driver interfaces by devicetree vs. by application
I think the major difference between our approaches is where the Rust device driver interfaces get instantiated. In your approach if I do zephyr::devicetree::aliases::led0::get_instance() I get a device driver interface ready to use. With my approach I can do device_dt_get!(dt_alias!(led0)) or also zephyr::devicetree::root().aliases.led0.device() but then I get a device handle with which I need to instantiate a device driver interface myself, like in the example with GpioDriver::new(...).
While I really do like your idea because it feels more type safe (you cannot provide a device handle to the wrong driver interface), I have one main concern. My understanding of the process is as follows:

We have a device tree node with possible multiple compatible strings and a status
Given the available YML bindings, the best one is matched against the node
If the driver implementation matching this YML binding is enabled (typically via Kconfig), then it typically instantiates one device per matching node with status "okay"
When being instantiated, a driver typically provides a well defined API for its kind (for example struct uart_driver_api)
A C application can then use the device handle together with syscalls for this particular API (for example uart_poll_out)
This is the API our Rust device driver interfaces would rely on to provide a safer interface to Rust applications

My concern is: How can we know for every case which Rust device driver interface to instantiate for a particular device tree node? As far as I can see the devicetree information can tell us the compatible string of the matched binding, but it doesn't tell which API will be exposed by the instantiated driver. We could try to guess this by saying if the compatible string contains "uart" it is probably the UART API, but this doesn't seem very robust and it surely won't work for example for proprietary out-of-tree drivers providing a their own API.
If we don't know how we would solve this problem I would actually feel more comfortable if it was up to the application to instantiate the Rust device driver interfaces. It is how it is done today in C and it is guaranteed to work out in every case.
Utilize Rust capabilities to provide the safest and cleanest API possible vs. sticking closer to existing C APIs
You mentioned the C macros exist due to limitations in C. I agree that Rust allows us to craft a cleaner and safer API than what we currently have in C. In the long run I guess it makes also sense to do so, but it this takes a lot of thought work to design, implement, test and document this. A possible solution could be to create a layer like this:

FFI bindings: These are generated by bindgen and are used to call into Zephyr C APIs. This is the lowest layer in Rust.
Safe bindings: These rely on the FFI bindings and deal with any "unsafe". We already have objects, but the provided API is still close to the C API.
Proper Rust bindings: These rely on the safe bindings and provide a cleaner interface for the Rust applications where this is desired. RAII guards for locks could be a good example.


How to generate .zip file as shown in the path of "\saved_models\ae_weights" for a custom dataset?

Thank you for sharing your great work! I have tried the newest version package, it works for clustering benchmark datasets but there are still difficulties with my custom dataset. After preparing a custom dataset, the first thing seems to learn weights of an auto-encoder on the custom dataset and saving the corresponding .zip file in the path of "\saved_models\ae_weights". In order to generate train_data.pt, we need the file of "make_embbedings.py" or "make_umap_embeddings.py" to do so. But I found that the "make_embbedings.py" has a parameter "--pretrain_path" and make_umap_embeddings.py has a parameter "--ae_pretrain_path" which means the weights of an auto-encoder should be prepared in advance. Could you please share the corresponding script or tell me how to do it in more detail. Looking forward to your guidance.

Hey, thanks for your interest!
DeepDPM runs on pretrained embeddings (e.g., train_data.pt).
One approach for generating these embeddings is using an autoencoder, where the embeddings are the latent features.
To do so, you can run the DeepDPM_alternations script where you can also pretrain the AE using the --pretrain and the --pretrain_epochs flags (the former to use pertaining and the latter to specify for how many epochs).
The AE weights will be saved under \saved_models\ae_weights.
If you already have a pretrained embeddings which you created using a separate autoencoder, you can do a forward pass on your data using your AE and save the encoder's output as train_data.pt and then use load it to the DeepDPM script.
Let us know if this helps!
Meitar

Thanks Dr. Meitar
Thank your for your kindly response and sorry to bother you again. I still cannot build up my AE model using my custom dataset. Please guide me again.
Base on your guidance, I have well set the flags of --pretrain and --pretrain_epochs in the "DeepDPM_alternations.py" script.
But when I set the flag --dataset to 'custom' in the "DeepDPM_alternations.py" script, the script loads the data by using data = CustomDataset(args) in /src/datasets.py in which the embeddings "train_data.pt", "train_labels.pt", "test_data.pt", and "test_labels.pt" need to be prepared in advance.
I can understand the embeddings of custom dataset should be generated using "make_embbedings.py" or "make_umap_embeddings.py".
However, the data loader of "make_embbedings.py" and "make_umap_embeddings.py" cannot load custom dataset and the process of getting the pre-trained auto-encoder weights is not provided in current version.
The above problems have caused the modeling progress to stagnate. Could you please guide me if it is convenient? I am eager to know how to build a deepDPM model step by step when I have a customized dataset and whose data structure is show in below. Thank you.
|__ dataset
|______ cats: [cat.0.jpg, cat.1.jpg, cat.2.jpg ....]
|______ dogs: [dog.0.jpg, dog.1.jpg, dog.2.jpg ...]
|______ rats: [rat.0.jpg, rat.1.jpg, rat.2.jpg ...]

Hi @ssuhanchen,
Both the make_embeddings and make_umap_embeddings scripts are assuming that there is an already pretrained Autoencoder (in the make embeddings script the embeddings are generated using a forward pass through the AE and and the make_umap_embedding there is a umap operation after the forward pass though the AE).
To create your own embeddings you could train an AE on your data and save its weights and then use the scripts above.
If you want to use our code for the AE training, you could use the DeepDPM_alternation script and set the --pretrain_epochs to the number of epochs you want to train your AE (e.g., 100).
If you want to use this script only for AE pretraining, you could set "number_of_ae_alternations" to 1 and then only AE pretraining and DeepDPM clustering will occur. You could also leave it at 3 and see maybe the alternation between the feature learning and clustering could improve the performance.
To save the learned AE weights, use the --save_checkpoints flag.
More generally, you could use any method for feature extraction and save the resulting embeddings (yourself, using torch.save) to the required train_data.pt and test_data.pt and run DeepDPM from there.
Hope this helps!


[bugsnag] Event failed to send…

Describe the bug

Starting RC-client via menu does not work. In terminal error message is produced (see below).
Client worked normally before. Unfortunately can't say when i used it last (sometime last week).

What operating system and which version?

OS: Manjaro Linux x86_64
DISTRIB_RELEASE=21.2.5
Kernel: 5.10.105-1-MANJARO
DE: Xfce 4.16
WM: Xfwm4
Which version of Rocket.Chat.Electron (Electron/Desktop)?
rocket-chat 3.8.0
and
rocket-chat 3.8.2
Is there any setting relevant changed?
Not that i know of. Switched kernel from linux510 -> linux515 but when swapping back error message persisted.

To Reproduce
Steps to reproduce the behavior:

Download release rocketchat-3.8.2-linux-x64.tar.gz or rocketchat-3.8.0-linux-x64.tar.gz
Extract tarball and run ./rocketchat-desktop
Receive error message featured below

Expected behavior
RC-desktop to start
Error message
when running rocket-chat 3.8.0 and 3.8.2 from terminal
[user@pc rocketchat-3.8.2-linux-x64]$ ./rocketchat-desktop
[2898:0411/094006.446976:ERROR:sandbox_linux.cc(377)] InitializeSandbox() called with multiple threads in process gpu-process.
[bugsnag] Loaded!
[bugsnag] Event failed to send…
Error: connect ECONNREFUSED <IP_ADDRESS>:443
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1161:16) Error: connect ECONNREFUSED <IP_ADDRESS>:443
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1161:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '<IP_ADDRESS>',
  port: 443
}
[bugsnag] Failed to send event to Bugsnag
[bugsnag] Uncaught exception, the process will now terminate…
TypeError: Error processing argument at index 0, conversion failure from
    at BrowserWindow.setBounds (node:electron/js2c/browser_init:33:520)
    at applyRootWindowState (/home/user/Packages/rocketchat-3.8.2-linux-x64/resources/app.asar/app/main.js:982:23)
    at BrowserWindow.<anonymous> (/home/user/Packages/rocketchat-3.8.2-linux-x64/resources/app.asar/app/main.js:1161:13)
    at BrowserWindow.emit (node:events:390:28)
    at BrowserWindow.emit (node:domain:475:12)
    at node:electron/js2c/browser_init:161:13121
    at processTicksAndRejections (node:internal/process/task_queues:78:11)

Do you are redirecting all the 443 requests on your machine?

Do you are redirecting all the 443 requests on your machine?

Not that i know of.


Resumable inteface, backwards compatible and ready to merge

Pretty much the same as resumable, but fixed custom lexer to be backwards compatible.

@MegaIng  Review it lightly or thoroughly, your choice. I just want to make sure I didn't miss anything obvious.

Since the interface didn't change, I can't think of why the stubs should. I tried looking it over, but seems like everything that every interface we exposed remain unchanged (which is the goal, since we want to remain backward compatible).

Yes, we aren't breaking anything, but I would say we should expose this new interface in the stubs.

But then we won't be able to change it until v1.0 :)
I think it's better to wait until it's stable before advertising new API, just so we won't be stuck from making any improvements (like we are with the CustomLexer)

Yeah ok sure. I will still be using/testing it with lark-language-server, which is why I wanted to not block the new interface for CustomLexer :-P

Will updating the pyi files help you to work on the language server?

It will just reduce the IDE complains. Not important, so we can keep it 'hidden.' It will not really help me.

@MegaIng Okay, I think that's all of it.

I also think so. We might at some point come back to some of this though. (Btw. are you running any coverage tests?)

Right now I don't run any coverage tests.

@MegaIng Just checked. Coverage is at 88%. biggest "miss" is in earley_forest.py


Implements Bayou Vermilion Railroad

fixes #657

@mmeldo this seems to work now, for the most part.
the remaining issue is that the "untilEndOfPhase" effect doesn't stick once the Mystical cards is moved off of the location that got nerfed.
Example:

My dude with Evanor moves to my opponent's Railway Station
I use the Bayou Vermilion Railroad's noon ability with Evanor to tank the Railway Station's CP and production.
My dude moves elsewhere - the railway station now regains its original CP and prod.

I need to make the initial location (Railway Station) stick somehow. Any suggestions?

@mmeldo this seems to work now, for the most part.
the remaining issue is that the "untilEndOfPhase" effect doesn't stick once the Mystical cards is moved off of the location that got nerfed.
Example:

My dude with Evanor moves to my opponent's Railway Station
I use the Bayou Vermilion Railroad's noon ability with Evanor to tank the Railway Station's CP and production.
My dude moves elsewhere - the railway station now regains its original CP and prod.

I need to make the initial location (Railway Station) stick somehow. Any suggestions?

The effects can be state dependent or not. State dependent effects get reapplied after every event, which sometime (as in your case) is something you do not want. To make a state dependent effect, there are 2 ways:

fixed: isStateDependent: true property defined for the effect (e.g. any dynamic stat, for example dynamicBullets)
by specifying condition along with match being a function

What you have is the second one which means the effect is state dependent. If you want to have it applied only once and be done, remove the condition and pass a card or array of cards in the match instead of the function. So in our case, it should be enough to have match: context.target.locationCard

I did a small refactor regarding the location functions, I hope you do not mind. The problem here is that using the getGameLocation() is dangerous as it can return null and cause crashes. Thus it is better to put it into the helper functions with proper checks.


can it support  .vue file ?

Hello !
I am glad to use your extension,but can it support .vue file?   Thank you .

+1!

Closed by #29

Hi, do I need to change any settings or anything to get it to work in .vue files? Works in .js but doesn't give snippets in .vue.

No you shouldn't change anything. I tested in my set up and it works, as long as VS Code recognizes the file as the correct language vue


The install_gpu_driver script should restart services for yarn config…

…urations to take effect
The following restart step is needed if the install_gpu_driver.sh script is used in isolation, otherwise Yarn isn't finding the gpu configurations (isolation) that we are setting up here.
@mengdong FYI

@bradmiro @medb @abellina is from our spark team and helping us to refactor init script, could you please help review? Thanks

It has been a while now, I am not entirely sure how to proceed here. Can one of the admins please check and suggest a plan of action? I should be already in the CLA.


Release v0.14.0

I think it wouldn't hurt. But I also want to check that the interface is indeed compatible to avoid unnecessary redeploys for API providers.


feature: Shorthand encmode/decode functions for predefined encoding options

Is your feature request related to a problem? Please describe.
Seeing a bunch of em, _ := cbor.CTAP2EncOptions().EncMode() is a bit of a code smell (at least to me)
Describe the solution you'd like
Given that these predefined options would ostensibly never error, provide similar predefined encoding/decoding modes that can be used inline à la json.NewEncoder(blah)....
Example:
cbor.CTAP2EncMode().Marshal(&obj)
Describe alternatives you've considered

continuing as described above
creating my own shorthand function in my library

Additional context
n/a, this is just a suggested API improvement

I should note I'm happy to submit a PR for this if accepted.

@e3b0c442 thanks for opening this issue.    For best performance, a mode should be created just once and reused.
If you write a func that is called more than once, that func should reuse a mode rather than call EncMode() itself.

I should note I'm happy to submit a PR for this if accepted.

A CTAP2 interface requires more time & effort than what you initially proposed, so I think @fxamacker will code it (if approved).  It would involve both encoding and decoding.
Details
Separation of options and modes allows sanity checks and translation into different data structures (to speed up encoding or decoding) so that overhead shouldn't be repeated.
Ideally, mode(s) should be created during startup and preferably before init() runs.  Any helper functions requiring modes would simply reuse the modes created during startup.
I agree the API should make CTAP2 easier.  CTAP2 is special case.  In part because other predefined options are typically starting points for modification.
@fxamacker please consider exporting a CTAP2 interface that provides these:
Marshal, Unmarshal, NewEncoder, NewDecoder.

they should be ready to use before init() runs
be callable as cbor.CTAP2.Marshal(v), cbor.CTAP2.Unmarshal(b, &v), etc.

CTAP2 Canonical CBOR should be reviewed to make sure decoding (not just encoding) is in compliance with any extra limitations imposed by CTAP2.  Use io.LimitReader, etc. if needed.

It escalated quickly from 1 simple func to a full CTAP2 interface providing encoding & decoding funcs.

Would it though?
The OP-proposed cbor.CTAP2EncMode() could essentially just return a ctap2EncMode in the same way that defaultEncMode is used already. It's not a different type (thus not a different interface implementation), but rather just another unexported global variable.
Whether or not the extra globals are warranted is an open question.
This could also be handled with a must style function which can be documented as guaranteed to succeed for any of the bundled EncOptions constructors, i.e. must(cbor.CTAP2EncOptions().EncMode()) would not panic.


broccoli-funnel instead of broccoli-static-compiler

broccoli-static-compiler is deprecated in favor of broccoli-funnel. This updates the sample app's Brocfile to use the non-deprecated plugin.

:+1:


Add different endpoints for GRPC and HTTP protocal

Issue #, if available:
Updating Java Instrumentation to match parity with the Python Instrumentation. Update code based on this change.
The python instrumentation has strict dependencies on the python version for grpc, so opentelemetry-exporter-otlp-proto-grpc is only installed if explicitly called by the user. Such issues are not present in the Java instrumentation, so will leave the build configuration as it is.
Only changes to be made are to update the endpoints for HTTP and grpc protocol
Description of changes:
HTTP and grpc protocol will have different endpoints.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report
Attention: Patch coverage is 0% with 8 lines in your changes are missing coverage. Please review.

Project coverage is 77.15%. Comparing base (09e6487) to head (a06431b).
 Consider uploading reports for the commit 402053d to get more accurate results

Files
Patch %
Lines

...ent/providers/AwsAppSignalsCustomizerProvider.java
0.00%
8 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff              @@
##               main     #800      +/-   ##
============================================
- Coverage     85.71%   77.15%   -8.56%
- Complexity       19      244     +225
============================================
  Files             3       15      +12
  Lines            49      683     +634
  Branches          5      125     +120
============================================
+ Hits             42      527     +485
- Misses            3      122     +119
- Partials          4       34      +30

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


Bump version to 0.3.15

bors r+

Codecov Report
Base: 78.36% // Head: 78.36% // No change to project coverage :thumbsup:

Coverage data is based on head (886288e) compared to base (435258c).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##           prīmum     #177   +/-   ##
=======================================
  Coverage   78.36%   78.36%
=======================================
  Files          94       94
  Lines        3069     3069
=======================================
  Hits         2405     2405
  Misses        664      664

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Unhandled Thrown Error! Cannot read properties of undefined (reading 'count')

Hi, when I open memos today, there are some error log displayed on the page and can not view my memos. here are some error logs below. (version 0.4.5)
Unhandled Thrown Error!
Cannot read properties of undefined (reading 'count')
TypeError: Cannot read properties of undefined (reading 'count')
    at https://xxx.xx/assets/index.f618fa86.js:107:19652
    at Qs (https://xxx.xx/assets/index.f618fa86.js:32:24425)
    at ci (https://xxx.xx/assets/index.f618fa86.js:32:42666)
    at S9 (https://xxx.xx/assets/index.f618fa86.js:32:41472)
    at so (https://xxx.xx/assets/index.f618fa86.js:32:40498)
    at ty (https://xxx.xx/assets/index.f618fa86.js:32:37079)
    at Xn (https://xxx.xx/assets/index.f618fa86.js:30:3274)
    at https://xxx.xx/assets/index.f618fa86.js:32:34432
💿 Hey developer 👋

You can provide a way better UX than this when your app throws errors by providing your own errorElement props on <Route>

@theChrisWei Sorry, I cannot reproduce on my local computer and demo. Could you please join the telegram group and send me your database file (desensitized first)?

After some talks in telegram, it might be a cache problem from vite-plugin-pwa. And it had been removed: https://github.com/usememos/memos/commit/a2180f177fdd2e0637cb9ffa04656c8e4275131d

@boojack
I have the same issue/error after upgrade to the latest v0.5.0..

If you encounter the same error, please clear your browser cache. If not, give me the details of the error.

@boojack
It is the same error as above, the browser cache has been cleared, but no luck.
Environment: Win 10 64bit, Edge Version 106.0.1370.34 (Official build) (64-bit)

@DHS1001 Could you please join the telegram group and send me your database file (desensitized first)?

@boojack
One more finding is the explore  page is working properly.
Looking at the docker log:
███╗   ███╗███████╗███╗   ███╗ ██████╗ ███████╗
████╗ ████║██╔════╝████╗ ████║██╔═══██╗██╔════╝
██╔████╔██║█████╗  ██╔████╔██║██║   ██║███████╗
██║╚██╔╝██║██╔══╝  ██║╚██╔╝██║██║   ██║╚════██║
██║ ╚═╝ ██║███████╗██║ ╚═╝ ██║╚██████╔╝███████║
╚═╝     ╚═╝╚══════╝╚═╝     ╚═╝ ╚═════╝ ╚══════╝

Version 0.5.0 has started at :5230
{"time":"2022-10-11T10:29:48Z","method":"GET","uri":"/auth","status":200,"error":""}
{"time":"2022-10-11T10:29:48Z","method":"GET","uri":"/assets/index.19a074d4.css","status":200,"error":""}
{"time":"2022-10-11T10:29:48Z","method":"GET","uri":"/assets/index.06aad460.js","status":200,"error":""}
{"time":"2022-10-11T10:29:49Z","method":"GET","uri":"/logo-full.webp","status":200,"error":""}
{"time":"2022-10-11T10:29:49Z","method":"GET","uri":"/api/user/me","status":401,"error":"code=401, message=Missing user in session"}
{"time":"2022-10-11T10:29:49Z","method":"GET","uri":"/api/status","status":200,"error":""}
{"time":"2022-10-11T10:29:49Z","method":"GET","uri":"/sw.js","status":200,"error":""}
{"time":"2022-10-11T10:29:49Z","method":"GET","uri":"/logo.webp","status":200,"error":""}
{"time":"2022-10-11T10:29:49Z","method":"GET","uri":"/manifest.json","status":200,"error":""}
{"time":"2022-10-11T10:29:49Z","method":"GET","uri":"/logo.webp","status":200,"error":""}
{"time":"2022-10-11T10:29:52Z","method":"POST","uri":"/api/auth/signin","status":200,"error":""}
{"time":"2022-10-11T10:29:52Z","method":"GET","uri":"/api/user/me","status":200,"error":""}
{"time":"2022-10-11T10:29:52Z","method":"GET","uri":"/api/status","status":200,"error":""}
{"time":"2022-10-11T10:29:52Z","method":"GET","uri":"/api/user/me","status":200,"error":""}
{"time":"2022-10-11T10:29:52Z","method":"GET","uri":"/api/shortcut?","status":200,"error":""}
{"time":"2022-10-11T10:29:52Z","method":"GET","uri":"/api/memo?rowStatus=NORMAL","status":200,"error":""}
{"time":"2022-10-11T10:29:52Z","method":"GET","uri":"/logo.webp","status":200,"error":""}
{"time":"2022-10-11T10:29:53Z","method":"GET","uri":"/api/tag?","status":200,"error":""}
...
...

From the db structure, the NOT working db file is missing the below three triggers compare with the fresh install db file.

@DHS1001 Thanks for your so detailed report, I will take a deep look as soon as possible.

Thanks @boojack, hope this is helpful to identify the root cause and get this issue resolved. Feel free to let me know if you need more information.

@DHS1001

For these missing triggers, I have upserted a patch into 0.5.0 image and will re-create all of them in 0.6.0.
And it is normal that the memo_resource table has no records. The table is using for saving the related resource with memo, so it should be empty in the latest version.

Thanks for the quick fix @boojack
Looking forward to version 0.6.0

@DHS1001 v0.6.0 has been released. FYI

Thanks @boojack, the issue still persists after the upgrade to v0.6.0 unfortunately.
Unhandled Thrown Error!
Cannot read properties of undefined (reading 'count')

Anything more we can check to find the cause or this issue?

Thanks @boojack, the issue still persists after the upgrade to v0.6.0 unfortunately.

Could you please clean the browser cache firstly or check it in private mode?

Could you please clean the browser cache firstly or check it in private mode?

@boojack Tried to clear the cache, and ran in edge InPrivate windows, the same error appeared.

Could you please clean the browser cache firstly or check it in private mode?

@boojack Tried to clear the cache, and ran in edge InPrivate windows, the same error appeared.

@boojack  Tried same approach(clear che cache) as @DHS1001, the issue still exists.
100% reproduce scene: after I change the date of some memo(say change the date to 2022-09-09) and refresh the page, the exception happen. (my timezone is New Zealand Daylight Time)

Unhandled Thrown Error!
Cannot read properties of undefined (reading 'count')

@DHS1001 It looks like a front-end error message, can you give me the details of an error network request?
@DHS1001 @AlwaysKris I think a quick way to solve this problem is to use the latest database schema. You can save your old database file and generate a new one, then copy the old data to the new one.

Thanks @boojack, Looks like the issue is resolved after upgrade to v0.6.1.


Fix: sleep a while after deleting cluster when setting up

What type of PR is this?

/kind bug
What this PR does / why we need it:
When setting up with hack/local-dev-setup.sh, kind create cluster directly after kind delete cluster may fail because of the existence of kubeconfig lock and not to be retried, sleep a while can probably avoid such condition.

some unneccessary shell script lint introduced

Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

NONE

/lgtm


Replace GCE metadata endpoint with absolute FQDN

The internal domain is not a TLD. If domain is specified in /etc/resolv.conf, name resolution will be performed as a subdomain of that domain. Therefore, it is necessary to write absolute FQDN in GCE Metadata endpoint.

LGTM!

Thanks!!


PowerBuild tools support for Dynamics On-premise version 9

Support has few cases from customers asking if PowerBuild tools is supported for Dynamics On-premise version 9. Also we have seen multiple discussions in community forum asking the same questions. Its better to clarify in our documentation about its supportability for Dynamics On-premise version 9 environments.
https://powerusers.microsoft.com/t5/Power-Apps-Pro-Dev-ISV/Power-Platform-Build-Tools-for-Dynamics-365-on-premises/td-p/907019
https://readyxrm.blog/2020/04/07/simple-alm-for-power-apps-dynamics-365-projects-revisited-power-apps-build-tools-edition/

https://marketplace.visualstudio.com/items?itemName=microsoft-IsvExpTools.PowerPlatform-BuildTools&ssr=false#qna

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: fba2155b-98b3-64e0-29f5-79cf2b1a90f1
Version Independent ID: d2b30089-7cf3-563a-eb38-d112793beb9b
Content: Microsoft Power Platform Build Tools for Azure DevOps - Power Platform
Content Source: power-platform/alm/devops-build-tools.md
Service: power-platform
GitHub Login: @mikkelsen2000
Microsoft Alias: pemikkel

As far as I know, there aren't any plans to make the Power Platform Build Tools available for Dynamics 365 Customer Engagement v9.x (on-premises) versions. Closing issue.


Example server does not set cert lookup callback resulting in a crash

./http_server -s <IP_ADDRESS>:8443
17:56:51.360 [NOTICE] Document root is not set: start in Interop Mode
33374 segmentation fault  ./http_server -s <IP_ADDRESS>:8443
curl http3 document

I reproduced it.  The problem is indeed in the driver: it expects there to be -c options.  Fix is coming.
In the meantime, use -c option.  The server won't do anything useful without it, anyway.

Fixed in release 2.7.1.


GUI airline dashboard and create airline

airline_repository.py
airlines.jsonl
__init__airline.py
amended main.py for testing only.

Updated code into modules and also added set up instructions for Windows because some of our peers were having trouble setting up the project


Function composition: LTR flow vs. RTL compose

What about the standard function composition? I.e. flow with order of arguments reserved.
Why is it not part of this proposal? It would fit right in.

We used to have an RTL compose, but then we went back and forth over whether to match the LTR direction of pipe versus the RTL direction of mathematical function composition. I am confident that the Committee will balk at adding three similar functions—pipe, flow, and compose. (It may already be difficult enough to ask for two new functions pipe and flow instead of one new function, and we might have to end up dropping either pipe or flow.)
In other words, my feeling is that the Committee will be unenthusiastic about including both flow and compose, or composeLeft and compose, or whatever the pair would be named (see also #3).
We do need to talk about which we should include, assuming that we did have to pick one: a LTR flow or a RTL compose. LTR _.flow from Lodash has some significant usage. And, of course, RTL compose may fit the mental model of developers that use libraries like Ramda.

What are the arguments for the two directions? If we were to have both (just for the sake of argument), how would one decide when to use which?

I think LTR is generally more preferred when you have the argument to pass in and you're evaluating the whole composition right then (basically the same as how all the |> examples look), since with RTL style the argument weirdly goes at the bottom/end/right rather than at the top/start/left where it will actually be sent to.
By contrast, RTL is generally more favored, from what I have seen in the FP world, when you're defining a function that will be used later. It's especially considered a bit more readable because of symmetry of source code syntax order:
const f = v =>    three(two(one(v)));

const f = compose(three,two,one);

I'd prefer a proposal for both compose and flow (under whatever names), but leave pipe (that immediately applies) to the pipeline proposal. I think once you have values/variables, syntax wins over a helper function, function composition is more suitable for point-free programming.

I’m slowly coming around to @getify’s view that a pipe function is less important than either LTR composition and RTL composition.
I do suspect that RTL composition will be a hard sell to the Committee without more specific use cases demonstrating that RTL composition is common or useful. “Symmetry of source code syntax order” is probably not a very compelling reason to the Committee in general why to include RTL compose in addition to LTR flow.
So, if I were to predict the Committee’s opinion, it would be that they might favor adding LTR flow alone the most, and not adding pipe or RTL compose.
I’ve edited the plenary slides to emphasize our eight choices:

Status quo
LTR flow
RTL compose
LTR flow & RTL compose
pipe
pipe & LTR flow
pipe & RTL compose
pipe, flow & RTL compose

Please keep in mind that I am asking merely for Stage 1 at the plenary next week, which means that I am asking that the Committee formally consider this problem space to be worth exploring. I will present these possible solutions as what they are: tentative solutions for preliminary feedback. I’ll follow up here with the results of that preliminary feedback.

@Avaq: Yes, you are correct: it would be 42 |> Function.flow(one, two, three)(^). (I’m not dismissing Function.pipe out of hand—I would find it useful too—but I do suspect the Committee will ask, “We are fine with flow but does pipe give that much extra benefit with |>?)

But it's very unlikely this operator will make it into the language

I wasn't arguing for whatever the state of the |> proposal is... I stopped following it because I don't think it's a good feature and I don't plan to use it myself.
I personally would never prefer 42 |> flow(one,two,three)(^) over just flow(one,two,three)(42).
But even if we leave |> out of it, and we're just comparing:
// (1)
pipe(42,one,two,three)

// (2)
flow(one,two,three)(42)

// (3)
compose(three,two,one)(42)

In order of preference, my votes are (3), (2), and (1) -- yes, pun intended here. And I think that is an even better argument for why RTL compose(..) is still needed.

without more specific use cases demonstrating that RTL composition is common

I've seen a lot of FP oriented code, especially JS code, and my belief is that RTL compose is far more common (whether it's binary or variadic) than LTR.
Moreover, most FP libraries have both forms, so it seems too myopic for the committee to just pick one or the other.

I had previously used Elm a bit which provides LTR and RTL for both pipe and compose, and I remember my own preference for them:
I would use LTR when I was putting each step on its own line, and RTL when I was putting it all on one line.
Having a RTL ordering for something like this makes sense:
const fn = compose(step3, step2, step1)
// later
fn(x)

but it's more jarring for something like this:
const fn = flow(
  step3,
  step2,
  step1,
);
// later
fn(value)

They make even more sense when you have operators that are pointing at the direction of flow, so you don't have to remember which name is associated with which direction.

I've seen a lot of FP oriented code, especially JS code, and my belief is that RTL compose is far more common (whether it's binary or variadic) than LTR.
Moreover, most FP libraries have both forms, so it seems too myopic for the committee to just pick one or the other.

Yeah—I myself would be fine with both. As we both know, the Committee is conservative when it comes to adding anything to the language. I’ve heard the phrase “but are there any specific use cases?” from engine implementors dozens of times during the meetings—I can hear it already, even though the plenary is next week!
To be fair, it is always better to be able to provide concrete evidence that developer experience would be significantly improved by a specific choice (such as including both LTR and RTL composition).
So, ideally, what someone could do is a small survey of codebases to see if there are snippets that clearly demonstrate RTL composition being better than LTR composition. (I already did this on lodash-flow’s NPM dependencies, as well as open-source JavaScript repositories containing the word “pipe”.) This is a pre-Stage 2 concern, so we don’t have to worry too much about this yet, but it’s something that needs to eventually be done.

I might have a bias because of the tools we use, but I've also written a lot of code using Ramda, and I'm a core contributor to Sanctuary and have used it very extensively. It's actually my experience maintaining Ramda based code which has led me to my negative opinion on RTL compose as a tool for code linearization. A quick search in one of our large fp-ts based projects shows 25 usages of flow and 262 usages of pipe. We try to use flow whenever we can for aesthetic reasons (point free looks pretty) but yet, we end up using pipe 10 times as much because in many data pipelines the input argument to pipe is reused somewhere else, or taken from an outer context.

This is fascinating data. Thank you! I would love any specific snippets that might demonstrate the tradeoffs between fp-ts’s LTR pipe and RTL compose.

42 |> flow(one,two,three)

Ah, the F# pipe. 😁
But yes, I agree with your proposition that pipe(x, ...fns) is unnecessary in view of the Hack-pipe proposal going through.

Nevertheless, I will present pipe alongside flow, as well as RTL compose. Let me know if you have any feedback on the plenary slides.)

I think I see a typo on page 3:
Function.compose and
Function.flowAsync
(for LTR serial composition).

I guess that should be:
Function.compose and
Function.composeAsync
(for RTL serial composition).

Also:
Function.compose and Function.compose would be the same as Function.flow and Function.flowAsync but reversed.

To:
Function.compose and Function.composeAsync would be the same as Function.flow and Function.flowAsync but reversed.

Here's another way to view the debate of "Just one, or both": if you only ship one (whichever one), what's the expected likelihood that many code bases will just build the other out of the provided one?
// have to define this manually, ugh
function flow(...fns) {
   return compose(...fns.reverse());
}

Or...
// have to define this manually, ugh
function compose(...fns) {
   return pipe(...fns.reverse());
}

I can say for sure, on pretty much all of my FP projects, I would end up writing one or the other of those (or using some library that has it!) depending on which of the two (LTR or RTL) the JS language shipped natively.
Even if we assume the above 10-to-1 ratio (great data btw, thx!), where LTR is strongly preferred over RTL... the real metric is, how many code bases have ONLY one form of composition and not a single occurrence of the other form? I strongly suspect most full code bases make use of both forms, even if indeed the ratio is not very equal in either way.

Please review the arguments made here for my line of thinking: tc39/proposal-function-helpers#5 (comment)

Function.flow(Math.sin, Math.round, JSON.stringify)

[…] is both easier to read, and easier to refactor from and to
x => Function.pipe(x, Math.sin, Math.round, JSON.stringify)

That's true, but on the other hand one would argue that
Function.compose(JSON.stringify, Math.round, Math.sin)

is both easier to read, and easier to refactor from and to
x => JSON.stringify(Math.round(Math.sin(x)))

Instead of the variadic compose function, [some problem] is best addressed by a unary curried function composition combinator

I doubt anyone could convince the committee to adopt curried functions into the standard library. This style of programming is just too niche in JavaScript. Hardly anybody would prefer to write
const {compose} = Function;
const add = a => b => a + b;
const addThenSqrt = compose(compose(Math.sqrt), add);
console.log(addThenSqrt(140)(4))

over
const {compose} = Function;
const add = (a, b) => a + b;
const addThenSqrt = (x, y) => Math.sqrt(add(x, y));
console.log(addThenSqrt(140, 4));

Even in Haskell, (sqrt .) . (+) / (.) ((.) sqrt) (+) is usually considered pointless, not just pointfree. If really necessary, people use a separate operator, like sqrt .: (+).

@shuckster: Thanks for spotting those typos in my slides; I fixed them.

I will present pipe alongside flow, as well as RTL compose. Let me know if you have any feedback on the plenary slides.)

I think slide 3 should say RTL instead of LTR under compose

Due to its rejection for Stage 1 on 2022-07, I’m withdrawing this proposal. I really appreciate everyone here giving discussion, though. (In the far future, after the pipe operator gains users, pain points with the pipe operator may be enough motivation to revive this proposal.) Happy trails to all.


Ix-Async NuGet package framework assemblies are wrong

The Ix-Async package has the following structure.

Ix-Async

lib

net40
net45
portable-<targets>

But the nuspec has these framework assemblies.
<frameworkAssemblies>
  <frameworkAssembly assemblyName="System" targetFramework="" />
  <frameworkAssembly assemblyName="System.Core" targetFramework="" />
</frameworkAssemblies>

Because the targetFramework attribute is empty, it tries to add references to System and System.Core on Universal Windows Apps. To prevent this, the elements should look something like this.
<frameworkAssembly assemblyName="System.Core" targetFramework=".NETFramework4.0" />

/cc @rowanmiller @divega

[cleanup] PR has been merged time ago. Maybe this can be closed now?

this is fixed in master


预训练模型在哪

“Please download the pretrained models here.”，意思是提供了预训练模型吗，在哪下载？

Due to the limitation of the storage on github, we provide large files in Baidu cloud storage, and here is the link:
Link: https://pan.baidu.com/s/1vW9emHqqHrDZJ1abS4UCxA
Extra code: dwc0
This info is also updated in readme now.


There's no Change log or Release History file in the code base

Hi, I cannot find the common Change log file in this Repo and also not in PyPI. It is better to have it as a open source project.

The releases section of the repo is listing major changes with every release. What do you feel is missing there? I am not a fan of commit based automated change log generators as I find they often contain too much junk, making them hard to read


Delete Annotation and Redaction Box

As an IAO user
I want to be able to easily delete redaction boxes
so that I don't have to repeat tasks

Assumptions & Scope
This is related to a user story written for refinement around wanting to make a redaction region and the annotation a single object. Making them a single object was not possible, but it was possible to make it so both the annotation and box would always delete.
During usability tests, it was determined that if a user inadvertently selected the FOIPPA section annotation instead of the redaction box/mark, and deleted it, they would just delete the annotation and leave the redaction box. If the user selects the redaction box/mark, and deletes it, it will delete both the redaction box/mark and the FOIPPA section annotation.
For clarity in the scenarios below:
Redaction box/mark:

FOIPPA section annotation:

Redaction panel, with redaction box/mark

What is IN scope?
What is NOT in scope?
Acceptance Criteria
Scenario 1: User Deletes Redaction - Box

GIVEN an IAO user is on the redaction app
WHEN they select a redaction box/mark and delete it
THEN both the redaction box/mark and FOIPPA section annotation will be deleted

Scenario 2: User Deletes Redaction - Annotation

GIVEN an IAO user is on the redaction app
WHEN they select a FOIPPA section annotation and delete it
THEN both the redaction box/mark and FOIPPA section annotation will be deleted

Scenario 3: User Deletes Redaction - Panel

GIVEN an IAO user is on the redaction app
AND the redaction panel is open
WHEN they select a redaction box/mark from the panel
AND they delete it
THEN both the redaction box/mark and FOIPPA section annotation will be deleted

Dependencies? What is the impact of this dependency? (If so, link dependency in the ticket, make it visible in a team´s backlog)
Validation Rules? (If yes, list here)
Design
@xxx - please link the Design here
Definition of Ready

[ ] Is there a well articulated User Story?
[ ] Is there Acceptance Criteria that covers all scenarios (happy/sad paths)?
[ ] If there is a user interface, is there a design?
[ ] Does the user story need user research/validation?
[ ] Does this User Story needs stakeholder approval?
[ ] Design / Solution accepted by Product Owner
[ ] Is this user story small enough to be completed in a Sprint? Should it be split?
[ ] Are the dependencies known/ understood? (technical, business, regulatory/policy)
[ ] Has the story been estimated?

Definition of Done

[ ] Passes developer unit tests
[ ] Passes peer code review
[ ] If there's a user interface, passes UX assurance
[ ] Passes QA of Acceptance Criteria with verification in Dev and Test
[ ] Confirm Test cases built and succeeding
[ ] No regression test failures
[ ] Test coverage acceptable by Product Owner
[ ] Ticket ready to be merged to master or story branch
[ ] Developer to list Config changes/ Update documents and designs
[ ] Can be demoed in Sprint Review
[ ] Tagged as part of a Release
[ ] Feature flagged if required
[ ] Change Management activities done?

Added images and edited verbiage for clarity

I'm wondering if we want to consider changing the icon in the redaction panel, next to a redaction box/mark, to a trash can icon? It's possible users could misinterpret this as being a sort of notification and thinking the X will clear it, rather than it being an actual redaction that will be deleted once clicked one.

Note: remove scenario 1 - app already works as expected. For scenario 2 (soon to be 1) - selecting the annotation will ultimately remove the edit panel, which will not allow them to delete it and will force the user to click on the box instead.

refinement notes:
we will disable the selection of section annotation.

@KyEggleston @m-prodan  @liseandtea - Group and Ungroup buttons are disabled/removed for now as discussed.

These ACs pass, following the decision to use the group feature (i.e., any time a redaction is drawn, and a FOIPPA section applied, these two annotations will be grouped together in the Comments pane, thereby allowing them to be deleted together)


fix: some bugs

fix #107
fix #108
fix #110
disable sheet moving #111
fix #120

Is the fixed already push? I can see a new version (0.10.0) published 11 days ago
But maybe it was another one ^^

A new version (0.10.1) will be released tomorrow which includes these fixes. In our process, the new version needs to be released on the basis of the master branch. :)

lgtm

LGTM

@shuanhukexuejia  @Qaplagzy today I tried with following version still Limiting rows and columns are not working.
https://github.com/ruilisi/fortune-sheet/issues/120
"@fortune-sheet/core": "0.11.0",
"@fortune-sheet/react": "0.11.0",


Cannot create live connection to Power BI dataset if dataset has a live connection to on-prem SSAS

It seems that is not possible to create a live connection to a Power BI dataset from Power BI desktop if that dataset contains a live connection to an on-premises Analysis Services model.
If true, please add a point to the Limitations and Considerations section.
Repro steps:

From Power BI Desktop establish a connection to an on-prem Analysis Services model.
Save and publish the report to the Power BI service.
Close and re-open Power BI Desktop.
Attempt to create a live connection to the Power BI dataset in the Power BI service.
The connection attempt fails.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: a1cce347-2064-d2b3-d7dd-008ecdb36013
Version Independent ID: 6abb84b5-1657-c8b1-62ef-641883c0e4b9
Content: Connect to datasets in the Power BI service from Power BI Desktop - Power BI
Content Source: powerbi-docs/connect-data/desktop-report-lifecycle-datasets.md
Service: powerbi
Sub-service: pbi-data-sources
GitHub Login: @davidiseminger
Microsoft Alias: davidi

Thanks for your comment @Dan1480. I have forwarded your observation on the the doc author for further consideration.

Thanks for your comment! This looks like a support request rather than documentation feedback. You might find a solution in the Power BI Community, found at https://community.powerbi.com. If not, you can get support by going to https://support.powerbi.com. If you learn from the community or support that this article does indeed need updated, feel free to reopen this with the information and reference.


Request spec environment is 'test' when run alone, but 'production' when run as a suite

Versions
OS: OSX 10.11.1
Ruby: 2.3
Rails: 5.0
Rspec, rspec-core, and rspec-rails: 3.5.0
Steps to reproduce

Create new Rails 5 project
Create basic home controller and routes
Create feature spec with the contents puts Rails.env
4a. Run the spec using rspec <path to request spec>
4b. Run as a suite using rspec spec

Expected behavior
Step 4 should return test in both circumstances
Actual behavior
Step 4a returns test and step 4b returns production
Pictures

The spec itself
When ran alone
When ran as a suite

I believe you have something setting the production environment via the environment variables RACK_ENV or RAILS_ENV when running the entire suite, try grepping your codebase.

@JonRowe, there are no hits for RACK_ENV, and RAILS_ENV never gets set to production

@kieraneglin we never modify those values ourself except to test so it must be coming from somewhere, are you using a .env file or other environment variable setting method? Whats the value for those two in env (a command line command).

Hi @kieraneglin
Thanks for the issue. We need a little more detail to be able to reproduce this.
Could you please provide us with a rails app that we can clone that demonstrates the issue. Specifically it'd be great if

you could rails new an application and commit
make all the changes necessary to reproduce the issue and commit

then, provide us with a description of how to clone your application and reproduce the issue.
Thanks 👍

This issue has almost no chance of being a bug in RSpec. I recommend closing until @kieraneglin can create a reproduction case as requested above.
@kieraneglin if you are still having this problem and can link to your whole application rather than creating a reproduction case, I'm interested in taking a look.

Thanks, @mikegee for the bump and the help offer. Closing it for now.


Latex drawer now graphs symmetrical gates and their names together

Summary
Fixes #6050 and updates some of the tests using the methods that were affected.
Details and comments
Currently, the latex drawer uses \dstick to write the names of symmetrical gates (namely, RZZ, CU1, CP). As @enavarro51 noted, this leads to issues in the qcircuit package, which takes such names to the next column and looks odd when a symmetrical gate is in the same layer as a really wide gate.

Also, depending on the spacing between wires, the location of the name could look arbitrary.

By using \cds instead, we can fix (or at least mitigate) both issues. First, it allows us to place the name of the gate in the same column as the \control command (in the xymatrix). Also, using -1 as the first parameter of \cds seems to locate the label in the middle of two wires, no matter the spacing.

The corresponding LaTeX tests were also updated to follow these changes.

Good find on this. It almost works for every case. But you have to allow for the possibility of a float as a param, so this circuit,
qc = QuantumCircuit(3)
qc.x(0)
qc.cu1(3.222, 0, 1)
qc.draw('latex')

gives you,

You may have to adjust the hspace based on how wide the param is.

You may have to adjust the hspace based on how wide the param is.
Nice catch! I kind of figured it out by defining a length command \glen and setting it to the length of the gate text name each time a symmetrical gate is used. I'll submit the commit soon.

This is looking good. A smaller font for the floats might be good, but if that's not a reasonable option, you can just increase the column count for symmetric gates from 4 to 5. You need to do it in two places.
https://github.com/jsistos/qiskit-terra/blob/cf58afdf3db6bf5a006a0bb875f37b2fecfdfd4e/qiskit/visualization/latex.py#L274
https://github.com/jsistos/qiskit-terra/blob/cf58afdf3db6bf5a006a0bb875f37b2fecfdfd4e/qiskit/visualization/latex.py#L490
5 columns may seem like a lot, but in qcircuit land, the U gate here takes up 1 column and the cu1 takes up 5. There may be a  bit of excess space for simple pi/2 params, but trying to change column counts dynamically might be too much.

Thank you for the observation. I think for now I will change the number of columns, and I'll upload the changes as soon as I can successfully update the tests that depend on this.

@jsistos Just checking if you are still working on this. The merge conflicts should not be too bad. For the .tex files you can just delete those in your local references dir and run the visualization test locally to recreate them after merging with main.

@jsistos as we haven't heard from you I will reassign to @enavarro51, if you would still like to work on it please reach out to Ed about continuing to work on it together 😄

I'll close this as superseded by #6877 as discussed above (which is also currently a bit stale).  Feel free to re-open/re-submit if I've missed something, though.


Fullscreen mode

I'd like to have ParallaxBlur in fullscreen mode, where there is a translucent navigation bar and the Image View's origin is (0, 0)

Is what you're looking for similar to this? https://github.com/pyro2927/ParallaxBlur/issues/4#issuecomment-59652737


Enable sriovNetSupport for AWS wrapped instances

If the AWS wrapped instance does not have sriovNetSupport enabled,
then stop the instance (which is required) and try to enable the
same. Report an error if sriovNetSupport cannot be enabled, but
leave the instance running as the only drawback is that the
network performance might not be optimal.

@jimvoll can you review this along with Andy? I am not convinced that this is the right change. I'd rather prefer that the MV AMI has sriovNetSupport enabled. That way when you launch the wrapped instance, either using the CLI or directly from the AWS console (or other orchestration tools), user does not have to manually enable sriovNetSupport for the wrapped instance.

Closing this pull request as Andy agreed that the best way forward is to enable sriovNetSupport on the base AMIs themselves.


Release v23.0.0

Note - this is version 23.0.0 due to a previously yanked version using v22.0.0; this release is unrelated to the yanked version.

Add heading option to input component (PR #1747) MINOR
Add analytics from static (PR #1745) MINOR
BREAKING Layout header component always displays product name and environment when provided (PR #1736)
Add heading option to panel component (PR #1741) MINOR
BREAKING Force contents list title to always be Contents or regional equivalent (PR #1734)
BREAKING Remove ability to pass Govspeak unsanitized HTML (PR #1632)

@injms I've rebased this and updated the description following the merge of the analytics and input label as heading PRs.

Also would be good to get https://github.com/alphagov/govuk_publishing_components/pull/1751 into this release as well, if possible.

Have rebased to include https://github.com/alphagov/govuk_publishing_components/pull/1751


Golden label Dimension

Hi Juntao,
Your paper published on ACL2020 is great! I am extremely inspired by your smart design. I was looking through your implemention. May I clarify my doubts with you about the golden label dimension.
The biaffine score of ner after mask is reshaped as [num_sentence * max_sen_len * max_sen_len, tag_size].
May i know how you design golden label to be [num_sentencemax_sen_lenmax_sen_len]? As for traditional NER method, the label is in [num_sentence*max_sen_len].
Thank you,
Looking forward to your reply.
KC

Hi,
Thanks for the kind word:)
The biaffine score after the mask is strictly speaking not [num_sentence * max_sen_len * max_sen_len, tag_size] but [num_sentence * all_possible_span_in_sentence, tag_size]
The all_possible_span_in_sentence = sent_len+(sent_len-1)+(sen_len-2)+...+1 = (sen_len+1)*sen_len/2
The traditional NER, you will use the sequence labels in which each word will have a label (BIO labels) for my approach I first create a gold NER label map from the BIO format:
e.g.
I               O
visited     O
the           B-ORG
Bank        I-ORG
of             I-ORG
China       I-ORG
today      O
.              O
We will get a ner map {(2,5):ORG}
So for the gold label, you simply use three loops, one for sentence, one for the start of the span and one for end of the span and check if the (start, end) pairs have gold NER labels otherwise you set the label to 0 which means non-entity.
gold_label = []
For sent in sentences:
create_gold_ner_labels for current sent
For start in range(sent_len):
For end in range(start,sent_len):
gold_label.append(gold_ner_labels.get((start,end),0)


Add artifacts and deploy

"Add deployment artifacts for the app so it can be managed by Kubernetes"

[x] Create deployment.yaml
[x] deploy with IBM k8s

I turned debug off so I'm not sure what sort of internal issue there is with the app... I could rebuild the images with the flag on to find out. (But at this point, we're ready to cut some losses. The K8s cluster is configured for use in the lab...)

Not sure how long this link will last but here it is for good measure: https://tracialisa-8000.theiadocker-3-labs-prod-theiak8s-4-tor01.proxy.cognitiveclass.ai/


Interceptor Redesign/Rewrite and OpenTelemetry Implementation

What was changed
See the proposal at https://github.com/temporalio/proposals/pull/45.

All existing interceptor code was remove (in fact, entire interceptors package was removed)
New interceptor package added with support for client, workflow, and activity interception on par with other SDKs
OpenTelemetry support on top of new interceptors
OpenTracing support on top of new interceptors
Various tests and utilities for supporting new interceptors

The review looks larger than it is due to Go boilerplate.
Why?
Go's existing interceptor design was limited and didn't support tracing, activities, clients, etc.
Checklist

Closes #265
Closes #526
Closes #529
Closes #602
There is a spot or two in the review that I'll point out that may warrant discussion
https://github.com/temporalio/documentation/issues/714 will track public interceptor documentation
https://github.com/temporalio/samples-go/issues/150

@cretz Thanks for working with us! I'll take a look at this PR and follow up with you in case there's any further change needed.

Marking outstanding conversations sans response since yesterday as "resolved"


deploying on different stage fails when domain name is configured with cloudflare

I have a domain name configured with Cloudflare, which works perfectly with Ion. However, I'm trying to deploy my app on a stage other than the default one, but it's failing with the following error: expected DNS record to not already be present but already exists

can i see the code for this? if you have two stages they can't both have the same domain name

I had my app already deployed on the default stage. However, changing it to production results in the error above.
this my sst.config.ts
/// <reference path="./.sst/platform/config.d.ts" />
export default $config({
  app(input) {
    return {
      name: "notes",
      removal: input?.stage === "production" ? "retain" : "remove",
      home: "aws",
      providers: { cloudflare: true }
    };
  },
  async run() {
    new sst.aws.Astro("MyWeb", {
      domain: {
        name: $app.stage == "production" ? "my-domain.com" : $app.stage + "-my_subdomain.com",
        dns: sst.cloudflare.dns({
          zone: "my_zone_id"
        })
      }
    });
  },
});

I removed my wn credentials (this is internet lol)

to make it work, i had to run sst remove and then sst deploy --stage production. it would be nice if SST had an option to detect stage change and handle domain creation properly


Installation issues on Mac

Hey,
I tried to install the package using pip but I'm getting an error. I have added the traceback below:
$ pip3 install vocabulary
Collecting vocabulary
  Downloading Vocabulary-1.0.2.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/bd/tp7n9v393ml9src1bt4m70180000gn/T/pip-build-4zb4lgql/vocabulary/setup.py", line 22, in <module>
        with open(path.join(here, 'requirements.txt'), encoding='utf-8') as f:
    FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/bd/tp7n9v393ml9src1bt4m70180000gn/T/pip-build-4zb4lgql/vocabulary/requirements.txt'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/bd/tp7n9v393ml9src1bt4m70180000gn/T/pip-build-4zb4lgql/vocabulary/

I wasn't able to install Vocabulary in a clean virtual environment (with no installations of requests and mock) either.
$ pip install vocabulary
Collecting vocabulary
  Using cached Vocabulary-1.0.2.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/bd/tp7n9v393ml9src1bt4m70180000gn/T/pip-build-erniz75j/vocabulary/setup.py", line 12, in <module>
        from vocabulary.version import VERSION
      File "/private/var/folders/bd/tp7n9v393ml9src1bt4m70180000gn/T/pip-build-erniz75j/vocabulary/vocabulary/__init__.py", line 5, in <module>
        from .vocabulary import Vocabulary
      File "/private/var/folders/bd/tp7n9v393ml9src1bt4m70180000gn/T/pip-build-erniz75j/vocabulary/vocabulary/vocabulary.py", line 25, in <module>
        import requests
    ImportError: No module named 'requests'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/bd/tp7n9v393ml9src1bt4m70180000gn/T/pip-build-erniz75j/vocabulary/

As can be observed in the traceback, this issue is due to the import statement in __init__.py module which .
How about we move define the version and release in the setup.py itself so as to keep things condensed ?
On a separate note, I believe that we are using rather constrained dependency package versions.
For example, any version of requests above 2.0.0 should work fine as a dependency.
What's your take on this?

Bumping since I'm facing the same issue in Ubuntu 16.04
`Collecting vocabulary
Using cached Vocabulary-1.0.2.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "", line 1, in
File "/tmp/pip-build-PWXQ1D/vocabulary/setup.py", line 19, in
with open(path.join(here, 'requirements.txt')) as f:
IOError: [Errno 2] No such file or directory: '/tmp/pip-build-PWXQ1D/vocabulary/requirements.txt'
----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-PWXQ1D/vocabulary/
`

@kshitij10496

How about we move define the version and release in the setup.py itself so as to keep things condensed ?

As of now, the version and release vars are inside the package vocabulary, this way we are keeping it DRY.
Right now I have made a quick fix in setup.py here at https://github.com/prodicus/vocabulary/blob/1.0.4/setup.py#L15-L26 for a failing
$ pip install vocabulary --no-cache
Collecting vocabulary
  Downloading Vocabulary-1.0.3.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/sw/nsjcqtxs1yldt7y1gsqkfnw00000gn/T/pip-build-trous1cm/vocabulary/setup.py", line 22, in <module>
        with open(path.join(here, 'requirements.txt'), encoding='utf-8') as f:
    FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/sw/nsjcqtxs1yldt7y1gsqkfnw00000gn/T/pip-build-trous1cm/vocabulary/requirements.txt'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/sw/nsjcqtxs1yldt7y1gsqkfnw00000gn/T/pip-build-trous1cm/vocabulary/

Need to create an issue and fix that

On a separate note, I believe that we are using rather constrained dependency package versions.
For example, any version of requests above 2.0.0 should work fine as a dependency.
What's your take on this?

Please read https://www.kennethreitz.org/essays/a-better-pip-workflow :)
Happy to answer any more things that you have in mind


Bug with the titleconfig.yml of jobs

Hello,
The titleconfig.yml don't workd with the last release Jobs-v4.16.3.jar .
I have the chat-display to "full".
My config is great :
Titles:
Apprentice:
Name: Apprenti
ShortName: A
ChatColour: YELLOW
levelReq: 0
Novice:
Name: Novice
ShortName: N
ChatColour: GREEN
levelReq: 15
Initie:
Name: Initié
ShortName: I
ChatColour: DARK_GREEN
levelReq: 30
Pro:
Name: Pro
ShortName: P
ChatColour: AQUA
levelReq: 45
Expert:
Name: Expert
ShortName: E
ChatColour: RED
levelReq: 60
Genie:
Name: Génie
ShortName: G
ChatColour: DARK_RED
levelReq: 75

Server PaperSpigot last version
Version 1.16.3
Thk in advance for the support and repair.

Can't reproduce. It works for me. Show a screenshot for proof in chat formatting and make sure modify-chat is enabled.

There is no any {jobs} placeholder added to JobsReborn, use %jobsr_user_displayhonorific%. Also Jobs have own built chat-formatting which should work with titles. Available placeholders

Modifys chat to add chat titles. If you're using a chat manager, you may add the tag {jobs} to your chat format and disable this.
It's written in the generalconfig ...

Whats the result in game within chat?

Only the name of the Jobs

Do you have Mineur title set in titleConfig? What you sent before does not have.

Do you have Mineur title set in titleConfig? What you sent before does not have.

No because the title wa based to the level of job. Mineur is the name of the Jobs.

Which version of jobs you used before you installed the dev release?

The last version in spigot.

https://github.com/Zrips/Jobs/commit/2c5dcbc5a1562b0c1765ab0ce6a8619ce550a48a, This should fixes this issue. You can get the new jar file from dev-releases channel after I uploaded a new one (see the date time).


Add explicit detach CLI option

This approach would (arguably) be less surprising than the currently overloaded behavior of the -a or --attach flags and would simplify some assignment logic in Tmuxinator::Cli.

A use case for this would be starting a tmuxinator project from a script (e.g. a systemd service) in detached mode, but then attaching it manually. In case the script started the project, which has attach: false in the config to make the script start it detached, this can be simply done by tmux attach-session, but if the project has not been started one would run tmuxinator start, which doesn't attach because of the config flag.
Ideally one would put tmuxinator start -d (detached mode, which overrides attach: true in the config) in the script and use tmuxinator start (attach or start new) when run manually. The flag -a for attach would do the opposite, overriding attach: false in the config.
I might am missing something but I don't see a non convoluted way to do this.

Bumping this. This would be a really nice feature.
For my use case, this would allow me to write shell function to automatically start up multiple tmuxinator projects at once, without having to first attach, then detach from each project as they get created.
Ex., I have a custom fish function, tmuxinator_startup that launches 2 tmuxinator projects, but when it runs, I automatically get attached to each tmuxinator project, so I have to detach, before the next can start up, which I think is kind of a weird workflow:
function tmuxinator_startup -d "Starts up tmuxinator projects"
    tmuxinator dotfiles
    tmuxinator work_notes
end


fix: check image processor installation status

Calling getImageProcessorLibrary actually returns a String, not an Array.
Interestingly, this is correctly implemented in another method in the same class:
https://github.com/oroinc/platform/blob/df0bfdccd8cd5b5af52639ae5999b3955caaeb81/src/Oro/Bundle/InstallerBundle/Provider/PlatformRequirementsProvider.php#L525-L531
fixes #1068

Thank you for your pull request.
It looks like this may be your first contribution to an Oro, Inc. open source project, in which case you'll need to sign a Contributor License Agreement (CLA) at https://oroinc.com/b2b-ecommerce/contributor-license-agreement/
If you've already signed the CLA, it's possible we don't have your GitHub username or you're using a different email address. GitHub uses the email address you set in your local Git configuration to associate commits with your GitHub account. Please sign the CLA again using the correct GitHub username and email address or see this help article on setting the email on your git commits.
Once you've signed the CLA, please allow for some time for the submission to be processed.


Improve plugin template index.html

Before:

After:

Coverage remained the same at 97.935% when pulling 3109a90d676ae89e3b35bcf2719b957ebd0ccf49 on 196-improve-plugin-index into 23c8466757444d3114b7a1f41b0408dbd70cc8dc on master.


Bug: Contact Sensor, Motion Sensor and Meter does not update state

Describe The Bug
Thanks a lot for integrated BLE only function! It works so far with the Bot. In terms of Contact Sensor, Motion Sensor and Meter  i am able to add them to Homebridge but the state of the device does not change. For instance if a open the contact sensor the open state is not submitted to homebridge. Same for Motion sensor and Meter.
To Reproduce
Add contact sensor per BLE to Homebridge and open the sensor
Expected behavior
State should change once the sensor changes his values like open for contact sensor or motion for the motion sensor
Relevant log output
SwitchBot_Log.txt
Config for homebridge-switchbot
"options": {
                "devices": [
                    {
                        "deviceId": "D273C8Axxxx",
                        "configDeviceName": "Bot Test",
                        "configDeviceType": "Bot",
                        "ble": true,
                        "bot": {
                            "mode": "press",
                            "deviceType": "switch"
                        }
                    },
                    {
                        "deviceId": "F5F453Exxxx",
                        "configDeviceName": "Contact Sensor",
                        "configDeviceType": "Contact Sensor",
                        "ble": true
                    },
                    {
                        "deviceId": "84F70353xxxx",
                        "configDeviceName": "Color Bulb Test",
                        "configDeviceType": "Color Bulb",
                        "ble": true
                    },
                    {
                        "deviceId": "E1D35C4Dxxxx",
                        "configDeviceName": "Meter Test",
                        "configDeviceType": "Meter",
                        "ble": true
                    },
                    {
                        "deviceId": "F97B404Fxxxx",
                        "configDeviceName": "Motion Test",
                        "configDeviceType": "Motion Sensor",
                        "ble": true
                    }
                ],
                "refreshRate": 30,
                "debug": "device"
            },
            "platform": "SwitchBot"

Screenshots

I observed some smaller form issues. I guess the hide option related to the contact sensor has the wrong naming?

In the device section the Type of the device is not recognized although the device is configured as BLE device in config.json

Device & Model
Switchbot Contact & Motion Sensor, Meter, Bulb
Node.js Version
v14.18.1
NPM Version
v6.14.15
Homebridge Version
v1.3.6
Homebridge Switchbot Plugin Version
v1.2.0
Homebridge Config UI X Plugin Version
v4.41.2
Operating System
Raspbian

I have fixed the issue with the connectionType with the latest beta. I will have to look into the states not updating for BLE though

HI, I'm getting this error
[25/11/2021, 12:00:47] [SwitchBot] [DEVICE] Device: Meter 59 Neither OpenAPI and BLE Enabled
[25/11/2021, 12:00:47] [SwitchBot] [DEVICE] Unable to Register new device: Meter 59 Meter - F2D210301B59
Have you got a fix by anychance

HI, I'm getting this error
[25/11/2021, 12:00:47] [SwitchBot] [DEVICE] Device: Meter 59 Neither OpenAPI and BLE Enabled
[25/11/2021, 12:00:47] [SwitchBot] [DEVICE] Unable to Register new device: Meter 59 Meter - F2D210301B59
Have you got a fix by anychance

@SeanHama Please open separate issue, as your issue is different then this issue.

@smartmatic This is an issue with node-SwitchBot, that will have to be fixed first before resolving it for this plugin.

@smartmatic This is an issue with node-SwitchBot, that will have to be fixed first before resolving it for this plugin.

What does that mean for my environment? Should i update to Node 16.x ?

@smartmatic That means node-switchbot need to be updated for this to work.

@smartmatic That means node-switchbot need to be updated for this to work.

@donavanbecker Thank you, done.
I've done some new test after installation of node-switchbot. Here are my quick results:
Bot:
I can control the Bot. If i click the button the arm moves but the state remains On like shown in the below screenshot. Do i click the Button again the arm moves again and Homebridge shows the state as off.
Meter:
Meter shows now values for temperature and humidity. The humidity value is the same as shown in switchbot app but the temperature is wrong.
Contact & Motion Sensor:
Both devices does not react and i putted them close the PI in order to avoid any connection issues.

switchbot.txt

@smartmatic node-switchbot is what this plugin uses to connect to BLE Seitchbot devices. You don’t have to install it yourselves. But a fix in that library is needed to fix this plugin.

@smartmatic can you test the latest beta and let me know if it is working for you on BLE? With Motion and contact sensors.

v1.12.7 should resolve this.


Ugly runtime errors handling

Runtime errors are handled (here and here) by printing the error message and the error itself to console. This leads to ugly error messages like the one reported in #562.
Runtime errors should be handled by the same mechanism like compile errors. In particular, Juttle errors should be displayed with source excerpt.

The last one for @mstemm.


Decider Signers

⚡ Challenge:
We want to have two decision systems at the beginning: voting power erc20 (already implemented) and signers.
We need to implement decider signers.
🦋 Desired Outcome
Have decider signers decision system.
🎯 Action Points:

Use base decider and implement all functions with signers logic
Use gnosis safe as a direct caller and way how decisions are making
Allow to make decisions in onchain way (through decider signers)
Allow to make decisions in offchain way (through gnosis safe)

🐇 Additional Information
We are using gnosis safe as a direct caller, which means that tx calling dao can be initiated/decided with gnosis interface in offchain way and executes the decision in one dao call.
Also we are using gnosis safe in read-only mode to get respective data to go through decision process in onchain way.
🏆 Reward + Contributor involved
This bounty can be a pair programming bounty:
Bounty Size: L
625 DAI
Gardener - @roleengineer 0%
Worker - @roleengineer 500DAI
Reviewer - tbd 125DAI

solved https://github.com/0xHabitat/mvp/pull/25


docs improvement

Signed-off-by: Icarus9913<EMAIL_ADDRESS>What this PR does / why we need it:
documents
Which issue(s) this PR fixes:
close #1756

LGTM for the desc parts.


Add test_dealloc. Use uv_pipe to avoid bad fds.

With uv_socketpair we get bad file descriptors and test_dealloc (and other tests) fail.

Hi @Vizonex, can you check this PR?
Looks like using uv_pipe instead of uv_socketpair makes the bad fds disappear. In any case, test_dealloc passes this way, and also the bad fds are gone for test_context and test_signals (but these latter tests still have other issues).
Also, uv_pipe looks like a reasonable alternative for AF_UNIX sockets on Windows.

I'll let this one through let me make sure my version is up to date with this one by testing this on my computer

Feel free to let me know when I can release 0.1.4

Sure, you can release 0.1.4 now. More updates will follow, but it's good to have this version tested already.

Managed to fix the publish workflow by adding the use of submodules, v0.1.4 is now on PyPI.

On Thu, May 30, 2024 at 9:41 AM Berry Schoenmakers @.***>
wrote:

Managed to fix the publish workflow by adding the use of submodules,
v0.1.4 is now on PyPI.
—
Reply to this email directly, view it on GitHub
https://github.com/Vizonex/Winloop/pull/27#issuecomment-2139751453, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/A3K7GGWQLXV5KYKFVAA47GTZE43CDAVCNFSM6AAAAABIKBRUFWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZZG42TCNBVGM
.
You are receiving this because you were mentioned.Message ID:
@.***>

Thank you.


Update Package dependencies to latest versions

Ones we need to take:

Cosmos
Nats
Azure.Identity

Fixed via https://github.com/dotnet/aspire/pull/6530


Unable to mock external shared library methods

code under test: lint.groovy
def lintYamlFiles() {
    script {
        def detect = new detect()
        def changedFiles = detect.changedFiles()
        sh  '''
            #!/bin/bash -x
        '''
    }
}

I'm trying to mock execution of detect.changedFiles() like this:
class lintTest extends JenkinsPipelineSpecification   {
    def lint = null

    def setup() {
        lint = loadPipelineScriptForTest("../../src/org/xy/carbon/lint.groovy")
        explicitlyMockPipelineVariable('detect')
    }

    def "test 01: successfully invoke "()   {
        setup:   getPipelineMock('detect.changedFiles').call('script') >> "test"
        when:    lint.lintYamlFiles()
        then:     1 * getPipelineMock('detect.changedFiles')(_)

have also tried: getPipelineMock('detect.changedFiles').call() >> "test"

executions fail with:
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 3.914 s <<< FAILURE! - in lintTest
[ERROR] lintTest.test 01: successfully invoke   Time elapsed: 0.339 s  <<< ERROR!
groovy.lang.MissingMethodException:
No signature of method: org.xy.carbon.detect.script() is applicable for argument types: (org.xy.carbon.detect$_changedFiles_closure1) values: [org.xy.carbon.detect$_changedFiles_closure1@6917bb4]
Possible solutions: print(java.lang.Object), split(groovy.lang.Closure), print(java.lang.Object), print(java.io.PrintWriter), wait(), grep()
	at org.xy.carbon.detect.changedFiles(detect.groovy:9)
	at org.xy.carbon.lint.lintYamlFiles_closure1(lint.groovy:8)
	at org.xy.carbon.lint.lintYamlFiles_closure1(lint.groovy)
	at com.homeaway.devtools.jenkins.testing.JenkinsPipelineSpecification.addPipelineMocksToObjects_closure1$_closure14(JenkinsPipelineSpecification.groovy:682)
	at org.xy.carbon.lint.lintYamlFiles(lint.groovy:5)
	at lintTest.test 01: successfully invoke (lintTest.groovy:38)

Is it possible to mock interactions with methods in external libraries?

Is detect a variable in a Shared Library that will be present on your Jenkins master?
I think the disconnect here is .call("script") - try plain old
getPipelineMock('detect.changedFiles')('script') >> "test"

It's unfortunate, but the Groovy syntactic sugar of ".call() is implicitly the same as just attaching those parentheses to an object" doesn't work every time with the shenanigans we had to go through to get implicit, automatic mocking working in jenkins-spock.


Handle negative values of incx in nrm2.

In https://github.com/scipy/scipy/issues/16930, @M0reDr1nk noticed a discrepancy between reference LAPACK and OpenBLAS for the function dnrm2, in that reference LAPACK allows negative values of incx while OpenBLAS does not. Support for negative values of INCX was added in LAPACK 3.10 as part of adding Edward Anderson's Safe Scaling Algorithm. As far as I'm aware, support for negative indices was incidental to the addition of safe scaling.
I saw that there's a comment in gh-4130 stating that updating nrm2 to use safe scaling will be difficult due to the need to update the assembly kernels for a great number of architectures. I imagine it would be easier to add support for negative values of incx and am curious if there's interest in supporting negative values of incx before updating to use safe scaling, and if  this could be done in a reasonable time-frame. I would be willing to help in this effort if that may be of use.

Not sure if it makes sense to split the two subtopics, unless we can get away with just changing the starting x in the interface code (like e.g. dot does) and adapting the initial test in the assembly to only return early when the increment is zero. (Need to try this, seems even the reference did not update any tests to correspond to the new behaviour).
OTOH not failing on incx < 0 may be seen/used as an indication for actually being a new-style ?NRM2 routine ??
Anyway help is always welcome, in particular if you are somewhat familiar with assembly - I'm still something of a self-taught amateur there, more confident with small modifications to existing code than writing from scratch.

Not sure if it makes sense to split the two subtopics, unless we can get away with just changing the starting x in the interface code (like e.g. dot does) and adapting the initial test in the assembly to only return early when the increment is zero. (Need to try this, seems even the reference did not update any tests to correspond to the new behaviour).
OTOH not failing on incx < 0 may be seen/used as an indication for actually being a new-style ?NRM2 routine ?

That's what I was thinking too, that maybe it would mostly just need a change in the interface. I think I agree that it might not make sense to split the topics up though.

Anyway help is always welcome, in particular if you are somewhat familiar with assembly - I'm still something of a self-taught amateur there, more confident with small modifications to existing code than writing from scratch.

I'm also mostly a self taught amateur, and am currently only familiar with AT&T syntax x86-64, but am interested in learning more, and would like to reach a professional level. I'll look around the code-base a bit to try to get a sense of how the pieces fit together.

First test looking good for x86_64, but not sure if I can do the whole nrm2 redesign in one go... the alternative would be to redo the generic C implementation and retire the assembly ones for now.

Thanks @martin-frbg. I’d like to start learning how to write hand optimized assembly kernels so I can help with the full update of nrm2 to be compatible with Lapack 3.10. Do you have any advice for reading materials?


🐛 Bug ➾ optional parameter on entrypoint not correctly generated by Taqueria makes Typescript wrong

🚥 Status (Internal Taqueria Team Use Only)

[ ] 🔬 Investigated and Verified
[ ] ⚗ Solution Identified and Designed
[ ] 🧫 Dev Implementation of Fix
[ ] 🧪 Fix Tested and Validated
[ ] 🏆 PR Merged

🆘 What happened?

My entrypoint contains an optional, when I run the taqueria type generation it creates the fields in random postiion, so my optional field here appear on first position. On Typescript, we should list all mandatory fields first
Here the parameter in jsligo from the smart contract :
export type removeMemberRequest = {     member : address,      orgName : string,     lastAdmin : option<address> };
Here the portion of the file generated by Taqueria
type Methods = {     removeMember: (         lastAdmin?: address,         member: address,         orgName: string,     ) => Promise<void>;   ...
🆘 Steps to Reproduce?
add on optionla field on an entrypoint parameter and generate the type via taqueria plugin
🪵 Relevant log output
No response
🐘 How impactful is this bug?
🤔 Notable but managable
⏱ Prevalance
No response
💻 Operating System
None
🕸 System Architecture
None
🌮 Taqueria Version
v0.28.4
🌿 Node.js Version
No response
☎ Contact Details
No response
Code of Conduct

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

asking ligo team about WHO is deciding (alphabetic) field ordering in Michelson ...

Ok, I found a woraround, maybe it is also the way to fix it quickly
Keep same order, but change how Typescript generate the type definition
Do this
    lastAdmin: address | undefined,
Instead of
    lastAdmin?: address,
@mweichert @michaelkernaghan
Can you do this fix ?
I tried with taquito passing undefined and an address and both seems ok for the node
On tzkt indexer, it says when undefined is passed that the value on storage is null, so I suppose is the representation of None()

I saw you choose the reorder the fields, I am not sure it is working as Michelson contract field ordering has to be the same on the node side ...
You should do a test calling a contract
I would recommend replace myfield? by myField | null

@michaelkernaghan @mweichert For me the bug is still here. We should reopen this ticket as I need to manually process all generated files
I recommend to fix this with  myField | null   instead of myField?

OK, thanks for the additional feedback, @zamrokk. I had tested this but perhaps the contract I was using was not sufficient for this case.
Btw, Michael K and others from the ECAD Labs team are no longer working on Taqueria.

https://github.com/ecadlabs/taquito/issues/2344


Add SpatiaLite support

@bgsomeware could you please (force) reinstall the wheel from our gdalware index to test this branch with SpatiaLite support? Thanks.