[WIP] Add simple support for a generic git repository support.

Design
This works by instead of passing a {user}/{repo}/{branch} spec we instead pass the
full url to a git repo with a fragment as denoting the sha we wish to build
Todo

[ ] Add tests
[ ] Discuss spec proposal
[ ] Enfore that the spec's fragment is actually a SHA1

Out of scope
Credential propagation.  All repos used in this way must be publicly accessible for now.
UI?

So we would have URLs like: https://staging.mybinder.org/v2/git/github.com/betatim/appmode?filepath=%2Fapps%2Fexample_app.ipynb#someshahere ?? Maybe we could keep the format as before except that it does not support branch/tag names and instead only SHA1s?

Well almost like that, there is some more ugliness with adding in the scheme etc, which all needs to be escaped in any case.  We could also stick more things into query params instead of into URL components.
Given that under say, gitlab there can be namespaces that are nested as a/b/repo and users can have branches with a / in them we probably have to since otherwise it would be impossible to disambiguate
Currently, this is what I'm passing is something like this:
repo_kind = 'git'
url = 'https://git.the.companyname.com/namespace/notebooks.git#f6f3fcab2b3b5358ebce0c944d1eb1aba400156a'
url = binder_url + ‘/build/{repo_kind}/{spec}’.format(repo_kind=repo_kind, spec=urllib.parse,quote(spec))

@minrk @yuvipanda What are your thoughts on this?

(I also agree this is an awesome addition...will try to take a look at the code in the next few days though if @yuvipanda gives a +1 them I'm happy w/ it)

@willingc I dont think that the deployed binderhub instance should support the GitProvider, however this is a useful thing for people deploying this behind a firewall and wanting to have it hit internal repositories if they aren't using gitlab/github.

@yuvipanda ready for round 3

As I mention before, this is a really useful addition so many thanks @mariusvniekerk ! A few comments in there to supplement whatever others suggest! Some questions are quite simple so if they're addressed feel free to delete!

@willingc ty for the reviews!

It feels a bit like we are scattering functionality among a number of classes (RepoProvider, GitHubRepoProvider, GitLabRepoProvider, BasicGitRepoProvider). Do we need a BasicGitRepoProvider since both GitLabRepoProvider and GitHubRepoProvider both inherit from RepoProvider?

I think it's ok right now, since I don't think there's any code duplication yet. Introducing another layer of inheritance is not worth it right now IMO. My usual cutoff for adding a layer to the inheritance chart is when you have 3 classes that share almost copy-pasted code. I don't think any of our providers have copy-pasted code yet, so we're fine I think.

@mariusvniekerk said:

@willingc I dont think that the deployed binderhub instance should support the GitProvider, however this is a useful thing for people deploying this behind a firewall and wanting to have it hit internal repositories if they aren't using gitlab/github.

I actually think we should deploy this to the public mybinder.org instance too! It satisfies our technical criteria (fully cache-able by enforcing SHAs) and allows users from OSS projects that don't use gitlab or github or a supported provider yet to use it.

@yuvipanda Good point.  There are likely several notebooks currently stuck on git repos that live on academic servers.  Binders for all!

So the only remaining issue really is about long slug names.  This is a general problem and should probably be solved where we invoke repo2docker.  Not sure if we want to incorporate that in this PR

IMO figuring out how to handle long build slugs doesn't need to be in this PR as it is something we'll need to think about for other providers as well, and I don't wanna block this useful contribution because of it. I opened an issue to talk about the slugs.
For this PR, how would long slugs be handled? Are they just cut off or are we just not handling them at all? I don't remember the details of the conversation but wasn't the problem that kubernetes would break if the slugs were too long?

Regarding long build slugs: where do you think they surface/cause a problem?
The only place I can think of is when they are used as pod names, which I think always goes through this bit of code where the slug is hashed and the short+hash version is used.

@betatim I believe docker images also have some limits on name length

I've been testing mostly the build endpoint directly

@mariusvniekerk can you tell me what you mean by that testing the build endpoint directly?

Ah, nvm me I understand what you meant now! I've been away from this too long lol

@mariusvniekerk if we can iterate on https://github.com/jupyterhub/binderhub/pull/298 and simplify the build slugs here, I think this is ready to merge. We can work on the UI side of this in a different patch.
Excited to get this rolling!

+1 to merge
On Tue, Nov 21, 2017, 5:58 PM Yuvi Panda<EMAIL_ADDRESS>wrote:

@mariusvniekerk https://github.com/mariusvniekerk if we can iterate on
#298 https://github.com/jupyterhub/binderhub/pull/298 and simplify the
build slugs here, I think this is ready to merge. We can work on the UI
side of this in a different patch.
Excited to get this rolling!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jupyterhub/binderhub/pull/266#issuecomment-346219956,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABwSHYVvfKwIbdsVOrWLJKU7PszaU-K4ks5s43_hgaJpZM4Qaonp
.

Congrats and thanks for the contribution @mariusvniekerk :cake:

seriously! awesome contribution @mariusvniekerk !

🦃 ! :)


Internal code of profit viz function

Hi Folks ,
I have added my code to visualize profit percent for a company and benchmark ticker. Please have a look and give me your feedback. Attached is the image of how the line plot looks. I have also modified few error print messages for better understandability in 1st and 3rd functions.

I am working on test cases will be pushing them to github soon


Attachments

How much work would it be to support attachments? We would like to migrate from cordova-email-composer but require attachments being sent.

Please send a link to the cordova plugin you are currently using

https://ionicframework.com/docs/native/email-composer

Is adding an attachment in the mail something that wil be added ?

Version 1.2.0 was just released with attachment support and updated to capacitor 4 😊 Sorry for the long waiting time


updated README to show versions of dependencies required for graphql-server-koa

Exact versions commented after imports.

Why next and not latest? Are the stable versions not compatible with Koa 2?

koa-router@latest appears to be incompatible, but koa-bodyparser@latest works fine.

koa-bodyparser@next
koa-bodyparser@latest

koa-router@next
works
works

koa-router@latest
breaks
breaks

OK, sounds good, let's put this in for now.


Allow table name in fragments

I have some fairly complex queries, and I often have to resort to queries. For simple ones, having something like fragment("column = ?", ^value) is sufficient, however, once the joins get into the picture, there is always a chance for column ambiguity (especially if you're joining with the same table). Ecto generates queries with table aliases like f0. Is there any way we can get this in fragments?

I wish ecto would support something similar to ActiveRecords find_by_sql

It already supports both:

fragment("? = ?", p.column, ^value)

Ecto.Adapters.SQL.query(repo, "ANY SQL YOU WANT", [])

The second one is available only on master.

For others trying to access jsonb data, you can do
fragment("?->>'json_key' = ?", a.column_name, ^some_value)
results in a0."column_name"->>'json_key' = ($1) in your query

Is there a way to use custom/varying column names in fragment? I mean the situation where I have 2 almost similar tables coming from different databases. Only couple of columns are different for historical reasons and I use those column names inside fragment(s). I want to unify Ecto queries to both of those tables as they were executed separately before.
Using simple questionmark notation fragment("?", column_name) causes column name to be appended into fragment however column ends up wrapped into double-quotes which is not desired.

causes column name to be appended into fragment however column ends up wrapped into double-quotes which is not desired.

Why not?  That's what column names should be overall?
Also, should ask this on the Elixir forums, it won't really get visibility in a dead issue.  :-)

@OvermindDL1 Thanks for the tip. I am going to ask on Elixir forums.


Error fast when creating invalid foreign relation

This PR ensures we error hard and fast when someone attempts to incorrectly define a foreign relation.
For example, this:
    articles: jsonApi.Joi.belongsToMany({
      resource: "articles",
      // as: "author"
    }),

Will now result in:
/repos/jsonapi-server/lib/ourJoi.js:33
  if (!config.as) throw new Error("Missing 'as' property when defining a foreign relation");
                  ^

Error: Missing 'as' property when defining a foreign relation
    at Joi._validateForeignRelation (/repos/jsonapi-server/lib/ourJoi.js:33:25)
    at Joi.belongsToMany (/repos/jsonapi-server/lib/ourJoi.js:49:7)
    at Object.<anonymous> (/repos/jsonapi-server/example/resources/people.js:19:27)

This helps with #90

Looks good! :+1:

:+1:


Add cancel and cancel all actions to plugin dialog and improve UI

Description

Type of change

[ ] Bug-fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

References

Fixes https://github.com/napari/napari/issues/3070
How has this been tested?

[x] example: the test suite for my feature covers cases x, y, and z
[x] example: all tests pass with my change

Final checklist:

[ ] My PR is the minimum possible work for the desired functionality
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] If I included new strings, I have used trans. to make them localizable.
For more information see our translations guide.

