[Guided Setup] - Update Onboarding UX

Details

Fixed Issues

$. https://github.com/Expensify/App/issues/44775
PROPOSAL: https://github.com/Expensify/App/issues/44775#issuecomment-2235881084
Tests

Login to Expensify with a new Account
Verify there is no continue button in Onboarding
Verify clicking outside shows an error
Verify clicking on an option proceeds user to the next page
Verify user can come back using the back button

[x] Verify that no errors appear in the JS console

Offline tests
Same as Tests step
QA Steps
Same as Tests step
PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome
https://github.com/user-attachments/assets/bb5c5e60-1e43-4175-8874-1537959fe2f7

iOS: Native
https://github.com/user-attachments/assets/2192ee85-43be-4b48-ac66-78398f52f038

iOS: mWeb Safari
https://github.com/user-attachments/assets/98d36f54-7980-42e2-ad9b-c7dd94d9c6df

MacOS: Chrome / Safari
https://github.com/user-attachments/assets/4bb90d73-e14a-4f93-bd17-d7b9aa5a3386

MacOS: Desktop
https://github.com/user-attachments/assets/5a68466d-0a3f-40de-bb63-d145fe9243c6

@allgandalf will be reviewing this

I think the autoassigner failed because of the period before the GH
$. https://github.com/Expensify/App/issues/44775

I think the autoassigner failed because of the period before the GH

ah right. Apologies for the ping 🙇

@allgandalf fixed!

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/youssef-lr in version: 9.0.22-0 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/youssef-lr in version: 9.0.22-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/chiragsalian in version: 9.0.22-9 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


question about the dataset: are there some way to access the raw frames

as mentioned in the title. Are the any ways or plans to get the access to the raw frames that processed as the char and camera sequences. I think it would be helpful if we can access those video data

Hi,
Thank you for your interest in our work.
We will soon release the data extraction code for E.T. here. Additionally, we will provide a script to extract the corresponding frames from an already downloaded version of the CondensedMovies dataset.

Hi,
Thank you for your interest in our work. We will soon release the data extraction code for E.T. here. Additionally, we will provide a script to extract the corresponding frames from an already downloaded version of the CondensedMovies dataset.

Great. thanks for your grea work and answering

Hi,
I updated the data extraction repository, you can check the "E.T. frames extraction" section.


Add BOSH authentication through UAA

At the moment there is no way to use the tool with BOSH with UAA authentication. This PR adds this feature.
Also this PR renames several environment variables to have the similar env variables that bosh-cli has.

I am going to use this changes to implement further features : CPI and Photon infrastructure.

I'll take a look at this in the next couple of days and updates will be centralized in #5.


Some field validation CSP updates

The content security policy might break some blogs if they are used to embed content from other domains. However, the templates are all customizable so there is a way around it for the admins.

Dang! I did not see this PR


Add a CLI option to generate an animated camera orbit

Is your feature request related to a problem? Please describe.
F3D supports loading camera from files and provide a --camera-index CLI option to select it. F3D also support animation which could animation the selected camera. However, many file do not have any camera nor animations.
Lets add a dedicated CLI option to add an animated camera orbit
Suggested implementation

Add a CLI options --camera-orbit that let user specify the time to complete orbit
When used, this will add an animation with good default if there is none, or rely on existing animation if there is some
Add dedicated logic in animationManager::tick to update camera accordingly to camera parameters
Should support loading correctly at any time
Add tests

related to https://github.com/f3d-app/f3d/issues/46


Add the security advisory for the Twig 1.20 release

https://symfony.com/blog/security-release-twig-1-20-0

Thank you @stof.


Calculate top position even on not table first level elements

In the country full content page, some queries of the linkages were apparently highlighting the text but not scrolling to it, i. e: Goal 1: No poverty.
Actually what it was happening is that only the offset to the parent div was added to the scroll. So for list elements or so the top position was not the correct.

Calculate top position even on not table first level elements

There are still some goals without linkages (e.g. Goal 2)

Found a solution for the bug. Ready again!

Good catch!
I'm still having some empty targets/goals for some countries but the behaviour is correct when we have a match so this is something we have to double check the data.


Low quality video streaming

Why is the video streaming quality poor even though I've set the resolution to the highest resolution of the webcam in the media_stream_constraints? The quality is still worse than directly opening the camera using Windows.
Here is my code:
ctx = webrtc_streamer(
    key='stream-detection',
    video_processor_factory=VideoProcessor,
    media_stream_constraints={
        'video': {
            'width': 1920
            },
        'audio': False
    },
    rtc_configuration={
        'iceServers': [{'urls': ['stun:stun.l.google.com:19302']}]
    },
)

I noticed that it takes some time for the frame size to gradually increase, from 640x360 to 960x540 to 1280x720 to 1920x1080. I know that WebRTC adjusts the frame size adaptively based on network speed. Is there any way to fix it at 1920x1080 from the beginning?

I also encountered this problem. 1920x1080  video streaming quality is poor. Is your problem solved?

@ccl-private It seems that manual adjustments in the package are not possible... The author mentioned it here.

I can understand it, but the difference in image clarity between local playback and webrtc playback is too big.

OK, I tried https://github.com/aiortc/aiortc/tree/main/examples/webcam. Also Low quality for l080p.

I have the same question

Hei guys, I found an article that may help.https://www.freelancer.com/contest/aiortc-example-with-hardware-accelerated-codec-2035986

import numpy as np
import subprocess
import re

# 定义 RTSP URL
rtsp_url = "rtsp://<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=0"

# 使用 ffprobe 获取视频分辨率
def get_video_resolution(rtsp_url):
    command = [
        'ffprobe',
        '-v', 'error',
        '-select_streams', 'v:0',
        '-show_entries', 'stream=width,height',
        '-of', 'csv=p=0',
        rtsp_url
    ]

    result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    if result.returncode == 0:
        resolution = result.stdout.decode('utf-8').strip().split(',')
        width, height = int(resolution[0]), int(resolution[1])
        return width, height
    else:
        print("Error:", result.stderr.decode('utf-8'))
        return None

