Field based streaming support in Sink

It seems that right now a feather sink needs a source that supports the column-based streaming protocol. Are there plans to also make it work with field-based sources?

Currently it supports field-based streaming through a DataFrame intermediary. i.e. Feather.Sink is registered to support field-based streaming, and the implementation involves field-streaming the Source to a dataframe, then streaming it out to a Feather.Sink. As far as I can tell, it's about as efficient as any other approach due to the nature of the feather binary file format.

Ah, it works with the master version, just not the latest tagged one!
I think with that I have complete support for DataStream sources and sinks in Query, i.e. you can query any DataStream source, and you can write the result of a Query into any DataStream sink.
I might have a couple of API suggestions down the road how we can make things smoother, but it will all be functional with my next push.
So I guess I'm just going to wait for the next tag :)


How to Have a GUI using the .dll File

Hi! I was wondering how you were able to have an interface with the .dll file. I was able to inject the .dll into the game, but the first image I wasn't able to recreate. I was wondering how you did that. (Sorry, I'm not very good with computers.)

Make sure you have installed the dependencies:
Microsoft Visual C++ Redistributable x86 - https://aka.ms/vs/17/release/vc_redist.x86.exe
Microsoft Visual C++ Redistributable x64 - https://aka.ms/vs/17/release/vc_redist.x64.exe
DirectX End-User Runtimes (June 2010) - http://www.microsoft.com/en-us/download/confirmation.aspx?id=8109
After you have installed them restart the game.

Hi! Thank you very much for your reply!
I reinstalled all three of the dependencies and restarted my PC, but I am still unable to get the interface to appear. It seems to still be the same where I have the command prompt window and everything seems to match the second image (the one I attached), but I can't seem to get the first image with the GUI. Is there something I need to click on inside the game after I've injected the .dll?
I'm very sorry to inconvenience you. Thank you for your help!

Do you see this in the top left of the window?
https://hugestrong.men/img_host/Omega/draf0h602haip1gj
If so then the menu rendering is working and you need to press the "Insert" key on your keyboard
if you do not have an "Insert" key you can change it in main.cpp line 52
using any of these keycodes https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes

Don't worry, thanks for responding at all, I know you aren't obligated to play tech support on old projects so I'm very appreciative of your help. I now see that you said that you had to press Insert to show the GUI and I feel silly that I didn't notice that earlier. It's working fine now. Thanks again!


Collision shapes attached to physical bones don't transform with their bones when animated

Godot version:
3.1 Alpha 3 and Alpha 2
OS/device including version:
Win 7 x64
Issue description:
If the skeleton the bones are tied to is animated the bones will transform, but the shapes do not move from their original position.
Minimal reproduction project:
Here is a test scene with an animated hand model I made. All you have to do is generate a set of physical bones from the skeleton, set the scene as the root scene, and hit F5. It's already set up to loop the animation.

It's been a month, anything?
They ARE suppose to animate, right?  Because in the last gif in the article describing the bones you can clearly see them animate with the bones

I have the same issue with IK. Bone constraints also seem to either get lost on export (even with better collada export) or be plainly ignored by the physical bone generation feature.
This makes usage extremely cumbersome at best and impossible at worst. :(

Still reproducible in the current master branch.

The Physical Bones are not supposed to be animated currently since they are thought for ragdoll only. I should add the support for this feature, in the meanwhile is advised to use bone attachment.

Fixed by this: #36008

Any chance it'll be backported to a 3.2.x update?  It's not a major change
but would be nice to have before 4.0 drops.
On Sun, Feb 9, 2020 at 4:15 AM Rémi Verschelde<EMAIL_ADDRESS>wrote:

Closed #24359 https://github.com/godotengine/godot/issues/24359 via
#36008 https://github.com/godotengine/godot/pull/36008.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/24359?email_source=notifications&email_token=ABBEISY4BOLFGS6I5POOHWTRB7JVHA5CNFSM4GKROFB2YY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOWQEPZBI#event-3020487813,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBEIS7DC3B7SNAYVKMLTB3RB7JVHANCNFSM4GKROFBQ
.


Bump version to 0.4.0 and upgrade CHANGELOG

on top of #90

utACK 9d8bdacfd6bd9427b39e31e4aafbb18ad504f1f3

#90 is in. can you rebase it?


It seems that there are some wrong calls when compiling with kotlin

Fatal error:com.oracle.graal.pointsto.util.AnalysisError$ParsingError: Error encountered while parsing com.icuxika.view.module.home.HomeController$transferInit$6$$special$$inlined$forEach$lambda$1.invoke()
Caused by: org.graalvm.compiler.java.BytecodeParser$BytecodeParserError: java.lang.NoClassDefFoundError: com/icuxika/view/module/home/HomeController$transferInit$6$1$1
Caused by: java.lang.NoClassDefFoundError: com/icuxika/view/module/home/HomeController$transferInit$6$1$1
In fact, this file does not exist in the class directory.

I am also stuck on the same issue native-image-maven-plugin is able to compile when some classes used are not on class path provided they are not referred

I am also stuck on the same issue native-image-maven-plugin is able to compile when some classes used are not on class path provided they are not referred


Can't open file './pytorch/train.py'

Hello,
I have setup my environment according to the readme, but I cannot run the sample model. Did I do something wrong?
Any help would be appreciated.
Thanks.

Hello @harris-mohamed, you need to run the training or evaluation command in your terminal under /CLOCs/second directory, because train.py is under /CLOCs/second/pytorch.

I was able to run it a little further, but now I am getting
line 307, in _read_and_prep_v9     v_path = pathlib.Path(root_path) / info['velodyne_path'] KeyError: 'velodyne_path'
As far as I can tell, this is an issue with my config file but I have manually checked that they are pointed to the KITTI dataset and that my dataset is set up in the way specified.

hello @harris-mohamed, if your config file is good, I think this is due to the setup for the KITTI dataset directory or the kitti pickle info files. You need to setup the /KITTI_DATASET_ROOT directory exactely the same as I specified in the README ("Prepare Dataset (KITTI)" section). You need to download the velodyne point clouds and other related data from KITTI website, and download the pickle files from my google drive shared folder, then put everything in the right directory.

Thanks for the response. I am still having the same issue, and I am baffled as to what my issue could be. Attached is a screenshot of my directory (the velodyne_reduced I downloaded from your google drive) as well as my config file. To me, it seems that it matches what you have in the readme.

car.fhd.config.txt

Based on your error information, this means that the code cannot find the kitti info pickle file, I had a look at your config file, you are using relative directory that points to the wrong directory, I recommend using full directory for all the info and dataset root path, such as /home/yourname/CLOCs/second/KITTI_DATASET_ROOT/ and /home/yourname/CLOCs/second/KITTI_DATASET_ROOT/kitti_infos_train.pkl for your situation.

I switched all of the paths to full paths, but I am still having the same issue. One difference that I noted is that I pulled the repo onto an external drive due to the dataset size, so that all of my paths are "/media/......" instead of "/home/....". Is this what could be causing this issue?

Hello,
Are there any other ideas with this? I tried pulling the repo in a fresh location, but I still have the same issues. One difference I did note is that my velodyne test has 7518 samples instead of 7580 samples. Could this be the issue?

In KITTI, there should be 7481 samples for training, 7518 samples for testing. Do you still have the KeyError: 'velodyne_path' error? If so, that means the code didn't load the pickle info files properly. Maybe the pickle info files you downloaded are damaged, the size of "kitti_infos_train.pkl" is 12598018 bytes, "kitti_dbinfos_train.pkl" is 6983252 bytes, "kitti_infos_val.pkl" is 13016563 bytes. Are these same as yours, if not, I suggest redownload them. Also, you could write a small script to load and read these pickle files and see what's going on.
with open(info_path, 'rb') as f:
infos = pickle.load(f)

Upon checking the pkl files, it seems that there was something wrong with my downloaded files. Redownloading it fixed this issue, but now I am getting
Traceback (most recent call last):
  File "./pytorch/train.py", line 22, in <module>
    from second.utils.eval import get_coco_eval_result, get_official_eval_result,bev_box_overlap,d3_box_overlap
ImportError: cannot import name 'd3_box_overlap'

However, my bashrc is adding the python paths that were specified in the setup. Is there something else it needs?

@harris-mohamed  'd3_box_overlap' is one of the functions in /CLOCs/second/utils/eval.py, did you modify the file? or after you modify the ~/.bashrc, did you source it?

I did not modify it, and I sourced the bashrc. I see the function clearly defined in the eval.py file, but I am at a loss as to why I cannot import it. I can import all of the other functions in that line except d3_box_overlap

That's weird, if you can import other functions, then there is no reason that you cannot import d3_box_overlap, could you show me your $PYTHONPATH, train.py and eval.py?

I also included my directory setup in case that helps.

train_eval.zip

@harris-mohamed   thank you. I think there is no problem with your train.py and eval.py, they are the same as mine. That means the problem highly likely locates in the python environment, could you remove the "..../CLOCS_TEST/CLOCs/second" and ".../CLOCS_TEST/second.pytorch" from your $PYTHONPATH and see if that helps (only keep /CLOCs_TEST/CLOCs), there are many '/second' directories, and not all contains utils/eval.py, so I guess that could be the issue.

That fixed my error, but now I am having an issue with the script itself. It might be a long shot, but have you seen the error below before? Should I set the block_filtering to true?

Traceback (most recent call last):
  File "./pytorch/train.py", line 918, in <module>
    fire.Fire()
  File "/media/harris/Projects/anaconda/envs/clocs_test/lib/python3.6/site-packages/fire/core.py", line 141, in Fire
    component_trace = _Fire(component, args, parsed_flag_args, context, name)
  File "/media/harris/Projects/anaconda/envs/clocs_test/lib/python3.6/site-packages/fire/core.py", line 471, in _Fire
    target=component.__name__)
  File "/media/harris/Projects/anaconda/envs/clocs_test/lib/python3.6/site-packages/fire/core.py", line 681, in _CallAndUpdateTrace
    component = fn(*varargs, **kwargs)
  File "./pytorch/train.py", line 656, in evaluate
    for example in iter(eval_dataloader):
  File "/media/harris/Projects/anaconda/envs/clocs_test/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 435, in __next__
    data = self._next_data()
  File "/media/harris/Projects/anaconda/envs/clocs_test/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 475, in _next_data
    data = self._dataset_fetcher.fetch(index)  # may raise StopIteration
  File "/media/harris/Projects/anaconda/envs/clocs_test/lib/python3.6/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/media/harris/Projects/anaconda/envs/clocs_test/lib/python3.6/site-packages/torch/utils/data/_utils/fetch.py", line 44, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/media/harris/Projects/CLOCS_TEST/CLOCs/second/pytorch/builder/input_reader_builder.py", line 18, in __getitem__
    return self._dataset[idx]
  File "/media/harris/Projects/CLOCS_TEST/CLOCs/second/data/dataset.py", line 70, in __getitem__
    prep_func=self._prep_func)
  File "/media/harris/Projects/CLOCS_TEST/CLOCs/second/data/preprocess.py", line 363, in _read_and_prep_v9
    example = prep_func(input_dict=input_dict)
  File "/media/harris/Projects/CLOCS_TEST/CLOCs/second/data/preprocess.py", line 225, in prep_pointcloud
    points, max_voxels)
  File "/media/harris/Projects/anaconda/envs/clocs_test/lib/python3.6/site-packages/spconv/utils/__init__.py", line 173, in generate
    or self._max_voxels, self._full_mean)
  File "/media/harris/Projects/anaconda/envs/clocs_test/lib/python3.6/site-packages/spconv/utils/__init__.py", line 69, in points_to_voxel
    assert block_filtering is False
