go-toml: 1.8.1 -> 1.9.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/pelletier/go-toml/releases.
meta.description for go-toml is: "Go library for the TOML language"
meta.homepage for go-toml is: "https://github.com/pelletier/go-toml"
meta.changelog for go-toml is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

/nix/store/5car8f9dia9x5zvhb0f1k0gb0r8pdh6z-go-toml-1.9.0/bin/jsontoml passed the binary check.

/nix/store/5car8f9dia9x5zvhb0f1k0gb0r8pdh6z-go-toml-1.9.0/bin/tomljson passed the binary check.

/nix/store/5car8f9dia9x5zvhb0f1k0gb0r8pdh6z-go-toml-1.9.0/bin/tomll passed the binary check.

3 of 3 passed binary check by having a zero exit code.

0 of 3 passed binary check by having the new version present in output.

found 1.9.0 with grep in /nix/store/5car8f9dia9x5zvhb0f1k0gb0r8pdh6z-go-toml-1.9.0

found 1.9.0 in filename of file in /nix/store/5car8f9dia9x5zvhb0f1k0gb0r8pdh6z-go-toml-1.9.0

directory tree listing: https://gist.github.com/d634f563d393f28c79d27f4a245c254d

du listing: https://gist.github.com/0af83b8d072b7b828e99b7a438194cfc

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
1 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
go-toml

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/5car8f9dia9x5zvhb0f1k0gb0r8pdh6z-go-toml-1.9.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A go-toml https://github.com/r-ryantm/nixpkgs/archive/79ea4d0e0f8ba66662cb22e290cf87a445d585ae.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/5car8f9dia9x5zvhb0f1k0gb0r8pdh6z-go-toml-1.9.0
ls -la /nix/store/5car8f9dia9x5zvhb0f1k0gb0r8pdh6z-go-toml-1.9.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

go-toml

Maintainer pings
cc @marsam for testing.

@GrahamcOfBorg eval


Numerical discrepancy between flash_attn and xformers?

If I run the code below, should I expect large numerical discrepancies between the two implementations, or is my usage incorrect?
import xformers
import flash_attn

q = torch.randn(64, 1024, 1, 64).bfloat16().cuda()
k = torch.randn_like(q)
v = torch.randn_like(q)

fl = flash_attn.flash_attn_func(q, k, v, dropout_p=0.0, softmax_scale=None, causal=False).squeeze()
xf = xformers.ops.memory_efficient_attention(q, k, v, attn_bias=None, op=None).squeeze()

((fl - xf).abs() / xf.abs()).max()

There's probably some numerical difference, it's expected.
I usually compare:
(FlashAttention in bf16 - standard attention in fp32) vs (standard attention in bf16 - standard attention in fp32).
This gives you an idea if what's the expected numerical difference.


Add server->close() function

Please add a function:
  void close()
  {
	server->close();
  }

Sometimes need to close the connection to use other libraries, but there is no such function. Thanks!

Hi!
What library requires closing connections to work? We would also need a function to re-open the connection (basically restart the entire server).
Because Esplaexa is meant to be continuously reachable, this doesn't make too much sense. Can you tell me the interfering library? Maybe we can find a better solution :)

Library https://github.com/tzapu/WiFiManager does not work (wifiManager.startConfigPortal()) until alexa connection is closed.

it would be nice if you do it

This works well for initial setup (open config AP if WiFi connection not configured or failed):
void setup()
{
  WiFiManager wifiManager;
  wifiManager.autoConnect("Espalexa");

  //all the other Espalexa initialization
}

Does this satisfy your use case? If not, I will add the close() function if you need it.
The purpose of startConfigPortal() is to be able to reconfigure WiFi if already connected.
Espalexa is a "setup-and-forget" solution, so it would not make any sense at all to reconnect it to a different WiFi (while still in range of the previously configured WiFi)

Unfortunately, this option does not suit me, as I use the OnDemandConfigPortal.ino example, that is, launching the access point with the settings when the button is pressed. So I need a close() function. Since without closing the connection, the configuration page does not open. Thanks!


[Feature Request]: Refresh functions using FBref data due to change in data provider

Suggest an idea or something that can be improved.
Change plot_pizza and plot_trendline as required due to change in FBref data provider from StatsBomb to StatsPerform

pull request #119

will be updating the tests later with the new datasets


[WPF] Add TermCore null checks to HwndTerminal

#14461 is caused by a null pointer exception in TerminalIsSelectionActive(). Since this reveals that it is possible to enter a state where _terminal is null, I've gone ahead and added null-checks throughout the code to make it more stable.
Closes #14461
Validation Steps Performed
Ran locally. Still works.

@msftbot merge this in 1 minute


Resolves #4771 add unicity on low inventory query items returned

Resolves #4771
Description

This should fix repeated rows on the dashboard low inventory report.
This seems like the least drastic change to the LowInventoryQuery, though I was considering another approach with Item.where(...) but that would seem like rewriting a lot of the logic that already exists in View::Inventory and InventoryAggregate
Type of change

Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

This adds a couple of cases to the low_inventory_query_spec.rb file testing the length and contents of a LowInventoryQuery.call() when an Item is edited in two different storage_locations.
Screenshots

Before :

After :

I tried this out
module View
  class Inventory
  ...
    def all_items
      @inventory.storage_locations.values.map { |loc| loc.items.values }.flatten.compact.uniq(&:item_id)
    end
  ...

and ran the specs. It looks as though the intended functionality of View::Inventory#all_items is to return one instance for every occurance in a storage_location and so allowing multiples.
  describe "#all_items" do
    it "should return all items across storage locations" do
      results = subject.all_items
      expect(results.size).to eq(5)
      expect(results.count { |i| i.storage_location_id == storage_location1.id }).to eq(3)
      expect(results.count { |i| i.storage_location_id == storage_location2.id }).to eq(2)
      expect(results.count { |i| i.item_id == item1.id }).to eq(2)
      expect(results.count { |i| i.item_id == item2.id }).to eq(2)
      expect(results.count { |i| i.item_id == item3.id }).to eq(1)
    end
  end