@isabela-pf I cannot set the x. icon to disappear due to some bug in Qt, but It is effectively disabled (clicking on it won't do anything) until all processes are done, or cancelled.

Thanks for testing and the review comments @tlambert03 🚀

Cool! Thanks for working on this, @goanpeca! Does the above gif show cancelling an update too? From what I can see, I think these interactions are making sense.

@isabela-pf I cannot set the x. icon to disappear due to some bug in Qt, but It is effectively disabled (clicking on it won't do anything, see gif) until all processes are done, or cancelled.

Do you mean users can't close the dialog while installing or updating, or something else?

(Side note for @tlambert03: I love the feedback "I tried to break it but could not :) ")

Does the above gif show cancelling an update too?

I may have omitted that one :thinking: but yes, it does work.

Do you mean users can't close the dialog while installing or updating, or something else?

Correct, but now they have a cancel all actions button, and then they can resume :)
Also I left the button on the bottom, cause it felt more global, otherwise it felt like it only applied to the list bellow and the one above :)


[stable/seq] Version change to GA and add baseURI setting

- Bump SEQ to GA 5.0 image tag
- Add setting for BASE_URI - Needed for Ingress and Azure Active Directory Authentication

What this PR does / why we need it:
Bumps SEQ image tag to GA version (5).  Adds environment variable setting for BASE_URI which is needed to support Ingress and Azure AD.  Without overriding and specifying HTTPS in the URL, SEQ will give a login redirect URL with HTTP and AAD only supports login redirects to HTTPS
Checklist

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/chart])

/ok-to-test

/lgtm


Request for Documentation: How is away status triggered

Mattermost user eric.sethna from https://community-daily.mattermost.com has requested the following be documented:
Afaik the away status rules are similar to this, we should work on documenting these to make this more visible.

Desktop v4.4+ bases activity on any mouse movement on the computer (so you'll stay online as long as your mouse is moving). If your mouse is still for 5 minutes or more, you'll be set to away

Browser is based on activity in Mattermost itself, meaning you are set to away:

1. When the tab is unfocused for 5 minutes
2. You have not typed or switched channels for 5 minutes

Would need dev to confirm cc//@deanwhillier then we should doc this.

See the original post here.
This issue was generated from Mattermost using the Doc Up plugin.

Thanks, @esethna. It looks like the update would be here. @deanwhillier, would you be open to confirming this behavior ahead of the update being made? Thanks!

Correct, that would be the right place. We should try to be as detailed as possible for the ambiguous terms. ie what does "interacting" mean in the case of browser vs desktop

I'd propose a slight adjustment as follows:
Desktop v4.4+ bases activity on any user interaction on the computer, so if you are typing or using your mouse, your status will remain online. Your status will be set to away only after 5 minutes of inactivity.

Browser is based on activity in Mattermost itself, meaning you are set to away when:

1. You have not typed or switched channels for 5 minutes
2. The tab is unfocused for 5 minutes
3. The browser is in the background or minimized for 5 minutes

@justinegeffen I would love to take this up

That's awesome news, thanks @fakela! It looks like there should be enough info to go on for now but if you get stuck or anything is unclear please don't hesitate to ping me. :)


Cannot set property 'reporterOptions' of undefined

When I use the decorate method, I get this error.
It appears to be happening because Mocha is expecting to have a property called 'options', so it fails when it tries to set 'reporterOptions' on it.

Thanks for the fix.. The fix is now published to npm..


W1A - steps describing EnMasse login seem to change a little bit after EnMasse update

Description
First step in W1A says:

Log into EnMasse by selecting the OpenShift button on the log in screen and accepting the permissions request.

But it looks there's no more any OpenShift button
Expected Behavior
Actual Behavior
Steps to Reproduce

Specifications

Browser:
Browser version:
OS:

Additional Notes
PS.: Add images and/or .gifs to illustrate the issue

Addressed in https://github.com/integr8ly/tutorial-web-app/pull/267

Closing this one since the #267 is merged. Please, @tremes feel free to re-open case the #267 did not attend your expectation here.


Release 2.1.102

On the docket:

[ ] Pull in Pip fixes. #1805

Unlikely / backlog:

[ ] PEX_INHERIT_PATH+default shebangs don't interact well with virtualenvs #1344
[ ] Pex interpreter cache is not upgrade / downgrade safe. #1176
[ ] Provide a better resolve error message for a Platform DistributionTarget when --resolve-local-platforms. #1070
[ ] Remove PEX_PYTHON_PATH from build time interpreter selection. #1075

Split off from "Release 2.1.101 #1857" to make way for a fix for #1861.


Change some members from protected internal to just internal