AssertionError

@harris-mohamed , This is because the version of spconv is not correct, you need to install the commit that I put in the readme (spconv-v1.0, commit 8da6f96) .

#15  this guy had the same issue and has solved by reinstall spconv-v1.0 as I suggested. Hopes it helps.

This may help,
https://github.com/open-mmlab/OpenPCDet/issues/178#issuecomment-663194520
after git checkout 8da6f967fb9a054d8870c3515b1b44eca2103634, continue with
3. Ensure you have install pytorch 1.0 in your environment, run python setup.py bdist_wheel (don't use python setup.py install).
4. Run cd ./dist, use pip to install generated whl file.
If you encounter some setup error which I did, this may help:
https://github.com/traveller59/spconv/issues/104#issuecomment-583262965

Thank you everyone for your detailed help. I was successfully able to run the pretrained model.


Is 'collection_name' required when initializing 'PGVector'?

System Info
langchain = "^0.0.345"
I want to embed and store multiple documents in PGVector and RAG query the DB.
When saving documents, I am specifying a collection_name for each document.
(For example, if I have 3 documents, I have 3 collection_names)
Is it possible to separate collections like this?
Also, is the collection_name required when connecting to PGVector?
Who can help?
No response
Information

[ ] The official example notebooks/scripts
[ ] My own modified scripts

Related Components

[ ] LLMs/Chat Models
[ ] Embedding Models
[ ] Prompts / Prompt Templates / Prompt Selectors
[ ] Output Parsers
[ ] Document Loaders
[X] Vector Stores / Retrievers
[ ] Memory
[ ] Agents / Agent Executors
[ ] Tools / Toolkits
[ ] Chains
[ ] Callbacks/Tracing
[ ] Async

Reproduction
db1 = PGVector.from_documents(
embedding=embed,
documents=documents,
collection_name="my doc 1",
connection_string=CONNECTION_STRING
)
db2 = PGVector.from_documents(
embedding=embed,
documents=documents,
collection_name="my doc 2",
connection_string=CONNECTION_STRING
)
after, To query the DB where the document is stored.
db_connection = PGVector(
embedding=embed,
documents=documents,
collection_name="my doc 2",         # I don't want to specify a collection_name.
connection_string=CONNECTION_STRING
)
Expected behavior
I want to connect to the PGVector only the first time, and then use that session to query the collection_name (1 document in my case).

Same here, doesn´t make sense


Remove (personal) #Include ... UserCommands

In GUI.ahk, there is a link to a personal UserCommands that does not exist:
#Include %A_ScriptDir%\GUI\UserCommands_bjagasiaPersonal.ahk
Remove/Comment out

Thank you  @OvercastBTC - good catch. Latest push has commented out the line with some guidance as well.

No problem. I'm working on converting this to v2 (first), and making some (minor) modifications like expanding the GUI size a little to display the results of "?" (I added /help to do the same thing) in the gui, with the goal to have it update like intellisense, and such.


Dividends?

Hi,
I really like where you are going with this. I have forked it to have a play. Are you planning on adding Dividend recording to it? My experience with a lot of these portfolio managers is that they completely ignore dividends, though for so many investors it is where they get the most return.
I've never used Symfony, or yarn or node (I use Slim, or legacy code 😝 and very little JS) and looking at your code, I have managed to get heartily confused. I will have a bash at adding dividends, but I am sure I will break a lot of your code - there are more layers in there than I am comfortable with.
I'm hoping it's on your agenda, so I could perhaps help with something a little less daunting to start with 😁

The application is working fine for me as it is, so I'm not planning to extend the application any further. It's a project that I've created for myself some years ago and shared on GitHub, in case someone else finds it useful. And to benefit from GitHub automation, such as Dependabot, to keep the dependencies automatically up-to-date. I'm not having aspirations to maintain the project for anyone but myself, sorry.
If Symfony/Yarn is not your thing, have a look at https://github.com/scheb/yahoo-finance-api, which is a library that I actively maintain for other people to use. It already has API methods for fetching dividends data. So you could use that and build your own little app around it.

Thanks for the response. I'll check out the library instead.
Cheers


Atom freezing for 10 minutes (while building type information?)

Atom is freezing on me for about 10 minutes when I open a project and do the following actions. (i7 processor, windows 7)
In the project directory here:
https://github.com/rcollette/RequireAngularTS/tree/master/RequestAngularTS.Web
When I open a .ts file from the project, atom starts using about 6-7%cpu.
I tried a tsconfig.json file with just {} in it.   I typed angular. got no typeahead after typing the period, then backspaced and atom froze.   It was running at a steady 6%.
I then used the following config to attempt to narrow down the list of files, in case it was looking at too much.
{
    "compilerOptions": {},
    "filesGlob": [
        "./**/*.ts",
        "!./node_modules/**/*.ts"
    ],
}

It froze again after typing in angular. and then backspacing but it did update the list of files so the config now looks like:
{
    "compilerOptions": {},
    "filesGlob": [
        "./**/*.ts",
        "!./node_modules/**/*.ts"
    ],
    "files": [
        "./app/blocks/router/RouteResolver.provider.ts",
        "./app/blocks/router/block.router.module.ts",
        "./app/blocks/validation/ServerErrorDirective.ts",
        "./app/blocks/validation/block.validation.module.ts",
        "./app/directives/HtmlTemplate/HtmlTemplate.directive.ts",
        "./app/interfaces/FeatureController.I.ts",
        "./app/interfaces/PagebleT.I.ts",
        "./app/main.ts",
        "./app/modules/App/App.controller.ts",
        "./app/modules/App/App.module.ts",
        "./app/modules/App/App.routes.ts",
        "./app/modules/Core/App.Core.module.ts",
        "./app/modules/PurchaseOrder/PurchaseOrder.controller.ts",
        "./app/modules/PurchaseOrder/PurchaseOrder.module.ts",
        "./app/modules/PurchaseOrder/PurchaseOrder.service.ts",
        "./app/modules/PurchaseOrder/PurchaseOrders.controller.ts",
        "./app/modules/Vendor/Vendor.module.ts",
        "./app/modules/Vendor/Vendor.spec.ts",
        "./app/modules/Vendor/Vendors.controller.ts",
        "./dist/blocks/router/RouteResolver.provider.ts",
        "./dist/blocks/router/blocks.router.module.ts",
        "./dist/directives/HtmlTemplate/HtmlTemplate.directive.ts",
        "./dist/directives/ModelValidatorDirective.ts",
        "./dist/interfaces/FeatureController.I.ts",
        "./dist/interfaces/PagebleT.I.ts",
        "./dist/main.ts",
        "./dist/modules/App/App.controller.ts",
        "./dist/modules/App/App.module.ts",
        "./dist/modules/App/App.routes.ts",
        "./dist/modules/Core/App.Core.module.ts",
        "./dist/modules/PurchaseOrder/PurchaseOrder.controller.ts",
        "./dist/modules/PurchaseOrder/PurchaseOrder.module.ts",
        "./dist/modules/PurchaseOrder/PurchaseOrder.service.ts",
        "./dist/modules/PurchaseOrder/PurchaseOrders.controller.ts",
        "./dist/modules/Vendor/Vendor.module.ts",
        "./dist/modules/Vendor/Vendor.spec.ts",
        "./dist/modules/Vendor/Vendors.controller.ts",
        "./typings/angularjs/angular-animate.d.ts",
        "./typings/angularjs/angular-cookies.d.ts",
        "./typings/angularjs/angular-resource.d.ts",
        "./typings/angularjs/angular-route.d.ts",
        "./typings/angularjs/angular-sanitize.d.ts",
        "./typings/angularjs/angular.d.ts",
        "./typings/jquery/jquery.d.ts",
        "./typings/modernizr/modernizr.d.ts",
        "./typings/moment/moment.d.ts",
        "./typings/requirejs/require.d.ts",
        "./typings/tsd.d.ts"
    ]
}

I've added a tsconfig.json file to your project. Would be great to debug that project with you. I am on gitter  if you want to chat : https://gitter.im/TypeStrong/atom-typescript?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge

Working off of that PR branch, I am unable to experience the same as you can see.

Once, the 10 minute period is up, I do get the typeahead like you have shown.  It's the initial start up time that takes a while.   Sorry I didn't see your post about gitter.  I probably went to sleep just after I posted.   I'm on EST (GMT-5)

Sorry I misunderstood, I thought it was "after 10 minutes it becomes slow" whereas you meant "its slow for the first 10 minutes". So now:
For me its quite fast and near instantaneous once atom boots up as you can see in the near realtime gif here :

It does need to read the entire project filesystem. I see around 100ms delay here and not much more. Also all this work in the background so it shouldn't freeze the UI.

Are you working off the local file system or network?

I am working off the local filesystem.  After adding in the tsconfig that you provided, I am not getting any typeahead at all, not even for the built in types it seems.   It's taking a little longer now to lock up but eventually it freezes.   In the attached gif, it locks up the very end when you see "dd" in my typing.

This may be of more use.   It appears that maybe there is a deadlock since all processes are running and then suddenly everything stops and only one process is spinning?

I am on gitter again.  Can you open up the atom dev tools ctrl+shift+i to see if anything bad is happening that gets logged there?

I've registered but haven't used it before.  Not sure how to get you privately.

C:\Users\rich\.atom\packages\atom-typescript\lib\worker\parent.js:8 AtomTS worker started
index.js:57 Window load time: 5479ms
C:\Users\rich\.atom\packages\atom-typescript\lib\worker\lib\workerLib.js:135 CHILD ERR STDERR: fs.existsSync() is deprecated. Use fs.accessSync() instead.

Not sure how to get you privately.

You can't get me privately. But we chat in the room https://gitter.im/TypeStrong/atom-typescript. No one gets a notification unless they explicitly asked for it (like I have for this particular room) or the get @ mentioned e.g. @basarat

@rcollette your log shows that there were no errors.

@rcollette message me when in the room (so that people that are watching this project for source code don't get chat like messages :heart: )

Suspect this will be take care of by https://github.com/TypeStrong/atom-typescript/issues/183 Fix coming with v1 once https://github.com/TypeStrong/atom-typescript/pull/179 is merged.

Great.  #183 sounds very similar to what I am experiencing.   Still have not had time to do fresh install and test.


Theme.of(context).platform running on web returns macOS instead of iOS when accessed from an iPad

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Make an app that prints Theme.of(context).platform in the middle of the screen
Build it for the web
Publish it online
Access that web from an iPad

If you want to see the bug by yourself in a quick fashion, for convenience, a website that reproduces the issue has been published here: https://flutterthemeplatform.codemagic.app/
Expected results
It should print iOS
Actual results
It prints macOS
Code sample
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Theme Platform',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  const MyHomePage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("Theme Platform"),
      ),
      body: Center(
        child: Text(
          'Theme.of(context).platform is ${Theme.of(context).platform}',
        ),
      ),
    );
  }
}