Because the spec is so explicit, it feels like this is used intentionally elsewhere in the app.
Also, specs for DistributionItemizedBreakdownService and DonationItemizedBreakdownService broke.
Not sure what to do as CSV seem to be generated from these services and am unsure of the expected output.
Should I carry on with making the #all_items return unique Items and modify other parts of the app to align to that change ?
Thanks
Just for reference, here are the failures :
Failures:

  1) DistributionItemizedBreakdownService#fetch should include the break down of items distributed with onhand data
     Failure/Error: expect(subject).to eq(expected_output)

       expected: [{:below_onhand_minimum=>true, :current_onhand=>100, :distributed=>500, :name=>"A Diapers", :onhand_m...nd_minimum=>false, :current_onhand=>200, :distributed=>200, :name=>"B Diapers", :onhand_minimum=>5}]
            got: [{:below_onhand_minimum=>true, :current_onhand=>100, :distributed=>500, :name=>"A Diapers", :onhand_m...nd_minimum=>false, :current_onhand=>100, :distributed=>200, :name=>"B Diapers", :onhand_minimum=>5}]

       (compared using ==)

       Diff:
       @@ -4,7 +4,7 @@
          :name=>"A Diapers",
          :onhand_minimum=>9999},
         {:below_onhand_minimum=>false,
       -  :current_onhand=>200,
       +  :current_onhand=>100,
          :distributed=>200,
          :name=>"B Diapers",
          :onhand_minimum=>5}]

     # ./spec/services/distribution_itemized_breakdown_service_spec.rb:27:in `block (3 levels) in <top (required)>'

  2) DistributionItemizedBreakdownService#fetch_csv should output the expected output but in CSV format
     Failure/Error: expect(subject).to eq(expected_output_csv)

       expected: #<Encoding:UTF-8> "Item,Total Distribution,Total On Hand\nA Diapers,500,100\nB Diapers,200,200\n"
            got: #<Encoding:US-ASCII> "Item,Total Distribution,Total On Hand\nA Diapers,500,100\nB Diapers,200,100\n"

       (compared using ==)

       Diff:
       @@ -1,4 +1,4 @@
        Item,Total Distribution,Total On Hand
        A Diapers,500,100
       -B Diapers,200,200
       +B Diapers,200,100

     # ./spec/services/distribution_itemized_breakdown_service_spec.rb:42:in `block (3 levels) in <top (required)>'

  3) View::Inventory#all_items should return all items across storage locations
     Failure/Error: expect(results.count { |i| i.storage_location_id == storage_location2.id }).to eq(2)

       expected: 2
            got: 0

       (compared using ==)
     # ./spec/models/view/inventory_spec.rb:140:in `block (3 levels) in <top (required)>'

  4) DonationItemizedBreakdownService#fetch return the list of items donated with distributed
     Failure/Error: expect(sorted_subject).to eq(sorted_expected_output)

       expected: [{:current_onhand=>1200, :donated=>1000, :name=>"1304T Diapers"}, {:current_onhand=>600, :donated=>500, :name=>"1305T Diapers"}]
            got: [{:current_onhand=>600, :donated=>1000, :name=>"1304T Diapers"}, {:current_onhand=>600, :donated=>500, :name=>"1305T Diapers"}]

       (compared using ==)

       Diff:
       @@ -1 +1 @@
       -[{:current_onhand=>1200, :donated=>1000, :name=>"1304T Diapers"},
       +[{:current_onhand=>600, :donated=>1000, :name=>"1304T Diapers"},

     # ./spec/services/donation_itemized_breakdown_service_spec.rb:25:in `block (3 levels) in <top (required)>'

Ah yep, you're right. These aren't actually "items" but essentially inventory items. Technically you can rework this by referencing the item itself and item.db_item in the query, but I don't think it's worth the rework. This looks good as is.

Ah I see. Ok thanks 👍


Fixes create cmds to return an error if env passed is invalid

If we pass an env which is not a valid key-value pair, cli breaks.
this handles that parsing of passed string and returns an error
if passed env is not in key=value pattern.
Ref https://github.com/shipwright-io/cli/pull/68#discussion_r739153809
Signed-off-by: Shivam Mukhade<EMAIL_ADDRESS>

Submitter Checklist

[x] Includes tests if functionality changed/was added
[ ] Includes docs if changes are user-facing
[ ] Set a kind label on this PR
[ ] Release notes block has been filled in, or marked NONE

See the contributor guide
for details on coding conventions, github and prow interactions, and the code review process.
Release Notes
Fixes create cmd to return an error if env passed is not a valid key value pair

/kind bug


CNV-30872: Fixing the cloned VM using PVC of another VM

📝 Description
https://issues.redhat.com/browse/CNV-30872
🎥 Demo
Before:

After:

/retest

/retest


Add media-has-caption rule

Satisfies audio-has-caption in #29 but also works for <video> as well.

@jessebeach I'm having trouble with the flow annotations for this one 😞 may need some help understanding how to resolve

Coverage decreased (-0.1%) to 99.377% when pulling 5b74d90f67f9d8625d84bc415d9d323419e70c38 on media-has-caption into acae0a23f89bff3338d7c876f845ff967e912bb1 on master.

Coverage decreased (-0.1%) to 99.377% when pulling 5b74d90f67f9d8625d84bc415d9d323419e70c38 on media-has-caption into acae0a23f89bff3338d7c876f845ff967e912bb1 on master.

Coverage decreased (-0.1%) to 99.377% when pulling 5b74d90f67f9d8625d84bc415d9d323419e70c38 on media-has-caption into acae0a23f89bff3338d7c876f845ff967e912bb1 on master.

Coverage decreased (-0.1%) to 99.377% when pulling 5b74d90f67f9d8625d84bc415d9d323419e70c38 on media-has-caption into acae0a23f89bff3338d7c876f845ff967e912bb1 on master.

Coverage increased (+0.01%) to 99.502% when pulling b2f8eee881f9c6105291148660da552570fba6d4 on media-has-caption into acae0a23f89bff3338d7c876f845ff967e912bb1 on master.

Coverage increased (+0.01%) to 99.502% when pulling b2f8eee881f9c6105291148660da552570fba6d4 on media-has-caption into acae0a23f89bff3338d7c876f845ff967e912bb1 on master.

@ljharb I was hoping to implement global settings in this major version so that we could map custom components to DOM elements across all rules, so I held off on implementing in this pass.
But you're right - I think its still valuable to provide per-rule configuration options in case devs want to override the global settings (which I can't think of a case where they would for DOM elements). I'll add the schema in this PR because it definitely makes sense to make use of both global and local config APIs

I don't have a use case for a custom captions prop; ours would be the same for consistency with the DOM. I wouldn't object to that being added, but it might be worth waiting til the use case comes up.
It's worth noting that if all of the tag names and prop names are configurable, then this rule should instead be a custom configuration item in a generic rule about ensuring components have certain props - so I think we want to be careful about allowing 100% configurability :-)

It's worth noting that if all of the tag names and prop names are configurable, then this rule should instead be a custom configuration item in a generic rule about ensuring components have certain props - so I think we want to be careful about allowing 100% configurability :-)

Haha too true 😂

Coverage increased (+0.02%) to 99.51% when pulling ac1c2338d66fb48d17e459844ceb7098e41d9d1d on media-has-caption into 1c19f4fa8539677ba67b85544e9d86366c30792a on master.

(it's your repo so your call, but i'd suggest a rebase to excise the merge commit ;-) )

Haha, I usually squash since I'm not very good at keeping a detailed history.


Colours are repeating on long factors

I noticed that in the category “Age” some of the colours are the same for different ages: e.g. "14 days", “anthesis" and "12 dpa" are all the same colour (light mauve).
UAUY: colour issues.. hopefully we can resolve.
We run out of colours on each palette. We could merge some palettes.

Merge two palettes.


Fix table in getting-started-guides README.md

cc/ @erictune

cc/ @zmerlynn

LGTM

@erictune is "latest" ok with you?

lgtm

lgtm

ok to test


Compute cord/CSF ratio and removing T1w bloc

This PR removes the analysis of the T1w scans, given their poor relevance for the RF shimming paper. Instead, we introduce the computation of the cord/CSF ratio.

Fixes https://github.com/shimming-toolbox/rf-shimming-7t/issues/63

Encouraging preliminary results from c598978:

Reopening this issue so I can comment.
1, This now changes the argument from one based on signal intensity to one based on contrast. In this case, going for the CNR may be better?
2, It is hard to interpret, for example, the results for sub-03 (increase-decrease-increase), especially in light of the otherwise easier to interpret signal intensity within the CS itself
3, While I did some spot checks to see if the mask used for RF shim calculation does include all of the CSF on later scans (where we would expect more motion wrt the noshim case), this is not guaranteed, as it was not part of the experimental design. If in some slices, the VOI for RF shimming does not include the CSF, this might bias results
4, The optimisation algorithm was not "make the CNR between CSF and SC the best i could be", it was "make the B1+ field in the mask as homogeneous/high/etc as it can be". I am not sure one translates easily to the other.
5. B1- is a straight multiplicative field (at first approximation), and is, bar inter-scan motion, the same for all scans.

1, This now changes the argument from one based on signal intensity to one based on contrast. In this case, going for the CNR may be better?

what we are really after is more homogeneous Tx, which means more homogeneous flip angle, which means more homogeneous contrast between two structures having a drastically different T1 (eg: CSF and SC). So to me, looking at the ratio makes much more sense.

2, It is hard to interpret, for example, the results for sub-03 (increase-decrease-increase), especially in light of the otherwise easier to interpret signal intensity within the CS itself

these are preliminary results-- hindered by #35

3, While I did some spot checks to see if the mask used for RF shim calculation does include all of the CSF on later scans (where we would expect more motion wrt the noshim case), this is not guaranteed, as it was not part of the experimental design. If in some slices, the VOI for RF shimming does not include the CSF, this might bias results

given the size of the Tx coils and their distance from the cord/CSF, this makes a negligible difference

4, The optimisation algorithm was not "make the CNR between CSF and SC the best i could be", it was "make the B1+ field in the mask as homogeneous/high/etc as it can be". I am not sure one translates easily to the other.

right, see point 1

B1- is a straight multiplicative field (at first approximation), and is, bar inter-scan motion, the same for all scans.

right, but looking at curves that tell multiple stories is less straightforward than curves that only tell one story

6, Please give me an @ next time before pushing through a PR of this magnitude, especially considering time zone differences.

yes, sorry. In any case, if you are in any disagreement, it is very straightforward to revert changes with git. Conversation can always happen after the fact, and we can checkout a previous commit if we decide to. This is exactly the reason why working with atomic PR, addressing only a single issue, makes it easier to navigate the project in time in a collaborative manner.

Let's revisit after #35 is fixed, in this case.


Language injection in XML file is bound only to bpmn20.xml files

Describe the bug
Language injection in XML file has hardcoded bpmn20.xml

Fixed by: https://github.com/valb3r/flowable-bpmn-intellij-plugin/pull/366