# 获取视频分辨率
resolution = get_video_resolution(rtsp_url)
if resolution:
    width, height = resolution
    print("视频分辨率:", resolution)

    # # 启动 FFmpeg 子进程
    # ffmpeg_command = [
    #     'ffmpeg',
    #     # '-loglevel', 'debug',  # 启用调试日志
    #     '-i', rtsp_url,
    #     '-f', 'rawvideo',
    #     '-pix_fmt', 'bgr24',
    #     '-'
    # ]
    ffmpeg_command = [
        'ffmpeg',
        '-hwaccel', 'vaapi',
        '-vaapi_device', '/dev/dri/renderD128',
        '-i', rtsp_url,
        '-f', 'rawvideo',
        '-pix_fmt', 'bgr24',
        '-'
    ]

    process = subprocess.Popen(ffmpeg_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

    cv2.namedWindow("Video Stream", cv2.WINDOW_NORMAL)

    while True:
        # 根据分辨率读取数据
        raw_frame = process.stdout.read(width * height * 3)  # BGR格式每个像素3字节
        if not raw_frame:
            break

        # stderr_line = process.stderr.readline()
        # if not stderr_line:
        #     break
        # print(stderr_line.strip())

        # 将原始数据转换为 NumPy 数组
        frame = np.frombuffer(raw_frame, np.uint8)
        frame = frame.reshape((height, width, 3))  # 适应 BGR格式

        # 显示图像
        cv2.imshow("Video Stream", frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

    # 清理
    process.stdout.close()
    process.stderr.close()
    process.wait()
    cv2.destroyAllWindows()
else:
    print("无法获取视频分辨率。")

I can call hardware decoding directly with ffmpeg to extract the RTSP stream to the frame variable in real time, but I don't know how to pass it to streamlit to display it on the interface


When define CONSTRAINED , client get message 12ms slower.

Hello.
Please forgive me for my poor English.
I create a simple ping-pong test project ( after host and client create connect, client send a empty message to host, when host got message then send a empty message back to client).
If undefine __CONSTRAINED, the duration is 3ms.
When define  __CONSTRAINED, the duration is 15-17ms.
I am wondering why the delay is so big when __CONSTRAINED.
Any help is appreciated, Thanks.

I am also seeing this, but based on the code that gets compiled when __CONSTRAINED__ is specified I do not understand how it can be so much slower.
Running the Win32 variant vs __CONSTRAINED__ variants of the platform-specific NetUtility/NetTime functions through a tight-loop with a stopwatch, I would expect (if it actually the difference) Win32 to be much faster, but it's actually orders of magnitude slower on half the functions.
None of the functions show up as big red flags in a CPU profile either.


StreamClient delete function is not surfaced in Typescript

I noticed it's declared as a string instead of as a property like the other functions. Is this intended?
'delete': function(kwargs, cb) {
    /**
     * Shorthand function for delete request
     * @method delete
     * @memberof StreamClient.prototype
     * @private
     * @param  {object}   kwargs
     * @param  {requestCallback} cb     Callback to call on completion
     * @return {Promise}                Promise object
     */
    return new Promise(function(fulfill, reject) {
      this.send('request', 'delete', kwargs, cb);
      kwargs = this.enrichKwargs(kwargs);
      kwargs.gzip = true;
      kwargs.method = 'DELETE';
      var callback = this.wrapPromiseTask(cb, fulfill, reject);
      request(kwargs, callback);
    }.bind(this));
  }

Thanks for the reminder. I suspect it may have something to do with 'delete' being a reserved word. I'll need to take a closer look.

Following up... StreamClient has functions corresponding to the HTTP verbs. Since 'delete' is a reserved word the property needs string quotes.
These lower level functions are used internally and aren't really intended to be used by application developers integrating the API Client. Therefore they're left out of the type definitions in types\getstream\index.d.ts.
Is there a reason you're using the function and/or looking to see type definitions?

It's just useful for me to see the type definitions. I'm using stream-js in my node app (i find it easier to use and my use case is rather small atm) and I have a requirement to delete a user now(thereby deleting his feed) so I found a need for this function but didn't see it in the definitions.

Thanks @dwightgunning - sorry if I hijack this ticket with another question but in this case how do I implement a user deletion operation? One that removes a user an all his feed data?

Activities can be removed via the removeActivity function. There's no facility to remove/delete a feed via the API and in practice this isn't an issue since an application can simply not read the feed.
For batch/bulk removal of activities/feeds it's fine to contact support.
I'll close this issue off for now. Feel free to reach out to us via email if you have questions specific to your implementation.


PersistantNav.Custom background issue

How to remove this color I tried colors.Transparent but It give black.
Please provide information about this, how can I change this.

Where did you set Colors.transparent?
It should work with backgroundColor in PersistentNavBar.custom:
PersistentNavBar.custom(
  ...
  backgroundColor: Colors.purple,
  ...
)

If that doesnt work, you might have to check your CustomNavBar widget if there is some Container or so that draws a background.

Where did you set Colors.transparent?
It should work with backgroundColor in PersistentNavBar.custom:
PersistentNavBar.custom(
  ...
  backgroundColor: Colors.purple,
  ...
)

If that doesnt work, you might have to check your CustomNavBar widget if there is some Container or so that draws a background.

no its not working but I fixed it by using Custom Painter


Trace.CorrelationManager.ActivityId

I think it would make sense to set
Trace.CorrelationManager.ActivityId
to the Guid generated when UseGuidForCorrelationId is set.
Would a PR be accepted for this?

I'll take a look at this since the framework now has many places where various trace/correlation IDs are set and used and I want to find the best places to integrate.

I'm going to drop this from the plans for this library. Microsoft has a feature-rich activity and distributed tracing approach built-in which is a better choice for more complex correlation requirements.
See https://devblogs.microsoft.com/aspnet/improvements-in-net-core-3-0-for-troubleshooting-and-monitoring-distributed-apps/


Callbacks for pallet-assets

Is there an existing issue?

[X] I have searched the existing issues

Experiencing problems? Have you tried our Stack Exchange first?

[X] This is not a support question.

Description of bug
Hi there,
it would be very useful if we could register callback methods for when new assets in pallet-assets are created, destroyed or manipulated in some other way.
The motivation behind is making assets cross-chain compatible for EVM contracts - in order to do this automatically, we need to do some actions after a new asset has been created. Being able to do this just using what pallet-assets provides would be great.
E.g. introduce a trait like:
/// Callbacks for various asset manipulation functions
pub trait AssetsCallback<AssetId, AccountId> {

	/// Indicates that asset with `id` was successfully created by the `owner`
	fn created(id: &AssetId, owner: &AccountId);

	/// Indicates that asset with `id` has just been destroyed
    fn destroyed(id: &AssetId);
}

and have it as part of pallet-assets Config:
	pub trait Config<I: 'static = ()>: frame_system::Config {
                ....
		/// Callback methods for asset state change (e.g. asset created or destroyed)
		type Callback: AssetsCallback<Self::AssetId, Self::AccountId>;
	}

Then it's just a matter of calling it once create or destroy have been successfully executed.
This would be a lightweight change, no benchmarks would really need to be changed if user doesn't introduce any custom hooks.
Is this a feasible change for pallet-assets?
Or should it just be handled by another pallet in chains that require it?
Related to this discussion basically.
Steps to reproduce
No response

Seems reasonable to me at first glance. @tonyalaribe - can you look into it more?

Should be an easy addition -- and a () impl does nothing.

Thanks for the feedback!
I'll prepare a PR during tomorrow and reference this issue.

This issue has been mentioned on Polkadot Forum. There might be relevant details there:
https://forum.polkadot.network/t/polkadot-release-analysis-v0-9-37/1736/1


Stack boundary for RV32E

The stack pointer need only be aligned to a 32-bit boundary.

We only require stack pointer aligned to 32-bit before, however we allow RV32EF and RV32EFD now, it's might be a problem for RV32EFD.
Here is two possible solution:

Changed to 64-bit boundary.
More ABI...? ILP32E, ILP32EF and ILP32ED.

Another alternative: keep the current ABI, and have the compiler realign stack frames when doubles are stack-allocated.  This adds two instructions (6 bytes of code) to each function that stack-allocates doubles, but retains the more compact stack frames.
Regardless, we should keep the current ABI as-is, and I propose we hold off on creating any new RV32EFD ABI until demand/applications materialize.


adapt to stub interface

Codecov Report

Merging #83 into dev will decrease coverage by 0.64%.
The diff coverage is 58.63%.

@@             Coverage Diff              @@
##                dev      #83      +/-   ##
============================================
- Coverage     56.20%   55.56%   -0.65%
- Complexity      355      375      +20
============================================
  Files            40       40
  Lines          3286     3234      -52
  Branches        248      243       -5
============================================
- Hits           1847     1797      -50
+ Misses         1263     1259       -4
- Partials        176      178       +2

Impacted Files
Coverage Δ
Complexity Δ

...ain/java/com/webank/wecross/common/FabricType.java
6.66% <ø> (ø)
1.00 <0.00> (ø)

...ross/stub/fabric/proxy/ProxyChaincodeResource.java
55.05% <51.85%> (ø)
10.00 <0.00> (ø)

...nk/wecross/stub/fabric/EndorserRequestFactory.java
85.37% <52.38%> (-4.45%)
18.00 <6.00> (-1.00)

...a/com/webank/wecross/stub/fabric/FabricDriver.java
58.78% <58.02%> (-0.94%)
56.00 <34.00> (+21.00)
:arrow_down:

...m/webank/wecross/stub/fabric/FabricConnection.java
56.28% <62.50%> (-0.19%)
48.00 <4.00> (ø)

...ss/stub/fabric/proxy/ProxyChaincodeDeployment.java
44.84% <85.71%> (+0.28%)
5.00 <0.00> (ø)

...c/main/java/com/webank/wecross/utils/TarUtils.java
90.90% <100.00%> (-0.27%)
5.00 <0.00> (ø)

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 5b49948...2c5fae2. Read the comment docs.


Subscribe (single-use) to a players match

When a friend (or multiple friends) are in a match, people might be waiting for their game(s) to finish.
To allow them to play together, we can let users subscribe to the match-finish event. Since it will be checked anyways, this doesn't cost us anything (only sending a discord embed).
An idea is:
/subscribe match-end [user] for a simple match complete notification. This will expire once the message is sent once.
/subscribe match-end [user-list] for when someone wants to track multiple summoners and see when ALL are out of game. Only a single message should be sent. I'd like to point out this should be a personal Discord message.
General subscription expiry rules:

subscription time is over 2 hours old
subscribee's gameId changes

Another reason the subscription may expire is when the subscriber enters a match. However, we probably don't have the Discord->summoner name connection. Which of course is another question: should we let people /link [summoner] and what can we do with this? (open new issue if interesting)
There may be more ideas here, but this simple feature may be nice.

Summoner linking to Discord will be mandatory because of tagging and leaderboard features.
Subscribing would be for temporary friends or something?


[Sample] Validate policy for Deployment/scale subresource

Problem Statement
In 1.9, more subresources are supported such as /scale and /status.
Solution Description
https://github.com/kyverno/kyverno/pull/4916
Example "Good" Resource
No response
Example "Bad" Resource
No response
Other Comments
No response
Slack discussion
No response
Troubleshooting

[X] I have read and followed the documentation AND the troubleshooting guide.
[X] I have verified the policy does not exist in the samples library.

Was already covered in #479


when I call validate function using instance of FormController, it's won't really validate for the fresh form

When I call validate function using instance of FormController, it's won't really validate for the fresh form.
For example:
  void initState() {     _formController = FormController(controllers: {       'q1': ('', false),     });     super.initState();   }
and I created a TextFormField for 'q1', the code is shown below:
TextFormField(                 decoration: const InputDecoration(                     label: Text("2. Study ID of the participant")),                 keyboardType: TextInputType.text,                 controller: _formController.controller('q2'),                 validator: FormControllerValidators.validate([                   FormControllerValidators.isRequired(),                   FormControllerValidators.minLength(1),                 ]),                 autovalidateMode: AutovalidateMode.onUserInteraction,               ),
When I don't do anything (a fresh form) and check if the field is validated by calling
_formController.validate()
It returns true, do you have any idea to solve this issue? Thanks!

I can't reproduce the issue,
Would you mind updating the package and checking again?
If not, share the code you used.
Thank you!


New version: Axosoft.GitKraken version 10.2.0

Created by 🥟 Dumplings in workflow run #7194.

Log
Updated: 10.1.1 → 10.2.0
Submitting WinGet manifests
Creating manifests
Uploading manifests and making commits
Creating a pull request

Microsoft Reviewers: Open in CodeFlow

/azp run

This package installs and launches normally on a Windows 10 VM.


Install terraform cli and vs code plugin in dev container

In terraform projects we need to ensure that both the Terraform CLI and the Terraform vs code extensions are installed by default in the dev container.

Repoman Generation Results
Repoman pushed changes to remotes for the following projects:
Project: todo-python-mongo-terraform
Remote: azure-samples-staging
Branch: pr/623
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-terraform -b pr/623

View Changes | Compare Changes

Repoman Generation Results
Repoman pushed changes to remotes for the following projects:
Project: todo-python-mongo-terraform
Remote: azure-samples-staging
Branch: pr/623
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-terraform -b pr/623

View Changes | Compare Changes

Repoman Generation Results
Repoman pushed changes to remotes for the following projects:
Project: todo-python-mongo-terraform
Remote: azure-samples-staging
Branch: pr/623
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-terraform -b pr/623

View Changes | Compare Changes


String().contains(searchString) does not work properly when the search string recieved data from a TextField or TextFormField if Hebrew character was in the TextFormField

Once a Hebrew character was in the TextField or a TextFormField then a String.contains(searchString) that contains a space will always return false, even if the Hebrew character was erased, I'm ataching a simple app which reproduces the bug, it contains a string "anchor chain" and when entering anchor with a space it will still return a true, but once a Hebrew character was entered in the TextFormField it will return false if the searchString contains a space character even if the Hebrew character was erased;
I did some deeper inspection and I've seen something interesting, when using a string with english characters only in the TextField when pressing space it will save it as a ASCI character 32, but when I send one Unicode character to the TextField it will put 32 and 8207 for each space, after deleting the unicode characters it will still save a 32 and a 8206 (not 8207) and thats why the contains fails.
my workaround was to remove both characterslike this
  String convertBadUnicode(String value) {
    final Pattern unicodePattern = RegExp(r'\u200E|\u200F');
    value = value.replaceAll(unicodePattern, '');
    return value;
  }

here is a sample code which shows the problem, if you run it and type "anchor chain" it will work because it matches the saved string, but once you enter a Hebrew character even if you erase it the contains() will always fail when a space is used, because of the extra 8206 or 8207
import 'package:flutter/material.dart';

void main() {
  runApp(ContainsTest());
}

class ContainsTest extends StatefulWidget {
  const ContainsTest({Key key}) : super(key: key);

  @override
  _ContainsTestState createState() => _ContainsTestState();
}

class _ContainsTestState extends State<ContainsTest> {
  String searchString = '';
  @override
  Widget build(BuildContext context) {
    String string = 'anchor chain';
    String result;

    if (string.contains(searchString))
      result = "Our variable contains the search string";
    else
      result = 'Our variable DOES NOT contain the search string';

    return MaterialApp(
      home: Scaffold(
        body: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            Form(
              child: TextFormField(
                textAlign: TextAlign.center,
                onChanged: (value) {
                  setState(() {
                    searchString = value;
                  });
                },
              ),
            ),
            Text(result),
          ],
        ),
      ),
    );
  }
}