Here's the repo of this code: https://github.com/fewlaps/theme-platform-flutter
Screenshots or Video

Screenshots / Video demonstration

Logs
Logs
== Building for Web ==

> flutter build web
Resolving dependencies...
  collection 1.17.1 (1.17.2 available)
  lints 2.0.1 (2.1.1 available)
  matcher 0.12.15 (0.12.16 available)
  material_color_utilities 0.2.0 (0.5.0 available)
  source_span 1.9.1 (1.10.0 available)
  test_api 0.5.1 (0.6.0 available)
Got dependencies!

Compiling lib/main.dart for the Web...
Font asset "MaterialIcons-Regular.otf" was tree-shaken, reducing it from 1645184 to 7548 bytes (99.5% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app.
Font asset "CupertinoIcons.ttf" was tree-shaken, reducing it from 283452 to 1236 bytes (99.6% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app.
Compiling lib/main.dart for the Web...                             15.4s

Flutter Doctor output
Doctor output
roc@Pitxoli theme-platform-flutter % fvm flutter doctor -v
[!] Flutter (Channel stable, 3.10.5, on macOS 13.3.1 22E772610a darwin-arm64, locale en-ES)
    • Flutter version 3.10.5 on channel stable at /Users/roc/fvm/versions/3.10.5
    ! Warning: `dart` on your path resolves to /opt/homebrew/Cellar/dart/2.18.7/libexec/bin/dart, which is not inside your current Flutter SDK checkout at /Users/roc/fvm/versions/3.10.5. Consider adding /Users/roc/fvm/versions/3.10.5/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 796c8ef792 (2 days ago), 2023-06-13 15:51:02 -0700
    • Engine revision 45f6e00911
    • Dart version 3.0.5
    • DevTools version 2.23.1
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/roc/Development/android
    • Platform android-33, build-tools 33.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[✓] IntelliJ IDEA Community Edition (version 2022.2.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] Connected device (4 available)
    • iPhone 14 Pro Max (mobile)                     • 0DF12398-20BE-41AA-A069-77F282BF9BF5 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • iPad Pro (12.9-inch) (6th generation) (mobile) • DC32C696-0FD5-48B8-9627-617D11465469 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • macOS (desktop)                                • macos                                • darwin-arm64   • macOS 13.3.1 22E772610a darwin-arm64
    • Chrome (web)                                   • chrome                               • web-javascript • Google Chrome 114.0.5735.133

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

Thanks for filing this issue @rocboronat . I am able to reproduce this issue when built on web on iPad.

It seems that the code that Flutter (web) is using to determine the defaultTargetPlatform on the Web is outdated:
https://github.com/flutter/flutter/blob/12f2cbcb2152d5d60b3a0fd2d2c7d382e448302d/packages/flutter/lib/src/foundation/_platform_web.dart#L42-L46
Since macOS 13, iPads identify as "MacIntel" and further checks are required to tell them apart from a laptop machine.

See: https://stackoverflow.com/questions/57765958/how-to-detect-ipad-and-ipad-os-version-in-ios-13-and-up

Nuance to consider:  domWindow.navigator.platform returns:

"MacIntel" if launched in safari, but
"IPad" if launched in Google Chrome

Checked on IPad Air 4
iPadOS 17.0.3
Chrome 118.0.5993.69
Flutter 3.13.7
Flutter 3.13.7 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 2f708eb839 (7 days ago) • 2023-10-09 09:58:08 -0500
Engine • revision a794cf2681
Tools • Dart 3.1.3 • DevTools 2.25.0

Safari and GoogleChrome has different userAgent strings:

safari: userAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10-15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0.1 Safari/605.1.15
chrome: userAgent: Mozilla/5.0 (iPad; CPU OS 17_0 like Mac OS X) AppleWebkit/605.1.15 (KHTML, like Gecko) CrioS/118.0.5993.69 Mobile/15E148 Safari/604.1

As a result, calling the function Theme.of(context).platform produces different results:

safari: Theme.of(context).platform == macOS
chrome: Theme.of(context).platform == iOS

code example
conditionally import where you want to use it
import 'utils/user_agent_info.dart'
    if (dart.library.html) 'utils/user_agent_info_web.dart';

user_agent_info_web.dart
import 'dart:html';

String get webUserAgent {
  final userAgent = window.navigator.userAgent.toString();
  return userAgent;
}

file user_agent_info.dart is just a stub
String get webUserAgent {
  return "userAgent available only for kIsWeb build";
}

Thanks for this findings, @nailgilaziev! I updated the issue title and body to match them 👍

It'd be nice if this api was more widely supported:
https://developer.mozilla.org/en-US/docs/Web/API/User-Agent_Client_Hints_API

Reproduced this issue on iPad Air 5th, iOS 17.0.3.

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.13.9, on macOS 14.1 23B74 darwin-x64, locale en-VN)
    • Flutter version 3.13.9 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision d211f42860 (11 days ago), 2023-10-25 13:42:25 -0700
    • Engine revision 0545f8705d
    • Dart version 3.1.5
    • DevTools version 2.25.0

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
    • Xcode at /Users/huynq/Downloads/Xcode.app/Contents/Developer
    • Build 15A507
    • CocoaPods version 1.13.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio Giraffe.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.84.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.76.0

[✓] Connected device (4 available)
    • RMX2001 (mobile) • EUYTFEUSQSRGDA6D                         • android-arm64  • Android 11 (API 30)
    • iPhone (mobile)  • d9a94afe2b649fef56ba0bfeb052f0f2a7dae95e • ios            • iOS 15.7.9 19H365
    • macOS (desktop)  • macos                                    • darwin-x64     • macOS 14.1 23B74 darwin-x64
    • Chrome (web)     • chrome                                   • web-javascript • Google Chrome 118.0.5993.117

[✓] Network resources
    • All expected network resources are available.

• No issues found!

[!] Flutter (Channel master, 3.17.0-5.0.pre.19, on macOS 14.1 23B74 darwin-x64, locale en-VN)
    • Flutter version 3.17.0-5.0.pre.19 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2f62af423a (55 minutes ago), 2023-11-08 20:38:07 -0500
    • Engine revision 8b490a9f16
    • Dart version 3.3.0 (build 3.3.0-107.0.dev)
    • DevTools version 2.30.0-dev.1
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A507
    • CocoaPods version 1.13.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio Giraffe.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[!] Android Studio (version unknown)
    • Android Studio at /Applications/Android Studio Preview.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Unable to determine Android Studio version.
    • Java version OpenJDK Runtime Environment (build 17.0.8+0-17.0.8b1000.22-10799086)

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.84.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.76.0

[✓] Connected device (3 available)
    • RMX2001 (mobile) • EUYTFEUSQSRGDA6D • android-arm64  • Android 11 (API 30)
    • macOS (desktop)  • macos            • darwin-x64     • macOS 14.1 23B74 darwin-x64
    • Chrome (web)     • chrome           • web-javascript • Google Chrome 119.0.6045.105

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 2 categories.

Reproduced the issue on iPad Pro 4th, iOS 17.2

Maybe is related with TargetPlatform?
I have this code in my app
final isDesktopWeb = TargetPlatform.android != defaultTargetPlatform && TargetPlatform.iOS != defaultTargetPlatform && kIsWeb;
in any desktop browser it is returning true, in any android return false, so that's ok. But in iOS, tested with an iphone 15 pro and 13 its returning true

I'm going to try to exopose the same source code that we have on the engine to determine browser versions to the flutter framework, to make the defaultTargetPlatform consistent with what the engine thinks it's seeing.
That way, fixes on the source code of the engine will propagate to the framework as well.

Still not fixed, we need to use the browser detection in the framework. Reopening.

I have a PR open with the fix, and a demo app deployed here:

https://dit-browser-detect.web.app

Would you mind pointing your devices to that URL and see that the result is as expected? I've tried with as many devices I could get my hands on, but that's far from exhaustive :)