[KYUUBI #1641] Add Trino client

Why are the changes needed?

Add trino client to communicate with trino cluster.
How was this patch tested?

[X] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[X] Run test locally before make a pull request

Codecov Report

Merging #1642 (d53ce69) into master (2af105a) will increase coverage by 0.86%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##             master    #1642      +/-   ##
============================================
+ Coverage     58.32%   59.19%   +0.86%
- Complexity      164      193      +29
============================================
  Files           260      267       +7
  Lines         12930    13171     +241
  Branches       1633     1663      +30
============================================
+ Hits           7542     7797     +255
+ Misses         4756     4714      -42
- Partials        632      660      +28

Impacted Files
Coverage Δ

.../org/apache/kyuubi/engine/trino/TrinoContext.scala
0.00% <0.00%> (ø)

...rg/apache/kyuubi/engine/trino/TrinoStatement.scala
0.00% <0.00%> (ø)

.../org/apache/kyuubi/operation/KyuubiOperation.scala
64.78% <0.00%> (-9.86%)
:arrow_down:

.../main/scala/org/apache/kyuubi/server/api/api.scala
100.00% <0.00%> (ø)

...ala/org/apache/kyuubi/operation/LaunchEngine.scala
86.36% <0.00%> (ø)

...org/apache/kyuubi/operation/ExecuteStatement.scala
87.35% <0.00%> (ø)

...g/apache/kyuubi/engine/flink/result/Constants.java
0.00% <0.00%> (ø)

.../apache/kyuubi/engine/flink/result/ResultKind.java
100.00% <0.00%> (ø)

...yuubi/engine/flink/FlinkEngineProcessBuilder.scala
75.90% <0.00%> (ø)

...rg/apache/kyuubi/engine/flink/FlinkSQLEngine.scala
42.10% <0.00%> (ø)

... and 27 more

Continue to review full report at Codecov.

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


add constructor for binary classifiers

This PR adds a separate constructor NeuralNetworkBinaryClassifier for binary classification.
Unlike for the existing NeuralNetworkClassifier constructor, in the final layer always has size 1. By default, a sigmoid function is used to transform this layer. This is a pretty common thing to use neural networks for, and as far as I can tell it's not possible with the existing constructors.
I'll add tests and documentation if this PR gets some support.
PR Checklist

[ ] Tests are added
[ ] Documentation, if applicable

I think the test failures are unrelated to this PR?

@tiemvanderdeure Thanks for this PR, which looks like a valuable contribution. I'll try to investigate the fail soon and get back you.

@tiemvanderdeure  The source of your fail is sorted. Do you mind rebasing onto dev?

Thanks for reviewing. I'll add some tests and documentation later this week!

@tiemvanderdeure I'm tweaking the tests a bit at #251. I suggest you wait till I finish that before writing your tests.

Regarding tests: I don't think it is nessary to run testoptimiser or to compare predictions b/w CPU/GPU, as we do for the other classifier. The basictest should suffice.

Re documentation. In view of #252 just merged, you just need to update the table at https://github.com/FluxML/MLJFlux.jl/blob/dev/docs/src/interface/Summary.md and write a model doc-string, modelled on the existing classifier.

I just added some quick docs - most of it is copied over from the docs for NeuralNetworkClassifier.
Should I still wait for https://github.com/FluxML/MLJFlux.jl/pull/251 before I can update the tests?

Should I still wait for https://github.com/FluxML/MLJFlux.jl/pull/251 before I can update the tests?

Yes, I think that's close to finished. Just waiting on the follow up review.

@tiemvanderdeure FYI #251 is now merged. Let me know if you need guidance on merge conflicts.

Okay, @tiemvanderdeure I'm keen to move this along, now that a bunch of other PR's are also coming in. I'll resolve the conflicts myself, add tests and merge myself. Will let you know if I encounter problems.
Thanks indeed for this valuable contribution :thanks:

closed in favour of #257

All right, thanks for finishing this @ablaom! Be sure to let me know if you need me to review or anything.

All right, thanks for finishing this @ablaom! Be sure to let me know if you need me to review or anything.

Great. Definitely add you to my list :heart:


Ma cumsum prod

This adds logs for two ma functions and adds one line to example-generator.py file to show how to pick specific functions.

Thanks @jud-sdev


Schema evolution handling

Hi,
Scala Pickling looks highly promising so that I want to migrate an existing Eventsourced application which uses default Java serialization for event storage.
Currently the biggest concern other than #27 is schema versioning. The application requirement changes as time goes by, so eventually I'll need to add/rename/remove some fields from event messages, and then compatibility with previous versions of message will be an issue.
Is there any plan or recommendation about this?

Since 0.10.0 came out I was looking at pickling for use to persist messages and was thinking about how schema evolutions would happen. Sadly this test I wrote didn't pass, but I'm mentioning it here to see if now that some of those PR's in the SI have been merged if it's likely for pickling to have support for handling default methods. It looks like it'll be fixed in scalac in 2.11.6?
https://github.com/adamdecaf/pickling-migration-test/blob/master/src/main/scala/Add.scala

In https://github.com/sbt/serialization we support Option fields that can be missing.

It would be totally awesome if schema evolution came about. It currently is the thing keeping us back from using pickling. @adamdecaf's outlined usecases pretty much sum up the hoped-for functionality for now.
protobuf/avro/thrift was mentioned before, but it is just not cutting it in a pure scala-based environment due to the lack of support for e.g. polymorphism, drastically cutting down the flexibility that scala offers.
So, very keen to get an update on this :smile:


Update .npmignore

Ignore a couple more files that don't need to be available at run time.

Pull Request Test Coverage Report for Build 2806

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

Totals

Change from base Build 2795:
0.0%

Covered Lines:
915

Relevant Lines:
967

💛  - Coveralls


[FEATURE] add vaccine info to Next Steps

The Next Steps after a negative test should include the following after the current message:

The university encourages you to be vaccinated if you are able to do so. Visit vaccinefinder.org to find nearby appointments.

Done in health rules. There is a source code update that improves Next Step display of HTML content in Home panel.


Add 60 minute tutorial notebook

In this PR, I've made the performed the following:

[x] Add a 60 minute tutorial notebook for workflow-calcium-imaging
[x] Test the 60 minute tutorial notebook end-to-end locally using Dev Containers in VS Code.
[ ] Update CHANGELOG
[ ] Update version.py

@kabilar, besides the usual checks, please let me know if I should continue to fill out the event alignment schemas for this tutorial notebook. I'm not sure if we're keeping that or if that is being dropped from this version of the workflow

@kabilar, besides the usual checks, please let me know if I should continue to fill out the event alignment schemas for this tutorial notebook. I'm not sure if we're keeping that or if that is being dropped from this version of the workflow

Thanks.  We will keep those schemas in this workflow but can add them to a separate notebook to keep this tutorial notebook streamlined.


Presentation markdown is invalid, may break in future.

Just  a quick note to let you know that some of the markdown syntax being used in your GitPitch presentations for your tutorials is invalid and is likely to render incorrectly. It's simply the way you are using headings, Markdown expects a space to appear between the # and the text on that heading.
For example, you use:
##Let's Get Started!!

What you should be using is the following:
## Let's Get Started!!

This just an fyi, you should make this change to future-proof your presentations.

BTW gitpitch is cool 👍

That's great. And I'm very happy to hear you're enjoying using GitPitch. Whenever you have new presentations to share don't forget to Tweet and mention #gitpitch and I'll be happy to retweet to help you get the word out 👍


Remove redundant import_line from BloqDocSpec

These import_lines are all equivalent to the default generated by BloqDocSpec.
There may be more that are technically redundant but are different from their current state in the notebook (i.e. import from a child rather than parent module). They can be addressed in a follow-up PR.

There may be more that are technically redundant but are different from their current state in the notebook (i.e. import from a child rather than parent module). They can be addressed in a follow-up PR.

sounds good


2FA/OTP issues

OTP failure.zip
Installing Selenium was terribly difficult as well due to pip issues related to python2.7, but I don't think that's necessarily related.
I've tried running from source with master and it doesn't appear to change either.  Really hope I don't have anti-automation issues now after testing.

Only email was supported for 2FA. I turned on text message 2FA on my Amazon account and added the code to support text message 2FA in https://github.com/jakehilborn/debbit/pull/16/files and merged it.
Since you're running from source, can you try it out and let me know if it works for you?

That seems to have worked, but I don't know how to get cookies to work in firefox with geckodriver/selenium, so there's really no advantage to having 2FA support at the moment.
And a new secondary issue that seems to have popped up (on both release and master unfortunately):
ERROR: 2020-05-10 00:07:19,029 cardETFCU_amazon_gift_card_reload error: Traceback (most recent call last):
File "debbit.py", line 281, in web_automation_wrapper
result = merchant.web_automation(driver, merchant, amount)
File "/home/vm/scripts/src/merchants/amazon_gift_card_reload.py", line 111, in web_automation
driver.find_element_by_xpath("//span[contains(text(),'ending in " + merchant.card[-4:] + "')]").click()
File "/home/vm/.local/share/virtualenvs/src-fUWS5gmn/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py", line 80, in click
self._execute(Command.CLICK_ELEMENT)
File "/home/vm/.local/share/virtualenvs/src-fUWS5gmn/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "/home/vm/.local/share/virtualenvs/src-fUWS5gmn/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/home/vm/.local/share/virtualenvs/src-fUWS5gmn/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: Element  could not be scrolled into view

Yes I've seen that ending in " + merchant.card[-4:] issue on my side as well. Typically, 1 of the 5 retries fixes it.
The latest code on the master branch should fix your cookie issue. Set your config file to have close_browser: no which will re-use the same Firefox instance from purchase to purchase. When you first start debbit you'll need to do the 2FA thing. However, once it's running you should be able to just let it run without a hitch.

I'm not getting any success.  The first gets stuck on the reload page.  The next 4 attempts get stuck on the password page, looking for "ap_email" when it doesn't exist.
v1.0.1-dev Traceback (most recent call last):
File "debbit.py", line 281, in web_automation_wrapper
result = merchant.web_automation(driver, merchant, amount)
File "C:\Run\debbit\debbit-master\src\merchants\amazon_gift_card_reload.py", line 32, in web_automation
driver.find_element_by_id('ap_email').send_keys(merchant.usr)
File "C:\Users\John.virtualenvs\src-lRJ7kzJg\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 360, in find_element_by_id
return self.find_element(by=By.ID, value=id_)
File "C:\Users\John.virtualenvs\src-lRJ7kzJg\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 978, in find_element
'value': value})['value']
File "C:\Users\John.virtualenvs\src-lRJ7kzJg\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\John.virtualenvs\src-lRJ7kzJg\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [id="ap_email"]
After these failures, the browser closes as well, so OTP needs to be redone as well next time.

 I tested all these scenarios with 2FA enabled on my account before pushing the changes to GitHub.