@thesipguy
If I understand this issue correctly, if we use anchor chain that it shows:

But if we use hebrew equivalent of anchor chain, that it shows:

Is this a correct interpretation of the issue ?

@thesipguy
If I understand this issue correctly, if we use anchor chain that it shows:

But if we use hebrew equivalent of anchor chain, that it shows:

Is this a correct interpretation of the issue ?

NO, When you start typing anchor it returns true when continuing with a space it will still return true, because the text its compared with contains a space, but once you type a hebrew letter in the TextField the evaluation will always return false if a space is used, and I've dug down deeper i've seen that when a hebrew character was used in the TextField all future space keys will add two characters to the string, a 32 and a 8206 or 8207 if the hebrew character is still in the TextField value.
Here is a print of the codeUnits of the same string "anchor chain" the first one is before I entered a Hebrew letter and the second one is after I typed a hebrew letter and the erased it
[97, 110, 99, 104, 111, 114, 32, 99, 104, 97, 105, 110]
[97, 110, 99, 104, 111, 114, 32, 8206, 99, 104, 97, 105, 110]
as you can say it added a 8206 after the 32, now I'll do the same thing but instead on one of the characters I'll type a hebrew character and see what happens.
[97, 110, 99, 104, 111, 1512, 32, 8207, 99, 104, 97, 105, 110]
You can see here that I replaced the 6th character with a hebrew character now look at the space, its [32,8207] where if I erase the hebrew character it the space is [32,8206]
As I wrote in the ticket here is my workaround, but this shouldnt be the Flutter behavior, it seems to change something in the string type when unicode character is added to the string, and once its changed it will remain that way (almost the same, it will us 8206 instead of 8207) even if all unicode was removed

NO, When you start typing anchor it returns true when continuing with a space it will still return true, because the text its compared with contains a space, but once you type a hebrew letter in the TextField the evaluation will always return false if a space is used, and I've dug down deeper i've seen that when a hebrew character was used in the TextField all future space keys will add two characters to the string, a 32 and a 8206 or 8207 if the hebrew character is still in the TextField value.
Here is a print of the codeUnits of the same string "anchor chain" the first one is before I entered a Hebrew letter and the second one is after I typed a hebrew letter and the erased it
[97, 110, 99, 104, 111, 114, 32, 99, 104, 97, 105, 110]
[97, 110, 99, 104, 111, 114, 32, 8206, 99, 104, 97, 105, 110]
as you can say it added a 8206 after the 32, now I'll do the same thing but instead on one of the characters I'll type a hebrew character and see what happens.
[97, 110, 99, 104, 111, 1512, 32, 8207, 99, 104, 97, 105, 110]
You can see here that I replaced the 6th character with a hebrew character now look at the space, its [32,8207] where if I erase the hebrew character it the space is [32,8206]
As I wrote in the ticket here is my workaround, but this shouldnt be the Flutter behavior, it seems to change something in the string type when unicode character is added to the string, and once its changed it will remain that way (almost the same, it will us 8206 instead of 8207) even if all unicode was removed

@thesipguy
Can you provide flutter doctor -v?

@thesipguy
Can you provide flutter doctor -v?

PS C:\flutterSrc\course_projects\contains_test> flutter doctor -v
[√] Flutter (Channel stable, 1.22.5, on Microsoft Windows [Version 10.0.19042.746], locale en-US)
• Flutter version 1.22.5 at C:\flutterSrc\flutter
• Framework revision<PHONE_NUMBER> (6 weeks ago), 2020-12-10 11:54:40 -0800
• Engine revision ae90085a84
• Dart version 2.10.4
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
• Android SDK at C:\Users\rosen\AppData\Local\Android\sdk
• Platform android-30, build-tools 30.0.2
• ANDROID_HOME = C:\Users\rosen\AppData\Local\Android\sdk
• Java binary at: C:\Program Files\Android\Android Studio1\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
• All Android licenses accepted.
[!] Android Studio (version 4.1.0)
• Android Studio at C:\Program Files\Android\Android Studio1
X Flutter plugin not installed; this adds Flutter specific functionality.
X Dart plugin not installed; this adds Dart specific functionality.
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
[√] VS Code (version 1.52.1)
• VS Code at C:\Users\rosen\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.18.1
[√] Connected device (1 available)
• Android SDK built for x86 (mobile) • emulator-5554 • android-x86 • Android 10 (API 29) (emulator)
! Doctor found issues in 1 category.

PS C:\flutterSrc\course_projects\contains_test> flutter doctor -v
[√] Flutter (Channel stable, 1.22.5, on Microsoft Windows [Version 10.0.19042.746], locale en-US)
• Flutter version 1.22.5 at C:\flutterSrc\flutter
• Framework revision<PHONE_NUMBER> (6 weeks ago), 2020-12-10 11:54:40 -0800
• Engine revision ae90085a84
• Dart version 2.10.4
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
• Android SDK at C:\Users\rosen\AppData\Local\Android\sdk
• Platform android-30, build-tools 30.0.2
• ANDROID_HOME = C:\Users\rosen\AppData\Local\Android\sdk
• Java binary at: C:\Program Files\Android\Android Studio1\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
• All Android licenses accepted.
[!] Android Studio (version 4.1.0)
• Android Studio at C:\Program Files\Android\Android Studio1
X Flutter plugin not installed; this adds Flutter specific functionality.
X Dart plugin not installed; this adds Dart specific functionality.
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
[√] VS Code (version 1.52.1)
• VS Code at C:\Users\rosen\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.18.1
[√] Connected device (1 available)
• Android SDK built for x86 (mobile) • emulator-5554 • android-x86 • Android 10 (API 29) (emulator)
! Doctor found issues in 1 category.

I understand you want my flutter doctor output, but Im pretty sure if you would run this again on your device you will reproduce the error, as I said type one hebrew character and then erase it and then you will see the evaluation will produce a false once it contains a space.

I understand you want my flutter doctor output, but Im pretty sure if you would run this again on your device you will reproduce the error, as I said type one hebrew character and then erase it and then you will see the evaluation will produce a false once it contains a space.

flutter doctor -v
[✓] Flutter (Channel stable, 1.22.5, on Mac OS X 10.15.4 19E2269 darwin-x64,
    locale en-IN)
    • Flutter version 1.22.5 at /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision<PHONE_NUMBER> (6 weeks ago), 2020-12-10 11:54:40 -0800
    • Engine revision ae90085a84
    • Dart version 2.10.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    • CocoaPods version 1.9.3

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

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

[✓] Connected device (1 available)
    • AOSP on IA Emulator (mobile) • emulator-5554 • android-x86 • Android 9
      (API 28) (emulator)