Hey @ditman, that's excellent news! ❤
I tried with physical phones and everything works as it should:

Chrome on Windows OK
Safari on iOS OK
Chrome on iOS OK
Safari on iPad Pro OK
Chrome on iPad Pro OK
Chrome on a Samsung S22 OK

Thanks a lot!! 👌

Thanks for verifying @rocboronat!
I'm breaking a few internal google tests (around 20 thousand 💀), but it seems that the internal system hasn't picked up the engine changes yet. Once it does, I'll see the real extent of the breakage.

If it was 18 or 19 thousand it wouldn't be that bad... but 20K... let's wait, haha! Thanks a lot fot the effort 🙇

(The extent of the breakage is "none", so once it gets reviewed it should land easily)


Playwright test fail in todo-nodejs-mongo

Describe the issue:
Playwright test fail. But it is a probabilistic failure, with a high probability of failure.
Besides, through investigation, we found that the listId in the request URL is missing when creating item，because the page data had not been loaded when creating item.
The error message as follows:

Test Environment:
OS : Windows Desktop
Template: https://github.com/Azure-Samples/todo-nodejs-mongo
In addition, in MAC and Linux environments, the test is passed most of the time。
Repro steps:
1.Run command azd up
2.Run command cd tests
3.Run command npm i && npx playwright install
4.Run command npx playwright test
Expected behavior:
playwright test can success.
@jongio,@rajeshkamal5050 for notification.

@wbreza can you take a quick look at see if it is indeed an issue?

@v-xuto @v-jiaodi
The issue reported here seems to be similar to this one https://github.com/Azure/azure-dev/issues/291.
Given that it is passing in Mac and Linux. Don't think it should be an issue with the template.

What happens when you try it manually?
Can you please find out more on why it is failing?

Maybe we need to just fix tests to accommodate environments specific stuff. Similar to how we did fix on the tests for the other issue.

@rajeshkamal5050

The test is passed most of the time in MAC and Linux environments. But the same error occasionally occur.
It passes when we execute manually.
It is not similar to this one #291. Through investigation, we found because the page data loading is delayed, the listId in the request URL is missing when creating item.
Besides, we have created a PR to fix it. Please help review it.


Time v0.2 pre-release feedback

Hello rustaceans! Until recently, the time crate was soft-deprecated, in that bug fixes would be considered, but no features would be actively added. It is the 25th most downloaded crate all-time, and is still being downloaded slightly more than chrono. As such, I began a bottom-up rewrite of the time crate, taking inspiration from time v0.1, chrono, the standard library, and some RFCs, along with some localization pulled in from glibc.
My goal is to release time v0.2 alongside Rust 1.40, which is currently scheduled to be released on December 19. By going to the community for a public review now, this will allow me sufficient time to make any necessary changes.
To view the documentation for the master branch, you can use time-rs.github.io. There are also some helpful shortcuts, so you can go to time-rs.github.io/Duration and be brought to the relevant documentation immediately.
Follows are two pages from the wiki, which provide some detail as to what will occur in the future and the differences between existing crates.

Differences from chrono and time v0.1
Chrono has been the de facto crate for time management for quite a while. Like time, its original implementation predates rust 1.0. Presumably due to its age, chrono still relies on time v0.1 (though it's partially inlined the relevant code). The disadvantage of this is that any third-party functions that rely on chrono essentially mandate you import chrono or time v0.1 to use its Duration type. This single fact makes interoperability with the standard library quite difficult. Time v0.1 is identical to chrono in this manner.
Time v0.1 is what the standard library was built upon. Time v0.2 flips this, being built upon the standard library. This provides for a higher-level abstraction, while also supporting the same targets as the standard library.
In time v0.2, there is full interoperability with the standard library. Every type can perform the same arithmetic that its standard library counterpart can and vice versa. Types are freely convertible to and from their standard library equivalents.
Vision
Scope
Most things that simplify handling of dates and times are in the scope of the time crate.
Some things are specifically not in scope.

Nothing should implicitly rely on the system's time zone. Passing a time zone as a parameter or a function returning the time zone is acceptable. This restriction ensures that nothing surprising happens when running the same code on different systems.
Nothing should implicitly rely on the system's locale. Parsing and formatting methods may be added in the future, but the locale must be passed as an argument, similar to parse_language requiring a Language today.

This list is by no means exhaustive. Additional items that are not in scope will be added to this list as they are brought up.
Explicitly in scope, but not yet implemented include the following:

Full timezone support, relying on tzdb.
Period type, which would be usable with a zoned DateTime. While this would expose a similar (if not identical) API to Duration, the advantage is that it could take into account leap seconds, DST, etc. As such, a Period would not be directly convertible to a Duration - one minute could be either 59, 60, or 61 seconds.
Full locale support, which would amount to altering the formatting of combination specifiers. This could either be in addition to language support or in place of. In the latter situation, it would be a breaking change requiring a major version bump.

Strategy
Wherever possible, types are implemented as wrappers around those in the standard library. Additional functionality is still able to be provided, such as allowing a Duration to be negative.
Some types (like Sign) were helpful to implement generically, simplifying arithmetic implementations. They may be extracted to a separate crate in the future and re-exported in time.
Future plans
If all necessary reviews go well, my intent is to release time v0.2 shortly after the release of rust 1.40.
For post-v0.2 features, eventually I'd like to support tzdb, including automatic time zone shifts for DST and native leap second support. I'd also like to be able to have 5.seconds() be able to return either a time::Duration or std::time::Duration, but the compiler is currently unable to infer the return type and choose the appropriate trait to use.

Let me know your thoughts, positive or negative. All I ask is that you be constructive and follow the code of conduct. I can be reached on Matrix either via direct message or on the #time-rs channel.

Some questions that come to mind after reading this issue and poking through the docs and code briefly:

Is this crate compatible with 0.1?

If not, maybe the deprecated things should be omitted?

What's the thought behind using log to emit the deprecation warnings?

Seems people are unlikely to see these messages and the parent functions will emit a deprecation warning at compile time anyway. I guess this mostly seems like an opportunity to avoid bringing in the log crate in the default set of feature flags.

my wish list item: a u64 wrapper representing a nanosecond timestamp with serialization/deserialization and interoperability with the other types. it's not always possible to use u64 to store timestamps (e.g. dates > 2554-07-21) but in many cases it is, and u64 is half the size of a libc timespec. (i64 would be ok as well, max date is 2262-04-11). relatedly, a i32/u32 wrapper representing hourly precision timestamps, u16 representing daily, etc. I've used these approaches in certain circumstances but it would be a joy to have a library that allows painless conversion between these and more full-fledged datetime types.

@wezm

Some questions that come to mind after reading this issue and poking through the docs and code briefly:
* Is this crate compatible with 0.1?

  * If not, maybe the deprecated things should be omitted?

* What's the thought behind using log to emit the deprecation warnings?

  * Seems people are unlikely to see these messages and the parent functions will emit a deprecation warning at compile time anyway. I guess this mostly seems like an opportunity to avoid bringing in the log crate in the default set of feature flags.

No, it is not fully compatible with 0.1. Some methods and types are included (and deprecated) where names and/or signatures have changed. Without looking at the full API, I believe most of the Duration and Instant types are compatible. As they're deprecated, they shouldn't be used in new code.
I've also received a direct message on Matrix asking about an equivalent of the time::at method from 0.1. The equivalent would be DateTime::from_unix_timestamp(seconds) + nanos.nanoseconds(). Because it's relatively simple, I'll likely push the additional deprecated method (and similar methods) in a bit for additional back-compatibility.

Strictly speaking, it's not a deprecation warning. It's a warning against a slight change in behavior that I felt was favorable to panicking. Users might not necessarily run across the specific situation (overflowing). It's not a bad idea to just add it to the built-in deprecation warning, or even revert to the old behavior of panicking. Either of those would eliminate the default dependency on log.

@jstrong-tios

my wish list item: a u64 wrapper representing a nanosecond timestamp with serialization/deserialization and interoperability with the other types. it's not always possible to use u64 to store timestamps (e.g. dates > 2554-07-21) but in many cases it is, and u64 is half the size of a libc timespec. (i64 would be ok as well, max date is 2262-04-11). relatedly, a i32/u32 wrapper representing hourly precision timestamps, u16 representing daily, etc. I've used these approaches in certain circumstances but it would be a joy to have a library that allows painless conversion between these and more full-fledged datetime types.

The primary problem with doing something like this is that the epoch is not immediately obvious. You could always do something like DateTime::unix_epoch() + 1_000.days() +. To go the other direction, you could do (datetime - DateTime::unix_epoch()).whole_days().

@jhpratt do you mean it wouldn't be obvious whether the type uses 1970-01-01 or some other epoch (1582! who's with me!?) as its reference point? My assumption was it would use the unix epoch; I think that would be the obvious choice. But there's a variety of ways to mitigate possible confusion, including, as you suggest, explicitly named "constructor" methods. In uuid crate, I was involved in improving the api for their v1 timestamp functionality which used the same idea: https://docs.rs/uuid/0.8.1/uuid/v1/struct.Timestamp.html. At a deeper level, I think that someone who cares about the memory layout of their timestamps can be trusted to read the docs specifying the epoch.

@jstrong-tios Yes, that is what I meant with regard to the epoch. I would personally assume the unix epoch as well, but I don't think that should be the case without being clear in the method name. That would be similar to other items excluded in the scope, where any assumptions are clearly indicated.
However, you do make a decent argument with the size of the struct. Running std::mem::size_of::<T>() gives the following currently:
On initial thought, I could do something along the lines of Week, Day, … Nanosecond, implemented as thin wrappers around the appropriate integer type. However, I'd only permit conversions to Durations, not to DateTimes directly (due to the epoch ambiguity). Note that those would change in the future with an eventual Period type; a period::Minute isn't necessarily 60 seconds due to leap seconds.
Feel free to join the Matrix channel if you'd like to discuss this outside of this issue! I'll likely respond quicker there as well.