Can you zip up your failures directory and email it to<EMAIL_ADDRESS>or upload it to this GitHub Issue? I'll take a look at the screenshots and error messages to see what happened. Thanks for the feedback by the way. It's always good to get the behavior of these webpages with different people's accounts that have slightly different preferences/behavior.

Sent.  It was actually 2 attempts on the credit card page and 3 stuck on the login page.  I'm assuming this was because amazon automatically logged me out after the 2nd try and waiting ~5000 seconds.
The screenshots and html files aren't exactly purged of every bit of identifying information, and I do have an awful lot of cards added to my account.
Is the firefox window supposed to stay open forever or does it close after the burst is done?

Thank you so much for the error reports, I was able to see what's wrong. I pushed the fix to master, please pull the latest code and try it out! I'll keep it running on my side too to see if any errors show up. I've also implemented email notifications for failures that you may find useful. Just put your email in config.txt like shown in sample_config.txt. Emails will be sent from<EMAIL_ADDRESS>hopefully they don't go straight to spam.
Yes, the Firefox window is supposed to stay open forever. The reason is that geckodriver doesn't allow setting cookies for any website other than the site it is currently on. This makes setting cookies difficult for websites that have many domains like website.com, login.website.com, payment.website.com, etc. Geckodriver requires visiting each site individually to set any saved cookies. And often pages like payment.website.com redirect to login.website.com when not logged in so setting cookies is super tricky and hard to generalize.
The workaround I'm using is that the Firefox window stays open so cookies are preserved. I know it's not great, and I'm considering writing a Firefox plugin that can override the cookie domain limitation. If you're using close_browser: no then I highly recommend also using hide_web_browser: yes so that there aren't Firefox windows visible on your screen all the time.

Latest update fixed my issue!  Thx!

I guess I'll continue this thread.  I successfully got 2 purchases in.  I'll see what happens tomorrow.  Not sure I can stay logged in that long.
"pipenv run ./debbit.py" ends up opening debbit.py in wordpad for me (new instructions on how to run from source), whereas pipenv shell and python debbit.py works.

Sweet! If it fails again let me know and I'll be happy to debug. Hoping it works this time though, you've sure gone through a lot of hassle and I appreciate all the feedback.
I spun up a Windows VM. You're right, pipenv run ./debbit.py does not work. I updated the instructions to use pipenv run python debbit.py which should work on all platforms.

Day 2 worked fine.  Now I just need to review your change you made on the amazon script to figure out where the fix happened, because I'm getting a similar error on my cable company's website.

I noticed that Amazon will always ask for the password if not logged in. However, if its your first time logging in you need to specify your email. If it's a 2nd time login, then your email is pre-filled on the page. The change I made was to check if the email input field existed, and only fill in if it is found.
if driver.find_elements_by_id('ap_email'):  # if first run, fill in email. If subsequent run, nothing to fill in
    driver.find_element_by_id('ap_email').send_keys(merchant.usr)

This code is a little tricky. find_elements_by_id (notice the s in elements) will return an empty list if nothing is found instead of throwing an error.
Note, a good way to debug is to review the files in the failures directory. Often I will replace the line driver.get('https://www.amazon.com/asv/reload/order') with driver.get('file:///path/to/failures/2020-05-10_10-00-12-050078_merchant.html'). Then use Selenium to poke around the HTML file to see what elements were there when the automation failed.
I encourage you to create a pull request or comment/email me your local cable company's website automation script. The more merchants the merrier 🙂.


Heroku and EB deep links not routing

I can't get the deep links to work when I'm hosting the application on Heroku/EB.
I've tried to run an nginx server to route everything to the index.html in ./dist but the deep links are still not found.
Can you run through how you hosted the project on Heroku?

