External trade routing

as a user, i would like to have the option to trade tokens that are currently NOT supported on bancor (with any bancor pool). for this, we would like to integrate external routing solutions that are able to support additional tokens and any trade fee generated from this will be used by the Bancor DAO.
Overview
This implementation will only be included in the trade widget and will allow users to see, search and select tokens that do not have Bancor pools.
Flow

visit the /trade page
allow users to select from/to token from a list that includes tokens that are supported by bancor (current list) AND tokens that are supported by the external router
IF source OR target tokens are NOT supported by Bancor -> trigger the transaction to the external router

external token USD rates
since we would like to support the USD rate we display and since these tokens do not have pools on bancor, we wont have this rate available, we would need to create a new flow to get this value.

assume all tokens supported by the external routing, will also have a pair with ETH
use the external routing to get ETH rate for these tokens
use our internal ETH-USD rate to calculate the token's USD value

External router
0x documentation is fairly straight forward to follow and we will use them for initial integration.
step 1 - supported tokens
since 0x api is connected to many trading options, it is safe to assume they support the largest list of available tokens. for this, we can use the coinGecko tokenList to show additional tokens which are not supported by Bancor pools directly.
https://docs.0x.org/developer-resources/api-faqs#how-do-i-query-what-tokens-are-available-to-be-swapped-through-the-api
step 2 - get rate
0x price api
after tokens selection, we would like to query this api endpoint to get the price quote based on the input amounts.
empty state
in order to get the "spot rate" of the tokens, we need to do the following:
set $checkAmount == 1
call api with $checkAmount
If error, set $checkAmount = $checkAmount*10 and call api again

input state
once a user input values, use these values in the api call
slippage indication
calculate as we do today but use these values

empty state response
input state response

step 3 - send transaction
once a user indicates the desire to trade (by clicking the CTA),
0x quote api
Affiliate Fee
when sending a transaction using the frontend, we would like to append the following values:

feeRecipient -> 0x5f7a009664B771E889751f4FD721aDc439033ECD
buyTokenPercentageFee -> 0.5

calling the /quote api will result in an unsigned transaction.
this data is needed to create a metamask transaction (check allowance as always)
External trade indication

Trade widget - When user trade an unsupported token change the v2/v3 indication

change "Best rate" -> "Rate"
if external route -> "External" with a tooltip when hovering
https://www.figma.com/file/fwADI9wqDrRAdlMX8EddCw/Bancor-v3?node-id=16419%3A237509

references and examples
https://docs.alchemy.com/alchemy/road-to-web3/weekly-learning-challenges/9.-how-to-build-a-token-swap-dapp-with-0x-api#part-9.-perform-the-swap
https://docs.0x.org/0x-api-swap/api-references/get-swap-v1-price
https://docs.0x.org/0x-api-swap/api-references/get-swap-v1-quote

@pingustar Added design for trade widget indicator

@pingustar Added a small change for the trade widget indicator


EV3-G API: display

Should we rename display.py -> screen.py since the class is Screen or do we want leave to the filename along and change our class from Screen to Display?

I am going to guess that we cannot include the screen .bmp files here due to copyright reasons?
https://sites.google.com/site/ev3basic/ev3-basic-programming/using-buttons-the-screen-and-the-leds/lego-ev3-standard-bitmaps

Should we rename

I vote to stick with Screen as class name and rename the file.

https://github.com/ev3dev/ev3dev/issues/970

Should we rename...

When I say "screen" a few times in my head it loses all meaning... I feel like "display" is a bit more clear. I don't have a strong opinion though.

For the assents, we could start a collection of free replacement images. I don't think we can get LEGO to license them to us in a useful way, since content if often done by sub contracting companies.
For the bars, gauges and eyes, I'd love to have classes where one can properly animate them though.

See https://github.com/ev3dev/ev3dev/issues/970

Let's look to see what EV3-G calls this block (screen or display) and follow that...I'll take a look this evening.

ok EV3-G calls their block Display to lets stick with display.py but change the name of our class from Screen to Display so we are 1:1

Some references on display

http://ev3lessons.com/translations/en-us/beginner/Display.pdf
http://www.mainerobotics.org/uploads/8/3/4/4/8344007/using_the_ev3_display_block.pdf


fix(masthead-v2): QA design feedback updates

Related Ticket(s)
Resolves #9310
Description
Various updates and fixes based on design QA feedback.
Changelog
New

Adds platform knob to masthead stories

Changed

Updates color tokens for L0 nav items, utility menu icons, and megamenu links
Updates type tokens in megamenus that use the listing layout
Prevents tabbed megamenu layout errors at certain breakpoints
Aligns megamenu category link arrows to top of element

@jkaeser @proeung  I just looked over the changes and it is looking really great!
Missing:
1. Platform name
Knob for "platform name" doesn't do anything to the storybook preview, this could be a storybook issue but want to confirm that you can have a platform name in the L0.
2. Link item container size – the container is now 30px tall, but we are expecting 32px
I have a couple ideas on how we could fix it:

Option 1: update type token to $body-long-01 which will change the line height to 20px and increase the container to 32px
Option 2: update the top and bottom padding for the link items to 7px to increase the container size to 32px

It looks like we are using $body-short-01 but the specs call for $body-long-01
I would recommend we select the solution that matches whatever type token we are using in the H3s, I am having trouble finding which tokens are being used in inspect. I will reach out to John on slack to have him help me figure out which would be the best solution! We will need to know which solution was chosen so that we can update the specs
This issue is also in the tabbed masthead model with the tab items and it would be great to make those match!
Out of Phase 1 scope:
Just reviewed John's comment that these are not in scope of the first release and should be addressed separately. Do we want to put them into Phase 2 or as separate issues?

Mobile caret color
Mega menu tab order

@oliviaflory I fixed those issues you called out. Can you take another look when you have the chance? Thanks!
I think creating separate issues for the out of scope work is best.

@jkaeser thanks, should I assume you went with Option 1 and updated the type token to $body-long-01?

@jkaeser thanks, should I assume you went with Option 1 and updated the type token to $body-long-01?

Yep!

@oliviaflory Thanks for the review! I went ahead and move the two items that you and @jkaeser discussed into separate issues that we'll take a look at when phase 2 of the Masthead V2.0.1 project starts. See our JIRA Epic for more detail - https://jsw.ibm.com/browse/AEMSITES-177

https://github.com/carbon-design-system/carbon-for-ibm-dotcom/issues/9337
https://github.com/carbon-design-system/carbon-for-ibm-dotcom/issues/9338

cc: @sirkitree


Don't get angry when PRs are under two days old

Context
After I deployed https://github.com/binaryberry/seal/pull/8 , one of my colleagues pointed out that the angry seal was complaining about a PR that he'd written today.
Changes

Added the age to the PR presentation
Filtered out PRs younger than 2 days old from angry seal messages
Performed some pipeline refactoring
Fixed a couple of display bugs

Consideration
This is branched off of https://github.com/binaryberry/seal/pull/8

Now that https://github.com/binaryberry/seal/pull/8 has been merged, this has been re-done as https://github.com/binaryberry/seal/pull/9


Race condition on child prefix release can lead to inconsistent db state

If multiple child prefix release requests reach the API at the same time, it can happen that the update on the parent prefix leads to an optimistic lock error. On retry of releaseChildPrefix the prefix was already deleted during the first attempt, so the function then returns a "not found" error.
End result is that the child prefix was deleted, but the parent prefixes still contains the deleted child prefix. This state cannot be fixed by API anymore.

Possible options to resolve this:

Prefix deletion and parent prefix update must happen in a transaction
Child prefixes should not be contained in the parent but need to be discovered dynamically through query search
The delete function needs to be implemented idempotently such that on repeated execution it ends up in a clean state

To fix this issue manually when it occurs, it is possible to INSERT INTO prefixes the already deleted child prefixes. Repeated deletion through the metal-api will then clean up the inconsistency.

#154 decreases the probability for the problem to occur a lot. Let's leave it with that for now.


Update twitter logo

Description
With this PR, I updated the icon and name of what was 'Twitter' to X
Changes Made

[ ] Added new feature
[ ] Fixed bug
[x] Refactored code
[ ] Other (please describe):

Additional Information
I added a new svg file for X, and in rendering it, used a blue background for contrast

Will take a look at this next week (Tuesday or Wednesday)

Okay ,Cool

Looks like X still needs to update their social share link, so let's leave the link as it is (still mentioning Twitter).
I adjusted some colors. Merging now. Thx


Password recovery needs some attention.

This is how the screen reads when asking for password recovery:

Needs some attention, either it should fixed somehow or simply removed.

What is wrong with this please? Instead of Bram, you can ask me

don't you think that you should change the names and also add your name / email there?

Anyway, i managed to create a new account which i will use later... thank you.

Thanks, I managed to update the page. Please next time, provide the URL of the page you noticed and not just a screen shot.


Need to get out of beta, stop changing this version, nail it down

Bug Report or Feature Request (mark with an x)
- [ ] bug report -> please search issues before submitting
- [x] feature request

Versions.