! Doctor found issues in 1 category.

flutter doctor -v
[✓] Flutter (Channel stable, 1.22.5, on Mac OS X 10.15.4 19E2269 darwin-x64,
    locale en-IN)
    • Flutter version 1.22.5 at /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision<PHONE_NUMBER> (6 weeks ago), 2020-12-10 11:54:40 -0800
    • Engine revision ae90085a84
    • Dart version 2.10.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    • CocoaPods version 1.9.3

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

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

[✓] Connected device (1 available)
    • AOSP on IA Emulator (mobile) • emulator-5554 • android-x86 • Android 9
      (API 28) (emulator)

! Doctor found issues in 1 category.

Any update?
This is my 'flutter doctor -v' output:
[√] Flutter (Channel stable, 2.0.3, on Microsoft Windows [Version 10.0.19041.867], locale en-US)
• Flutter version 2.0.3 at c:\flutter\flutter
• Framework revision 4d7946a68d (2 weeks ago), 2021-03-18 17:24:33 -0700
• Engine revision 3459eb2436
• Dart version 2.12.2
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at C:\Users\Rony\AppData\Local\Android\sdk
• Platform android-30, build-tools 30.0.3
• ANDROID_HOME = C:\Users\Rony\AppData\Local\Android\sdk
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
• All Android licenses accepted.
[√] Chrome - develop for the web
• Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe
[√] Android Studio (version 4.1.0)
• Android Studio at C:\Program Files\Android\Android Studio
• 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 1.8.0_242-release-1644-b01)
[√] Connected device (2 available)
• Chrome (web) • chrome • web-javascript • Google Chrome 89.0.4389.90
• Edge (web)   • edge   • web-javascript • Microsoft Edge 89.0.774.63
! Device 64826a71 is offline.
• No issues found!

@thesipguy Do you have a workaround?

Is this still reproducible on web? I am not able to reproduce it on web on master,

I opened this ticket on Jan 17 2021, today is January 17 2022 and its still open 👎

Hi @thesipguy,
I verified the issue on the latest master channel and I can no longer reproduce it. I believe the issue is fixed.
https://user-images.githubusercontent.com/31410839/209240613-8af07efb-9b76-4e30-8ac2-6698a872204a.mov

flutter doctor -v (mac)
[✓] Flutter (Channel master, 3.7.0-3.0.pre.33, on macOS 12.6 21G115 darwin-arm64, locale en-IN)
    • Flutter version 3.7.0-3.0.pre.33 on channel master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision<PHONE_NUMBER> (38 minutes ago), 2022-12-05 18:27:21 -0800
    • Engine revision a309d239c4
    • Dart version 2.19.0 (build 2.19.0-463.0.dev)
    • DevTools version 2.20.0
    • 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-rc4)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0-rc4
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

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

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

[✓] Android Studio (version 2021.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
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

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

[✓] Connected device (3 available)
    • iPhone 12 Pro (mobile) • 026D5789-9E78-4AD5-B1B2-3F8D4E7F65E4 • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   • macOS 12.6 21G115 darwin-arm64
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 108.0.5359.94

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

[✓] Flutter (Channel stable, 3.3.9, on macOS 12.6 21G115 darwin-arm, locale en-IN)
    • Flutter version 3.3.9 on channel stable at /Users/mahesh/Development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b8f7f1f986 (24 hours ago), 2022-11-23 06:43:51 +0900
    • Engine revision 8f2221fbef
    • Dart version 2.18.5
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0-rc4)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0-rc4
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

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

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