Why not name the functions the same as their std library counterparts?
For example:
as_secs_f32
vs
as_seconds_f32
I think there would be value in having this as a drop-in replacement.

@aloucks I presume you're only referring to Duration here, as the only other type with an identically-named counterpart is Instant, where I used the same API.
Basically what it comes down to is I think that "secs" is odd to use — some others like millis, micros, and nanos are more common, but as a native English speaker, I've never seen anyone use "secs" when referring to seconds in any context other than that one. Plus, at what point do you stop shortening names? Why not just Duration::as_s()?
While I understand the concern, I think it's more logical to just spell it out. Time wouldn't be able to be a drop-in replacement regardless, due to differing behaviors and function headers due to its ability to be negative. And on top of that, you picked probably the most similar method name :stuck_out_tongue: Most of the methods are whole_minutes and similar, which provide a more descriptive name of what is returned.
Side note! If Rust had method overloading, my ideal API would actually be along the following lines:
impl Duration {
    fn seconds(i64) -> Self; // same as current
    fn seconds(self) -> i64; // same as `.whole_seconds()`
    fn seconds(self) -> f32; // same as `.as_seconds_f32()`
    fn seconds(self) -> f64; // same as `.as_seconds_f64()`
}

Unfortunately that's not quite the case. I looked into just supporting .as_seconds() in a trait and trying to infer whether it was f32 or f64, but alas that's not even currently possible.

@jstrong-tios Looking into this some. It looks doable, though I'm not 100% sold on it being in the 0.2 release. There would be 8 types and conversions in between all of them. Then we'd also have arithmetic between the various types (adding, subtracting, and dividing, plus multiplying by integers), equality, ordering, etc. Needless to say, there would likely be a few hundred manual trait impls that could only be partially generated with macros.

@jhpratt if it's any use to you, I just dug up this implementation of a daily and hourly integer wrapper types I wrote for an unpublished project. What do you have in mind in terms of things that cannot be done with macros? Comparing between the types?

Yeah, that's roughly what I had in mind for the API, sans chrono of course.
With regard to macros, off the top of my head I think a large portion wouldn't be able to due to the conversion constants. I believe there's a way around it, but I'd have to check to be sure (it deals with the orphan rule). I could, of course, convert it to a Duration and then to the target type, but that defeats the goal of the smaller memory footprint.

I’m a little unsure about trying to bake in our own i18n effort here. Specifically whether it’s likely to hinder broader support in the future for apps that need to work with more than just dates and might run into inconsistencies with libs that take different approaches. Do you know of any other time-like libraries in other language ecosystems that follow this path?

Not entirely sure what you mean by potential inconsistencies with other libraries. I suppose there could be differences in spellings or abbreviations if that's what you mean, but I'm not aware of any major i18n/l10n crate in the ecosystem. Upon a quick search, i18n is reserved and l10n is available, so I could spin it into a separate crate (with wider support) and depend on that if that would be preferred.
With regard to other languages, yes! I actually pulled the localization from glibc.