angular-cli: 1.0.0-beta.28.3
node: 6.10.0
os: darwin x64
Repro steps.

Us ng build and one day it will mysteriously fail, putting your development and all of your developers out of business: unable to run a simple build.
The log given by the failure.

Desired functionality.

Mention any other details that might be useful.

You really need to release this as-is, nail it down and stop changing it (the released version).  This way you are free to break the build tool, and we are free to roll-back to a working build tool and continue.

The CLI is currently are out of beta. rc.4 was just released last night. In each of the rc releases, there has been a complete feature freeze and only bug fixes are being let through. You should be able to upgrade to the rc and nothing should change going forward until after 1.0 is released.
To upgrade to the latest CLI, do the following (since there was a name change from 28.3 to rc.0)
npm uninstall -g angular-cli
npm uninstall --save-dev angular-cli
npm install -g @angular/cli
npm install --save-dev @angular/cli

There may be some other configuration you will need to do as far as your angular-cli.json file and tsconfig.json file is concerned. For example, the CLI recently broke up the tsconfig.json into 4 files, a main tsconfig.json at the root of the project, tsconfig.app.json, tsconfig.spec.json, and tsconfig.e2e.json.
I hope this helps!

Well yeah.. We had the same problems..
https://github.com/angular/angular-cli/issues/5554
But i will try what @delasteve  suggests and i will hope it wont be broken after several days again. I am sure guys are doing good work and it may be stable after rc.0.
I am going to migrate our porjects to RC.0 because atm we have .map is not a function in production builds.  (only with -prod) so maybe something with treeshaking idk.

We're pretty close to 1.0 final actually. Sorry it took a while, but trust me when I say that we don't do releases for fun. I think pretty much every release has had a big bug fix that was affecting a lot of people.


Nix friendly build.rs  by avoiding direct downloads

To achieve deterministic builds, the nix build process prevents build scripts to hit the internet.
This means the auto-download feature is a no-go.
A solution is obviously to use the nix package manager to provide the bitcoind executable and use the BITCOIND_EXE env var.
But this prevents having a Cargo.toml configuration that is fine for both nix and cargo users.
Including all versions executables in the bitcoind crate would make it too big, but having a crate for every version of bitcoind would allow downloading only the one specified by the feature and it would work from nix.
This would be very tedious work requiring publishing 36 crates at the moment supporting all the versions currently available in the features (12 versions * 3 arch)
Is it worth it?
Can we drop support from older bitcoin version #120 ?
@apoelstra

But this prevents having a Cargo.toml configuration that is fine for both nix and cargo users.

Tihis is sorta inherent to Cargo anyway, because Cargo is crappy and not very Nixy. It also connects to the Internet without a bunch of prodding (e.g. obtaining an up-to-date lockfile from somewhere and patching it into the codebase), and anyway wants to build everything in a single opaque command.
Since I already have to jump through a bunch of hoops to build Rust projects at all, setting an extra env var is really no big deal to me.

Since I already have to jump through a bunch of hoops to build Rust projects at all, setting an extra env var is really no big deal to me.

but using the env var it's not enough if you have the dep specified this way:
bitcoind = { version = "0.30.0", features = ["23_0"] }

Ah! Yes, that is true. I understand now what you're trying to accomplish.
I think rather than trying to publish 36 (or any number) of crates it would be better to somehow make the env var and the features compatible. Maybe it's enough to just always try the env var first when looking for a bitcoind, and trusting that the user-provided one is actually the correct version. We could maybe do some sanity checks via RPC or by checking the hash of the provided EXE against a whitelist (which could be overridden by yet another env var :P) or something.

That sounds great to me.

Where are you setting the environment variable?

I am sorry, I forgot to push the latest wip commit, now it's there

I'm sorry, I don't know flakes well enough to understand what's going on. With stdenv.mkDerivation you could just add the line export BITCOIND_TARBALL_FILE=${BITCOIND_TARBALL_FILE} to your bash code and it'd work.


APOBEC plots

First, thanks for this great package.
I'm having a few issue with my plots using plotApobecDiff.

plots are getting cutoff at the y axis of the boxplot
values around the pie graph do not include the "tCw" or "non-tCw" text seen in the vignette
my bar chart does not have a title

#2 and #3 are no big deal since I can edit the function myself to address but just thought I would mention it but I'm not sure how to increase the space on the left of the plot so that the y axis doesn't get cutoff.
Thanks in advance,
Cynthia

Hello,
How did you install the package ? from GitHub ?
Can you save the plot to an output pdf and see if it still the case ?

Yes it stays cut off no matter how I save it. I got the latest package from GitHub last night just to make sure.   It cuts it for my larger dataset but not the smaller one

Could you try installing again and let me know if it works? I have also added two more arguments to control axis width and font size.

Thanks, no longer cut off.
Only other issue I notice now is that some values on the boxplots (grey dots) are under the boxplot title and trail off the page. So, boxplot title is too low. After checking prior runs, I see that this was the case before as well, I just hadn't noticed.

Hi,
Yes, I tried to limit y axis till box plot edges, but I guess outliers are still outside the plot. I will probably remove them.


About Datasets

This is a very excellent work!
A few questions about the datasets:

Are the datasets for training the model available publicly? Where can I download/access the QM9 dataset that is augmented with the electron density information (qm9vasp perhaps)?
If the datasets are not publicly available, could you provide some instructions on running Gaussian/VASP on QM9 to obtain the required data?
What is the rough compute/time cost for data collection?

Thanks in advance!

Thanks for your interest. We are currently working on a new version of the model and the plan is to publish all the datasets with it.
I might be able to share the QM9 VASP dataset earlier. I can post a link within a few days.

Thanks for your interest. We are currently working on a new version of the model and the plan is to publish all the datasets with it. I might be able to share the QM9 VASP dataset earlier. I can post a link within a few days.

Thanks! I'm looking forward to it 😄

👍 Well received. Many thanks for your prompt reply!

This is a very creative work! But I can't use the link https://data.dtu.dk/articles/dataset/QM9_Charge_Densities_and_Energies_Calculated_with_VASP/16794500 for downloading. It shows 403 after I click the "download" button.

This is a very creative work! But I can't use the link https://data.dtu.dk/articles/dataset/QM9_Charge_Densities_and_Energies_Calculated_with_VASP/16794500 for downloading. It shows 403 after I click the "download" button.

Thanks for letting me know. I have contacted the data responsible team and hopefully they will get back to us soon.


Package request: Outline

Project description
Outline is a modern web application for creating documentation, kind of a Wiki.
Metadata

homepage URL: https://www.getoutline.com/
source URL: https://github.com/outline/outline
license: Custom
platforms: linux

Closing in favor of https://github.com/NixOS/nixpkgs/issues/91361


Mail people who are experiencing a complaint when solved/ closed

When a complaint is solved/ closed, all people who have indicated that they are also experiencing this issue should receive an email indicating the issue has been closed.

All the supporters are stored in the 'people' field of the Complaint model. I think the neatest way is to add a checkbox above the support button, saying 'I want to be updated when this complaint gets resolved'. The people who select this option should be added to a new field as well, for instance 'people_progress_updates'. In the complaint view, the 'complete' post parameter should be expanded to also send an email to these people.
One thing to discuss: currently the reporter only gets updated whenever a comment is placed, not when the complaint is closed. Maybe we want these two notifications to be equal, and for instance send a mail whenever a comment is placed instead of when a complaint is closed.

We want to make this into a separate button to 'follow' a complaint, where you get an e-mail when a new comment is posted or if the complaint is closed. This involves the following steps:

Add a field on the complaint, which is basically the same as the 'agree with complaint' field
Add the button on the front-end
Add a view that links a person to the new field on the complaint, just like 'agreeing' with a complaint
Add an e-mail template for the "New comment" e-mail and the "Complaint closed" e-mail
When a new comment is placed, send all people who clicked the 'follow' button a "New comment" mail, much like the mail you get when you enroll for an activity.
When the complaint is closed, send all people who clicked the 'follow' button a "Complaint closed" e-mail.


max_length increased