These protected internal members returned or took as parameter internal entities, which will soon be an error in Uno (matching C#). A member being protected internal means that it's visible to derived classes outside the package, but this wasn't really possible for these members since they were mentioning internal entities.
This PR contains:

[ ] Changelog
[ ] Documentation
[ ] Tests

Changelog added.


TransparencyEnabled is gone?

I might be blind but TransparencyEnabled seems to be gone CachedImage for Forms in the code. Is there a replacement for it?

Ah wiki still refers to https://github.com/luberda-molinet/FFImageLoading/wiki/Xamarin.Forms-API#transparencyenabled-bool-default-null when it should be updated for BitmapOptimizations

I'll update the wiki. Thanks for noticing.
BTW: everyone can edit wiki. Cheers.


StaticWebAssetsFile provider doesn't support windows style paths

Looking at another issue (https://github.com/aspnet/AspNetCore/issues/15278) I've realized that we don't support windows style paths in the static web assets file provider. I'm leaving the comment here so I can attach it to a new issue, and triage it separately.
Originally posted by @javiercn in https://github.com/aspnet/AspNetCore/pull/14803/review_comment/create

I think this is worth addressing because querying the WebRootFileProvider with a windows style path will cause it to fail when using static web assets.
I believe to support this we need to normalize the path further and replace \ with / at the very least, but it also presents the issue that the static web assets don't behave like the the physical file provider.
For example, different results will be produced with the following snippet depending on whether its the physical file provider or the static web assets file provider:
var rootContents = provider.GetDirectoryContents("");
var files = new List<IFileInfo>(rootcontents.Where(e => !e.IsDirectory));
var directory stack = new Stack<IFileInfo>(rootContents
    .Where(e => e.IsDirectory).Select(d => provider.GetFileInfo(d.Name).Cast<DirectoryInfoBase>());

while(stack.TryPop(out var currentFolder))
{
    var contents = currentFolder.EnumerateFileSystemInfos();
    files.AddRange(contents.Where(e => !e.IsDirectory));
    stack.Push(contents.Where(e => e.IsDirectory));
}

Fixed by #14803.


how to get TimeSlotLocation info? expecially info on the already scheduled booking record?

[Enter feedback here]

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

ID: fa66caf7-f362-ce17-a1f5-877e42d2dae0
Version Independent ID: 96958b56-53b8-7b21-166c-7b70b0a1df95
Content: Search resource availability and create bookings for requirement groups in Universal Resource Scheduling in Dynamics 365 Customer Service
Content Source: ce/customer-service/universal-resource-scheduling.md
Service: dynamics-365-customerservice
Product: dynamics-365
GitHub Login: @lalexms
Microsoft Alias: laalexan

Hello @lucaways , there isn't any feedback on this issue. Closing accordingly, but please open a new issue if you have concerns. Thanks.


Ruby Capstone Project

Description of project taska
Team Members

@sheezu900
@Akorede3133
@Wils-FOURR-speed

Implemented Tasks:

Divided the Capstone work according to the Team members' tasks provided in the Ruby group capstone - Catalog of my things: divided requirements file.
Following the UML class diagram, created separate classes for Item, Book, MusicAlbum, Game, Author, Label, Genre.
Implemented the constructors for the classes with the specified properties.
In the Item class, the custom setter methods for the author, label and genre were added.
Made sure that Game, Book and MusicAlbum classes are as sub-classes for the parent class Item
Implemented the Can_be_archived? method for Book, MusicAlbum, Game classes overriding the parent class method.
Added unit test cases for the classes.
Created the supporting modules BookModule, LabelModule, MusicAlbumModule, GenreModule, GameModule, and AuthorModule to implement the listing and creation operations.
The Book, MusicAlbum and Game items take the data for the associating methods label, genre and author.
Updated the classes with to_json method that defines the instance object to JSON representation.
Using the File methods in ruby, the user inputs data about the selected item like book data or music album data is stored and used to list the data present in the .json files.

Hi  Team
I'm Tadesse Alemayehu your reviewer for this PR. :hand:
Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉

Highlights

[x] You have written a clean code ✅
[x] Functrional app. ✅

Optional suggestions

N/A

Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


Log CAN data

Resolves #280

Progress

[x] sensors
[x] actuation angle
[x] battery

[x] battery msg

@hhenry01 @derain12 for your reference.
Only takes a couple lines to add another ROS message, see my commit diff

Should be tested in dry land testing before merging in. Details in next dry land testing plan


update to v23.5.9

Compared to the previous release v23.5.8, version 23.5.9 causes a build failure while building a test file.
  --- stderr
  CMake Warning:
    Manually-specified variables were not used by the project:

      CMAKE_ASM_COMPILER
      CMAKE_ASM_FLAGS
      CMAKE_C_COMPILER
      CMAKE_C_FLAGS

  /Users/chip/code/chippers/flatc.rs/flatbuffers/tests/64bit/offset64_test.cpp:17:10: fatal error: 'test_assert.h' file not found
  #include "test_assert.h"
           ^~~~~~~~~~~~~~~
  1 error generated.
  make[2]: *** [CMakeFiles/flattests.dir/tests/64bit/offset64_test.cpp.o] Error 1
  make[2]: *** Waiting for unfinished jobs....
  make[1]: *** [CMakeFiles/flattests.dir/all] Error 2
  make: *** [all] Error 2
  thread 'main' panicked at '
  command did not execute successfully, got: exit status: 2

  build script failed, must exit now', /Users/chip/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.50/src/lib.rs:1098:5
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

closed with 5cd72e63bf6c4de4e08a61110bfd8a4751fe609c


Update file

Using the @Nullable annotation for all methods which may return null in the file which I altered.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/3376/
Test PASSed.

alluxio-bot, merge this please


[GSSoC'23] Wishing Model completed

Title and Issue number

Title - Wishing Model
Issue number - #1731
Close #1731

Checklist:

[x] I have mentioned the issue number in my Pull Request.
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have created a helpful and easy to understand README.md

@pranjay-poddar @Saurabh-kumar09 Sirs, please review my pull request for a successful contribution under GSSoC'23
I have done with this python model. On adding the more songs on the musics directory will expand this bot model.
This will give the children a happiest gift, smile to the youngers, etc. due to wishing in our coding style 😎

@pranjay-poddar @Saurabh-kumar09 @MohitGupta121 Sir, I will mind it and never adding large files again.
Please again review my pull request and requested to merge it into the main branch for a successful contribution under GSSoC'23 program
Thanks

@TusharKesarwani Sir, Could you tell me how this project comes under Plagiarism. Is open source not a platform to learn or just made for applying plagiarism ?


Enable the FEEDSTOCK_DIR environment variable in tests

Checklist before submitting

[x] Did you read the contributor guide?
[x] Did you update any affected documentation?
[ ] Did you write any tests to validate this change?

Description
Enables the FEEDSTOCK_DIR environment variable to be referenced from within an Open-CE test file. This will enable tests to use files that are stored within the feedstock.
Review process to land

All tests and other checks must succeed.
At least one maintainer must review and approve.
If any  maintainer requests changes, they must be addressed.

Codecov Report

Merging #234 (c0856f1) into master (af5a7f5) will increase coverage by 0.02%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #234      +/-   ##
==========================================
+ Coverage   94.07%   94.08%   +0.02%
==========================================
  Files          16       16
  Lines        1146     1149       +3
==========================================
+ Hits         1078     1081       +3
  Misses         68       68

Flag
Coverage Δ

unittests
94.08% <100.00%> (+0.02%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

open-ce/test_feedstock.py
99.18% <100.00%> (+0.02%)
:arrow_up:

Continue to review full report at Codecov.

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

Codecov Report

Merging #234 (c0856f1) into master (af5a7f5) will increase coverage by 0.02%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #234      +/-   ##
==========================================
+ Coverage   94.07%   94.08%   +0.02%
==========================================
  Files          16       16
  Lines        1146     1149       +3
==========================================
+ Hits         1078     1081       +3
  Misses         68       68

Flag
Coverage Δ

unittests
94.08% <100.00%> (+0.02%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

open-ce/test_feedstock.py
99.18% <100.00%> (+0.02%)
:arrow_up:

Continue to review full report at Codecov.

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

Codecov Report

Merging #234 (c0856f1) into master (af5a7f5) will increase coverage by 0.02%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #234      +/-   ##
==========================================
+ Coverage   94.07%   94.08%   +0.02%
==========================================
  Files          16       16
  Lines        1146     1149       +3
==========================================
+ Hits         1078     1081       +3
  Misses         68       68

Flag
Coverage Δ

unittests
94.08% <100.00%> (+0.02%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

open-ce/test_feedstock.py
99.18% <100.00%> (+0.02%)
:arrow_up:

Continue to review full report at Codecov.

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

Codecov Report

Merging #234 (2d60f55) into master (af5a7f5) will increase coverage by 0.01%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #234      +/-   ##
==========================================
+ Coverage   94.07%   94.08%   +0.01%
==========================================
  Files          16       16
  Lines        1146     1148       +2
==========================================
+ Hits         1078     1080       +2
  Misses         68       68

Flag
Coverage Δ

unittests
94.08% <100.00%> (+0.01%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

open-ce/test_feedstock.py
99.17% <100.00%> (+0.01%)
:arrow_up:

Continue to review full report at Codecov.

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

Codecov Report

Merging #234 (2d60f55) into master (af5a7f5) will increase coverage by 0.01%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #234      +/-   ##
==========================================
+ Coverage   94.07%   94.08%   +0.01%
==========================================
  Files          16       16
  Lines        1146     1148       +2
==========================================
+ Hits         1078     1080       +2
  Misses         68       68

Flag
Coverage Δ

unittests
94.08% <100.00%> (+0.01%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

open-ce/test_feedstock.py
99.17% <100.00%> (+0.01%)
:arrow_up:

Continue to review full report at Codecov.

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

Codecov Report

Merging #234 (2d60f55) into master (af5a7f5) will increase coverage by 0.01%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #234      +/-   ##
==========================================
+ Coverage   94.07%   94.08%   +0.01%
==========================================
  Files          16       16
  Lines        1146     1148       +2
==========================================
+ Hits         1078     1080       +2
  Misses         68       68

Flag
Coverage Δ

unittests
94.08% <100.00%> (+0.01%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

open-ce/test_feedstock.py
99.17% <100.00%> (+0.01%)
:arrow_up:

Continue to review full report at Codecov.

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


Allow first argument to be an array of file paths

Rather than being limited to submitting a string or a single file to
PandocRuby, this accepts an array of file paths as well. All of the
files are read and concatenated into a single document.
Fixes alphabetum/pandoc-ruby#4.

Thank for doing this!
I started looking into all this the other day prior to this pull request, and came across some things that got me into rethinking all of the option handling. I'll document some of that here.
Executables
Pandoc previously came with a few scripts (markdown2pdf, html2markdown, hsmarkdown) that handled some of the conversions. These have since been removed over the years, and now the only executable is the pandoc one.
As a result, it was possible to remove this logic, which simplifies things. That comment was here:
https://github.com/alphabetum/pandoc-ruby/commit/ebabdf1ddd779989249fff2bd62569be7079d408
string input (sdtin) vs file input (arguments)
Pandoc takes two main types of inputs: a string of content via stdin and file paths via arguments.
The way the PandocRuby gem has been working so far is that the first argument is always expected to be a string that contains the text to be converted or, if allow_file_paths has been set to true, a string that contains a file path. PandocRuby would then check for a valid file path by determining if a file existed at that path and, if so, would read the file.
The first issue with reusing the first argument that way is that string input can't be easily used in the same program with file inputs since we have to guard against external content (eg, user-supplied content) containing a file path. There currently is no way to easily guard against this if allow_file_paths has been enabled, leaving it up to the developer to avoid using both approaches in the same application. It's also not very clear that this is an issue and could probably slip through the cracks.
The second issue is that the PandocRuby library is reading files at a stage that it doesn't need to. Really, it seems like it would make more sense to just pass those paths to the pandoc executable and let it deal with those file paths itself.
What I'm leaning toward now is separating them out to something like this:
PandocRuby.new("# A String", :option1 => :value, :option2)
PandocRuby.new(file: "/path/to/file.md", option1: 'value', :option2)
PandocRuby.new(file: ["/to/file1.html", "/to/file2.html"], option1: 'value', :option2)

Basically, if the first argument to #new or #convert is a string, pass it to pandoc as stdin, and if it's a hash (not keyword argument, since that would leave 1.9 unsupported) with :file as a key then accept either a string containing a path or an array of strings containing paths.
This approach makes it possible to remove the allow_file_paths business and have everything be more explicit. I only have it partially implemented locally, though, so I don't know if there are any problems with my logic yet or if it ends up being more complicated.
Anyway, those are my incomplete thoughts so far. I'm not sure if there's anything I'm missing yet.

Awesome! That sounds like a much better solution, and you're right: now is a great time for it.
In the meantime, I'm working on building out tests for Pandoc's new readers and writers. Hopefully, these will be useful in working out this significant update!


Uploaded EItem file disappearing

Package version (if known): Any recent version
Describe the bug
Plz note I have not used ILS extensively, but evaluating it and below is an issue I came across.
When an EItem file is uploaded, it seems to be saved into the ILS db/system properly whereby it is attached to the Document and am able to download it again. But if I reboot the device, the file is gone leaving a ghost link to the file in ILS. I imagine it is because the /tmp directory got cleared after the reboot and the uploaded file was prolly stored in the /tmp filesystem. Or it may be due to some similar short lived storage, but the bottomline is the uploaded files are not persisting in the DB.
Steps to Reproduce
You can upload any file for a Document EItem from the frontend React app and can check it.
The setup is local with Docker services running both server and web client on Mac
Expected behavior
It seems like the initial problem is the persistence of these files. From what I can tell, the uploaded file is stored in the backend file system. Maybe it is designed to be persistent by mapping the file system into the server Docker container (but not being done when running non-containarized server locally).  But regardless, the pointers to these buckets are stored in Postgres and the files being outside of it, the referential integrity is broken. Ideally, the files should be uploaded into/within Postgres itself (as BLOB or equivalent) instead of into the file system and that should solve the reboot persistence issue. There are many more reasons to have all the data (including files) reside inside the database without external references such as security, compliance, data isolation, backup & replication, etc.
Screenshots (if applicable)
Additional context
I am not too familiar with ILS, but testing it now again for potential use by a large client. You may plz correct me if any of the above observations/understanding is not right or there are other/better ways to realize above outcome. But it sounds to me like an important and required fix. Plz advise.
Thanks, Tim

Hello!
The Problem is probably caused by the fact you are using a local, preview version - in this case files are not persistent since the preview is not meant to be production ready.
The storage configuration for the production installation must be taken care of separately as a part of proper infrastructure set up, and yes it should be persistent (the production deployment is not part of the software itself, we only provide some guidelines in the documentation).


Move "sandbox" code to its own repository

Motivation
As this repository is becoming more and more critical for decision-making and documenting the whole project, I think it would be a good idea not to mix the documentation with the experimental code. I find it more straightforward and consistent that such source code would live in its repository.
Feature

create the falcosecurity/contrib repository
Move the following directories (preserving the git history) to the new repository:

https://github.com/falcosecurity/evolution/tree/master/examples
https://github.com/falcosecurity/evolution/tree/master/integrations
https://github.com/falcosecurity/evolution/tree/master/usage-metrics/distribution-logs (or to test-infra?)

Update the README.md accordingly

Alternatives
We might altogether remove the sandbox level. But I'd like that since such experimental code is still important to test-drive ideas or to provide examples.
Additional context
contrib is the former name of evolution and has also been suggested by @maxgio92, so I really believe it's the perfect name :smile_cat:

As discussed we're on the same page and I like the idea to have a contrib-dedicated repository.

I like this idea!

I'm working on this
/assign


Flag for CI which ensures no formatting happens

Thinking through how rustfmt might be integrated into the CI of a project it might be easiest to have a flag like --verify which causes rustfmt to return a nonzero exit code if any changes were made. That is, all PRs would fail to land unless they'd been properly formatted by rustfmt.
Does that sound reasonable to others?

This is a fairly high priority issue: https://github.com/rust-lang-nursery/rustfmt/issues/860. There's already a PR for this too. I don't know in what state it currently is though. It needs a rebase at the very least.

Oh oops, I looked around but failed to find that, thanks for the pointer and sorry for the noise!


Support a general CUE controller which can glue more than K8s CRDs

Support a general CUE controller which can glue more than K8s CRDs:

It should support more protocol such as docker image call, standard restful API call, go function call, etc.
We can glue more cloud native capabilities with only writing CUE configs and rely on the CUE controller.
The capabilities should specify input/output so users can still use it easily by using Application.
It could integrate with workflow/pipeline easily.

We have implemented such a controller, it was the Application controller itself which contains a workflow.


add wxdebugger

Thank you for the contribution. It needed some fixes, so they were made in 358fe7df2d4e8ff660b62f7edd4733f428335191. Your contribution is still included (and still credited to you), with the appropriate modifications. Please feel free to ask about any of the changes.


[Support] Lost access to an account

Details

Project URL: https://readthedocs.org/projects/micropython-pfalcon/
Build URL (if applicable):
Read the Docs username (if applicable): paul2

Expected Result
Being able to log in, or use "forgot password" feature specifically for that account.
Actual Result
I'd like to log in to that account, but I don't have passwork on a record, nor trying "forgot password" feature with my existing emails works. I don't know how I ended up having that account. Perhaps, it was created to quickly try out something, and was forgotten. Nor I have idea why no my email works with "forgot password" - perhaps, few years ago RTD could allow to register an account without email? What I actually would like to do is to transfer the project on this old "paul2" account to https://readthedocs.org/projects/micropython-pfalcon/ to my active account "pfalcon" (the actual problem is that I can't create a project by that name in my new account, because it's taken by that old account).
If anything can be helped here, I'd appreciate it. Thanks!

@humitos can help here.

@pfalcon I sent an email to the account registered under paul2. Let me know if you receive that message.

Closing as stale. Please, ping me if you need more help with this.


!title command

Get title of current conversation: !title
Set title on current conversation: !title new title
Set title on a conversation in the history list (by number): !title 3

This PR has been working perfectly for me for a week, and I'm satisfied with the code, I'm going to go ahead and push it, please let me know if there are any issues!


SQL2019-SSEI-Expr.exe is unable to find the German installer file on the server

(I didn't know where to report this issue, so I am doing it here, even though it is not .NET related.)
When I try to install the SQL Server 2019 Express Edition on a machine, and select German after when running the SQL2019-SSEI-Expr.exe file, an error appears for the FullDownloadActivity that the SQLEXPRADV_x64_DEU.exe (German installer file) could not be found on the server.
Selecting English instead works as expected and downloads and installs fine.
Looks like the file got moved server-side and the installer wasn't updated (or something similar).
Further technical details
Installer file version: 15.2002.4709.1
SQL Server version: SQL Server 2019 Express
Operating system: Windows 10

Hi @lauxjpn, we would recommend to submit your feedback directly from the SQL2019-SSEI-Expr installer (the smiley face in the upper right)

other options would be listed on  SQL Server help and feedback

@JRahnama Thanks!


Set up headless Wordpress CMS

Basic Information
Set up a headless Wordpress CMS backend so that the client can easily edit the content. Useful information here.
Rough task list:

[x] Set up a Wordpress server with Docker (see official Docker image)

[x] Dockerise Next.js frontend (see official Next.js Docker examples here)
[x] Set up nginx reverse proxy

[x] Set up API interface for frontend (e.g. Wordpress REST API or wpgraphql)
[ ] Integrate some frontend pages to query content from Wordpress server

[ ] Write documentation so others understand how to do this too

[ ] Look into ISR (?)
[ ] Before merging: check to see if any more documentation needs to be written / updated, and do so

Other Information

For now I've just set up the default Wordpress REST API and not wpgraphql. We'll see if that needs to be changed when we get around to trying to integrate with the frontend.

Two questiones: 1.Can the client edit the content on the page directly, or do they need to use WordPress?
2.Do we need authentication to ensure that only the client can edit

The motivation for this issue is that the client needs a way to easily edit the content of the website. In a standard Next.js website, there's no easy way to do this (short of editing the code itself and redeploying). The current site is built in WordPress, so the client has some experience updating content through this interface so I think it'd be good to use WordPress as a CMS for our version as well. So, this issue revolves around essentially implementing WordPress into the site such that content is fetched from the WordPress database and can be easily updated via the WordPress admin UI.
So, in short:

They'll edit it through the WordPress admin portal
WordPress already implements an authentication portal for us

I'll try show you in person tomorrow so it'll hopefully be a bit easier to understand. @sersangn has also already been working on this issue a little bit, so I'll make sure you find each other and are able to work together on the issue.

Thanks for the explanation. I've got it now and am ready to proceed. Looking forward to discussing it further tomorrow!😊

A potentially useful plugin that would make it more convenient to edit things in WordPress:
ACF Plugin by WP Engine


Add RVFI to User Manual

This task is no longer needed now that #185 has been expanded to include this work.


Package fails to compile. Missing 'GluonGui' namespace not included.

The Runtime/Simulation/Simulation.cs contains line
using GluonGui.WorkspaceWindow.Views.WorkspaceExplorer.Configuration;

it causes the compiler error:

Packages/com.shijbey.anansi/Runtime/Simulation/Simulation.cs(1,7): error CS0246: The type or namespace name 'GluonGui' could not be found (are you missing a using directive or an assembly reference?)

Just saw this issue. It's from an unused using statement in on of the files. I'll put out a patch.

Just pushed an update that should fix it. Try updating your Anasi version in your manifest.json file to 0.5.1.


Trigger Cantabular dataset import in Florence

What

Show/hide file input fields depending on recipe format
Increased guard clauses to handle properties that are not returned for Cantabular types
Updated PUT method to contain links array if the format is Cantabular
Added a failed message if the API returns that status

How to review
Triggering a Cantabular recipe dataset import will currently return a result of failed 😲. This is expected as there is ongoing backend work to handle the changes. However, there is testing that can be done to ensure that the toggles are working for the file input field and the PUT payload is different between Cantabular and non-Cantabular.
Run the following services

The catabular-import section of dp-compose contains a docker container that runs the necessary backend services needed to import a cantabular dataset.

Go to the subfolder cantabular-import of dp-compose
./run-cantabular
If you don't have any recipes under the datasets section in Florence, update this container with them by running the import recipes script

dp-api-router
Babbage
Sixteens
Florence make dev ENABLE_DATASET_IMPORTS=true (N.B. I've been using make dev as it rebuilds the node-modules each time  and then runs the service but you can follow the usual steps if you prefer)

Check the following

Check there is no file upload field for a Cantabular recipe
i.e.

Login to Florence
Go to Datasets
Choose a Cantabular recipe

Check the POST to jobs and the response in the network tools in Chrome

The POST object should be something like this:
{
    "recipe": "38542eb6-d3a6-4cc4-ba3f-32b25f23223a"
}

The response should be similar to this:
{
    "files": [],
    "id": "44dd8b89-413b-495c-9346-17ee93367475",
    "last_updated": "2021-08-02T09:07:20.559Z",
    "links": {
        "instances": [
            {
                "href": "http://api.localhost:23200/v1/instances/0619941d-5c98-4647-b458-2588732031c0",
                "id": "0619941d-5c98-4647-b458-2588732031c0"
            }
        ],
        "self": {
            "href": "http://api.localhost:23200/v1/jobs/44dd8b89-413b-495c-9346-17ee93367475",
            "id": "44dd8b89-413b-495c-9346-17ee93367475"
        }
    },
    "processed_instances": [
        {
            "id": "0619941d-5c98-4647-b458-2588732031c0",
            "required_count": 5
        }
    ],
    "recipe": "38542eb6-d3a6-4cc4-ba3f-32b25f23223a",
    "state": "created"
}

Check the PUT payload object contains the links array and a 200 response  is returned

The payload object should be something like this:
{
    "state": "submitted",
    "links": {
        "instances": [
            {
                "href": "http://api.localhost:23200/v1/instances/0619941d-5c98-4647-b458-2588732031c0",
                "id": "0619941d-5c98-4647-b458-2588732031c0"
            }
        ],
        "self": {
            "href": "http://api.localhost:23200/v1/jobs/44dd8b89-413b-495c-9346-17ee93367475",
            "id": "44dd8b89-413b-495c-9346-17ee93367475"
        }
    }
}

If successful, you'll land on the submitted dataset screen and the poll will eventually return a fail. This means everything is working as expected 😲

Check the upload process still works as expected. You will need to run additional services as per the instructions.

Alternatively, you can:

Run dp-upload-service
Select a non-Cantabular recipe
Check the file upload field is displayed
Upload a file
Continue to follow onscreen instructions
Check the PUT object doesn't contain the links array

Payload should look something like this:

{
  "state": "submitted"
 }

Who can review

Anyone who knows JS

I tried the first step (in florence - make dev ENABLE_DATASET_IMPORTS=true) but I ended up with "error": "Get "http://localhost:23200/health\": dial tcp [::1]:23200: connect: connection refused". Am I doing something wrong?

I tried the first step (in florence - make dev ENABLE_DATASET_IMPORTS=true) but I ended up with "error": "Get "[http://localhost:23200/health](http://localhost:23200/health\)": dial tcp [::1]:23200: connect: connection refused". Am I doing something wrong?

Try starting the dp-api-router first

I started the dp-api-router first but now Florence gives me this error instead: "invalid response from downstream service - should be: 200, got: 500, path: /health". When I've run Florence locally in the past there have been about 11 services (including dp-api-router) that I've needed to run before running Florence. Do you think I need to run those?

I started the dp-api-router first but now Florence gives me this error instead: "invalid response from downstream service - should be: 200, got: 500, path: /health". When I've run Florence locally in the past there have been about 11 services (including dp-api-router) that I've needed to run before running Florence. Do you think I need to run those?

The cantabular-import subfolder of dp-compose contains a docker image of the services you need and the additional ones are listed above. I've not ordered in which way the services should be started but will update the list for you now.

cool, thanks

I can't find a file named "run-cantabular.sh" in dp-compose but can find one named "run-cantabular-without-sudo.sh". Is that thee one to use?

I can't find a file named "run-cantabular.sh" in dp-compose but can find one named "run-cantabular-without-sudo.sh". Is that the one to use?

Yes, try that. The file has been renamed since I wrote the PR. I suggest we move this setup conversation to slack where I can help/provide suggestions quicker


room name and user name as GET parameters

This feature allows users to pass in the room name and user name as GET parameters to the application. This enables <iframe> embeds as well as easier link sharing to get multiple participants into the same room.
Example URL: https://video-app-XXXX-dev.twil.io/?passcode=NNNNNNNNN&room=my-room&user=admin
I know that the room name can be passed in via URL route, however this does not work when deployed to Twilio Functions API infrastructure.
Contributing to Twilio

All third party contributors acknowledge that any contributions they provide will be made under the same open source license that the open source project is provided under.

[X] I acknowledge that all my contributions will be made under the project's license.

Burndown
Before review

[ ] Updated CHANGELOG.md if necessary
[ ] Added unit tests if necessary
[ ] Updated affected documentation
[ ] Verified locally with npm test
[ ] Manually sanity tested running locally
[ ] Included screenshot as PR comment (if needed)
[ ] Ready for review

Before merge

[ ] Got one or more +1s
[ ] Re-tested if necessary

Our use case is similar. We wanted to add a button to our application that
when clicked provided an instant join experience to a room. Our application
already knows what room to join and the user’s name.
I see your other notes on the code. I should have some time this weekend to
review.
On Fri, Mar 20, 2020 at 3:45 PM Charlemagne Santos<EMAIL_ADDRESS>wrote:

@charliesantos commented on this pull request.
In src/state/usePasscodeAuth/usePasscodeAuth.ts
https://github.com/twilio/twilio-video-app-react/pull/95#discussion_r395903705
:

@@ -1,9 +1,22 @@
import { useCallback, useEffect, useState } from 'react';
import { useHistory } from 'react-router-dom';
+const queryString = require('query-string');

+export function getRoomName() {

const parsed = queryString.parse(window.location.search);
const room = parsed.room ? parsed.room : window.sessionStorage.getItem('room');
return room;
+}

+export function getUserName() {

const parsed = queryString.parse(window.location.search);
const user = parsed.user ? parsed.user : window.sessionStorage.getItem('user');
return user;
+}

That's a good use case @cweems https://github.com/cweems. In that case,
I think we can keep this feature in this PR.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/twilio/twilio-video-app-react/pull/95#discussion_r395903705,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAXA4572Z5LGIFVWFGWXA4DRIPPYDANCNFSM4LOWNIOQ
.

--
Lee Salminen
“A ship is always safe on the shore, but that’s not what ships are for.”
-Albert Einstein

This feature (passing user/room) as coded in this PR doesn't work if you don't use passcode auth correct?

Heads up, based on my testing locally of this feature, using auto connect in Safari will break the Audio (No audio track)

@leesalminen @saulm I made a PR on top of Lee's that adds the ability to accept URL params without passcode auth: https://github.com/leesalminen/twilio-video-app-react/pull/1
I was also able to reproduce the Safari issue, but I don't understand what's causing it. Is there some Safari specific behavior that prevents audio and video access without a form submit?

Thanks for the PR @leesalminen
Some thoughts:

It looks like this feature only works when the app is set to use passcode authentication. I think it could be useful if this feature was always available, even when the app is set to use a different (or no) auth method.

This feature has the user join a room instantly when the room and user parameters are present. As some other users have pointed out, this can cause some problems with audio. Browsers have an autoplay policy which requires a user interaction (such as clicking on the page) before audio elements can start to play sound. When a users joins a room immediately, audio elements are added to the DOM before there has been any user interaction, and thus no sound can be heard.
An additional problem is that the user joins a room before they have granted permissions to the app to use their microphone and camera. This means that they join a room without publishing any audio or video to the room. Once they are in the room and grant access to their mic and camera, the app doesn't know to then publish those tracks to the room. This app assumes that it will have access to the user's mic and camera before the user clicks the 'Join Room' button, so we'd have to update some logic in the app to handle this auto-join scenario.

To summarize, I think it's fine to populate the user's name and room name via query parameters, but I don't think it's a good idea to add the auto-join feature. @leesalminen, would this PR still meet your use case if the auto-join feature is removed?

To summarize, I think it's fine to populate the user's name and room name via query parameters, but I don't think it's a good idea to add the auto-join feature. @leesalminen, would this PR still meet your use case if the auto-join feature is removed?

I'm not sure about for @leesalminen but I can comment on my use case. We have a similar situation where we are creating a shareable link for job-seekers to join a two way interview. We already have the job seekers name, so it's nice being able to prepopulate that for them.
I actually prefer still having some sort of preview room so they can make sure everything looks nice and is working before joining the interview.

In our use case, we found it was sufficient enough to have users join the "waiting room" with standard GET parameters:

This saves us from the issues @timmydoza mentioned above, namely the browser's requirement for user interaction before <audio> is triggered

I think the uses cases that @RusseII and @imjared explain are good ones. I agree with having a 'waiting room' or a 'preview room'.
I can go ahead and wrap up this PR to implement the feature. One question that I have: If the user's identity and room name are supplied with query parameters, then should the 'Name' and 'Room' text fields still be editable by the user?

I can go ahead and wrap up this PR to implement the feature. One question that I have: If the user's identity and room name are supplied with query parameters, then should the 'Name' and 'Room' text fields still be editable by the user?

Good question. For our use case, I left them editable though I don't know why a user would want to edit them and I could certainly see a use case where the provider might want to obscure that functionality with something like simply having a "ready to join?" button.

For our use case - We actually hide the room name.
The user-name being editable doesn't really matter one way or the other to
us.
We will probably do what @imjared mentioned and obscure the name box with
something like a "ready to join" button.
On Wed, Apr 22, 2020 at 6:35 PM timmydoza<EMAIL_ADDRESS>wrote:

I think the uses cases that @RusseII https://github.com/RusseII and
@imjared https://github.com/imjared explain are good ones. I agree with
having a 'waiting room' or a 'preview room'.
I can go ahead and wrap up this PR to implement the feature. One question
that I have: If the user's identity and room name are supplied with query
parameters, then should the 'Name' and 'Room' text fields still be editable
by the user?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/twilio/twilio-video-app-react/pull/95#issuecomment-618093019,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADSXBSX4ODZEVN3DMYPA7K3RN55NRANCNFSM4LOWNIOQ
.

Thanks for the discussion @RusseII, @imjared!
Given that each use case may vary a little bit, is seems that it may be tricky to implement a one-size-fits-all solution. It also sounds like a simple feature to implement, and that you both have already done so. Given all this, (in addition to the fact that we haven't heard from the original author @leesalminen in a while) I'm leaning towards closing this PR. Any objections?

@timmydoza honestly you all have made this thing so easy to customize that i think it's fine if it's left to the user to add the ?room_name= functionality.
took me all of like 10 mins after cloning to figure out how to run it and start making changes

Sounds good @imjared! I appreciate the feedback! I'll close this PR then.

@timmydoza I'm a bit late to the party but I agree with everything @imjared said


DOMElement positioned incorrectly (stuck at initial position) when child of Mesh node

Example
'use strict';

var DOMElement = require('famous/dom-renderables/DOMElement');
var FamousEngine = require('famous/core/FamousEngine');
var Mesh = require('famous/webgl-renderables/Mesh');
var Torus = require('famous/webgl-geometries/primitives/Torus');
var PointLight = require('famous/webgl-renderables/lights/PointLight');
var Color = require('famous/utilities/Color');

FamousEngine.init();

var root = FamousEngine.createScene().addChild();

var mesh = new Mesh(root);

root
    .setSizeMode('absolute', 'absolute', 'absolute')
    .setAbsoluteSize(500, 500, 500)
    .setAlign(0.5, 0.5)
    .setMountPoint(0.5, 0.5)
    .setOrigin(0.5, 0.5);

var color = new Color('red');
mesh
    .setGeometry(new Torus({ detail: 100 }))
    .setBaseColor(color)
    .setGlossiness(color, 1);

new DOMElement(root.addChild().addChild(), { properties: { background: 'blue' } });

var id = root.addComponent({
    onUpdate: function(t) {
        root.setRotation(t*0.0001, t*0.001, t*0.01);
        root.requestUpdate(id);
    }
});

root.requestUpdate(id);

Screenshot

Expected
DOMElement (blue) should be centered and rotating (just like the torus).
Tested with latest on develop cde1447
Didn't look into the cause yet. Seems to be a bug in TransformSystem to me (something wrong with breakpoints?). Will have a deeper look tomorrow unless someone else wants to have a look.

The issue is that the Mesh registers the transform of that node as a breakpoint since it needs to have the world transform updated.
This is because we don't calc world transforms for nodes with nothing on them (it is how we get the fast path for transform updating). Unfortunatley, registering a breakpoint is how you need to request a world transform update when in reality requesting a world transform update and having a breakpoint are two separate concepts.
We need to add the ability to mark a transform as in need of a world transform update without flagging it as a break point.

+1

fixed by pr #394

Closing.


Add Dockerfile linting

It's apparently a thing.
Lint all the things.

Tried a few, they sucked. Not worth it.


Draft: fix CheckRepoStats and reuse it during migration

On behalf of @dachary from the forgefriends project:
The CheckRepoStats function missed the following counters:

label num_closed_issues & num_closed_pulls
milestone num_closed_issues & num_closed_pulls

The update SQL statements for updating the repository
num_closed_issues & num_closed_pulls fields were repeated in three
functions (repo.CheckRepoStats, migrate.insertIssues and
models.Issue.updateClosedNum) and were moved to a single helper.
The UpdateRepoStats is implemented and called in the Finish migration method so that it happens immediately instead of wating for the
CheckRepoStats to run.
Signed-off-by: Loïc Dachary<EMAIL_ADDRESS>
source

The CI failure seems unrelated.

Codecov Report

Merging #18264 (c19bfa3) into main (aa1e8f6) will increase coverage by 0.03%.
The diff coverage is 70.06%.

@@            Coverage Diff             @@
##             main   #18264      +/-   ##
==========================================
+ Coverage   45.73%   45.76%   +0.03%
==========================================
  Files         831      831
  Lines       92164    92217      +53
==========================================
+ Hits        42152    42207      +55
- Misses      43249    43252       +3
+ Partials     6763     6758       -5

Impacted Files
Coverage Δ

models/issue_lock.go
0.00% <0.00%> (ø)

services/migrations/gitea_uploader.go
27.04% <0.00%> (-0.09%)
:arrow_down:

models/issue.go
58.84% <30.76%> (-0.35%)
:arrow_down:

models/migrate.go
42.96% <40.00%> (-9.57%)
:arrow_down:

models/issue_comment.go
54.80% <50.00%> (+0.56%)
:arrow_up:

models/issue_milestone.go
70.34% <55.55%> (+0.09%)
:arrow_up:

models/repo.go
56.60% <83.16%> (+6.10%)
:arrow_up:

modules/queue/workerpool.go
50.00% <0.00%> (-3.06%)
:arrow_down:

models/unit/unit.go
48.45% <0.00%> (-2.07%)
:arrow_down:

routers/private/hook_post_receive.go
61.48% <0.00%> (-1.83%)
:arrow_down:

... and 12 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 aa1e8f6...c19bfa3. Read the comment docs.


Feature/add bands model

Overview
This PR creates a Band model and moves bands off of the images table. Previously, bands were a list of strings on the images table, which wouldn't allow us to do any reasonable filtering on band information like wavelength. By storing band information separately we will be able to support that sort of filtering in the future.
Testing Instructions
Bands don't have their own endpoints, but now every image action except delete returns Image.WithRelated objects instead of images, so image tests cover the changes to include bands.

Run migrations
Run tests

Closes #484

Could you rebase this on develop? 18ada56 has been merged.

These tests are failing:
[info] - should create an image successfully once authenticated *** FAILED ***
[info]   Could not unmarshal response to type 'com.azavea.rf.datamodel.Image$WithRelated' for `responseAs` assertion: akka.http.scaladsl.unmarshalling.Unmarshaller$UnsupportedContentTypeException: Unsupported Content-Type, supported: application/json
[info]
[info]   Response was: HttpResponse(500 Internal Server Error,List(),HttpEntity.Strict(text/plain; charset=UTF-8,There was an internal server error.),HttpProtocol(HTTP/1.1)) (ImageSpec.scala:22)
[info] - should filter by one organization correctly *** FAILED ***
[info]   0 did not equal 1 (ImageSpec.scala:112)
[info] - should filter by two organizations correctly *** FAILED ***
[info]   0 did not equal 1 (ImageSpec.scala:119)
[info] - should filter by min bytes correctly *** FAILED ***
[info]   0 did not equal 1 (ImageSpec.scala:133)
[info] - should filter by scene correctly *** FAILED ***
[info]   0 did not equal 1 (ImageSpec.scala:144)

Yeah I know it's for a really odd reason -- org.postgresql.util.PSQLException: ERROR: column "wavelength" is of type numrange but expression is of type integer[]
I'm working on solving it now and don't want to give up on numrange in the database but am getting close to needing to do that. Do you want to pair on it? I could use suggestions for sure if you have time.

Rebased and squashed just waiting for CI now

Taking another look ...

Should Scene.WithRelated now return an Seq[Image.WithRelated] here?

I think probably yeah, it's a messy join, working on it

There's more to track down there than I thought, I think we should leave for now and have a working Bands model to use and get bands back with scenes later

Agreed. Taking another look ...

Going to add one more commit that moves the implicits over when they're on second lines and updates style


Knex + RDS + bindings = increasing ClientRead

Environment
Knex version: 0.17.3
Database + version: postgres 9.6.9
OS: AWS RDS
Bug
Hi, it is probably that I detected issue in knex related with prepared statements. Unfortunately I am not sure that it is problem with implementation of knex but I want to describe my problem for potential detect issue.
I build queries using knex query builder and as I understand it use by default bindings. For example I have generated such query:
select "uuid", "country_code", ."updated", "default_title" from "schema"."table" where "uuid" in ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)

it works rather fine, but when I have huge load on ma service my RDS stucked on ClientRead which in result I reach a lot of errors: TimeoutError: Knex: Timeout acquiring a connection. The pool is probably full. Are you missing a .transacting(trx) call?.
I did simple solution in my code for comparison (which improved results). I just converted knex builder to string and next executed query.
knex.raw(knex.select('').from('table').whereIn([...]).toString()).then(...)

I don't feel comfortable with this solution and I am not sure that it is safe. Is it a issue on knex side or I did something wrong?
Regards

It id not safe and may cause many kind of problems, creating prepared statements for queries is done by pg driver, so there is not much that knex can do about it. Sounds like you have some problems on application code, which causes too much pressure to database...
With current information and without any reproduction there is very little that we can do to help. You could try to setup connection limits to be bigger in DB side from RDS db properties and increase pool size. And watch how many connections are used in RDS when you run your application. Also you could try with local DB if you can reproduce your problems there. It would be really helpful.

closing for now, since there is nothing we can do for this right now. Can be reopened if it seems to be a bug in knex.


Missing icons

some icons seems missing and only show a "?"

That's intentional. Some values can be true, false, or unknown, and in that latter case that question mark is shown.


Create The-Principles-of-Communication.md

Seven principles of communication as used to inform the Communication Competency within the Microsoft 365 Maturity Model
Please use this template to ensure easier processing of your pull request
Category

[x] New article

Related issues:

Expands on the article microsoft365-maturity-model--communication.md and provides background infomration and guidance

What's in this Pull Request?
Create The-Principles-of-Communication.md

Docs Build status updates of commit 40226f2:
:warning: Validation status: warnings

File
Status
Preview URL
Details

Community/The-Principles-of-Communication.md
:warning:Warning
View
Details

Community/The-Principles-of-Communication.md

Line 0, Column 0: [Warning-h1-not-first] Markdown content is not allowed before H1.
Line 1, Column 1: [Warning-author-missing] Missing required attribute: 'author'. Add the current author's GitHub ID.
Line 1, Column 1: [Warning-title-missing] Missing required attribute: 'title'. Add a title string to show in search engine results.
Line 106, Column 0: [Suggestion-disallowed-heading] Heading 'Feedback' matches the text of a disallowed Docs template heading. NOTE: This Suggestion will become a Warning in late September, 2020.

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

Thanks for the addition, @SimonJHudson! I'll fix the nits and get this published.


Manual bindings for functions with Cancellable args are inconsistent

For functions which take a Cancellable, auto-generated code looks like this:
fn foo<P: IsA<Cancellable>>(cancellable: Option<&P>) { ... }

But in some places in the manually-written bindings, there is this instead:
fn bar(cancellable: Option<&Cancellable>) { ... }

The following are the inconsistent ones I could find in gio:
PollableOutputStreamExtManual
  create_source
  create_source_future
  create_source_stream

InputStreamExtManual
  read
  read_all
  read_all_async
  read_async

Subprocess
  communicate_utf8_async

impl<F, O, T: 'static, E: 'static> GioFuture<F, O, T, E>
where
    O: Clone + 'static,
    F: FnOnce(&O, oneshot::Sender<Result<T, E>>) -> Cancellable + 'static,
    not sure if it makes sense to let the operation return an IsA<Cancellable> here

    same for impl<F, O, T, E> Future for GioFuture<F, O, T, E>

SocketListenerExtManual
  accept_socket_async

SocketExtManual
  receive
  receive_from
  receive_with_blocking
  send
  send_to
  send_with_blocking
  create_source
  create_source_future
  create_source_stream

PollableInputStreamExtManual
  create_source
  create_source_future
  create_source_stream
  read_nonblocking

OutputStreamExtManual
  write_async
  write_all
  write_all_async

FileExtManual
  replace_contents_async

Indeed, thanks! Do you want to provide a PR for this?

Working on this now.

Should I give the same treatment to the new subclass/*stream.rs?

Should I give the same treatment to the new subclass/*stream.rs?

No, as those functions are never called directly by the user but they are implemented by the user. Inside implementations you can only really get a Cancellable (as that's the most generic thing the user can pass) and doing it generic only makes the implementation harder.
Thanks for thinking of this too!


Implement multiValueQueryStringParameter parsing, modify event sample

Implement #53
Parse mvqsParams and set them to empty obj if undefined
Add tests

Changed implementation


Added files OpenAI integration

Hey team Fermyon!
This PR contains a quick implementation of an OpenAI integration to the Magic 8 Ball example as requested by Matt in his tweet.
The OpenAI JS Library wasn't really playing well with Spin. The library is based on Axios and Wizer kept throwing errors.
This implementation calls the endpoint directly using the fetch method documented here
The API key needs to be replaced in the code. This is not ideal and needs to be moved to a config or environment variable.
Cheers,
Robin

Thanks @teknicus! I think there a couple other unresolved comments to get the app working and instructions completed:

Can you add this section to the writeup: https://github.com/fermyon/workshops/pull/19#discussion_r1228751962
Can you delete the fileserver component: https://github.com/fermyon/workshops/pull/19#discussion_r1228732642

Then maybe give it a SPIN_CONFIG_OPENAI_KEY=blah spin build --up to make sure it is compiling and working. My suggestions are limited to what the GitHub AI will allow

Hey @kate-goldenring, Sorry I missed those two.
Anything else I can help with?
Thanks for your time.

@teknicus thank you for all the iterations! This is a really fun extension to the workshop.


Downloaded shapefile has blank OSM id

Can you see why the ID is blank and generally review the other columns in the downloaded shapefile to ensure they are being populated meaningfully?

It is fixed and also fix the column orders

I'm sorry i closed it @timlinux
could you check it?


[BUG] Channels of id > 100 are not fetched

Describe the bug
Channels of id > 100 are not fetched, causing some member/channel not displaying correctly.
Expected behavior
All channels are loaded into cache as the paged lives
Additional context
Channels' limit is hard-coded to 100 here. This function should be optimized to use the similar logic as fetchLives to process channels with pagination.
For now the backend has released a patch to disable the pagination so that this problem has been hot-fixed temporarily.

Fixed in 2115c159.


InMemoryUser : IUser abstraction

InMemoryUser is an object now living in the Quickstart namespace. When  you implement an EF based or ASPNet Identity based user store than there will be no InMemoryUser. I think it would be good to have an abstraction of the user object because InMemoryXxx is an implementation term and misleading for classes like InMemoryUserProfileService who are not bound to an in-memory implementation.
I think now  is a good chance to change it.
I propose to define something like an IUser Interface and use it in
IdentityServer4.QuickStart.InMemoryUsere
IdentityServer4.QuickStart.InMemoryUserProfileService
IdentityServer4.QuickStart.InMemoryUserResourceOwnerPasswordValidator
Host.Ui.Login.InMemoryUserLoginService
I know it is a luxury problem and I can implement my own stuff instead of using QuickStart and Host.UI but I think it would be an architectural advantage do use an interface to decouple user aspect from the InMemory implementation.

So are you saying you want to mix some of these services with a real DB-backed implementation, but then use some of the other in-memory service implementations?

Yes, why not. I use AspNet.Identity as persistence and with a IUser interface integration would be very nice.  I know, in real use cases it will be probably better to use own implementations for the complete Quickstart stuff.
But anyhow, this classes are not dependent  how user storage is implemented. When they use simply IEnumerable of IUser  they can be used regardless how the users are stored.
I always tend to more generic solutions, but I know that it sometimes leads to misuse.
Where to use interfaces and where not is not easy to decide.
I only wanted to to say that in my opinion InMemoryUser is a candidate for an interface and I see that there are a lot of changes on the way to RC1 and it would be a good chance now to introduce IUser.
Anyway you and Dominik did a great Job !!

So the IUser would have a list of claims and an is enabled flag? Or also subject id and maybe  name properties?

Exactly and when you add an IUserStore interface with the methods
Task <IUserStore> FindByUserAsync (string userName)
Task <IUserStore> FindByExternalProvider (string provider, string userId)

and an InMemoryUserStore implementation than you get an orthagonal architecture providing the same infrastructure for all types of entities. I and surely other users will be happy because, they have to write less code.

I think we understand... we'll consider it.

We came to a compromise by adding some helper extension methods. Thanks


[libuv] Update version to v1.48.0

Fix https://github.com/microsoft/vcpkg/issues/38800
No feature need to test.

[x] Changes comply with the maintainer guide.
[x] SHA512s are updated for each updated download.
[ ] The "supports" clause reflects platforms that may be fixed by this new version.
[ ] Any fixed CI baseline entries are removed from that file.
[ ] Any patches that are no longer applied are deleted from the port's directory.
[x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[x] Only one version is added to each modified port's versions file.

/azp run

Failed on x64-linux:
CMake Error at /mnt/vss/_work/1/s/scripts/buildsystems/vcpkg.cmake:859 (_find_package):
  Found package configuration file:

    /mnt/vcpkg-ci/installed/x64-linux/share/Qt6/Qt6Config.cmake

  but it set Qt6_FOUND to FALSE so package "Qt6" is considered to be NOT
  FOUND.  Reason given by package:

  Failed to find required Qt component "Widgets".

  Expected Config file at
  "/mnt/vcpkg-ci/installed/x64-linux/share/Qt6Widgets/Qt6WidgetsConfig.cmake"
  exists

  Configuring with --debug-find-pkg=Qt6Widgets might reveal details why the
  package was not found.

  Configuring with -DQT_DEBUG_FIND_PACKAGE=ON will print the values of some
  of the path variables that find_package uses to try and find the package.

Call Stack (most recent call first):
  Source/QtDialog/CMakeLists.txt:34 (find_package)


v6 form component knows if there are errors, but not if they are visible

I am using the approach described in the docs to render field errors:
{touched && error && <span>{error}</span>}
Now what I would like to do is disable the submit button while there are errors.
In principle, I can check the invalid prop that I get from @reduxForm. The problem is that this property will return "false" even if the only errors that exist are for untouched fields.
So now the submit button is disabled, but the user doesn't see any error messages.
Right now, I have to manually connect to the store to pull the errors, and check if they relate to touch fields or not. I wish that reduxForm could give me this piece of information directly.

I wish that reduxForm could give me this piece of information directly.

I'm not really understanding what your desired API would look like. You could try something like this? What is it that you want? A list of fields with errors?
What I normally do in this situation is to not disable submit on invalid, and let the user click the submit button, which will mark all the fields as touched, thus revealing the error messages.

I suppose I would propose that either:
a) the properties that @reduxForm passes down include the errors, which I can then use to determine if there are any errors for "touched" fields - i.e. errors that I am actually showing to the user; or
b) the properties that @reduxForm include a new prop named, say, touchedFieldsValid, that already includes the result of this calculation.
Currently, I am doing this myself, by adding my own @connect below, that looks at the errors from the Redux store, and at the "invalid" property from the @reduxForm parent, and then determines the info I want.
What I normally do in this situation is to not disable submit on invalid, and let the user click the submit button, which will mark all the fields as touched, thus revealing the error messages.
I'd like to improve on that by disabling the submit button as long as there are errors visible; though I recognize that the behaviour I am after is pretty particular.

Because this issue saw almost no activity for more than a year, I'm closing it.


fix bluebox showing when trying to open context menu

Details

The root cause of the issue is the selection from iOS got blocked by the context menu, so the blue border box selection goes expands across the context menu. To resolve this issue we need to disable the user selection when trying to open context menu with this ControlSelection.block() function.
Fixed Issues

$ https://github.com/Expensify/App/issues/8246
Tests

Open chat room
Try to open the context menu by pressing the name or the avatar of the user on the chat item.
Verified that blue box is not appearing when trying to open context menu

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

PR Review Checklist

Contributor (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 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 included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] iOS / native
[x] Android / native
[x] iOS / Safari
[x] Android / Chrome
[x] MacOS / Chrome
[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 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 was added in all src/languages/* files
[x] I verified any copy / text that was added to the app is correct English and approved by marketing by tagging the marketing team on the original GH to get the correct copy.
[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] 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] Any functional components have the displayName property
[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

[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(themeColors.componentBG)

[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.

PR Reviewer Checklist

[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] 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)
[ ] 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)

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

[ ] iOS / native
[ ] Android / native
[ ] iOS / Safari
[ ] Android / Chrome
[ ] MacOS / Chrome
[ ] MacOS / Desktop

[ ] 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)
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] 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).
[ ] I verified that comments were added to code that is not self explanatory
[ ] 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.
[ ] I verified any copy / text shown in the product was added in all src/languages/* files
[ ] I verified any copy / text that was added to the app is correct English and approved by marketing by tagging the marketing team on the original GH to get the correct copy.
[ ] 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.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] 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
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] Any functional components have the displayName property
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] 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)
[ ] 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)
[ ] All JSX used for rendering exists in the render method
[ ] 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

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

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

[ ] 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)
[ ] 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.

QA Steps

Open chat room
Try to open the context menu by pressing the name or the avatar of the user on the chat item.
Verified that blue box is not appearing when trying to open context menu

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

Screenshots

Web

https://user-images.githubusercontent.com/25520267/163818722-0f310f7b-ae0d-4fcf-905a-374969458dc7.mov
Mobile Web

https://user-images.githubusercontent.com/25520267/163818740-a7684827-a66c-4771-9208-015fd89b6a48.mov
https://user-images.githubusercontent.com/25520267/163818762-7c623bca-cd01-40e9-b9a9-477151821825.mov
Desktop

https://user-images.githubusercontent.com/25520267/163818819-ffe45b83-0d79-466c-84dc-9a9621ef5cda.mov
iOS

https://user-images.githubusercontent.com/25520267/163818834-b50ad01e-c7a2-43da-90c2-497e952d3c13.mov
Android

https://user-images.githubusercontent.com/25520267/163818857-0e14f98f-99c7-46df-b085-7307d06b83d1.mov

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

🚀 Deployed to staging by @Beamanator in version: 1.1.56-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by @francoisl in version: 1.1.56-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Keep getting "[lncli] rpc error: code = Unknown desc = peer disconnected" when attempting to open channels with certain nodes

I've encountered this issue with about half the nodes I tried to open channels with. I can connect as peer without an issue but whenever I open a channel it stalls then eventually gives me the following output.
[lncli] rpc error: code = Unknown desc = peer disconnected
Below is my node status, everything looks to be okay. Not sure why this keeps happening.
    "identity_pubkey": "032f0d2d9f9b14b3a40488a1f2f255ecfd73b2272ae6d8399cbf067b0b55913281",
    "alias": "Zand",
    "num_pending_channels": 0,
    "num_active_channels": 5,
    "num_peers": 8,
    "block_height": 571088,
    "block_hash": "0000000000000000001d96002b130121b32b5b1d91bedbd637ae9900f1d9ce76",
    "synced_to_chain": true,
    "testnet": false,
    "chains": [
        "bitcoin"
    ],
    "uris": [
        "032f0d2d9f9b14b3a40488a1f2f255ecfd73b2272ae6d8399cbf067b0b55913281@<IP_ADDRESS>:9735"
    ],
    "best_header_timestamp": "1554931014",
    "version": "0.5.2-beta commit=v0.5.2-beta",
    "num_inactive_channels": 1

Same happened yesterday to me with a friend, then i went and tried with few other nodes and worked perfectly... I think it has to do something with the ports of the other node, not yours.

Same happened yesterday to me with a friend, then i went and tried with few other nodes and worked perfectly... I think it has to do something with the ports of the other node, not yours.

I don't think that's the case here, the nodes I'm having issues with are very well connected/funded nodes (LNBIG, rompert, tippin.me etc..)

So I checked some logs and found the following errors, not sure if this could relate to the issue but figured I'd share (the same error pops up numerous times with different IP addresses)
2019-04-12 21:53:45.118 [INF] RPCS: [listchannels] fetched 9 channels from DB 2019-04-12 21:53:49.194 [ERR] CMGR: Can't accept connection: unable to accept co                                                                                nnection from <IP_ADDRESS>:36722: chacha20poly1305: message authentication fai                                                                                led 2019-04-12 21:53:56.958 [INF] DISC: Broadcasting batch of 109 new announcements 2019-04-12 21:53:57.010 [ERR] CMGR: Can't accept connection: unable to accept co                                                                                nnection from <IP_ADDRESS>:1024: EOF

Same happened yesterday to me with a friend, then i went and tried with few other nodes and worked perfectly... I think it has to do something with the ports of the other node, not yours.

I don't think that's the case here, the nodes I'm having issues with are very well connected/funded nodes (LNBIG, rompert, tippin.me etc..)

well connected/funded doesn't mean they are running the latest code. If your problem is specific to only some nodes and doesn't happen on all of them then it could be they are running old code?

Same happened yesterday to me with a friend, then i went and tried with few other nodes and worked perfectly... I think it has to do something with the ports of the other node, not yours.

I don't think that's the case here, the nodes I'm having issues with are very well connected/funded nodes (LNBIG, rompert, tippin.me etc..)

well connected/funded doesn't mean they are running the latest code. If your problem is specific to only some nodes and doesn't happen on all of them then it could be they are running old code?

I believe I found the source of the problem. I noticed opening port 22 on the Pi can really affect performance and connectivity (not to mention security). I had it open so I could ssh remotely from a computer outside my local network. As soon as I closed port 22 on my firewall, I was able to connect to the nodes I previously had issues with.