[glibc](https://linux.die.net/man/3/strftime uses the "current" locale, so it's not possible to manually set it (aside from changing environment variables).
Python and [Ruby](https://ruby-doc.org/stdlib-2.6.5/libdoc/date/rdoc/DateTime.html, using the "current" locale.
JavaScript has Intl.DateTimeFormat, which uses full locales.
JodaTime in Java has partial support for locales (ctrl+F for "locale" on that page). However, JodaTime was largely absorbed into a core Java API (notably not the locale support, though).
Swift supports arbitrary locales

Of those that I searched, PHP, C♯, and Go appear to have neither language nor locale support (PHP says so explicitly). The others are above. So at least from first glance, it seems a significant number of languages have some level of support, even if not customizable.
I think it's important to have it not implicitly rely on the system locale or language, as that causes inconsistencies when running otherwise identical systems. At the minimum, the user should have to call Language::system() (or something along that line). Having support in general is useful for anyone doing l10n on web servers or client-facing software.

@wezm I've just removed the log dependency in favor of a more detailed compile-time message. time::precise_time_ns() and time::precise_time_s() have also been added & deprecated.
@jstrong-tios After thinking about your idea a bit more, I think it would be best to push this past 0.2, given the inherently large amount of code & complexity.

@KodrAus Would you prefer 0.2 not have localization? Everything could be in English, which is currently assumed if not specified. It would be relatively easy to remove the languages as it currently is.
Looking down the road, I recently ran across the Unicode Common Locale Data Repository, which seems to be the de facto authoritative source on locale information, being used by Windows, Mac, and most Linux distros, as well as by browsers like Chrome and Firefox. I am going to look through the raw data some more; I'm trying to determine how hard it would be to extract the requisite information and publish a l10n crate, which time could then depend upon. That would be a ways away, though.

Thanks for your patience on this @jhpratt! And I should’ve mentioned before that the new API you’ve designed is great and a real leap forward. I’m trying to start at a higher-level before digging into specific API decisions.

Not entirely sure what you mean by potential inconsistencies with other libraries. I suppose there could be differences in spellings or abbreviations if that's what you mean, but I'm not aware of any major i18n/l10n crate in the ecosystem.

Would you prefer 0.2 not have localization? Everything could be in English, which is currently assumed if not specified. It would be relatively easy to remove the languages as it currently is.

I haven’t actually worked on a localized app myself, so this is really just my impression based on the scope of the localization API. If anybody who has needed to work in this space has different impressions I would defer to those 🙂
I imagine a project that requires localization would want a fully-featured localization system like Project Fluent, which looks like it has out-of-the-box datetime support, and an implementation for Rust. In this case we don’t need to build localization support into time, and consumers don’t need to work with potentially inconsistent localization APIs from different libraries in their project when supporting different cultures.

No problem @KodrAus. I haven't actually done a large-scale app that requires localization (yet), so I'd likewise defer as well if anyone else is following this and has input.
Fluent seems useful, and handles both full and abbreviated text as well; it appears to be based off of JavaScript's API. You're probably right that anything needing localization would be on a scale higher than just dates and times.
After taking a quick look at Fluent on the playground, I'll almost certainly pull the localization code tonight, unless I see some significant reason not to. I will add a unix_timestamp_ms function to simplify the handling, since that's what Fluent appears to take.

Currently functions which create Date/Time objects from parts (e.g. Date::from_ymd) panic if you supply wrong parts. Is it possible to make them return Result, or add another methods to return Result, so i can track these errors?

@Y0ba I can look into additional methods that would return an Option. What do you think they should be called? Date::from_ymd_opt and similar? The main thing I'll have to look into is how it'll interact with the macro for checking the value is in range.

My usecase is that these parts come from device via COM-port, and they might be either wrong or just corrupted, therefore both Option and Result are fine by me since I don't need exact reason, just the fact of failure (but maybe someone else will need it for better logging or error reporting 🤷♂).

What do you think they should be called?

_res or _opt suffixes are fine. _fallible looks better but it's probably too long.

Ok, sounds good! I'll take a look into it tomorrow or Tuesday; hopefully updating the macros won't be too tricky.

Well, I just tried implementing a trait and a variety of objects to allow for a very detailed error (actual range, given value, what type it was), but it seems like it's not currently possible to do without a ton of effort. I could likely work around it by creating another layer of abstraction, but then it gets confusing to follow for the end user.
So, they'll be methods returning an Option. And the name in the form of try_foo, which is a bit more descriptive.

Issue I would like to resolve: std::time::Duration allows for values between 0 and u64::max_value(); time::Duration between -u64::max_value() and u64::max_value().
Should Duration::whole_seconds() return an i128 rather than an i64? That would allow the full range to be captured if someone did Duration::seconds(i64::max_value()) * 2 (which results in a valid value). Right now, whole_seconds() overflows. I believe the alternative is to forcibly restrict the range, which should be doable without too much effort.
How overflows are handled in general is something that I do need to check and possibly modify behavior before a release, though.

Are there any good reasons to require Rust v1.40? I'm quite curious. It seems like a time crate should be able to be built using older compilers.
We're currently using v1.22, v1.32 and v1.36 because of different reasons/constraints. I realize that 1.22 is very old, especially in Rust land, but it should be possible to at least target a version that has been stable for a few months instead of a version that is not even released yet..

@stevenroose #[non_exhaustive] is used, which is currently in beta. The alternative is to have a __nonexhaustive variant on the relevant enums, which requires explicit panics inside the library where it's used.
After the initial release, bumping the minimum version for rustc will allow for the then-current stable and the two previous versions (which would currently be 1.37, as stable is 1.39). I don't think I wrote that down anywhere, so I'll add it to the wiki in a bit.
Keep in mind that once rust-lang/rust#65262 lands, that stable can be the permanent MSRV, as any future changes could be gated behind that. This is currently possible via rustversion crate, but that would require adding in a mandatory proc macro dependency, increasing compilation time. If I implement #191 using proc_macro_hack instead of waiting for nightly APIs to stabilize, I might consider using rustversion as well.

The only item I'd still like to do before a release is directly implementing Serialize and Deserialize, so as to not rely on the internal structure. Apart from that, I believe all should be good to go.
@alexcrichton @KodrAus Any final concerns, or can publishing rights be granted on crates.io in anticipation of a release next Thursday(ish)? That's the final item in the rough plan here from back in September.
Pinging @Manishearth as well, who had initially expressed reservations about transferring control of the crate.

Thanks for the ping @jhpratt! This is looking great!
The only real concern I have besides localization, which we’ve sorted, is the presence of a raw DateTime type with no associated offset or zone information. In practice, I think you never really want the raw date and time without an offset because it’s simply not possible to convert into any meaningful instant on the time line. I know a lot of standard libraries in languages have a type like DateTime, but languages like Java and C# also have ecosystem alternatives that ‘fix’ issues with ambiguous date time code that comes from not knowing a time zone or offset.
Can we think of any really compelling usecase for DateTime over OffsetDateTime that isn’t just a variant of not wanting to think about offsets that makes it worth including?

@KodrAus One place I'm already using this in actual code (not public anywhere) is web scraping. As the end user doesn't have the ability to specify the time zone in the scraped text (barring manual formatting), it wouldn't be possible to determine one definitively. The alternative would be to have a parse_with_tz method, but then the user is making an assumption that may or may not be correct.
Important to some (especially in embedded), there's also a memory advantage to not storing a time zone everywhere when you know you're only dealing with one. An OffsetDateTime is 20 bytes versus 16 for DateTime.
Tomorrow I'll likely try to search for various uses of NaiveDateTime in code that uses chrono, as that's the equivalent type.

This all looks great to me! Feel free to ping me once there's consensus and I'll add you to crates.io

Ok, that seems reasonable to me. Perhaps we should use the same ‘NaiveDateTime’ name? So that when you’re browsing through the API you’re forced to think about what the naive part is, and whether you really want ‘OffsetDateTime’ or some future ‘ZonedDateTime’, rather than just defaulting to ‘DateTime’.

Would PrimitiveDateTime work? I feel like that has a less negative connotation than "naive", at least as a native English speaker.

Primitive is a bit wordy, but I get what you mean, and would personally be on board with PrimitiveDateTime :+1: At least I can't think of any better names right now!

Yeah, I just feel like "naive" would lead users away from it, even when it's the appropriate type to use. I'll make that change in a minute — should be relatively easy.

Just pushed up the change, should be all set @alexcrichton (unless @KodrAus has anything else).

I'll just do one more quick pass over the public API now 🙂

So I just had a few more questions:
Do we need our own public Sign enum? It seems like a very general-purpose type?
Having the try_from_* methods return Option instead of Result seems a bit unfortunate, because it's not really consistent with the TryFrom trait. I saw you couldn't really give detailed information back from those methods in an Error without a lot of work, but what about something like an opaque public top-level Error type? As a start it could be:
pub struct Error {
    kind: ErrorKind,
}

enum ErrorKind {
    Message(&'static str),
    Parse(ParseError),
}

impl From<ParseError> for Error { .. }

impl std::error::Error for Error {
    fn cause(&self) -> Option<&dyn std::error::Error> {
        match self.kind {
            ErrorKind::Parse(e) => Some(e),
            _ => None,
        }
    }
}

impl Error {
    fn as_parse(&self) -> Option<&ParseError> { .. }
}

and then return this top-level Error type from fallible methods, which may mean wrapping up a ParseError or some general message. I find having a single top-level Error type in a library makes it easier to integrate into the error handling of applications so that they only have a single type to consider. What do you think?
And I promise that's the last of it from me! 😁 This really is a phenomenal effort!

The Sign enum is certainly very broad, as it makes any code interacting with it very easy to understand. There's actually a similar type in the num crate that serves a similar purpose. The alternative is to have Duration::sign return -1, 0, or 1, similar to the signum method on primitive numerical types.
I'd actually prefer a Sign enum be present in the standard library, but regardless.
For try_from_* methods, I'd absolutely prefer to return a Result. I actually just had an idea that might allow for some detailed error reporting like I wanted. I'll create an error type that will be forward-compatible with that idea, returning that instead of None.
And I swear I don't mind! Feedback is important :smile:

cc @skade IIRC you mentioned you were also curious in this, would you like a chance to review this API?

can't help but ++ @Y0ba request about introducing non-panic API.
in fact, it would be better to remove APIs that can panic.
time is used directly or indirectly by many crates, it's a real shame to have otherwise solid Rust app to panic because there is user input with invalid data. It's a little burden to deal with Result<>, but we do not have much control over what 3rd party crate pass to time internally.

in fact, it would be better to remove APIs that can panic.

👍 Or at least mark them as deprecated and remove in v1. That way v0.2 and 0.1 will be more compatible and developers will have more time to migrate to fallible versions.

Would it be satisfactory to clearly indicate in documentation that the Result-returning variant should be preferred when handling user input?
I hesitate to remove them entirely, because if you're using a hard-coded value, you'd still have to use .unwrap() (even if you know it's valid). For a 1.0 release, I definitely want to have #191 land, which would provide compile-time verification of those hard-coded values. Once that happens, I'd have zero problems removing the panicking functions, only having them return Results.
Note that there will almost certainly be released between 0.2 and 1.0, which would give sufficient time for deprecation.

may be introduce panicing-api feature to make it harder to ignore the problem? i realize we can't change world over night, but it has to be done eventually. Any change made in time crate, will have to ripple through dependencies and it may take a year or two.
just to illustrate what the pain the panic is: i have 2 crates outside of my control between my app and time crate. My QA figured to try Jan 1st 1820 input, which immediately broke app and i have to either start adding custom data checking before it reaches panic point or wrap calls i can't control with panic::catch_unwind.

Hmm…a feature flag may work, provided it's disabled by default. It could be clearly indicated in documentation that the feature is necessary to use the function, similar to existing methods (rustdoc is built using nightly).
The fact that everything has to cascade through the ecosystem is a good point, and is definitely a reason to do something now as opposed to later.
I'll think about it tomorrow at some point, but my initial thought is that it would be an acceptable solution.

I've decided to go ahead with gating the panicking API behind a feature flag. This will not apply to the various "format" methods, as the only time they can panic is if the developer provided an invalid formatting string.

@galich @Y0ba Panicking methods (that aren't formatters) have been placed behind a feature flag (panicking-api). This is clearly documented in multiple places, and tests have been updated to match.

May I ask what needs to be done to convert a UTC time to a local time in 0.2? Before we could do:
tzset();
let tm = at(timespec);

@ymtvx Unfortunately getting the system time zone is not possible in 0.2, at least yet. I am going to investigate how difficult it would be to support, at a minimum, Unix and Windows APIs, which would cover the major three operating systems. However, it shouldn't come as a surprise that it's basically impossible to cover all systems (that's one of the large problems with 0.1).
Note that this is probably the one thing where I'd be okay with changing #![forbid(unsafe_code)] into #![deny(unsafe_code)], mandating that each usage be manually checked and commented.
If this is included in a future version, it would definitely be gated, since it would add a runtime dependency (libc).

@galich @Y0ba Panicking methods (that aren't formatters) have been placed behind a feature flag (panicking-api).

Hm, I personally find the use of a feature flag for panicking a big strange unless it's an explicit goal to remove them, in which case I think they should just be changed to return Result (just the try_ variants without the prefix). I don't see a reason to delay ripping the band-aid off. Since the panicking versions are gated, and I don't imagine users are likely to go looking for a feature to enable them, they're effectively soft-deprecated already. But I don't want to overstate the strength of my opinion here :)

So I'm :+1: on updating the crate owners and publishing a 0.2 release at any point now.

@KodrAus Long-term (like 1.0), I would like to have them removed. The panicking methods, when used with known values, can be verified at compile-time. I actually have a proof of concept time macro now, though it relies on proc_macro_hygiene to expand into expressions. It also uses diagnostics to provide helpful error messages. I don't think there's a ton holding those up from being stabilized, so hopefully it'll be sooner rather than later.
Would it be preferable to just nuke the panicking versions right now, before a release? That would force users to explicitly handle the case where input is invalid, at least until a macro of that sort is allowed on stable.

Also, awesome! @alexcrichton unless anyone else has objections, we should be good to go for Thursday.

Closing this issue, as all necessary reviews have been performed. v0.2 will be published on crates.io at some point tomorrow. If you encounter any issues, please file a new issue.
Thanks everyone for your input!


feat(trace): scoped logging

Closes #150
Output of the test
zig build test -Dfilter="trace.logger: works"
test
└─ run test stderr
-- Initial log entry not scoped
time=2024-08-22T05:22:43Z level=info  Not scoped
-- Scoped log entry
[trace.log] time=2024-08-22T05:22:43Z level=debug elapsed=4245  request with id abcd1234 succeeded
[trace.log] time=2024-08-22T05:22:43Z level=info kind=some_enum_kind  operation was done
[trace.log] time=2024-08-22T05:22:43Z level=warning authorized=false  api call received at 10004 not authorized
[trace.log] time=2024-08-22T05:22:43Z level=error error="IOError"  api call received at 10005 broke the system!
[trace.log] time=2024-08-22T05:22:43Z level=debug elapsed=4245  request with id succeeded
[trace.log] time=2024-08-22T05:22:43Z level=info kind=some_enum_kind  operation was done
[trace.log] time=2024-08-22T05:22:43Z level=warning authorized=false  api call received at not authorized
[trace.log] time=2024-08-22T05:22:43Z level=error error="IOError"  api call received broke the system!
[trace.log] time=2024-08-22T05:22:43Z level=info tmp1=123 tmp2=456 tmp2="t12312"  new push message
[trace.log] time=2024-08-22T05:22:43Z level=info  new push message
[trace.log] time=2024-08-22T05:22:43Z level=info  operation was done
[trace.log] time=2024-08-22T05:22:43Z level=warning  api call received at 10004 not authorized
[trace.log] time=2024-08-22T05:22:43Z level=error  api call received at 10005 broke the system!
[trace.log] time=2024-08-22T05:22:43Z level=debug  request with id succeeded
[trace.log] time=2024-08-22T05:22:43Z level=info  operation was done
[trace.log] time=2024-08-22T05:22:43Z level=warning  api call received at not authorized
[trace.log] time=2024-08-22T05:22:43Z level=error  api call received broke the system!
-- Scope changed.
[trace.entry.StandardEntry] time=2024-08-22T05:22:43Z level=info  Scope Changed

closing this since progress seems to have moved to https://github.com/Syndica/sig/pull/249


Generated graphml fix

cc: @Extheoisah @willcl-ark
do we use baseFee anywhere?

cc: @Extheoisah @willcl-ark
do we use baseFee anywhere?

don't think so. atleast we don't have it in the sample graphml file https://github.com/bitcoin-dev-project/warnet/blob/main/src/templates/example.graphml


Support markdown admonitions

Describe the Custom Component
This isn't a request for a completely new component, more about adding a new feature to the markdown support.
Other frameworks such as Docusaurus and GitHub that support markdown, have also included support for admonitions. It would be great if Reflex also had this support as part of the markdown component.

What is the purpose of the custom component?

To display warnings, notes, tips, caution, etc blocks to a markdown document.

What is the expected behavior of the custom component?

For example in GitHub:
> [!CAUTION]
> Negative potential consequences of an action.

Renders as:

[!CAUTION]
Negative potential consequences of an action.

What are the use cases for the custom component?

To give attention to some information within a markdown document.
Specifics (please complete the following information):

Do you have a specific react package in mind? (Optional):

There is this: https://github.com/nebrelbug/react-admonitions
but I don't know if that is the best option.
Additional context
Unfortunately, there is no standard for admonitions. Docusaurus uses different tags than GitHub. Mkdocs material UI also uses a different syntax.
Of course, if I completely missed it and Reflex does support admonitions, maybe a change to the docs should have mention of it.
https://reflex.dev/docs/library/typography/markdown/
https://github.com/orgs/community/discussions/16925
https://docusaurus.io/docs/markdown-features/admonitions
https://squidfunk.github.io/mkdocs-material/reference/admonitions/

I guess this would be the markdown equivalent of Reflex's callouts (https://reflex.dev/docs/library/datadisplay/callout/)

@ericwb Our markdown component is based on react markdown which has many plugins, there may be one to support this.
We have an internal library called flexdown (that we're planning to release soon) that allows a mix of markdown and Reflex within your code. It allows for much more customizable pages than standard markdown - we use it for our interactive docs on our main website, e.g. our intro docs.


Keith's Kettle Corn

If you read the description of Keith's Kettle Corn at https://spicygreenbook.com/biz/keithkettlecorn, about midway through the description there is the address/phone number.  I've pasted in the section with the issue below....
By 2004, so much major buzz broadcasted around town about our signature flavored "Windy
City Mix" kettle corn. Our wonderful customers were “Spreading the Addiction” that soon major
corporations, universities, celebrities, professional sports teams and Hollywood came a calling.
We have supplied The Los Angeles Clippers Foundation with our gourmet kettle corn popcorn at
various charity events. We were featured in an episode of ABC “Desperate Housewives” and
ABC Family “Bunheads”. We were a staple at the USC Trojan Football games at the Historic
200 W. FOOTHILL BLVD
AZUSA, CA 91702
626-804-7999
WWW.KEITHSKETTLECORN.COM
Los Angeles Memorial Coliseum from 2005-2013 and various music festivals across southern
California.

 :)


Got Could not encode version for local source error

Describe the bug
I got the warning message log from below code.
I would like to check what is the underly error message cause this warning logs.
https://github.com/gruntwork-io/terragrunt/blob/88a99ad600bcec233fd5b71ecb0c757e12e2184a/terraform/source.go#L93
Steps To Reproduce

Create libs and apps directory
Create simple module in libs directory
Create simple apps with terragrunt.hcl from below

include "root" {
  path   = find_in_parent_folders()
  expose = true
}
terraform {
  source = "${path_relative_from_include()}/libs/aws-s3"
}

Expected behavior
No warning logs.
Nice to haves

[X] Terminal output
[X] Screenshots

Versions

Terragrunt version: v0.68.17
OpenTofu version: v1.8.5
Environment details (Ubuntu 20.04, Windows 10, etc.): MacOS 15.1.1

Hey @kamontat ,
I wasn't able to reproduce this issue when looking at the test fixture used for local sources.
Would you be willing to create a public repository under your username (something like kamontat/terragrunt-fixtures) with an example fixture that I can reproduce this on?

I was able to resolve this issue by delete all caching (both providers and modules).
I was upgraded Opentofu from v1.7 to v1.8 when the warning occurred but after I deleted all cache, the warning is gone. Thank you for your help


Move env-for-js parsing stub from inline into file for CSP

Who is this PR for?
developers, part of https://github.com/studentinsights/studentinsights/issues/1704.
What problem does this PR fix?
This JS stub is inline.
What does this PR do?
Moves it to within two existing bundles.

verified on the demo site


Why does the static version of the GLFW library need other libraries to be linked during compilation?

I am using Fedora 34.
I cloned this repository and built the library on my machine. After building I used the make install command to install the library on my machine. I believe the library that is installed is a static library as the name of the installed library is libglfw3.a.
However, to compile the first example given in the documentation I had to link other libraries as well. The command which compiled the code is gcc main.c -lglfw3 -lpthread -ldl -lOpenGL -lm. Linking an implementation of the OpenGL library (-lOpenGL) makes sense because the code is using glClear(). However, why did I have to link libraries other than glfw3 (-lglfw3), such as pthread (-lpthread), dl (-ldl), math(-lm)?
Isn't a static library supposed to bundle all its dependencies with itself? I expected gcc main.c -lglfw3 -lOpenGL to work. Or I am missing something?

Isn't a static library supposed to bundle all its dependencies with itself?

It is the contrary: a dynamic library does, but a static library does not. A static library only contains symbols, and they have to be resolved at link time when assembling an executable image.

-pthread -ldl, -lm and OS threading support, the dynamic linker and maths, respectively.
These are provided by glibc (the GNU C standard library), but they are separated into different files (not sure why, musl libc doesn't do it, for example), and not linked automatically.

@Adnn Hmm. Makes sense. After your input, I experimented a little bit with some dynamic and static libraries. So, when I link to a dynamic library it resolves its dependencies at the runtime. However, if I use a static library the actual code of the library gets copied in the executable. Therefore it becomes my duty to link the dependencies of the static library at compile time.
Either way, the library's dependencies must be present in the system. Otherwise, the code won't run.


some question!

hello!
I have some questions about Gurobi not quite understand, want to ask you, do not know have time?

Sure


Unmanaged disks storage account

Why the best practice is to "Keep all disks (OS and data) associated with a VM in the same storage account" ?

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

ID: 948b29e3-d488-0a0e-89c7-42849a93522d
Version Independent ID: 8c986086-9343-4b99-ae53-f4fd1159d4f8
Content: Manage the availability of Windows VMs in Azure
Content Source: articles/virtual-machines/windows/manage-availability.md
Service: virtual-machines-windows
GitHub Login: @cynthn
Microsoft Alias: cynthn

Thanks for the question! We are currently investigating and will update you shortly.

@rabbboudi While using unmanaged disks, you have to create a storage account to store the disks. In this case, you need to take care of the IOPS limits for storage account and the other limitations applied to storage account.
But when you use managed disks, Azure takes care of the underlying storage accounts for you.

@Karishma-Tiwari-MSFT I see but why the best practice is to put all the VM's disks in the same storage account ? is it to faciltate the administration only ?

@rabbboudi You are right. It is not required but it is a best practice to follow, to have all disks under same storage account for administration/effective management purposes. This helps in various scenarios, for example, when a disk is detached, discovery is easier when they all are in same storage account.
It is recommended to use Managed disks if you would like Azure to take care of the management.
Hope that helped answer your question.
We will now close this issue. If there are further questions regarding this matter, please tag me in a comment. I will reopen it and we will gladly continue the discussion. :)


Manage Page for Message

I made a total of two commits that modified your code.

The first commit was to fix the code you wrote, I removed some css and used what we used before, since this page is similar to another page.
The second commit was to add information to the forms from the message page (using props). I also wrote some logic for the submit.


feat: Rich Text Editor enable browser spellcheck

Description
Fixes #13885
Type of change

New feature (non-breaking change which adds functionality)

How Has This Been Tested?
Manual
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

Test coverage results :test_tube:
:red_circle: Total coverage has decreased
// Code coverage diff between base branch:release and head branch: feature/13885-rte-spellcheck

Status
File
% Stmts
% Branch
% Funcs
% Lines

:red_circle:
total
56.55 (-0.01)
38.54 (-0.01)
35.87 (0)
56.8 (0)

:red_circle:
app/client/src/utils/WorkerUtil.ts
88.98 (-0.78)
70.59 (-1.96)
100 (0)
92.38 (-0.95)

:red_circle:
app/client/src/utils/autocomplete/TernServer.ts
52.71 (-0.23)
40.83 (-0.84)
36.21 (0)
56.74 (-0.25)

/ok-to-test sha=8de79aa

Tested this PR and working as expected

Browser spell checker is enabled for RTE
Users are allowed to view browser right click menu options by using ctrl+right click to view recommended words

@Tooluloope I believe there is a bit more work left in this PR and @techbhavin  is going to work on it after his current tasks are taken care of.
cc: @dilippitchika

@ashit-rath  I was thinking are you taking care of this issue.
can you plz let me know what is pending in this issue ?

@techbhavin https://github.com/appsmithorg/appsmith/issues/13885#issuecomment-1128517579

@ashit-rath @techbhavin I'll continue this PR

@Tooluloope can you please check this? It's a small change waiting since last 15 days

/ok-to-test sha=88ba3ce

/ok-to-test sha=de29a07

@ashit-rath 2. Not able to see Right click instruction on safari browser on right click

@ashit-rath On right click it feels weird that I see "Control+Right" in Quotation mark and not "Control+Right click".

@vivekverma2312 Yes you are right
@techbhavin We should modify it to "Control + Right click". Also add a space before and after the +

@ashit-rath 2. Not able to see Right click instruction on safari browser on right click

@vivekverma2312 Can you also tag @techbhavin to the callouts as he's now contributing to this issue?

@vivekverma2312

issue 2. Not able to see Right-click instruction on the safari browser on right-click.

this is known as the issue in safari.
fiddleDemo which is official demo i find from https://www.tiny.cloud/blog/tinymce-spellchecker

/ok-to-test sha=89c6e7f

@techbhavin Thanks. The issue is fixed and working fine.


Cross-compilation issue with linker search paths

Describe the bug
I am encountering an issue when cross-compiling with a Windows library installed, libpthread in this example. GCC is incorrectly picking up the Windows library instead of the system one.
I came across this in the context of a Rust project with a build.rs file. First, the build file has to be compiled for and executed on the host platform with GCC. Afterward, the rest of the project can be compiled for the target with MinGW.
NIX_LDFLAGS contains the Windows library when it's installed, which causes GCC to error because it doesn't obviously understand the format. If I manually remove it from the environment, then MinGW doesn't know where to pick up the library and the build fails.
Steps To Reproduce
Steps to reproduce the behavior:

Clone https://github.com/kognise/crosscomp-mcve
Run nix-shell --pure
Run cargo clean && cargo build --target x86_64-pc-windows-gnu

Expected behavior
I'm relatively new to Nix, so I honestly don't know what the right solution to this is.
The expected behavior from a developer's perspective is simply for GCC to find the Linux libpthread and for MinGW to find the Windows version so that everything can compile nicely.
Screenshots

Additional context
I would just like to mention that this isn't a problem with Rust exclusively, or the overlay I'm using. This is just the simplest way I've been able to reproduce it, and how I came across the issue during real-world development.
Notify maintainers
Not sure who I should specifically ping for this, so apologies if I incorrectly mentioned you.
@matthewbauer (from MinGW derivation history)
@madjar @cstrahan @globin @havvy (from rustc maintainers, probably didn't need to ping all of you so sorry)
Metadata

system: "x86_64-linux"
host os: Linux 5.10.67, NixOS, 21.05.3367.fd8a7fd07da (Okapi)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.3.15
channels(root): "nixos-21.05.3367.fd8a7fd07da"
channels(kognise): "nixos-21.05-21.05.3367.fd8a7fd07da"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
# a list of nixos modules affected by the problem
module:

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/cross-compile-rust-for-windows/15259/3

A way to work around this is to not put windows.pthreads in the build inputs of the shell, but assign it to an environment variable in the shell, e.g. WINDOWS_PTHREADS = windows.pthreads;. Then, in build.rs, pass that environment variable to rustc with println!("cargo:rustc-link-search=native={}/lib", env::var("WINDOWS_PTHREADS").unwrap());.

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/cross-compiling-to-mingw-missing-libraries/31849/2


[Navigation UX] Clicking on a subsection jumps to that section (as expected) but link is not shown active

Steps to reproduce the problem
Go to a https://learn.qiskit.org/ content page and click on a subsection
What is the current behavior?
When clicking on the subsection, the page jumps to that section but the link is not shown active. If we scroll to see the title, we get the link active:
https://user-images.githubusercontent.com/17231966/125453972-5d1205b3-2a29-436b-a47a-b137ef4aa631.mov
What is the expected behavior?
The link should be shown active when we jump to it

This repository is no longer maintained. It has been superseded by IBM Quantum Learning.


Fix #4081 Check for leading / in base before removing it

And add more tests related to this func.
Fix #4081

Codecov Report

Merging #4082 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master    #4082   +/-   ##
=======================================
  Coverage   19.97%   19.97%
=======================================
  Files         153      153
  Lines       30491    30491
=======================================
  Hits         6091     6091
  Misses      23486    23486
  Partials      914      914

Impacted Files
Coverage Δ

modules/util/util.go
29.26% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 15f6ec9...5263cdb. Read the comment docs.

Needs backport


Add documentation for source based distributions like Gentoo

I have found solution for my second problem and described how to solve it in forum post for Gentoo and Gentoo-based Linux distributions. It would be nice if someone using beautiful sentences could describe it to not cause such troubles for others.

I've been following the thread on the forums. Lets confirm here what the steps are. Can you summarize them?

@boydm Sure, no problem
In Gentoo we do not have *-dev packages like in Ubuntu. Of course we have a bit different package names, so we have such requiements:
media-libs/glew
media-libs/glfw
virtual/pkgconfig

Just have read *.ebuild file. If I understand it correctly we need to disable wayland support for this package in order to run it under X window system (otherwise it does not require X11 libraries).
For Gentoo and Gentoo-based distributions we need to add entry to /etc/portage/package.use:
media-libs/glfw -wayland

Also I have found this:

GLFW natively supports Windows, macOS and Linux and other Unix-like systems. Experimental implementations for the Wayland protocol and the Mir display server are available but not yet officially supported.
Source: https://github.com/glfw/glfw/blob/master/README.md

In short for now we should not try scenic on Wayland at least until it would have official and stable support in media-libs/glfw.


feat(consensus): calculate base gas price

This change is

#2999  👈 (View in Graphite)
main

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


🐛 [BUG] : Scroll Bottom when new msg incomes

https://github.com/languageXchange/languageXchange/assets/3280475/1137105f-a438-49f8-8d41-62cbb97e9fc5

    const bottomPosition = scrollElement.scrollHeight * 0.99;

Related w/ #705
Fixed with #686


Tight composition types

This should allow only valid types when using the composition primitives (a.k.a. Composable operations).
Since the primitives do not have parsers on their input the type-safety not only makes sense but becomes essential to writing robust compositions.
It is important to note that we rely on a type conversion from a union to a tuple. This type helper (generously shared here) uses the internal union order which means that the order when converting from a Record to a tuple is not stable. This is irrelevant to type our collect function since it is applied in parallel. But I'm leaving this long note here to explain why implementing a collectSequence with a Record input would be very challenging.

@gustavoguichard I think I got collect working. Actually the restriction I found only impedes us from typing collectSequence since there we need to preserve the order of the keys.

@gustavoguichard just realized there is still some work to do unifying types. I have converted back to draft and will mark as ready for review as soon as I finish those bits.

Nevermind generalizing the Unpack types. I just tried and I remembered why I haven't done it so far. It's not trivial and also not necessary for a release. Once we start gearing up to the major release we can revisit them.

Nevermind generalizing the Unpack types.

You mean being able to use Unpack with both df and composable?

That's what I meant, since these two types have the same name but they behave in quite different ways. The DF UnpackResult applies the ReturnType, and the composable UnpackResult just takes the result out of the promise.
But I wouldn't worry about this for this PR.

I have a proposal for new naming conventions, will send in another PR to avoid muddying the waters here


Issue 37373: jsoup:HtmlFuzzer: Timeout in HtmlFuzzer

https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=37373&q=label%3AProj-jsoup

The HTML included an element with ~ 6 thousand <a> child nodes, which then gets reparented due to the adoption agency algo. Optimized by short-circuiting the childnode re-index flow.


Multi-user Capabilities Tutorials requires update

[Enter feedback here]
I tried to follow https://docs.microsoft.com/en-us/windows/mixed-reality/develop/unity/tutorials/mr-learning-sharing-02
However, the links about creating and preparing the Unity project have been updated to use new versions of Unity and MRTK.
I get compile errors MRTK.HoloLens2.Unity.Tutorials.Assets.MultiUserCapabilities.2.4.0.unitypackage
Could you update this tutorial or provide the Unity and MRTK versions to run the tutorial?
Thank you.

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

ID: 06844159-dbd8-246c-5265-9757ef956d25
Version Independent ID: 92f139c0-1b0f-4652-c8d2-7463aa3c44d9
Content: Setting up Photon Unity Networking - Mixed Reality
Content Source: mixed-reality-docs/mr-dev-docs/develop/unity/tutorials/mr-learning-sharing-02.md
Product: mixed-reality
Technology: mr-dev
GitHub Login: @jessemcculloch
Microsoft Alias: jemccull

We're actively working on updating these, stay tuned!


Rust bitcoin 0.32

Pull Request Test Coverage Report for Build<PHONE_NUMBER>1
Details

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

Totals

Change from base Build<PHONE_NUMBER>2:
0.0%

Covered Lines:
636

Relevant Lines:
833

💛  - Coveralls

Ayyy thanks for bumping the version again!


Issue with any user in any AD Domain can SSH into a Linux host

Version: Compiled daemon version: <IP_ADDRESS>4, Packaged product version: 9.0.534.497
OS/Distro: CentOS Linux release 7.6.1810 (Core)
Issue/Impact:  After rolling out the pbis-open agent on hundreds of CentOS Linux hosts,
it was brought to my attention that any created user on any Active Directory Domain,
now has the ability to SSH into these hosts. I am new to the product so bare with me.
I was under the impression that only users I allow, based on my AD security groups would
have the ability to SSH into these hosts. I know they can't sudo, which is fine and well,
but now any domain user has the ability to SSH into these hosts, that I do not want.
Is this by design? I looked through the documentation and I don't see any way to lock this down.
How should I configure this so that only users in certain groups have the ability to SSH?

sudo systemctl status lwsmd.service
● lwsmd.service - BeyondTrust AD Bridge Service Manager
Loaded: loaded (/usr/lib/systemd/system/lwsmd.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2019-08-04 04:45:48 CDT; 2 days ago
Process: 5330 ExecStart=/opt/pbis/sbin/lwsmd --start-as-daemon (code=exited, status=0/SUCCESS)
Main PID: 5521 (lwsmd)
Tasks: 111
CGroup: /system.slice/lwsmd.service
├─5521 /opt/pbis/sbin/lwsmd --start-as-daemon
├─5534 lw-container lwreg
├─5570 lw-container eventlog
├─5596 lw-container netlogon
├─5692 lw-container lwio
├─5761 lw-container lsass
└─5808 lw-container reapsysl

sudo  /opt/pbis/bin/lwsm list
lwreg          running (container: 5534)
dcerpc         stopped
eventlog       running (container: 5570)
lsass          running (container: 5761)
lwio           running (container: 5692)
netlogon       running (container: 5596)
rdr            running (io: 5692)
reapsysl       running (container: 5808)
usermonitor    stopped

sudo domainjoin-cli query
Name = servername
Domain = somedomain
Distinguished Name = CN=hostname,OU=Servers,OU=Servers,DC=something,DC=something

Don't feel safe attaching lsass.log to much information in there.

Its probably obvious but it is not any AD domain user that can login, it is users in the domain you've joined (and those domains to which you have two way trusts).
You can restrict who can login via the RequireMembershipOf config item; see the Config Tool Reference Guide.  I'll see if we can add an item to the Open Quick Start Guide to highlight this.

Yes you are correct, these are domains with 2-way trusts.  Thank you for the config command that helped, I did not see that in the instructions, must have overlooked it. Thank you for all your help.