There are technically two applications in this repository. One is for the backend which serves to static content or HTML, and the Angular portion of the app is only on the front-end. So I deployed the backend to Heroku (https://angular2-login-seed.herokuapp.com/api/....), and the front-end app is just in the gh-pages branch of this repository. When you visit https://domfarolino.com/angular2-login-seed you're hitting the static front-end angular app, and whenever the angular app needs some data to display on the page it hits the API deployed on Heroku. This make sense?
The front and back end are completely divorced, so the deep linking/routing is all done with the Angular app in the front-end.

It is possible to deploy them all with one app, but it is messier. You'd need the backend application to serve the same HTML file for any route that does not start with /api/ so that the Angular router could actually handle each route itself (and not let the backend serve some nonesense), and furthermore you'd need to be serving the index from the dist/ folder that contains the compiled version of the angular app.
When creating a robust single page app in something like Angular it makes sense to let Angular (with all its features and glory etc) handle just about everything except for dynamic data collection, which is what the backend does in this application. So when you deploy to Heroku you should only be deploying the back-end app, now you can serve the front-end from anywhere and just make sure the Angular app hits the correct back-end.
Let me know if you need any more info/help

Totally, I get that we have the Angular app and api app.
I'm having trouble with the Angular app right now.
I can't seem to use any of the deep links when I only host it.
The app runs fine when it first get's hit but if I refresh, the page breaks.

Hmm, could you give me the URL you're hosting the Angular app at?

Here we are
https://ng-login-seed.herokuapp.com/
Here are the reproduction steps

pull the repo
Change the following in package.json

Move angular-cli to dependencies so they're installed by heroku
Add the following pre and post install scripts as well as the http server start
  "scripts": {
    "start": "http-server ./dist",
   "preinstall": "npm install -g http-server",
  "postinstall": "ng build --prod"
  },

Push to heroku for deployment
Navigate to the heroku page
Refresh

Expected - the login screen should display correctly
Actual - there's a white screen
I haven't enabled cors so none of the api calls will work.

Thanks for the information. http-server is a simple server in that it will serve you whatever files you're trying to get (denoted by URL). If it is anything like python -m SimpleHTTPServer it probably doesn't do much more than this (path aliasing and other things with logic). It is a dumb server, in that if a file exists it will give it to you. So if you visit /, the server will automatically look for a /index.html which exists since Angular built it. However this kind of server typically does not support deep-linking. Think about it, on the front end we've changed the URL from / => /login at some point, but we've never told the server about this. When the URL changed, Angular knew what to do and it changed the front-end content accordingly. The server however, only remembers our first request that it was able to handle successfully - /.
Fast forward to us refreshing the page after the URL changed on the front-end. Now we're actually saying, "hey server - serve us up the content at /login for us" since our URL has changed to /login. The server, http-server in this case will look for a /login folder in the ./dist folder in your case instead of serving up index.html. Since it can't find it, it will fail (different servers will fail differently). So the key to supporting deep-linking with a server is to serve the same static HTML index.html no matter what the route we request is. Why is this? Well because we've already seen that Angular knows how to deal with those links when they are given, we just need to make the server more like a sieve, so that it will always let Angular respond.
Regarding http-server, I've never used it so I don't know if there's a way to say "hey server, on request of /, /login, register, /heroes, ... serve the same index.html page no matter what". This is something you'll need to find out. With express/Node.js it is very very simple to do this.
Does this make sense why the deep-linking is failing? It is nothing to do with the Angular app, it is instead a fundamental issue that very watered-down basic http servers have when trying to serve single-page applications with routers built in. The idea is typically we want to serve the same static content no matter what request is made, and sometimes baking those rules into the server is simple.

For example when I try to retrieve /login when running the http-server locally in the ./dist folder, I get the following error:
[Mon Nov 21 2016 17:02:24 GMT-0500 (EST)] "GET /login" Error (404): "Not found"```

Because we've got no rule telling the server to route everything to `index.html`. Regarding your original issue with the nginx server that should've routed everything to index.html I'm not sure why that did not work. I would assume the server was not set up to route everything to index.html as you may have thought but I could be wrong

I'll try the nginx routing again.
Thanks for the help!


Add how-to for non-docker option

So this is to help https://github.com/zwave-js/zwave-js-server/issues/203.

Let's not put this in the readme but in a separate file. The README should focus on getting started with development.

I don't think we should add anything that is not geared against development. I think it's ok to show a default config file, or how to generate one, in the README but the rest we should remove. We don't want to add any end user docs since that is handled by other projects.

I don't think we should add anything that is not geared against development. I think it's ok to show a default config file, or how to generate one, in the README but the rest we should remove. We don't want to add any end user docs since that is handled by other projects.

Other projects, such as? The reason why I run directly this is because I don't want to run Docker, and it is not directly built in to Home Assistant Core.

Let's not put this in the readme but in a separate file. The README should focus on getting started with development.

That's okay I guess. What do you want to call the file? I'll see what I can do then.

If you don't want run docker or use Home Assistant add-ons where this is all handled for you, you need to take care of this by yourself. We don't provide support for that and won't add documention for it in this project.

Seems kinda idiotic to me, but sure, close it if you'd like. :)

Ok, I'll close then. Let us know if you change your mind and want to address the change request to just add the config file example.


Remove node <7.0.0 requirement in package.json

This requirement breaks yarn add when running node > 7.0.0 but running yarn add --ignore-engines works, so I'm assuming this requirement isn't really needed. Feel free to close this PR if I this is a bad assumption.
Related to issue #9

merged, thanks


Is restart required

Is restart required after turning on NetworkProtection and setting to block mode?

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

ID: 71868539-63d8-b250-f9d4-83a4052f4f74
Version Independent ID: ed5658cf-173f-47bf-ed76-a68d89ea5c4b
Content: Turn on network protection - Windows security
Content Source: windows/security/threat-protection/microsoft-defender-atp/enable-network-protection.md
Product: w10
Technology: windows
GitHub Login: @levinec
Microsoft Alias: ellevin

@brink668 . No need restart is required .  but  normally  you will shutdown the computer ,  once you complete  the work. . On next  time after  booting windows , configured network protection mode will be  applied  automatically

@brink668
It seems that your question has already been answered by the community and thus we are marking this issue as resolved.
Feel free to re-open the issue if you feel it hasn't been resolved.
Thank you for providing feedback.


importMap: root import causes «server responded with a MIME type of ''"» error

If I use absolute imports and <MantineProvider/> then <style data-emotion="mantine" data-s=""></style> not added to resulting html code.
I think at may be connected with fact that absolute import in ./src/app.tsx causes an error visible in Chrome Dev Tools:
spinner.tsx:1 Failed to load module script:
Expected a JavaScript module script but the server responded with a MIME type of "".
Strict MIME type checking is enforced for module scripts per HTML spec.

importMap.json:
    "/~/": "./src/",

Root import line at ./src/app.tsx:
import Spinner from "/~/components/spinner.tsx";

(instead of ./components/spinner.tsx)
Discussion on Discord

An issue with *.ts file imports too but only on browser side (root imports in server.tsx don't cause any errors).

ok, if I use it with React.lazy
const Comments = lazy(() => import("/~/components/comments.tsx"));

// . . . . .

              <Suspense fallback={<Spinner />}>
                <Comments date={+new Date()} />
              </Suspense>

I get errors:
comments.tsx:1 Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of "". Strict MIME type checking is enforced for module scripts per HTML spec.

react.development.js:1407 Uncaught TypeError: Failed to fetch dynamically imported module: http://localhost:8000/src/components/comments.tsx

react-dom.development.js:18687 The above error occurred in one of your React components:
    at Lazy
    at Suspense
    at main
    at H (https://esm.sh/v132/@emotion/react@11.11.1/X-ZS9yZWFjdA/es2022/react.mjs:2:1419)
    at _r (https://esm.sh/v132/@mantine/styles@6.0.21/X-ZS9yZWFjdA/es2022/styles.mjs:2:18143)
    at MantineProviderMod (http://localhost:8000/_ultra/compiler/src/providers/mantine.tsx:3:38)
    at at (https://esm.sh/v132/@tanstack/react-query@4.2.3/X-ZS9yZWFjdA/es2022/react-query.mjs:2:38279)
    at body
    at html
    at App (http://localhost:8000/_ultra/compiler/src/app.tsx:16:31)
    at SearchParamsProvider (http://localhost:8000/_ultra/compiler/src/wouter/index.tsx:4:40)
    at ee (https://esm.sh/v132/wouter@2.9.2/X-ZS9yZWFjdA/es2022/wouter.mjs:2:1925)
    at ft (https://esm.sh/v132/@tanstack/react-query@4.2.3/X-ZS9yZWFjdA/es2022/react-query.mjs:2:40586)
    at at (https://esm.sh/v132/@tanstack/react-query@4.2.3/X-ZS9yZWFjdA/es2022/react-query.mjs:2:38279)
    at n (https://esm.sh/v132/react-helmet-async@1.3.0/X-ZS9yZWFjdA/es2022/react-helmet-async.mjs:2:7261)
    at ClientApp

(thx @b_e_n_t_e_n from Discord)

There is open PR https://github.com/exhibitionist-digital/ultra/pull/243 with absolute import example by @ahuigo.
importMap.json:
  "@/": "./src/"

lib/ultra.ts:
  importMap.imports["@/"] = "/_ultra/compiler/src/";

But I don't know how to implement similar changes to support current ultra revision properly because there is no lib/ultra.ts in current example code anymore:

I think there must be changes in https://github.com/exhibitionist-digital/ultra/blob/main/lib/ultra.ts (importMap.).
These can be made only in ultra source, I see no way to patch it from web application code.

:smile_cat: I think I fixed it for my case ( "/~/": "./src/",) locally:
server.tsx:
if (server.importMap) {
  server.importMap.imports["/~/"] = "/_ultra/compiler/src/";
}

export default server;


Kill typedef. Use C++11 type alias instead.

I felt that killing typedef everywhere (except in hooks.hpp since it looks like it should be C-compatible) and replacing it by the new type alias would be more consistent (since it's already used) and would improve readability. It's kind of subjective, but I always found typedef of function pointer types kind of hard to read for example. Fell free to merge or not.

It is, technically, hooks.h  :-)


GAN Models

List of GAN Models we want to have before v0.1

[x] DCGAN
[x] Conditional GAN
[x] Autoencoder Model for EBGAN and BEGAN
[x] Self Attention GAN

@avik-pal  Add any other models you find relevant.

Self Attention GAN as decided will not be put inside the models module. The necessary building blocks in the layers module make it easy enough to design the SAGAN.


can you suggest when to stop training?

Hi,
Thanks for your code!
Recently I need to re-train this network, on another dataset, HKU-IS, the model converges good,
but I don't know when to stop it...
the loss now in your code is 0.099 and 2.83 respecitively...
Because we don't have evaluation during the training...thus I do not know how good is the result now...
can you tell us when to stop the training when you train the BASNet using DUT-TR dataset?

Thanks for your interests. This is a good question. What we tried before is
plotting the -log(loss) of the training process. If the training curve is
flat, it should be ok to stop. In your case, if you just want to get better
results, you can also pick one of the other SOD datasets, e.g. MSRA, ECSSD
and so on, as your validation set. Then select the best model based on the
validation results. We also gave our suggested iteration numbers (around
400K on DUTS-TR dataset) in the paper.
On Tue, Sep 29, 2020 at 3:00 AM<EMAIL_ADDRESS>wrote:

Hi,
Thanks for your code!
Recently I need to re-train this network, on another dataset, HKU-IS, the
model converges good,
but I don't know when to stop it...
the loss now in your code is 0.099 and 2.83 respecitively...
can you tell us when to stop the training when you train the BASNet using
DUT-TR dataset?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/NathanUA/BASNet/issues/46, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADSGORIOMALB2TX4CYTRL73SIGO2JANCNFSM4R5QOWIA
.

--
Xuebin Qin
PhD
Department of Computing Science
University of Alberta, Edmonton, AB, Canada
Homepage:https://webdocs.cs.ualberta.ca/~xuebin/

yeah I know how to implement a eval dataloader and it would be fine if we have it.
i think i also don't have enough GPU RAM to do so, just like you mentioned in the paper, hahaha.
yeah, i also now plot the log(loss) as you mentioned.
Thanks for the code again!


Remixicon web site off line

Describe the bug
Unable to connect to the remix icon.com web site
To Reproduce
Steps to reproduce the behavior:

Go to 'https://remixicon.com'

What is your geographical position?
I can access our website from our side.

I'm having the same issue... Geographical position is Austria

@marcelSchmidtC02 We are trying to solve this problem, but still have no idea what the problem is.
Can you get a screen capture of browser console to help us locate the error report?

@xiaochunjimmy
No message in the console, because there's no page to be found

@marcelSchmidtC02 Thank you for your information.
Can you ping remixicon.com in the terminal and see if any packets transmitted and received?

@xiaochunjimmy
Host not found

@marcelSchmidtC02
Can you provide screenshots of traceroute remixicon.com and dig remixicon.com?

This problem may be caused by our server or your internet service provider.
We've submitted a repair order to our service provider for more information.

https://github.com/Remix-Design/RemixIcon/issues/160

@marcelSchmidtC02 We've reported this problem to our server provider, but they need more information to locate the problem: like the traceroute and dig info.
We could not repetition this problem from our side, so could you help us get more information?

Hi, I also have this problem from Iran, even with vpn the problem is not solved, this issue can bother many users, and try to solve this issue as soon as possible, you can change the web server.
Thankful

@Qualima Thank you for your information

@marcelSchmidtC02 @Qualima We are trying to use another hosting service provider for foreign users, could you get access to https://remixicon.com now?
As we could not test this problem from our side, so I need your info, Thank you.

Still not working

@marcelSchmidtC02 How about this link?
https://remixicon.web.app/

This link works fine

@marcelSchmidtC02 How about https://remixicon.com now?

Just jumping in here in case this helps. In the UK, I'm getting an SSL cert error, and when you bypass it says "Site not found" in Firebase.

If I ping it, it's doing the following
ping remixicon.com
PING remixicon.web.app (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: icmp_seq=0 ttl=57 time=28.248 ms
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=57 time=10.674 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=57 time=13.830 ms

So looks like the cname to remixicon.web.app is there, but maybe firebase hasn't been configured to accept the remixicon.com host domain.

@medatech Thank you for your explanation.
This is the first time I using firebase and I just have finished the configuration. It needs some time (in 24h) to take effect. I hope you can access to our website later.
Please try both https://remixicon.com and https://www.remixicon.com later to see if the DNSPod was configured successfully.

Thank you @xiaochunjimmy, I appreciate your hard work on this. It looks like https://remixicon.com is working now so I suspect the www is still propagating. All the best!

now problem with certificate.
openssl s_client -connect remixicon.com:443 | grep CN

depth=2 OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
verify return:1
depth=1 C = US, O = Google Trust Services, CN = GTS CA 1O1
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google LLC, CN = firebaseapp.com
verify return:1
 0 s:/C=US/ST=California/L=Mountain View/O=Google LLC/CN=firebaseapp.com
   i:/C=US/O=Google Trust Services/CN=GTS CA 1O1
 1 s:/C=US/O=Google Trust Services/CN=GTS CA 1O1
   i:/OU=GlobalSign Root CA - R2/O=GlobalSign/CN=GlobalSign
subject=/C=US/ST=California/L=Mountain View/O=Google LLC/CN=firebaseapp.com
issuer=/C=US/O=Google Trust Services/CN=GTS CA 1O1

Certificate issued for firebaseapp.com and browser show error Your connection is not private
You can check certificate at https://www.digicert.com/help/

@kbakba @medatech @ianbradbury-bizzibody @marcelSchmidtC02 @Qualima
Hi there,
Could you get access to https://remixicon.com and https://www.remixicon.com now?
How long does it take to finish loading？
We need your help to know whether our new service provider is viable for oversea users.

Page loaded fine. But first attempt loading time is so big.

/static/js/vendor.*.js - 28 seconds for first load (2.8Mb), after loadi it cached, and load time for second load is fine.

@kbakba Thank you for your info. It seems just fine. What is your location?

What is your location?

St. Petersburg Russia


Fixed link

Fixed link for Configure tables and attributes for auditing as per #3974

Revised link to go to top of article instead of a subsection.


fix: use cosmos/ledger-cosmos-go@main

Closes: #XXX
What is the purpose of the change
This PR uses the latest imports pertinent to supporting ledger devices. I'm writing this on the
airplane, someone should please double check to ensure that there are no accidental breakages of
cli-based ledger support.
Brief Changelog

go get github.com/cosmos/ledger-cosmos-go@main

Testing and Verifying
These changes haven't been tested yet, and should be verified before merging.
Documentation and Release Note

Does this pull request introduce a new feature or user-facing behavior changes? no
Is a relevant changelog entry added to the Unreleased section in CHANGELOG.md? yes
How is the feature or change documented? not applicable

I feel like we should wait for them to do a release?


App starts to black screen if it can't start observatory

This is a fairly bad UX problem, there's little feedback as to what is going wrong, and it's not clear that the thing that needs killing is on the device rather than on the desktop.
Could we adjust so that we opened observatory on a free port on the device rather than hanging?
Steps to Reproduce

Start an app on a device (Leave it running)

Start a new project in Atom

Start the new project => Black screen on the device

kill both apps on the device

restart app, now works

Flutter Version
flutter --version
Flutter from https://github.com/flutter/flutter.git (on alpha)
Framework: 2fe456bf957d5df792b716599aa6f21d98997228 (8 days ago)
Engine:    d474e9d2b60a9cb111c09844c10081b68bde9252

Logs
Showing Nexus 7 logs:
--------- beginning of main
I/flutter : Could not start Observatory HTTP server:
I/flutter : SocketException: Failed to create server socket (OS Error: Address already in use, errno = 98), address = <IP_ADDRESS>, port = 8181
I/flutter : #0      _NativeSocket.bind.<anonymous closure> (dart:io-patch/socket_patch.dart:494)
I/flutter : #1      _RootZone.runUnary (dart:async/zone.dart:1137)
I/flutter : #2      _Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:551)
I/flutter : #3      _Future._propagateToListeners (dart:async/future_impl.dart:637)
I/flutter : #4      _Future._completeWithValue (dart:async/future_impl.dart:424)
I/flutter : #5      _Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:479)
I/flutter : #6      _microtaskLoop (dart:async/schedule_microtask.dart:41)
I/flutter : #7      _startMicrotaskLoop (dart:async/schedule_microtask.dart:50)
I/flutter : #8      _Timer._runTimers (dart:isolate-patch/timer_impl.dart:394)
I/flutter : #9      _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:414)
I/flutter : #10     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)
I/flutter :
--------- beginning of system

This is actually a pretty common report. :(  I believe @johnmccutchan has a plan in https://github.com/flutter/flutter/issues/1988


Features

I thought, it would be good to add a specific lb for killstreak, I think it would make this plugin even cooler.
❤

Great idea! Thank you for your suggestion!


Search for tickets

It should be possible to search for tickets via

title
labels
assigned users

Blocked until #3, and #6 are implemented

Can be done now


Testing something, this might get checked in

The automation - azure-sdk - version-updater pipeline seems to be choking on the fact that the 2023-10/cpp.yml is empty. I think they need to be deleted if they're emptied out. This PR is to test this and might be checked in if that's the case.

@antkmsft, unfortunately, the way the other pipeline works is I can't run it against a PR (because it grabs the latest azure-sdk repo, not the files in this PR. I'm going to have to merge this PR to remove the empty files and see if that works or not.


Prompt function is executed too many times

If you have prompt like this:
var count = 0;
function prompt(callback) {
  callback('[' + ++count + ']> ');
}

and when you press enter few times you don't have
[1]>
[2]>
[3]>
[4]> |

solution: have last prompt in variable probably in cmd plugin and add API method last_prompt() that will return string from last execution of the prompt, to have symmetry the when prompt is string it prompt() and  last_prompt() will return the same string (same object).
Validate prompt will need to be put in cmd plugin, because it execute prompt function.

It will be not possible because of asynchronous commands, the prompt is generated when you press enter and second time when you resume terminal.


Refactor key generate API

I believe it would be better to refactor the keys generate service API back to how it was before the key derive functionality: https://github.com/onflow/flow-cli/blob/master/pkg/flowkit/services/keys.go#L56
We should instead extract this to another service method called Derive.

I am getting this one, it makes sense totally.
Also I would suggest generate to take private key. And exposing seed to private key generation in another method.

Yes, it was actually my bad for not noticing that during PR review, sorry.
I think the generate from mnemonic is great API yeah. I would even say that in that spirit we could add mnemonics being generated as well when you would generate a new key.

@sideninja  We have some standard for mnemonic I guess, I remember there was some FLIP some time ago ? I think would be nice to have ledger compatible for example.
Also flow.json can accept mnemonic as private key in advanced mode.

@sideninja We have some standard for mnemonic I guess, I remember there was some FLIP some time ago ? I think would be nice to have ledger compatible for example.

Yes.

Also flow.json can accept mnemonic as private key in advanced mode.

Yes, that would also be nice.

I finished this, just thinking to add a new command something like flow keys bip44 or update flow keys generate
Output will be like below, but if we update generate  it will not be compatible with existing seed.
🔴 Store private key safely and don't share with anyone!
Private Key 		 5cfcf224b30185116879066ad3f198fce0e703a3d8ac08425828a2221d4f5612
Public Key 		 1ead0c503695d5cc9657607d10be3629d24e793865f88fbb77c942381d21d0d078cfdb6fb27ce65fd6165f82a9ac5a08156d018259f58363a71d60244918205d
Mnemonic 		 grid nothing awkward shuffle bid sense current minimum spawn decrease under token
Derivation Path 	 m/44'/539'/0'/0/0

I would update the existing generate method.


Allow late port forwarding in Remote SSH

Hi,
Would it be possible to forward ports after starting the remote VS code server over SSH, like in Remote Containers?
Currently I open a tunnel with a new SSH connection from the host, but it would be nice to have that feature directly inside VS Code.

You can, in the Remote Explorer viewlet, same as with Containers. Can you explain what issue you are having?

Hi,
OK, my bad, I haven't seen it in the Remote Explorer.
In fact, I look for all commands through the "Show All Commands" shortcut, using the English name of the command (here "forward port"), as it allows to find the command even when VS Code is in another language (here, French).
The issue seems to be that for the Remote SSH extension, the English name of the command is not available/searchable: I only see the translated version (which I have to know first to know what to find).
Also, those commands are not prefixed by "Remote-SSH:" like the others, which made me think they weren't available.
Sorry for the wrong issue then.

Oh yeah, that's it. It won't be prefixed with Remote-SSH because it comes from vscode itself but we can make the English name show up too.

FYI @alexr00 you can register those actions for the command palette with ILocalizedString if you want, I think that's how that works.

Thanks!


Add support for listing read/only and read/write images

When removing --all images prune images only attempt to remove read/write images,
ignore read/only images
Signed-off-by: Daniel J Walsh<EMAIL_ADDRESS>

/test images

LGTM

No command completions, we don't handle this sub-options currently.
Added test.

/test images

/lgtm


bugfix: add check for json-file log opt

Signed-off-by: zhangyue<EMAIL_ADDRESS>
Ⅰ. Describe what this PR did
check the pouch if run with unsupported log options.
Ⅱ. Does this pull request fix one issue?

fix issue #2276
Ⅲ. Why don't you add test cases (unit test/integration test)? (你真的觉得不需要加测试吗？)
None.
Ⅳ. Describe how to verify it
pouch run --name=test --log-opt env1=baz busybox echo hello
Get
Error: failed to run container: {"message":"unknown log opt 'env1' for json-file log driver"}
Ⅴ. Special notes for reviews
None.

I think we should add some integration test for this feature. WDYT? @ZYecho

I think we should add some integration test for this feature. WDYT? @ZYecho

done.

LGTM


iOS Pods version GoogleDataTransport

Hello!
[!] CocoaPods could not find compatible versions for pod "Firebase/Analytics":
In Podfile:
    Firebase/Analytics

    firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`) was resolved to 11.3.2, which depends on
      Firebase/Analytics (= 11.0.0)