Error caused by not specifying a platform. Error stack trace below.
[2023-08-18 18:32:29,375: ERROR/MainProcess] Task handler raised error: DataError('value too long for type character varying(32)\n')
billiard.einfo.RemoteTraceback:
"""
Traceback (most recent call last):
File "/home/james/.cache/pypoetry/virtualenvs/opticore-netbox-saPIyhfk-py3.10/lib/python3.10/site-packages/celery/app/trace.py", line 477, in trace_task
R = retval = fun(*args, **kwargs)
File "/home/james/projects/opticore-netbox/plugins/netbox-celery/netbox_celery/tasks.py", line 30, in call
return super().call(task_id, *args, **kwargs)
File "/home/james/.cache/pypoetry/virtualenvs/opticore-netbox-saPIyhfk-py3.10/lib/python3.10/site-packages/celery/app/trace.py", line 760, in protected_call
return self.run(*args, **kwargs)
File "/home/james/projects/opticore-netbox/plugins/netbox_config_backup/netbox_config_backup/tasks.py", line 92, in backup_device
with InitNornir(
File "/home/james/.cache/pypoetry/virtualenvs/opticore-netbox-saPIyhfk-py3.10/lib/python3.10/site-packages/nornir/init_nornir.py", line 72, in InitNornir
inventory=load_inventory(config),
File "/home/james/.cache/pypoetry/virtualenvs/opticore-netbox-saPIyhfk-py3.10/lib/python3.10/site-packages/nornir/init_nornir.py", line 20, in load_inventory
inv = inventory_plugin(**config.inventory.options).load()
File "/home/james/projects/opticore-netbox/plugins/netbox_nornir/netbox_nornir/plugins/inventory/netbox_orm.py", line 149, in load
host = self.create_host(device, cred, {})
File "/home/james/projects/opticore-netbox/plugins/netbox_nornir/netbox_nornir/plugins/inventory/netbox_orm.py", line 188, in create_host
raise NornirNetboxException(f"Platform missing from device {device.name}, preemptively failed.")
netbox_nornir.exceptions.NornirNetboxException: Platform missing from device 12 Core Fibre to PI, preemptively failed.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/james/.cache/pypoetry/virtualenvs/opticore-netbox-saPIyhfk-py3.10/lib/python3.10/site-packages/django/db/backends/utils.py", line 89, in _execute
return self.cursor.execute(sql, params)
psycopg2.errors.StringDataRightTruncation: value too long for type character varying(32)

This is an issue with the nornir module. I have fixed this issue in nornir


Middleware component

Hi,
Are there any plans to create a middleware component for the class instead of having to extend the controller? In a small project, albeit very different, we are dealing with requests that forward on to various other services that cannot be extended by the ApiGuardController.
I would be willing to contribute this if you're happy to accept the feature?
Cheers

Hi @dbonner1987 I've tried making this into a middleware at the start of Laravel 5.0 but experienced some limitations and couldn't achieve the functionality I wanted. However, since Laravel 5.1 now accepts middelware parameters, I can try again. I'll make another branch soon and any help would definitely be appreciated.

Good stuff @chrisbjr, I'll keep an eye out for the branch. In the meantime I'll make a start on knocking it together for my needs.
Cheers

Please see v3.0.0


Encountered unhandled object '' of type 'break_stmt'

I got an error like the title. The detailed error information is like this
ERROR: /root/yosys-uhdm-plugin-integration/UHDM-integration-tests/tests/orv64/rtl/common/pygmy_func.sv:24: Encountered unhandled object '' of type 'break_stmt'
The source code is :
    for (int i=0; i<8; i++) begin
      if (~way_valid[i] & way_enable[i]) begin
        has_empty_way = '1;
        replace_way_id = i;
        break;
      end
    end

I can only sovle this by change the for-loop logic
This is the test case https://github.com/hello-eternity/test_orv64_uhdm
In the Makefile.in , $(TEST_DIR) need to
point to the correct location. Mine is /root/yosys-uhdm-plugin-integration/UHDM-integration-tests/tests
This error need replace this file orv64/rtl/common/pygmy_func copy.sv into orv64/rtl/common/pygmy_func.sv

CC @hzeller

break statements aren't supported yet. They are a work in progress: https://github.com/antmicro/yosys-f4pga-plugins/tree/sv-plugin-break-continue
We'll let you know once it's finished.

break and continue support landed in mainline: https://github.com/chipsalliance/yosys-f4pga-plugins/pull/357
Let us know if it worked for you once you get a chance to test it!

facing the same issue but with function calls.

steps to reproduce:
read_systemverilog -defer f1.sv
read_systemverilog -defer f2.sv
...
read_systemverilog -defer f22.sv
read_systemverilog -link


Adds back: Allow restricting profiles & profile_options based on JupyterHub groups

Reverts 2i2c-org/infrastructure#4045, practically adding the original PR back.

I'll test this on pangeo-hubs staging and 2i2c-aws-us itcoocean where I think it didn't work before #4046 - TEST OK!
I'll test this on pangeo-hubs prod - pending

I was waiting to open this, because now the deploy for https://github.com/2i2c-org/infrastructure/pull/4046 has been cancelled. I might be able to re-run it though.

@sgibson91 ah =/
Don't re-run it, let's merge this instead - I've tested this successfully on staging and deploy to pangeo-hubs prod now to verify it works as well.

Ok, well I already cancelled and promoted the other job 😬

Pings come through too late

Ah no worries!
I'll go for a merge on this now to make it be in the pipeline next - the already running run won't get cancelled, only those that hasn't started are subject to being cancelled by merging

Yep


Better user-key documentation directions

Description
The following files where modified:

README.md
docs/models/userkey.md

The following files where created:

assets/first-user-key.png

Type of Change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] Documentation update
[ ] Other (please describe):

Test Cases

[ ] Test cases are covered for this PR.
[x] This PR does not require test cases (please explain): Documentation update only

Additional Information
I made the changes based on a difficulty I had when first-time configuring secrets. I did find the proper documentation by docs/models/userkey.md but nothing was pointing to it at the README.md and nothing was said about the need to click on the save button for properly saving my new generated keys.

Sure thing!
Will make the modifications and also add some more usage examples using pynetbox.

I've made the changes as well as added a whole Pynetbox examples section.
Every documentation was merged into the main Readme.md file.
I fixed an error where the API endpoints where <netbox_url>/api/plugins/secrets/secrets/secrets/<any> instead of <netbox_url>/api/plugins/secrets/secrets/<any>. Also changed an incorrect "Netbox Admin UI" path that was removed from netbox in a previous update to a sidebar menu.
I changed some text in order to make the documentation a bit more readable.
Please check it out, specially the Pynetbox section.
Obs.: Not every pynetbox example has been tested, in order to do these i'd like first your opinion on the documentation arrangement :)


Invoice - 0.00 displayed on Pay button for invoice receiver

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.52-5
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/5113365
Issue reported by: Applause Internal Team
Action Performed:

Go to https://staging.new.expensify.com/ and log in
Create a workspace if there is no any
Navigate to the workspace settings > More features
Enable the Invoice option
Click on FAB > Send invoice
Select an invoice receiver
Enter the company info and send the invoice
Log in with the invoice receiver account in incognito
Navigate to the invoice room

Expected Result:
The correct amount is displayed on the Pay button
Actual Result:
0.00 is displayed on the Pay button
Workaround:
Unknown
Platforms:

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

Screenshots/Videos
https://github.com/user-attachments/assets/d265440b-b54a-44c7-b8c4-bc5581f0b9ba

View all open jobs on GitHub

We think that this bug might be related to #vip-bills

@MitchExpensify  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

Proposal
Please re-state the problem that we are trying to solve in this issue.
0.00 displayed on Pay button for invoice receiver
What is the root cause of that problem?
Since the nonReimbursableTotal for invoice reports is the same as it's total, [reimbursableSpend], from the ReportPreview.getMoneyRequestSpendBreakdown function will be 0.
https://github.com/Expensify/App/blob/5e975f5aedac0d150984282ada45eed1693bcdb6/src/libs/ReportUtils.ts#L2760-L2761
What changes do you think we should make in order to solve the problem?

Change the ReportPreview.getSettlementAmount function over here to use totalDisplaySpend if isInvoiceRoom is true.
https://github.com/Expensify/App/blob/5e975f5aedac0d150984282ada45eed1693bcdb6/src/components/ReportActionItem/ReportPreview.tsx#L246
return CurrencyUtils.convertToDisplayString(
         isInvoiceRoom ? totalDisplaySpend : reimbursableSpend,
         iouReport?.currency
);

Proposal
Please re-state the problem that we are trying to solve in this issue.
0.00 displayed on Pay button for invoice receiver
What is the root cause of that problem?
Since the nonReimbursableTotal for invoice reports is the same as it's total, the reimbursableSpend, which is calculated from the ReportPreview.getMoneyRequestSpendBreakdown function, will be 0.
https://github.com/Expensify/App/blob/5e975f5aedac0d150984282ada45eed1693bcdb6/src/libs/ReportUtils.ts#L2760-L2761
What changes do you think we should make in order to solve the problem?

Change the ReportPreview.getSettlementAmount function over here to use totalDisplaySpend if isInvoiceRoom is true.
https://github.com/Expensify/App/blob/5e975f5aedac0d150984282ada45eed1693bcdb6/src/components/ReportActionItem/ReportPreview.tsx#L246
return CurrencyUtils.convertToDisplayString(
         isInvoiceRoom ? totalDisplaySpend : reimbursableSpend,
         iouReport?.currency
);

Lets fix!

Proposal
Please re-state the problem that we are trying to solve in this issue.
Invoice - 0.00 displayed on Pay button for invoice receiver
What is the root cause of that problem?
reimbursable spend is calculated by subtracting non-reimbursable from the total
https://github.com/Expensify/App/blob/a86ee35a6c9706d8acb35202acb4cdaa1cc769e7/src/libs/ReportUtils.ts#L2776
but for invoice nonReimbursableSpend is equal to the total
What changes do you think we should make in order to solve the problem?

We should add an exception for invoices and set nonReimbursableSpend 0, so:
nonReimbursableSpend = isInvoiceReport(report) ? 0 : nonReimbursableSpend;
            const reimbursableSpend = totalDisplaySpend - nonReimbursableSpend;

then also here
https://github.com/Expensify/App/blob/a86ee35a6c9706d8acb35202acb4cdaa1cc769e7/src/libs/actions/IOU.ts#L6784
    let total = (iouReport?.total ?? 0) - (isInvoiceReport ? 0 : iouReport?.nonReimbursableTotal ?? 0);

What alternative solutions did you explore? (Optional)

@dukenv0307 I am surprised how you are taking this matter into a discussion because the missed point is important and will obviously create a regression and also you shouldn't forget the suggested changes were

const reimbursableSpend = isInvoiceReport(report) ? totalDisplaySpend : totalDisplaySpend - nonReimbursableSpend;

which will only fix reimbursableSpend but doesn't fix the value for nonReimbursableSpend here
https://github.com/Expensify/App/blob/f251dbcdfdafc492d9a9908cbf40e4630b7b6d9d/src/libs/ReportUtils.ts#L2764
that would cause the out-of-pocket amount to be displayed in money report

Sorry for the delay. I'm not sure either solution is entirely correct to be honest.
@twilight2294 you're correct in your statement here:

For invoices we ask the end user to pay the amount and hence it i same as total

But your solution doesn't fully resolve the issue, since (as @FitseTLT outlined) there are a couple of other cases where we end up having a display mismatches due to the same type of totalDisplaySpend - nonReimbursableSpend calculation.
It's true that this issue was opened for this particular flow, but we prefer more comprehensive solutions that solve the problem in its entirety, if there's the same bug in multiple flows/areas.
@FitseTLT, I don't think we want to modify nonReimbursableSpend here - @twilight2294  is right that value correct, it's the logic used to determine totalDisplaySpend (or total) that's incorrect (in multiple locations)
Ideally, I think we'd add a case or adjustment in all the relevant areas to adjust the totalSpend/total calculation, based on whether or not the report is an invoice.

@FitseTLT, I don't think we want to modify nonReimbursableSpend here - @twilight2294 is right that value correct, it's the logic used to determine totalDisplaySpend (or total) that's incorrect (in multiple locations)

@NikkiWines @twilight2294 is not correct. If the value of nonReimbursableSpend is not going to be fixed then the money report view will show out of pocket(non reimbursable) and Company Spend(reimbursable) value equal to the total which is wrong and confusing and that should be fixed too.

What are your thoughts on next steps here @dukenv0307 ?

I agree with you @NikkiWines !, how should we move forward here ?

@twilight2294 The best thing to do would be to update your proposal, as @Tony-MK has done, to account for a new approach.

@NikkiWines @twilight2294 is not correct. If the value of nonReimbursableSpend is not going to be fixed then the money report view will show out of pocket(non reimbursable) and Company Spend(reimbursable) value equal to the total which is wrong and confusing and that should be fixed too.

@FitseTLT I think there may be a misunderstanding. I agree that we need to update the view to show the correct value for out of pocket spend when the report is an invoice - but I think the correct way to do that is by accounting for whether or not the report is an invoice when we're determining the amount to display in the component itself - not by changing the nonReimbursableSpend value that we're returning from the backend. Hopefully that makes sense?

According this https://github.com/Expensify/App/issues/51312#issuecomment-2452582144, the solution for my https://github.com/Expensify/App/issues/51312#issuecomment-2433575175 already did not adjust or modify the value for reimbursableSpend/ nonReimbursableSpend in the getMoneyRequestSpendBreakdown function.

@dukenv0307, can you review @Tony-MK's updated proposal, please 🙇 However, @Tony-MK, I don't think we'd want to update convertToDisplayString to do anything over than convert the inputted value to a formatted string, as that muddies the purpose of the function.

@dukenv0307, can you review @Tony-MK's updated proposal, please 🙇 However, @Tony-MK, I don't think we'd want to update convertToDisplayString to do anything over than convert the inputted value to a formatted string, as that muddies the purpose of the function.

I believe totalDisplaySpend is already a number but there are already several functions where totalDisplaySpend is used with convertToDisplayString like my proposal such as getReportAutomaticallyForwardedMessage, getIOUForwardedMessage and getIOUReportActionMessage.

@dukenv0307, can you review @Tony-MK's updated proposal, please 🙇 However, @Tony-MK, I don't think we'd want to update convertToDisplayString to do anything over than convert the inputted value to a formatted string, as that muddies the purpose of the function.

I believe totalDisplaySpend is already a number but there are already several functions where totalDisplaySpend is used with convertToDisplayString like in my proposal such as getReportAutomaticallyForwardedMessage, getIOUForwardedMessage and getIOUReportActionMessage.

BTW I think it would be better to update logic inside getMoneyRequestSpendBreakdown like @twilight2294's proposal

I am sorry @dukenv0307 I am not understanding why we are still in a re-review stage. As you have stated in you review this can be ideally fixed in the BE, because I don't think paying invoices is a new feature and this problem existed for long and this might be a new change in BE that is setting non reimbursable value same as the total. So if the current behavior is correct or if FE change is preferred I have already stated a full proposal which is accepted.
And on this

@FitseTLT I think there may be a misunderstanding. I agree that we need to update the view to show the correct value for out of pocket spend when the report is an invoice - but I think the correct way to do that is by accounting for whether or not the report is an invoice when we're determining the amount to display in the component itself - not by changing the nonReimbursableSpend value that we're returning from the backend.

@dukenv0307  I did not say we need a backend change I am only suggesting a change in getMoneyRequestSpendBreakdown by changing the value of nonReimbursableSpend too as it is used in money report view to show the value that is payed out of pocket and making that update in that function is more central way of doing it instead of changing it in specific instances of the functions usage. Currently of course it is only here that we use the value of nonReimbursable value returned from the function but in all other instances we are only using the total and reimbursable values but there could be case in the future where we might want to use nonReimbursable so I still think we need to getMoneyRequestSpendBreakdown just like my proposal which returns nonReimbursableSpend as 0 for invoices reports.

I think the correct way to do that is by accounting for whether or not the report is an invoice when we're determining the amount to display in the component itself - not by changing the nonReimbursableSpend value that we're returning from the backend.

@FitseTLT Can you update your proposal based on this comment? We should apply the different logic for invoice report (i.e: fix out of pocket bug)

My proposal is already handling it.
I am suggesting to return 0 for nonReimbursableSpend in getMoneyRequestSpendBreakdown for invoice report
https://github.com/Expensify/App/blob/a86ee35a6c9706d8acb35202acb4cdaa1cc769e7/src/libs/ReportUtils.ts#L2776
but for invoice nonReimbursableSpend is equal to the total
We should add an exception for invoices and set nonReimbursableSpend 0, changing:
https://github.com/Expensify/App/blob/a86ee35a6c9706d8acb35202acb4cdaa1cc769e7/src/libs/ReportUtils.ts#L2772
nonReimbursableSpend = isInvoiceReport(report) ? 0 : nonReimbursableSpend;

that will fix the reimbursable we calculate here
https://github.com/Expensify/App/blob/a86ee35a6c9706d8acb35202acb4cdaa1cc769e7/src/libs/ReportUtils.ts#L2776
and we will have correct values returned by getMoneyRequestSpendBreakdown
that will fix, currently, the only instance where we use nonReimbursable value we use on MoneyReportView here
https://github.com/Expensify/App/blob/210db71f7e549abf7c6b925e36029549ece83256/src/components/ReportActionItem/MoneyReportView.tsx#L58

Proposal
Updated conditions for the affected components display the correct amount.

I agree that we need to update the view to show the correct value for out of pocket spend when the report is an invoice

@Tony-MK @twilight2294 Can you share your screenshot about this bug.

Hey @dukenv0307, when testing my proposal, the "out of pocket" bug was not applicable since my proposal does not change either the value of total, reimbursableSpend, or nonReimbursableSpend in the getMoneyRequestSpendBreakdown function.
https://github.com/Expensify/App/blob/aedbbde0317b720151a75dbe0b6a7ddea52a20cd/src/components/ReportActionItem/MoneyReportView.tsx#L60
Furthermore, the reimbursableSpend for invoice reports will be 0, like in this instance, hence, the breakdown will not show since shouldShowBreakdown will be false
If shouldShowTotal is true, only the total can be shown and the value of total is already correct.

@dukenv0307 just fyi from this earlier comment I think we'd rather not alter the value of nonReimbursableSpend since it's the value we're returning from the backend. 🙇

@dukenv0307 just fyi from this earlier comment I think we'd rather not alter the value of nonReimbursableSpend since it's the value we're returning from the backend. 🙇

@dukenv0307, Can you explain why my proposal is not sufficient. Both prospals have more or less the same approach by altering the value of nonReimbursableSpend but mine considers a different approach and works fine.

@dukenv0307 Updated to give an alternative according to https://github.com/Expensify/App/issues/51312#issuecomment-2472044160

@FitseTLT @twilight2294 Since you're fixing the getMoneyRequestSpendBreakdown function that is used in many places. Did you cover these cases?

@dukenv0307 It is only here
https://github.com/Expensify/App/blob/4d9be4eb2537b49fa6cf35135770cf3c6d62a1cd/src/components/ReportActionItem/MoneyReportView.tsx#L58
that we are using the nonReimbursableSpend (which is the value which we are not fixing in getMoneyRequestSpendBreakdown) and as you can clearly see from the condition here
https://github.com/Expensify/App/blob/4d9be4eb2537b49fa6cf35135770cf3c6d62a1cd/src/components/ReportActionItem/MoneyReportView.tsx#L58
we only show the break down when there is some value to be paid from the company (company spend) and some value paid out of pocket which sum up to the totalDisplaySpend. But in invoices case we know all the 0 amount is paid out of pocket so we should hide the break down. I had already updated my proposal notifying you here before even you asked 👍

@Tony-MK I don't think it's a good idea to change formattedAmount in the specific place. We're using getMoneyRequestSpendBreakdown in many places, so I think the best solution would be fixing the logic in getMoneyRequestSpendBreakdown to avoid the inconsistency bug.

Ideally, I think we'd add a case or adjustment in all the relevant areas to adjust the totalSpend/total calculation, based on whether or not the report is an invoice - instead of adjusting the value for reimbursableSpend/ nonReimbursableSpend themselves. Hope this makes sense!

Hey @dukenv0307, according to the @NikkiWines responses, here and here, I believe she suggested that we should determine the amount to display in the component itself instead of altering the values of reimbursableSpend/ nonReimbursableSpend in the getMoneyRequestSpendBreakdown function.
I believe is this the direction we are supposed to be taking.
Or am I mistaken?
Thanks

@dukenv0307 Even with your logic here

For Out of pocket error, we should use totalDisplaySpend - nonReimbursableSpend instead of checking this is the invoice request or not

It's not about fixing that value in regards to out of pocket error, it's all about should we show it or not? and the chosen proposal is trying to fix the value that is displayed which leads to showing Out of pocket 0. But there is no point in showing zero values in the breakdown. You can clearly infer that from here
https://github.com/Expensify/App/blob/4d9be4eb2537b49fa6cf35135770cf3c6d62a1cd/src/components/ReportActionItem/MoneyReportView.tsx#L60
We don't show breakdown if either out of pocket or company spend values are zero. BTW this is the only reason I didn't chose to fix the value displayed I could have easily done that. However it is totally illogical to show it and if we are not going to show it we shouldn't fix it. In terms of how we should hide it I have also gave you another option of checking the equality of reimbursable and nonReimbursable, we can should whichever fits better. 👍
cc @NikkiWines

@dukenv0307  bump on my comment here The proper proposal is not selected on the last review. Thx 👍
cc @NikkiWines

sorry for the delay, doing a little bit more investigation into this to confirm if the value coming from the backend is incorrect or not

sorry for the delay, doing a little bit more investigation into this to confirm if the value coming from the backend is incorrect or not

Ok thanks @NikkiWines When you decide to fix it in FE please give a sec to my comment, I think there is no purpose of showing 0 out of pocket in the report view break down instead we should hide it. 👍

Not overdue, investigation ongoing

Internal PR is in review for this now. @MitchExpensify can we offer some level of compensation here for the time/effort spent trying to resolve this issue? Thanks🙇

For sure! @FitseTLT @dukenv0307 does $100 each sound fair for your time here?

For sure! @FitseTLT @dukenv0307 does $100 each sound fair for your time here?

I am Ok with it 👍

Great, offers sent to you both here @FitseTLT @dukenv0307

@FitseTLT - Paid
@dukenv0307 - Waiting on acceptance

Still waiting for you to accept the offer here @dukenv0307 https://www.upwork.com/nx/wm/offer/105160257

Paid thanks!


Does this work on mac M3 too?

ERROR: mediapipe_extended-0.9.1-cp311-cp311-macosx_14_4_arm64.whl is not a supported wheel on this platform.```

Seems like no?

It should work on any Apple Silicon Mac, maybe you are using a Rosetta2 based python environment.

Hmm, how can I tell if I use rosetta2 based python environment?

Apparently it doesn't my python doesn't use rosetta2
Python 3.11.8 (v3.11.8:db85d51d3e, Feb  6 2024, 18:02:37) [Clang 13.0.0 (clang-13<IP_ADDRESS>)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform
>>> print(platform.processor())
arm
>>>


Issue After Pulling Core3 Repo

After I pull the Core3 repository on the VM and it closes to restart, it is unable to restart, here is the error:
Installing the Window System drivers
Installing X.Org Server 1.16 modules ...done.
Setting up the Window System to use the Guest Additions ...done.
You may need to restart the the Window System (or just restart the guest system)
to enable the Guest Additions.
Installing graphics libraries and desktop services components ...done.
An error occurred during installation of VirtualBox Guest Additions 5.0.16. Some functionality may not work as intended.
In most cases it is OK that the "Window System drivers" installation failed.
stdin: is not a tty
Cleaning up downloaded VirtualBox Guest Additions ISO...
==> default: Checking for guest additions in VM...
==> default: Forcing shutdown of VM...
==> default: Destroying VM and associated drives...
C:/Users/Gene/.vagrant.d/gems/gems/vagrant-vbguest-0.11.0/lib/vagrant-vbguest/download.rb:23:in unlink': Permission denied @ unlink_internal - C:/Users/Gene/.vagrant.d/tmp/VBoxGuestAdditions_5.0.16.iso (Errno::EACCES)         from C:/Users/Gene/.vagrant.d/gems/gems/vagrant-vbguest-0.11.0/lib/vagrant-vbguest/download.rb:23:in cleanup'
from C:/Users/Gene/.vagrant.d/gems/gems/vagrant-vbguest-0.11.0/lib/vagrant-vbguest/hosts/base.rb:62:in cleanup'         from C:/Users/Gene/.vagrant.d/gems/gems/vagrant-vbguest-0.11.0/lib/vagrant-vbguest/installers/base.rb:194:in cleanup'
from C:/Users/Gene/.vagrant.d/gems/gems/vagrant-vbguest-0.11.0/lib/vagrant-vbguest/installer.rb:120:in cleanup'         from C:/Users/Gene/.vagrant.d/gems/gems/vagrant-vbguest-0.11.0/lib/vagrant-vbguest/installer.rb:67:in install'
from C:/Users/Gene/.vagrant.d/gems/gems/vagrant-vbguest-0.11.0/lib/vagrant-vbguest/machine.rb:93:in block (2 levels) in guest_additions_state'         from C:/Users/Gene/.vagrant.d/gems/gems/micromachine-1.1.0/lib/micromachine.rb:25:in call'
from C:/Users/Gene/.vagrant.d/gems/gems/micromachine-1.1.0/lib/micromachine.rb:25:in block in trigger'         from C:/Users/Gene/.vagrant.d/gems/gems/micromachine-1.1.0/lib/micromachine.rb:25:in each'
from C:/Users/Gene/.vagrant.d/gems/gems/micromachine-1.1.0/lib/micromachine.rb:25:in trigger'         from C:/Users/Gene/.vagrant.d/gems/gems/vagrant-vbguest-0.11.0/lib/vagrant-vbguest/machine.rb:36:in install'
from C:/Users/Gene/.vagrant.d/gems/gems/vagrant-vbguest-0.11.0/lib/vagrant-vbguest/machine.rb:25:in run'         from C:/Users/Gene/.vagrant.d/gems/gems/vagrant-vbguest-0.11.0/lib/vagrant-vbguest/middleware.rb:25:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/customize.rb:40:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builtin/wait_for_communicator.rb:71:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/customize.rb:40:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/boot.rb:18:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/customize.rb:40:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/sane_defaults.rb:38:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builtin/set_hostname.rb:16:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/forward_ports.rb:31:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/network_fix_ipv6.rb:41:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/network.rb:122:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/clear_network_interfaces.rb:26:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/prepare_nfs_settings.rb:18:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builtin/synced_folders.rb:87:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builtin/synced_folder_cleanup.rb:28:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/synced_folders/nfs/action_cleanup.rb:19:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/prepare_nfs_valid_ids.rb:12:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb:49:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/prepare_forwarded_port_collision_params.rb:30:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builtin/env_set.rb:19:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builtin/provision.rb:80:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/clear_forwarded_ports.rb:15:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/set_name.rb:50:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/clean_machine_folder.rb:17:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/check_accessible.rb:18:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:95:in block in finalize_action'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builder.rb:116:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/runner.rb:66:in block in run'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/util/busy.rb:19:in busy'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/runner.rb:66:in run'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builtin/call.rb:53:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:95:in block in finalize_action'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builder.rb:116:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/runner.rb:66:in block in run'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/util/busy.rb:19:in busy'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/runner.rb:66:in run'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builtin/call.rb:53:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:95:in block in finalize_action'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builder.rb:116:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/runner.rb:66:in block in run'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/util/busy.rb:19:in busy'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/runner.rb:66:in run'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builtin/call.rb:53:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builtin/box_check_outdated.rb:78:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builtin/config_validate.rb:25:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/check_virtualbox.rb:17:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:95:in block in finalize_action'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/match_mac_address.rb:19:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/discard_state.rb:15:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/import.rb:74:in import'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/import.rb:13:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/prepare_clone_snapshot.rb:17:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builtin/prepare_clone.rb:15:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/customize.rb:40:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/check_accessible.rb:18:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:95:in block in finalize_action'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builder.rb:116:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/runner.rb:66:in block in run'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/util/busy.rb:19:in busy'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/runner.rb:66:in run'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builtin/call.rb:53:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builtin/config_validate.rb:25:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:95:in block in finalize_action'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builtin/handle_box.rb:56:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:95:in block in finalize_action'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builder.rb:116:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/runner.rb:66:in block in run'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/util/busy.rb:19:in busy'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/runner.rb:66:in run'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builtin/call.rb:53:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/providers/virtualbox/action/check_virtualbox.rb:17:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from C:/Users/Gene/.vagrant.d/gems/gems/vagrant-triggers-0.5.2/lib/vagrant-triggers/action/trigger.rb:17:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from C:/Users/Gene/.vagrant.d/gems/gems/vagrant-triggers-0.5.2/lib/vagrant-triggers/action/trigger.rb:17:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from C:/Users/Gene/.vagrant.d/gems/gems/vagrant-triggers-0.5.2/lib/vagrant-triggers/action/trigger.rb:17:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/builder.rb:116:in call'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/runner.rb:66:in block in run'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/util/busy.rb:19:in busy'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/runner.rb:66:in run'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/machine.rb:224:in action_raw'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/machine.rb:199:in block in action'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/environment.rb:561:in lock'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/machine.rb:185:in call'         from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/machine.rb:185:in action'
from D:/Coding Tools/Vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/batch_action.rb:82:in `block (2 levels) in run'
real    9m24.226s
user    0m0.000s
sys     0m0.030s
** Vagrant failed to bring the VM image up, look at errors above for clues **
** If this continues get help here: https://github.com/lordkator/ZonamaDev/issues **

Space in your path: D:/Coding Tools/
Vagrant hates spaces.
It's Ruby thing.. out of our control.


Error while trying to create coreml model

I have followed all the instructions to create a model from "http://cs.stanford.edu/people/jcjohns/fast-neural-style/models/instance_norm/mosaic.t7"
I have created my own style model, but when I tried to convert to coreml, I am getting this error.
I thought my model file is wrong, but I dowloaded this file "http://cs.stanford.edu/people/jcjohns/fast-neural-style/models/instance_norm/mosaic.t7" and tried with that. The result is same. No luck.
Could you provide me a solution to fix that?

Traceback (most recent call last):
File "convert-fast-neural-style.py", line 175, in
main()
File "convert-fast-neural-style.py", line 161, in main
unknown_layer_converter_fn=convert_instance_norm
File "/usr/local/lib/python2.7/dist-packages/torch2coreml/_torch_converter.py", line 192, in convert
with torch.legacy.nn.Sequential module as root"
TypeError: Model must be file path to .t7 file or pytorch loaded model             with torch.legacy.nn.Sequential module as root

I have found a solution, I am able to create core ml model by using this script. https://github.com/prisma-ai/torch2coreml/blob/master/example/fast-neural-style/prepare_model.lua
Thank you


Updated misspelled SMPT to SMTP

Line 23, updated "SMPT" to "SMTP"

@dustindortch : Thanks for your contribution! The author, @MicrosoftGuyJFlo, has been notified to review your proposed change.

Hi @dustindortch - great catch! thanks!


Drive details missing

Describe the bug
On the Drives dashboard, consumption and efficiency are missing data, only show a -
On the Drive Details dashboard, distance, energy used and duration is missing data.
To Reproduce
Open Drives dashboard, click on one of the drives.
Expected behavior
Should show the information in the column
Screenshots
Drives dashboard

drive details dashboard

Operating environment

TeslaMate Version: v1.15.0
Type of installation: Manual
OS: Ubuntu Server 19.10
Grafana: 6.5.3

I am more than willing to discuss the definition of when the values can be considered precise enough. The current definition is certainly somewhat arbitrary and can be further improved (PRs are always welcome).
However, I don't think it makes sense to display consumption values that are demonstrably and knowingly incorrect. If you disagree, there is always the possibility to modify the existing dashboards.
Since code snippets have already been posted, I consider this solved and close it for now.

Try renaming this to .json and import it. I added "Odo Start" and "Odo End" to the most up to date Drives dashboard. Seems pretty easy to add in stuff. Add in the sql, add in the column name, add in the visualization.
Drives w_Odometer.json.txt

Can you explain how to import this? I'm having the same issue with kwh and consumption being blank for every drive.

Can you explain how to import this? I'm having the same issue with kwh and consumption being blank for every drive.

Fixed since convert_km changed and it didn't show any data.
Drives w_Odometer.json.txt
if you only want to change the regular drives dashboard to show efficiency all the time, remove
CASE WHEN is_sufficiently_precise THEN
from the queries like below
find
    CASE WHEN is_sufficiently_precise THEN range_diff * car_efficiency / distance * 1000 * CASE WHEN '$length_unit' = 'km' THEN 1                                                                                WHEN '$length_unit' = 'mi' THEN 1.60934                                                                                END
change to
    range_diff * car_efficiency / distance * 1000 * CASE WHEN '$length_unit' = 'km' THEN 1                                                          WHEN '$length_unit' = 'mi' THEN 1.60934
find
    CASE WHEN is_sufficiently_precise THEN distance / range_diff          ELSE NULL     END AS efficiency
change to
    distance / range_diff AS efficiency


Task22_Task25

Completed from Task22 to Task25

@Siri82
Task – 22
Code verified.
Task – 23
Code verified.
Task – 24
Code verified.
Task – 25
Code verified.


Scrollbar not scrolling when panel expanded and edittext focused

The focused Edittext (also AutocompleteText etc) remains on the top of the screen and doesn't let the user scroll.

Quick workaround;
Surround your EditText with a ExpansionLayout expanded as default:
<com.github.florent37.expansionpanel.ExpansionLayout
app:expansion_expanded="true">
//Your EditText or parent layout
</com.github.florent37.expansionpanel.ExpansionLayout>


Issues with pages since installing SP-starter-kit

Hi,
I have installed the SP-starter-kit to use some of the included web parts. the web parts are all available and working as expected. I thought the new web parts would only deploy to the new "demo" sites that were created (as per the instructions) but it seems to have applied to the whole tenant. Upon reading again, it looks like this information was there to expect this, so my bad.
When on SharePoint home page on my hub site and I select a link to another SharePoint site in the same tenant (using the top bar navigation) and then select the “Home” button, I get an error as per the attachment. If you refresh the page, the page displays OK. It seems to only be when the page is loaded as companyname.sharepoint.com and doesn’t automatically redirect to company.sharepoint.com/sitepages/home.aspx. Do you know what this could be and any suggested fixes?

Hi, thank you for the question. Can you provide a bit more information? Is the error happening on a page that was deployed with the starter kit, or contain a web part deployed from the starter kit?
Trying to determine if this is an issue from the starter kit, or a SharePoint Online issue. Thanks

Thanks so much for getting back to me so quickly. This error is happening on a page that existed before deploying the starter kit. I did add a web part to the page and the issue started immediately after. I have now restored the page from a previous version saved before I deployed the starter kit. The issue still remains.
Thanks again
From: Beau Cameron<EMAIL_ADDRESS>Sent: Monday, 23 March 2020 11:51 PM
To: SharePoint/sp-starter-kit<EMAIL_ADDRESS>Cc: Rock9742<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [SharePoint/sp-starter-kit] Issues with pages since installing SP-starter-kit (#382)
Hi, thank you for the question. Can you provide a bit more information? Is the error happening on a page that was deployed with the starter kit, or contain a web part deployed from the starter kit?
Trying to determine if this is an issue from the starter kit, or a SharePoint Online issue. Thanks
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/SharePoint/sp-starter-kit/issues/382#issuecomment-602570048 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AO5C3BE2JEON4EEUBXKVTXTRI5LJVANCNFSM4LRTCQVQ .

Interesting. Are you able to restore any version successfully? Does the page include any WebParts from the starter kit?
Can you reproduce this on any other sites, or is it just affecting the sites deployed with the starter kit.

The site affected is the hub site (home in the top bar navigation). I have a small SharePoint collection with only 1 hub site and 11 sites associated with the hub. The version of the hub site I restored, was created a few weeks before I deployed the starter kit. It restores and works OK, until you select another site via the top bar navigation and then select the hub site again. I get the error I attached. If I refresh the page it is OK again.
I have tested more and if I open the hub site, select another site from the top bar navigation and then another site, other than the hub site (Home) all is OK, no errors.
If I open the hub site, select another site then select the hub site via the top bar navigation (home link) I get the error I attached. If I then don’t refresh the page and select another site from the top bar navigation I keep getting the error attached for each page till I refresh the page.
I have attached a cropped video that may explain the behaviour better.
Thanks
From: Beau Cameron<EMAIL_ADDRESS>Sent: Tuesday, 24 March 2020 9:11 AM
To: SharePoint/sp-starter-kit<EMAIL_ADDRESS>Cc: Rock9742<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [SharePoint/sp-starter-kit] Issues with pages since installing SP-starter-kit (#382)
Interesting. Are you able to restore any version successfully? Does the page include any WebParts from the starter kit?
Can you reproduce this on any other sites, or is it just affecting the sites deployed with the starter kit.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/SharePoint/sp-starter-kit/issues/382#issuecomment-602883769 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AO5C3BC5SZORCUKXWQSKSZDRI7NA7ANCNFSM4LRTCQVQ .

I am unable to see the video in GitHub, if you could upload it and post a link to it that would be great. From your description, I'm not sure this is related to the Starter Kit, but an issue relating to the restore of your hub site.

Thanks Beau,
I have linked the video below. To clarify, I haven’t restored the hub site, I restored the hub site home page only. I restored the home page to a version before the starter kit was deployed. I restored to that version of the page after I started experiencing the issue, to troubleshoot if the home page had been corrupted when the new web parts were added.
Link to the video:
http://tiny.cc/1a4ulz
From: Beau Cameron<EMAIL_ADDRESS>Sent: Tuesday, 24 March 2020 11:48 PM
To: SharePoint/sp-starter-kit<EMAIL_ADDRESS>Cc: Rock9742<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [SharePoint/sp-starter-kit] Issues with pages since installing SP-starter-kit (#382)
I am unable to see the video in GitHub, if you could upload it and post a link to it that would be great. From your description, I'm not sure this is related to the Starter Kit, but an issue relating to the restore of your hub site.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/SharePoint/sp-starter-kit/issues/382#issuecomment-603218607 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AO5C3BATGLNSNV3IQ4QZNW3RJCTZ3ANCNFSM4LRTCQVQ .

hmm very interesting.  So the home page, no longer has the PnP Starter Kit Web Parts on it? I'm not 100% sure it's an issue with the Starter Kit yet, especially if the home page doesn't have those web parts.
Can you open up Developer Tools (F12) and let me know if you are seeing any errors in the console when you reproduce this error? What it looks like, is a piece of code is grabbing the departmentId (which the Hub Site ID), and it's apparently not on the object. Maybe Developer Tools will give us a little bit more information.

Hi Beau,
To clarify, the web parts are available to be added, I just haven’t added any. I was testing to see if the issue went away if the new web parts didn’t exist on the page.
I got the below from the console:
sp-pages-assembly_en-au_d60d189e38d8e86138621ee12c0ae21f.js:21
TypeError: Cannot read property 'departmentId' of undefined
at b (sp-pages-assembly_en-au_d60d189e38d8e86138621ee12c0ae21f.js:1)
at e.render (chunk.sp-pages-search-init_68a2232a88da623bd1c1.js:1)
at xi (sp-pages-assembly_en-au_d60d189e38d8e86138621ee12c0ae21f.js:21)
at ki (sp-pages-assembly_en-au_d60d189e38d8e86138621ee12c0ae21f.js:21)
at sp-pages-assembly_en-au_d60d189e38d8e86138621ee12c0ae21f.js:21
at Ua (sp-pages-assembly_en-au_d60d189e38d8e86138621ee12c0ae21f.js:21)
at Ia (sp-pages-assembly_en-au_d60d189e38d8e86138621ee12c0ae21f.js:21)
at xo (sp-pages-assembly_en-au_d60d189e38d8e86138621ee12c0ae21f.js:21)
at bo (sp-pages-assembly_en-au_d60d189e38d8e86138621ee12c0ae21f.js:21)
at mo (sp-pages-assembly_en-au_d60d189e38d8e86138621ee12c0ae21f.js:21)
From: Beau Cameron<EMAIL_ADDRESS>Sent: Wednesday, 25 March 2020 10:21 AM
To: SharePoint/sp-starter-kit<EMAIL_ADDRESS>Cc: Rock9742<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [SharePoint/sp-starter-kit] Issues with pages since installing SP-starter-kit (#382)
hmm very interesting. So the home page, no longer has the PnP Starter Kit Web Parts on it? I'm not 100% sure it's an issue with the Starter Kit yet, especially if the home page doesn't have those web parts.
Can you open up Developer Tools (F12) and let me know if you are seeing any errors in the console when you reproduce this error? What it looks like, is a piece of code is grabbing the departmentId (which the Hub Site ID), and it's apparently not on the object. Maybe Developer Tools will give us a little bit more information.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/SharePoint/sp-starter-kit/issues/382#issuecomment-603554718 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AO5C3BELGT4VNC6LU75HRGDRJE55HANCNFSM4LRTCQVQ .

Great thank you! So it looks like the error is originating from sp-pages-assembly_en-au_d60d189e38d8e86138621ee12c0ae21f.js
This is client side code from Microsoft, and unfortunately not a piece of Starter Kit code. You may want to remove the hubsite (unregister it) and re-add/register the site as a hub site and see if it fixes your issue.
Otherwise, I would recommend going through Microsoft Support and see if they could be of assistance.

OK, thanks for all your help Beau, appreciate it!
From: Beau Cameron<EMAIL_ADDRESS>Sent: Wednesday, 25 March 2020 10:40 AM
To: SharePoint/sp-starter-kit<EMAIL_ADDRESS>Cc: Rock9742<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [SharePoint/sp-starter-kit] Issues with pages since installing SP-starter-kit (#382)
Great thank you! So it looks like the error is originating from sp-pages-assembly_en-au_d60d189e38d8e86138621ee12c0ae21f.js
This is client side code from Microsoft, and unfortunately not a piece of Starter Kit code. You may want to remove the hubsite (unregister it) and re-add/register the site as a hub site and see if it fixes your issue.
Otherwise, I would recommend going through Microsoft Support and see if they could be of assistance.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/SharePoint/sp-starter-kit/issues/382#issuecomment-603560359 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AO5C3BD7NGB53UYA5WMK2QDRJFAEZANCNFSM4LRTCQVQ .


Tried to make a couple things clearer

@marklarr great README! I tried to improve a couple things, let me know if you agree it makes things a bit clearer.

thanks @diogeneshamilton


Update pixels.json

Blue square supremacy
Checklist

[X] I ran npm test locally and it passed without errors.

[X] I only edited the _data/pixels.json file.

[X] I entered the username in the pixels.json that I'm also using to create this pull request.
[X] I acknowledge that all my contributions will be made under the project's license.

Hey hows this coming along?


Need to add alt text to ProjectHeader visual

The about-media image here does not have alt text:

Similarly the project gallery thumbnails do not yet have alt text.
Everything needs alt text! We need to be more careful with this and own it as a key tenet.
We should also check website for screen reader UX


Missing word

"the" is missing in the en_UK.json file.

Thanks for pointing this out! Does this word appear in the original dictionary data? If so it would be an issue with the JSON file generator. Otherwise it might be just that the dictionary data itself needs to be updated.

Thanks for pointing this out! Does this word appear in the original dictionary data? If so it would be an issue with the JSON file generator. Otherwise it might be just that the dictionary data itself needs to be updated.

yw, i checked the raw txt file and it seems to be missing there too.

Thanks for checking! In that case it sounds like an update of the dictionary data may be in order. :smile:


add instruction: make backup script executable

It took me a few minutes to figure out why I could not back up using the provided backup script (error sudo: ./backup.sh: command not found), but once I made it an executable it worked perfectly.
I think adding an instruction for this would be helpful for some people (like me).

Nice @s-crypt , that's a helpful addition!  Thanks! 🙏

Thank you for making such an awesome and easy to use tool! Glad to be of any help!


Add fire-timer plugin

This plugin creates a timer over player-created fires in game. It counts in ticks starting at 200. It changes color after 100 ticks have elapsed to indicate that the fire can now disappear at anytime. The timer colors are configurable.


Dannyl1u/events calendar

Task: https://trello.com/c/WKqHhwrv/30-events-page-calendar-section
Features

Events are fetched from SSSS Events Google Calendar
Month, Week, Day, Agenda views
Clicking on an event currently redirects user to the SSSS Discord invite link

Desktop view:

Mobile view (iPhone 12 Pro):

Uses react-big-calendar 📆

Thanks for catching that! Updated the styling so it should be a lot easier on the eyes now 😆


Update Installation guide to current version

Goals :soccer:
Update Installation guide to current version (4.5 -> 4.6)

Looks good, thanks!


:construction_worker: fix: Update deprecated npmScope in nx.json

Description
npmScope is deprecated and some nx tools no longer work with it
Testing
Explain the quality checks that have been done on the code changes
Additional Information

[ ] I read the contributing docs (if this is your first contribution)

Your ENS/address:

Current dependencies on/for this PR:

main

PR #305   👈

This comment was auto-generated by Graphite.


backup: fix dedup block hash

Currently the hash used as keys for each export block is:
Hash(encryption(compression(block)))

This is however a problem as the encryption is done using a random nonce, and thus even when encrypted using the same private key, it will never be the same content twice, and thus never be the same hash.
So in the current implementation the deduplication is broken...
The question is:

How to have each block deduped, while taking into account the compression type and encryption private key, but without giving away information on what compression type is used and what that private key is?

Here is a proposal which I think would solve this issue. All block hashes would be generated based on the clear-text version of the block content, but with the primary key, encryption and compression algorithm info prepended to it.
So each (dedup) block hash would be formed as:
Hash([algoByte | privateKey | cleartext-block])

Where algoByte =
        uint8(compressionType<<4 | encryptionType)

This should leak no information about the private key, or algorithm types as we are using blake2b, which is a proven crypto-hash. And the properties of a crypto hash are:

it is deterministic so the same message always results in the same hash
it is quick to compute the hash value for any given message
it is infeasible to generate a message from its hash value except by trying all possible messages
a small change to a message should change the hash value so extensively that the new hash value appears uncorrelated with the old hash value
it is infeasible to find two different messages with the same hash value

source: https://en.wikipedia.org/wiki/Cryptographic_hash_function

Property (1) gives us the ability to correctly dedup blocks based on their encryption, compression and block content, which should make it possible for any block using the same compr/encr algorithms, information and block content to always point to the same hash. Which solves the problem describes in this issue.
Property (3) and Property (4) should guarantee us that it is safe to append the algorithm information and private key information to our block content, without being worried that it is now clear in the open ready for anyone to grab.
All this makes me conclude that this proposal is both safe and fixes our problem. But perhaps I am missing something?

Should the proposal above be unsafe for whatever reason, I have a second proposal, which doesn't rely on sharing the algorithm info and private key info, but does so in exchange for giving up a lot of potential deduplication.
In this proposal we would hash each block as:
Hash([crc32(snapshotID) | cleartext-block])

For a given snapshot, all blocks are guaranteed already to be compressed and encrypt using the same algorithms and private key, thus it is safe to identify each block by a combination of its content and snapshotID, as we would know that we can than also always decrypt and decompress that content back for that snapshot.
The drawback would however be that now the content is only de-duplicated within the space of a single snapshot, rather than the much bigger space of an entire (FTP) Storage Server('s directory).
HOWEVER: if for some reason information about the content could be retrieved by a attacker even though she only hash a blake2b (32byte) hash, than even this hash is not safe to use, as (part) of the cleartext-block content could be retrieved. If this were the case however than blake2b is proven to not be a cryptographic hash any longer as it would no longer satisfy property (3) and (4) mentioned above.

As blake2b is however a cryptographic hash, it should be safe to hide any information we want in a hash, without being worried that the information leaks, and thus the first proposal is safe to use. And thus I vote for my first proposal as a solution for this issue. What do you think?

After discussion it has been decided to go for proposal 1.

Made a slight change to the original proposal, @zaibon. I noticed you can also use a key for the blake2b hash, defined in the config (https://godoc.org/github.com/minio/blake2b-simd#Config), and used when creating a New Hasher (https://godoc.org/github.com/minio/blake2b-simd#New).
This is pretty useful, as it allows me to use [privateKey | algoByte] as the private key, which is 17 bytes (and thus legally within the [16,64] key length range.
Doing so allows me to hash uniquely based on the algorithms used and private key, exactly as we want, giving the best possible de-duplication I can think of.


Security vulnerability in (virtually unused) stringstream dependency

Summary
request 2.85.0 has a direct dependency on stringstream 0.0.5, which has a security vulnerability which leaks uninitialised memory.
https://snyk.io/vuln/npm:stringstream:20180511
https://hackerone.com/reports/321670
Expected Behavior
No vulnerability
Current Behavior
A vulnerable version of stringstream is installed and referenced in the request module.
(Admittedly it is unlikely it actually executes on any supported version of Node.js)
Possible Solution
stringstream is only necessary for very old versions of Node.js that are no longer supported (<0.9.4).
Pull request https://github.com/request/request/pull/2885 already exists to remove stringstream.

#2885 was merged

@simov 2.86.x wasn't published on npm yet, and latest version published on npm still causes warnings.

I've published it: https://snyk.io/test/npm/request

@simov Thanks!

Including just for searchability, this was also reported in NSP: https://nodesecurity.io/advisories/664


Implemented test case for biceps:C-7

the headline says it all.
Checklist
The following aspects have been respected by the author of this pull request, confirmed by both pull request assignee and reviewer:

Adherence to coding conventions

[x] Pull Request Assignee
[ ] Reviewer

Adherence to javadoc conventions

[x] Pull Request Assignee
[ ] Reviewer

Changelog update (necessity checked and entry added or not added respectively)

[x] Pull Request Assignee
[ ] Reviewer

README update (necessity checked and entry added or not added respectively)

[x] Pull Request Assignee
[ ] Reviewer

config update (necessity checked and entry added or not added respectively)

[x] Pull Request Assignee
[ ] Reviewer

SDCcc executable ran against a test device (if necessary)

[x] Pull Request Assignee
[ ] Reviewer

NOTE: https://github.com/Draegerwerk/t2iapi/pull/19 must be merged and released first, then the release version of t2iapi must be written into the pom.xml (see TODO there) and then this PR can be merged.

Please add an adequate description

Please add an adequate description

Done.


How to convert public and private keys from Uint8Array type to CryptoKey type

I have generated Ed25519 public and private keys, and now I need to create an X.509 Certificate Signing Request (CSR) using these keys. However, I found that the required type for the public and private keys should be CryptoKey, but what we have generated is of Uint8Array type. So, I would like to know if there's a way to convert Uint8Array to CryptoKey type? Or is there any better method to create an X.509 Certificate Signing Request (CSR)? Thank you.

https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/importKey

I have no idea.


Create initial containerization

created Dockerfile and Docker Copmose files to cover server, client, and potential utilities like database migration package
added scripts in infra/local to act as both documentation and ease of use for trying out and developing the registry locally
renamed/updated the operator key environment variable so that it would more usable in a cloud environment, e.g., the private key stored in a k8s Secret which is mounted in a volume
resolves #46

Let's hold merging this till Peter's PR is in. He has a lot of changes and it'll be easier for this PR to rebase on to his than the other way round.

Cool, sounds good, I can take care replacing the database migration stand-in then.

Sounds good. #95 just went in, so that should be possible now.

OK, will take a look to update this PR.

OK, think should be good now. Later PRs I can do merge commits if required, but I do like re-based minimal specific commits with no extras. :-)

@Kylebrown9 incorporated the new postgres data store into container setup, as well as added a warg-server-debug target that can be substituted if needed that contains debugging tools. Also switched to using debian:bullseye-slim to include libpq for the server.

Working on changes, will reply when finish adding patch for items above.

OK, ready for review again.

Thanks! This looks great. I'll send it through once the CI finishes.


mk3 projectiontype is not validated upon initialization

Describe the bug
There is not feedback on an incorrect projection when initializing a mk instance. Also, there is an unclear error upon get_projection.
To Reproduce
mk2 = meshkernel.MeshKernel(projection='spherical123')
mk2.get_projection()
Raises ValueError:
Traceback (most recent call last):

  Cell In[12], line 2
    mk2.get_projection()

  File ~\Anaconda3\envs\dfm_tools_py311\Lib\site-packages\meshkernel\meshkernel.py:1508 in get_projection
    return ProjectionType(projection.value)

  File ~\Anaconda3\envs\dfm_tools_py311\Lib\enum.py:712 in __call__
    return cls.__new__(cls, value)

  File ~\Anaconda3\envs\dfm_tools_py311\Lib\enum.py:1128 in __new__
    raise ve_exc

ValueError:<PHONE_NUMBER> is not a valid ProjectionType

Also, when aquiring the projectiontype, there is no useful feedback about the available options:
meshkernel.ProjectionType('cartesian')
Traceback (most recent call last):

  Cell In[17], line 1
    meshkernel.ProjectionType('cartesian')

  File ~\Anaconda3\envs\dfm_tools_py311\Lib\enum.py:712 in __call__
    return cls.__new__(cls, value)

  File ~\Anaconda3\envs\dfm_tools_py311\Lib\enum.py:1128 in __new__
    raise ve_exc

ValueError: 'cartesian' is not a valid ProjectionType

Expected behavior
Feedback upon initialization about the options. Strings should be parsed to enum automatically.
Version info (please complete the following information):

OS: [e.g. Windows]
Version 3.0.0

MeshKernel constructor is not parametrised by a string:
class MeshKernel:
    """This class is the entry point for interacting with the MeshKernel library"""

    def __init__(self, projection: ProjectionType = ProjectionType.CARTESIAN):
        """Constructor of MeshKernel

        Args:
            projection (ProjectionType, optional): The projection type. Default is `ProjectionType.CARTESIAN`.

        Raises:
            OSError: This gets raised in case MeshKernel is used within an unsupported OS.
        """

where
@unique
class ProjectionType(IntEnum):
    """The projection types."""

    CARTESIAN = 0
    SPHERICAL = 1
    SPHERICALACCURATE = 2

The named param projection should be set to the ProjectionType enum.