[✓] Android Studio (version 2021.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
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

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

[✓] Connected device (3 available)
    • iPhone 12 Pro (mobile) • 026D5789-9E78-4AD5-B1B2-3F8D4E7F65E4 • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   • macOS 12.6 21G115 darwin-arm
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 107.0.5304.110

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Closing as fixed. Incase you still encounter the issue, Please feel free to write back in the comments with more details and we will reopen it.
Thank you.


Have baseline of 2 pods running in drupal8 deployment

Because just one pod is not enough to handle an initial influx of traffic and definitely doesn't saturate other backend services (MySQL at this time). A baseline of 2 pods would be a better starting point, then the HPA can autoscale if those three pods get above 50% aggregate CPU.

Updated title; I'm going to stick with 2 pods for now. It's better to not stuff the cluster with a bunch of pods unnecessarily.
Just need to add replicas: 2 under the spec in the drupal8.yml manifest template.

# kubectl get hpa -n drupal8
NAME      REFERENCE            TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
drupal8   Deployment/drupal8   17%/50%   1         10        2          92m

Worked a charm.


add dfx 0.12.1 release notes

Note to reviewers: please do not merge until https://github.com/dfinity/sdk/pull/2770 is also approved.


CB-3095. NOT_FOUND: Role 'crn:cdp:iam:us-west-1:altus:role:DbusUpload…

…er' does not exist in the account 'altus

change is related with https://github.com/hortonworks/cloudbreak/pull/5956

there is a hidden built-in role in UMS, which we need to use for machine users, hopefully for the new cdp partition, there is a cdp account as well, then this change should be enough.

testing is in progress agains real UMS, i have just opening the PR to let Ut and It finish in time

I can merge regardless. Can't harm anything :D

@keyki , right, to be honest we will require testing on mow dev anyway, and if the role still does not exist we need to ask the UMS guys about what is a valid one here (or the role is even needed for cdp machine users)


Updated the .html files by running build.py script

Changes done in the PR:

Updated all the .html files by running the build.py script

The changes are required so that the pages work good in the Safari extension. The link to the Safari extension submodule update: https://github.com/privly/privly-safari/pull/31

Let's hold off on updating the HTML until gsoc-develop is merged since the gsoc-develop HTML is for privly-web. Either that, or we need to create a safari-master branch, but I would rather not create another extension branch if/until it becomes necessary.

If the HTML files are not updated then, the Safari extension cannot be integrated with the changes made in https://github.com/privly/privly-applications/pull/250

Why not? Build the files locally.

It should only matter when we tag the commit and push out a version to users.

I have updated the submodule in the Safari extension that refer to the changes done in this PR, https://github.com/privly/privly-safari/pull/31
Should I create a new branch in the privly-applications repo of my fork and refer to the changes there then?

Why not set the commit to the current version of gsoc-develop and build the files locally until gsoc-develop is merged?

Alright, that works well! Then the further changes in the Safari extension will be based on the latest commit of the gsoc-develop branch.
Closing this PR and https://github.com/privly/privly-safari/pull/31 then.


Add lazy cleanup of PVC on Mysql cluster deletion

Initial fix #73 set ownership for pvcs to mysql CRD. Kubernetes deletes the pvcs along with the CRD using its garbage cleaning design. The pods belonging to the statefulset created by CRD are not immediately terminated. Kubernetes pods have certain grace period before deletion. As a result, the PVCs get deleted first and pods later.
This works well on GKE, but causes issues on other implementations. E.g. I used it on a cluster with Datera storage provider. Datera seems to keep the volume information in the PVCs. When the PVC is deleted along with Mysql CRD, it looses that information. So when kubelet tries to delete the pod, the volume cannot be disconnected.
This fix creates a cleanup worker like reconcile worker in operator to wait till pods are deleted before deleting the corresponding pvcs.

@AMecea thanks, I will look into porting the change over to kubebuilder branch. Here's my proposal --

Set MySQL cluster/Statefulset as owner of PVCs. This is the only workable solution. Because pods come and go, they cannot be made owner of PVCs. Add finalizer to PVCs.
Have the finalizer wait for (a) cleanupGracePeriod expiry (b) pod deletion. Once both conditions are met, PVCs can be deleted.
I think this should work for scale up/scale down as well.  I will test further.

This solution looks pretty good to me, you should find a way to implement a loop where to remove the finalizers that meet condition from 2. Take a look at how reconciliation is implemented in the new version, as a separated controller. In this refactoring, we focus on separation of concerns, and we give our best to make the code as clean as possible.
@calind what is your opinion about this solution that @smanpathak proposed?

Looks like k8s has what we are trying to build in the operator: https://github.com/kubernetes/kubernetes/pull/55824. It basically puts a finalizer on PVC and removes the finalizer after all pods referencing the volume are deleted, allowing the deletion to go through. It is disabled by default, though

@AMecea given the new ability of kubernetes finalizer, I intend to

add a finalizer to pvc
once a mysql cluster is deleted, the timer starts
upon timer expiry, the finalizer is removed and pvc deleted. Will post a review

Closing in favor of: https://github.com/presslabs/mysql-operator/pull/134


Missing ONNX OpSet 11,required for repo: segmentation_models.pytorch FPN

I'm submitting a Sample app request: I need later OpSet than 7,8,9 supported by Windows Machine Learning.
Current behavior
I have converted a .pth model that has been frozen and converted to a .onnx file using code similar to:
model = project.model.get_model(num_classes=NUM_CLASSES,multi=MULTI)

PATH = "./runs_checkpoints_1593587460_checkpoint_100.pth"

checkpoint=torch.load(PATH, map_location = torch.device(DEVICE))

model.load_state_dict(checkpoint['model'])

model.eval()

MODEL_DIM = 320
BATCH_SIZE = 1
CHANNELS = 3

dummy_input = torch.randn(BATCH_SIZE,
                          CHANNELS,
                          MODEL_DIM,
                          MODEL_DIM,
                          device='cpu')

input_names = [ "input/input.1" ]
output_names = [ "output/output.1" ]

torch.onnx.export(model,
                  dummy_input,
                  PATH.replace(".pth",".onnx"),
                  verbose=True, input_names=input_names,
                  output_names=output_names,
                  opset_version=11,)

Results in
Exception thrown at 0x00007FFD3A8C9149 in TestML.exe: Microsoft C++ exception: onnx::checker::ValidationError at memory location 0x00000023A26FF030.
Exception thrown at 0x00007FFD3A8C9149 (KernelBase.dll) in TestML.exe: WinRT originate error - 0x80004005 : 'Unrecognized attribute: ceil_mode'.

Expected behavior
I would hope to be able to run FPN with ResNext from https://github.com/qubvel/segmentation_models.pytorch
Even is that Requires OpSet 10 or 11
Minimal reproduction of the problem with instructions
Follow this tutorial
https://github.com/qubvel/segmentation_models.pytorch/tree/master/examples
Export a .onnx model, try to run inference in WinML
Environment
Windows Build Number:  17763.379
App min and target version: 10.0.17763.0
OS Version (Server, IoT Core, Desktop, etc): Window 10 Pro 1809
Graphics Driver version: <IP_ADDRESS>.292
DxDiag:
DxDiag.txt
Visual Studio

Microsoft Visual Studio Community 2019
Version 16.6.3
VisualStudio.16.Release/16.6.3+30225.117
Microsoft .NET Framework
Version 4.8.03761

Installed Version: Community
Visual C++ 2019   00435-60000-00000-AA441
Microsoft Visual C++ 2019
ASP.NET and Web Tools 2019   16.6.954.58314
ASP.NET and Web Tools 2019
Azure App Service Tools v3.0.0   16.6.954.58314
Azure App Service Tools v3.0.0
C# Tools   3.6.0-4.20251.5+910223b64f108fcf039012e0849befb46ace6e66
C# components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.
Common Azure Tools   1.10
Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.
IncrediBuild Build Acceleration   <IP_ADDRESS>
IncrediBuild effectively reduces compilation and development times by up to 90%.
IntelliCode Extension   1.0
IntelliCode Visual Studio Extension Detailed Info
Microsoft JVM Debugger   1.0
Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines
Microsoft MI-Based Debugger   1.0
Provides support for connecting Visual Studio to MI compatible debuggers
Microsoft Visual C++ Wizards   1.0
Microsoft Visual C++ Wizards
Microsoft Visual Studio VC Package   1.0
Microsoft Visual Studio VC Package
NuGet Package Manager   5.6.0
NuGet Package Manager in Visual Studio. For more information about NuGet, visit https://docs.nuget.org/
ProjectServicesPackage Extension   1.0
ProjectServicesPackage Visual Studio Extension Detailed Info
Test Adapter for Boost.Test   1.0
Enables Visual Studio's testing tools with unit tests written for Boost.Test.  The use terms and Third Party Notices are available in the extension installation directory.
Test Adapter for Google Test   1.0
Enables Visual Studio's testing tools with unit tests written for Google Test.  The use terms and Third Party Notices are available in the extension installation directory.
Visual Basic Tools   3.6.0-4.20251.5+910223b64f108fcf039012e0849befb46ace6e66
Visual Basic components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.
Visual Studio Code Debug Adapter Host Package   1.0
Interop layer for hosting Visual Studio Code debug adapters in Visual Studio
Visual Studio Tools for CMake   1.0
Visual Studio Tools for CMake

Any update?

Hello! ONNX OpSet 10 is supported for CPU in Windows 10, 2004.
ONNX OpSet 10 and 11 are also currently supported in the NuGet package

I would have thought I had the latest NuGet package
I will confirm, sorry for the noise
Sam

Can you link me to the release notes for which NuGet package has which ONNX instructions?
I am having difficulty navigating the release notes 2004 is that a version number or a date?

Can you link me to the release notes for which NuGet package has which ONNX instructions?
I am having difficulty navigating the release notes 2004 is that a version number or a date?

2004 is a Windows 10 release version:
"Windows 10, version 2004, also known as the Windows 10 May 2020 Update"
https://docs.microsoft.com/en-us/windows/whats-new/whats-new-windows-10-version-2004

I have installed the NuGet package and I am getting the same error.

Here is the release date for the NuGet package:
Saturday, July 18, 2020 (7/18/2020)

An example model is here
https://github.com/samhodge/segmentation_models.pytorch/blob/master/examples/best_model.onnx.zip
Inference in onnx runtime in Python on Linux and C++ has been tested with this model

hi @samhodge, the NuGet version you have does support opset 10 and 11, as you can see on the compatibility support table here. As for the error you're seeing, please open an issue in the OnnxRuntime repo as the error is coming from the underlying engine.


Auto-Hide Pagination for only One Page of Results

It would be great to have an option to auto-hide the pagination and stats when there's only one page of results. In the mean time, I wrote a JavaScript solution:
STEP 1. In your grid config, add this option:
.WithClientSideLoadingCompleteFunctionName("mvcGridHidePagination")

STEP 2. Add this JavaScript function (and JQuery) to your page:
function mvcGridHidePagination() {

    $("div[id^='MVCGridTableHolder_'] ul.pagination").each(function (index) {

        if ($(this).children().length == 3) {

            $(this).parent().parent(".row").hide();
        }
    });
}

$(document).ready(function() {

    mvcGridHidePagination();
});

This selector chooses all instances of the pagination list that only have three children (Prev, Next, and 1) and then navigates up two parents to the parent div with class ".row" and hides it. You have to run it on document load to hide them on page load. The MVCGrid event handles re-hiding if you sort, filter, etc. each grid.
Hope this helps someone else!

@argentini thanks for posting this!

No problem. I'm using it on my company's tools site... https://tools.fynydd.com/TechTrends and it's been working well. Thanks for a great tool!


如何在docker image下使用rqt_graph

您好，
在docker image下，我想使用rqt_graph，但是提示找不到命令，想问下如何才能在docker image下使用此命令？

@ahuer2435 在apollo项目中，我们只选取了ros的一个运行支持最小集，rqt_graph没有包含在其中。后续我们会尝试集成更多ros工具，方便大家使用。

请问，现在可以单独安装使用rqt_graph？

你可以试一下 $ rosrun rqt-graph rqt-graph

提示错误，找不到包：
[rospack] Error: package 'rqt-graph' not found

Here is the workaround:
To view the nodes. Follow the following Steps:
Add the following line after line 100 in docker/scripts/dev_start.sh:
“ -e DISPLAY=unix$DISPLAY \”
Enter your docker container and run:
sudo apt-get update
sudo apt-get install ros-indigo-rqt ros-indigo-rqt-common-plugins
source /opt/ros/indigo/setup.bash
You can new run rqt

Unfortunately, this workaround does not work for me:
Even after modifying dev_start.sh according to your description, sudo apt-get install ros-indigo-rqt just returns
/apollo$ sudo apt-get install ros-indigo-rqt
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package ros-indigo-rqt

Does anybody know why apt-get cannot find the corresponding package?

Try running sudo apt-get update, or add the keys (http://wiki.ros.org/indigo/Installation/Ubuntu)
Alternatively, you can run rqt on your local machine using your existing installation (if you have ros).
Also, Keep in mind that rqt does not recognize pb messages.

Thanks for your reply, adding the repos and keys of ROS worked for me.

Alternatively, you can run rqt on your local machine using your existing installation (if you have ros).

Yes, I will try this, too, because apt-get does not update the ros version within folder "apollo" anyway, it creates a "fresh" checkout in /opt/ros/ .

solution:  #1572


DEV and Mossy: Tree view goes wonky of tree layout changed

when I start with tree view, it shows the traditional layout with nodes colored as in the 2D network. When I change to circular, it jumps to a corner, and loses node colors too.
Pl. see video below
Private Zenhub Video

Needs to reapply same formating/styling after layout change.  Goes back to default.

The tree should retain its formatting when the layout is changed. If it reverts to the default and requires the user to reapply formatting and styling, it discourages its use.


Add object-fit and object-position

They both use caniuse: object-fit, but I'm not sure if multiple features can share a feature key.
Also adds missing object-view-box key.

On the caniuse question @autonome highlighted:
Narrowly, caniuse mappings should be one-to-one or one-or-many. As far as I know, we have no features yet that are many-to-one. It would be unhelpful to show multiple statuses for a single caniuse feature, so I think many-to-one also doesn't make sense. I think we ought to pick one of these to have the caniuse mapping and drop it from the other.
In the future, when we have feature composition nailed down, a feature combining object-fit and object-position is a natural follow on and a place to move the caniuse mapping. Honestly, I see why this is is a single feature on caniuse. Imagine if there was an object shorthand property; this would be easy to put down as a single feature.
Long-term, I'd like it if web-features could take any reasonable address/identifier (e.g., caniuse's object-fit) and resolve a feature (if we have one) or an anonymous slice of a feature (if we don't).


⚠ SceneTime has degraded performance

In c1b97a7, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 1514 ms

Resolved: SceneTime performance has improved in 7522d81 after 6 minutes.


version doesn't work

Currently trying to get the version of datatree interactively raises an AttributeError:
import datatree

datatree.__version__

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Input In [2], in <cell line: 1>()
----> 1 datatree.__version__

AttributeError: module 'datatree' has no attribute '__version__'

That's weird because we do have code to set the version number in __init__.py.

You have to reinstall the package usually.

To clarify, setuptools-scm and versioneer only set the version number on installation. This is likely your issue.

Thanks @djhoese. I just tried reinstalling locally (pip install -e .) and that didn't work though :confused:


Failed to build missing Icon

Title:
error: proc macro panicked
   --> /home/epyc/.cargo/registry/src/index.crates.io-6f17d22bba15001f/html2maud-bin-0.1.10/src/paro_gui.rs:202:14
    |
202 |         .run(tauri::generate_context!())
    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: message: failed to read icon /home/epyc/.cargo/registry/src/index.crates.io-6f17d22bba15001f/html2maud-bin-0.1.10/icons/icon.png: No such file or directory (os error 2)

error: could not compile `html2maud-bin` (bin "html2maud-bin") due to previous error
error: failed to compile `html2maud-bin v0.1.10`, intermediate artifacts can be found at `/tmp/cargo-install8Nukxr`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.

How did you install it? I cannot reproduce the issue.

With:
cargo install html2maud-bin


Added Readme

I think its better to add a readme for this on explaining you have used Live Script files on Matlab, and also explaining how to use one.

Yeah, that nice idea also update it whenever you free


Fix erroneous function call in docstrings

Correcting weird typo in docstrings.

Don't forget to delete the branch after merging!

Don't forget to delete the branch after merging!

Sorry, will remember next time


Prefix "run code" added to event is weird

The toolbox name should reflect the actual function name. The "run code" just reads weird.

These denote event handler. Otherwise there is no indication of it being event handler. As discussed in the design meeting. We can revisit. @shakao

This is a classic example of us trying to do too much. This rendering does not match the blocks, not the actualy TypeScript code. It's just more words to process.
Note: put the "call..." for functions into the same category.


Patch handle-callback-err

Improve usage of checking first character (the use of an indexOf when it should be a quick single character check always irks me)
Only check the first parameter (consistent with ESLint behaviour)
Update the failure string to match ESLint
Fix the position usage to avoid highlighting unrelated whitespace

Closes https://github.com/buzinas/tslint-eslint-rules/issues/120.

I'm going to quickly submit another fix to make it consistent with ESLint.

Thanks for the PR. v2.0.1 released!

Ah, damn! I was just making another patch. I'll do a new PR 😄

Oh sorry, didn't see the other message 😞


ng-click function not getting call from custom legend

I have created custom legend. I want to keep images in legend. But i also want to hide show in chart lines on click of legend. But function is not getting called on click.
legendCallback: function(chart) {
                        var text = [];
                        text.push('
');
                        text.push('
');

                        for (var i=0; i<chart.data.datasets.length; i++) {
                            text.push('');
                            if (chart.data.datasets[i].label)
                                text.push(""+chart.data.datasets[i].label+"");
                        }

                        text.push('
');
                        text.push('
');

                        return text.join('');
                    },

This function updateDataset on ng-click is not getting called.

@pinal-r this is probably with how you're adding the legend to the page afterwards. I'm not familiar enough with Angular to give you some points though. have you tried asking on stack overflow?

Closing since StackOverflow is a better place for this kind of question


Can't install Devkit

Having downloaded DevKit-tdm-32-4.5.2-20110712-1620-sfx.exe under Windows 7 64bit, I can't get to extract it. The error is that the file is not compatible with the current version of Windows. I tried unzipping it with 7zip, running it as Admin and also changing the compatibility mode, all with no luck.
I  then tried to just clone the repository and follow the instructions in the wiki, but dk.rb is nowhere to be found, so no luck on the very first step "ruby dk.rb init".

Hello,
Did you check the file downloaded match the size reported? Did it match the MD5 signature?
I use Windows 7 x64 and I downloaded and successfully extracted DevKit without problems.
If you wanted to generate it from the source of RubyInstaller repository you would need to do:
rake devkit 7Z=1 SFX=1

Which will generate both 7z package and the self extracting (SFX) version, similar to the download one.
For this you need a previous working Ruby installation.


uiScroll: horizontal scrolling?

Does uiScroll support horizontal scrolling? It doesn't appear it can do it, so I'm asking you to confirm. If it doesn't, any guidelines to implement it? I would like to contribute the solution, but want to make sure I'm starting with the right foot.

Actual code base of ui-scroll is in https://github.com/Hill30/NGScroller. Please re-submit your issue over there if needed.


Fixing create-index script name

This is the script entrypoint and should be available if you install elastalert via pip or setuptools. Maybe add create_index.py in parenthesis.

Quentin, thank you for explanation!
Konstantin Kornienko
OI/Monitoring Architect
Office: +7 495 730 63 62 x 33202tel:+7 495 730 63 62;ext=33202   Cell: +7<PHONE_NUMBER>tel:+7<PHONE_NUMBER>   Email: konstantin_kornienko<EMAIL_ADDRESS>Moscow, Russia   epam.comhttp://www.epam.com
CONFIDENTIALITY CAUTION AND DISCLAIMER
This message is intended only for the use of the individual(s) or entity(ies) to which it is addressed and contains information that is legally privileged and confidential. If you are not the intended recipient, or the person responsible for delivering the message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. All unintended recipients are obliged to delete this message and destroy any printed copies.
From: Quentin Long<EMAIL_ADDRESS>Sent: Wednesday, August 1, 2018 2:56 AM
To: Yelp/elastalert<EMAIL_ADDRESS>Cc: Konstantin Kornienko<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [Yelp/elastalert] Fixing create-index script name (#1823)
This is the script entrypoint and should be available if you install elastalert via pip or setuptools. Maybe add create_index.py in parenthesis.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Yelp/elastalert/pull/1823#issuecomment-409404721, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Angu2kxLE4huZv9hZqLFZ2HZxm6WyEOOks5uMO58gaJpZM4Vf5zc.


Globbing test

Fixes https://github.com/aspnet/AspNetCore/issues/14642.
The Globbing code splits the portions of a pattern up into chunks stripping the /, but StaticWebAssetsFileProvider will fail if the string being attempted doesn't start with / (due to creating a PathString). I've only seen this reproduce when we use IdentityUI because otherwise there's only the PhysicalFileProvider.
The actual code fix is here.
@NTaylorMullen I'm wondering if this is the right place to fix this?

@NTaylorMullen I'm wondering if this is the right place to fix this?

Hmm, I don't think I'd fix it here. Why does the static assets file provider barf? Does it purposefully have restrictions on what types of paths it can take?

@javiercn who seemingly wrote StaticWebAssetsFileProvider.

Yeah, IFileProvider is designed to translate url paths to disk paths. The input is expected to be PathString compatible (e.g. starts with a slash, url decoded, etc.).

I partially agree with @NTaylorMullen ( sorry Taylor ¯_(ツ)_/¯ )
I think the fix you are doing here is correct to a degree, but not fully correct. I think there might be an issue in how GlobbingUrlBuilder does its job, in that it should pass in leading slashes, but I also think that there needs to be a fix in StaticWebAssetsFileProvider to correctly suport globbing.
In this case, I think we want to fix this, as it can be the source of weird bugs due to differences in behavior between development and production due to globbing being not properly supported by the SWA file provider.
So the fix here is that StaticWebAssetsFileProvider needs to support globbing and to do so the implementation in
https://github.com/aspnet/AspNetCore/blob/master/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsFileProvider.cs#L72 needs to change to match the potentially globbed subpath.
You can potentially use https://github.com/aspnet/Extensions/blob/master/src/FileSystemGlobbing/src/Matcher.cs to match the globbing pattern against, but need to be careful that you might need to pass part of the globbing expressions down to the underlying IFileSystemProvider. For example:

A pattern like **/js/*.js will have to be passed down to the underlying file provider as **/js/*.js
A pattern like _content/**/extra/*.js for a base path of _content/Library means that **/extra/*.js needs to be passed down to the underlying filesystem provider.

My understanding of how this worked was a bit wrong, but even with that the issue still stands.
The issue is the Matcher walks the directory structure by passing in individual segments of the path, and GetDirectoryContents in the SWAFP doesn't do the right thing based on how the globbing file provider works.
A quick test that will prove you that the fix is not enough is the following. Write a pattern like _content/**/<<some-file-in-the-a-razor-class-library.exension>> and it'll show that the file in the RCL is not found by the patttern, then copy the file to the same physical path on disk (under wwwroot/_content/<<LibraryName>>/<<path-within-the-rcl-wwwroot>>) and the file will be found.
The difference is the SWAFP doesn't find the file while the physical file provider does, and both should behave the same way and find the file.

:up::date:

Approved for 3.1.0-preview3.


Associate Explosion Creation causes

It should be feasible for any time an Explosion is created (not through the API), for the CauseTracker to construct a cause for the explosion. I can work on the 1.9 version of getting that done, but I believe @bloodmc would know the most to get that implemented in 1.8.9.

Thanks for creating this, I think you could probably pass it for some of the sub-events like ExplosionEvent.Detonate if you set it during the course of processing the explosion.

See https://github.com/SpongePowered/SpongeCommon/issues/732

With https://github.com/SpongePowered/SpongeCommon/issues/732 closed and the Cause Tracker going through several revisions, I'm confident that this issue is also closed.


Add a variable for docker tag

When we push to docker hub and some docker repositories to use specified version, I think this variable is useful.

LGTM

LGTM


macOS VSCode mouse wheel scroll sensitivity

Type: Bug
Mouse wheel scroll sensitivity is much too high by default when scrolling using the default settings. The multiplier was defaulted to 1 which caused the documents to scroll way too fast as compared to the rest of the operating system. I selected a value of 0.2 which seems to be much more in line with the expected scroll speed. I also tested with the Apple magic mouse 2 to confirm that the scroll speed issue applies to both devices, the built in magic trackpad and the bluetooth magic mouse. The new value of 0.2 fixes the issue IMO but I'm not sure why the value of 0.2 is necessary when we should be using 1 as a starting point with parity to the macOS.
VS Code version: Code 1.74.2 (Universal) (e8a3071ea4344d9d48ef8a4df2c097372b0c5161, 2022-12-20T10:26:09.430Z)
OS version: Darwin arm64 22.2.0
Modes:
Sandboxed: No

System Info

Item
Value

CPUs
Apple M1 Pro (10 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_off

Load (avg)
4, 3, 3

Memory (System)
16.00GB (0.12GB free)

Process Argv
--crash-reporter-id dd145543-5a42-4c66-85a4-25ca2858813e

Screen Reader
no

VM
0%

Extensions (15)

Extension
Author (truncated)
Version

vscode-intelephense-client
bme
1.9.1

vscode-markdownlint
Dav
0.48.1

fastcompare
Dav
1.1.1

vscode-eslint
dba
2.2.6

githistory
don
0.6.19

gitlens
eam
13.2.0

vscode-html-css
ecm
1.13.1

cmake-tools
ms-
1.12.27

cpptools
ms-
1.13.8

cpptools-extension-pack
ms-
1.3.0

powershell
ms-
2022.12.1

java
red
1.13.0

vscode-yaml
red
1.10.1

cmake
twx
0.0.17

JavaScriptSnippets
xab
1.8.0

(1 theme extensions excluded)

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383:30185418
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
pythonvspyl392:30443607
vserr242cf:30382550
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263cf:30335440
vscoreces:30445986
pythondataviewer:30285071
vscod805:30301674
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
cmake_vspar411:30581797
vsaa593cf:30376535
pythonvs932:30410667
cppdebug:30492333
vscaat:30438848
vsclangdc:30486549
c4g48928:30535728
dsvsc012cf:30540253
azure-dev_surveyone:30548225
pyindex848cf:30577861
nodejswelcome1cf:30587006
3biah626:30602489
iaj6b796:30613358
f6dab269:30613381
fim-prod:30623723

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.74.3. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

Update did not affect the issue.
Additionally a value of 0 has results similar to a value of 1. Not sure what's going on there...

👋 @Shaunathanz,
Correct me if I'm wrong but this issue seems like a duplicate of that?: if yes (i.e. duplicate) then please close this issue
Hope this helps
Regards

👋
IMO everyone should be directing attention here - all scroll settings (e.g. mouse, trackpad) should be defaulting to the OS
Frankly - to put it politely - a bit perplexed people are posting their own specific scroll speed settings as fixes 🤦
Regards


New LoginForm design added (LoginForm - 4)

Hey thanks for your contribution ❗. Keep up the good job and leave a star if you liked the repo .
Happy hacking 😉


Is there a Linux version?

Hi, @qianyizh , I wonder if there is a Linux version? Since I am not familiar with the deploy on Windows ? Thanks so much!

We are working on a major release of a 3D reconstruction library and it will be coming very soon.
The new library will have all functionalities of this old repository (and is much better in terms of performance and accuracy).
I will update it here.

@qianyizh Is the linux version available now?

Check this out:
https://github.com/IntelVCL/Open3D
It includes a complete reconstruction system:
http://www.open3d.org/docs/tutorial/ReconstructionSystem/index.html
The nonrigid part is still missing, but will be added to Open3D very soon.

Thanks a lot @qianyizh!


🐛 Publishing my Obsidian vault discrepancies

I followed this tutorial https://datahub.io/@olayway/docs/Publish your Obsidian vault and tried publishing my Obsidian vault but got a few issues, see below:
Issues discovered

Is it not possible to publish just some directories and not my whole vault? I was under the impression that I was selecting only one particular folder/directory and all my vault got pushed to GitHub which was terrible because some notes are not supposed to be public
I found out that I didn't have a readme and that's why I had a 404. I think the instructions in the tutorial are misleading because of the following sentence  "2.7. Make sure the checkbox "Initialise this repository with a README" is unchecked". See https://datahub.io/@olayway/docs/Publish your Obsidian vault
Different subfolders: The subfolders in my Obsidian vault are different from the ones published with Datahub Cloud (see screenshots below)

Different subfolders
See in my obsidian vault folder file as an example the Datahub Cloud directory:

This is what it looks like when published with Datahub Cloud:

And you see that I have pushed all changes and there aren't any pending changes on my Github Desktop (everything is synced):

@olayway assigning it to you cos I made this repo private (contains some sensitive info which I don't want to disclose to the whole world) and added you as a collaborator so only you have access to debug this for now. Please check and if you think someone else should handle it let me know so I give someone else access as well.

@Daniellappv It looks like you initialised your local repository in the whole Obsidian-Vault folder. That's why the whole vault got pushed to the remote repository. I don't think there is any other explanation for that. When creating that local repository, you need to make sure that the path you provide in the window below is pointing only to the subfolder you want to backup to github repository.

To fix this you can:

Remove the remote repository
Remove the local repository:

Open GitHub Desktop
Open your Obsidian-Vault repostory
From window tabs at the top choose Repository -> Remove

Recreate the repository making sure you select the path to the subfolder you want to publish

Let me know if that worked

I found out that I didn't have a readme and that's why I had a 404. I think the instructions in the tutorial are misleading because of the following sentence "2.7. Make sure the checkbox "Initialise this repository with a README" is unchecked". See https://datahub.io/@olayway/docs/Publish your Obsidian vault

Yes, I agree, this should be rephrased to sth like:
"2.7. If your Obsidian vault doesn't have a root README.md or index.md file yet, you can check the "Initialise this repository with a README" checkbox to have it created for you. It will serve as a landing page of your site.".

Different subfolders: The subfolders in my Obsidian vault are different from the ones published with Datahub Cloud (see screenshots below)

I think you mean file names. Yes, they are different. In the finder window on your Mac you can see file names. DataHub Cloud tries to display page titles instead. And if title is not provided, it tries to extract it. However now lookin at your example, I think it should only try to extract h1 level heading and only if no content is found before them. Currently it also extracts h2s which shouldn't happen.

hey @olayway all great, just one comment related to your last comment. These are the file names on my Mac:

And they are totally different from the ones published for some reason. Seems to be a 🐛

I'll close this one and open an issue for incorrectly extracted page titles / incorrect default values that should in your case be file names obviously.

See #1219


Add support for JSON to Constraint JSON casting

Currently, it supports only Constraint JSON to JSON (unconstraint) casting. It needs to support the other way around as well.

Sub Task: https://github.com/ballerinalang/ballerina/issues/3084

Is this really urgent? Can we live without this?

@sameera-jayasoma, In the transformer use case, the mapping (in composer) can only works with constrained JSONs, because to map, the filed names needs to be known beforehand (similar to structs). To assign a JSON coming from outside (say from network) to a constrained JSON, we need this feature.
I have already done the implementation, only need to update to align with the new JSON implementation (https://github.com/ballerinalang/ballerina/issues/4080), which should be a trivial change.


Remove panicking behavior

Hi,
thanks for taking the time to make a Rust library for your I2C sensors!
I think this no_std library should not panic when a wrong buffer size is passed, or if a crc is wrong. Instead, the methods already return Result, so I extended the Error type. Tests are adapted too.
I split the Error type in crc8::Error and crate::Error (the crc8 module has it's own Error type) because I didn't want crc8 to require embedded_hal::i2c etc. Please let me know if you know a better way.

I think this no_std library should not panic when a wrong buffer size is passed, or if a crc is wrong. Instead, the methods already return Result, so I extended the Error type. Tests are adapted too.

To be clear: The library doesn't currently panic if the CRC is wrong, only if a wrong buffer size is passed.
IMO panics can and should be used if the error is a clear developer error which should never happen if the calling code is correct. In this example providing buffers which have the wrong size.
But maybe it would be better to use the type system to encode the constrains? So a buffer type that assures that it contains a reference to a slice which has a multiple of 3 bytes?
cc @dbrgn for further inspiration about the topic :slightly_smiling_face:

I think this no_std library should not panic when a wrong buffer size is passed, or if a crc is wrong. Instead, the methods already return Result, so I extended the Error type. Tests are adapted too.

To be clear: The library doesn't currently panic if the CRC is wrong, only if a wrong buffer size is passed.
IMO panics can and should be used if the error is a clear developer error which should never happen if the calling code is correct. In this example providing buffers which have the wrong size.
But maybe it would be better to use the type system to encode the constrains? So a buffer type that assures that it contains a reference to a slice which has a multiple of 3 bytes?
cc @dbrgn for further inspiration about the topic :slightly_smiling_face:

Is there a use case for a driver that creates dynamically sized buffers, which are then passed directly to sensirion-i2c?
If not, I'd keep the panics, since they simply ensure that invariants are honored.
(In the Sensirion device drivers that I wrote, the size is always known in advance.)

Is there a use case for a driver that creates dynamically sized buffers, which are then passed directly to sensirion-i2c?
If not, I'd keep the panics, since they simply ensure that invariants are honored.
(In the Sensirion device drivers that I wrote, the size is always known in advance.)

To be clear: The library doesn't currently panic if the CRC is wrong, only if a wrong buffer size is passed.

Fair point!
The way I see it, with result types, the user can at least still decide to panic with unwrap or try to handle the error somehow.

(In the Sensirion device drivers that I wrote, the size is always known in advance.)

I think that's the case for mine too? https://github.com/barafael/sdp8xx/blob/0e2ff653d0309866412b37a413261adeeac977f7/src/lib.rs#L148 Don't know if I want to entrust the compiler to see that though.
Please ignore my bone-headedness, I can still just use my fork, or probably embrace the panic.

To be clear: The library doesn't currently panic if the CRC is wrong, only if a wrong buffer size is passed.

Fair point!
The way I see it, with result types, the user can at least still decide to panic with unwrap or try to handle the error somehow.

(In the Sensirion device drivers that I wrote, the size is always known in advance.)

I think that's the case for mine too? https://github.com/barafael/sdp8xx/blob/0e2ff653d0309866412b37a413261adeeac977f7/src/lib.rs#L148 Don't know if I want to entrust the compiler to see that though.
Please ignore my bone-headedness, I can still just use my fork, or probably embrace the panic.

Well, if this invariant (buffer size must be a multiple of 3) is broken, then that's a hard programming error, and no type of error handling will get you out of that.
However, it could be argued that especially on embedded, you might want to catch even unexpected programming errors in a seldomly used branch of the code and do some error handling that wouldn't be easily possible with panics.
I guess since an assert is used, and not a debug assert, there's no runtime difference between the two variants.

Well, if this invariant (buffer size must be a multiple of 3) is broken, then that's a hard programming error, and no type of error handling will get you out of that.
However, it could be argued that especially on embedded, you might want to catch even unexpected programming errors in a seldomly used branch of the code and do some error handling that wouldn't be easily possible with panics.
I guess since an assert is used, and not a debug assert, there's no runtime difference between the two variants.

Would you be open to discuss improving the error handling of this crate, though? Unless I am doing something wrong, it's cumbersome.
Say I have a lib.rs and a product_info.rs. In the product_info module, I want to call crc8::validate. That means I have to know the Result which comes back. If I want to use '?' as in crc8::validate(...)?, I need a From<sensirion_i2c::i2c::Error<...>> for MyError, which forces me to put the I2C and so on in modules that should not have to care about it.

Would you be open to discuss improving the error handling of this crate, though? Unless I am doing something wrong, it's cumbersome.
Say I have a lib.rs and a product_info.rs. In the product_info module, I want to call crc8::validate. That means I have to know the Result which comes back. If I want to use '?' as in crc8::validate(...)?, I need a From<sensirion_i2c::i2c::Error<...>> for MyError, which forces me to put the I2C and so on in modules that should not have to care about it.

We could do a simple newtype style wrapper though (dumping code from brain without compiling / testing :wink:):
struct I2CBuffer<'a>(&'a[u8])
impl<'a> TryFrom<&'a[u8]> {
    fn from(...) -> Result<> {
    }
}

That way one could have a guarantee that the buffer is a multiple of three bytes and users could just unwrap the try from. How does this sound?

We could do a simple newtype style wrapper though (dumping code from brain without compiling / testing :wink:):
struct I2CBuffer<'a>(&'a[u8])
impl<'a> TryFrom<&'a[u8]> {
    fn from(...) -> Result<> {
    }
}

That way one could have a guarantee that the buffer is a multiple of three bytes and users could just unwrap the try from. How does this sound?

(BTW, the sdp800 sensor is really fantastic)

Thanks :heart:

(BTW, the sdp800 sensor is really fantastic)

Thanks :heart:

Would you be open to discuss improving the error handling of this crate, though? Unless I am doing something wrong, it's cumbersome.

Sure.

Say I have a lib.rs and a product_info.rs. In the product_info module, I want to call crc8::validate. That means I have to know the Result which comes back. If I want to use '?' as in crc8::validate(...)?, I need a From<sensirion_i2c::i2c::Error<...>> for MyError, which forces me to put the I2C and so on in modules that should not have to care about it.

I'm not sure I follow. crc8::validate looks like this:
 pub fn validate(buf: &[u8]) -> Result<(), ()> {

If I recall correctly my line of thinking was, that it can just either succeed or fail, so we just return a Result<(), ()> since there aren't different error cases. But I'm not sure if you can or should implement From<()> for your MyError since it could mean close to anything.
I'd propose that we add an separate enum enum Error { CrcError } in the crc8 module and return that instead of an empty tuple.

Would you be open to discuss improving the error handling of this crate, though? Unless I am doing something wrong, it's cumbersome.

Sure.

Say I have a lib.rs and a product_info.rs. In the product_info module, I want to call crc8::validate. That means I have to know the Result which comes back. If I want to use '?' as in crc8::validate(...)?, I need a From<sensirion_i2c::i2c::Error<...>> for MyError, which forces me to put the I2C and so on in modules that should not have to care about it.

I'm not sure I follow. crc8::validate looks like this:
 pub fn validate(buf: &[u8]) -> Result<(), ()> {

If I recall correctly my line of thinking was, that it can just either succeed or fail, so we just return a Result<(), ()> since there aren't different error cases. But I'm not sure if you can or should implement From<()> for your MyError since it could mean close to anything.
I'd propose that we add an separate enum enum Error { CrcError } in the crc8 module and return that instead of an empty tuple.

I'd propose that we add an separate enum enum Error { CrcError } in the crc8 module and return that instead of an empty tuple.

Sounds good to me... Although I have to say I have no idea how to do cross-crate error handling well. It is interesting that there is not a type Status = Result<(), ()> or somesuch.
Regarding the impl<'a> TryFrom<&'a[u8]> for I2CBuffer { I like the idea!

I'd propose that we add an separate enum enum Error { CrcError } in the crc8 module and return that instead of an empty tuple.

Sounds good to me... Although I have to say I have no idea how to do cross-crate error handling well. It is interesting that there is not a type Status = Result<(), ()> or somesuch.
Regarding the impl<'a> TryFrom<&'a[u8]> for I2CBuffer { I like the idea!

I started https://github.com/Sensirion/sensirion-i2c-rs/pull/18 to add the CrcError. Target is to allow users of the library to add a From<crc8::Error> implementation for their own error types.

I started https://github.com/Sensirion/sensirion-i2c-rs/pull/18 to add the CrcError. Target is to allow users of the library to add a From<crc8::Error> implementation for their own error types.

I have tried implementing your suggestion for the I2CBuffer struct. Had trouble with the generic arguments I2cWrite and I2cRead, so had to make another enum and conversion...:
https://github.com/barafael/sensirion-i2c-rs/blob/d7ad2750aedfe858111bbd0cbe656f345e05780e/src/i2c.rs#L38

I have tried implementing your suggestion for the I2CBuffer struct. Had trouble with the generic arguments I2cWrite and I2cRead, so had to make another enum and conversion...:
https://github.com/barafael/sensirion-i2c-rs/blob/d7ad2750aedfe858111bbd0cbe656f345e05780e/src/i2c.rs#L38

I have tried implementing your suggestion for the I2CBuffer struct.

I'd suggest to use the I2CBuffer then directly in the read_words_with_crc function, to eliminate that error case, such that the conversion from ConversionError to the i2c::Error is not necessary. This means the ConversionError needs to be pub of course.

I have tried implementing your suggestion for the I2CBuffer struct.

I'd suggest to use the I2CBuffer then directly in the read_words_with_crc function, to eliminate that error case, such that the conversion from ConversionError to the i2c::Error is not necessary. This means the ConversionError needs to be pub of course.

I have tried following your suggestion but ran into this problem:
I2cBuffer is defined as a tuple struct with a shared slice of bytes as member 0. So when I try to access data.0, I cannot get a mutable reference! Removing the reference and lifetime gets me nowhere, as TryFrom requires Sized which [u8] does not fulfil.
Defining a type I2cBuffer = &mut 'a [u8]; gets me nowhere either, as I run into the orphan rule...

I have tried following your suggestion but ran into this problem:
I2cBuffer is defined as a tuple struct with a shared slice of bytes as member 0. So when I try to access data.0, I cannot get a mutable reference! Removing the reference and lifetime gets me nowhere, as TryFrom requires Sized which [u8] does not fulfil.
Defining a type I2cBuffer = &mut 'a [u8]; gets me nowhere either, as I run into the orphan rule...

I2cBuffer is defined as a tuple struct with a shared slice of bytes as member 0. So when I try to access data.0, I cannot get a mutable reference! Removing the reference and lifetime gets me nowhere, as TryFrom requires Sized which [u8] does not fulfil.

Uh good point. I think we'd actually need two wrapper buffers then (Similar to Fn and FnMut for example): struct I2CBufferMut<'a>(&'a mut [u8]); and struct I2CBuffer<'a>(&'a [u8]);

I2cBuffer is defined as a tuple struct with a shared slice of bytes as member 0. So when I try to access data.0, I cannot get a mutable reference! Removing the reference and lifetime gets me nowhere, as TryFrom requires Sized which [u8] does not fulfil.

Uh good point. I think we'd actually need two wrapper buffers then (Similar to Fn and FnMut for example): struct I2CBufferMut<'a>(&'a mut [u8]); and struct I2CBuffer<'a>(&'a [u8]);

Do you want to open a new pull request with your experiments regarding I2cBuffer? Then we could continue the discussion there and close this one.

Do you want to open a new pull request with your experiments regarding I2cBuffer? Then we could continue the discussion there and close this one.