CocoaPods could not find compatible versions for pod "GoogleDataTransport":
In Podfile:
    firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) was resolved to 15.1.2, which depends on
      Firebase/Messaging (= 11.0.0) was resolved to 11.0.0, which depends on
        FirebaseMessaging (~> 11.0.0) was resolved to 11.0.0, which depends on
          GoogleDataTransport (~> 10.0)

    mobile_scanner (from `.symlinks/plugins/mobile_scanner/ios`) was resolved to 5.2.3, which depends on
      GoogleMLKit/BarcodeScanning (~> 6.0.0) was resolved to 6.0.0, which depends on
        MLKitBarcodeScanning (~> 5.0.0) was resolved to 5.0.0, which depends on
          MLKitCommon (~> 11.0) was resolved to 11.0.0, which depends on
            GoogleDataTransport (< 10.0, >= 9.4.1)

Please solve it quickly 😭😭😭

Facing same issue here

same here

I have same issue.

After further investigation, I can confirm that the issue is not with the library itself but with the latest update of MLKitCommon 11.0.0, which supports >= GoogleDataTransport 9.4.1, < 10.0.
Reference:
ML Kit Release Notes

I Fixed issue
overide pod file
$FirebaseSDKVersion = '10.29.0'

I Fixed issue
overide pod file
$FirebaseSDKVersion = '10.29.0'

