[Bug] Converting Mistral-7B-Instruct-V0.2

🐛 Bug
Converting Mistral-7B-Instruct-v0.2 for Android results in an error.

Platform (e.g. WebGPU/Vulkan/IOS/Android/CUDA): Android
Operating system (e.g. Ubuntu/Windows/MacOS/...): Arch Linux
Device (e.g. iPhone 12 Pro, PC+RTX 3090, ...): PC for compilation
How you installed MLC-LLM (conda, source): pip
How you installed TVM-Unity (pip, source): pip
Python version (e.g. 3.10): 3.11.6
TVM Unity Hash Tag: 457f5bc4c94604bbb275465cb64f951f2ecdb3f4

(mlc-llm) [scarlett@zen mlc-llm]$ python3 -m mlc_llm.build --target android --max-seq-len 768 --model ./dist/models/Mistral-7B-Instruct-v0.2 --quantization q4f16_2
Using path "dist/models/Mistral-7B-Instruct-v0.2" for model "Mistral-7B-Instruct-v0.2"
Target configured: opencl -keys=opencl,gpu -max_function_args=128 -max_num_threads=256 -max_shared_memory_per_block=16384 -max_threads_per_block=256 -texture_spatial_limit=16384 -thread_warp_size=1
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/home/scarlett/git/mlc-llm/mlc_llm/build.py", line 47, in <module>
    main()
  File "/home/scarlett/git/mlc-llm/mlc_llm/build.py", line 43, in main
    core.build_model_from_args(parsed_args)
  File "/home/scarlett/git/mlc-llm/mlc_llm/core.py", line 834, in build_model_from_args
    mod, param_manager, params, model_config = model_generators[args.model_category].get_model(
                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/scarlett/git/mlc-llm/mlc_llm/relax_model/mistral.py", line 992, in get_model
    config = MistralConfig(
             ^^^^^^^^^^^^^^
  File "/home/scarlett/git/mlc-llm/mlc_llm/relax_model/mistral.py", line 69, in __init__
    self.max_sequence_length = sliding_window * 4
                               ~~~~~~~~~~~~~~~^~~
TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'

Hi @scarlettekk could you try compiling using the new workflow? https://llm.mlc.ai/docs/compilation/compile_models.html Let us know if you run into issues

Hi,
Using the new workflow allows the model to be built successfully. I would recommend changing the page on building for Android to reflect this.
However, I now encounter issues in Android Studio building the Android demo application with the new model:
Type org.apache.tvm.API$1 is defined multiple times: /home/scarlett/git/mlc-llm/android/app/build/intermediates/external_file_lib_dex_archives/release/0_tvm4j_core.jar:classes.dex, /home/scarlett/git/mlc-llm/android/app/build/intermediates/external_file_lib_dex_archives/release/1_tvm4j_core.jar:classes.dex

I tried cleaning and rebuilding and now /home/scarlett/git/mlc-llm/android/library/src/main/java/ai/mlc/mlcllm/ChatModule.java:3: error: package org.apache.tvm does not exist
Frankly I'm not sure what to make of this.

I think this may have something to do with how the folder structure of the android app is different than the documentation, with the MLCChat folder missing, its contents moved to the ./android/ folder, and the prepare_libs.sh script being moved to ./android/library.

Running the app on start shows an error: "Add model failed: Failed requirement." Trying to manually add the model url errors with "Model lib null is not supported." Is my huggingface repo configured wrong? It's linked here.

Hi, thanks for the updates! These should probably be solved by this PR https://github.com/mlc-ai/mlc-llm/pull/1494
We are currently under a revamp of model compilation workflow, hence the mismatch of compilation/runtime in docs. This is tracked here https://github.com/mlc-ai/mlc-llm/issues/1420. Apologies for the inconvenience.

The Android PR just got merged in, with an updated documentation page as well: https://llm.mlc.ai/docs/deploy/android.html
Let us know if issues persist!

Huh, well.... Guess I'll try building an app using the pre built model tomorrow and see if that's any better?

Hmm I think I saw this issue posted by someone else as well.. I guess it could be due to various reasons; yea perhaps try the prebuilt ones first, if those do not fail it is probably mistral-specific. @Kartik14 might be good to add Mistral as prebuilt as well if we have the bandwidth.

Now we get this when preparing libs. I may have set up the prebuilt incorrectly? I downloaded the Mistral-android.tar to dist/libs and edited app-config.json to match the tarfile and the new URL.
[100%] Linking CXX shared library libtvm4j_runtime_packed.so
ld.lld: error: model_lib/libmodel_android.a(._mistral_q4f16_1_devc.o): not an ELF file
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [CMakeFiles/tvm4j_runtime_packed.dir/build.make:104: libtvm4j_runtime_packed.so] Error 1
make[2]: *** [CMakeFiles/Makefile2:268: CMakeFiles/tvm4j_runtime_packed.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:275: CMakeFiles/tvm4j_runtime_packed.dir/rule] Error 2
make: *** [Makefile:203: tvm4j_runtime_packed] Error 2

Someone else was getting the same error. I think this might be an issue with the tvm. Can you try fetching the latest version of 3rdparty/tvm?

No dice, 3rdparty/tvm checks out at 72a7644159cc415788f4d819c7e8196e0eef751d and still produces the same error in prepare_libs.sh

Seeing the same issue. Using the latest repo (tvm)
Llama-2-7b-chat-hf-q4f32_1-android.tar
[100%] Built target mlc_llm_static
[100%] Building CXX object CMakeFiles/tvm4j_runtime_packed.dir/mnt/c/AndroidProjects/MLC_AI/mlc-llm/3rdparty/tvm/jvm/native/src/main/native/org_apache_tvm_native_c_api.cc.o
[100%] Linking CXX shared library libtvm4j_runtime_packed.so
ld.lld: error: model_lib/libmodel_android.a(._llama_q4f32_1_devc.o): not an ELF file
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [CMakeFiles/tvm4j_runtime_packed.dir/build.make:104: libtvm4j_runtime_packed.so] Error 1
make[2]: *** [CMakeFiles/Makefile2:268: CMakeFiles/tvm4j_runtime_packed.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:275: CMakeFiles/tvm4j_runtime_packed.dir/rule] Error 2
make: *** [Makefile:203: tvm4j_runtime_packed] Error 2
Llama-2-7b-chat-hf-q4f16_1-android.tar
[100%] Building CXX object CMakeFiles/tvm4j_runtime_packed.dir/mnt/c/AndroidProjects/MLC_AI/mlc-llm/3rdparty/tvm/jvm/native/src/main/native/org_apache_tvm_native_c_api.cc.o
[100%] Linking CXX shared library libtvm4j_runtime_packed.so
ld.lld: error: model_lib/libmodel_android.a(._llama_q4f16_1_devc.o): not an ELF file
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [CMakeFiles/tvm4j_runtime_packed.dir/build.make:104: libtvm4j_runtime_packed.so] Error 1
make[2]: *** [CMakeFiles/Makefile2:268: CMakeFiles/tvm4j_runtime_packed.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:275: CMakeFiles/tvm4j_runtime_packed.dir/rule] Error 2
make: *** [Makefile:203: tvm4j_runtime_packed] Error 2
RedPajama-INCITE-Chat-3B-v1-q4f16_1-android.tar
[100%] Built target mlc_llm_static
[100%] Building CXX object CMakeFiles/tvm4j_runtime_packed.dir/mnt/c/AndroidProjects/MLC_AI/mlc-llm/3rdparty/tvm/jvm/native/src/main/native/org_apache_tvm_native_c_api.cc.o
[100%] Linking CXX shared library libtvm4j_runtime_packed.so
ld.lld: error: model_lib/libmodel_android.a(._lib0.o): not an ELF file
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [CMakeFiles/tvm4j_runtime_packed.dir/build.make:104: libtvm4j_runtime_packed.so] Error 1
make[2]: *** [CMakeFiles/Makefile2:268: CMakeFiles/tvm4j_runtime_packed.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:275: CMakeFiles/tvm4j_runtime_packed.dir/rule] Error 2
make: *** [Makefile:203: tvm4j_runtime_packed] Error 2


Funnel server env var

@adamstruck want to get your thoughts on moving the commands to a function with hooks, so that we can more easily test the result of loading the command line + env.
I haven't written an example test that uses this yet, but essentially you'd do:
func TestCmd(t *testing.T) {
  h := task.Hooks{
    Create: func() {
      // test code here
    }
  }
  cmd := task.NewCommand(h)
  cmd.SetArgs([]string{"create hello.json"})
}

This allows you to test that the server, view, config, etc. were properly loaded, but without actually needing to set up a server to connect to. I wrote this because I couldn't think of a way to test that the default TES server is "localhost:8000".

Based on cobra's internal tests I think we can do it without refactoring the code to use hooks. Using PreRun to get the env var and set the server address should work and wouldnt require a server.


Fix carousel bug

This fixes the bug where the button bar disappears when:

There are multiple items in the carousel
The currently active item is not the first item.

After much testing I think the problem is related to react rather than react-bootstrap: it seems react doesn't detect the difference between the previous render result and the incoming result during the reconciliation phase. The only way I could force react to unmount the old component and mounting a new instance was by providing key in props with a value corresponding to the number of items in the carousel. The fix is a bit hacky and I'm not sure if it is the best approach, @stuartjamesmcnicholas / @martinemnoble1 let me know if you can think of something cleaner.

Now the behavior of the sequence viewer is more predictable when selecting a range of residues (you can extend a given range of residues by holding shift).

Now this also adds peptide omega information to the validation plot and other minor bug fixes I've picked up while playing with the app.


Move from graphql-middleware to Resolvers Composition

Resolvers Composition is a small, well maintained, and well tested package being part of graphql-tools

This would be amazing!
I love graphql-shield, but do not use graphql-middleware.
Resolver composition is nice but I do not like it's dot notation for naming. Your nested objects API is much cleaner & easier for typesafety when combined with codegen.
I'd be happy to write a PR for this if you'd like. It's only about 60 LOCs: https://github.com/ParabolInc/parabol/blob/fa767a6f719cec03a966d41cc45d1a077a1857fb/packages/server/graphql/composeResolvers.ts#L27-L91

thank you @mattkrick ! I'll check it!

Hi @mattkrick ! Looks like I'm doing something similar to what you've mentioned, using Resolvers Composition, preserving Fragments functionality, and solving the problem you've mentioned in your code about Permissions don't get applied to fields that don't have custom resolvers.
Please take a look at the draft PR, maybe you could share some thoughts about it

looks good! i didn't realize the stock composeResolvers handlers a ruleTree using nested object notation instead of dot notation. It'll be great to have 1 less dependency!


Fix README.md table

I used | in a code block in a table cell, which GFM promptly ate. We need to escape the pipe characters in the code block so GFM parses things correctly.
And because GFM is now parsing the table correctly, the contents of the next cell are also fixed. Hooray!

Sure, I'll do that in another PR.


Cleanly delineate Python tests

Recategorizes several Python tests as integration tests instead of unit tests. Adds more separation between the two fundamental test types, both in the Makefile and in CI. Adds a bit of readability without any major rework (at least at this time).
Description
Reworks the Python tests slightly.
Related Issues
None.
Testing
Manual testing in local environment. Automated testing in CI.
Checklist

[ ] Does my change need to be backported to a previous release?
[ ] I made sure to update CHANGELOG.md.
[x] This is unlikely to impact how Ambassador performs at scale.
[x] My change is adequately tested.
[ ] I updated DEVELOPING.md with any any special dev tricks I had to use to work on this code efficiently.
[x] The changes in this PR have been reviewed for security concerns and adherence to security best practices.

Planning on adding a section for testing (and setting up the environment) to DEVELOPING.md, but that's probably going to be at a later date.


[ENH] Refactor all classifiers to suffix Classifier

Describe the issue
given we have gone for duplication for classification/regression/clustering, and that we have also decided naming is best as AlgorithmClassifier/AlgorithmRegressor/AlgorithmClusterer, I think we should do this for all algorithms before we turn deprecation back on. Any thoughts? Alternative would to do it incrementally as regressors come into the package, but that will involve a 2 month cycle at least for each onc we are deprecating, which I think we should start doing ASAP
Suggest a potential alternative/fix
No response
Additional context
No response

I don't think we should do it for every estimator, just those which have duplicates.
When it comes to deprecation, the old name can just be a wrapper until removal. i.e. for DrCIF, DrCIFClassifier, DrCIFRegressor, DrCIF would just wrap DrCIFClassifier until it is removed and all the actual functionality would be with the new name.

ok that sounds fair enough, lets do that


Improve the linger option of bumble-pair

No matter pairing fails or not, make linger effective

OK to merge?


Upgrading to Mekanism v8 removes upgrades on all machines

While I should have expected this, it wasn't a huge deal since I just restarted my world (lost about 30 speed/energy upgrades). If you are upgrading to Mekanism v8, pull your upgrades out of your factories before restarting to update the mod. You can thank me later. :)
As far as fixing this issue? Not sure you can, but it should be reflected in the Upgrading to Mekanism v8 wiki page. :+1:

This is part of the known consequences of updating - as you stated, pulling them out first will allow you to convert without loss.


add configuration for the 2nd copper management interface

for full dual switch redundancy, allow both 1G copper interfaces to be accessable / configurable

added, had to change the default IP address for eth0/eth1 to be on seperate subnest else routing problems occour.


Push notifications not showing on android

Whenever i try to send a Broadcast push notification to an android device, it doesn’t show up on the device. This works perfectly for iOS and when i send test push notifications to the same android device.
I'm using:

customer_io 1.2.2
flutter 3.0.5

Test push notification to android device. This works.

Thank you for reaching out to us @ifeanyi-earnipay. We apologize for any inconvenience you're facing. To assist us in investigating further, please provide the following information:

Can you confirm the status of notifications sent from your campaign? Are they marked as Delivered but not received on your Android device?
Are you using Rich Push or Custom Payload? Can you please share sample payload?
Could you please confirm the state of your app when the notification is being sent from the dashboard? Try running the campaign with the app in Opened, Background, and Killed states to observe the behavior.
Please collect and provide logs when the notification is expected to arrive on your device. This will help us identify any errors if received.

To minimize any uncertainties, please ensure the following::

Confirm that the connectivity is fine on your Android device.
Test using another Android device to check if the issue persists.
If the problem persists, kindly share the details of the Android device you are currently using (model, OS version, etc.).

Please ensure that any sensitive information is removed from the logs/payload before sharing. Alternatively, you can email us the details at<EMAIL_ADDRESS>Once we have this information, we'll do our best to identify and resolve the problem. Thank you for your cooperation.

Thank you for reaching out to us @ifeanyi-earnipay. We apologize for any inconvenience you're facing. To assist us in investigating further, please provide the following information:

Can you confirm the status of notifications sent from your campaign? Are they marked as Delivered but not received on your Android device?
Are you using Rich Push or Custom Payload? Can you please share sample payload?
Could you please confirm the state of your app when the notification is being sent from the dashboard? Try running the campaign with the app in Opened, Background, and Killed states to observe the behavior.
Please capture and share logs when the notification is expected to arrive on your device. This will help us identify any errors if received.

To minimize any uncertainties, please ensure the following::

Confirm that you have granted notification permission on your Android device for the app.
Confirm that the connectivity is fine on your Android device.
Test using another Android device to check if the issue persists.
If the problem persists, kindly share the details of the Android device you are currently using (model, OS version, etc.).

Please ensure that any sensitive information is removed from the logs/payload before sharing. Alternatively, you can email us the details at<EMAIL_ADDRESS>Once we have this information, we'll do our best to identify and resolve the problem. Thank you for your cooperation.

Yes, they're marked as Delivered
I'm using Rich Push.
I've sent in background, foreground and killed state. It still doesn’t come through.

For uncertainties;

Notification permission is granted because I get test notifications.
Connectivity is fine.
Already tested.

Thank you for sharing additional details. I noticed that you have FirebaseMessaging added to your project as well, and that might be the source of the issue. It appears that the notification is being received by the app, as confirmed by the log message broadcast received for message, but the app is unable to process it correctly.
To better assist you, could you please confirm if you have followed the instructions for handling multiple push providers, as suggested in our documentation? If you have, please confirm the option you chose and provide a code snippet for implementing it so that we can investigate further and offer you more specific assistance. This will help us pinpoint the potential problem and find a suitable solution.

Thank you @mrehan27. If i decide to use customer io to handle al my notifications need, can I completely remove FirebaseMessaging from the project entirely?

@ifeanyi-earnipay Yes, if you decide to use Customer.io to handle all your notifications, and you don't need to use any specific methods from FirebaseMessaging, you can safely remove FirebaseMessaging from your project entirely. Our SDK doesn't rely directly on FirebaseMessaging for Flutter, so it won't affect the functionality of our notification system.
I'm glad we could assist you with the resolution. Considering that the solution meets the expectations, I will proceed to close this issue. If you encounter any other problems or require further assistance, please don't hesitate to reopen this or open a new issue, or reach out to us. We appreciate your cooperation. Thank you!

Is there a customer io method to handle notification clicks like FirebaseMessaging.onMessageOpenedApp and _firebaseMessaging.getInitialMessage() does? @mrehan27

@ifeanyi-earnipay Unfortunately, no, the Customer.io SDK does not currently have direct methods like FirebaseMessaging.onMessageOpenedApp or _firebaseMessaging.getInitialMessage(). If you have a specific use case where such functionality would be beneficial, please provide more details, and I'll add a vote to the feature request internally on your behalf. This will help us prioritize the request and consider it for future updates. Your input is valuable, and we appreciate your engagement. Thank you!

@mrehan27 i want to be able to direct users to different parts of the app depending on the notifications they click.

@ifeanyi-earnipay Thank you for sharing your use case. Have you considered using deep links to direct users to different parts of the app when they click on notifications?
Regarding the app restart behavior, it is indeed intended. However, I will +1 the internal feature request for you so that we can prioritize the implementation of this feature.

@mrehan27 deep links will only work on direct users in the app, I also want to be able to direct users to the app on app/play stores when they click the link or to a website. With FirebaseMessaging, I was able to pass a custom payload, interpret it in the app and direct the user outside the app; to their respective stores or to a particular website.

Also @mrehan27, I noticed that notifications aren’t coming through when the app isn’t on foreground or background (when the app is killed/closed).

@ifeanyi-earnipay Thank you for clarifying your requirements. Your use case makes sense. I will +1 the internal feature request on your behalf.
Regarding notifications not coming through when the app is in the background, to help troubleshoot the problem, could you please check the following:

Ensure that you have implemented the _firebaseMessagingBackgroundHandler as suggested by the Firebase Messaging documentation. This handler is responsible for processing messages received while the app is in the background or closed.
Verify that the handler is set correctly and receiving callbacks. Double-check the implementation to ensure it's properly registered within your app's code.
Confirm the Flutter version you are using. You mentioned using Flutter 3.0.5 earlier, so please reverify the version. For Flutter version 3.3.0 or higher, you will need to add @pragma('vm:entry-point') to the handler function for it to work correctly.
To investigate the issue further, could you please capture and share the relevant logs again?

@mrehan27 everything works now, thanks. When should i expect to here news concerning the requirements i raised?

@ifeanyi-earnipay Glad to hear that your issue has been resolved successfully.
Regarding your feature request, we appreciate your input and have created an internal ticket to track it. However, I currently can't provide a specific estimate for its implementation as it is not yet on our roadmap, and features with higher requests may receive higher priority. Rest assured, your request is being considered, and we'll keep you updated on any developments. Your original issue has been linked with an internal ticket, so you'll be informed about its progress.
Thank you for your understanding and for sharing your thoughts. Your feedback is highly valuable to us. If you have any more ideas or feedback, do not hesitate to share them with us. Have a great day!

Please add a +1 for me as well regarding handling notification clicks with FirebaseMessaging.onMessageOpenedApp and _firebaseMessaging.getInitialMessage. This is a major feature that is still missing from CIO. I've just tried to update the package to the latest version and suddenly i lost the functionality of both FirebaseMessaging.onMessageOpenedApp and _firebaseMessaging.getInitialMessage because CIO SDK took over.


podspec change: allow deploying against ios6+

@Sarkar @aaustin pending tests passing, let's release 0.11.1

:+1:


Exit with proper status code if 'eval' fails

Seems reasonable. Would it make sense to extract this into a helper function in the script?

Seems reasonable. Would it make sense to extract this into a helper function in and update the whole script?

This change makes sense. Where else would you see it, @tuncer ?
I believe this also needs to be rebased on master so tests pass.

I was suggesting that we might use the opportunity to make it a shell function and reuse everywhere $? is checked.

@ferd Rebased on latest master.
@tuncer I agree some refactoring would be nice for the script, but I would consider that a separate issue from this one.

but I would consider that a separate issue from this one

Works for me.


Test one image_Operation error

Model file:../results/hourglass3/AMT_from_205315_1e-4_release/Best_model_period2.t7
Processing sample img1.jpg
/home/sunmin/torch/install/bin/luajit: /home/sunmin/torch/install/share/lua/5.1/nn/Container.lua:67:
In 1 module of nn.Sequential:
/home/sunmin/torch/install/share/lua/5.1/cudnn/init.lua:145: Error in CuDNN: CUDNN_STATUS_ARCH_MISMATCH
stack traceback:
[C]: in function 'error'
/home/sunmin/torch/install/share/lua/5.1/cudnn/init.lua:145: in function 'getHandle'
/home/sunmin/torch/install/share/lua/5.1/cudnn/init.lua:153: in function 'call'
/home/sunmin/torch/install/share/lua/5.1/cudnn/init.lua:159: in function 'errcheck'
/home/sunmin/torch/install/share/lua/5.1/cudnn/init.lua:174: in function 'toDescriptor'
...torch/install/share/lua/5.1/cudnn/SpatialConvolution.lua:37: in function 'resetWeightDescriptors'
...torch/install/share/lua/5.1/cudnn/SpatialConvolution.lua:96: in function 'checkInputChanged'
...torch/install/share/lua/5.1/cudnn/SpatialConvolution.lua:120: in function 'createIODescriptors'
...torch/install/share/lua/5.1/cudnn/SpatialConvolution.lua:188: in function <...torch/install/share/lua/5.1/cudnn/SpatialConvolution.lua:186>
[C]: in function 'xpcall'
/home/sunmin/torch/install/share/lua/5.1/nn/Container.lua:63: in function 'rethrowErrors'
/home/sunmin/torch/install/share/lua/5.1/nn/Sequential.lua:44: in function 'forward'
test_on_one_image.lua:67: in main chunk
[C]: in function 'dofile'
...nmin/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk
[C]: at 0x00405d50
WARNING: If you see a stack trace below, it doesn't point to the place where this error occurred. Please use only the one above.
stack traceback:
[C]: in function 'error'
/home/sunmin/torch/install/share/lua/5.1/nn/Container.lua:67: in function 'rethrowErrors'
/home/sunmin/torch/install/share/lua/5.1/nn/Sequential.lua:44: in function 'forward'
test_on_one_image.lua:67: in main chunk
[C]: in function 'dofile'
...nmin/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk
[C]: at 0x00405d50
How should I solve it？

Hi, this is likely a mismatch between your torch version and cudnn version as indicated by CUDNN_STATUS_ARCH_MISMATCH

Hi, this is likely a mismatch between your torch version and cudnn version as indicated by CUDNN_STATUS_ARCH_MISMATCH

I have torch7 (luajit) and cudnn5.1.
I see the online tutorial configuration, but other people don't have such problems

Hi, this is likely a mismatch between your torch version and cudnn version as indicated by CUDNN_STATUS_ARCH_MISMATCH

Can I remove cudnn in test on one image.lua

Hi, this is likely a mismatch between your torch version and cudnn version as indicated by CUDNN_STATUS_ARCH_MISMATCH

Can I remove cudnn in test on one image.lua
How can I do?

I don't think you can skip cudnn to make the code work. One suggestion is to make sure that your cudnn version matches that of cuda.

I don't think you can skip cudnn to make the code work. One suggestion is to make sure that your cudnn version matches that of cuda.

My GPU's computing power is 2.1, and what cudnn needs is 3.0. So there will be errors.


move <style> into the head

the <style> tag is technically only allowed in the <head>. https://www.w3.org/TR/html4/struct/global.html#h-7.4.1
email clients allow it in both places: https://www.campaignmonitor.com/css/
also adding the required type attribute

I'm not 100% positive this will work in all email clients. The postmark templates have it in the body and that is what those are based off of. Going to hold off for now since I'm depending on those templates being correct.

sounds good. it's not technically valid HTML, but we all know email clients DGAF about standards.


Add progress bar when uploading

It would be great to have a progress bar when uploading a file.

Taking this!

I submitted a PR with a basic implementation, paired with @Bryancg95


can't run in docker

Description
2023-08-15T03:16:48.564Z	ERROR	66cc9.post	post setup session failed	{"node_id": "66cc9a55b9dfe7a0f067d23e9581d1c4b74c9b2987a4051e4f9d60cbeb9f30b0", "module": "post", "errmsg": "failed to compute labels: initializing scrypter: no provider specified", "name": "post"}
spacemesh4    | 2023-08-15T03:16:48.565Z	ERROR	66cc9.atxBuilder	Fatal: goroutine panicked. Stacktrace: goroutine 4514 [running]:
the cli can't find GPUs!
this bug happed from go-spacemesh 1.0.15!
docker-compose.yaml
version: '3'
services:
spacemesh:
container_name: spacemesh
image: spacemesh:1.0.17
runtime: nvidia
environment:
NVIDIA_VISIBLE_DEVICES: 1             ### the second gpu
NVIDIA_DRIVER_CAPABILITIES: compute,utility
volumes:
- ./entrypoint.sh:/root/entrypoint.sh
- /pool/spacemesh/data:/data
- /pool/spacemesh/data/spacemesh:/root/.spacemesh/
entrypoint: ["/bin/bash","/root/entrypoint.sh"]
logging:
driver: "json-file"
options:
max-size: "5g"
restart: always
network_mode: "host"

Hi @bugxzhu
recently the auto-benchmarking of post has been removed. Instead nodes now need to explicitly specify which device they want to use as provider for initialisation.
You can temporarily re-enable the old behavior by adding the following to your node config:
{
	"smeshing": {
		"smeshing-opts": {
			"smeshing-opts-provider": -1
		}
	}
}

Be aware that this is deprecated functionality that will be discontinued in a future release. You should see in your logs warnings about the deprecation and which provider ID was selected. You can then replace the -1 with that ID.


官方更新了如何用焦点遍历的代码，我不太会用，能出一个新版的教程吗？

Implements FocusTraversalPolicy and DefaultFocusTraversal features.
https://github.com/flutter/flutter/pull/30076
Implement focus traversal for desktop platforms, shoehorn edition
https://github.com/flutter/flutter/pull/30040/

好的
------------------ 原始邮件 ------------------
发件人<EMAIL_ADDRESS>发送时间: 2019年5月24日(星期五) 凌晨0:53
收件人<EMAIL_ADDRESS>抄送<EMAIL_ADDRESS>主题: [flutteranddart/flutterTV] 官方更新了如何用焦点遍历的代码，我不太会用，能出一个新版的教程吗？ (#1)
Implements FocusTraversalPolicy and DefaultFocusTraversal features.
flutter/flutter#30076
Implement focus traversal for desktop platforms, shoehorn edition
flutter/flutter#30040
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.


Setup testing environment

Vundle should have a set of automated tests, and a clear structure of adding new tests alongside a issue/pull request.
The tests could also be integrated towards TravisCI, which makes it easier to spot pull requests with broken tests.
I'm looking into how to best achieve this, lets keep a discussion in this thread.

ping @VundleVim/team

:+1: sounds good. willing to help out with this specific item in bits and pieces :smile:

@VundleVim/team not sure how far you are on this but just in case here are some links that I found:

http://whileimautomaton.net/2013/02/08211255
http://whileimautomaton.net/2013/02/13211500
http://mudge.name/2012/04/18/testing-vim-plugins-on-travis-ci-with-rspec-and-vimrunner.html
http://vimcasts.org/episodes/an-introduction-to-vspec/
http://hashrocket.com/blog/posts/vimscript-and-you
http://lanyrd.com/2013/testing-vimscript/coverage/
https://github.com/kana/vim-vspec
https://github.com/thinca/vim-themis
https://github.com/junegunn/vader.vim
https://github.com/AndrewRadev/vimrunner
https://github.com/mivok/vimcram
https://github.com/syngan/vim-vimlint
https://github.com/ynkdir/vim-vimlparser

Probably most of these you are already aware of but just in case :smirk:

Nice @ryanoasis ! I should have something preliminary going soon, and we can discuss from there!

@silfverstrom awesome sounds good :+1:

@ryanoasis wow, that's a lot of stuff to go through :) :+1:

So do we have a TravisCI account?

@btreeinfinity not that I know of, but it's an easy fix when we have a clear testing structure in place.

@btreeinfinity no, there's no account for vunlde!

just wondering if there is any status on this?

Sorry to throw more links on the table, but have you guys considered Google's vimscript testing framework, Vroom (https://github.com/google/vroom)? I've used it a little, and it seems to get the job done. It's super easy to run (just type vroom), and not too hard to write tests for.
It lets you check things such as buffer contents, which calls to the shell are executed, which messages are produced, etc. It also supports testing in neovim (if Vundle decides to support neovim, which is probably a good idea later in the future) and has an example for use with TravisCI.
Also, I'd be more than happy to help with writing tests for Vundle in my spare time, and could probably write up some sample tests to start things out. Just let me know.

@nfischer looks interesting

Just requested access to this Organization for Travis CI

@VundleVim/team FYI, just starting messing around with this here: https://travis-ci.org/ryanoasis/Vundle.vim

@ryanoasis Vader? Good pick!

I just wanted to get started at least and I didn't compare very in depth but Vader seemed to be fairly active and popular compared to the other options. I will have to take a look at vroom, I think it is safe to cross off vimrunner as the last commit was over 1 year ago.
@nfischer do you have any specific examples on vroom? I did see on the readme a sample Travis CI config.

@ryanoasis Vroom is used by Google for all their open source vim plugins, so anything you see on their github page will use it. Some notable examples are:

Code-fmt
Maktaba
Glaive

Although the best source for learning how to use it IMO would be the examples in the Vroom page (https://github.com/google/vroom/tree/master/examples).

@nfischer thanks I'll try it out :+1:

I think I liked vader the best so far. I really need to get back into this because it will provide a safety net for at least the basic functionality.
I do plan on testing and merging some the more recent PRs but after that I think I'll shift focus to testing. :shipit:
I don't want to be the one responsible for breaking bundle! :speak_no_evil:

@ryanoasis vader sounds like it's good. I've only used vimrunner and vroom, but I'm sure it should get the job done.
Feel free to ping this thread when you start rolling out the first unit tests, and I can try to follow your example and add a few.

I think maybe it's time to get back to looking into this so we can get back to at least considering features :smile:


CommandLine Appears to be ignoring Mapping

FAQ

[X] I have checked the FAQ and it didn't resolve my problem.

Issues

[X] I have checked existing issues and there are no open or closed issues with the same problem.

Neovim Version
NVIM v0.6.0-dev+581-g8f984dc1f
Minimal reproducible config
if has('vim_starting')
  set encoding=utf-8
endif
scriptencoding utf-8

if &compatible
  set nocompatible
endif

let s:plug_dir = expand('/tmp/plugged/vim-plug')
if !filereadable(s:plug_dir .. '/plug.vim')
  execute printf('!curl -fLo %s/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim', s:plug_dir)
end

execute 'set runtimepath+=' . s:plug_dir
call plug#begin(s:plug_dir)
Plug 'hrsh7th/nvim-cmp'
Plug 'hrsh7th/cmp-buffer'
Plug 'hrsh7th/cmp-nvim-lsp'
Plug 'hrsh7th/vim-vsnip'
Plug 'neovim/nvim-lspconfig'
call plug#end()
PlugInstall | quit

" Setup global configuration. More on configuration below.
lua << EOF
local cmp = require('cmp')

cmp.setup({
  snippet = {
    -- REQUIRED - you must specify a snippet engine
    expand = function(args)
      vim.fn["vsnip#anonymous"](args.body)
    end,
  },
  mapping = {
    ['<Up>'] = cmp.mapping.select_prev_item(),
    ['<Down>'] = cmp.mapping.select_next_item(),
    ['<Enter>'] = cmp.mapping.confirm({ select=true })
  },
})

-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline(':', {
  sources = cmp.config.sources({
    { name = 'cmdline' }
  }),
})

EOF

lua << EOF
local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())

require'lspconfig'.cssls.setup {
  capabilities = capabilities,
}
EOF

Description
When setting the <Up> and <Down> keys to cmp.mapping.select_prev_item() or cmp.mapping_select_next_item(), the Up and Down keys are ignored (pressing them when in command mode exits the completion window instead of moving to the next/previous item in the completion window).
Note; Using any key fails here (I have tried with 'andas well, thinking the arrow keys may have some issue being mapped to). Additionally, the key mappings _do_ work when in the buffer while ininsert` mode.
Steps to reproduce
Open nvim using the minimal config
$ nvim -u minimalconfig.lua

Press : to enter command mode
Begin entering any command and wait for completion window to appear
Press the Up or Down arrow key (or whatever you map to select_prev_item and select_next_item)
Expected behavior
Pressing the keys mapped to select_prev_item or select_next_item should perform that action when in command mode.
Actual behavior
Pressing the keys associated to select_prev_item or select_next_item closes the completion window
Additional context
From poking this a bit, I am guessing the cmp.setup.cmdline section has hardcoded mappings and thus just ignores the mappings set in setup (this can be seen in that <S-Tab> and <Tab> still work for select_prev_item and select_next_item regardless of the mapping you have set.
Also, possible related to Issue 462

  mapping = {
    ['<Up>'] = cmp.mapping(cmp.mapping.select_prev_item(), { 'i', 'c' }),
    ['<Down>'] = cmp.mapping(cmp.mapping.select_next_item(), { 'i', 'c' }),
    ['<Enter>'] = cmp.mapping(cmp.mapping.confirm({ select=true }), { 'i', 'c' })
  },

That does it.
When looking at the documentation, I see And you can specify the mapping modes., however there are certainly examples where the "mode" is not specified. Thus I assumed if I didn't specify the mode, it would apply across all modes.
It appears that assumption was incorrect, though it might be worth clarifying that in the documentation.
Regardless though, specifying the modes does correct it!
Thanks!


Create Calls resource

Create the Calls resource which allows creating calls. Only create the POST root method, as this is the only method that will be used.

Reference: https://www.twilio.com/docs/api/rest/making-calls

This PR is ready for review. You will notice that while it makes the initial call, it doesn't do the next step of fetching the TwiML from the supplied URL when that call connects/fails, and it doesn't call the supplied URL when the call ends. This will all be done in https://github.com/praekelt/vumi-twilio-api/issues/5 , I felt that this PR was getting too big and needed to be split out.

Left some minor comments. Looks good though.
Thank you for breaking this up and not putting it all in one PR -- very much appreciated. :)

@hodgestar comments should all be addressed. Ready for another review.

:+1:
My suggestion for the tests was slightly different to what you implemented. The assertion method is cool, but each test has the same structure:

make request to url
assert response is an error
I was suggesting making a method which does both the request and the assert so that the tests become essentially a single function call.

@hodgestar Isn't that what I implemented? The only function that has more than that is the one which checks for valid non-error responses when one but not the other field is excluded.


Support Ardupilot

This PR adds support for ardupilot.
Primary change is for enabling GUIDED mode, and the requirement (I think) to takeoff before setpoint_position is accepted.
Still WIP, Ardupilot vehicle arms, switches to guided mode, but will not takeoff. Currently returns a 4 status on takeoff
pointing to Coordinate frame not supported (https://mavlink.io/en/messages/common.html#MAV_CMD_ACK_ERR_NOT_SUPPORTED)

[Note this is not actually complete yet xD I was hoping you might be able to provide some input as to how to get an AP drone flying 🤣 ]
Currently for AP:

ARM
Change to GUIDED
Use Takeoff -> it returns a code 4

I suspect this is caused by the interference of the SITL default rangefinder. In GUIDED mode, any takeoff altitude less than the rangefinder maximum altitude (by default 50m) sets the frame of the takeoff waypoint to ABOVE_TERRAIN (Source). Then, when the autopilot attempts to set the destination, it fails. Potentially due to missing terrain data.

However, one would think that this should be caught by the ...terrain_source() == ...TERRAIN_FROM_RANGEFINDER line.

I think it's actually this part:
if (takeoff_alt_cm <= copter.rangefinder_state.alt_cm) {
            return false;
        }

The altitude reported by the SITL range finder under Gazebo seems to be constantly the maximum, here 5000cm or 50m

Is there even a rangefinder on the model? Where do the rangefinder measurements come from?

Not entirely sure, I think there is a rangefinder simulator built in to the SITL binary itself which may be being used?

Now that the vehicle can take off, there still appear to be problems... Lots of "Waiting for Navigate" messages.
I've added a branch to disable the rangefinder for the ArduPilot SITL in the main repo. Once that is built, you can use uobflightlabstarling/starling-sim-ardupilot-copter:disable-rangefinder to test.

Do you observe the drone moving around on gazebo?

It gets off the floor but just stays hovering at 2m

Now it takes off, then hovers in place while I assume the trajectory follower goes round the trajectory, then lands.

Hmm sometimes it takes a little bit to stabilize after takeoff for it to trigger the 'i'm here'...

The not moving was likely caused by the (recently fixed) error in the bridge yaml files. However, using nightly where the fix is implemented results in no takeoff again. My guess is that sending the setpoints somehow disturbs the takeoff sequence. With no setpoints being sent, the takeoff completes, if setpoints are sent, the vehicle doesn't leave the ground...


IDC2346: fix images sorting

Fix https://github.com/OHIF/Viewers/issues/2346
Data for testing:

http://localhost:3000/projects/idc-dev-etl/locations/us-central1/datasets/idc/dicomStores/v2/study/<IP_ADDRESS>.4.1.40744.29.20179378455677790749687821035665868086

other relevant issue https://github.com/OHIF/Viewers/issues/2259
Data for testing:

http://localhost:3000/projects/idc-dev-etl/locations/us-central1/datasets/idc/dicomStores/v2/study/<IP_ADDRESS>.4.1.145<IP_ADDRESS>.7695.1700.320115820687123759708360318530
http://localhost:3000/projects/idc-dev-etl/locations/us-central1/datasets/idc_tcia_dev/dicomStores/idc_tcia/study/<IP_ADDRESS>.4.1.145<IP_ADDRESS>.8162.4009.498881901170332065029863238265

/projects/idc-dev-etl/locations/us-central1/datasets/idc/dicomStores/v2/study/<IP_ADDRESS>.4.1.145<IP_ADDRESS>.7695.1700.320115820687123759708360318530

Tried the first test data (http://localhost:3000/projects/idc-dev-etl/locations/us-central1/datasets/idc/dicomStores/v2/study/<IP_ADDRESS>.4.1.40744.29.20179378455677790749687821035665868086)
in master branch and i could not see the MPR button + saw some warnings there saying that it was not reconstructable

Update this branch with master (to include MPR warnings)
Why this dataset is not reconstructable? it worked fine in this branch

Tried the first test data (http://localhost:3000/projects/idc-dev-etl/locations/us-central1/datasets/idc/dicomStores/v2/study/<IP_ADDRESS>.4.1.40744.29.20179378455677790749687821035665868086)
in master branch and i could not see the MPR button + saw some warnings there saying that it was not reconstructable
Update this branch with master (to include MPR warnings)
Why this dataset is not reconstructable? it worked fine in this branch

Thanks for testing. The study <IP_ADDRESS>.4.1.40744.29.20179378455677790749687821035665868086 is actually reconstructable.
This PR actaully fix two issues: 1) ensure the data are sorted geometrically if reconstructable; 2) move the chek of uniform spacing after the data are sorted.
In master the problem is that all the reconstructable checks (included the uniform spacing) are done before the geometric sorting. This involve that the unfiorm spacing can fail if the frames are not already ordered geometrically (when applying sorting by instanceNumber) as in this study.
In this PR, preliminary checks (is4D, image components, dimensions and orientation) are done after the sorting by instanceNumber to see if is reconstructable. If reconstructable by these checks, then the frames are sorted geometrically and then finally the frames are tested to see if the spacing is uniform.


Added a note for PowerShell 7 incompatibility

Fixes #760

Docs Build status updates of commit a9200c4:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-conceptual/azureadps-2.0/install-adv2.md
:white_check_mark:Succeeded
View (azureadps-2.0)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit c5af13f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-conceptual/azureadps-2.0/install-adv2.md
:white_check_mark:Succeeded
View (azureadps-2.0)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 9d3f84e:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-conceptual/azureadps-2.0/install-adv2.md
:warning:Warning
View (azureadps-2.0)
Details

docs-conceptual/azureadps-2.0/install-adv2.md

Line 7, Column 10: [Warning: ms-date-invalid - See documentation] Value out of range for 'ms.date': '08/02/2022'. Must be a date in format M/D/YYYY, no more than 30 days from today.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

这是来自QQ邮箱的假期自动回复邮件。

您好，我最近正在休假中，无法亲自回复您的邮件。我将在假期结束后，尽快给您回复。

@CelesteDG, please review this.


Fix the correct domains of SangMyung university from ac.kr to kr

University web site: https://www.smu.ac.kr/mbs/smueng/
Student domain<EMAIL_ADDRESS>Professor domain<EMAIL_ADDRESS>Please merge this request! Thank you!

@minkikim89 Thank you for the request. Could you please provide us with a link to a page on official SangMyung university website, where they indicate that sangmyung.kr domain belongs to students at the university? Also, could you please advise whether correct name of the univeristy is Sangmyung university, Sang Myung, or SangMyung? Wikipedia suggests! that it is Sangmyung university.

Thank you for your reply.
First, Sangmyung univ is correct name. It's my mistake. Sorry!
And.. Below the link is the notice of official Sangmyung university website. (used by Google Translation) It notified that Sangmyung university's email address is changed to<EMAIL_ADDRESS>https://translate.google.com/translate?hl=en&sl=ko&tl=en&u=http%3A%2F%2Fwww.smu.ac.kr%2Fmbs%2Fsmu%2Fjsp%2Fboard%2Fview.jsp%3Fspage%3D1%26boardId%3D14446%26boardSeq%3D17587423%26id%3Dsmu_040100000000
I also attach the original this notice link below.
http://www.smu.ac.kr/mbs/smu/jsp/board/view.jsp?spage=1&boardId=14446&boardSeq=17587423&id=smu_040100000000
Thanks!

@minkikim89 Thank you for the clarification! Pull request is now merged.


Update C++ example implementation

Public-Facing Changes
Update C++ example implementation
Description

Allows choosing between boost asio and standalone asio (fixes #483)
Adds support for asset capability
Some refactoring

@jtbandes we have to change the required status checks for this one.


Revert "[ci] check-style: Changed diff format and show whitespace changes in …"

Reverts clara-parabricks/GenomeWorks#498

rerun tests

will be replaced by an updated version


Improve the importer function so that the content field is not splitted

User Story

As a user of the function I want to parse SpecItems, regardless of corner cases in the structure of the file.
So that it also works if there is a newline character within one SpecItem and other special cases are covered.
I need this functionality for the same reason as #17 as this is an extension of tha functionality in #17.

Acceptance Criteria

All variations of patterns present / corner cases in the files provided by DevelopGroup shall be parsable.
A JUnit test that assures a file, containing the mentioned edge cases, is split up correctly.

Definition of Done

All tests are passing
No known errors
Feature has been fully implemented

@lnrd96 @nikomall34 please create another ticket for this function and assign me to it.

@lnrd96 @nikomall34 please create another ticket for this function and assign me to it.
Hey Georgi,
I updated this ticket with a proper user story. Please update the est size, if necessary!


Stripe Connect?

As far as I see, django-stripe-payments isn't meant for Stripe Connect. Since a lot of the functions are useful for Connect, I thought of re-using the code. Is it in the plans to get Stripe Connect included in django-stripe-payments too?

+1, I'm also planning some integration against Stripe Connect and it'd be great if we can share this effort. That said, there's some work to be done on this project to begin using a more recent version of Stripe's API (required in order to use Connect). This library has fallen pretty far behind in that regard and defaults to using a version of Stripe's API from 2012. Not surprisingly it doesn't fully function against Stripe's latest version as of now: "2015-07-13". So .. some work to be done there. :)

I've started an implentation of this on my fork: wahuneke/django-stripe-payments  branch: basic_stripe_connect
Very basic so far, just a start. A few things needed:  1) webhooks intgr,  2) a create function  3) integration into charges
I have implemented number 3 already but only for direct charge, not for customer charge.  See branch stripe_connect_and_direct_charge for that work. The work there can prob just be copied into Customer.charge().
Anyway, it's a start. I'm mostly just developing the areas that I need but if folks want to fork and submit pull requests I will happily integrate things and eventually get it all into a clean pull request for inclusion in the main-line

@wahuneke was just getting ready to write some connect code myself, funny you just started this.  How is it coming along?  Anything I can help with?  I'd like to get something working by the next day or so - would much rather contribute towards work that is already done if I can be of help.

ah actually I'm using pydanny's djstripe package.  They are both so identical.. seems they should just merge at some time and move forward at one.

agreed. I'm going to focus my work on the pydanny fork as well, it already has most of the things I need

Great - I actually just emailed him to see if he knew anybody working on it.
What is left with your code?  looks like you implemented the code in Customer.charge().. is it just the webhooks work?

The code here: https://github.com/wahuneke/django-stripe-payments/tree/20s_production is in production and processes payments every day for the last 2 years. It does not do anything with webhooks.
I won't be working on that fork any further, but will continue this work at wahuneke/dj-stripe. This is already under some discussion here, for one: https://github.com/pydanny/dj-stripe/issues/97

ah good fine -strange, i searched through there with no luck.  Thanks @wahuneke
I just forked pydanny's code, and am likely going to pull in a lot of your connect code, and see where things are at.

@wahuneke @boulderdave Just completed a massive refactor of including a rename.  I know this discussion was had a while back but I'd be very much interested in seeing any pull requests you might have for the Stripe Connect stuff. master now supports latest API so is ready to start adding in new and awesome features.  I understand if you have long moved on and have no more interest in contributing here but in just wanted to welcome you to submit some PRs if you were so inclined.

Didn't mean to close the issue. I'm going to reopen and and rename it a bit as I certainly plan on supporting Stripe Connect.

I've personally implemented Stripe Connect for Standalone accounts only. As we know, there's also Stripe Connect Managed Accounts. I took a look at my code now and I see that the only contribution I could make is just adding another model for Stripe Connect: AccessToken - a model for tokens for managing payments on behalf of marketplace merchants. Also there are a couple of functions I could add: one for authorizing marketplaces to sell merchants' products and another one for deauthorizing them. I am not sure how much would that help.

@paltman Thoughts on @elenaoat's idea?

This would be the,endows help @elenaoat


Automatic keyboard focus on buttons and forms

As ...
Dan - Data Owner
I want ...
to have main buttons focused for keyboard automatically.
e.g

Enter for confirming operations - e.g Delete VLAN - Confirm (see image)

Switch between fields by Tab (e.g. in Create, Edit object windows).

So that ...
a user can faster confirm operation and navigate within UI without a necessity to always use mouse.
I know this is done when...

I can confirm Delete dialog by Enter
I can use Tab key to switch between main fields / buttons in forms

Optional - Feature groups this request pertains to.

[ ] Automation
[ ] Circuits
[ ] DCIM
[ ] IPAM
[ ] Misc (including Data Sources)
[ ] Organization
[ ] Plugins (and other Extensibility)
[ ] Security (Secrets, etc)
[ ] Image Management
[X] UI/UX
[ ] Documentation
[ ] Other (not directly a platform feature)

Database Changes
No response
External Dependencies
No response

Similar #1537

Duplicate of #1537.


Error_Auth_Needed

Hello,
I have already described this Problem on October 1st. in an other tread here, but nobody reacts within one month. So I try it again with an new Bugreport.
node authorize.js does not  work! The credentials.json File is in the module Folder, but when I run "node authorize.js" I get following Error!:
node authorize.js
MMM-GoogleCalendar: Error loading credentials [Error: ENOENT: no such file or directory, open '/home/pi/MagicMirror/modules/MMM-GoogleCalendar/token.json'] {
errno: -2,
code: 'ENOENT',
syscall: 'open',
path: '/home/pi/MagicMirror/modules/MMM-GoogleCalendar/token.json'
}
^C
As you can see, I have to press ctrl&C to abort this!
How can I solve this problem? I need my Google-Calendar displayed on the MagicMirror!
Thanks for helping. :-)

Hello,
Thanks for your Help, in the Modul-Folder is no token.js File. I had understood that this file is created by the authorization process by running "node authorize.js".
Maybe thats my fault.
On the other Hand I'm an old german guy and my school english is after all those years pretty bad, so I have some problems following your instructions for setting up the Google-Calendar-API.
I had running MagicMirror since Version 2.16 with MMM-GoogleCalendar and it workt verry fine. After a longtime illnes I tried to setup my MagicMirror again, but now GoogleCalender won't work anymore. I think it is because Goolgle changes something on the access-process to the google-cloud-project. Since MM 2.16 I have the needed google-cloud-project.
So I deleted my old google-cloud-project and tried to create it new. I downloaded the "client_secret....json" File from Google
and renamed it to credentials.json, I dceleted the MMM-GoogleCalendar folder and installed it new using git clone and npm install. Copied the credentials.json using WinSCP from my PC to  the MMM-GoogleCalendar folder on my Raspberry Pi. Running "node authorize.js" ends in the same Error as before.
How can I generate the token.json file that is needed for the authorization-process?

I tried something other, I maden an empty token.json file and run "node authorize.js" now I got an other error message and it seems that the credentials.json file is not correct.
The new errors are:
MMM-GoogleCalendar: Error loading credentials SyntaxError: Unexpected end of JSON input
at JSON.parse ()
at loadSavedCredentialsIfExist (/home/pi/MagicMirror/modules/MMM-GoogleCalendar/authorize.js:23:30)
at async authorize (/home/pi/MagicMirror/modules/MMM-GoogleCalendar/authorize.js:55:16)
The empty token.json file still remains empty.
Maybe this could help to figure out whats wrong here.

Thank you for your detailed follow-up and for sharing your experience. Let's work together to get this sorted out.
First, I understand the process can be frustrating, especially with changes in API access. The issues you're encountering seem related to where the token.json file should be created.
Here’s what we can try to resolve the issue:

Ensure the Correct Directory:
Make sure you are in the MMM-GoogleCalendar directory when you run node authorize.js. This matters because the script will try to generate the token.json file in the current directory.
Remove Dummy Token:
Delete any empty token.json file you created previously. Having this empty file might disrupt the process.
Run the Authorization Again:
Try running node authorize.js again. The script should prompt you to open a browser window or provide a link to complete the authorization process with your Google account.
Check for Prompts:
If you don’t see a browser window or link, there might be output in the terminal regarding where to go for authorization. Make sure any pop-up blockers in your browser are disabled or try running the command on a machine where the browser can open automatically if possible.
Double-Check Credentials:
Ensure that your credentials.json file is set up correctly, downloaded from your Google Cloud project.

Don’t hesitate to let me know how it goes, or if any errors persist, feel free to include them!

Hi, it sounds like the issue is likely tied to the credentials.json file format. Here's how you can ensure it is set up correctly:

Verify credentials.json Structure:
The file should look similar to this:

{
  "installed": {
    "client_id": "xxxxxxxxxxxxxxxxxx-xxxx.apps.googleusercontent.com",
    "project_id": "some-id-from-your-project",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://oauth2.googleapis.com/token",
    "auth_provider_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_secret": "some-string",
    "redirect_uris": [
      "urn:ietf:wg:oauth:2.0:oob",
      "http://localhost"
    ]
  }
}

Make sure that all keys and values are correctly copied from your Google Developer Console.

Follow the Guide for Correct Setup:
Double-check the steps in the guide for "Configure OAuth Consent Screen".
You should find the guide for oauth part in your google cloud project , and ensure that your OAuth credentials are correctly set up as a "Desktop application". This is crucial for generating the correct file.

Your current setup method via SSH and PuTTY should work fine, but you might need to download the credentials.json again and re-upload it to the Raspberry Pi after ensuring it's set as described.
Let me know if this helps or if there are any more issues!

Thank you very much, this solves one fault. :-) My credentials.json file was one long string, after editing I'll get further. Found panother failer in my configuration for the "OAuth Consent Screen configuration". My Usertype is set to "external", can't find a way to switch it to "internal".
I think I will delet the old project and start the whole procedure from scratch.

I'm no Google Workspace User, so I can't switch to "Usertype = Internal" I can only use "Usertype = External". This is, why I don't own a Creditcard for payment, and other payment methodes Google does not show.
After editing the credentials.json and running "node authorize.js" I now get this error:
MMM-GoogleCalendar: Error loading credentials [Error: ENOENT: no such file or directory, open '/home/pi/MagicMirror/modules/MMM-GoogleCalendar/token.json'] {
errno: -2,
code: 'ENOENT',
syscall: 'open',
path: '/home/pi/MagicMirror/modules/MMM-GoogleCalendar/token.json'
}
Error: The provided keyfile does not define a valid
redirect URI. There must be at least one redirect URI defined, and this sample
assumes it redirects to 'http://localhost:3000/oauth2callback'.  Please edit
your keyfile, and add a 'redirect_uris' section.  For example:
"redirect_uris": [
"http://localhost:3000/oauth2callback"
]
at authenticate (/home/pi/MagicMirror/modules/MMM-GoogleCalendar/node_modules/@google-cloud/local-auth/build/src/index.js:55:15)
at authorize (/home/pi/MagicMirror/modules/MMM-GoogleCalendar/authorize.js:59:18)

But there is a "redirect_uris" section in the credential.js file: --> "redirect_uris": [
"http://localhost"
]

Hi there!
First off, it’s totally okay for your OAuth user type to be set to External. You don’t need to change this, and there’s no need to worry about payment! I haven’t set up payment for this project either, and using this plugin with Google Cloud doesn’t incur any charges.
The error is saying it can’t find a redirect URI. To fix this, go to the Credentials section in your Google Cloud Console. In the OAuth 2.0 client settings, make sure the redirect_uris include the specific address that your MagicMirror setup needs. For most setups, this will be:
http://localhost:3000/

If you already have http://localhost set a s a authorized redirect URI, just add http://localhost:3000/ (note the port). You could fill both, "Authorized redirect URIs" and "Authorized JavaScript sources" fields in your credentials page. Once you’ve updated it, download the credentials file again directly from Google Cloud and replace the old file in your MagicMirror setup.
Also, it’s okay if the new credentials.json file is one long string—it should still work. After making this change, try running node authorize.js again.
Let me know how it goes 🚀

Thank you for helping,
I added the Port (:3000) for for the "redirect_uris" but now I get the same error like the beginning!
I run out of clues now. Im turning in circles. :-(
node authorize.js
MMM-GoogleCalendar: Error loading credentials [Error: ENOENT: no such file or directory, open '/home/pi/MagicMirror/modules/MMM-GoogleCalendar/token.json'] {
errno: -2,
code: 'ENOENT',
syscall: 'open',
path: '/home/pi/MagicMirror/modules/MMM-GoogleCalendar/token.json'
}
^C

Hi, I'm using my Windows PC for configure the OAuth consent screen, downloading the "client_secret..."-file to my Windows PC.
Copying the "client_scret..."-file to my Raspberry I use WinSCP.
On my Raspberry I use "mc (MidnightCommander)", "Nano" etc. all via "Putty"-SSH-connection.
I tried it as you told me, but it is always the same result. And always the same error. It seems that one or more "settings"?! are missing in the "credentials.json" file.
I think I give in, and my new MM will not show my daily tasks and plans anymore. :-(
That setup to show a simple calender is to high and difficult for me, easy and convenient goes an other way.
Thanks for all your Help

Hi randomBrainstormer,
I got it, it's working now! :-)
You are right, I had to do the whole authentication process directly from my Raspberry, going through the whole guide with running the "index.js".
After that running "node authorize.js" went through and created the "token.js".
Now my Google-Calendar is displayd on my MagicMirror.
Again, thanks a lot for helping :-)


Command mappings for different Aquos models

I came to this project over home assistant and had the problem that not all commands worked on my Europe Sharp Aquos LC70LE835E because the original source code was written for US models.
After having a look on the offical Sharp Aquos Android Remote App (http://upkeep.sharp.eu/cps/rde/xchg/eu/hs.xsl/-/html/aquos-remote-lite.htm) I refactored the original source code to look up commands in a yaml file. Based on the app, I created mappings for US, Europe, China and Japan.
It would be nice if someone could test at least the US version.
A further approach would be to define custom mapping files - probably I'll do that in an upcoming version - if necessary.
Please be aware - I'm pretty new to python, normally I just code in Java/C++ - please let me know if I did anything completely wrong or in a bad python style!

@jmoore987 I just wanted to ask if you already had some time to look at the PR and probably test it on your TV?

I missed the original notification.  I'll test your changes in the next day or two and merge the PR assuming everything is okay.

I got to test this a bit.  Can you change your code to make US the default, so as not to break backward compatibility?  There are several projects that depend on this package, so I like to stay as compatible as possible.

Sure! I've set the new parameter to the last position and set 'us' as default.


beta update

Merge me when below merged

#5472
#5438
#5519
#5514
#5520
#5507
#5484

rojevanje for me

Seems this one doesn't work

#5435


test: update k8s testing versions to 1.15.11, 1.16.8 and 1.17.4

Signed-off-by: André Martins<EMAIL_ADDRESS>Update k8s libraries to 1.17.4

never-tell-me-the-odds

test-missed-k8s


fix: remove superfluous embeddedLanguages setting

Addresses issue #203. I believe that embeddedLanguages should not contain "text.html.markdown": "markdown"; see my response to the issue at https://github.com/mdx-js/vscode-mdx/issues/203#issuecomment-1221812813

@grahampcharles Thanks for your contribution!


improve javadoc for the Pipe interfaces

part of #148

This change is

Coverage remained the same at 55.792% when pulling e7dc91e88492a46dcb12b7ff5452d690215e2f6b on sclassen:148_cleanup_pipe_interfaces into bbd106ae85916e292e88138aa9ba50f89a996877 on jdeferred:2.x.

Reviewed 3 of 3 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Coverage remained the same at 55.792% when pulling bf8101fba9b52ef5dde8c82d997c319e3facec28 on sclassen:148_cleanup_pipe_interfaces into bbd106ae85916e292e88138aa9ba50f89a996877 on jdeferred:2.x.

Reviewed 2 of 3 files at r2.
Review status: 2 of 3 files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

ping @aalmiray, reviewable says there is 1 file to review :)

Reviewed 1 of 3 files at r2.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


Error handling with batches

Is there a technique that I can use to be able to return errors from a batch operation?
As an example, assume that I have to write records in batches of 3, but every write of odd entries results in an error. Before I am done, I want to log errors and remove them from the stream, while successful writes continue on.
h( [1, 2, 3, 4, 5, 6, 7, 8, 9] )
            .map( preProcess )
            .batch( 3 )
            .doto( writeRecords )     // odd records result in error
            .sequence()              // would prefer a partition for errors and success
            .errors( writeErrors )
            .each( h.log );

I cannot indicate an error using the throw clause, since I am processing records in batch. Should I invoke writeRecords using a map and return some error object that can be filtered for errors, or is there a better technique available now for branching or partitioning a stream?

I updated my example to show how the map function could be used to return the error condition in a stream of results.
var a = h( [1, 2, 3, 4, 5, 6, 7, 8, 9] )
    .map( triple )              // multiples by 3
    .batch( 3 )
    .map( process )             // odd - Error, Even - Value
    .sequence();

b = a.fork().filter( success ); // false if instanceof Error
c = a.fork().reject( success );

b
    .batch( 2 )
    .each( log( 'success:' ) );
c
    .batch( 2 )
    .errors( writeErrors )
    .each( log( 'error:' ) );

Yes. Your second example is how I would do it. The general technique for partitioning a stream is as you've shown: fork the original and apply filters to the forks.
Regarding errors, while highland allows you to continue from stream errors, I've always only used stream errors for unrecoverable errors. If it's possible to continue, I would just inject an error object as a stream value rather a stream error and filter it out using standard operators.
Finally, I would use flatMap(f) rather than map(f).sequence(). There's no functional difference, but I find flatMap more explicit.

Perhaps there is a way to batch when I would not like to use fork() or observe()?
    s                                  // Some stream of errors and successes
        .sequence()                    // assume the source is serial
        .errors( handleErrors )        // would like handleErrors to receive a batch of 5 errors
        .batch(10)                     // perhaps successful events are batched 10 at a time
        .each( x => log('success', x)  // want x to be array if 0..10 items

This one you'll have to implement yourself using consume. None of the operators that come with Highland will  do much with stream errors. You can look at the implementation of batch for an example.
Why don't you want to use fork or observe?

I basically have a single stream of data that is processed in three stages. At the end of stage3, if there are results remaining, I consider the overall run a success. Each stage can return errors however that cause the event to be shuttled off for manual intervention and must be logged. These events will no longer progress along the flow. Every once in a while, the error could be catastrophic, and I want the entire flow to fail immediately.
(Source) ---> Stage 1 ------> Stage 2 ------> Stage 3 ------> Done
               \--> error --/  \--> error --/  \--> error --/   ^
                \--> fatal     \--> fatal     \--> fatal        |
                          \              \             \        |
                           +--------------+-------------+-------+
(error is handled, flow continues)  (fatal invokes done)

The only other feature is support for batching events at various stages. Stage 1 will operate on 10 items at a time; stage 2 operates on 100 at a time, and stage 3 at 500 events at a time. I would also like my errors to be handled at 10 at a time. Think of these as bulk operations where it will be more efficient to process the items in batch.
My hunch is that my requirement to "fail fast" on any unhandled errors emerging from my error handlers means I have to be able to add a stopOnError handler as part of my main flow. This is why I have a reluctance to create additional streams.
This is pretty close, but I have two holes.

done() is not called when there is a fatal exception (like when error == 51).
I would like my errors to be batched before being handled. I'm looking into batch and consume to see if they provide me enough clues to create my own batchErrors function.

describe( 'production simplified', function () {

    function func( value ) {
        return value.map(function (val) {
            var result = val * 2 + 1;
            if ( result % 3 === 0 ) return Promise.reject( result );
            return Promise.resolve( result );
        })
    }

    function log( prefix ) {
        return function ( message ) {
            console.log( prefix + ':' + message );
        }
    }

    function error( prefix ) {
        return function( err, push ) {
            console.log( prefix, err );
            // 51 is a fatal condition
            if (err == 51) push( err );
        }
    }

    it( 'should mimic production flow', function ( done ) {
        _( [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] )

            .batch(3)
            .map( func )      // Promise: resolves to 2x+1, rejects if divisible by 3
            .sequence()
            .flatMap( _ )       // resolve promises
            .errors( error('stage 1 error') )
            .stopOnError( error('fatal') )

            .batch(2)
            .map( func )      // Promise: resolves to 2x+1, rejects if divisible by 3
            .sequence()
            .flatMap( _ )       // resolve promises
            .errors( error('stage 2 error') )
            .stopOnError( error('fatal') )

            .toArray( function(values) {
                log( 'result' )( values );
                done();
            } )
            ;
    } );
} );

Actually, problem #1 (stopOnError not calling done()) is actually because I am re-emitting the error again. It is resolved by handling the condition locally.
it.only( 'should mimic production flow', function ( done ) {
    _( [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] )

        .batch( 3 )
        .map( func )      // Promise: resolves to 2x+1, rejects if divisible by 3
        .sequence()
        .flatMap( _ )       // resolve promises
        .errors( error( 'stage 1 error' ) )
        .stopOnError( function ( err ) {
            console.error( 'fatal', err );
        } )

        .batch( 2 )
        .map( func )      // Promise: resolves to 2x+1, rejects if divisible by 3
        .sequence()
        .flatMap( _ )       // resolve promises
        .errors( error( 'stage 2 error' ) )
        .stopOnError( function ( err ) {
            console.error( 'fatal', err );
        } )

        .toArray( function ( values ) {
            log( 'result' )( values );
            done();
        } )
    ;
} );

@vqvu It seems like highland lacks a notion of "success".
Can you take a look at the following example. I just don't want to create a similar issue:
var express = require("express");
var _ = require("highland");
var app = express();

function logError(err) {
	//...
}

var handleErrors = Stream.curry(function (res, stream) {
	stream.errors(function (err, push) {
		logError(err);
		push(err);
	}).stopOnError(function () {
		res.sendStatus(500);
	});
});

app.post("/sync", function (req, res) {
	_([ job1, job2, job3 ])
		.flatten()
		.through(handleErrors(res))
		// what to use to execute success handling code?
		// .toArray will still trigger a function because partially jobs may succeed
		// .each because of the same reason as toArray
		// .done does not reflect status at all
});

How one can detect success of a batch?

You can use the new toCallback to detect this case. This operator expects at most one value or error to reach it, so if your jobs emit values that you care about, put a .collect() in front (like in the doc's example). Otherwise, filter them all out with a .filter(x => false).
Note that you won't need to use errors or stopOnError anymore. toCallback implicitly stops on errors.

Thanks!


Upgrade UI - Do not automatically switch network

Describe the bug

Do not connected to Moonriver, Moonbase (#Moonbeam)
Version test: https://file.cdmteck.com/s/4oimk9zDJ8R5Aai/download?path=%2F&files=./1185-merge-build-1.0.2-1-1681285767530.zip

Steps:

Go to the Moonbeam app
Switch to Moonriver/ Moonbeam app
Click on Connect wallet button then observe the connection

Actual: Do not connect Moonriver, Moonbase

Moonbeam connected successful

Expect: connected successful & automatically turn off network

Version test: https://file.cdmteck.com/s/4oimk9zDJ8R5Aai/download?path=%2F&files=./upgrade-ui-build-1.0.2-1-2023-04-12T18-57-04UTC.zip
Validation passed!


Cannot unzip following zip

On every platform I can unzip following file:
But with ZipArchive I don't get any file.

Are you solved???

Here is my code:
`NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject;
NSString *zipPath = [path<EMAIL_ADDRESS>
NSString *unZipPath = [path stringByAppendingPathComponent:@"zjejaddress"];

ZipArchive *archive = [ZipArchive new];
archive.delegate = self;

BOOL open = [archive UnzipOpenFile:zipPath];
if (open) {

    BOOL ret = [archive UnzipFileTo:unZipPath overWrite:YES];
    if (!ret) {
        NSLog(@"解压失败");
    }
    else {
        NSLog(@"解压成功");
    }

    [archive UnzipCloseFile];
}`

, then 'ErrorMessage: ' print "errorMessage: Failed to read zip file"... Thanks for you.


STLC + app, booleans, unit, begin

Left comments regarding what I did.

There are a few ways to create the unit value.
Using define-typed-variable-rename works but is pretty low-level (ie, it's directly creating a Racket macro, rather than programming at the Turnstile level). It's my fault for exposing it and I should be more careful about that.
Some better alternatives:

(define-typed-variable unit '() ⇒ Unit)
This is essentially the Turnstile-level equivalent to define-typed-variable-rename

Another straightforward way is using define-primop to give a type to Racket's void function. But that isn't exactly what you want since it requires calling a function.

But define-primop (sort of) works with values too: (define-primop unit #:as empty-list : Unit)

Finally you can always just use define-typerule directly:

(define-typerule unit
  [unit:id ≫
   ---------
   [⊢ (void-) ⇒ Unit]])

Btw, your #%datum clause for unit isnt actually doing anything. It will never fire because only literal values (eg, nums, strings, bools, etc) are ever wrapped with #%datum.
Also, I know the docs are out of date. Feel free to edit them, if you are so inclined , or even just open bug reports for things that are missing (I would be very grateful).

I meant to add, the safer way to implement typed #%app is to name it something else that wont change the behavior of other parts of the file, e.g. (define-typerule typed-app ....), and then rename during export, eg (provide (rename-out [typed-app #%app])).
And you should do the same for other implicit forms, eg name #%datum typed-datum or something instead.
This way, there's no way the implicit overloading can mess you up (which it does a lot, even for me).

I made most of the changes you suggested above. I had three follow-up questions:

after making the suggested changes to unit and begin2, begin2 examples began blowing up with e1 does not have type unit. The idea, as I understood it, was that the goal was to throw away the type of e1 and replace it with unit. How would you accomplish that?
If I want to create a 'derived form' for begin2, I'm assuming the correct way of doing that is the succ symbol?
in my 'derived form' rule begin2-again, I check that the second expression type-checks successfully before checking the derived version (since the lambda rule computes the type assuming the parameter is of the specified type in the type environment, which isn't what I want). Is that the right way of going about doing that?

There are a few things I spotted in the documentation that I'm gonna try editing or adding issues for over the weekend.

after making the suggested changes to unit and begin2, begin2 examples began blowing up with e1 does not have type unit. The idea, as I understood it, was that the goal was to throw away the type of e1 and replace it with unit. How would you accomplish that?

Yes, if begin has [⊢ e1 ≫ e1- ⇐ Unit], then only e1 = unit will type check. If what you want is to just type check and then throw away the resulting type, then change [⊢ e1 ≫ e1- ⇐ Unit] to `[⊢ e1 ≫ e1- ⇒ _]

If I want to create a 'derived form' for begin2, I'm assuming the correct way of doing that is the succ symbol?

Yes. That's how you direct one type checking rule to use another type checking rule.

in my 'derived form' rule begin2-again, I check that the second expression type-checks successfully before checking the derived version (since the lambda rule computes the type assuming the parameter is of the specified type in the type environment, which isn't what I want). Is that the right way of going about doing that?

Your derived version does the same as my [⊢ e1 ≫ e1- ⇐ Unit] suggestion. It requires the first part of begin2 to have exactly type Unit (which can only be something that evaluates to unit). I think what you actually want is to just accept anything in that position? (so long as it has a valid type)

There are a few things I spotted in the documentation that I'm gonna try editing or adding issues for over the weekend.

Thanks!


Not a issue but I'm from where you are from.

Just wanted to say hello. I'm testing your code out looks awesome.
Joseph
P.s I'm from Trenton lol.

Thanks for your kind comment.  I wonder if there's a better medium for fan mail than raising Github issues?

Thanks for your kind comment.  I wonder if there's a better medium for fan mail than raising Github issues?

Lol 🤣
Met vriendelijke groet / Kind regards,
Eric Oud Ammerveld
Phone:
+31 10 495 19 55
Mobile:
+31 6 55 86 25 44
E-mail:
<EMAIL_ADDRESS>
Op 2 jan. 2021 om 15:37 heeft William F. Dudley Jr<EMAIL_ADDRESS>het volgende geschreven:

Thanks for your kind comment. I wonder if there's a better medium for fan mail than raising Github issues?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/wfdudley/T-watch-2020/issues/17#issuecomment-753481261", "url": "https://github.com/wfdudley/T-watch-2020/issues/17#issuecomment-753481261", "name": "View Issue" }, "description": "View this Issue on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } } ]

Lol 🤣
Met vriendelijke groet / Kind regards,
Eric Oud Ammerveld
Phone:
+31 10 495 19 55
Mobile:
+31 6 55 86 25 44
E-mail:
<EMAIL_ADDRESS>
Op 2 jan. 2021 om 15:37 heeft William F. Dudley Jr<EMAIL_ADDRESS>het volgende geschreven:

Thanks for your kind comment. I wonder if there's a better medium for fan mail than raising Github issues?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/wfdudley/T-watch-2020/issues/17#issuecomment-753481261", "url": "https://github.com/wfdudley/T-watch-2020/issues/17#issuecomment-753481261", "name": "View Issue" }, "description": "View this Issue on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } } ]


Dashboard-FileShare: After Some Access rules creation, FileShare status becoming error from available

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:
/kind bug
What happened:

Create File Share and ensure its status is Available
create Access Rules more than 10 ( either in same Popup or seperately)
No response in dashboard after clicking OK Button
In Browser Response, we can see 400 error : {"code":400,"message":"createFileshareAcldbentry failed: only the status of file share is available, the acl can be created"}
Click cancel of popu and go and refresh File share page. File share status changed to ERROR from Available
What you expected to happen:
Should create all the rules
If error, specific error should display in UI instead of showing same page without any error
Respose error statement also ambigious.. should be simple and understandable

How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Environment:

Hotpot(release/branch) version:
OS (e.g. from /etc/os-release):
Kernel (e.g. uname -a):
Install tools:
Others:

@satya-gorli
Could you please share osdsdock.ERROR log?

plz give me this file path

@satya-gorli , i check log on the machine which you have shared me the log location is /var/log/opensds/osdsdock.ERROR . It shows all acl's creation at a time. Below is the log details shows all acl request sent to backend, this is not supported this same as "DashBoard-FileShare: FileShare not creating all the rules given #928 "
"[{"id":"035db8bb-41d8-4a51-88d6-d24f197dbb58","createdAt":"2019-06-25T14:30:35","updatedAt":"2019-06-25T14:30:35","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"b2f044e8-9c2f-4dad-9073-a8d108596c9f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/8"},{"id":"0427e594-b378-4f87-8596-4c52bc03fb34","createdAt":"2019-06-25T14:47:20","updatedAt":"2019-06-25T14:47:20","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"ad92d331-8ff0-4b25-9706-482b7bea2ec8","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/1"},{"id":"15ede3b9-22d2-46ed-a5e5-6af71bc9dda4","createdAt":"2019-06-25T14:35:18","updatedAt":"2019-06-25T14:35:18","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"0cc8e9ea-5ef5-452d-a144-d4e05307341f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/12"},{"id":"27cc6334-9ce2-4224-aaaf-2204fb5e11c2","createdAt":"2019-06-25T14:47:20","updatedAt":"2019-06-25T14:47:20","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"ad92d331-8ff0-4b25-9706-482b7bea2ec8","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/1"},{"id":"29efb62e-e90d-4436-8335-d9f36a4dd245","createdAt":"2019-06-25T14:14:24","updatedAt":"2019-06-25T14:14:24","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"b2f044e8-9c2f-4dad-9073-a8d108596c9f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/8"},{"id":"2ce08a91-456c-4efa-b61c-4c34617236e5","createdAt":"2019-06-25T14:30:35","updatedAt":"2019-06-25T14:30:35","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"b2f044e8-9c2f-4dad-9073-a8d108596c9f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/8"},{"id":"362e21e4-8cdd-46ec-b0f3-187f4b66fd6d","createdAt":"2019-06-25T14:35:18","updatedAt":"2019-06-25T14:35:18","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"0cc8e9ea-5ef5-452d-a144-d4e05307341f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/12"},{"id":"3b24a3f1-aae5-48ce-87df-6a01034bd1af","createdAt":"2019-06-25T14:11:46","updatedAt":"2019-06-25T14:11:46","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"b2f044e8-9c2f-4dad-9073-a8d108596c9f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/4"},{"id":"4348540c-b3dd-4564-a627-caa3cd3a50d9","createdAt":"2019-06-25T14:12:25","updatedAt":"2019-06-25T14:12:25","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"b2f044e8-9c2f-4dad-9073-a8d108596c9f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/6"},{"id":"48bbb52d-af7b-4ff4-aec2-3f5f0df30583","createdAt":"2019-06-25T14:47:20","updatedAt":"2019-06-25T14:47:20","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"ad92d331-8ff0-4b25-9706-482b7bea2ec8","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/1"},{"id":"588210a1-a097-415d-a755-daf0b40edcd2","createdAt":"2019-06-25T14:11:58","updatedAt":"2019-06-25T14:11:58","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"b2f044e8-9c2f-4dad-9073-a8d108596c9f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/5"},{"id":"5e0d34c6-935a-4405-a754-25e58cc3500f","createdAt":"2019-06-25T14:35:18","updatedAt":"2019-06-25T14:35:18","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"0cc8e9ea-5ef5-452d-a144-d4e05307341f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/12"},{"id":"65388339-a1d4-4cc4-b21b-caaa954e64f7","createdAt":"2019-06-25T14:47:20","updatedAt":"2019-06-25T14:47:20","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"ad92d331-8ff0-4b25-9706-482b7bea2ec8","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/1"},{"id":"6597651e-a25a-43f8-86c6-dddfcf99666a","createdAt":"2019-06-25T14:47:20","updatedAt":"2019-06-25T14:47:20","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"ad92d331-8ff0-4b25-9706-482b7bea2ec8","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/1"},{"id":"6712a3dd-0d4c-4eef-896f-ba35e2ed52b1","createdAt":"2019-06-25T14:47:20","updatedAt":"2019-06-25T14:47:20","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"ad92d331-8ff0-4b25-9706-482b7bea2ec8","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/1"},{"id":"697af9d5-b98c-45ff-8119-e1aa1609d7de","createdAt":"2019-06-25T13:59:16","updatedAt":"2019-06-25T13:59:16","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"b2f044e8-9c2f-4dad-9073-a8d108596c9f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/31"},{"id":"6ca3b307-a2d4-4988-b33e-a41cf3591f83","createdAt":"2019-06-25T14:13:59","updatedAt":"2019-06-25T14:13:59","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"b2f044e8-9c2f-4dad-9073-a8d108596c9f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/2"},{"id":"6d86ef1c-0bfd-47e2-8a8f-eec710577de7","createdAt":"2019-06-25T14:35:18","updatedAt":"2019-06-25T14:35:18","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"0cc8e9ea-5ef5-452d-a144-d4e05307341f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/12"},{"id":"6e3b6c6d-126d-450f-b326-16685a5b5303","createdAt":"2019-06-25T14:35:18","updatedAt":"2019-06-25T14:35:18","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"0cc8e9ea-5ef5-452d-a144-d4e05307341f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/12"},{"id":"6ed43526-9ebd-446e-b7e6-09ca95a3afce","createdAt":"2019-06-25T14:30:35","updatedAt":"2019-06-25T14:30:35","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"b2f044e8-9c2f-4dad-9073-a8d108596c9f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/8"},{"id":"74b0c1e4-179b-44db-8a35-57a42dfd7ed8","createdAt":"2019-06-25T14:22:00","updatedAt":"2019-06-25T14:22:00","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"b2f044e8-9c2f-4dad-9073-a8d108596c9f","type":"ip","accessCapability":["Read","Write"],"accessTo":"<IP_ADDRESS>/11"},{"id":"896bd934-7186-42b1-8b3e-3f9c02d2e8f7","createdAt":"2019-06-25T14:11:24","updatedAt":"2019-06-25T14:11:24","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"b2f044e8-9c2f-4dad-9073-a8d108596c9f","type":"ip","accessCapability":["Read","Write"],"accessTo":"<IP_ADDRESS>/3"},{"id":"8fbfcdea-d45c-4b27-a8c5-1439d9ef157b","createdAt":"2019-06-25T14:47:20","updatedAt":"2019-06-25T14:47:20","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"ad92d331-8ff0-4b25-9706-482b7bea2ec8","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/1"},{"id":"9f815be3-a7e1-4b4d-ba65-d8938f7aeb2d","createdAt":"2019-06-25T14:47:20","updatedAt":"2019-06-25T14:47:20","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"ad92d331-8ff0-4b25-9706-482b7bea2ec8","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/1"},{"id":"ab4af415-a08a-43f1-8ff7-94c6b70d33a0","createdAt":"2019-06-25T14:35:18","updatedAt":"2019-06-25T14:35:18","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"0cc8e9ea-5ef5-452d-a144-d4e05307341f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/12"},{"id":"ad812707-b9c5-413b-977e-04fb64d42798","createdAt":"2019-06-25T14:47:20","updatedAt":"2019-06-25T14:47:20","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"ad92d331-8ff0-4b25-9706-482b7bea2ec8","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/1"},{"id":"b0bd610c-e657-47eb-a863-703d0ef166d8","createdAt":"2019-06-25T14:47:20","updatedAt":"2019-06-25T14:47:20","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"ad92d331-8ff0-4b25-9706-482b7bea2ec8","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/1"},{"id":"b3948b3e-880d-4156-892e-6c5a29bf0812","createdAt":"2019-06-25T14:47:20","updatedAt":"2019-06-25T14:47:20","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"ad92d331-8ff0-4b25-9706-482b7bea2ec8","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/1"},{"id":"b73209bd-1751-4ddc-bce9-9195050906df","createdAt":"2019-06-25T14:35:18","updatedAt":"2019-06-25T14:35:18","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"0cc8e9ea-5ef5-452d-a144-d4e05307341f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/12"},{"id":"b94e42fe-f98c-4615-b1f4-b57db8e84982","createdAt":"2019-06-25T14:47:20","updatedAt":"2019-06-25T14:47:20","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"ad92d331-8ff0-4b25-9706-482b7bea2ec8","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/1"},{"id":"bb6ad017-7379-4131-a5c7-a6c35024b614","createdAt":"2019-06-25T14:35:18","updatedAt":"2019-06-25T14:35:18","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"0cc8e9ea-5ef5-452d-a144-d4e05307341f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/12"},{"id":"c55a272d-3bea-4ef0-8eb2-e8ea62ac692d","createdAt":"2019-06-25T14:47:20","updatedAt":"2019-06-25T14:47:20","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"ad92d331-8ff0-4b25-9706-482b7bea2ec8","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/1"},{"id":"c64c82b8-79b1-4e2d-95c2-2fc1e64afddc","createdAt":"2019-06-25T14:35:18","updatedAt":"2019-06-25T14:35:18","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"0cc8e9ea-5ef5-452d-a144-d4e05307341f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/12"},{"id":"c98735cf-61ad-49d2-87f5-97ca706b51ff","createdAt":"2019-06-25T14:10:45","updatedAt":"2019-06-25T14:10:45","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"b2f044e8-9c2f-4dad-9073-a8d108596c9f","type":"ip","accessCapability":["Read","Write"],"accessTo":"<IP_ADDRESS>/11"},{"id":"cacf0595-1d65-40ce-86f2-dc717b6f371f","createdAt":"2019-06-25T14:11:09","updatedAt":"2019-06-25T14:11:09","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"b2f044e8-9c2f-4dad-9073-a8d108596c9f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/2"},{"id":"cb5333a8-f7f3-455b-8d70-01265cee3302","createdAt":"2019-06-25T14:47:20","updatedAt":"2019-06-25T14:47:20","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"ad92d331-8ff0-4b25-9706-482b7bea2ec8","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/1"},{"id":"d231a46f-705c-454c-a5f1-533d74cc6966","createdAt":"2019-06-25T14:47:20","updatedAt":"2019-06-25T14:47:20","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"ad92d331-8ff0-4b25-9706-482b7bea2ec8","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/1"},{"id":"d61d6099-a282-4c44-8fed-158032b95a86","createdAt":"2019-06-25T14:30:35","updatedAt":"2019-06-25T14:30:35","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"b2f044e8-9c2f-4dad-9073-a8d108596c9f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/8"},{"id":"ef741954-e590-48e6-8a23-c8dd402c3ea2","createdAt":"2019-06-25T14:47:20","updatedAt":"2019-06-25T14:47:20","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"ad92d331-8ff0-4b25-9706-482b7bea2ec8","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/1"},{"id":"fff19e70-504c-4fee-a784-dfe0089b31af","createdAt":"2019-06-25T14:15:03","updatedAt":"2019-06-25T14:15:03","tenantId":"94b280022d0c4401bcf3b0ea85870519","fileshareId":"b2f044e8-9c2f-4dad-9073-a8d108596c9f","type":"ip","accessCapability":["Read"],"accessTo":"<IP_ADDRESS>/9"}]"
I check the machine status, i see there is problem with keystone,
all services are running but not able to take any user request
root@ubuntu-123:/var/log/opensds# export OPENSDS_AUTH_STRATEGY=keystone
root@ubuntu-123:/var/log/opensds# export OPENSDS_ENDPOINT=http://<IP_ADDRESS>:50040
root@ubuntu-123:/var/log/opensds# export OS_AUTH_URL=http://<IP_ADDRESS>/identity
root@ubuntu-123:/var/log/opensds# export OS_USERNAME=admin
root@ubuntu-123:/var/log/opensds# export OS_PASSWORD=opensds@123
root@ubuntu-123:/var/log/opensds# export OS_TENANT_NAME=admin
root@ubuntu-123:/var/log/opensds# export OS_PROJECT_NAME=admin
root@ubuntu-123:/var/log/opensds# export OS_USER_DOMAIN_ID=default
root@ubuntu-123:/var/log/opensds#
root@ubuntu-123:/var/log/opensds#
root@ubuntu-123:/var/log/opensds#
root@ubuntu-123:/var/log/opensds# osdsctl fileshare list
ERROR: Get http://<IP_ADDRESS>:50040/v1beta/94b280022d0c4401bcf3b0ea85870519/file/shares?offset=0&limit=50&sortDir=desc&sortKey=id: dial tcp <IP_ADDRESS>:50040: connect: connection refused
root@ubuntu-123:/var/log/opensds#
root@ubuntu-123:/var/log/opensds#
root@ubuntu-123:/var/log/opensds#
root@ubuntu-123:/var/log/opensds#
root@ubuntu-123:/var/log/opensds# ps -ef |grep osds
root      15767  15047  0 12:30 pts/1    00:00:00 grep --color=auto osds
root      91142      1  0 Jun25 ?        00:00:26 bin/osdslet
root      91224      1  0 Jun25 ?        00:00:29 bin/osdsapiserver
root      96407      1  0 Jun25 ?        00:00:39 bin/osdsdock
root@ubuntu-123:/var/log/opensds# osdsctl volume list
ERROR: Get http://<IP_ADDRESS>:50040/v1beta/94b280022d0c4401bcf3b0ea85870519/block/volumes?limit=50&sortKey=id&offset=0&sortDir=desc: dial tcp <IP_ADDRESS>:50040: connect: connection refused
In osdsapiserver.INFO log has these entries
W0625 14:09:57.723001   91224 etcd.go:165] The parameter sortKey is not present,use default value instead:ID
E0625 14:10:45.617286   91224 utils.go:111] verify token:Authentication failed, retry 1 time(s)
I0625 14:10:45.717651   91224 accesslog.go:26] ^[[32m[D] <IP_ADDRESS>:47630 -- POST /v1beta/94b280022d0c4401bcf3b0ea85870519/file/acls^[[0m
Though all services are running there is keystone issue is there on your test bed, please resolve these.
This is duplicate of this issue #928 .
So please close this issue.

Plz show in any working environment.. If this issue not exists, then I can close

/assign @Shruthi-1MN


Typo fix when attempting to open server in another workspace

PR Type
What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other: <!-- Please describe: -->

What is the current behavior?
Typo in message when trying to open live server in a workspace, when it's already running in a different workspace

Issue Number: N/A
What is the new behavior?
Typo is fixed.
Does this PR introduce a breaking change?
[ ] Yes
[x] No

Other information

Thank you :cupid:

Open a folder or workspace... (File -> Open Folder) ??????

help :)


project changed but git repo not change

I use project ring manage my projects. 1st I open the Git-Control for my project one, then I changed to project two, now Git-Control throw errors repo destroyed, but it should close repo one and open repo two.

Duplicate of #26 , but is less informative than the newer duplicate.