@amonizaone would you mind slightly elaborating on this?
thanks,

I Fixed issue overide pod file
$FirebaseSDKVersion = '10.29.0'

Thank you!

I Fixed issue
overide pod file
$FirebaseSDKVersion = '10.29.0'

@amonizaone would you mind slightly elaborating on this?
thanks,

In ios/Podfile:

The real solution is not to override FirebaseSDKVersion but to just downgrade your firebase version from pubspec.yaml...
  firebase_core: 3.2.0
  firebase_analytics: 11.2.0
  firebase_crashlytics: 4.0.3
  firebase_performance: 0.10.0+3
  firebase_remote_config: 5.0.3

  firebase_core: 3.3.0 firebase_remote_config: ^5.0.3 mobile_scanner: ^5.2.3
These versions work great with me..


Some video can download success, some video can't download

youtube-dl 'https://www.youtube.com/watch?v=YQHsXMglC9A' -> Hello Adele
ERROR: Signature extraction failed: Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/youtube_dl/extractor/youtube.py", line 771, in _decrypt_signature
youtube-dl 'https://www.youtube.com/watch?v=Ue95eU4ZhTg' -> success
=> not all of youtube video can download mp3 ?

It's ok now for newest version. I will test more video.
Thansk

In the future, please do post the entire output you get when you run youtube-dl with the -v option.
Can you explain to us how we can improve the error message? It should already contain the above information.


not installing libqt4-core and libqt4-gui for Ubuntu 16.04 and onwards

Fixes #96

Thank you so much!


[Testing] enable windows cudatests

Enable unittest_windows_gpu.

add cuda_install (runtime) step.
add update cuda driver step.
add set cuda envs.
enable  TORCHAUDIO_TEST_FORCE_CUDA=1

These 4 changes have to work together to pass unittest_windows_gpu

@mthrok If it's not urgent. I'll split this PR to multiple small PRs to submit because Nikita might not approve big PRs like this.
I think it's a transient issue for unittest_windows_gpu_py3.9, it should be passed by rerunning it.
And it looks there's nothing with binary_linux_conda_xxx failure.

Looks good. All the logs of unitttest_windows_gpu_* shows RNNT-loss tests ran and passed.
Thank you @mszhanyi !
@malfet Could you take a second look?

I looked at the build logs and it do not look like CUDA code is compiled.
The Windows binary packages do not have CUDA.
@mszhanyi @malfet I know this is a lot to ask, but it would really help us if you can look into it. (as a different scope than this PR)

I looked at the build logs and it do not look like CUDA code is compiled.
The Windows binary packages do not have CUDA.
@mszhanyi @malfet I know this is a lot to ask, but it would really help us if you can look into it. (as a different scope than this PR)

Sure. I'll submit another PR for binary_windows_xxx_cuyyy

I looked at the build logs and it do not look like CUDA code is compiled.
The Windows binary packages do not have CUDA.
@mszhanyi @malfet I know this is a lot to ask, but it would really help us if you can look into it. (as a different scope than this PR)

Sure. I'll look binary_windows_xxx_gpu workflow tomorrow. there should be another PR for binary_windows_xxx_gpu workflow


QBO: Add explicit description for each export entity

Details

Same as https://github.com/Expensify/App/pull/42524. Now using the correct base
Fixed Issues

$ https://github.com/Expensify/App/issues/42520
PROPOSAL:
Tests

Preconditions:

Workspace connected to QBO

Go to Workspace > Accounting
Click Export > Export out-of-pocket expenses as
Verify that changing the export entity changes the label of the account option as follow:

Check -> Bank account
Journal entry -> Account
Vendor bill -> Accounts payable

Click on the account option
Verify that the title of the page you are navigated to matches the label

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

Offline tests

Same as Tests
QA Steps

Same as Tests

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

PR Author Checklist

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Screenshots/Videos

Android: Native

Android: mWeb Chrome

Networking issue

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@rushatgabhane @mananjadhav @hungvu193 @ikevin127 - any of you guys with QBO setup for testing able to take the C+ review of this for @eh2077?

@trjExpensify  I saw @rushatgabhane was already on another issue so I can take this one

@s77rt Is there any extra step that I need to do? That's how I saw when I opened Export out-of-pocket expenses as page.
https://github.com/Expensify/App/assets/16502320/548d65cd-6bf2-46c9-9b4a-7487a706c188

@hungvu193

Is there any extra step that I need to do?

You need to select an export entity (the "Export as" option)

should we hide that menu item if we don't have data for it?

Yes! @trjExpensify Do you know if we have an issue for that? (the account menu item is blank)

Cool cool. Waiting for confirmation from @trjExpensify then I can complete the checklist.

@hungvu193

Is there any extra step that I need to do?

You need to select an export entity (the "Export as" option)

should we hide that menu item if we don't have data for it?

Yes! @trjExpensify Do you know if we have an issue for that? (the account menu item is blank)

Hey, coming from this thread (https://expensify.slack.com/archives/C036QM0SLJK/p1716544065033859?thread_ts=1716238514.357639&cid=C036QM0SLJK)
the export out of pocket should never be empty, the default should be selected if the user has not self-configured it to be different.
And
The default option for out of pocket is Vendor Bill, for company cards the default is credit card.
@s77rt Can you update it? Thank you

@hungvu193

Is there any extra step that I need to do?

You need to select an export entity (the "Export as" option)

should we hide that menu item if we don't have data for it?

Yes! @trjExpensify Do you know if we have an issue for that? (the account menu item is blank)

Hey, coming from this thread (https://expensify.slack.com/archives/C036QM0SLJK/p1716544065033859?thread_ts=1716238514.357639&cid=C036QM0SLJK)
the export out of pocket should never be empty, the default should be selected if the user has not self-configured it to be different.
And
The default option for out of pocket is Vendor Bill, for company cards the default is credit card.
@s77rt Can you update it? Thank you

@hungvu193 This is not related to this PR. It should be handled separately. As far as I can tell this best to be fixed in the backend.

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

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

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

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

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

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

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

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

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

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

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

https://github.com/Expensify/App/assets/16502320/9358a0a0-fc3a-4f6e-8d29-c998bdd9f861

iOS: mWeb Safari

https://github.com/Expensify/App/assets/16502320/43e6c732-60b1-403b-b93d-2fad082568f2

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/16502320/4a3d9267-070c-4131-aa0b-ea6560971f72

MacOS: Desktop

@hayata-suenaga Do you want to final review before emerging?

🚀 Deployed to production by https://github.com/Julesssss in version: 1.4.79-11 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Code Cleanup: Improve gomega matchers in pkg/virt-api/webhooks

Change all Expect(len(var)).To(Equal(some-length)) to Expect(var).To(HaveLen(some-length))
in two files under pkg/virt-api/webhooks:

pkg/virt-api/webhooks/mutating-webhook/mutators/preset_test.go
pkg/virt-api/webhooks/validating-webhook/admitters/migration-create-admitter_test.go

If the expected length is 0, the the new matcher is BeEmpty()
Signed-off-by: Nahshon Unna-Tsameret<EMAIL_ADDRESS>None

/retest

/test pull-kubevirt-e2e-kind-1.22-sriov

/retest

/test pull-kubevirt-e2e-k8s-1.23-sig-network-nonroot


E11000 duplicate key error collection

Hello.
I have "E11000 duplicate key error collection: project_db.users index: id dup key..."
I investigate this and noticed, that problem in embeded models with cascade_callbacks: true option. This case actual only for new models.
Because this callback called inside insert workflow:
https://github.com/shrinerb/shrine-mongoid/blob/master/lib/shrine/plugins/mongoid.rb#L95
and inserted parent record before main insert executed.
Thanks!
Rails 6.0.1
Mongoid 7.0.5

Could you provide a self-contained script that reproduces a problem? At the moment I don't quite understand what caused the problem.

Hey @janko, my old tests for embedded models prove it! :)

@FunkyloverOne Great, which ones exactly? Could you extract the relevant code into a self-contained script that I can run (on Shrine 3.x and shrine-mongoid 1.x)?

@janko It's test from line 295.
Here: https://github.com/shrinerb/shrine-mongoid/pull/3/files#diff-e36773e2ddf368779ff45b39165f0665R295

@janko
This is a new rails application with sample models and form:
https://github.com/NikolayMurha/shrine_mongoid_error

@NikolayMurha Thanks, that helps. It would be ideal if there wasn't any Rails at all, but instead if it was just a script like this one. That would make it the easiest for me to debug and talk about a solution.

@janko https://gist.github.com/NikolayMurha/e18042d513809ec201fe331a254c0970

Thank you! 🙏 I'll make sure to look into it later today 👍

@NikolayMurha I minimized your script to the following:
require "mongoid"
require "shrine"
require "shrine/storage/memory"

Mongoid.configure do |config|
  config.clients.default = {
    hosts: ["localhost:27017"],
    database: "shrine_mongoid_test",
  }
end

Shrine.storages = {
  cache: Shrine::Storage::Memory.new,
  store: Shrine::Storage::Memory.new,
}

Shrine.plugin :mongoid

class Photo
  include Mongoid::Document
  include Shrine::Attachment[:image]

  embedded_in :gallery, polymorphic: true

  field :image_data, type: String
end

class Gallery
  include Mongoid::Document

  embeds_one :photo, class_name: Photo.to_s, autobuild: true, cascade_callbacks: true
  accepts_nested_attributes_for :photo, allow_destroy: true
end

Gallery.create(photo_attributes: { image: StringIO.new("image") })

I should be able to look into it tomorrow. If you or @FunkyloverOne have any ideas on what should be done, feel free to let me know 😃

It appears that Mongoid calls the #after_save callback on the embedded document (Photo in this case) before the actual insert of the parent document happened (Gallery in this case). That might make it difficult for shrine-mongoid to correctly support features like backgrounding. Thought that might not be directly related to this issue.
What I believe is happening here is the following:

Gallery.create is called 1⃣

this firstly triggers Photo.after_save
Photo.after_save promotes the attached file and persists the Photo again
Galley#save is called, which I think effectively calls Gallery.create again 2⃣ , as the Gallery wasn't yet persisted

this triggers Photo.after_save again, which should now no-op on Shrine side
Gallery document is inserted 2⃣

Gallery document is inserted 1⃣

I think that shrine-mongoid would somehow need to know whether the embedded document is being saved standalone, or as part of the parent record save.

Yes, the order in which Mongoid executes cascading callbacks is definitely very problematic and in my opinion incorrect. If we execute the following script:

Script
require "mongoid"

Mongoid.configure do |config|
  config.clients.default = {
    hosts: ["localhost:27017"],
    database: "shrine_mongoid_test",
  }
end

class Photo
  include Mongoid::Document
  before_save { puts "====== before_save Photo" }
  after_save { puts "====== after_save Photo" }
  embedded_in :gallery, polymorphic: true

  field :title, type: String
end

class Gallery
  include Mongoid::Document
  before_save { puts "====== before_save Gallery" }
  after_save { puts "====== after_save Gallery" }

  embeds_one :photo, class_name: Photo.to_s, cascade_callbacks: true
  accepts_nested_attributes_for :photo, allow_destroy: true
end

Gallery.create(photo_attributes: { title: "Image" })

We can see that Mongoid executes actions in the following order:

Photo.before_save
Photo.after_save
Gallery.before_save
Gallery persist operation
Gallery.after_save

So, Photo.after_save is in fact executed before the photo is actually persisted, which is in my opinion incorrect behaviour. I don't see any callback we can add to Photo which will get executed after it has been persisted, which is something that Shrine needs.
Perhaps we can add the callback to the top-most parent model, in this case Gallery. I will investigate that option :thinking:

I'm not managing to get back to this issue. @FunkyloverOne Would you perhaps be willing to investigate this? You seem to be very knowledgeable in this area, and already had other contributions here 😃

Hey @janko, I believe what you said is what we need to do:

Perhaps we can add the callback to the top-most parent model, in this case Gallery. I will investigate that option

And yes, I will actually have time for it soon. :wink:
The only thing that bothers me now, is I kinda used to understand how Shrine 2.x worked, but now it's all so different and seems harder. That's gonna be a challenge :smile:

Yeah, some bigger changes needed to be made, but the core principles largely remained the same, mostly the code got reorganized (e.g. model integration being extracted into plugins). I guess the biggest relevant change was the persistence/backgrounding rewrite.

@janko how about 2 separate plugins in this gem?
What we have right now should be mongoid_root, which works perfectly with full set of features for attachments in "root" (non-embedded) models.
And we could have a second one like mongoid_embedded, which is essentially the same, but without mongoid_persist & mongoid_reload functionality.

@FunkyloverOne I'm fine with separating these two things. Could we perhaps make it a plugin option instead?

Meanwhile, I've figured out that _children method returns a flat array which already includes deeply nested ones, yay!

And we should only perform that fancy "reload" for an embedded record if it is already persisted within its parent.

BTW, we might use set method for atomic writes.
Here's more info, just in case: https://docs.mongodb.com/mongoid/current/tutorials/mongoid-persistence/#atomic

@janko why do we persist after save though?
https://github.com/shrinerb/shrine-mongoid/blob/v1.0.0/lib/shrine/plugins/mongoid.rb#L84